Method for deriving intra prediction mode based on reference pixel

By generating sub-pixel and integer pixel reference lines to deduce implicit prediction mode, the problem of low information transmission efficiency of intra-prediction mode in the prior art is solved, the video encoding and decoding efficiency is improved, and high resolution and high frame rate video is adapted to Data requirements.

CN119174181APending Publication Date: 2024-12-20HYUNDAI MOTOR CO LTD +2
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380039832.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-04-13
Filing Date
2023-04-17
Publication Date
2024-12-20

AI Technical Summary

Technical Problem

When existing video compression technology processes video data with high resolution and high frame rate, the transmission efficiency of intra prediction mode information is low, resulting in poor video decoding efficiency and quality, especially when image size increases, which requires higher type of prediction direction and coding efficiency.

Method used

By generating sub-pixel reference lines and integer pixel reference lines, implicit prediction mode is derived, avoiding explicit transmission of prediction mode information in intra prediction, and generating intra predictors using the derived prediction direction, improving video encoding and decoding efficiency.

Benefits of technology

Improves video decoding efficiency and quality, reduces the amount of bits required for encoding and decoding, and adapts to the needs of high resolution and high frame rate video data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119174181A_ABST
    Figure CN119174181A_ABST
Patent Text Reader

Abstract

Disclosed are a video coding method and apparatus for deriving an intra prediction mode based on reference pixels. In an embodiment, a video decoding device generates sub-pixel reference lines from integer pixel reference lines. A video decoding device uses a sub-pixel reference line and derives an implicit prediction mode. Here, the information about the implicit prediction mode includes a prediction direction and an upward prediction mode flag indicating whether the prediction direction is upward. A video decoding apparatus generates an intra predictor of a current block using an integer pixel reference line and an implicit prediction mode.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to and the benefit of Korean Patent Application No. 10-2022-0058185, filed on May 12, 2022, and Korean Patent Application No. 10-2023-0048825, filed on April 13, 2023, the entire contents of each of which are incorporated herein by reference. Technical Field

[0003] The present disclosure relates to a method for deriving an intra prediction mode based on reference pixels. Background Art

[0004] The statements in this section merely provide background information related to the present disclosure and may not constitute prior art.

[0005] Since video data has a large amount of data compared to audio or still image data, the video data requires a large amount of hardware resources (including memory) to store or transmit the video data without a compression process.

[0006] Therefore, the encoder is generally used to compress and store or transmit video data. The decoder receives the compressed video data, decompresses the received compressed video data, and plays the decompressed video data. Video compression technologies include H.264 / Advanced Video Coding (AVC), High Efficiency Video Coding (HEVC), and Versatile Video Coding (VVC), and VVC has an improved coding efficiency of about 30% or more compared to HEVC.

[0007] However, as image size, resolution, and frame rate increase, the amount of data to be encoded is also increasing. Therefore, a new compression technology is needed that provides higher decoding efficiency and improved image enhancement effects than existing compression technologies.

[0008] Intra-frame prediction to predict the pixel value of the current block to be encoded utilizes pixel information within the same picture. In intra-frame prediction of multiple intra-frame prediction modes, an appropriate one can be selected for the characteristics of the video and used to predict the current block. The encoder selects and uses one of many intra-frame prediction modes to encode the current block. The encoder can then communicate information about the mode to the decoder.

[0009] HEVC technology uses a total of 35 intra-frame prediction modes for intra-frame prediction, including 33 angular modes with directionality and two non-angular modes without directionality. However, as the spatial resolution of the video increases from 720×480 to 2048×1024 or 8192×4096, the unit size of the prediction block becomes larger and larger, which requires adding more types of intra-frame prediction modes. As shown in Figure 3A, VVC technology uses 67 intra-frame prediction modes for intra-frame prediction, and the 67 intra-frame prediction modes are further subdivided for intra-frame prediction, thereby allowing more types of prediction directions than in the prior art.

[0010] Typically, the image to be encoded is divided into coding units (CUs) of various shapes and sizes, and then encoded in CUs. In this case, the tree structure is information that specifies the division. The encoder passes the tree information to the decoder, indicating how the image is distinguished into CUs of different shapes and sizes. In this process, luma (Y) and chroma (Cb, Cr) images can be divided into separate CUs. Alternatively, luma and chroma images can be divided into CUs of the same shape.

[0011] The technology of providing luminance and chrominance images with different partitioning structures is called chrominance separation tree (CST) technology or dual tree technology. Therefore, when using CST technology, chrominance images can be divided according to a different partitioning method from luminance images. On the other hand, the technology of providing luminance and chrominance images with the same partitioning structure is called single tree technology. When using single tree technology, chrominance images can have the same partitioning structure as luminance images. In the application of CST technology, when setting the prediction mode of luminance channel and chrominance channel, the encoder performs a separate rate-distortion optimization (RDO) process. However, when the prediction mode setting of Cb channel and Cr channel is performed, the encoder performs RDO processing by applying the same prediction mode to both channels. When the encoder sets and encodes the intra-frame prediction mode according to the above, a large amount of bits is used to encode the intra-frame prediction mode. Therefore, it is necessary to consider a method for effectively encoding / decoding intra-frame prediction mode to increase video decoding efficiency and enhance video quality. Summary of the invention

[0012] [Technical issues]

[0013] The present disclosure attempts to provide a video decoding method and apparatus for deriving prediction modes of a luma channel and a chroma channel or generating a predictor based on reference pixels without explicitly transmitting intra prediction mode information in intra prediction of a current block.

[0014] [Technical solution]

[0015] At least one aspect of the present disclosure provides a method for performing intra-frame prediction on a current block by a video decoding device. The method includes: generating a sub-pixel reference line including an upper sub-pixel reference line and a left sub-pixel reference line according to an integer pixel reference line, the integer pixel reference line belonging to the current block and including an upper integer pixel reference line and a left integer pixel reference line. The method also includes deriving an implicit prediction mode by using the sub-pixel reference line. Here, the information about the implicit prediction mode includes a prediction direction and an upward prediction mode flag indicating whether the prediction direction is upward. The method also includes generating an intra-frame predictor of the current block by using the integer pixel reference line and the implicit prediction mode.

[0016] Another aspect of the present disclosure provides a method for performing intra-frame prediction on a current block by a video encoding device. The method includes: generating a sub-pixel reference line including an upper sub-pixel reference line and a left sub-pixel reference line according to an integer pixel reference line, the integer pixel reference line belongs to the current block and includes an upper integer pixel reference line and a left integer pixel reference line. The method also includes deriving an implicit prediction mode by using the sub-pixel reference line. Here, the information about the implicit prediction mode includes a prediction direction and an upward prediction mode flag indicating whether the prediction direction is upward. The method also includes generating a first intra-frame predictor of the current block by using the integer pixel reference line and the implicit prediction mode.

[0017] Another aspect of the present disclosure provides a computer-readable recording medium storing a bitstream generated by a video encoding method. The video encoding method includes: generating a sub-pixel reference line including an upper sub-pixel reference line and a left sub-pixel reference line according to an integer pixel reference line, the integer pixel reference line belonging to a current block and including an upper integer pixel reference line and a left integer pixel reference line. The video encoding method also includes deriving an implicit prediction mode by using the sub-pixel reference line. Here, the information about the implicit prediction mode includes a prediction direction and an upward prediction mode flag indicating whether the prediction direction is upward. The video encoding method also includes generating an intra-frame predictor of the current block by using the integer pixel reference line and the implicit prediction mode.

[0018] [Beneficial Effects]

[0019] As described above, the present disclosure provides a video decoding method and device for deriving a prediction mode of a luminance channel and a chrominance channel or generating a predictor based on reference pixels without explicitly transmitting intra-frame prediction mode information in intra-frame prediction of a current block. Thus, the video decoding method and device improve video decoding efficiency and enhance video quality. BRIEF DESCRIPTION OF THE DRAWINGS

[0020] Figure 1 is a block diagram of a video encoding device that may implement the techniques of this disclosure.

[0021] Figure 2A method for partitioning blocks using a quadtree plus binary tree ternary tree (QTBTTT) structure is shown.

[0022] 3A and 3B illustrate a plurality of intra prediction modes including a wide-angle intra prediction mode.

[0023] Figure 4 Neighboring blocks of the current block are shown.

[0024] Figure 5 is a block diagram of a video decoding device that may implement the techniques of this disclosure.

[0025] Figure 6 is a diagram of pixels utilized in a Most Probable Mode (MPM) configuration.

[0026] Figure 7 is a diagram illustrating reference lines of a multi-reference line (MRL) technique.

[0027] Figure 8 is a diagram illustrating application of a derivation mode (DM) in a corresponding luminance block.

[0028] Fig. 9 is a diagram illustrating a case where a prediction mode may be derived solely from reference pixels according to at least one embodiment of the present disclosure.

[0029] Fig.10 is a diagram showing an increase in the interval between prediction modes for wide angle intra prediction (WAIP).

[0030] 11A to 11C are diagrams illustrating generation of sub-pixel reference lines according to at least one embodiment of the present disclosure.

[0031] Fig.12 is a diagram showing a case where edges exist on both the upper reference line and the left reference line of the current block.

[0032] 13A-13B are diagrams illustrating derivation of a prediction direction according to at least one embodiment of the present disclosure.

[0033] Fig.14 is a diagram illustrating limitations of a mapping value k according to at least one embodiment of the present disclosure.

[0034] Fig.15 is a diagram illustrating a derived implicitAngle according to at least one embodiment of the present disclosure.

[0035] Fig.16 The present invention is a flowchart of a method for performing intra-frame prediction on a current block, performed by a video encoding device according to at least one embodiment of the present disclosure.

[0036] Fig.17 The present invention is a flowchart of a method for performing intra-frame prediction on a current block, performed by a video decoding device according to at least one embodiment of the present disclosure. DETAILED DESCRIPTION

[0037] Hereinafter, some embodiments of the present disclosure are described in detail with reference to the accompanying drawings. In the following description, the same reference numerals represent the same elements, although the elements are shown in different drawings. In addition, in the following description of some embodiments, for the purpose of clarity and brevity, detailed descriptions of related known components and functions may be omitted when it is considered to obscure the subject matter of the present disclosure.

[0038] Figure 1 is a block diagram of a video encoding device that can implement the technology of the present disclosure. Figure 1 , describing a video encoding device and components of the device.

[0039] The encoding apparatus may include a picture divider 110 , a predictor 120 , a subtractor 130 , a transformer 140 , a quantizer 145 , a rearrangement unit 150 , an entropy encoder 155 , an inverse quantizer 160 , an inverse transformer 165 , an adder 170 , a loop filter unit 180 , and a memory 190 .

[0040] Each component of the encoding device can be implemented as hardware or software or as a combination of hardware and software. In addition, the function of each component can be implemented as software, and can also be implemented as a microprocessor to execute the function of the software corresponding to each component.

[0041] A video is composed of one or more sequences including multiple pictures. Each picture is divided into multiple regions, and encoding is performed for each region. For example, a picture is divided into one or more tiles or / and slices. Here, one or more tiles can be defined as tile groups. Each tile or / and slice is divided into one or more coding tree units (CTUs). In addition, each CTU is divided into one or more coding units (CUs) through a tree structure. The information applied to each coding unit (CU) is encoded as the syntax of the CU, and the information commonly applied to the CU included in a CTU is encoded as the syntax of the CTU. In addition, the information commonly applied to all blocks in a slice is encoded as the syntax of the slice header, and the information applied to all blocks constituting one or more pictures is encoded into a picture parameter set (PPS) or a picture header. In addition, the information commonly referenced by multiple pictures is encoded into a sequence parameter set (SPS). In addition, the information commonly referenced by one or more SPSs is encoded into a video parameter set (VPS). In addition, the information commonly applied to a tile or tile group can also be encoded as the syntax of the tile or tile group header. The syntax included in the SPS, PPS, slice header, tile, or tile group header may be referred to as a high-level syntax.

