Video decoding device and video decoding device

By adding dimdMode2x2 and dimdMode4x4 to the MPMlist and adjusting the element order, the generation method of the MPMlist was improved, which increased the prediction accuracy in the video decoding and decoding process and improved the quality of the codec.

CN120937362APending Publication Date: 2025-11-11SHARP KK
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202480020432.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-09-28
Filing Date
2024-06-03
Publication Date
2025-11-11

AI Technical Summary

Technical Problem

Existing MPMlist generation methods lack accuracy in video decoding and cannot effectively improve the quality of codecs.

Method used

Add two new prediction angles dimdMode2x2 and dimdMode4x4 to the MPMlist and change the order of the existing elements to form newMPMlist.

Benefits of technology

It improves the prediction accuracy of the codec without adding extra computation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120937362A_ABST
    Figure CN120937362A_ABST
Patent Text Reader

Abstract

The invention aims to improve the accuracy by improving the existing GradMPMList generation method. In one embodiment, a new mode (dimdMode2x2, dimdMode4x4, dimdModeTop, dimdModeLeft) is appended to the existing GradMPMList to create a new GradMPMList. In one embodiment, a new mode (dimdMode2x2, dimdMode4x4, dimdModeTop, dimdModeLeft) is added to the existing GradMPMList. The GradMPMList is used in an intra-frame prediction mode in a codec, and has an influence on an angle mode, a TIMD, an SGPM and a TMRL intra-frame prediction method.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present invention relate to a video decoding device and a video decryption device. Background Technology

[0002] Video decoding devices that generate decoded data by decoding video and video decoding devices that generate decoded images by decoding decoded data are used for efficient video transmission or recording.

[0003] For example, specific video decoding schemes include H.264 / AVC, High-Efficiency Video Decoding (HEVC), and Universal Video Decoding (VVC).

[0004] In such a video decoding scheme, the images (pictures) that constitute the video are managed in a hierarchical structure, which includes slices obtained by segmenting the images, decoding tree units (CTUs) obtained by segmenting the slices, decoding units (CUs) obtained by segmenting the decoding tree units, and transform units (TUs) obtained by segmenting the decoding units, and decoding / decoding is performed for each CU.

[0005] In this video decoding scheme, a prediction image is typically generated based on a locally decoded image obtained after decoding / decoding the input image (source image). The prediction error component (also known as the "difference image" or "residual image") obtained by subtracting the prediction image from the input image is then decoded. Methods for generating the prediction image include inter-frame image prediction and intra-frame image prediction.

[0006] In recent video decoding and decoding technologies, NPL1 proposes a method for generating a sorted list of MPMs. The generation of this MPM list involves two steps: first, deriving possible prediction patterns for the current block based on neighboring blocks; and then, generating the MPM list based on these prediction patterns. NPL1's method adds a sorting operation between these two steps, allowing lower-cost extended patterns from SATD to be added to the MPM list first. Citation List Non-patent literature

[0007] NPL 1: Luhang Xua (Oppo), Chuan Zhou (Vivo), Hongtao Wang (Qualcomm), et al., “EE2-1.24: Combinations of MPM related tests”, JVET-AD0085, Antalya, Turkey, April 2023. Summary of the Invention

[0008] In one example, a video decoding apparatus for generating a predicted image includes a DIMD prediction unit configured to derive multiple intra-frame prediction modes using multiple sets of filters and reference regions, and configured to derive an intra-frame prediction image using multiple intra-frame prediction images derived from the derived intra-frame prediction modes.

[0009] In one example, a video decoding apparatus includes an MPM candidate generation unit configured to derive a list of MPM candidates for intra-frame prediction modes. Technical issues

[0010] The MPMlist is used for intra-frame prediction and consists of prediction angles from neighboring blocks of the current block, extensions of these angles, and a default list (forming a total of 22 elements). During encoding and decoding, the MPMlist is used in three cases: 1) The first two elements of the MPMlist can be directly added to the RDOlist. 2) The MPMlist is used to generate the bitstream, where the position of elements affects the length of the bitstream. 3) Elements from the MPMlist are used in intra-frame prediction methods such as TIMD, SGPM, and TMRL. NPL1 summarizes the results of the latest MPM generation methods. This invention aims to improve accuracy by modifying the method of generating the MPMlist by adding new elements. Problem Solution

[0011] The purpose of this invention is to improve prediction accuracy by modifying the generation method of MPMlist. In this invention, two entirely new prediction angles, dimdMode2x2 and dimdMode4x4, are added to the MPMlist, thereby modifying the composition of the elements in the list. Additionally, the order of existing elements in the MPMlist can be changed to create a new MPMlist. Beneficial effects of the invention

[0012] According to one aspect of the invention, the quality of the codec can be improved without increasing additional computation. Attached Figure Description

[0013] [ Figure 1 ] Figure 1 This is a schematic diagram illustrating the configuration of an image transmission system according to this embodiment. [ Figure 2 ] Figure 2 This is a diagram illustrating the hierarchical structure of decoded stream data. [ Figure 3 ] Figure 3 This is a schematic diagram showing the types (mode numbers) of intra-frame prediction modes. [ Figure 4 ] Figure 4 This is a schematic diagram of a video decoding device. [ Figure 5 ] Figure 5 The structure of the intra-frame prediction image generation unit is shown. [ Figure 6 ] Figure 6 This is a diagram showing the details of the gradMPMList generation unit. [ Figure 7 ] Figure 7 This is a block diagram showing the structure of a video decoding device. [ Figure 8 ] Figure 8 An example of a reference region used for gradient derivation is shown. [ Figure 9 ] Figure 9 This is a diagram showing the details of the DIMD prediction unit. Detailed Implementation First Implementation Plan

[0014] In the following description, embodiments of the present disclosure are illustrated with reference to the accompanying drawings.

[0015] Figure 1 This is a schematic diagram illustrating the configuration of the image transmission system 1 according to this embodiment.

[0016] Image transmission system 1 is a system for transmitting a decoded stream obtained by decoding a target image, decoding the transmitted decoded stream, and displaying the image. Image transmission system 1 includes a video decoding device (image decoding device) 11, a network 21, a video decoding device (image decoding device) 31, and a video display device (image display device) 41.

[0017] Image T is input to video decoding device 11.

[0018] Network 21 transmits the decoded stream Te generated by video decoding device 11 to video decoding device 31. Network 21 is the Internet, a wide area network (WAN), a local area network (LAN), or a combination thereof. Network 21 is not necessarily limited to a two-way communication network and can also be a one-way communication network configured to transmit broadcast waves such as digital terrestrial television broadcasts and satellite broadcasts. Furthermore, network 21 can also be replaced by a storage medium that records the decoded stream Te, such as a digital multifunction disc (DVD: trademark) or a Blu-ray disc (BD: trademark).

[0019] The video decoding device 31 decodes each decoded stream Te transmitted from the network 21 and generates one or more decoded images Td.

