Method of encoding or decoding video data and method of storing a bitstream

By determining the most probable mode (MPM) of the current block of video data and grouping intra-frame modes in a non-MPM list, the problem of low coding efficiency of intra-frame prediction modes in high-resolution videos is solved, achieving more efficient video compression.

CN116962683BActive Publication Date: 2026-06-30SK TELECOM CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SK TELECOM CO LTD
Filing Date
2017-10-17
Publication Date
2026-06-30

AI Technical Summary

Technical Problem

Existing video coding techniques have low coding efficiency for intra-prediction modes in high-resolution videos, especially as the prediction block unit becomes larger and the intra-prediction mode index value increases, leading to a decrease in compression efficiency.

Method used

By determining the most probable mode (MPM) of the current block of video data and grouping intra-modes in a non-MPM list, group indexing is used instead of explicit indexing of intra-modes, reducing the number of encoded bits.

Benefits of technology

It improves the coding efficiency of intra-frame prediction mode, reduces the number of coding bits, and enhances video compression performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116962683B_ABST
    Figure CN116962683B_ABST
Patent Text Reader

Abstract

This invention relates to methods for encoding or decoding video data and methods for storing bitstreams. Specifically, it relates to efficiently signaling the intra-prediction mode used to predict the current block during intra-frame predictive coding. According to one aspect of the invention, an image coding apparatus divides a plurality of intra-frame modes into multiple groups and selects the group to which the actual intra-frame mode of the current block to be encoded belongs, and the image coding apparatus signals the value corresponding to that group. An image decoding apparatus obtains information from the bitstream about the group to which the actual intra-frame mode of the current block belongs, and then selects the final intra-frame mode by evaluating the intra-frame modes belonging to that group.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the original invention patent application No. 201780064067.3 (International Application No.: PCT / KR2017 / 011455, Application Date: October 17, 2017, Invention Title: Apparatus and Method for Encoding or Decoding Images). Technical Field

[0002] This invention relates to the efficient encoding or decoding of video. More specifically, this invention relates to a method and apparatus for encoding and decoding intra-prediction modes that predict the current block in intra-frame prediction. Background Technology

[0003] The statements in this section provide only background information about this disclosure and do not necessarily constitute prior art.

[0004] There are multiple intra-frame prediction modes that use pixel information from the current image to predict the pixel values ​​included in the current image for intra-frame prediction and encoding. The video encoding device selects a final mode from these multiple intra-frame prediction modes for the current block to be encoded and sends information about the selected mode to the video decoding device. In this operation, the most probable mode (MPM) is used to efficiently represent the selected intra-frame mode.

[0005] Figure 1 This diagram illustrates the intra-frame modes available for intra-frame prediction in standard HEVC. In the case of HEVC, there are a total of 35 intra-frame modes, including 33 directional angular modes and two non-directional modes, such as... Figure 1 As shown in the diagram. In order to encode the final intra-mode of the current block to be encoded from among these 35 modes, three MPMs are selected for the current block based on the intra-modes used for neighboring blocks around the current block and the intra-mode that is statistically the most frequently used.

[0006] A 1-bit MPM flag indicating whether the final mode of the current block is the same as the MPM is sent, and if the final mode is MPM, the MPM index value is further sent. If the final mode is not MPM, an explicit indication of which of the remaining modes is the final mode is sent.

[0007] As video resolution increases, the units of the prediction blocks also become larger, making it possible to add many new intra-frame modes. However, if the predicted MPM still differs from the final mode, in some cases it may be necessary to send the mode index value as a fixed-length code.

[0008] Additionally, adding many new intra-frame modes and increasing the number of MPMs to be predicted accordingly with increasing video size can improve prediction efficiency. However, since the MPM index values ​​are represented in truncated unary form, increasing the number of MPMs is likely to reduce compression efficiency.

[0009] Furthermore, by generating coding units in various shapes based on the tree structure corresponding to luma and chroma, typical modes (e.g., direct modes) can be represented by flags and used to compress intra-modes of chroma when various intra-modes computed during luma coding can be used to represent planar mode, DC mode, vertical mode, horizontal mode, DM mode, and LM mode. Summary of the Invention

[0010] Technical issues

[0011] Therefore, the present invention was made with the above problems in mind, and one object of the present invention is to efficiently inform the intra prediction mode used to predict the current block during intra prediction coding with information.

[0012] Technical solution

[0013] According to one aspect of the present invention, a method for encoding video data is provided, the method comprising the steps of: determining an intra-mode for predicting a current block of the video data; determining the most probable mode (MPM) for the current block of the video data; and encoding intra-mode data of the current block. When any of the MPMs differs from the intra-mode for predicting the current block, the step of encoding the intra-mode data of the current block comprises the steps of: encoding an MPM flag indicating that the intra-mode for predicting the current block is not an MPM; generating a list of non-MPMs by removing the MPMs from the possible intra-modes, wherein the intra-modes in the list of non-MPMs are divided into multiple groups; and encoding data indicating the index of the group to which the intra-mode of the current block belongs in the list of non-MPMs.

[0014] According to another aspect of the invention, a method for decoding video data is provided, the method comprising the steps of: determining the most probable mode (MPM) for a current block of the video data; decoding an MPM flag from a bitstream indicating whether the intra-mode for predicting the current block is an MPM; and when the MPM flag indicates that the intra-mode for predicting the current block is not an MPM, using non-MPMs other than the MPM among the possible intra-modes to determine the intra-mode for the current block. The step of using the non-MPMs to determine the intra-mode for predicting the current block comprises the steps of: generating a list of non-MPMs divided into multiple non-MPM groups; decoding data from the bitstream indicating the index of the non-MPM group to which the intra-mode for predicting the current block belongs; and evaluating the non-MPMs belonging to the group indicated by the index of the non-MPM group to select the intra-mode for the current block.

[0015] According to another aspect of the invention, an apparatus for decoding video data is provided, the apparatus comprising: a memory; and one or more processors, wherein the one or more processors are configured to perform the following operations: determining the most probable mode (MPM) for a current block of the video data; decoding an MPM flag from a bitstream indicating whether the intra-mode for predicting the current block is an MPM; and when the MPM flag indicates that the intra-mode for predicting the current block is not an MPM, using non-MPMs other than the MPM among the possible intra-modes to determine the intra-mode for the current block. The step of using the non-MPMs to determine the intra-mode for predicting the current block includes the following steps: generating a list of non-MPMs divided into multiple non-MPM groups; decoding data from the bitstream indicating an index of the non-MPM group to which the intra-mode for predicting the current block belongs; and evaluating the non-MPMs belonging to the group indicated by the index of the non-MPM group to select the intra-mode for the current block. Attached Figure Description

[0016] Figure 1 This is a diagram showing the intra-frame modes that can be used for intra-frame prediction in HEVC.

[0017] Figure 2 This is a block diagram of a video encoding device according to an embodiment of the present invention.

[0018] Figure 3 This is an example diagram of block separation using the QTBT structure.

[0019] Figure 4 Examples of various intra-frame prediction modes are shown.

[0020] Figure 5 This is an example graph of the neighboring blocks around the current block.

[0021] Figure 6 An example of a video decoding device according to an embodiment of the present invention is shown.

[0022] Figure 7 This is a flowchart illustrating an exemplary method for encoding video data according to one or more examples of the present invention.

[0023] Figure 8 This is a flowchart illustrating another exemplary method for encoding video data according to one or more examples of the present invention.

[0024] Figure 9 This is a flowchart illustrating an exemplary method for decoding video data according to one or more examples of the present invention.

[0025] Figure 10 This is a flowchart illustrating another exemplary method for decoding video data according to one or more examples of the present invention.

[0026] Figure 11 This is a diagram illustrating reference pixels used to generate prediction blocks during intra-frame predictive coding. Detailed Implementation