[0042] The picture partitioner 110 determines the size of a coding tree unit (CTU). Information on the size of the CTU (CTU size) is encoded as a syntax of an SPS or a PPS and transmitted to a video decoding apparatus.

[0043] The picture partitioner 110 partitions each picture constituting a video into a plurality of coding tree units (CTUs) having a predetermined size, and then recursively partitions the CTUs by using a tree structure. A leaf node in the tree structure becomes a coding unit (CU), which is a basic unit of encoding.

[0044] The tree structure may be a quadtree (QT), in which a higher node (or parent node) is split into four lower nodes (or child nodes) of the same size. The tree structure may also be a binary tree (BT), in which a higher node is split into two lower nodes. The tree structure may also be a ternary tree (TT), in which a higher node is split into three lower nodes at a ratio of 1:2:1. The tree structure may also be a structure in which two or more of the QT structure, the BT structure, and the TT structure are mixed. For example, a quadtree plus a binary tree (QTBT) structure may be used, or a quadtree plus a binary tree ternary tree (QTBTTT) structure may be used. Here, a binary tree ternary tree (BTTT) is added to the tree structure to be referred to as a multi-type tree (MTT).

[0045] Figure 2 is a diagram for describing a method for partitioning a block by using a QTBTTT structure.

[0046] like Figure 2 As shown, the CTU can be first split into a QT structure. The quadtree splitting can be recursive until the size of the split block reaches the minimum block size (MinQTSize) of the leaf node allowed in QT. The 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 entropy encoder 155 and sent to the video decoding device. When the leaf node of QT is not larger than the maximum block size (MaxBTSize) of the root node allowed in BT, the leaf node can also be split into at least one of the BT structure or the TT structure. There can be multiple splitting directions in the BT structure and / or the TT structure. For example, there can be two directions, namely, the direction in which the blocks of the corresponding nodes are split horizontally and the direction in which the blocks of the corresponding nodes are split vertically. As Figure 2 As shown, when MTT splitting starts, a second flag (mtt_split_flag) indicating whether the node is split, and a flag indicating the split direction (vertical or horizontal), and / or a flag indicating the split type (two or three) if the node is split, are encoded by the entropy encoder 155 and sent to the video decoding device.

[0047] In addition, before encoding the first flag (QT_split_flag) indicating whether each node is split into four nodes of the lower layer, the CU split flag (split_cu_flag) indicating whether the node is split may also be encoded. When the value of the CU split flag (split_cu_flag) indicates that each node is not split, the block of the corresponding node becomes a leaf node in the split tree structure and becomes a CU as a basic unit of encoding. When the value of the CU split flag (split_cu_flag) indicates that each node is split, the video encoding device first starts encoding the first flag through the above scheme.

[0048] When QTBT is used as another example of a tree structure, there may be two types, namely, a type in which the block of the corresponding node is horizontally split into two blocks of the same size (i.e., symmetrical horizontal splitting) and a type in which the block of the corresponding node is vertically split into two blocks of the same size (i.e., symmetrical vertical splitting). A split flag (split_flag) indicating whether each node of the BT structure is split into blocks of the lower layer and split type information indicating the split type are encoded by the entropy encoder 155 and transmitted to the video decoding device. At the same time, a type in which the block of the corresponding node is split into two blocks that are asymmetric to each other may be additionally presented. The asymmetric form may include a form in which the block of the corresponding node is split into two rectangular blocks having a size ratio of 1:3, or may also include a form in which the block of the corresponding node is split in a diagonal direction.

[0049] A CU may have various sizes according to the QTBT or QTBTTT partitioning from a CTU. Hereinafter, a block corresponding to a CU to be encoded or decoded (i.e., a leaf node of a QTBTTT) is referred to as a "current block". Due to the adoption of QTBTTT partitioning, the shape of the current block may be a rectangular shape in addition to a square shape.

[0050] The predictor 120 predicts the current block to generate a predicted block. The predictor 120 includes an intra predictor 122 and an inter predictor 124.

[0051] Typically, each of the current blocks in a picture may be predictively coded. Typically, the prediction of the current block may be performed using an intra-prediction technique (using data from the picture including the current block) or an inter-prediction technique (using data from a picture coded before the picture including the current block). Inter-prediction includes both unidirectional prediction and bidirectional prediction.

[0052] The intra-frame predictor 122 predicts the pixels in the current block by using the pixels (reference pixels) located at the neighbors of the current block in the current picture including the current block. According to the prediction direction, there are multiple intra-frame prediction modes. For example, as shown in FIG. 3A, multiple intra-frame prediction modes may include 2 non-directional modes (including planar mode and DC mode) and may include 65 directional modes. Neighboring pixels and arithmetic equations to be used are defined differently according to each prediction mode.

[0053] In order to perform effective directional prediction on the current block having a rectangular shape, the directional mode (#67 to #80, intra prediction mode #-1 to #-14) as shown by the dotted arrows in FIG. 3B can be additionally used. The directional mode can be called a "wide-angle intra prediction mode". In FIG. 3B, the arrow indicates the corresponding reference sample used for prediction and does not indicate the prediction direction. The prediction direction is opposite to the direction indicated by the arrow. When the current block has a rectangular shape, the wide-angle intra prediction mode is a mode in which prediction is performed in the opposite direction to the specific directional mode without additional bit transmission. In this case, in the wide-angle intra prediction mode, some wide-angle intra prediction modes that can be used for the current block can be determined by the ratio of the width and height of the current block having a rectangular shape. For example, when the current block has a rectangular shape with a height less than the width, a wide-angle intra prediction mode (intra prediction mode #67 to #80) with an angle less than 45 degrees is available. When the current block has a rectangular shape with a width greater than the height, a wide-angle intra prediction mode with an angle greater than -135 degrees is available.

[0054] The intra-frame predictor 122 may determine an intra-frame prediction to be used to encode the current block. In some examples, the intra-frame predictor 122 may encode the current block by using multiple intra-frame prediction modes, and may also select an appropriate intra-frame prediction mode to be used from a test mode. For example, the intra-frame predictor 122 may calculate a rate-distortion value by using a rate-distortion analysis for multiple tested intra-frame prediction modes, and may also select an intra-frame prediction mode with the best rate-distortion characteristics in the test mode.

[0055] The intra predictor 122 selects an intra prediction mode among a plurality of intra prediction modes and predicts the current block by using adjacent pixels (reference pixels) and an arithmetic equation determined according to the selected intra prediction mode. Information about the selected intra prediction mode is encoded by the entropy encoder 155 and transmitted to the video decoding device.

[0056] The inter-frame predictor 124 generates a prediction block for the current block by using a motion compensation process. The inter-frame predictor 124 searches for a block most similar to the current block in a reference picture that is encoded and decoded earlier than the current picture, and generates a prediction block for the current block by using the searched block. In addition, a motion vector (MV) is generated, which corresponds to the displacement between the current block in the current picture and the prediction block in the reference picture. Typically, 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 chrominance component. Motion information including information about the reference picture and information about the motion vector for predicting the current block is encoded by the entropy encoder 155 and transmitted to the video decoding device.

[0057] The inter-frame predictor 124 may also perform interpolation for a reference picture or a reference block to increase the accuracy of the prediction. In other words, by applying the filter coefficient to a plurality of consecutive integer samples including two integer samples, the subsamples between the two consecutive integer samples are interpolated. When the process of searching for the block most similar to the current block is performed for the interpolated reference picture, the motion vector may be represented with decimal unit precision instead of integer sample unit precision. The precision or resolution of the motion vector may be set differently for each target area to be encoded (e.g., a unit such as a slice, tile, CTU, CU, etc.). When this adaptive motion vector resolution (AMVR) is applied, information about the motion vector resolution to be applied to each target area should be sent for each target area. For example, when the target area is a CU, information about the motion vector resolution applied to each CU is sent. The information about the motion vector resolution may be information representing the precision of the motion vector difference to be described below.

[0058] Meanwhile, the inter-frame predictor 124 may perform inter-frame prediction by using bidirectional prediction. In the case of bidirectional prediction, two reference pictures and two motion vectors representing the block position most similar to the current block in each reference picture are used. The inter-frame predictor 124 selects a first reference picture and a second reference picture from a reference picture list 0 (RefPicList0) and a reference picture list 1 (RefPicList1), respectively. The inter-frame predictor 124 also searches for a block most similar to the current block in the corresponding reference picture to generate a first reference block and a second reference block. In addition, a prediction block for the current block is generated by averaging or weighted averaging the first reference block and the second reference block. In addition, motion information including information about two reference pictures for predicting the current block and including information about two motion vectors is transmitted to the entropy encoder 155. Here, the reference picture list 0 may be composed of pictures before the current picture in the display order in the pre-reconstructed picture, and the reference picture list 1 may be composed of pictures after the current picture in the display order in the pre-reconstructed picture. However, although not particularly limited thereto, a pre-reconstructed picture after the current picture in the display order may be additionally included in the reference picture list 0. Conversely, a pre-reconstructed picture before the current picture may also be additionally included in the reference picture list 1.

[0059] In order to minimize the number of bits consumed for encoding motion information, various methods may be used.

[0060] For example, when the reference picture and motion vector of the current block are the same as those of the adjacent block, information capable of identifying the adjacent block is encoded to transmit the motion information of the current block to the video decoding device. This method is called merge mode.

[0061] In the merge mode, the inter predictor 124 selects a predetermined number of merge candidate blocks (hereinafter, referred to as “merge candidates”) from the neighboring blocks of the current block.

[0062] As the neighboring blocks used to derive the merge candidates, such as Figure 4 As shown, all or some of the left block A0, the lower left block A1, the upper block B0, the upper right block B1, and the upper left block B2 adjacent to the current block in the current picture can be used. In addition, in addition to the current picture in which the current block is located, blocks located in a reference picture (which may be the same as or different from the reference picture used to predict the current block) can also be used as merge candidates. For example, a block located at the same location as the current block in the reference picture or a block adjacent to a block located at the same location can be used as a merge candidate. If the number of merge candidates selected by the above method is less than the preset number, a zero vector is added to the motion vector candidate.

[0063] The inter-frame predictor 124 configures a merge list including a predetermined number of merge candidates by using adjacent blocks. A merge candidate to be used as motion information of the current block is selected from the merge candidates included in the merge list, and merge index information for identifying the selected candidate is generated. The generated merge index information is encoded by the entropy encoder 155 and transmitted to the video decoding device.

[0064] Merge skip mode is a special case of merge mode. After quantization, when all transform coefficients for entropy coding are close to zero, only the neighbor block selection information is transmitted without the residual signal. By using merge skip mode, relatively high coding efficiency can be achieved for images with slight motion, still images, screen content images, etc.

[0065] Hereinafter, the merge mode and the merge skip mode are collectively referred to as the merge / skip mode.

[0066] Another method for encoding motion information is the Advanced Motion Vector Prediction (AMVP) mode.

[0067] In the AMVP mode, the inter-frame predictor 124 derives a motion vector predictor candidate for a motion vector of the current block by using the neighboring blocks of the current block. As the neighboring blocks for deriving the motion vector predictor candidate, Figure 4 All or some of the left block A0, lower left block A1, upper block B0, upper right block B1 and upper left block B2 adjacent to the current block in the current picture shown in . In addition, in addition to the current picture in which the current block is located, blocks located in a reference picture (which may be the same as or different from the reference picture used to predict the current block) may also be used as adjacent blocks for deriving motion vector predictor candidates. For example, a block located at the same location as the current block in the reference picture or a block adjacent to a block located at the same location may be used. If the number of motion vector candidates selected by the above method is less than a preset number, a zero vector is added to the motion vector candidates.

[0068] The inter predictor 124 derives a motion vector predictor candidate by using the motion vectors of the neighboring blocks, and determines a motion vector predictor for the motion vector of the current block by using the motion vector predictor candidate. In addition, a motion vector difference is calculated by subtracting the motion vector predictor from the motion vector of the current block.

[0069] The motion vector predictor can be obtained by applying a predefined function (e.g., center value and average value calculation, etc.) to the motion vector predictor candidate. In this case, the video decoding device also knows the predefined function. In addition, since the adjacent blocks used to derive the motion vector predictor candidate are blocks for which encoding and decoding have been completed, the video decoding device may also already know the motion vectors of the adjacent blocks. Therefore, the video encoding device does not need to encode the information for identifying the motion vector predictor candidate. Therefore, in this case, information about the motion vector difference and information about the reference picture used to predict the current block are encoded.

[0070] Meanwhile, the motion vector predictor may also be determined by selecting any one of the motion vector predictor candidates. In this case, information for identifying the selected motion vector predictor candidate is additionally encoded jointly with information about the motion vector difference and information about the reference picture used to predict the current block.

[0071] The subtractor 130 generates a residual block by subtracting a prediction block generated by the intra predictor 122 or the inter predictor 124 from the current block.

[0072] The transformer 140 converts the residual signal in the residual block having the pixel value of the spatial domain into a transform coefficient of the frequency domain. The transformer 140 may transform the residual signal in the residual block by using the total size of the residual block as the transform unit, or may also divide the residual block into a plurality of sub-blocks, and may perform the transform by using the sub-block as the transform unit. Optionally, the residual block is distinguished into two sub-blocks (a transform region and a non-transform region) to transform the residual signal by using only the transform region sub-block as the transform unit. Here, the transform region sub-block may be one of two rectangular blocks having a size ratio of 1:1 based on the horizontal axis (or vertical axis). In this case, the flag (cu_sbt_flag) indicates that only the sub-block is transformed, and the directional (vertical / horizontal) information (cu_sbt_horizontal_flag) and / or the position information (cu_sbt_pos_flag) are encoded by the entropy encoder 155 and sent to the video decoding device. 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) distinguishing the corresponding partition is additionally encoded by the entropy encoder 155 and transmitted to the video decoding device.