[0020] The video display device 41 displays all or part of one or more decoded images Td generated by the video decoding device 31. For example, the video display device 41 includes a display device such as a liquid crystal display and an organic electroluminescence (EL) display. The form of the display includes a fixed type, a mobile type, an HMD type, etc. In addition, when the video decoding device 31 has a high processing capacity, a high-quality image is displayed; and when the device only has a low processing capacity, an image that does not require high processing capacity and display capacity is displayed. Operator

[0021] The operators and symbols used in this specification are described as follows.

[0022] >> is an arithmetic right shift, << is an arithmetic left shift, & is a bitwise AND, | is a bitwise OR, ^ is a bitwise exclusive OR, |= is an or assignment operator, and || indicates a logical sum.

[0023] x?y:z is a ternary operator that takes y when x is true (non-0) and takes z when x is false (0).

[0024] The Clip3(x, y, z) function is used to intercept the value z that is greater than or equal to x and less than or equal to y; returns x when z is less than x (z < x); returns y when z is greater than y (z > y); and returns z in other cases.

[0025] The abs(a) function is used to return the absolute value of a.

[0026] The Int(a) function is used to return the integer value of a.

[0027] The floor(a) function is used to return the largest integer that is equal to or less than a.

[0028] The ceil(a) function is used to return the smallest integer that is equal to or greater than a.

[0029] a / d represents a divided by d (rounded down after the decimal point).

[0030] x = y..z means that x takes integer values from y to z, including y and z, where x, y, and z are integers and z is greater than or equal to y. The structure of the decoded stream Te

[0031] Before describing the video encoding device 11 and the video decoding device 31 according to this embodiment in detail, the data structure of the decoded stream Te generated by the video encoding device 11 and decoded by the video decoding device 31 is described.

[0032] Figure 2 is a diagram illustrating the data hierarchical structure of the decoded stream Te. The decoded stream Te illustratively includes a sequence and a plurality of pictures constituting the sequence. Figure 2(a) through (f) are respectively diagrams illustrating the decoded video sequence of the defined sequence SEQ, the decoded picture of the defined picture PICT, the decoded slice of the defined slice S, the decoded slice data of the defined slice data, the decoded tree unit included in the decoded slice data, and the decoded unit (CU) included in each decoded tree unit. Decoded video sequence

[0033] In the decoded video sequence (CVS, decoded stream), a set of data is defined that is referenced by the video decoding device 31 to decode the decoded video sequence to be processed. For example... Figure 2 As illustrated, CVS includes Video Parameter Set (VPS), Sequence Parameter Set (SPS), Picture Parameter Set (PPS), Picture (PICT), and Supplemental Enhancement Information (SEI).

[0034] In the Video Parameter Set (VPS), a set of decoding parameters shared by multiple videos and a set of decoding parameters associated with the multiple layers and a single layer included in the video are defined in a video that includes multiple layers.

[0035] The Sequence Parameter Set (SPS) defines a set of decoding parameters that the video decoding device 31 references to decode the target sequence. For example, it defines the width and height of an image. Note that multiple SPSs may exist. In this case, any one of the multiple SPSs is selected from the PPS.

[0036] The Picture Parameter Set (PPS) defines a set of decoding parameters that the video decoding device 31 references to decode each picture in the target sequence. These parameters include, for example, a reference value for the quantization step size (pic_init_qp_minus26) used for picture decoding and a flag indicating the application of weighted prediction (weighted_pred_flag). Note that multiple PPSs may exist. In this case, any one of the multiple PPSs is selected for each picture in the target sequence. Decoded image

[0037] In the decoded image, a set of data is defined that is referenced by the video decoding device 31 to decode the image PICT to be processed. For example... Figure 2 As illustrated, the image PICT includes slices 0 to NS-1 (NS is the total number of slices included in the image PICT).

[0038] Note that the subscript of the reference symbol can be omitted if it is not necessary to distinguish each of the slices 0 to NS-1 below. Additionally, this also applies to other subscripted data included in the decode stream Te as described below. Decoding slices

[0039] In the decoding slice, a set of data is defined that is referenced by the video decoding device 31 to decode the slice S to be processed. For example... Figure 2 As illustrated, a slice includes a slice header and slice data.

[0040] The slice header includes a set of decoding parameters referenced by the video decoding device 31 for determining the decoding method of the target slice. The slice type specification information (slice_type) indicating the slice type is an example of the decoding parameters included in the slice header.

[0041] Examples of slice types that can be specified by the slice type specification information include (1) I slices that use only intra-frame prediction in decoding, (2) P slices that use unidirectional or intra-frame prediction in decoding, and (3) B slices that use unidirectional, bidirectional, or intra-frame prediction in decoding. It should be noted that inter-frame prediction is not limited to unidirectional and bidirectional prediction; more reference images can also be used to generate the prediction image. In the following text, when a slice is referred to as a P slice or a B slice, the slice indicates a slice that includes blocks that can be used for inter-frame prediction.

[0042] Note that the slice header may include a reference to the image parameter set PPS (pic_parameter_set_id). Decoding slice data

[0043] In the decoded slice data, a set of data is defined that is referenced by the video decoding device 31 to decode the slice data to be processed. The slice data includes, for example, Figure 2 The CTU is illustrated. A CTU is a fixed-size (e.g., 64x64) block that makes up a slice. Decoding Tree Unit

[0044] exist Figure 2 In this document, a set of data is defined as the CTU to be decoded by the video decoding device 31. The CTU is divided into decoding units CU, which serve as the basic units of decoding processing, through recursive quadtree partitioning (QT partitioning), binary tree partitioning (BT partitioning), or ternary tree partitioning (TT partitioning). BT partitioning and TT partitioning are collectively referred to as multi-branch tree partitioning (MT partitioning). The nodes of the tree structure obtained through recursive quadtree partitioning are called decoding nodes. The intermediate nodes of the quadtree, binary tree, and ternary tree are decoding nodes, and the CTU itself is also defined as the highest decoding node. Decoding unit

[0045] like Figure 2 As illustrated, a set of data is defined for the video decoding device 31 to reference in decoding the decoding unit to be processed. Specifically, the CU includes a CU header CUH, prediction parameters, transform parameters, quantization transform coefficients, etc. The prediction mode, etc., are defined in the CU header.

[0046] Prediction processing is sometimes performed on a per-unit basis (CU), and sometimes on a per-unit basis of sub-CUs resulting from further subdivision of the CU. When the size of the CU and its sub-CUs are equal, the number of sub-CUs in the CU is one. When the size of the CU is larger than the size of its sub-CUs, the CU is subdivided into sub-CUs. For example, if the CU is 8x8 and the sub-CUs are 4x4, the CU is subdivided into four sub-CUs, including two horizontal subdivisions and two vertical subdivisions.

[0047] There are two prediction types (prediction modes): intra-frame prediction and inter-frame prediction. Intra-frame prediction refers to prediction within the same image, while inter-frame prediction refers to prediction processing performed between different images (e.g., images displayed at different times).

[0048] Transformation and quantization are performed in units of CU, but the quantization transform coefficients can be entropy decoded in units of sub-blocks (such as 4x4). Prediction parameters