[0027] Hereinafter, some embodiments of the invention will be described in detail with reference to the accompanying drawings. It should be noted that when adding reference numerals to constituent elements in the corresponding drawings, similar reference numerals designate similar elements, even though these elements are shown in different drawings. Furthermore, in the following description of the invention, detailed descriptions of known functions and configurations incorporated herein will be omitted where such detailed descriptions would make the subject matter of the invention quite unclear.

[0028] Figure 2 This is a block diagram of a video encoding device according to an embodiment of the present invention.

[0029] The video encoding device includes a block splitter 210, a predictor 220, a subtractor 230, a converter 240, a quantizer 245, an encoder 250, an inverse quantizer 260, an inverse converter 265, an adder 270, a filter unit 280, and a memory 290. Each component of the video encoding device can be implemented as a hardware chip or as software, and a microprocessor can be implemented to execute the software functions corresponding to the respective component.

[0030] Block separator 210 separates each image constituting the video into multiple coding tree units (CTUs), and then uses a tree structure to recursively separate the CTUs. The leaf nodes in the tree structure are coding units (CUs), which are the basic units of coding. A quadtree (QT) structure where nodes are separated into four child nodes, or a quadtree plus binary tree (QTBT) structure combining a QT structure with a binary tree (BT) structure where nodes are separated into two child nodes, can be used as the tree structure.

[0031] In the Quadtree Plus Binary Tree (QTBT) structure, the CTU is first separated according to the QT structure. Subsequently, the leaf nodes of the QT can be further separated according to the BT. The separation information generated by the block separator 210 through CTU segmentation according to the QTBT structure is encoded by the encoder 250 and sent to the video decoding device.

[0032] In Qt, a first flag (QT_split_flag) indicating whether to split the corresponding node's blocks is encoded. When the first flag is 1, the node's blocks are split into four blocks of the same size. When the first flag is 0, the node is not further split according to Qt.

[0033] In BitTorrent (BT), a second flag (BT_split_flag) indicating whether to split the corresponding node's block is encoded. BT can have multiple splitting types. For example, there can be a type that splits a node's block horizontally into two blocks of the same size, and a type that splits a node's block vertically into two blocks of the same size. Additionally, there can be another type that splits a node's block asymmetrically into two blocks. Asymmetrical splitting types can include a type that splits a node's block into two rectangular blocks in a 1:3 ratio, or a type that splits a node's block diagonally. In cases where BT has multiple splitting types as described above, the second flag indicating whether a block is split is encoded, and additionally, splitting type information indicating the type of block split is encoded.

[0034] Figure 3 This is an example diagram of block separation using a QTBT structure. Figure 3 In the diagram, (a) illustrates the separation of blocks according to the QTBT structure, and (b) represents the separation in a tree structure. Figure 3 In the diagram, solid lines represent separation based on the QT structure, and dashed lines represent separation based on the BT structure. Figure 3 In (b), regarding the symbols for layers, a layer without parentheses represents a layer in QT, and a layer within parentheses represents a layer in BT. In the BT structure represented by dashed lines, numbers are delimited type information.

[0035] exist Figure 3In this process, the CTU, which is the top layer of QT, is split into four nodes of layer 1. Therefore, the block splitter 210 generates a QT split flag (QT_split_flag = 1) indicating that the CTU has been split. The block corresponding to the first node of layer 1 is no longer split according to QT. Therefore, the block splitter 210 generates QT_split_flag = 0.

[0036] Then, the block corresponding to the first node of layer 1 of QT undergoes BT. In this embodiment, it is assumed that BT has two splitting types: a type that splits the node's block horizontally into two blocks of the same size and a type that splits the node's block vertically into two blocks of the same size. The first node of layer 1 of QT becomes the root node of BT "(layer 0)". The block corresponding to the root node of BT is further split into "(layer 1)" blocks, so the block splitter 210 generates BT_split_flag = 1, indicating that the block is split by BT. Thereafter, the block splitter 210 generates splitting type information indicating whether the block is split horizontally or vertically. Figure 3 In this process, since the block corresponding to the root node of BT is vertically split, a "1" indicating vertical split is generated as the split type information. Within the "(Layer 1)" block split from the root node, the first block is further split according to the vertical split type, thus generating BT_split_flag = 1 and the split type information "1". On the other hand, the second block (Layer 1) split from the root node of BT is no longer split, therefore BT_split_flag = 0 is generated for this purpose.

[0037] To efficiently signal information about block separation according to the QTBT structure to the decoding device, the following information can be further encoded. This information can be encoded as image header information, such as the Sequence Parameter Set (SPS) or Picture Parameter Set (PPS).

[0038] -CTU size: The block size of the topmost level (i.e., the root node) of the QTBT;

[0039] -MinQTSize: The minimum block size allowed for leaf nodes in Qt;

[0040] -MaxBTSize: The maximum block size allowed for leaf nodes in BT;

[0041] -MaxBTDepth: The maximum depth allowed in BT;

[0042] -MinBTSize: The minimum block size allowed for leaf nodes in BitTorrent.

[0043] In QT, blocks of the same size as MinQTSize are not further separated, therefore the separation information (first flag) for the QT corresponding to that block is not encoded. Additionally, in QT, blocks larger than MaxBTSize do not have a BT. Therefore, the separation information (second flag, separation type information) for the BT corresponding to that block is not encoded. Furthermore, when the depth of the node corresponding to a BT reaches MaxBTDepth, the node's blocks are not further separated, and the corresponding separation information (second flag, separation type information) for the node's BT is not encoded. Furthermore, blocks in the BT of the same size as MinBTSize are not further separated, and the corresponding separation information (second flag, separation type information) for the BT is not encoded. By defining the maximum or minimum block size that the root or leaf nodes of QT and BT can have at a high level such as the Sequence Parameter Set (SPS) or Picture Parameter Set (PPS) as described above, the amount of information encoding information indicating the separation state and separation type of the CTU can be reduced.

[0044] In implementations, the same QTBT structure can be used to separate the luma and chroma components of the CTU. However, the invention is not limited to this. Different QTBT structures can be used to separate the luma and chroma components. For example, in the case of intra-frame (I) slices, different QTBT structures can be used to separate the luma and chroma components.

[0045] In the following text, the block corresponding to the CU to be encoded or decoded is referred to as the "current block".

[0046] Predictor 220 generates a prediction block by predicting the current block. Predictor 220 includes an intra-frame predictor 222 and an inter-frame predictor 224.

[0047] Intra-predictor 222 uses pixels (reference samples) in the current image surrounding the current block to predict pixels in the current block. Multiple intra-prediction modes exist depending on the prediction direction, and the neighboring pixels and calculation formulas to be used are defined differently for each prediction mode. Specifically, intra-predictor 222 can determine the intra-prediction mode to be used for encoding the current block. In some implementations, intra-predictor 222 can attempt to encode the current block using multiple intra-prediction modes and then select the appropriate intra-prediction mode to use from the tested modes. For example, intra-predictor 222 can use rate-distortion analysis of multiple tested intra-prediction modes to calculate rate-distortion values ​​and select the intra-prediction mode with the best rate-distortion characteristics from the tested modes.

[0048] Figure 4 These are example diagrams of various intra-frame prediction modes.

[0049] like Figure 4 As shown, the various intra-frame prediction modes can include two non-directional modes (planar mode and DC mode) and 65 directional modes.

[0050] Intra-predictor 222 selects an intra-prediction mode from a variety of intra-prediction modes and generates a prediction block using reconstructed neighbor samples (reference samples) and an equation determined by the selected intra-prediction mode for predicting the current block. Information about the selected intra-prediction mode is encoded by encoder 250 and sent to video decoding device.