[0073] At the same time, the transformer 140 can perform transformations on the residual block separately in the horizontal direction and the vertical direction. For the transformation, different types of transformation functions or transformation matrices can be used. For example, a pair of transformation functions for horizontal transformation and vertical transformation can be defined as a multiple transformation set (MTS). The transformer 140 can select a transformation function pair with the highest transformation efficiency in the MTS, and can transform the residual block in each direction of the horizontal and vertical directions. Information about the transformation function pair in the MTS (mts_idx) is encoded by the entropy encoder 155 and sent to the video decoding device.

[0074] The quantizer 145 quantizes the transform coefficients output from the transformer 140 using the quantization parameter and outputs the quantized transform coefficients to the entropy encoder 155. The quantizer 145 can also immediately quantize the relevant residual block without transforming any block or frame. The quantizer 145 can also apply different quantization coefficients (scaling values) according to the position of the transform coefficient in the transform block. The quantization matrix applied to the quantized transform coefficients arranged in 2 dimensions can be encoded and sent to the video decoding device.

[0075] The rearrangement unit 150 may perform recalibration of coefficient values ​​with respect to the quantized residual values.

[0076] The rearrangement unit 150 may change the 2D coefficient array into a 1D coefficient sequence by using coefficient scanning. For example, the rearrangement unit 150 may output a 1D coefficient sequence by scanning the DC coefficient into a high frequency domain coefficient using a zigzag scan or a diagonal scan. Depending on the size of the transform unit and the intra prediction mode, a vertical scan that scans the 2D coefficient array in the column direction and a horizontal scan that scans the 2D block type coefficients in the row direction may also be used instead of the zigzag scan. In other words, depending on the size of the transform unit and the intra prediction mode, the scanning method to be used may be determined among zigzag scanning, diagonal scanning, vertical scanning, and horizontal scanning.

[0077] The entropy encoder 155 generates a bitstream by encoding the sequence of 1D quantized transform coefficients output from the rearrangement unit 150 using various encoding schemes including context-based adaptive binary arithmetic coding (CABAC), Exponential Golomb, and the like.

[0078] In addition, the entropy encoder 155 encodes information related to block segmentation (such as CTU size, CTU segmentation flag, QT segmentation flag, MTT segmentation type, MTT segmentation direction, etc.) to allow the video decoding device to segment the block equally with the video encoding device. In addition, the entropy encoder 155 encodes information about the prediction type indicating whether the current block is encoded by intra-frame prediction or inter-frame prediction. The entropy encoder 155 encodes intra-frame prediction information (i.e., information about intra-frame prediction mode) or inter-frame prediction information (in the case of merge mode, merge index, and in the case of AMVP mode, information about reference picture index and motion vector difference) according to the prediction type. In addition, the entropy encoder 155 encodes information related to quantization (i.e., information about quantization parameters and information about quantization matrices).

[0079] The inverse quantizer 160 dequantizes the quantized transform coefficient output from the quantizer 145 to generate a transform coefficient. The inverse transformer 165 transforms the transform coefficient output from the inverse quantizer 160 from the frequency domain to the spatial domain to reconstruct a residual block.

[0080] The adder 170 reconstructs the current block by adding the reconstructed residual block and the prediction block generated by the predictor 120. When intra prediction is performed on a next sequential block, pixels in the reconstructed current block may be used as reference pixels.

[0081] The loop filter unit 180 performs filtering on the reconstructed pixels to reduce a blocking effect, a ringing effect, a blurring effect, etc. that occur due to block-based prediction and transform / quantization. The loop filter unit 180 as an in-loop filter may include all or some of a deblocking filter 182, a sample adaptive offset (SAO) filter 184, and an adaptive loop filter (ALF) 186.

[0082] The deblocking filter 182 filters the boundaries between the reconstructed blocks to remove the blocking effect caused by block unit encoding / decoding, and the SAO filter 184 and the ALF 186 perform additional filtering for the deblocked filtered video. The SAO filter 184 and the ALF 186 are filters for compensating for the difference between the reconstructed pixels and the original pixels due to lossy decoding. The SAO filter 184 applies an offset as a CTU unit to enhance subjective image quality and coding efficiency. On the other hand, the ALF 186 performs block unit filtering and applies different filters to compensate for distortion by distinguishing the boundaries of the corresponding blocks and the degree of the change amount. Information about the filter coefficients to be used for the ALF can be encoded and sent to the video decoding device.

[0083] The reconstructed blocks filtered by the deblocking filter 182, the SAO filter 184, and the ALF 186 are stored in the memory 190. When all blocks in one picture are reconstructed, the reconstructed picture can be used as a reference picture for inter-frame prediction of blocks in a picture to be encoded later.

[0084] Figure 5 is a functional block diagram of a video decoding device that can implement the technology of the present disclosure. Figure 5 , describes a video decoding device and components of the device.

[0085] The video decoding apparatus may include an entropy decoder 510 , a rearrangement unit 515 , an inverse quantizer 520 , an inverse transformer 530 , a predictor 540 , an adder 550 , a loop filter unit 560 , and a memory 570 .

[0086] and Figure 1 Similar to the video encoding device of the present invention, each component of the video decoding device can be implemented as hardware or software or as a combination of hardware and software. In addition, the function of each component can be implemented as software, and a microprocessor can also be implemented to perform the function of the software corresponding to each component.

[0087] The entropy decoder 510 extracts information related to block partitioning by decoding a bitstream generated by a video encoding apparatus to determine a current block to be decoded, and extracts prediction information required for reconstructing the current block and information about a residual signal.

[0088] The entropy decoder 510 determines the size of the CTU by extracting information about the CTU size from a sequence parameter set (SPS) or a picture parameter set (PPS), and partitions the picture into CTUs of the determined size. In addition, the CTU is determined as the highest level of the tree structure, i.e., the root node, and partition information for the CTU can be extracted to partition the CTU by using the tree structure.

[0089] For example, when CTU is segmented by using the QTBTTT structure, the first flag (QT_split_flag) related to the segmentation of QT is first extracted to segment each node into four nodes of the lower layer. In addition, for the node corresponding to the leaf node of QT, the second flag (mtt_split_flag) related to the segmentation of MTT, the segmentation direction (vertical / horizontal) and / or the segmentation type (two-division / three-division) are extracted to segment the corresponding leaf node into the MTT structure. Therefore, each node below the leaf node of QT is recursively segmented into a BT or TT structure.

[0090] As another example, when a CTU is partitioned by using a QTBTTT structure, a CU partition flag (split_cu_flag) indicating whether the CU is partitioned is extracted. When the corresponding block is partitioned, a first flag (QT_split_flag) may also be extracted. During the partitioning process, for each node, 0 or more recursive MTT partitions may occur after 0 or more recursive QT partitions. For example, for a CTU, MTT partitioning may occur immediately, or conversely, multiple QT partitions may occur only.

[0091] As another example, when CTU is segmented by using the QTBT structure, the first flag (QT_split_flag) related to the segmentation of QT is extracted to segment each node into four nodes of the lower layer. In addition, a segmentation flag (split_flag) indicating whether the node corresponding to the leaf node of QT is also segmented into BT and segmentation direction information are extracted.

[0092] Meanwhile, when the entropy decoder 510 determines the current block to be decoded by partitioning using a tree structure, the entropy decoder 510 extracts information about a prediction type indicating whether the current block is intra-predicted or inter-predicted. When the prediction type information indicates intra-prediction, the entropy decoder 510 extracts syntax elements of intra-prediction information (intra-prediction mode) for the current block. When the prediction type information indicates inter-prediction, the entropy decoder 510 extracts information representing syntax elements for inter-prediction information (i.e., motion vectors and reference pictures referenced by motion vectors).

[0093] Furthermore, the entropy decoder 510 extracts quantization-related information of the current block and extracts information about a quantized transform coefficient as information about a residual signal.

[0094] The rearrangement unit 515 may change the sequence of 1D quantized transform coefficients entropy-decoded by the entropy decoder 510 into a 2D coefficient array (ie, block) again in the reverse order of the coefficient scanning order performed by the video encoding apparatus.

[0095] The inverse quantizer 520 dequantizes the quantized transform coefficients and dequantizes the quantized transform coefficients by using quantization parameters. The inverse quantizer 520 may also apply different quantization coefficients (scaling values) to the quantized transform coefficients arranged in 2D. The inverse quantizer 520 may perform dequantization by applying a matrix (scaling value) of quantization coefficients from a video encoding device to a 2D array of quantized transform coefficients.

[0096] The inverse transformer 530 reconstructs a residual signal by inversely transforming the dequantized transform coefficient from the frequency domain into the spatial domain to generate a residual block of the current block.