[0049] The predicted image is derived using prediction parameters attached to the blocks. These prediction parameters include those for intra-frame prediction and inter-frame prediction.

[0050] The following describes the prediction parameters for intra-frame prediction. Intra-frame prediction parameters include the luma intra-frame prediction mode IntraPredModeY and the chroma intra-frame prediction mode IntraPredModeC. Figure 3 This is a diagram indicating the type (mode number) of the intra-prediction mode. As illustrated, for example, there are 67 types (0 to 66) of intra-prediction modes. Additionally, based on the aspect ratio of the CU, there are 28 types (-14 to -1 and 67 to 80) of intra-prediction modes. For example, there are planar prediction (0), DC prediction (1), and angular prediction (2 to 66). Furthermore, for chroma, CCLM (Cross Component Linear Model) prediction modes (81 to 83), MMLM (Multimode Linear Model) prediction modes, and LM (Linear Model) prediction modes can be added. Video decoding device configuration

[0051] The video decoding apparatus 31 according to this embodiment is described. Figure 4 Configuration of ).

[0052] The video decoding device 31 includes an entropy decoding unit 301, a parameter decoding unit (predictive image decoding device) 302, a loop filter 305, a reference image memory 306, a prediction parameter memory 307, a prediction image generation unit 308, an inverse quantization and inverse transform processing unit 311, an addition unit 312, and a prediction parameter derivation unit 320. It should be noted that, according to the video decoding device 11 described later, a configuration in which the loop filter 305 is not included in the video decoding device 31 is also used.

[0053] The parameter decoding unit 302 also includes a header decoding unit 3020, a CT information decoding unit 3021, and a CU decoding unit 3022 (prediction mode decoding unit). The CU decoding unit 3022 further includes a TU decoding unit 3024. These can be collectively referred to as decoding modules. The header decoding unit 3020 decodes parameter set information such as VPS, SPS, and PPS, as well as the slice header (slice information), from the decoded data. The CT information decoding unit 3021 decodes the CT from the decoded data. The CU decoding unit 3022 decodes the CU from the decoded data. If the TU includes prediction error, the TU decoding unit 3024 decodes the QP update information (quantization correction value) and the quantization prediction error (residual_coding) from the decoded data.

[0054] Furthermore, an example using CTUs and CUs as processing units is described below, but processing is not limited to this example, and processing can be performed on a sub-CU basis. Alternatively, processing can be performed on a block or sub-block basis by replacing CTUs and CUs with blocks and sub-CUs with sub-blocks.

[0055] Entropy decoding unit 301 performs entropy decoding on the decoded stream Te input from the outside, separating and decoding individual codes (syntax elements). The separated codes include prediction information for generating the predicted image, prediction errors for generating the difference image, etc. Entropy decoding has a variable-length decoding method for syntax elements based on context (probability model) (which is adaptively selected according to the type of syntax element and surrounding conditions), and a variable-length decoding method for syntax elements using a predetermined table or formula.

[0056] The parameter decoding unit 302 notifies the entropy decoding unit 301 of the syntax elements that need to be decoded. The entropy decoding unit 301 outputs the syntax elements to the prediction parameter derivation unit 320. Configuration of Prediction Parameter Derivation Unit 320

[0057] The prediction parameter derivation unit 320 can derive prediction parameters based on the output of the parameter decoding unit 302 and the prediction parameters stored in the prediction parameter memory 307. The derived prediction parameters are output to the prediction image generation unit 308 and stored in the prediction parameter memory 307. The prediction parameter derivation unit can derive different prediction modes for luminance prediction and chromaticity prediction.

[0058] The loop filter 305 is a filter disposed within the decoding loop and is used to remove block distortion and ringing distortion and improve image quality. The loop filter 305 applies filters such as a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF) to the decoded image of the CU generated by the adder unit 312.

[0059] The reference image memory 306 stores the decoded images of the CUs generated by the addition unit 312 at predetermined locations according to each target image and target CU.

[0060] The prediction parameter memory 307 stores prediction parameters in predetermined locations for each CTU or CU to be decoded. Specifically, the prediction parameter memory 307 stores parameters derived by the prediction parameter derivation unit 320, prediction modes such as predMode separated by the entropy decoding unit 301, etc.

[0061] The prediction image generation unit 308 receives inputs such as prediction parameters derived by the prediction parameter derivation unit 320. Additionally, the prediction image generation unit 308 reads a reference image from the reference image memory 306. Under the prediction mode indicated by the prediction mode `predMode`, the prediction image generation unit 308 generates prediction images of blocks or sub-blocks using the prediction parameters and the read reference image (reference image block). Here, a reference image block refers to a set of pixels on the reference image (called a block because they are usually rectangular) and is the region used to generate the prediction image. Predictive image generation unit 308

[0062] When the prediction mode `predMode` indicates an intra-prediction mode, the intra-prediction image generation unit 310 performs intra-prediction using intra-prediction parameters (luminance intra-prediction mode `IntraPredModeY` and / or chrominance intra-prediction mode `IntraPredModeC`) input from the prediction parameter derivation unit 320 and reference pixels read from the reference image memory 306. When the prediction mode `predMode` indicates an inter-prediction mode, the inter-prediction image generation unit performs inter-prediction using inter-prediction parameters input from the prediction parameter derivation unit 320 and reference pixels read from the reference image memory 306.

[0063] Specifically, the prediction image generation unit 308 reads neighboring blocks from the target image within a predetermined range from the target block in the reference image memory 306. This predetermined range includes the neighboring blocks to the left, upper left, upper, and upper right of the target block, and the reference area varies depending on the intra-frame prediction mode.

[0064] The prediction image generation unit 308 generates a prediction image of the target block by referring to the read decoded pixel values ​​and the prediction mode indicated by predMode, IntraPredModeY and / or IntraPredModeC. The prediction image generation unit 308 outputs the generated prediction image of the block to the addition unit 312.

[0065] The generation of the predicted image based on intra-frame prediction modes is described below. In planar prediction, DC prediction, and angular prediction, the decoded surrounding region adjacent (close to) the predicted target block is configured as a reference region R. Then, pixels on the reference region R are extrapolated in a specific direction to generate the predicted image. For example, the reference region R may be configured as an L-shaped region including the left and top (or further, the upper left, upper right, and lower left) of the predicted target block. Intra-predictive image generation unit 310

[0066] use Figure 5 The configuration of the intra-frame prediction image generation unit 310 is described. The intra-frame prediction image generation unit 310 includes a reference sample filter unit 3103 (second reference image configuration unit), an intra-frame prediction unit 3104, and a prediction image corrector 3105 (prediction image corrector, filter switching unit, weight coefficient changing unit).

[0067] Intra-prediction unit 3104 generates a predicted image of the target block based on each reference pixel (unfiltered reference image) on the reference region R, a filtered reference image generated by applying a reference pixel filter (first filter), and an intra-prediction mode, and outputs it to prediction image corrector 3105. Prediction image corrector 3105 corrects the predicted image according to the intra-prediction mode and outputs the corrected predicted image.