[0051] To efficiently encode intra-prediction mode information indicating which of several intra-prediction modes will be used as the intra-prediction mode for the current block, intra-prediction unit 222 determines some intra-prediction modes and considers these modes as the most probable mode (MPM) most likely to be used as the intra-prediction mode for the current block. Intra-prediction unit 222 then generates mode information indicating whether the intra-prediction mode for the current block has been selected from the MPM list and sends this mode information to encoder 250. Typically, when the intra-prediction mode for the current block is selected from the MPM list, intra-prediction unit 222 sends first intra-prediction information to encoder 250 indicating which of the MPM modes was selected as the intra-prediction mode for the current block. On the other hand, when the intra-prediction mode for the current block is not selected from the MPM list, second intra-identification information indicating which of the remaining modes (i.e., non-MPM) was selected as the intra-prediction mode for the current block is sent to encoder 250. Alternatively, according to one aspect of the invention, the intra-predictor 222 may group MPMs and / or non-MPMs and signal the index of the group to which the intra-prediction mode of the current block belongs, rather than explicitly signaling which of the MPMs and / or non-MPMs is selected as the intra-prediction mode for the current block.

[0052] The method for generating the MPM list will be described below. Although the construction of the MPM list using six MPMs is described, the invention is not limited thereto. The number of MPMs included in the MPM list can range from 3 to 10.

[0053] First, a list of MPMs is constructed using the intra-prediction modes of neighboring blocks surrounding the current block. In one example, such as... Figure 5As shown, neighboring blocks may include, for example, some or all of the left block L, top block A, bottom left block BL, top right block AR, and top left block AL of the current block. The intra-prediction modes of these neighboring blocks are included in the MPM list. Here, only the intra-prediction modes of available blocks are included in the MPM list in the order of left block L, top block A, bottom left block BL, top right block AR, and top left block AL, and then the MPM list is constructed by additionally adding planar and DC modes. Alternatively, the intra-prediction modes of neighboring blocks can be added to the MPM list in the order of left block L and top block A, along with planar and DC modes, and then the intra-prediction modes of left block BL, top right block AR, and top left block AL can be added to the MPM list.

[0054] The MPM list only includes different intra-prediction modes. That is, when there are repeated modes, the MPM list only includes one of the repeated modes.

[0055] When the number of MPMs in the list is less than a predetermined number (e.g., 6), additional MPMs can be derived by adding a -1 angle mode or a +1 angle mode based on the orientation mode in the list. Additionally, when the number of MPMs in the list is less than the predetermined number, predetermined default modes are added to the MPM list in the order of vertical mode, horizontal mode, diagonal mode, etc.

[0056] Inter-frame predictor 224 searches for the most similar block to the current block in a reference image that was encoded and decoded earlier than the current image, and uses the searched block to generate a predicted block for the current block. Then, inter-frame predictor 224 generates a motion vector corresponding to the displacement between the current block in the current image and the predicted block in the reference image. Motion information, including information about the reference image used to predict the current block and information about the motion vector, is encoded by encoder 250 and sent to the video decoding device.

[0057] Subtractor 230 subtracts the predicted block generated by intra-predictor 222 or inter-predictor 224 from the current block to generate a residual block.

[0058] Transformer 240 transforms the residual signal in a residual block with pixel values ​​in the spatial domain into transform coefficients in the frequency domain. Transformer 240 can use the size of the current block as a transform unit (TU) to transform the residual signal in the residual block. Alternatively, the residual block can be divided into multiple smaller sub-blocks, and then the residual signal can be transformed using a transform unit (TU) corresponding to the size of each sub-block. Various methods can exist for dividing the residual block into smaller sub-blocks. For example, the residual block can be divided into sub-blocks of the same predefined size, or the residual block can be divided in a quadtree (QT) manner with the residual block as the root node.

[0059] Quantizer 245 quantizes the transformation coefficients output from converter 240 and outputs the quantized transformation coefficients to encoder 250.

[0060] Encoder 250 uses an encoding scheme such as CABAC to encode the quantized transform coefficients to generate a bitstream. Encoder 250 encodes information associated with block separation, such as CTU size, MinQTSize, MaxBTSize, MaxBTDepth, MinBTSize, QT separation flag, BT separation flag, and separation type, so that the video decoding device separates blocks in the same way as the video encoding device.

[0061] Encoder 250 encodes information about the prediction type, indicating whether the current block is encoded by intra-frame prediction or inter-frame prediction, and encodes the intra-frame prediction information or inter-frame prediction information according to the prediction type.

[0062] Inverse quantizer 260 inverse quantizes the quantized transform coefficients output from quantizer 245 to generate transform coefficients. Inverse transformer 265 transforms the transform coefficients output from inverse quantizer 260 from the frequency domain to the spatial domain and recovers the residual block.

[0063] Adder 270 adds the reconstructed residual block to the prediction block generated by predictor 220 to recover the current block. Pixels in the reconstructed current block are used as reference pixels for performing intra-frame prediction of the next block in sequence.

[0064] Filter unit 280 performs deblocking filtering on the boundaries between reconstructed blocks to remove block artifacts caused by block-by-block encoding / decoding, and stores the deblocked blocks in memory 290. When reconstructing all blocks in an image, the reconstructed image is used as a reference image for inter-frame prediction of blocks in subsequent images to be encoded.

[0065] The following text will describe video decoding devices.

[0066] Figure 6 This is a block diagram of a video decoding device according to an embodiment of the present invention.

[0067] The video decoding device includes a decoder 610, an inverse quantizer 620, an inverse converter 630, a predictor 640, an adder 650, a filter unit 660, and a memory 670. For example... Figure 2 As with video encoding devices, each component of a video encoding device can be implemented as a hardware chip or as software, and a microprocessor can be implemented to execute the software functions corresponding to the respective components.

[0068] Decoder 610 decodes the compressed bitstream received from the video encoding device, extracts information related to block separation to determine the current block to be decoded, and outputs the prediction information necessary to recover the current block and information about the residual signal.

[0069] Decoder 610 extracts information about the CTU size from the Sequence Parameter Set (SPS) or Picture Parameter Set (PPS), determines the size of the CTU, and separates the image into CTUs of the determined size. Then, decoder 610 determines that the CTU is at the top level of the tree structure (i.e., the root node) and extracts separation information about the CTU to use the tree structure to separate the CTU. For example, when using a QTBT structure to separate the CTU, first, a first flag (QT_split_flag) related to QT separation is extracted, and each node is separated into four nodes at the lower level. For nodes corresponding to leaf nodes of QT, a second flag (BT_split_flag) related to BT separation and the separation type are extracted to separate the leaf nodes of QT within the BT structure.

[0070] exist Figure 3 In the example of the block-splitting structure, the QT_split_flag corresponding to the topmost node of the QTBT structure is extracted. Since the extracted QT_split_flag value is 1, the topmost node is split into four nodes in the lower layer (layer 1 of QT). Then, the QT_split_flag of the first node of layer 1 is extracted. Since the extracted QT_split_flag value is 0, the first node of layer 1 is not further split in the QT structure.

[0071] Since the first node of layer 1 in QT is a leaf node of QT, this operation is performed before the BT that uses the first node of layer 1 in QT as the root node of the BT. The BT_split_flag corresponding to the root node of the BT, i.e., "(layer 0)", is extracted. Since BT_split_flag is 1, the root node of the BT is split into two nodes of "(layer 1)". Since the root node of the BT is split, separation type information indicating whether the block corresponding to the root node of the BT is split vertically or horizontally is extracted. Since the separation type information is 1, the block corresponding to the root node of the BT is split vertically. Then, the decoder 610 extracts the BT_split_flag of the first node of the split "(layer 1)" from the root node of the BT. Since BT_split_flag is 1, separation type information about the block of the first node of "(layer 1)" is extracted. Since the separation type information about the block of the first node of "(layer 1)" is 1, the block of the first node of "(layer 1)" is split vertically. Then, extract the BT_split_flag of the second node "(layer 1)" separated from the root node of BT. Since BT_split_flag is 0, the node is not further separated by BT.

[0072] In this way, decoder 610 recursively extracts the QT_split_flag and separates the CTU within the QT structure. Decoder 610 extracts the BT_split_flag of the leaf nodes of the QT. When the BT_split_flag indicates separation, separation type information is extracted. In this way, decoder 610 can confirm that the CTU has been separated into the following forms: Figure 3 The structure shown in (a).