[0097] In addition, when the inverse transformer 530 inversely transforms a partial domain (sub-block) of the transform block, the inverse transformer 530 extracts a flag (cu_sbt_flag) that only the sub-block of the transform block is transformed, directional (vertical / horizontal) information (cu_sbt_horizontal_flag) of the sub-block, and / or position information (cu_sbt_pos_flag) of the sub-block. The inverse transformer 530 also inversely transforms the transform coefficient of the corresponding sub-block from the frequency domain to the spatial domain to reconstruct the residual signal, and fills the area that is not inversely transformed with a value of "0" as the residual signal to generate a final residual block of the current block.

[0098] In addition, when MTS is applied, the inverse transformer 530 determines a transform index or a transform matrix applied in each of the horizontal and vertical directions by using MTS information (mts_idx) transmitted from the video encoding device. The inverse transformer 530 also performs inverse transform on the transform coefficients in the transform block in the horizontal and vertical directions by using the determined transform function.

[0099] The predictor 540 may include an intra predictor 542 and an inter predictor 544. The intra predictor 542 is activated when the prediction type of the current block is intra prediction, and the inter predictor 544 is activated when the prediction type of the current block is inter prediction.

[0100] The intra predictor 542 determines an intra prediction mode of a current block among a plurality of intra prediction modes according to a syntax element for the intra prediction mode extracted from the entropy decoder 510. The intra predictor 542 also predicts the current block by using neighboring reference pixels of the current block according to the intra prediction mode.

[0101] The inter predictor 544 determines a motion vector of a current block and a reference picture to which the motion vector refers by using a syntax element for an inter prediction mode extracted from the entropy decoder 510 .

[0102] The adder 550 reconstructs the current block by adding the residual block output from the inverse transformer 530 and the prediction block output from the inter predictor 544 or the intra predictor 542. When intra prediction is performed on a block to be decoded later, pixels within the reconstructed current block are used as reference pixels.

[0103] The loop filter unit 560 as an in-loop filter may include a deblocking filter 562, an SAO filter 564, and an ALF 566. The deblocking filter 562 performs deblocking filtering on the boundary between the reconstructed blocks to remove the blocking effect that occurs due to the block unit decoding. The SAO filter 564 and the ALF 566 perform additional filtering on the reconstructed blocks after the deblocking filtering to compensate for the difference between the reconstructed pixels and the original pixels that occurs due to the lossy decoding. The filter coefficients of the ALF are determined by using information about the filter coefficients decoded from the bitstream.

[0104] The reconstructed blocks filtered by the deblocking filter 562, the SAO filter 564, and the ALF 566 are stored in the memory 570. When all blocks in one picture are reconstructed, the reconstructed picture can be used as a reference picture for inter-frame prediction of blocks in a picture to be encoded later.

[0105] The present disclosure, in some embodiments, relates to encoding and decoding a video image as described above. More specifically, the present disclosure provides a video encoding method and apparatus for deriving a prediction mode of a luminance channel and a chrominance channel or generating a predictor based on reference pixels without explicitly transmitting intra-frame prediction mode information in an intra-frame prediction of a current block.

[0106] The following embodiments may be performed by the intra predictor 122 in the video encoding device. The following embodiments may also be performed by the intra predictor 542 in the video decoding device.

[0107] The video encoding device in the prediction of the current block can generate signaling information associated with the present embodiment in terms of optimizing rate distortion. The video encoding device can encode the signaling information using the entropy encoder 155 and transmit the encoded signaling information to the video decoding device. The video decoding device can decode the signaling information associated with the prediction of the current block from the bitstream using the entropy decoder 510.

[0108] In the following description, the term 'target block' may be used interchangeably with a current block or a coding unit (CU), or may refer to some regions of a coding unit.

[0109] In addition, a flag value of true indicates when the flag is set to 1. In addition, a flag value of false indicates when the flag is set to 0.

[0110] Intra-frame prediction technology

[0111] The following describes the prior art related to intra prediction.

[0112] I-1.67 Intra Prediction Mode (IPM), Wide Angle Intra Prediction (WAIP)

[0113] The angular prediction direction for intra prediction can be subdivided into up to 65 directions as shown in the example of FIG3A. The prediction angle of the intra prediction mode is represented by intraPredAngle, and the intraPredAngle values ​​according to the prediction mode (predModeIntra) are shown in Table 1.

[0114]

Table 1

[0115] predModeIntra -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 intraPredAngle 512 341 256 171 128 102 86 73 64 57 51 45 predModeIntra -2 -1 2 3 4 5 6 7 8 9 10 11 intraPredAngle 39 35 32 29 26 23 20 18 16 14 12 10 predModeIntra 12 13 14 15 16 17 18 19 20 21 22 23 intraPredAngle 8 6 4 3 2 1 0 -1 -2 -3 -4 -6 predModeIntra 24 25 26 27 28 29 30 31 32 33 34 35 intraPredAngle -8 -10 -12 -14 -16 -18 -20 -23 -26 -29 -32 -29 predModeIntra 36 37 38 39 40 41 42 43 44 45 46 47 intraPredAngle -26 -23 -20 -18 -16 -14 -12 -10 -8 -6 -4 -3 predModeIntra 48 49 50 51 52 53 54 55 56 57 58 59 intraPredAngle -2 -1 0 1 2 3 4 6 8 10 12 14 predModeIntra 60 61 62 63 64 65 66 67 68 69 70 71 intraPredAngle 16 18 20 23 26 29 32 35 39 45 51 57 predModeIntra 72 73 74 75 76 77 78 79 80 intraPredAngle 64 73 86 102 128 171 256 341 512

[0116] With the introduction of WAIP, prediction modes No. -14 to -1 and No. 67 to 80 having larger angles may be used depending on the aspect ratio of the block.

[0117] In intra prediction, a predictor for the luma channel can be generated based on 67 intra prediction modes (IPMs). 67 IPMs mean 67 intra prediction modes that can be transmitted based on the aspect ratio of the block in prediction modes -14 to 80 (including planar mode and DC mode as non-directional prediction modes).

[0118] I-2. Matrix-based intra prediction (MIP)

[0119] The MIP mode generates a predictor for the current block using the product of a trained matrix and a reference sample. The MIP mode generates the predictor using three steps. First, a one-dimensional vector is generated by using the average value of the reference sample. Second, the predictor is generated by using the product of a trained matrix and a one-dimensional vector. Finally, third, if a portion of the predictor is generated in the second step, additional interpolation is performed to upsample or upsample the predictor portion to fit the size of the current block.

[0120] To indicate whether this MIP is enabled, the video encoding device may encode and then transmit a matrix-based prediction flag to the video decoding device. In addition, the video encoding device may encode and then transmit an index indicating one of the trained matrices and one of the predefined vectors to the video decoding device.

[0121] I-3. Most Probable Model (MPM)

[0122] When generating a predictor by using one of 67 prediction modes, the video encoding apparatus may transmit the prediction mode by using a Most Probable Mode (MPM) to efficiently transmit prediction mode information.

[0123] MPM utilizes the following property: when a block is encoded in intra-frame prediction mode, the prediction modes of adjacent blocks may be similar to each other. Based on the prediction modes of the adjacent blocks of the current block, 6 MPM candidates are selected. The set of 6 MPM candidates is called an MPM list. If the intra-frame prediction mode of the current block is included in the MPM list, the video encoding device sends an MPM index indicating the intra-frame prediction mode of the current block among the candidates included in the MPM list. On the other hand, if the intra-frame prediction mode of the current block is not included in the 6 MPM candidates, the video encoding device composes an MPM residual mode by excluding the 6 MPM candidates from the 67 IPMs, and encodes the intra-frame prediction mode based on the MPM residual mode.

[0124] As in Figure 6 As shown in the example of , modeA is defined as the prediction mode of the block containing pixel A located to the left of the lower left pixel of the current block, and modeB is defined as the prediction mode of the block containing pixel B located above the upper right pixel of the current block. Based on modeA and modeB, 6 MPM candidates can be selected to generate the following MPM list. If the current block is located at the boundary of a CTU, tile, slice, sub-picture, picture, etc., and pixel A or pixel B is not available, then the prediction mode of the block containing the pixel is considered to be planar.

[0125] First, if modeA and modeB are the same and modeA is greater than INTRA_DC, the one selected as the MPM candidate is {plane, modeA, 2+((modeA+61)%64), 2+((modeA-1)%64), 2+((modeA+60)%64), 2+(modeA%64)}.

[0126] Next, if modeA and modeB are not the same, and modeA or modeB is greater than INTRA_DC, the MPM candidates are composed as follows: Here, minAB=Min(modeA, modeB), maxAB=Max(modeA, modeB).

[0127] If modeA and modeB are both greater than INTRA_DC and maxAB-minAB=1, the one selected as the MPM candidate is {plane, modeA, modeB, 2+((minAB+61)%64), 2+((maxAB-1)%64), 2+((minAB+60)%64)}.

[0128] If both modeA and modeB are greater than INTRA_DC and maxAB - minAB ≥ 62, then the ones selected as MPM candidates are {plane, modeA, modeB, 2 + ((minAB - 1) % 64), 2 + ((maxAB + 61) % 64), 2 + (minAB % 64)}.

[0129] If both modeA and modeB are greater than INTRA_DC and maxAB - minAB = 2, then the ones selected as MPM candidates are {plane, modeA, modeB, 2 + ((minAB - 1) % 64), 2 + ((minAB + 61) % 64), 2 + ((maxAB - 1) % 64)}.

[0130] If both modeA and modeB are greater than INTRA_DC and 2 < maxAB - minAB < 62, then the ones selected as MPM candidates are {plane, modeA, modeB, 2 + ((minAB + 61) % 64), 2 + ((minAB - 1) % 64), 2 + ((maxAB + 61) % 64)}.

[0131] If modeA and modeB are not the same, and one of modeA and modeB is greater than INTRA_DC, then the ones selected as MPM candidates are {plane, maxAB, 2 + ((maxAB + 61) % 64), 2 + ((maxAB - 1) % 64), 2 + ((maxAB + 60) % 64), 2 + (maxAB % 64)}.

[0132] In addition, if both modeA and modeB are equal to or less than INTRA_DC, then the ones selected as MPM candidates are {plane, INTRA_DC, INTRA_ANGULAR50, INTRA_ANGULAR18, INTRA_ANGULAR46, INTRA_ANGULAR54}.

[0133] I-4. Intra Subdivision (ISP)

[0134] The ISP technology subdivides the current block into smaller blocks of the same size, and then shares the intra prediction mode across the sub-blocks, but the ISP can apply the transform to each sub-block. The subdivision of the block can be horizontally or vertically oriented.

[0135] In the following description, the large block before being subdivided is called the current block, and each of the smaller blocks resulting from the subdivision is called a sub-block.

[0136] The operation of the ISP technology is as follows.

[0137] The video encoding apparatus transmits intra_subpartitions_mode_flag indicating whether ISP is applied and intra_subpartitions_split_flag indicating a sub-division method to the video decoding apparatus. Table 2 shows a sub-division type, IntraSubPartitionsSplitType according to intra_subpartitions_mode_flag and intra_subpartitions_split_flag.

[0138]

Table 2

[0139] IntraSubPartitionsSplitType Name of IntraSubPartitionsSplitType 0 ISP_NO_SPLIT 1 ISP_HOR_SPLIT 2 ISP_VER_SPLIT