[0068] The following describes the units included in the intra-frame prediction image generation unit 310. Reference Sample Filter Unit 3103

[0069] Reference sample filter unit 3103 applies a reference pixel filter (first filter) to the unfiltered reference image according to the intra-prediction mode to derive the filtered reference image s[x][y] at each position (x,y) on the reference region R. Specifically, a low-pass filter is applied to the unfiltered reference image at each position (x,y) and its surroundings, and the filtered reference image is derived. Note that the low-pass filter does not necessarily need to be applied to all intra-prediction modes, and the low-pass filter can be applied to some intra-prediction modes. Note that the filter applied to the unfiltered reference image on the reference region R in reference sample filter unit 3103 is called the "reference pixel filter (first filter)", while the filter used to correct the prediction image in the prediction image corrector 3105 described below is called the "boundary filter (second filter)". Configuration of Intra-Prediction Unit 3104

[0070] Intra-prediction unit 3104 generates a prediction image (predicted pixel values, uncorrected prediction image) of the predicted target block based on the intra-prediction mode, the unfiltered reference image, and the filtered reference pixel values, and outputs it to the prediction image corrector 3105. Intra-prediction unit 3104 internally includes a planar prediction unit 31041, a DC prediction unit 31042, an angle prediction unit 31043, an LM prediction unit 31044, a MIP prediction unit (matrix-based intra-prediction) 31045, a DIMD (decoder-side intra-mode derivation) prediction unit 31046, and a newMPMList generation unit 31047. Intra-prediction unit 3104 may also include... Figure 5 The TIMD (Template-Based Intra-Mode Derivation) prediction unit 31048 is shown. The intra-prediction unit 3104 selects a specific predictor based on the intra-prediction mode and inputs an unfiltered reference image and a filtered reference image. The relationship between the intra-prediction mode and the corresponding predictor is as follows. - Planar prediction... Planar prediction unit 31041 -DC Prediction...DC Prediction Unit 31042 -Angle prediction...Angle prediction unit 31043 -LM prediction...LM prediction unit 31044 -MIP prediction...MIP prediction unit 31045 -DIMD Prediction...DIMD Prediction Unit 31046 -TIMD Prediction...TIMD Prediction Unit 31048 Plane prediction

[0071] The planar prediction unit 31041 generates a prediction image q[x][y] by linearly adding multiple filtered reference images s[x][y] according to the distance between the predicted pixel position and the reference pixel position, and outputs the generated image to the prediction image corrector 3105. DC Prediction

[0072] DC prediction unit 31042 derives the DC prediction value corresponding to the average value of the filtered reference image s[x][y], and outputs the prediction image q[x][y] with the DC prediction value as the pixel value. Angle Prediction

[0073] Angle prediction unit 31043 uses the filtered reference image s[x][y] to generate a prediction image q[x][y] in the prediction direction (reference direction) indicated by the intra-frame prediction mode, and outputs the generated image to prediction image corrector 3105. LM Prediction

[0074] The LM prediction unit 31044 predicts the chromaticity pixel values ​​based on the luminance pixel values. More specifically, a linear model is used to generate a predicted chromaticity image (Cb,Cr) based on the decoded luminance image. As an example of LM prediction, there is CCLM (Cross-Component Linear Model Prediction) prediction. CCLM prediction is a prediction method that uses a linear model to predict the chromaticity of the same block based on luminance. MIP Prediction

[0075] The MIP prediction unit 31045 generates a prediction image q[x][y] by performing a product and sum operation on the reference sample s[x][y] and the weight matrix derived from the neighboring region, and outputs the prediction image q[x][y] to the prediction image corrector 3105. DIMD Prediction

[0076] like Figure 9 The DIMD prediction unit 31046 shown includes a reference sample derivation unit 310460, a gradient derivation unit 310461, an angle pattern derivation unit 310462, an angle pattern selection unit 310463, and a prediction image generation unit 310464. For each target block, the prediction parameter derivation unit 320 decodes a flag named dimd_flag, which indicates whether the target block uses the DIMD method.

[0077] When dimd_flag is 1, the DIMD prediction unit 31046 derives an angle pattern indicating the texture direction in the adjacent region based on the pixel value. This angle pattern can be used to generate an intra-frame prediction image. The reference sample derivation unit 310460 derives reference samples from the neighboring samples of the target block. These can be a set of reference patterns indicated by dimd_mode.

[0078] dimd_mode = 0 DIMD_MODE_TOP_LEFT (Use the top adjacent reference area and the left adjacent reference area, top and left) dimd_mode = 1 DIMD_MODE_LEFT (Use the left adjacent reference region) dimd_mode = 2DIMD_MODE_TOP (using the adjacent reference area above) Figure 8 An example of the reference range used in the gradient derivation process of DIMD prediction is shown. The DIMD prediction unit 31046 can use different filters for gradient derivation, such as 2x2, 3x3, and 4x4 filters. An MxN filter can correspond to a filter size, where M is the horizontal length and N is the vertical size. The variable `filterIdx` specifies the filter or reference region used for gradient derivation.

[0079] Figure 8 (b) illustrates the case using a 3x3 filter (filterIdx == 1). When dim_mode == DIMD_MODE_TOP_LEFT, the angle mode export unit 310462 exports Dx and Dy from each point P of the left region RDL of the target block, exports modeVal, and performs histogram counting. Subsequently, Dx and Dy are exported from each point P of the aforementioned region RDT of the target block, and modeVal is exported and histogram counting is performed.

[0080] The range of RDL is x = -refIdxW..-2, y = -refIdxH..refH-2.

[0081] The range of the RDT is x = -refIdxW..refW-2, y = -refIdxH..-2 refIdxW and refIdxH are constants indicating the width and height of the reference region on the target block. RDTL is the range in which RDL and RDT are combined.

[0082] When dimd_mode == DIMD_MODE_LEFT, the angle mode export unit 310462 uses the extended left region RDL_EXT of the target block, for example, to export Dx and Dy from RDL_EXT for exporting and counting modeVal.

[0083] The range of RDL_EXT is x = -refIdxW..-2, y = -refIedxH..refH*2-2.

[0084] When dimd_mode == DIMD_MODE_TOP, the angle mode export unit 310462 exports modeVal from the extended upper region RDT_EXT of the target block and performs histogram counting.

[0085] The range of RDT_EXT is x = -refIdxW..refW*2-2, y = -refIdxH..-2 Here, refIdxW = 2, refIedxH = 2, refH = bH (height of the target block), and refW = bW (width of the target block).

[0086] Figure 8 (b) shows the case using a 2x2 filter (filterIdx == 0).

[0087] When using a 2x2 filter: The range of RDL is x = -refIdxW..-2, y = -refIedxH..refH-2 The range of the RDT is x = -refIdxW..refW-2, y = -refIdxH..-2