[0073] When additional information such as MinQTSize, MaxBTSize, MaxBTDepth, and MinBTSize is defined in SPS or PPS, decoder 610 extracts the additional information and uses it to extract separation information about QT and BT.

[0074] For example, in QT, blocks of the same size as MinQTSize are not further split. Therefore, decoder 610 does not extract the QT-related separation information (QT separation flag) of the block from the bitstream (i.e., there is no QT separation flag for the block in the bitstream), and automatically sets the corresponding value to 0. Additionally, in QT, blocks larger than MaxBTSize do not have BT. Therefore, decoder 610 does not extract the BT separation flag for leaf nodes of blocks larger than MaxBTSize in QT, and automatically sets the BT separation flag to 0. Furthermore, when the depth of the corresponding node of a BT reaches MaxBTDepth, the node's block is not further split. Therefore, the BT separation flag for the node is not extracted from the bitstream, and the value of the BT separation flag is automatically set to 0. Additionally, blocks of the same size as MinBTSize in the BT are not further split. Therefore, decoder 610 does not extract the BT separation flag for blocks of the same size as MinBTSize from the bitstream, and automatically sets the flag value to 0.

[0075] In one implementation, when the current block to be decoded is determined by the split tree structure, the decoder 610 extracts information about the prediction type indicating whether the current block is predicted intra-frame or inter-frame.

[0076] When the prediction type information indicates intra-prediction, the decoder 610 parses the syntax elements (intra-prediction mode) of the intra-prediction information for the current block. First, the decoder 610 parses mode information (i.e., the MPM flag) indicating whether an intra-prediction mode for the current block has been selected from the MPM list. Typically, when the intra-mode coding information indicates that an intra-prediction mode for the current block has been selected from the MPM list, the decoder 610 parses first intra-identification information indicating which MPM mode has been selected as the intra-prediction mode for the current block. When the intra-mode coding information indicates that an intra-prediction mode for the current block has not been selected from the MPM list, the decoder 610 parses second intra-identification information indicating which of the remaining modes (i.e., non-MPM modes) besides the MPM has been selected as the intra-prediction mode for the current block. Alternatively, according to one aspect of the invention, the decoder 610 parses intra-frame identification information (e.g., group index, etc.) indicating the group of MPMs and / or non-MPMs to which the intra-frame mode of the current block belongs, rather than parsing intra-frame identification information of which of the MPMs and / or non-MPMs is selected as the intra-frame prediction mode for the current block.

[0077] In one embodiment, decoder 610 extracts information about the quantization transform coefficients of the current block as information about the residual signal.

[0078] Inverse quantizer 620 performs inverse quantization on the quantized transform coefficients. Inverse transformer 630 inversely transforms the inverse quantized transform coefficients from the frequency domain to the spatial domain to reconstruct the residual signal and thereby generate the residual block of the current block.

[0079] Predictor 640 includes an intra-predictor 642 and an inter-predictor 644. The intra-predictor 642 is activated when the prediction type of the current block is intra-prediction, and the inter-predictor 644 is activated when the prediction type of the current block is inter-prediction.

[0080] Intra-predictor 642 uses the syntax elements of the intra-prediction mode parsed from decoder 610 to determine the intra-prediction mode of the current block among a variety of intra-prediction modes, and uses reference samples around the current block to predict the current block based on the intra-prediction mode.

[0081] To determine the intra-prediction mode for the current block, the intra-predictor 642 constructs an MPM list containing a predetermined number of MPMs using neighboring blocks surrounding the current block. The method for constructing the MPM list is similar to that used for... Figure 2 The method is the same as that of the intra-predictor 222.

[0082] Typically, when the intra prediction mode information (i.e., the MPM flag) indicates that an intra prediction mode for the current block has been selected from the MPM list, the intra predictor 642 selects the MPM indicated by the first intra identification information from the MPMs in the MPM list as the intra prediction mode for the current block. On the other hand, when the mode information indicates that no intra prediction mode for the current block has been selected from the MPMs, the intra predictor uses the second intra identification information to select an intra prediction mode from the intra prediction modes other than the MPMs in the MPM list as the intra prediction mode for the current block.

[0083] Alternatively, as described above, the intra-predictor 222 of the video coding apparatus according to one aspect of the invention can group MPMs and / or non-MPMs, and can signal the index of the group to which the intra-mode of the current block belongs, rather than explicitly signaling which of the MPMs and / or non-MPMs is selected as the intra-prediction mode for predicting the current block. In this case, the intra-predictor 642 of the video decoding apparatus can determine the optimal intra-mode (i.e., the intra-mode for predicting the current block) by evaluating the intra-modes belonging to the group indicated by the index. For example, in some embodiments, the intra-predictor 642 can generate reconstructed blocks for multiple intra-modes belonging to the group and evaluate the reconstructed blocks to determine the optimal intra-mode.

[0084] Inter-frame predictor 644 uses the syntax elements of the intra-frame prediction mode extracted by decoder 610 to determine motion information about the current block, and uses the determined motion information to predict the current block.

[0085] Adder 650 adds the residual block output from inverse transform 630 to the predicted block output from intra predictor 642 or inter predictor 644 to reconstruct the current block. Pixels in the reconstructed current block are used as reference pixels for intra prediction of blocks to be decoded later.

[0086] The filter unit 660 performs deblocking filtering on the boundaries between the reconstructed blocks to remove block artifacts caused by block-by-block coding, and stores the deblocked blocks in the memory 290. When reconstructing all blocks in an image, the reconstructed image is used as a reference image for inter-frame prediction of blocks in subsequent images to be decoded.

[0087] The techniques described below involve intra-frame coding. This can be achieved, for example, in... Figure 2 and Figure 6 As shown and referenced Figure 2 and Figure 6 The video encoding and video decoding apparatuses described herein implement the techniques of this disclosure. That is, in one example, when performing intra-frame prediction during the encoding of blocks of video data, reference is made to... Figure 2 The described intra-frame predictor 222 can perform some of the techniques described below. In another example, when performing intra-frame prediction during the decoding of blocks of video data, refer to... Figure 6 The intra-predictor 642 described below can perform some of the techniques described below.

[0088] The technology disclosed herein aims to improve compression performance by grouping additional intra-prediction modes. In the exemplary implementation described below, it is assumed that the number of intra-prediction modes is 67, including 65 directional modes and 2 non-directional modes, such as... Figure 4 As shown in the diagram. For simplicity, the mode number (or original index) of the intra-frame mode combined with the MPM reference is as follows: Figure 1 The mode numbers shown are those used in the standard HEVC, which supports 35 intra-frame modes. However, it should be understood that the number of intra-frame modes, the number of MPMs, the number of non-MPMs, the number of groups, and the type or setting method of MPMs are merely exemplary, and various combinations thereof are possible within the scope of this invention.

[0089] In the following description, the first embodiment of the present invention will be described with reference to Table 1.

[0090] [Table 1]

[0091]

[0092] In this implementation, three MPMs are used. Therefore, the 64 intra-frame modes are still non-MPMs. In this case, the intra-frame modes belonging to MPMs can be determined using the methods used in standard HEVC. For example, the three MPMs of the current block can be selected using neighboring blocks around the current block and / or the statistically most frequently used default intra-frame mode.

[0093] When the intra-frame mode of the current block is the same as one of the MPMs, the video encoding device signals a 1-bit MPM flag indicating that the current block will be encoded using the MPM. Additionally, the video encoding device performs signaling in a manner that explicitly indicates the intra-frame prediction mode among the three MPMs. For example, according to some implementations, the video encoding device can signal the index of the identified MPM. The video encoding device can allocate the index for identifying each MPM based on the total number of MPMs and the order in which the MPMs are determined. For example, if the total number of MPMs is 3, the index value "0" is assigned to the intra-frame mode of the first determined left block L of the current block, and the index value "1" is assigned to the intra-frame mode of the next determined upper block A of the current block. The index value "2" is assigned to the intra-frame mode of the last determined upper left block AL of the current block. The video encoding device can use, for example, a variable-length table or other binarization methods such as truncated unary (TU) to signal the index for identifying the MPM.