[0140] The ISP technology sets the partition type, IntraSubPartitionsSplitType as follows.

[0141] If intra_subpartitions_mode_flag is 0, IntraSubPartitionsSplitType is set to 0 and sub-block splitting is not performed, that is, ISP is not applied.

[0142] If intra_subpartitions_mode_flag is non-zero, ISP is applied. In this case, IntraSubPartitionsSplitType is set to the value 1+intra_subpartitions_split_flag, and sub-block splitting is performed according to the split type. If IntraSubPartitionsSplitType=1, sub-block splitting is performed in the horizontal direction (ISP_HOR_SPLIT), and if IntraSubPartitionsSplitType=2, sub-block splitting is performed in the vertical direction (ISP_VER_SPLIT). This means that intra_subpartitions_split_flag can indicate the sub-block splitting direction.

[0143] For example, if the ISP mode of horizontal subpartitioning is applied to the current block, IntraSubPartitionsSplitType is 1, intra_subpartitions_mode_flag is 1, and intra_subpartitions_split_flag is 0.

[0144] In the following description, intra_subpartitions_mode_flag is represented as a subblock partitioning application flag, intra_subpartitions_split_flag is represented as a subblock partitioning direction flag, and IntraSubPartitionsSplitType is represented as a subblock partitioning type. In addition, information including the subblock partitioning application flag and the subblock partitioning direction flag is referred to as ISP information.

[0145] As described above, when the current block is sub-divided in the horizontal or vertical direction, if the size of the current block is too small, the decoding efficiency of the sub-block after the division may be unexpectedly reduced, or the size of the sub-block is smaller than the minimum unit for transformation, and the transformation may not be allowed in the first place. To prevent this from happening, the application of ISP can be limited by referring to the size of the sub-block obtained after the division. For example, if the number of pixels in the sub-block after the division is greater than 16, then sub-division can be applied. For example, if the size of the current block is 4×4, ISP is not applied. Blocks of size 4×8 or 8×4 can be divided into two sub-blocks of the same shape and size, which is called Half_Split. Blocks of any other size can be divided into four sub-blocks of the same shape and size, which is called Quarter_Split.

[0146] The video encoding device sequentially encodes the corresponding sub-blocks. In this case, each sub-block shares the same intra-frame prediction information. In the intra-frame prediction for encoding the corresponding sub-blocks, the video encoding device can use the reconstructed pixels in the sub-blocks that have been encoded earlier as the predicted pixel values ​​for the subsequent sub-blocks, thereby improving the compression efficiency.

[0147] I-5.Multiple Reference Lines (MRL)

[0148] When predicting the current block according to the intra prediction technology, the MRL (Multi-reference Line) technology can use the reference line adjacent to the current block and farther pixels as reference pixels. At this time, the pixels with the same distance from the current block are grouped together and named as reference lines. The MRL technology performs intra prediction of the current block by using the pixels located on the selected reference line.

[0149] In order to indicate a reference line used when performing intra prediction, the video encoding apparatus transmits a reference line index intra_luma_ref_idx to the video decoding apparatus. Bit allocation for each index may be represented as shown in Table 3.

[0150]

Table 3

[0151] intra_luma_ref_idx Bit allocation 0 0 1 10 2 11

[0152] In addition to the planar mode among the intra prediction modes, the video encoding device may consider whether to use an additional reference line by applying MRL to the prediction mode transmitted according to the MPM. The reference line represented by each intra_luma_ref_idx is as follows: Figure 7 As shown in the example of . In the VVC (Versatile Video Coding) technology, the video encoding device selects one of three reference lines that are closer in distance to the current block for intra prediction of the current block.

[0153] I-6 Derivation Mode (DM)

[0154] The DM introduced for efficient encoding / decoding of the prediction mode of the chrominance channel uses the prediction mode of the luminance block corresponding to the current chrominance block as the prediction mode of the chrominance block as it is. Figure 8 As shown in the example of , the corresponding luminance block represents a luminance block including pixels of the luminance channel, which corresponds to the pixels at the center position of the current chrominance block.

[0155] As described above, many prediction techniques are utilized to increase the intra-coding efficiency for the luma channel, but the application of different prediction techniques is subject to the following limitations.

[0156] For ISP mode applications, intra_luma_ref_idx needs to be zero.

[0157] intra_luma_ref_idx may have a non-zero value only if the prediction mode is included in the MPM list.

[0158] If the prediction mode is planar, intra_luma_ref_idx cannot have a non-zero value.

[0159] In order to apply different intra prediction techniques considering the above limitations, the syntax of the intra prediction mode of the luma channel may be represented as shown in Table 4.

[0160]

Table 4

[0161]

[0162]

[0163] First, the video decoding device parses intra_mip_flag, which is a flag indicating whether the prediction mode is MIP mode. If the prediction mode is MIP mode and intra_mip_flag is true, the video decoding device decodes intra_mip_transposed_flag and intra_mip_mode. intra_mip_transposed_flag indicates whether the matrix used to generate the predictor in MIP mode is transposed, and intra_mip_mode indicates the type of the matrix. If intra_mip_flag is false because the MIP mode is not used, the video decoding device parses the MRL and ISP mode information in sequence according to the condition. The video decoding device then decodes intra_luma_mpm_flag indicating whether the prediction mode is included in the MPM list. By decoding intra_luma_mpm_idx or intra_luma_mpm_remainder according to intra_luma_mpm_flag, the video decoding device completes the decoding of the intra-frame prediction mode.

[0164] Regarding the chroma channel, the video decoding device can generate a predictor by using three cross component linear model (CCLM) modes, plane, DC, horizontal mode, vertical mode, and derivation mode (DM). The predictor can be generated by using a prediction mode based on the subdivision of the DM for the chroma channel, with the limitation of using only the prediction mode used by the corresponding luminance block. In other words, the luminance channel allows searching for the optimal prediction mode based on 67 IPMs when determining the prediction mode, but the chroma channel does not allow searching all 67 IPMs, but only searches five prediction modes (plane, DC, horizontal, vertical, and DM).

[0165] According to the prior art, when the MPM list has components of {0, 1, 50, 18, 46, 54}, encoding of 67 IPMs (intra prediction modes) is performed as shown in Table 5.

[0166]

Table 5

[0167]

[0168] Here, the binary string does not include intra_mip_flag, intra_luma_ref_idx, and intra_subpartitions_mode_flag. The first binary bit of the binary string represents intra_luma_mpm_flag. For example, if the prediction mode of the luma channel is planar and ISP (intra sub-partitioning) is not applied, the binary string representing the intra prediction mode of the luma channel is sent as 00010. On the other hand, if the prediction mode of the luma channel is not included in the MPM list, the binary string may be longer. For example, if the prediction mode is 60 and horizontally partitioned ISP is applied, the binary string for the prediction mode is 00100111001, where a binary string of length 11 is sent.

[0169] Although there are Fig. 9 In the example of FIG. 1 , the prediction mode can be derived by using only reference pixels, but the prior art has the following defects: Fig. 9 In the prediction mode shown in , the length of the binary string is 11.

[0170] Furthermore, in the case of WAIP (Wide Angle Intra Prediction), as Fig.10 As shown in the example of , as the value of intraPredAngle increases, the interval between prediction modes indicating intraPredAngle increases. Therefore, the accuracy of the prediction mode decreases, and the larger the block size, the worse the accuracy may decrease.

[0171] As described above, the best prediction mode can be determined after searching only five prediction modes among 67 IPMs for the chroma channel. In the case of the directional mode, only 3 modes among 65 directional modes are searched. That is, there is a limitation that the number of prediction modes for the chroma channel is very small compared to the luma channel.

[0172] Hereinafter, the embodiments of the present disclosure will be described centering on a video decoding apparatus, but the embodiments can be similarly applied to a video encoding apparatus.

[0173] II. Implementations according to the present disclosure

[0174] In order to solve the above problems, Fig. 9 As shown in , the present disclosure derives the prediction direction based on the reference sample. Therefore, the present disclosure can increase the efficiency of intra-frame coding by not transmitting the prediction mode information, performing prediction in a direction that cannot be guided by the prediction mode, or minimizing the length of the binary string for the prediction mode information.

[0175] To implement the present disclosure, the derivation of a prediction direction based on a reference sample includes two steps: obtaining a sub-pixel reference line and deriving a prediction direction.

[0176] The steps of obtaining sub-pixel reference lines are described below.

[0177] The upper reference line indicates an array of referenceable pixels above the upper left pixel of the current block. The left reference line indicates an array of referenceable pixels to the left of the upper left pixel of the current block. The video decoding device can derive the prediction direction by using the upper reference line and the left reference line as they are, but it is very difficult to derive the prediction direction exactly, and the derived prediction direction is not accurate. Therefore, in order to achieve precise and accurate derivation of the prediction direction, the video decoding device scales up each reference line to obtain a sub-pixel reference line. The magnification factor indicates the percentage of the sub-pixel that is increased after the magnification is performed. For example, when the magnification factor is 4, the resolution of the sub-pixel becomes 1 / 4 pixel.

[0178] The interpolation filter and the magnification factor used to perform the magnification can be changed according to the embodiment of the present disclosure. The interpolation filter used can be a nearest filter, a linear filter, a cubic filter, a sine filter, a Gaussian filter, etc., and the magnification factor used can be 2, 3, 4, etc.

[0179] Hereinafter, the width of a block is defined as W and the height is defined as H. When the length of the upper reference line is 2W+1 and the length of the left reference line is 2H+1, and the magnification factor is u, the length of the upper sub-pixel reference line is 2Wu+1 and the length of the left sub-pixel reference line is 2Hu+1.

[0180] 11A to 11C are diagrams illustrating generation of sub-pixel reference lines according to at least one embodiment of the present disclosure.

[0181] As shown in the examples of Figures 11A to 11C, when W=8, H=4, the sub-pixel reference line can be obtained by using a cubic interpolation filter with u=4 (i.e., 1 / 4 pixel resolution). The values ​​of the reference samples shown in Figure 11A can be plotted as a graph as shown in the example of Figure 11B. In the example of Figure 11B, the horizontal axis indicates the position of the reference sample and the vertical axis indicates the value of the reference sample. The example of Figure 11C is a diagram showing the generated sub-pixel reference line. The sub-pixel reference line is represented by the SPRL indicating the upper sub-pixel reference line. T [x] and SPRL indicating the left sub-pixel reference line L [x] indicates that in the upper sub-pixel reference line, the value of x is 0 to 64, and in the left sub-pixel reference line, the value of x is 0 to 32. SPRL T [0] and SPRL L[0] is the reference pixel at position (-1, -1) when the upper left pixel of the current block is located at (0, 0).

[0182] Next, the steps of deriving the prediction direction are described below.

[0183] like Fig.12 As shown in the example of , if there are edges on both the upper reference line and the left reference line of the current block, the current block is likely to be an image containing a straight line passing through two boundaries. In this case, the direction of the straight line passing through the two boundaries is determined as the prediction direction.

[0184] On the other hand, after any one of the two sub-pixel reference lines of FIG. 11C is mapped, one mapped reference line can be approximated to the other sub-pixel reference line as shown in the example of FIG. 13A. At this time, by finding the mapping value k that minimizes the difference between the two sub-pixel reference lines, the video decoding device can derive the prediction direction. The found value k is equal to the tangent value (tanθ) of the straight line passing through the edge in each reference line. T ). That is, the prediction direction can be derived. In this case, the mapping can be expressed in the form of f(x)→f(kx). Finding the value k that minimizes the difference between the two reference lines is equivalent to finding the value k that minimizes ∫|f(kx)-g(x)|dx. For example, in Fig.12 In the example of , where f(x) is defined as the left reference line and g(x) is defined as the upper reference line, k=x / y can be derived according to the above method.