[0088] RDTL is the range that combines RDL and RDT. The range of RDL_EXT is x = -refIdxW..-2, y = -refIedxH..refH*2-2 The range of RDT_EXT is x = -refIdxW..refW*2-2, y = -refIdxH..-2 Here, refIdxW = 2, refIdxH = 2, refH = bH (height of the target block), and refW = bW (width of the target block).

[0089] Figure 8 (c) shows the case where a 2x2 filter (filterIdx == 2) is used.

[0090] When using a 4x4 filter: The range of RDL is x = -refIdxW..-2, y = -refIedxH..refH-2 The range of the RDT is x = -refIdxW..refW-2, y = -refIdxH..-2 RDTL is the range that combines RDL and RDT.

[0091] The range of RDL_EXT is x = -refIdxW..-2, y = -refIedxH..refH*2-2 The range of RDT_EXT is x = -refIdxW..refW*2-2, y = -refIdxH..-2 Here, refIdxW = 2, refIdxH = 2, refH = bH (height of the target block), and refW = bW (width of the target block).

[0092] The gradient derivation unit 310461 uses the pixel value P[x][y] at a given position (x, y) in the reference sample to derive the pixel gradients Dx and Dy.

[0093] The following formula can be used for gradient derivation. Dx=P[x][y]+P[x][y+1]-P[x+1][y]-P[x+1][y+1] Dy=P[x][y]+P[x+1][y]-P[x][y+1]-P[x+1][y+1]

[0094] Alternatively, the following formula can be used for gradient derivation. Dx=P[x-1][y+1]+2*P[x][y+1]+P[x+1][y+1]-P[x-1][y-1]-2*P[x][y-1]-P[x+1][y-1] Dy=P[x-1][y-1]+2*P[x-1][y]+P[x-1][y+1]-P[x+1][y-1]-2*P[x+1][y]-P[x+1][y+1]

[0095] The gradient derivation unit 310461 derives signx, signy, xgty, and quadrants as follows. absx = abs(Dx) absy = abs(Dy) signx = Dx < 0? 1:0 signy = Dy < 0? 1:0 xgty = absx > absy? 1:0 quadrant=xgty? ((signx^signy)?1:0):((signx^signy)?2:3)

[0096] Here, inequality signs (>, <) can be replaced with (>=, <=). Angle information can be derived from signx, signy, and xgty. ^ is for XOR calculation. Quadrants are represented by values ​​from 0 to 3, {Ra,Rb,Rc,Rd}={0,1,2,3}. Quadrant values ​​are not limited to those listed above.

[0097] The angle mode export unit 310462 exports iRatio. iRatio = R_UNIT * absy / absx

[0098] R_UNIT is a power of 2 (1 << shiftR). For example, when shiftR = 16, R_UNIT = 65536. The division operation can be replaced by "multiplying by its reciprocal". This reciprocal is derived from the LUT.

[0099] For example, LUT[k] = R_UNIT / k, iRatio = absy * LUT[absx] The angle mode export unit 310462 converts the exported pixel gradient into an angle prediction mode modeVal by looking up the corresponding angle mode for iRatio.

[0100]

[0101] The angle mode export unit 310462 counts the number of angle prediction modes modeVal exported from the reference region. This angle mode export unit can construct a histogram HistMode[] as follows. HistMode[modeVal] += 1

[0102] The angle mode selection unit 310463 selects the intra prediction mode with the most occurrences (the most counted) from this histogram as the DIMD intra prediction mode or dimdMode. Hereinafter, the selected intra prediction is called dimdBestMode (in the case of using DIMD_MODE_TOP_LEFT), dimdHorMode (in the case of using DIMD_MODE_LEFT), and dimdVerMode (in the case of using DIMD_MODE_VER). The angle mode selection unit 310463 can select the second most occurring second mode as dimdSecondaryMode. Then, the prediction image generation unit 310464 can generate a DIMD prediction image using the exported dimdBestMode. The DIMD prediction image can be a weighted average of the prediction image using dimdBestMode and the prediction image using dimdSecondaryMode.

[0103] The DIMD prediction unit 31046 can use multiple sets of filters and regions (e.g., 2x2 filter with above and left, 4x4 filter with above and left, 3x3 filter with above and 3x3 filter with left) to export multiple dimdMode.

[0104] A video decoding apparatus for generating a predicted image includes a DIMD prediction unit configured to derive multiple intra-frame prediction modes using multiple sets of filters and reference regions, and configured to derive an intra-frame prediction image using multiple intra-frame prediction images derived from the derived intra-frame prediction modes.

[0105] The video decoding apparatus of claim 1, further comprising a DIMD prediction unit configured to derive gradients using a set of filters and reference regions, wherein the set consists of a 2x2 filter, a 3x3 filter, or a 4x4 filter and an upper and left adjacent region, an upper adjacent region, or a left adjacent region of the target block.

[0106] The DIMD intra-prediction modes dimdMode derived using a 2x2 filter with DIMD_MODE_TOP_LEFT (top and left) and a 4x4 filter with DIMD_MODE_TOP_LEFT (top and left) are called dimdMode2x2 and dimdMode4x4, respectively. On the other hand, the intra-prediction modes with the highest occurrence counts derived using a 3x3 filter with DIMD_MODE_TOP and a 3x3 filter with DIMD_MODE_LEFT are called dimdModeTop and dimdModeLeft, respectively. GradMPMList generation

[0107] GradMPMList is an intra-frame prediction tool and a list of length NMax containing possible prediction modes that can be selected for the current block. These modes include planar, DC, and angular prediction modes. GradMPMList can include prediction methods for neighboring blocks of the current block, as well as two or more angular modes derived from the dimd method. When the number of the above prediction modes is less than NMax, extended modes of these modes can be added to GradMPMList in the range of [-4, 4]. If the number of modes in GradMPMList is still less than NMax after adding extended modes, a default angular prediction mode is added to GradMPMList based on a predefined list. The method for generating GradMPMList will be described in detail later. NMax is a constant value. NMax can be 22, but is not limited to 22, and other values ​​can be used.

[0108] In summary, a video decoding apparatus further includes a DIMD prediction unit configured to derive gradients using the upper left, left, and upper regions of a target block, and to derive intra-frame prediction modes as dimdMode2x2, dimdMode4x4, dimdModeTop, and dimdModeLeft, wherein dimdMode2x2 is derived based on the 2x2 filter, dimdMode4x4 is derived based on the 4x4 filter, and dimdModeTop and dimdModeLeft are derived based on the upper region and the left region, respectively. TIMD Prediction

[0109] The TIMD prediction unit 31048 derives an intra-prediction mode (template-based intra-prediction mode, TIMD intra-prediction mode) through template matching and uses the derived intra-prediction mode to generate a prediction image. The TIMD prediction unit 31048 first generates a template image located in an adjacent region (template region). Then, the TIMD prediction unit 31048 uses this image in a reference region (template reference region) to generate a template prediction image for multiple intra-prediction mode candidates. Finally, the TIMD prediction unit 31048 selects one or more candidates (TIMD intra-prediction mode, timdBestMode, and timdSecoundaryMode) with the lowest cost between the template image and the template prediction image. The TIMD prediction unit 31048 uses the derived TIMD intra-prediction mode to generate an intra-prediction image. The TIMD prediction unit 31048 can use the left adjacent region of the target block to select timdHorMode and the upper adjacent region of the target block to select timdVerMode. timdBestMode, timdSecoundaryMode, timdHorMode, and timdVerMode can all be referred to as timdMode. Configuration of Predictive Image Corrector 3105