[0094] The video encoding and decoding devices remove MPMs from a variety of intra-frame modes and generate a list of remaining modes (i.e., non-MPMs). The video encoding and decoding devices divide the non-MPMs into multiple groups and assign group index numbers to the groups. The number of groups can vary depending on the number of non-MPMs. In this embodiment, Table 1 exemplarily shows the number of bits required when the number of groups is set to 4, 8, and 16. Furthermore, the intra-frame modes do not necessarily need to be equally divided into multiple groups (as illustrated in Table 1). The number of groups can be agreed upon between the video encoding and decoding devices, and alternatively, the number selected from a variety of possible group numbers can be signaled (e.g., signaled by the video encoding device for use by the video decoding device).

[0095] In some implementations, intra-modes that use the same scan order when scanning the transform coefficients of the residual block can be grouped into the same group. In standard HEVC, intra-modes #6 through #14 use a vertical scan order, intra-modes #22 through #30 use a horizontal scan order, and other intra-modes use a diagonal scan order. Taking these scan orders into account, video encoding and decoding devices can perform grouping such that intra-modes are grouped into groups with the same scan order. Of course, intra-modes using the same scan order are not necessarily grouped into a single group, but can be grouped into at least two groups. In some other implementations, the list of non-MPMs can be sorted in ascending order according to the mode number of the intra-modes, and intra-modes sorted in descending order can be divided into multiple groups. In some other implementations, intra-modes can be grouped by integer multiples of the mode number. For example, when dividing modes into two groups, modes with odd-numbered mode numbers can be grouped into the first group, and modes with even-numbered mode numbers can be grouped into the second group. For example, when dividing the patterns into four groups, "Mode #0, Mode #4, Mode #8, ..." can be classified into the first group, "Mode #1, Mode #5, Mode #9, ..." into the second group, "Mode #2, Mode #6, Mode #10, ..." into the third group, and "Mode #3, Mode #7, Mode #11, ..." into the fourth group. In some other implementations, the video encoding device may have groupings defined by some rules, and these rules may be signaled (e.g., signaled by the video encoding device for use by the video decoding device).

[0096] If the intra-frame mode of the current block differs from the MPM, the video encoding device signals a 1-bit MPM flag indicating that the current block was not encoded using the MPM. Additionally, the video encoding device signals the index of the group to which the intra-frame mode of the current block belongs.

[0097] A video decoding device can determine the optimal intra-frame mode by evaluating intra-frame modes belonging to a group. For example, in some implementations, the video decoding device can generate a reconstructed block for the current block for multiple intra-frame modes belonging to the group and evaluate the reconstructed block to determine the optimal intra-frame mode. In other words, the video decoding device can measure the error cost between the pixel values ​​of a specific portion (e.g., the top and top left) of the reconstructed block of the current block and the reconstructed pixel values ​​of the spatially neighboring blocks to be decoded for each intra-frame mode. The video decoding device can select the intra-frame mode with the minimum error cost as the optimal intra-frame mode for the current block to be encoded. As error measurement methods, sum of absolute differences (SAD), sum of squared differences (SSD), mean squared error (MSE), etc., can be used.

[0098] As illustrated in Table 1, as the number of modes in each group increases, the number of bits required to specify the group to which the intra-mode of the current block belongs decreases, while the number of prediction blocks generated for the video decoding device to evaluate the intra-modes belonging to that group increases. For example, when 64 non-MPMs are divided into four groups, each group includes 16 intra-modes. Two bits are needed to specify the group (index) to which the intra-mode of the current block in these four non-MPM groups belongs. Therefore, the video encoding device can use a total of 3 bits (1 bit for the MPM flag + 2 bits for specifying the group) to signal the intra-prediction mode of the current block as a non-MPM. The video decoding device needs to generate 16 prediction blocks to evaluate the 16 intra-modes belonging to that group. When 64 non-MPMs are divided into 8 groups, each group includes 8 intra-modes. Three bits are needed to specify the group (index) to which the intra-mode of the current block in these 8 non-MPM groups belongs. Therefore, the video encoding device can use a total of 4 bits (1 bit for the MPM marker + 3 bits for specifying the group) to signal the intra-prediction mode of the current block as non-MPM. The number of groups can be appropriately set considering the number of bits required to signal the intra-prediction mode of the current block as non-MPM and the computational complexity of the video decoding device. In this implementation, the fixed-length (FL) method is used as the method for representing the group index. However, this is merely an example. It is obvious that other binarization methods such as TU (truncated unary) can also be used.

[0099] The second embodiment of the present invention will be described below with reference to Table 2.

[0100] [Table 2]

[0101]

[0102] In this implementation, three MPMs are used. Therefore, the 64 intra-frame modes are still non-MPMs. Here, the methods used in standard HEVC can be used to determine the intra-frame modes that belong to MPMs. For example, the three MPMs of the current block can be selected using the neighboring blocks around the current block and / or the default intra-frame mode that is statistically the most frequently used.

[0103] Video encoding and decoding devices can group MPMs into groups distinct from non-MPM groups. When the intra-frame mode of the current block is the same as one of the MPMs, the video encoding device signals a 1-bit MPM flag. That is, the video encoding device does not explicitly signal the intra-frame mode of the current block, but only signals a 1-bit MPM flag indicating that the current block should be encoded using an MPM. When the intra-frame mode of the current block is determined to be the same as one of the MPMs based on the MPM flag, the video decoding device evaluates the intra-frame modes belonging to the MPM to determine the optimal intra-frame mode.

[0104] The signal notification to non-MPM is the same as the first implementation related to Table 1.

[0105] The third embodiment of the present invention will be described below with reference to Table 3.

[0106] [Table 3]

[0107]

[0108] In this implementation, five MPMs are used. Therefore, the 62 intra-frame modes are still non-MPMs. In this case, the statistically most frequently used modes (e.g., planar mode, DC mode, vertical mode, horizontal mode, diagonal mode) are selected. Figure 1 The diagonal mode 34) can be set to MPM.

[0109] When the intra-frame mode of the current block is the same as the MPM, the video encoding device signals a 1-bit MPM flag indicating that the current block should be encoded using the MPM. Additionally, the video encoding device performs signaling by explicitly specifying the intra-frame prediction mode among these five MPMs.

[0110] The signaling of non-MPMs is essentially the same as the first implementation related to Table 1. However, it is not necessary to assign the same number of intra-frame modes to all groups. This is consistent between the video encoding and decoding devices and does not cause any problems.

[0111] The fourth embodiment of the present invention will be described below with reference to Table 4.

[0112] [Table 4]

[0113]

[0114] In this implementation, five MPMs are used. Therefore, the 62 intra-frame modes are still non-MPMs. In this case, the planar mode, DC mode, vertical mode, horizontal mode, and diagonal mode are the statistically most frequently used modes. Figure 1 The diagonal mode 34) can be set to MPM.

[0115] The video encoding and decoding devices classify these five MPMs into one or two groups. In some implementations, the MPMs are classified into a group distinct from the non-MPM groups. When the intra-frame mode of the current block is the same as an MPM, the video encoding device signals a 1-bit MPM flag. That is, the video encoding device does not explicitly signal the intra-frame mode of the current block, but instead signals a 1-bit MPM flag indicating that the current block should be encoded using the MPM. When it is determined that the intra-frame mode of the current block is the same as one of the MPMs based on the MPM flag, the video decoding device evaluates the intra-frame modes belonging to the MPM to determine the optimal intra-frame mode. In some other implementations, the MPMs are divided into two groups. When the intra-frame mode of the current block is the same as an MPM, the video encoding device signals a 1-bit MPM flag and the index of the group to which the intra-frame mode of the current block belongs. The number of MPM groups can be agreed upon between the video encoding and decoding devices, and the number can be selected from multiple possible group numbers by signaling (e.g., signaled by the video encoding device for use by the video decoding device).