[0185] Alternatively, as shown in the example of FIG13B , to reduce computational complexity, integer pixel reference lines may be mapped, and then the mapped integer pixel reference lines may be approximated to sub-pixel reference lines. The prediction direction may be derived by finding a mapping value k that minimizes the difference between the mapped integer pixel reference lines and the sub-pixel reference lines.

[0186] In the following, the derived prediction direction is represented by implicitAngle. implicitAngle has the same meaning as intraPredAngle in Table 1. That is, if implicitAngle=32 (which is equivalent to intraPredAngle=32), then it corresponds to predModeIntra being 2 or 66. In the following, the implicitAngle value pointing 45 degrees upward (or 45 degrees downward) is referred to as θ π / 4 Therefore, θ π / 4 This corresponds to intraPredAngle=32 in the prior art.

[0187] As shown in Table 1, the implicitAngle value according to the prediction mode (predModeIntra) is symmetrical with respect to mode 34 (45 degrees to the upper left), so the prediction modes having the same angle relative to the direction of mode 34 have the same implicitAngle value. Therefore, prediction modes having the same implicitAngle value can have different prediction modes. In order to identify their differences, the implicitAngle for directional modes with predModeIntra=34, 35, 36, 37, ... is called implicitAngleTop, and the implicitAngle for directional modes with predModeIntra=33, 32, 31, 30, ... is called implicitAngleLeft. In this case, planar mode 0 and DC mode 1 are excluded from implicitAngleTop and implicitAngleLeft.

[0188] In the present disclosure, in order to derive a prediction direction, a video decoding apparatus first derives implicitAngleTop and implicitAngleLeft, and then selects one of them. implicitAngleTop and implicitAngleLeft may be derived as follows.

[0189] First, a function representing the difference between the upper reference line and the left reference line is defined as shown in Equation 1.

[0190] [Equation 1]

[0191]

[0192] Here, f T (k) Apply the mapping to the upper reference line, and then calculate the difference between the mapped upper reference line and the left reference line. The left reference line can be a left integer pixel reference line or a left sub-pixel reference line. In the following, f T (k) is called the upper cost function. In addition, f L (k) Apply the mapping to the left reference line, and then calculate the difference between the mapped left reference line and the upper reference line. At this time, the upper reference line can be an upper integer pixel reference line or an upper sub-pixel reference line. In the following, f L (k) is called the left cost function.

[0193] Furthermore, when a method of approximating integer pixels to sub-pixels is used, u is set as an enlargement factor, and v is set to 1. Furthermore, when a method of approximating sub-pixels to sub-pixels is used, u is set to 1 and v is set as an enlargement factor.

[0194] Using the cost function, as shown in Equation 2, implicitAngleTop and implicitAngleLeft are calculated.

[0195] [Equation 2]

[0196]

[0197] implicitAngleTop represents a mapping that minimizes the upper cost function and is named as the upper implicit prediction direction. In addition, implicitAngleLeft represents a mapping that minimizes the left cost function and is named as the left implicit prediction direction.

[0198] T limit and L limit Prevents out-of-range during the approximation process. That is, if the value of k is too large (i.e., if tanθ T or tanθ L The value of is too large), such as Fig.14 In the example of , there may be no reference pixel to be mapped. To avoid this, the value k can be limited. Based on the aspect ratio, T is derived as shown in Equation 3, respectively. limit and L limit .

[0199] [Equation 3]

[0200]

[0201] For example, if the current block has a width of 8 and a height of 4, then T limit =64 and L limit = 16. This means that implicitAngleTop can have a value up to 64 (mode 72), and implicitAngleLeft can have a value up to 16 (mode 8). This range is the same as the range of directional prediction modes sent in blocks with corresponding aspect ratios when WAIP (Wide Angle Intra Prediction) is applied.

[0202] The video decoding device may use the derived implicitAngleTop and the derived implicitAngleLeft to derive the final prediction direction, implicitAngle, as shown in Equation 4.

[0203] [Equation 4]

[0204] when

[0205] implicitAngle=implicitAngleTop

[0206] isPredModeTop=1

[0207] when

[0208] implicitAngle=implicitAngleLeft

[0209] isPredModeTop=0

[0210] Because f T (implicitAngleTop) and f L (implicitAngleLeft) are functions that depend on the height and width of the block, respectively, so they are normalized before comparison. The comparison result between the normalized upper cost function value and the normalized left cost function value determines implicitAngle, as shown in Equation 4. In the following, implicitAngle is referred to as implicit prediction direction or prediction direction. In addition, isPredModeTop is a flag indicating whether the prediction direction is upward. That is, isPredModeTop of 1 indicates that the prediction direction is upward (mode 34, 35, ... direction), and isPredModeTop of 0 indicates that the prediction direction is to the left (mode 33, 32, ... direction). In the following, isPredModeTop is referred to as the upward prediction mode flag.

[0211] On the other hand, if there is no edge in the reference line, the prediction direction derived as described above may be meaningless. Therefore, the video decoding device first determines whether an edge exists in the reference line before performing the above-mentioned approximation process. If the edge exists in both the upper reference line and the left reference line, the video decoding device derives the prediction direction as described above (i.e., performs the approximation process). On the other hand, if there is no edge on any of the upper reference line and the left reference line, the video decoding device does not derive the prediction direction. In this case, the video decoding device sets the prediction mode to the DC mode.

[0212] The presence or absence of an edge in a reference line can be determined by using various methods. Next, a method for determining the presence of an edge by using a second-order derivative (i.e., a Laplace value) is described. For example, the position of the upper left pixel of the current block is defined as (0, 0), the value of the reference pixel at the position (x, y) is defined as p[x][y], and the width and height of the current block are defined as W and H, respectively. The video decoding device determines the presence or absence of an edge on each reference line as follows.

[0213] First, if the condition of Equation 5 is satisfied, it is determined that no edge exists in the upper reference line.

[0214] [Equation 5]

[0215]

[0216] The condition of Equation 5 refers to a case where the maximum value of the Laplacian values ​​calculated based on the pixels on the upper reference line is less than a preset threshold.

[0217] Furthermore, if the condition of Equation 6 is satisfied, it is determined that no edge exists on the left reference line.

[0218] [Equation 6]

[0219]

[0220] The condition in Equation 6 refers to a case where the maximum value of the Laplacian values ​​calculated based on the pixels on the left reference line is less than a preset threshold.

[0221] In addition, if the edge exists on two reference lines, but the patterns of the two reference lines have different shapes, the image of the current block is likely not in the form of a straight line passing through the two edges. In this case, the video decoding device derives the prediction mode as a plane.

[0222] According to the present disclosure, if the approximated per-pixel difference is greater than or equal to a preset threshold, it can be determined that an edge exists, but the pixel values ​​are different. That is, if the condition shown in Equation 7 is satisfied, the prediction mode is set to planar.

[0223] [Equation 7]

[0224]

[0225] According to Equation 7, if the minimum value of the normalized upper cost function value and the normalized left cost function value is greater than or equal to the preset threshold, the prediction mode is set to the plane mode. On the other hand, if the minimum value of the normalized upper cost function value and the normalized left cost function value is less than the preset threshold, implicitAngle and isPredModeTop can be determined according to Equation 4.

[0226] The thresholds may be set differently for the above two cases of determining whether an edge exists and finding that an edge exists but determining that the two reference line patterns have different shapes. For example, each threshold may be set to a preset value as shown in Equation 8.

[0227] [Equation 8]

[0228] Threshold = K, (K = 1, 2, 3, ...)

[0229] Alternatively, each threshold may be adaptively set based on the bit depth of the image, as shown in Equation 9.

[0230] [Equation 9]

[0231] Threshold = 1<<(bit depth - N), (N = 1, 2, 3, ...)

[0232] Alternatively, each threshold value may be adaptively set based on the channel. To this end, the value K in Equation 8 or the value N in Equation 9 may be set differently depending on the channel.

[0233] In the following, for the case where a predictor is generated according to implicitAngle and isPredModeTop derived according to the present disclosure, the prediction mode is defined as IMPLICT_INTRA_MODE which is an implicit prediction mode. Therefore, the information about the implicit prediction mode includes implicitAngle and isPredModeTop. Relative to the implicit prediction mode, the prediction mode presented in Table 1 is referred to as an explicit prediction mode or a prediction mode.

[0234] A method of generating a predictor according to IMPLICT_INTRA_MODE and a method of encoding / decoding a prediction mode are described below.

[0235] <Implementation 1> Using the derived prediction direction as is

[0236] In this embodiment, the video decoding device generates a predictor by using implicitAngle as it is. First, the reference line to be used may be selected based on the value of isPredModeTop. In addition, the value of implicitAngle may be derived as a value that does not correspond to the prediction mode presented in Table 1. The following example describes a case where the implicitAngle value is derived as 40 and isPredModeTop is derived as 1. In Table 1, there is no prediction mode corresponding to the implicitAngle value of 40. In this case, the video decoding device performs prediction in the relevant direction even if there is no prediction mode corresponding to implicitAngle, such as Fig.15 as shown in the example.

[0237] <Implementation Method 2> Derivation of Prediction Mode Based on Derived Prediction Direction

[0238] In this embodiment, the video decoding device derives a prediction mode as shown in Table 1 according to implicitAngle, and then generates a predictor by using the derived prediction mode. To this end, a preferred embodiment is as follows.

[0239] <Implementation 2-1> Deriving a prediction model

[0240] In this embodiment, the video decoding device derives a prediction mode (PredModeIntra) based on implicitAngle and isPredModeTop. Based on the value of isPredModeTop, the video decoding device finds the intraPredAngle closest to implicitAngle in Table 1, and sets the prediction mode to PredModeIntra corresponding to the found intraPredAngle. For example, if implicitAngle is 33 and isPredModeTop is 1, the video decoding device finds the closest intraPredAngle 32 in Table 1. Because isPredModeTop is 1, intraPredAngle 32 corresponds to mode 66, not mode 2. Therefore, the prediction mode is set to mode 66. If the two closest intraPredAngle values ​​are found, the prediction mode can be set to PredModeIntra corresponding to the smaller intraPredAngle or the larger intraPredAngle according to the embodiment.

[0241] <Implementation 2-2> Deriving multiple prediction modes and selecting one

[0242] In this embodiment, the video decoding device derives multiple prediction modes (PredModeIntra) according to implicitAngle and isPredModeTop. The video decoding device selects one of the multiple prediction modes by using the parsed information, and generates a predictor based on the selected prediction mode. The video decoding device derives N prediction modes in an order close to implicitAngle based on the value of isPredModeTop, and selects one of the derived N prediction modes by using the parsed information. At this time, according to the embodiment, N can be set to 2, 3, 4, ..., etc.

[0243] In addition, as information indicating one of the N prediction modes, an implicit prediction mode index implicitAngularModeIdx may be sent from the video encoding device to the video decoding device. The following example describes a case where implicitAngle is 44 and isPredModeTop=1. When three prediction modes are derived by referring to Table 1, prediction mode 69, prediction mode 68, and prediction mode 70 are derived in a close order. If prediction mode 69 is selected, implicitAngularModeIdx may be sent as 0.

[0244] <Implementation 3> Method for sending a flag indicating whether to derive an implicit prediction mode