[0110] The prediction image corrector 3105 corrects the prediction image output from the intra-prediction unit 3104 according to the intra-prediction mode. Specifically, the prediction image corrector 3105 derives the prediction image (corrected prediction image) Pred by performing a weighted addition (weighted average) on the unfiltered reference image and the prediction image for each pixel of the prediction image, based on the distance between the reference region R and the target prediction pixel. It should be noted that in certain intra-prediction modes (e.g., planar prediction, DC prediction, etc.), the prediction image corrector 3105 may not correct the prediction image, and the output of the intra-prediction unit 3104 can be used as the prediction image. Application Examples GradMPMList generation unit 31047

[0111] Figure 6 The structure of the GradMPMList generation unit 31047 is illustrated. This GradMPMList generation unit comprises a reference sample derivation unit 4701, a template derivation unit 4702, a prediction mode derivation device 4710, and a GradMPMList filling unit 4716. The prediction mode derivation device 4710 comprises a candidate derivation unit 4711 and a candidate derivation unit 4712. The GradMPMList generation unit 31047 may also include a GradMPMList sorting unit 4717. The GradMPMList sorting unit 4717 includes a template prediction image generation unit 4713, a template cost derivation unit 4714, and a sorting unit 4715.

[0112] GradMPMList can be generated in different ways based on the size or shape of the current block. For example... Figure 6 As shown, GradMPMList can be generated in two ways: one using generation path 1 of candidate export unit 1 4711, and the other using generation path 2 of candidate export unit 2 4712. These two GradMPMLists are called modeList1 and mostList2, respectively. The path selection is controlled by the flag selectionFlag. For example, selectionFlag is set to false when the current slice is I_SLICE and the product of the width and height of the current block is greater than or equal to sizeTH. sizeTH can be equal to 128. For example, sizeTH can be equal to 1024. When selectionFlag is true, candidate export unit 1 4711 and GradMPMList sorting unit 4717 are used to generate GradMPMList(modeList1), and when selectionFlag is false, candidate export unit 2 4712 is used to generate GradMPMList(modeList2). Candidate derived units 4711 and 4712

[0113] There are two candidate export units, namely, candidate export unit 1 4711 and candidate export unit 2 4712. In candidate export unit 1 4701, the process starts by adding PLANAR_IDX to the 0th position of GradMPMList. Subsequently, based on the intra prediction mode of adjacent blocks, candidate export unit 1 4711 appends N prediction modes to GradMPMList, where N <= numPredMode1. It should be noted that the maximum value numPredMode1 is a constant value. numPredMode1 is 7, but not limited to 7, and numPredMode1 can be equal to 1, 2, 3, 4, etc. When the number of intra adjacent blocks is equal to or more than numPredMode1, candidate export unit 14711 outputs GradMPMList with a length of numPredMode1 + 1. Otherwise, candidate export unit 1 4711 outputs GradMPMList with a length of N + 1 (when N < numPredMode1). Candidate export unit 24712 performs the same function as candidate export unit 1 4711, except that in candidate export unit 2 4712, the maximum value numPredMode2 is equal to NMax - 1. The GradMPMList generated by candidate export unit 2 4712 is directly sent to the GradMPMList filling unit 4716, while the GradMPMList generated by candidate export unit 1 4711 is sent to the GradMPMList sorting unit 4717.

[0114] In addition to the above, in candidate export units 4711 and 4712, the results obtained from the DIMD method can also be added to GradMPMList. DIMD exports 9 prediction modes, namely dimdModefirst, dimdModeSecond, dimdModeThird, dimdModeFourth, dimdModeFiveth, dimdMode2x2, dimdMode4x4, dimdModeTop, and dimdModeLeft. A variable called addDimd is used to specify how many DIMD results are to be added to this GradMPMList. In this case, the range of addDimd is [0, 9]. Additionally, it should be noted that the value of numPredaMode1 in candidate export unit 4711 can be derived based on the value of addDimd. GradMPMList sorting unit 4717

[0115] The GradMPMList sorting unit 4717 sorts the elements in the GradMPMList output by the candidate derivation unit 14711 based on the SATD cost. The GradMPMList sorting unit consists of a template prediction image generation unit 4713, a template cost derivation unit 4714, and a sorting unit 4715. Template prediction image generation unit 4713

[0116] The template prediction image generation unit 4713 generates template prediction images based on the predicted patterns from GradMPMList. First, the template prediction image generation unit obtains the reference samples required for prediction through the reference sample derivation unit 4701. Then, the template prediction image generation unit generates prediction images for each predicted pattern in GradMPMList. The generated prediction images are collectively referred to as tpredSamples. Template cost export unit 4714

[0117] The template cost derivation unit 4714 uses tempSamples generated by the template derivation unit 4702 and tpredSamples generated by the template prediction image generation unit 4713 to calculate the cost of candidate patterns. In this unit, the cost of all candidate patterns is calculated for comparison and stored in the costList[N+1] array, where the cost calculation is typically based on SATD cost. Sorting unit 4715

[0118] Sorting unit 4715 sorts all elements in the current GradMPMList in ascending order of their SATD costs. SATD costs are stored in costList[] obtained from template cost derivation unit 4714. Sorting unit 4715 outputs the updated GradMPMList(sortedModeList). GradMPMList fills 4716 cells

[0119] GradMPMList filling unit 4716 fills GradMPMList until the list contains NMax elements, where GradMPMList is either modeList1 or modeList2. GradMPMList filling unit 4716 can repeatedly estimate the number of elements in the current GradMPMList, denoted as numOfCurrMPM. If numOfCurrMPM is less than NMax (isFillFull is set to false), GradMPMList filling unit 4716 fills the current GradMPMList by appending an element. If numOfCurrMPM is equal to or greater than NMax (isFillFull is set to true), GradMPMList is complete.

[0120] The process of attaching modes consists of two steps. The first step involves attaching based on the current element in GradMPMList, while the second step involves attaching based on a predefined list of intra-prediction modes.