[0116] In some implementations, MPMs using the same scan order when scanning the transform coefficients of residual blocks can be grouped into the same group. In other implementations, the video encoding and decoding devices can group MPMs into multiple groups according to the order in which they are determined. In other implementations, the list of non-MPMs can be sorted in ascending order based on the mode number of the intra-frame mode, and the intra-frame modes sorted in ascending order can be grouped into multiple groups. In other implementations, the video encoding device can signal the grouping method.

[0117] The signaling of non-MPMs is essentially the same as the first implementation related to Table 1. However, it is not necessary to assign the same number of intra-frame modes to all groups. This is consistent between the video encoding and decoding devices and does not cause any problems.

[0118] The fifth embodiment of the present invention will be described below with reference to Table 5.

[0119] [Table 5]

[0120]

[0121] In this implementation, six MPMs are used. Therefore, the 61 intra-frame modes are still non-MPMs. In this case, the above reference can be used when determining the intra-frame modes that belong to MPMs. Figure 5 The method described.

[0122] The first implementation method, which uses signals to notify MPMs and signals to notify non-MPMs, is essentially the same as that described in Table 1.

[0123] The sixth embodiment of the present invention will be described below with reference to Table 6.

[0124] [Table 6]

[0125]

[0126] In this implementation, six MPMs are used. Therefore, the 61 intra-frame modes are still non-MPMs. In this case, the above reference can be used when determining the intra-frame modes that belong to MPMs. Figure 5 The method described.

[0127] The fourth implementation method, which uses signals to notify MPMs and signals to notify non-MPMs, is essentially the same as that in Table 4.

[0128] The seventh embodiment of the present invention will be described below with reference to Table 7.

[0129] [Table 7]

[0130]

[0131] In this implementation, seven MPMs are used. Therefore, the 60 intra-frame modes are still non-MPMs. In this case, the MPMs can be set to the statistically most frequently used planar mode, DC mode, vertical mode, horizontal mode, and three diagonal modes. Figure 1 Orientation modes 2, 18, and 34 in the data.

[0132] The signaling of the MPM and the signaling of the non-MPM are substantially the same as in the first embodiment related to Table 1.

[0133] The eighth embodiment of the present invention will be described below with reference to Table 8.

[0134] [Table 8]

[0135]

[0136] In this implementation, seven MPMs are used. Therefore, the 60 intra-frame modes are still non-MPMs. In this case, the MPMs can be set to the statistically most frequently used planar mode, DC mode, vertical mode, horizontal mode, and three diagonal modes. Figure 1 Orientation modes 2, 18, and 34 in the data.

[0137] The fourth implementation method, which uses signals to notify MPMs and signals to notify non-MPMs, is essentially the same as that in Table 4.

[0138] The ninth embodiment of the present invention will be described below with reference to Table 9.

[0139] [Table 9]

[0140]

[0141] In this implementation, seven MPMs are used. Therefore, the 60 intra-frame modes are still non-MPMs. In this case, the MPMs can be set to the statistically most frequently used planar mode, DC mode, vertical mode, horizontal mode, and three diagonal modes. Figure 1 Orientation modes 2, 18, and 34 in the data.

[0142] The signal notification to the MPM is substantially the same as in the eighth embodiment related to Table 8. However, the signal notification to the non-MPM described below differs from the previous embodiments.