[0245] A method of transmitting implicit_intra_prediction_flag which is a flag indicating whether to derive an implicit prediction mode (named “implicit prediction mode flag”) is described below.

[0246] According to the sending of implicit_intra_prediction_flag, the applicability of the present disclosure can be determined. If implicit_intra_prediction_flag is 1, the video decoding device applies the present disclosure to perform intra-frame prediction. On the other hand, if implicit_intra_prediction_flag is 0, the video decoding device performs intra-frame prediction according to a conventional method. In this case, when the method of implementation mode 2 is applied, after sending implicit_intra_prediction_flag, implicitAngularModeIdx is sent when implicit_intra_prediction_flag is 1.

[0247] According to the prior art, there is a limitation that intra_luma_ref_idx can have a non-zero value when a prediction mode is included in the MPM list. However, in this embodiment, by first sending the value of intra_luma_ref_idx before the derivation of implicitAngle, the MRL technique can be applied to all prediction modes being derived. If intra_luma_ref_idx is non-zero, then the present disclosure can be equally applied by using the relevant reference line. For example, if intra_luma_ref_idx=1, when the upper left pixel of the current block is at (0, 0), SPRL T [0] and SPRL L [0] is the reference pixel at position (-2, -2).

[0248] If implicit_intra_prediction_flag is 1, ISP technology can also be applied, but as with the prior art, if intra_luma_ref_idx is non-zero, ISP mode is not applied. If implicit_intra_prediction_flag is 1, then depending on the implementation, intra_luma_ref_idx may not be sent and a fixed value may be used. In this case, the fixed value may be intra_luma_ref_idx 0. In addition, if implicit_intra_prediction_flag is 1, neither intra_subpartitions_mode_flag nor intra_subpartitions_split_flag may be sent without applying ISP technology.

[0249] The following describes a method of decoding (or encoding) implicit_intra_prediction_flag when decoding (or encoding) of an intra prediction mode is performed, as shown in Table 4. As described above, the embodiments of the present disclosure are described centering on a video decoding device, but the embodiments can be similarly applied to a video encoding device.

[0250] Implicit_intra_prediction_flag can be decoded in the luma channel and the chroma channel, and can be decoded in different orders to accommodate different syntaxes. In the following, five methods for decoding implicit_intra_prediction_flag for the luma channel and three methods for the chroma channel are described. In the following, implicit_intra_prediction() represents a function for performing intra prediction according to the present disclosure. Embodiments 3-1 to 3-5 are decoding methods in the luma channel, and embodiments 3-6 to 3-8 are decoding methods in the chroma channel.

[0251] In addition, when composing the MPM list, if the prediction mode of the neighboring block is IMPLICT_INTRA_MODE, the prediction mode of the neighboring block is considered to be planar.

[0252] Furthermore, when encoding / decoding the prediction mode of a chroma channel, if the prediction mode of the chroma channel is DM and the corresponding prediction mode of the luma channel is IMPLICT_INTRA_MODE, the prediction mode of the chroma channel is also set to IMPLICT_INTRA_MODE.

[0253] <Implementation 3-1> First decode the implicit prediction mode flag

[0254] In this embodiment, the video decoding device first decodes implicit_intra_prediction_flag. Therefore, the cost of transmitting the prediction mode can be reduced to the lowest feasible value. The syntax configuration according to this embodiment is shown in Table 6.

[0255]

Table 6

[0256]

[0257] <Implementation 3-2> After decoding the MIP mode information, decode the implicit prediction mode flag

[0258] In this embodiment, the video decoding device decodes implicit_intra_prediction_flag after decoding the MIP mode information and before decoding the MRL information. The syntax configuration according to this embodiment is shown in Table 7.

[0259]

Table 7

[0260]

[0261]

[0262] <Implementation 3-3> After decoding the MRL information, decode the implicit prediction mode flag

[0263] In this embodiment, the video decoding device decodes implicit_intra_prediction_flag after decoding the MRL information and before decoding the ISP mode information. The syntax configuration according to this embodiment is shown in Table 8.

[0264]

Table 8

[0265]

[0266]

[0267] <Implementation 3-4> After decoding the ISP mode information, decode the implicit prediction mode flag

[0268] In this embodiment, the video decoding device decodes implicit_intra_prediction_flag after decoding the ISP mode information and before decoding the MPM information. The syntax configuration according to this embodiment is shown in Table 9.

[0269]

Table 9

[0270]

[0271]

[0272] <Implementation 3-5> Decoding Implicit Prediction Mode Flag Before MPM Remaining Mode

[0273] In this embodiment, the video decoding device decodes implicit_intra_prediction_flag before the MPM remaining mode. The syntax configuration according to this embodiment is shown in Table 10.

[0274]

Table 10

[0275]

[0276]

[0277] <Implementation 3-6> First decode the implicit prediction mode flag for the chroma channel

[0278] In this embodiment, the video decoding device first decodes the implicit_intra_prediction_flag for the chroma channel.

[0279] At the same time, in the intra-frame prediction mode of the encoding / decoding chroma channel, DM (derivation mode) is indicated as intra_chroma_pred_mode. As described above, if the prediction mode of the chroma channel is DM, and the prediction mode of the corresponding luminance channel of the chroma channel is IMPLICT_INTRA_MODE, it is equivalent to the prediction mode of the chroma channel being IMPLICT_INTRA_MODE. Therefore, if the information about implicit_intra_prediction_flag is first decoded, and the prediction mode of the corresponding luminance channel is IMPLICT_INTRA_MODE, intra_chroma_pred_mode can be encoded / decoded, wherein the value corresponding to DM is removed. In other words, according to the prior art, as shown in Table 11, encoding / decoding of intra_chroma_pred_mode is performed, while as shown in Table 12, this embodiment performs encoding / decoding, wherein the value corresponding to DM is removed, thereby increasing decoding efficiency.

[0280]

Table 11

[0281] Value of intra_chroma_pred_mode Binary String 0 100 1 101 2 110 3 111 4 0

[0282]

Table 12

[0283] Value of intra_chroma_pred_mode Binary String 0 00 1 01 2 10 3 11

[0284] The syntax configuration according to this embodiment is shown in Table 13.

[0285]

Table 13

[0286]

[0287] <Implementation 3-7> Decoding the Implicit Prediction Mode Flag after Decoding CCLM Mode Information

[0288] In this embodiment, the video decoding device decodes CCLM mode information for the chroma channel and then decodes implicit_intra_prediction_flag. If the prediction mode of the corresponding luma channel is IMPLICT_INTRA_MODE, the video decoding device can decode intra_chroma_pred_mode, where the value corresponding to DM is removed. This is the same as described in Embodiments 3-6. The syntax configuration according to this embodiment is shown in Table 14.

[0289]

Table 14

[0290]

[0291] <Implementation 3-8> Indicating IMPLICIT INTRA MODE via intra_chroma_pred_mode

[0292] In this embodiment, the video decoding device responds to the prediction mode of the chroma channel being IMPLICT_INTRA_MODE for indicating the prediction mode of the chroma channel by using intra_chroma_pred_mode. For example, intra_chroma_pred_mode is 5 to indicate that the prediction mode is IMPLICT_INTRA_MODE. For decoding efficiency of the prediction mode, as shown in Table 15, the shortest binary string is assigned to DM and IMPLICT_INTRA_MODE, and the remaining prediction modes may be assigned with the same binary string as in the prior art.

[0293]

Table 15

[0294] Value of intra_chroma_pred_mode Binary String 0 100 1 101 2 110 3 111 4 00 5 01

[0295] The syntax configuration according to this embodiment is shown in Table 16.

[0296]

Table 16

[0297]

[0298] Reference now Fig.16 and Fig.17 , a method for performing intra-frame prediction on a current block based on a derived implicit prediction mode will be described.

[0299] Fig.16 The present invention is a flowchart of a method for performing intra-frame prediction on a current block, performed by a video encoding device according to at least one embodiment of the present disclosure.

[0300] The video encoding apparatus obtains a sub-pixel reference line from an integer pixel reference line of a current block (S1600). Here, the integer pixel reference line includes an upper integer pixel reference line and a left integer pixel reference line. In addition, the sub-pixel reference line includes an upper sub-pixel reference line and a left sub-pixel reference line.

[0301] The video encoding apparatus derives an implicit prediction mode by using a sub-pixel reference line (S1602). Here, information about the implicit prediction mode IMPLICT_INTRA_MODE includes a prediction direction implicitAngle and an upward prediction mode flag isPredModeTop, and the upward prediction mode flag indicates whether the prediction direction is upward.

[0302] After applying the mapping k to the upper integer pixel reference line or the upper sub-pixel reference line, the video encoding device calculates an upper cost function f representing the difference between the mapped upper reference line and the left reference line. T (k) Here, the left reference line represents a left integer pixel reference line or a left sub-pixel reference line. The video encoding device derives the mapping value that minimizes the value of the above upper cost function as the upper implicit prediction direction implicitAngleTop.

[0303] The left reference line indicates a left integer-pixel reference line or a left sub-pixel reference line, and the upper reference line indicates an upper integer-pixel reference line or an upper sub-pixel reference line.

[0304] In addition, after applying the mapping k to the left integer pixel reference line or the left sub-pixel reference line, the video encoding apparatus calculates a left cost function f representing a difference between the mapped left reference line and the upper reference line. L Here, the upper reference line represents an upper integer pixel reference line or an upper sub-pixel reference line. The video encoding device derives the mapping value that minimizes the value of the left cost function as the left implicit prediction direction implicitAngleLeft.

[0305] Meanwhile, the range of the above-described mapping may be determined based on the aspect ratio of the current block.

[0306] The video encoding device may normalize the value of the upper cost function calculated according to the upper implicit prediction direction based on the height of the current block. T(implicitAngleTop). In addition, the video encoding device normalizes the value of the left cost function f calculated according to the left implicit prediction direction based on the width of the current block L (implicitAngleLeft). Based on the comparison result between the normalized upper cost function value and the normalized left cost function value, the video encoding apparatus determines the prediction direction implicitAngle and the upward prediction mode flag isPredModeTop as information about the implicit prediction mode by using the upper implicit prediction direction and the left implicit prediction direction.

[0307] In addition, the video encoding device checks whether the graphs of the two reference lines have different shapes. For example, if the minimum value of the normalized upper cost function value and the normalized left cost function value is greater than or equal to a predetermined threshold, the video encoding device sets the prediction mode of the current block to the planar mode. Therefore, if the minimum value of the normalized upper cost function value and the normalized left cost function value is less than a predetermined threshold, the video encoding device can determine information about the implicit prediction mode.

[0308] In addition, the video encoding device may determine whether an edge exists in an integer pixel reference line. For example, the video encoding device may determine the presence or absence of an edge by using a second-order derivative (i.e., a Laplace value). If an edge exists in both the upper integer pixel reference line and the left integer pixel reference line, the video encoding device derives an implicit prediction mode as described above. On the other hand, if an edge does not exist in the upper integer pixel reference line or the left integer pixel reference line, the video encoding device does not derive an implicit prediction mode, and sets the prediction mode of the current block to the DC mode.

[0309] The video encoding apparatus generates a first intra predictor of the current block by using the integer-pixel reference line and the implicit prediction mode (S1604).

[0310] The video encoding apparatus may utilize the implicit prediction mode because the implicit prediction mode is used to generate a predictor of the current block.