[0121] When adding based on the current element, all elements in the current GradMPMList are traversed according to the value of numOfCurrMPM. For each element GradMPMList[i] (where i is greater than or equal to 0 and less than numOfCurrMPM), if GradMPMList[i] is an angle prediction mode, an extended angle prediction mode around (similar to) GradMPMList[i] is appended to GradMPMList. The extent of this extension is specified by ExtAngMode. An angle prediction mode within the range of plus and minus ExtAngMode relative to GradMPMList[i] is added to GradMPMList. For example, if ExtAngMode is 4, [GradMPMList[i]-4, GradMPMList[i]-3, GradMPMList[i]-2, GradMPMList[i]-1, GradMPMList[i]+1, GradMPMList[i]+2, GradMPMList[i]+3, GradMPMList[i]+4 are appended. The value of ExtAngMode can be determined dynamically, for example, based on the value of numOfCurrMPM. Here are two examples of determining ExtAngMode based on the value of numOfCurrMPM: Example 1: The smaller the value of numOfCurrMPM, the larger the value of ExtAngMode. For example, GradMPMList fills cell 4716 using the following method. if numOfCurrMPM<=2,ExtAngMode=6 else if numOfCurrMPM<=4,ExtAngMode=5 else if numOfCurrMPM<=6,ExtAngMode=4 else ExtAngMode=3

[0122] For example, ExtAngMode is set to (NumK - numOfCurrMPM) / DivK, where NumK can be 14 and DivK can be 2. Example 2:

[0123] The smaller the value of numOfCurrMPM, the smaller the value of ExtAngMode. For example, GradMPMList fills cell 4716 using the following method. if numOfCurrMPM<=2,ExtAngMode=3 else if numOfCurrMPM<=4,ExtAngMode=4 else if numOfCurrMPM<=6,ExtAngMode=5 else ExtAngMode=6

[0124] Please note that the above embodiments are merely a few examples of how ExtAngMode can be determined based on numOfCurrMPM, and various methods may exist for performing such determination.

[0125] During the addition process, two aspects need to be checked. First, the change in the current number of elements in GradMPMList. When the element count reaches NMax, the addition process stops, the operation of filling cell 4716 in GradMPMList ends, and GradMPMList is exported. The second aspect to consider is the boundary of the angle patterns. When the extended angle patterns exceed the boundary, these extended angle patterns are restricted to the range of angle patterns. When the value exceeds the boundary, GradMPMList filling cell 4716 can be supplemented with angle patterns from another boundary. For example, with GradMPMList[i] = 4 and ExtAngMode = 4, the range of angle pattern indices is [2, 66]. In this case, the two extended pattern indices GradMPMList[i]-3 and GradMPMList[i]-4 are less than 2. In this case, GradMPMList[i]-3 is set to 66, and GradMPMList[i]-4 is set to 65. GradMPMList fills cell 4716 with (GradMPMList[i]+-k)%66, k = -ExtAngMode, ... -1, 1, ... ExtAngMode.

[0126] If, after the aforementioned filling process, the number of elements in GradMPMList is still less than NMax, then GradMPMList can be filled according to a predefined list. This predefined list is called "defaultList" and can consist of NMax-1 elements: [DC_IDX,VER_IDX,HOR_IDX,VER_IDX-4,VER_IDX+4,14,22,42,58,10,26,38,62,6,30,34,66,2,48,52,16]. During this filling process, each element from defaultList can be iterated and added to GradMPMList one by one until the number of elements in GradMPMList reaches NMax.

[0127] GradMPMList filling unit 4716 ensures that there are no duplicate elements in GradMPMList and that the number of elements in GradMPMList is exactly NMax. GradMPMList filling unit 4716 completes the generation of GradMPMList.

[0128] The inverse quantization and inverse transform processing unit 311 performs inverse quantization on the quantized transform coefficients input from the prediction parameter derivation unit 320 to calculate the transform coefficients. These quantized transform coefficients are obtained by performing frequency transformations, such as Discrete Cosine Transform (DCT) or Discrete Sine Transform (DST), on the prediction error for quantization during decoding. The inverse quantization and inverse transform processing unit 311 performs inverse frequency transformations, such as inverse DCT or inverse DST, on the calculated transform coefficients to calculate the prediction error. The inverse quantization and inverse transform processing unit 311 outputs the prediction error to the addition unit 312.

[0129] The addition unit 312 adds the predicted image of the block input from the intra-frame prediction image generation unit 310 and the prediction error input from the inverse quantization and inverse transform processing unit 311 for each pixel, and generates a decoded image of the block. The addition unit 312 stores the decoded image of the block in the reference image memory 306 and outputs it to the loop filter 305. Configuration of video decoding device

[0130] Next, the configuration of the video decoding device 11 according to this embodiment will be described. Figure 7 This is a block diagram illustrating the configuration of a video decoding apparatus 11 according to this embodiment. The video decoding apparatus 11 is configured to include a prediction image generation unit 101, a subtraction unit 102, a transform and quantization processing unit 103, an inverse quantization and inverse transform processing unit 105, an addition unit 106, a loop filter 107, a prediction parameter memory (prediction parameter storage unit, frame memory) 108, a reference image memory (reference image storage unit, frame memory) 109, a decoding parameter determination unit 110, a parameter decoding unit 111, a prediction parameter derivation unit 120, and an entropy decoding unit 104.

[0131] The prediction image generation unit 101 generates a prediction image for each CU, which is a region obtained by segmenting each image of the image T. The operation of the prediction image generation unit 101 is the same as that of the intra-frame prediction image generation unit 310 already described, so its description is omitted.

[0132] Subtraction unit 102 subtracts the pixel values ​​of the predicted image of the block input from prediction image generation unit 101 from the pixel values ​​of image T to generate prediction error. Subtraction unit 102 outputs the prediction error to transformation and quantization processing unit 103.

[0133] The transform and quantization processing unit 103 performs frequency transformation on the prediction error input from the subtraction unit 102 to calculate the transform coefficients, and derives the quantized transform coefficients through quantization. The transform and quantization processing unit 103 outputs the quantized transform coefficients to the entropy decoding unit 104 and the inverse quantization and inverse transform processing unit 105.

[0134] Inverse quantization and inverse transform processing unit 105 and inverse quantization and inverse transform processing unit 311 of video decoding device 31 Figure 4 The same applies, and its description is omitted. The calculated prediction error is output to the adder unit 106.

[0135] For the entropy decoding unit 104, quantization transformation coefficients are input from the transformation and quantization processing unit 103, and decoding parameters are input from the parameter decoding unit 111. The entropy decoding unit 104 performs entropy decoding on the segmentation information, prediction parameters, quantization transformation coefficients, etc., to generate and output the decoded stream Te.

[0136] The parameter decoding unit 111 instructs the entropy decoding unit 104 to encode the prediction parameters and quantization coefficients derived from the prediction parameter derivation unit 120.

[0137] The prediction parameter derivation unit 120 derives syntax elements from the parameters input to the decoding parameter determination unit 110. Some parts of the prediction parameter derivation unit 120 have the same structure as the prediction parameter derivation unit 320.

[0138] The addition unit 106 adds the pixel values ​​of the predicted image of the block input from the prediction image generation unit 101 and the prediction error input from the inverse quantization and inverse transform processing unit 105 to each pixel to generate a decoded image. The addition unit 106 stores the generated decoded image in the reference image memory 109.

[0139] The loop filter 107 applies a deblocking filter, SAO, and ALF to the decoded image generated by the addition unit 106. It should be noted that the loop filter 107 does not necessarily include all three types of filters mentioned above, and may, for example, be configured to have only a deblocking filter.

[0140] The prediction parameter memory 108 stores the prediction parameters generated by the prediction parameter derivation unit 120 for each target image and CU at a predetermined location. It can store the transformation coefficients created by the transformation and quantization processing unit 103.

[0141] The reference image memory 109 stores the decoded image generated by the loop filter 107 for each target image and CU at a predetermined location.

[0142] The decoding parameter determination unit 110 selects one set of decoding parameters from multiple sets. The decoding parameters refer to the aforementioned QT, BT, or TT segmentation information, prediction parameters, or parameters to be decoded, which are generated in association with these parameters. The prediction image generation unit 101 uses these decoding parameters to generate a prediction image.

[0143] The decoding parameter determination unit 110 calculates an RD cost value for each of the multiple sets of decoding parameters. This RD cost value indicates the amount of information and the magnitude of the decoding error. The RD cost value is, for example, the sum of the code amount and the value obtained by multiplying the coefficient λ by the squared error. The decoding parameter determination unit 110 selects the set of decoding parameters with the minimum calculated cost value. With this configuration, the entropy decoding unit 104 outputs the selected set of decoding parameters as a decoded stream Te. The decoding parameter determination unit 110 outputs the determined decoding parameters to the parameter decoding unit 111, the prediction parameter derivation unit 120, and the prediction image generation unit 101.

[0144] It should be noted that some parts of the video decoding device 11 and video decoding device 31 in the above embodiments, such as the entropy decoding unit 301, parameter decoding unit 302, loop filter 305, intra-frame prediction image generation unit 310, inverse quantization and inverse transform processing unit 311, addition unit 312, prediction parameter derivation unit 320, prediction image generation unit 101, subtraction unit 102, transform and quantization processing unit 103, entropy decoding unit 104, inverse quantization and inverse transform processing unit 105, loop filter 107, decoding parameter determination unit 110, parameter decoding unit 111, and prediction parameter derivation unit 120, can be implemented by a computer. In this case, this configuration can be implemented by recording the program used to implement such control functions on a computer-readable recording medium, and causing the computer system to read the program recorded on the recording medium for execution. It should be noted that the "computer system" mentioned here refers to the computer system built into the video decoding device 11 or video decoding device 31, and assumes that it includes an operating system and hardware components such as peripheral devices. Furthermore, "computer-readable recording medium" refers to portable media such as floppy disks, magneto-optical disks, ROMs, CD-ROMs, etc., and storage devices such as hard disks built into computer systems. Additionally, "computer-readable recording medium" can include media that dynamically store programs for short periods, such as communication lines in cases where programs are transmitted via networks (such as the Internet) or communication lines (such as telephone lines), and can also include media that store programs for fixed periods, such as volatile memory included in computer systems used as servers or clients in this case. Furthermore, the aforementioned program can be a program for implementing some of the functions described above, or a program that can combine with programs already recorded in the computer system to implement the aforementioned functions.

[0145] Furthermore, the video decoding device 11 and video decoding device 31 in the above embodiments can also be implemented as integrated circuits such as large-scale integrated circuits (LSI). Each functional block of the video decoding device 11 and video decoding device 31 can be implemented as a processor independently, or partially or entirely integrated into a processor. Circuit integration technology is not limited to LSI, and the integrated circuits used for functional blocks can be implemented as dedicated circuits or multi-purpose processors. Where circuit integration technologies that replace LSI emerge with advancements in semiconductor technology, integrated circuits based on such technologies can be used.

[0146] The embodiments of this disclosure have been described in detail above with reference to the accompanying drawings. However, the specific configuration is not limited to the above embodiments, and various modifications can be made to the design without departing from the spirit of this disclosure.

[0147] The embodiments of the present invention can be applied to video decoding devices that decode encoded image data and video encoding devices that generate encoded data from image data. Furthermore, the data structure of the encoded data is generated by the video encoding device and referenced by the video decoding device. List of reference numerals 31: Image decoding device 301: Entropy Decoding Unit 302: Parameter Decoding Unit 310: Predictive Image Generation Unit 3104: Intra-frame prediction unit 31046: DIMD Prediction Unit 310460: Reference Sample Derivation Unit 310461: Gradient Derivation Unit 310462: Angle Pattern Derivation Unit 310463: Angle Mode Selection Unit 310464: Predictive Image Generation Unit 31047: GradMPMList Generation Unit 4701: Reference Sample Derivation Unit 4702: Template Export Unit 4710: Predictive pattern export device 4711: Candidate Derived Unit 1 4712: Candidate Derived Unit 2 4717: GradMPMList sorting unit 4713: Template Prediction Image Generation Unit 4714: Template Cost Export Unit 4715: Sorting Unit 4716: GradMPMList filler cell 31048: TIMD prediction unit 311: Inverse quantization and inverse transform processing unit 312: Addition Unit 11: Image decoding device 101: Predictive Image Generation Unit 102: Subtraction Unit 103: Transformation and Quantization Processing Unit 104: Entropy Decoding Unit 105: Inverse quantization and inverse transform processing unit 107: Loop Filter 110: Decoding Parameter Determination Unit 111: Parameter Decoding Unit

Claims

1. A video decoding apparatus for generating a predicted image, the video decoding apparatus comprising a DIMD prediction unit configured to derive a plurality of intra-frame prediction modes using a plurality of sets of filters and reference regions, and configured to derive an intra-frame prediction image using a plurality of intra-frame prediction images derived from the derived intra-frame prediction modes.

2. The video decoding apparatus of claim 1, wherein the video decoding apparatus further comprises a DIMD prediction unit configured to derive gradients using a set of filters and reference regions, wherein the set consists of a 2x2 filter, a 3x3 filter, or a 4x4 filter and an upper and left adjacent region, an upper adjacent region, or a left adjacent region of the target block.

3. The video decoding apparatus according to claim 2, wherein the video decoding apparatus further comprises a DIMD prediction unit, the DIMD prediction unit being configured to derive gradients using the upper left, left, and upper regions of the target block, and to derive intra-frame prediction modes as dimdMode2x2, dimdMode4x4, dimdModeTop, and dimdModeLeft, wherein dimdMode2x2 is derived based on the 2x2 filter, dimdMode4x4 is derived based on the 4x4 filter, and dimdModeTop and dimdModeLeft are derived based on the upper region and the left region, respectively.

4. The video decoding apparatus according to claim 2, wherein the video decoding apparatus further comprises a DIMD prediction unit, the DIMD prediction unit being configured to derive gradients using the upper left region of the target block, and to derive intra-frame prediction modes: dimdModeFirst, dimdModeSecond, dimdModeThird, dimdModeFourth, and dimdModeFiveth.

5. The video decoding apparatus of claim 1, wherein the video decoding apparatus further comprises a GradMPMList generation unit, the GradMPMList generation unit being configured to derive a GradMPMList using a dynamically extended range E.

6. A video decoding apparatus, the video decoding apparatus comprising an MPM candidate generation unit configured to derive an MPM candidate list of intra-frame prediction modes.