[0143] Video encoding and decoding equipment will select four statistically frequently used directional patterns from among 60 non-MPMs (e.g., Figure 1 The directional modes 6, 14, 22, and 30 (i.e., the next most likely mode) and the other (56) intra-frame modes are classified into different groups. The video encoding device uses a 1-bit flag value to indicate which of these two groups the intra-frame mode of the current block belongs to.

[0144] When the intra-frame mode of the current block is in the group to which the next most likely mode belongs, the video encoding device also uses a signaling 2-bit instruction to specify which of the four intra-frame modes is used for the current block.

[0145] When the intra-frame mode of the current block is not in the group to which the next most likely mode belongs, the video encoding device divides the other 56 intra-frame modes into multiple groups and then signals the index of the corresponding group. Here, the number of groups can be changed according to the number of other intra-frame modes. In this embodiment, the number of groups is set to 8, and 3 bits are also signaled to specify the group.

[0146] The tenth embodiment of the present invention will be described below with reference to Table 10.

[0147] [Table 10]

[0148]

[0149] In this implementation, seven MPMs are used. Therefore, the 60 intra-frame modes are still non-MPMs. In this case, the MPM can be set as the statistically most frequently used planar mode, DC mode, vertical mode, horizontal mode, and three diagonal modes ( Figure 1 Orientation modes 2, 18, and 34 in the data.

[0150] The signal notification to the MPM is substantially the same as the eighth embodiment related to Table 8. However, the signal notification to the non-MPM described below differs from the previous embodiments.

[0151] Video encoding and decoding equipment will use the four most frequently used directional modes among these 60 non-MPMs (e.g., Figure 1 The directional modes 6, 14, 22, and 30 (i.e., the next most likely mode) and other intra-frame modes are classified into different groups. The video encoding device uses a 1-bit flag value to indicate which of these two groups the intra-frame mode of the current block belongs to.

[0152] Compared to the ninth embodiment related to Table 9, when the intra-frame mode of the current block belongs to the group of the next most likely modes, the video encoding device does not explicitly inform which of the four intra-frame modes was used for the current block. In this case, the video decoding device can determine the optimal intra-frame mode by evaluating the four (next most likely) orientation modes belonging to that group.

[0153] When the intra-frame mode of the current block is not in the group to which the next most likely mode belongs, the video encoding device divides the other 56 intra-frame modes into multiple groups and then signals the index of the corresponding group. Here, the number of groups can be changed according to the number of other intra-frame modes. As shown in Table 10, in this embodiment, the number of groups is set to 8.

[0154] For chroma, in addition to planar, vertical, horizontal, and DC modes, intra-prediction modes can also include two special modes: direct mode (Intra_DM) and linear mode (Intra_LM). Among these modes, frequently used modes can be defined by flags or represented by the smallest number in a truncated unary representation, and other modes can be grouped as in the examples above. For instance, when direct mode is used most frequently, it can be indicated by a signal or a number to indicate whether the mode is used as on / off, according to a truncated unary scheme.

[0155] As described above, in the various embodiments described with reference to Tables 1 to 10, the video encoding device can signal the index of the group to which the intra-mode of the current block belongs, instead of signaling the index of the mode corresponding to the intra-mode of the current block in the MPM list and / or non-MPM list. In this case, the video decoding device can determine the optimal intra-mode (i.e., the intra-mode for predicting the current block) by evaluating the intra-modes belonging to that group. For example, in some embodiments, the video decoding device can generate a corresponding reconstructed block based on each of the various intra-modes belonging to that group, and evaluate the reconstructed blocks to determine the optimal intra-mode.

[0156] Compared to traditional signaling methods that explicitly specify one of many intra-frame modes, specifying one of multiple groups reduces overhead. As a result, compression efficiency is improved. However, compared to traditional methods that explicitly specify the intra-frame mode for the current block, the computational load on the video decoding device increases. Nevertheless, given the continuous improvement in the system performance of video decoding devices, they can evaluate several intra-frame modes in real time.

[0157] In order to generate a reconstructed block for each of the multiple intra-frame modes, the video decoding device needs to generate its own prediction block for multiple intra-frame modes belonging to a group, and generate a residual block using bitstream information.

[0158] The transform coefficients of the residual blocks for the current block are generated based on the scan order determined according to the applied intra-frame mode. For example, in standard HEVC, where 35 intra-frame modes are available, intra-frame modes #6 to #14 follow a vertical scan order, intra-frame modes #22 to #30 follow a horizontal scan order, and the other modes follow a diagonal scan order. According to the invention, the video decoding device selects the intra-frame mode for the current block; therefore, the scan order of the transform coefficients of the residual blocks is unknown until the final intra-frame mode is selected. To solve this problem, intra-frame mode grouping can be performed such that each group only includes intra-frame modes that use the same scan order when scanning the transform coefficients of the residual blocks. When MPMs are grouped, intra-frame modes using the same scan order can be grouped into one group, or the scan order of the largest number of intra-frame modes commonly applied to the intra-frame modes in a group can be selected as the representative scan order for that group. Alternatively, a specific scan order (e.g., a diagonal scan order) can be used.

[0159] Figure 7 This is a flowchart illustrating one or more exemplary methods for encoding video data according to the above examples of the present invention. Figure 7 In an exemplary method, the video encoding device determines the intra-frame mode of the current block of predicted video data. The intra-frame mode can refer to any of a number of spatial compression modes.

[0160] The video encoding device determines the MPM for predicting the current block of video data and generates a list of MPMs (S710). For example, intra-prediction patterns of previously encoded neighboring blocks can be identified and considered when generating the list of MPMs for the current block. Alternatively, the MPM can be predetermined based on statistics related to the probability of consistency with the intra-prediction patterns of the current block.

[0161] The video encoding device determines whether the intra-frame mode of the current block matches any mode in the MPM list (S720).

[0162] When any of the MPMs differs from the intra-mode for predicting the current block, the video coding device encodes a 1-bit MPM flag indicating that the intra-mode for predicting the current block is not an MPM (S730).

[0163] The video encoding device removes MPMs from intra-frame modes (e.g., the 35 intra-frame modes in HEVC) to generate a list of non-MPMs. Additionally, the video encoding device groups the intra-frame modes in the non-MPM list into multiple groups (S740). In some embodiments, intra-frame modes that use the same scan order when scanning the transform coefficients of the residual block can be grouped into the same group. In some other embodiments, the list of non-MPMs can be sorted in ascending order according to the mode number of the intra-frame mode, and the intra-frame modes sorted in ascending order can be divided into multiple groups. In some other embodiments, intra-frame modes can be grouped in integer multiples of the number of modes. In some other embodiments, the video encoding device can have grouping defined by some rules, and these rules can be signaled (e.g., signaled by the video encoding device for use by the video decoding device).

[0164] The video encoding device assigns a group index for identifying each group in the list of non-MPMs (S750). The video encoding device encodes data indicating the index of the group to which the intra-frame mode of the current block belongs in the list of non-MPMs (S760).

[0165] When one of the MPMs matches the intra-mode predicted for the current block, the video encoding device encodes a 1-bit MPM flag indicating that the intra-mode used to predict the current block is an MPM (S731). In some embodiments, the video encoding device may encode the 1-bit MPM flag and then encode data indicating the index of the MPM in the list that matches the intra-mode of the current block. For example, the video encoding device may assign an index to identify each MPM based on the order in which the MPMs are determined. In some other embodiments, the video encoding device may decode only the 1-bit MPM flag without encoding the data indicating the index of the MPM in the list that matches the intra-mode of the current block.

[0166] Figure 8 This is a flowchart illustrating another exemplary method for encoding video data according to one or more of the above examples of the present invention.

[0167] exist Figure 8 In the exemplary method, S810, S820, S830, S840, S850 and S860 are respectively connected with Figure 7 The S710, S720, S730, S740, S750, and S760 are the same. Figure 8In an exemplary method, when one of the MPMs is the same as the intra-mode for predicting the current block, the video coding device encodes a 1-bit MPM flag indicating that the intra-mode for predicting the current block is an MPM (S831).

[0168] The video encoding device groups intra-modes in a list of MPMs into multiple groups. In some embodiments, intra-modes that use the same scan order when scanning the transform coefficients of residual blocks can be grouped into the same group. In other embodiments, the video encoding device can group corresponding MPMs according to the order in which they are determined. In other embodiments, the video encoding device can sort the list of MPMs in ascending order according to their mode numbers and group the ascending-ordered intra-modes into multiple groups. In other embodiments, grouping can be defined according to rules, and these rules can be signaled (e.g., by the video encoding device for use by the video decoding device).

[0169] The video encoding device assigns a group index to each group in the list of MPMs for identification (S851). The video encoding device encodes data indicating the index of the group to which the intra-frame mode of the current block belongs in the list of MPMs (S861). However, when the number of groups is 1, the data indicating the group index is not encoded.

[0170] Figure 9 This is a flowchart illustrating one or more exemplary methods for decoding video data according to the above examples of the present invention. Figure 9 In an exemplary method, the video decoding device determines the MPM of the current block and generates a list of MPMs (S910). For example, the video decoding device may generate a list of MPMs and assign index values ​​to each MPM in the list. For example, the video decoding device may assign an index for identifying each MPM based on the order in which the MPMs were determined.

[0171] The video decoding device decodes the MPM flag, which indicates whether the intra-frame mode of the current block is MPM (S920).

[0172] When the value of the MPM flag indicates that the intra-mode used to predict the current block is not MPM ( Figure 9 When the MPM flag is 1, as in the case of a video encoding device, the video decoding device removes the MPMs from the intra-frame modes to generate a list of non-MPMs, and groups the intra-frame modes in the list of non-MPMs into multiple groups (S930). Additionally, the video decoding device can assign a group index to identify each group in the list of non-MPMs.

[0173] The video decoding device decodes data from the encoded bitstream that indicates the index of the group to which the intra-frame mode of the current block belongs in the list of non-MPMs (S940).

[0174] The video decoding device uses the index of the decoded group to identify the intra-frame mode in the non-MPM list that belongs to the group corresponding to the index of the decoded group (S950).

[0175] The video decoding device evaluates the intra-frame mode of the identified current block and determines the intra-frame mode for the predicted current block (S960). For example, in some embodiments, the video decoding device may generate a reconstructed block and evaluate the reconstructed block for multiple intra-frame modes belonging to a set to determine the optimal intra-frame mode.

[0176] When the value of the MPM flag indicates that the intra-frame mode used to predict the current block is MPM ( Figure 9 When the MPM flag is 0, the video decoding device decodes the data from the encoded bitstream that indicates the index of the MPM in the list that is the same as the intra-frame mode of the current block (S931). The video decoding device uses the index of the MPM that is the same as the intra-frame mode of the current block to identify the intra-frame mode of the current block in the MPM list (S941). The video decoding device can decode the current block with the identified intra-frame mode of the current block.

[0177] Figure 10 This is a flowchart illustrating another exemplary method for decoding video data according to one or more of the above examples of the present invention.

[0178] exist Figure 10 In the exemplary method, S1010, S1020, S1030, S1040, S1050 and S1060 are respectively connected with Figure 9 The S910, S920, S930, S940, S950, and S960 are the same. Figure 10 In an exemplary method, when the value of the MPM flag indicates that the intra-frame mode used to predict the current block is MPM ( Figure 9 When the MPM flag in the MPM list is 0, the video decoding device, as in the case of a video encoding device, groups the intra-frame modes in the MPM list into multiple groups (S1031). The video decoding device may assign a group index to identify each group in the MPM list.

[0179] The video decoding device decodes the data indicating the group index of the intra-frame mode of the current block in the MPM list from the encoded bitstream (S1041). However, when the number of groups is 1, the video decoding device may not decode the data indicating the group index, but may automatically set its value to 0.

[0180] The video decoding device uses the index of the decoded group to identify the intra mode of the frames belonging to the group corresponding to the index of the decoded group in the list of MPMs (S1051).

[0181] The video decoding device evaluates the identified intra mode of the current block and determines the intra mode for predicting the current block (S1061). For example, in some embodiments, the video decoding device may generate a reconstructed block and evaluate the reconstructed block for multiple intra modes belonging to a group to determine the best intra mode.

[0182] Figure 11 FIG. is an example of a diagram showing reference samples for generating a prediction block during intra prediction coding.

[0183] In the above embodiments, for the reference samples used to predict the current block, the reconstructed pixel values of a row adjacent to the block 1101 to be encoded as shown in (b) of FIG. may be used, or the information in multiple rows as shown in (b) of FIG. may be used. Figure 11 For example, the reconstructed pixel values of a row adjacent to the block 1101 to be encoded as shown in (b) of FIG. may be used, or the information in multiple rows as shown in (b) of FIG. may be used. Figure 11 For example, the reconstructed pixel values of a row adjacent to the block 1101 to be encoded as shown in (b) of FIG. may be used, or the information in multiple rows as shown in (b) of FIG. may be used.

[0184] Three methods of generating reference samples using multiple rows can be considered. The first method is to select one best row from n predetermined rows, use the selected row to generate the value of the reference sample, and signal the position information about this row. The second method is to use the information of n rows to generate the value of the reference sample. In this case, no separate signaling information is required. The third method is to use the information of m (m < n) rows among n rows to generate the reference sample, and the information of m rows needs to be signaled.

[0185] When using multiple (n or m) rows to generate the reference sample, the average value can be simply used to generate the reference sample, or the average value can be estimated by assigning higher weights to the rows adjacent to the block 1102 to be encoded. In this case, these operations should be performed in the same way by the video encoding device and the video decoding device.

[0186] Although the exemplary embodiments have been described for illustrative purposes, those skilled in the art should appreciate that various modifications and changes can be made without departing from the spirit and scope of the embodiments. For the sake of brevity, the exemplary embodiments have been described. Therefore, those of ordinary skill in the art will understand that the scope of the embodiments is not limited by the embodiments explicitly described above, but includes the claims and their equivalents.

[0187] Cross - reference to related applications

[0188] This application claims priority under 35 U.S. SC § 119(a) to two Korean patent applications filed on October 19, 2016, and February 1, 2017, respectively, both of which are incorporated herein by reference in their entirety. Furthermore, this non-provisional application claims priority in countries other than the United States for the same reasons as the aforementioned Korean patent applications, which are hereby incorporated by reference in their entirety.

Claims

1. A method for encoding video data, the method comprising the following steps: The position information indicating the selection of a reference row among multiple reference rows adjacent to the current block of the video data is encoded; Intra-mode data that specifies the intra-mode of the current block for prediction is encoded. The intra-frame mode based on the current block uses the reference line indicated by the location information to predict the current block to generate a prediction block; as well as The current block is encoded using the predicted block. The step of encoding the intra-frame mode data includes the following steps: when the intra-frame mode of the current block is the most probable mode (MPM), encoding one or more syntax elements of the intra-frame mode of the current block from among a specified plurality of MPMs. The plurality of MPMs are classified into two MPM groups and include at least a plurality of intra-frame modes and planar modes derived from reconstructed blocks adjacent to the current block. The one or more syntactic elements include at least one of the following: A first syntax element, indicating which of the two MPM groups the intra-frame mode of the current block belongs to; and The second syntax element indicates one of the MPMs belonging to the MPM group indicated by the first syntax element.

2. The method of claim 1, wherein, The step of encoding the intra-frame mode data further includes the following steps: When the intra-frame mode of the current block is not MPM, one or more syntax elements of the intra-frame mode of the current block among a plurality of non-MPM are encoded.

3. The method of claim 1, wherein, The step of encoding the intra-frame mode data further includes the following steps: When the intra-frame mode of the current block is not MPM, a list of non-MPM is generated by removing the MPM from the available intra-frame modes. The non-MPMs are sorted in ascending order according to the mode value of the intra-frame mode; The intra-frame modes, sorted in ascending order, are divided into multiple non-MPM groups; and The syntax element indicating the non-MPM group to which the intra-mode of the current block belongs is encoded, but the data indicating the index of the non-MPM group that is the same as the intra-mode of the current block within the non-MPM group indicated by the syntax element is not encoded.

4. The method of claim 1, wherein, The step of encoding the intra-frame mode data further includes the following steps: When the intra-frame mode of the current block is not MPM, a list of non-MPM is generated by removing the MPM from the available intra-frame modes. The non-MPMs are divided into multiple non-MPM groups, such that intra-frame modes belonging to the same non-MPM group use the same scanning order when scanning the transform coefficients of the residual block; and The syntax element indicating the non-MPM group to which the intra-mode of the current block belongs is encoded, but the data indicating the index of the non-MPM group that is the same as the intra-mode of the current block within the non-MPM group indicated by the syntax element is not encoded.

5. A method for decoding video data, the method comprising the following steps: The bitstream decoder indicates the position information of a reference line selected from multiple reference lines adjacent to the current block of the video data; Decode from the bitstream the intra-mode data specifying the intra-mode of the current block for predicting the current block; The intra-frame mode based on the current block uses the reference line indicated by the location information to predict the current block to generate a prediction block; as well as Use the predicted block to decode the current block. The step of decoding the intra-frame mode data includes the following steps: When the intra-frame mode of the current block is the most probable mode (MPM), one or more syntax elements of the intra-frame mode of the current block from among the specified multiple MPMs are decoded. The plurality of MPMs are classified into two MPM groups and include at least a plurality of intra-frame modes and planar modes derived from reconstructed blocks adjacent to the current block. Wherein, the one or more syntactic elements include at least one of the following: A first syntax element, indicating which of the two MPM groups the intra-frame mode of the current block belongs to; and The second syntax element indicates one of the MPMs belonging to the MPM group indicated by the first syntax element.

6. The method of claim 5, wherein, The steps for decoding the intra-frame mode data further include the following steps: When the intra-frame mode of the current block is not MPM, decode from the bitstream one or more syntax elements of the intra-frame mode of the current block that are not MPM.

7. The method of claim 5, wherein, The steps for decoding the intra-frame mode data further include the following steps: When the intra-frame mode of the current block is not MPM, a list of non-MPM is generated by removing the MPM from the available intra-frame modes. The non-MPMs are sorted in ascending order according to the mode value of the intra-frame mode; The intra-frame modes, sorted in ascending order, are divided into multiple non-MPM groups; and Decode the syntax elements indicating the non-MPM group to which the intra-frame mode of the current block belongs, and The intra-frame predictor is further configured to evaluate the non-MPMs belonging to the non-MPM group indicated by the syntax element in order to determine the intra-frame mode of the current block among the evaluated non-MPMs.

8. The method according to claim 5, wherein, The steps for decoding the intra-frame mode data further include the following steps: When the intra-frame mode of the current block is not MPM, a list of non-MPM is generated by removing the multiple MPMs from the available intra-frame modes. The non-MPMs are divided into multiple non-MPM groups, such that intra-frame modes belonging to the same group use the same scanning order when scanning the transform coefficients of the residual block; and The syntax elements indicating the non-MPM group to which the intra-frame mode used to predict the current block belongs are also decoded, and The intra-frame predictor is further configured to evaluate the non-MPMs belonging to the non-MPM group indicated by the syntax element in order to determine the intra-frame mode of the current block among the evaluated non-MPMs.

9. A method for storing a bitstream of encoded video data, the method comprising the following steps: Receive video data to be encoded; The video data is encoded into a bitstream by performing encoding processing; as well as The bitstream is stored in a storage device. The encoding process includes the following steps: The position information indicating the selection of a reference row among multiple reference rows adjacent to the current block of the video data is encoded. Intra-mode data that specifies the intra-mode of the current block for prediction is encoded. The intra-frame mode based on the current block uses the reference line indicated by the location information to predict the current block to generate a prediction block; and The current block is encoded using the predicted block. The step of encoding the intra-frame mode data includes the following steps: When the intra-frame mode of the current block is the most probable mode (MPM), one or more syntax elements of the intra-frame mode of the current block from among a plurality of specified MPMs are encoded. The plurality of MPMs are classified into two MPM groups and include at least a plurality of intra-frame modes and planar modes derived from reconstructed blocks adjacent to the current block. The one or more syntactic elements include at least one of the following: A first syntax element, indicating which of the two MPM groups the intra-frame mode of the current block belongs to; and The second syntax element indicates one of the MPMs belonging to the MPM group indicated by the first syntax element.