[0311] Alternatively, the video encoding device may refer to the upward prediction mode flag to set the prediction mode of the current block to a prediction mode closest to the prediction direction of the implicit prediction mode. The video encoding device may then generate a predictor for the current block by using the set prediction mode.

[0312] Optionally, the video encoding device may refer to the upward prediction mode flag to derive a predetermined number of prediction modes in an order close to the prediction direction of the implicit prediction mode. In terms of optimizing rate distortion, the video encoding device may select one of the derived prediction modes as the prediction mode of the current block. Thereafter, the video encoding device may generate a predictor for the current block by using the selected prediction mode. In addition, the video encoding device encodes an implicit prediction mode index implicitAngularModeIdx indicating one of the selected derived prediction modes.

[0313] The video encoding apparatus determines a prediction mode of the current block (S1606).

[0314] Here, the prediction mode may be the prediction mode according to Fig. 3B. Alternatively, the prediction mode may be a prediction mode according to MIP, ISP, etc.

[0315] The video encoding apparatus generates a second intra predictor of the current block by using the reference line and the prediction mode (S1608).

[0316] The video encoding apparatus determines an implicit prediction mode flag by using a first intra predictor and a second intra predictor (S1610).

[0317] Here, the implicit prediction mode flag implicit_intra_prediction_flag indicates whether to derive an implicit prediction mode. For example, the video encoding device may generate the best predictor between the first intra predictor and the second intra predictor in terms of optimized distortion for the current block. When the best predictor is the first intra predictor, the video encoding device may set the implicit prediction mode flag to true. On the other hand, when the best predictor is the second intra predictor, the video encoding device may set the implicit prediction mode flag to false.

[0318] The video encoding apparatus encodes an implicit prediction mode flag (S1612).

[0319] Fig.17 The present invention is a flowchart of a method for performing intra-frame prediction on a current block, performed by a video decoding device according to at least one embodiment of the present disclosure.

[0320] The video decoding apparatus decodes the implicit prediction mode flag (S1700).

[0321] The video decoding apparatus checks the value of the implicit prediction mode flag (S1702).

[0322] If the implicit prediction mode flag implicit_intra_prediction_flag is true (Yes in S1702 ), the video decoding apparatus performs the following steps ( S1704 to S1708 ).

[0323] The video decoding device generates sub-pixel reference lines according to integer pixel reference lines (S1704). Here, the integer pixel reference lines include upper integer pixel reference lines and left integer pixel reference lines. In addition, the sub-pixel reference lines include upper sub-pixel reference lines and left sub-pixel reference lines.

[0324] The video decoding apparatus derives an implicit prediction mode by using a sub-pixel reference line (S1706). Here, information about the implicit prediction mode IMPLICT_INTRA_MODE includes a prediction direction of implicitAngle and an upward prediction mode flag of isPredModeTop, and the upward prediction mode flag indicates whether the prediction direction is upward.

[0325] The video decoding apparatus can derive the implicit prediction mode in the same manner as the video encoding apparatus, and thus no additional description is provided.

[0326] The video decoding apparatus generates an intra predictor for the current block by using the integer pixel reference line and the implicit prediction mode (S1708).

[0327] The video decoding apparatus may utilize the implicit prediction mode as it is because the implicit prediction mode is used to generate a predictor of the current block.

[0328] Alternatively, the video decoding device may refer to the upward prediction mode flag to set the prediction mode of the current block to a prediction mode closest to the prediction direction of the implicit prediction mode. Then, the video decoding device may generate a predictor of the current block by using the set prediction mode.

[0329] Optionally, the video decoding device may decode an implicit prediction mode index implicitAngularModeIdx. The video decoding device refers to the upward prediction mode flag to derive a predetermined number of prediction modes in order close to the prediction direction of the implicit prediction mode. The video encoding device may select one of the prediction modes derived by using the implicit prediction mode index as the prediction mode of the current block. Then, the video decoding device may generate a predictor of the current block by using the selected prediction mode.

[0330] On the other hand, if the implicit prediction mode flag is false (No in S1702), the video decoding apparatus performs the following steps (S1720 and S1722).

[0331] The video decoding apparatus decodes a prediction mode of the current block (S1720). Here, the prediction mode may be a prediction mode according to FIG. 3B. Alternatively, the prediction mode may be a prediction mode according to MIP, ISP, etc.

[0332] The video decoding apparatus generates an intra predictor of the current block by using the integer pixel reference line and the prediction mode (S1722).

[0333] Although the steps in each flowchart are described as being performed sequentially, these steps merely illustrate the technical concepts of some embodiments of the present disclosure. Therefore, a person of ordinary skill in the art to which the present disclosure belongs can perform the steps by changing the order described in each figure or by performing two or more steps in parallel. Therefore, the steps in each flowchart are not limited to the sequence of the chronological order shown.

[0334] It should be understood that the above description presents illustrative embodiments that can be implemented in various other ways. The functions described in some embodiments can be implemented by hardware, software, firmware and / or a combination thereof. It should also be understood that the functional components described in this disclosure are marked by "... units" to strongly emphasize the possibility of their independent implementation.

[0335] Meanwhile, the various methods or functions described in some embodiments may be implemented as instructions stored in a non-transient recording medium that can be read and executed by one or more processors. For example, the non-transient recording medium may include various types of recording devices, in which data is stored in a form readable by a computer system. For example, the non-transient recording medium may include storage media such as erasable programmable read-only memory (EPROM), flash drives, optical drives, magnetic hard drives, and solid-state drives (SSD).

[0336] Although the embodiments of the present disclosure have been described for illustrative purposes, however, those of ordinary skill in the art to which the present disclosure belongs should recognize that various modifications, additions, and substitutions are feasible without departing from the concept and scope of the present disclosure. Therefore, for the sake of brevity and clarity, the embodiments of the present disclosure have been described. The scope of the technical concept of the embodiments of the present disclosure is not limited by the diagrams. Therefore, those of ordinary skill in the art to which the present disclosure belongs should understand that the scope of the present disclosure should not be limited by the embodiments explicitly described above, but by the claims and their equivalents.

[0337] (reference number)

[0338] 122: Intra-frame predictor

[0339] 155: Entropy Encoder

[0340] 510: Entropy Decoder

[0341] 544: Intra-frame predictor.

Claims

1. A method for performing intra-frame prediction on a current block performed by a video decoding device, the method include: generating sub-pixel reference lines including an upper sub-pixel reference line and a left sub-pixel reference line according to integer pixel reference lines, wherein the integer pixel reference lines belong to the current block and include the upper integer pixel reference line and the left integer pixel reference line; Inducing an implicit prediction mode by using the sub-pixel reference line, wherein information about the implicit prediction mode includes a prediction direction and an upward prediction mode flag indicating whether the prediction direction is upward; and An intra predictor for the current block is generated by using the integer-pixel reference line and the implicit prediction mode.

2. The method according to claim 1, further comprising: include: decoding an implicit prediction mode flag indicating whether to derive the implicit prediction mode; and checking the value of the implicit prediction mode flag; Wherein, when the implicit prediction mode flag is true, the method further includes: The implicit prediction mode is derived.

3. The method according to claim 1, in, Deriving the implicit prediction mode includes: Applying mapping to the upper integer pixel reference line or the upper sub-pixel reference line, calculating a value of an upper cost function representing a difference between the mapped upper reference line and a left reference line, and deriving a mapping value that minimizes the value of the upper cost function as an upper implicit prediction direction; and Applying the mapping to the left integer pixel reference line or the left sub-pixel reference line, calculating a value of a left cost function representing a difference between the mapped left reference line and an upper reference line, and deriving a mapping value that minimizes the value of the left cost function as a left implicit prediction direction; The upper reference line represents the upper integer pixel reference line or the upper sub-pixel reference line, and the left reference line represents the left integer pixel reference line or the left sub-pixel reference line.

4. The method according to claim 3, in, Deriving the implicit prediction mode includes: Normalizing the value of the upper cost function calculated in the upper implicit prediction direction based on the height of the current block, and normalizing the value of the left cost function calculated in the left implicit prediction direction based on the width of the current block, and wherein, when the minimum value between the normalized value of the upper cost function and the normalized value of the left cost function is less than a predetermined threshold, the method further includes: The prediction direction and the upward prediction mode flag are determined by using the upper implicit prediction direction and the left implicit prediction direction.

5. The method according to claim 4, further comprising: include: When a minimum value between the normalized value of the upper cost function and the normalized value of the left cost function is greater than or equal to the predetermined threshold, the prediction mode of the current block is set to the planar mode.

6. The method according to claim 3, further comprising: include: The range of the mapping is determined based on an aspect ratio of the current block.

7. The method according to claim 1, further comprising: include: determining whether an edge exists or does not exist in the integer pixel reference line, Wherein, when the edge exists in both the upper integer pixel reference line and the left integer pixel reference line, the method further comprises: The implicit prediction mode is derived.

8. The method according to claim 7, further comprising: include: When the edge does not exist in both the upper integer pixel reference line and the left integer pixel reference line, the derivation of the implicit prediction mode is suspended, and the prediction mode of the current block is set to a DC mode.

9. The method according to claim 1, in, Generating an intra predictor for the current block includes: According to the implicit prediction mode, deriving the prediction mode of the current block; and By using the prediction mode, the intra predictor is generated.

10. The method according to claim 9, in, Deriving the prediction mode of the current block includes: The prediction mode of the current block is set to the prediction direction of the implicit prediction mode by referring to the upward prediction mode flag.

11. The method according to claim 9, in, Deriving the prediction mode of the current block includes: By referring to the upward prediction mode flag, the prediction mode of the current block is set to a prediction mode closest to the prediction direction of the implicit prediction mode.

12. The method according to claim 9, in, Deriving the prediction mode of the current block includes: Decode implicit prediction mode index; deriving a predetermined number of prediction modes in order of the prediction direction close to the implicit prediction mode by referring to the upward prediction mode flag; and By using the implicit prediction mode index, one of the derived prediction modes is selected as the prediction mode of the current block.

13. A method for performing intra-frame prediction on a current block performed by a video encoding device, the method include: generating sub-pixel reference lines including an upper sub-pixel reference line and a left sub-pixel reference line according to integer pixel reference lines, wherein the integer pixel reference lines belong to the current block and include the upper integer pixel reference line and the left integer pixel reference line; Inducing an implicit prediction mode by using the sub-pixel reference line, wherein information about the implicit prediction mode includes a prediction direction and an upward prediction mode flag indicating whether the prediction direction is upward; and A first intra predictor for the current block is generated by using the integer-pixel reference line and the implicit prediction mode.

14. The method according to claim 13, further comprising: include: Determining a prediction mode for the current block; A second intra predictor for the current block is generated by using the integer-pixel reference line and the prediction mode.

15. The method according to claim 14, further comprising: include: determining, by using the first intra predictor and the second intra predictor, an implicit prediction mode flag indicating whether to derive the implicit prediction mode; and Encode the implicit prediction mode flag.

16. A computer-readable recording medium storing a bit stream generated by a video encoding method, wherein the video encoding method include: generating sub-pixel reference lines including an upper sub-pixel reference line and a left sub-pixel reference line according to integer pixel reference lines, wherein the integer pixel reference lines belong to a current block and include the upper integer pixel reference line and the left integer pixel reference line; Inducing an implicit prediction mode by using the sub-pixel reference line, wherein information about the implicit prediction mode includes a prediction direction and an upward prediction mode flag indicating whether the prediction direction is upward; and An intra predictor for the current block is generated by using the integer-pixel reference line and the implicit prediction mode.