Video decoding device, video encoding device, and predicted image generating method

By downsampling reference pixels and using variable weight matrix to generate intermediate prediction images, the problem of heavy storage and calculation of weight matrix in the prior art is solved, and efficient intraprediction is achieved.

JP7659674B2Active Publication Date: 2025-04-09SHARP KK
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2024022477
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-02-19
Publication Date
2025-04-09
Estimated Expiration
2039-09-20

AI Technical Summary

Technical Problem

In the existing intra-matrix prediction technology, the weight matrix has a large storage space and a large amount of calculation, resulting in poor internal prediction performance.

Method used

The reference pixel is derived by downsampling adjacent pixels, the weight matrix is ​​derived using intra prediction mode and block size variables, and the intermediate prediction image is generated through product summing operations, and the final prediction image is finally generated through interpolation.

Benefits of technology

It effectively reduces the storage space and calculation amount of the weight matrix, while improving the performance of intraprediction.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007659674000001
    Figure 0007659674000001
  • Figure 0007659674000002
    Figure 0007659674000002
  • Figure 0007659674000003
    Figure 0007659674000003
Patent Text Reader

Abstract

To provide a video decoding device that reduces the amount of processing required to generate a predicted image.SOLUTION: A video decoding device derives a predicted image, by matrix intra prediction, using a weight matrix derived using a reference pixel derived using adjacent pixels of a target block, an intra prediction mode, and a size variable, and when the sizes of the width and height of the target block are 4x8 pixels, 4x16 pixels, 4x32 pixels, 4x64 pixels, 8x8 pixels, 8x4 pixels, 16x4 pixels, 32x4 pixels, or 64x4 pixels, the value of the size variable is set to 1, and when the sizes of the width and height of the target block are 8x16 pixels, 8x32 pixels, 8x64 pixels, 16x8 pixels, 16x16 pixels, 16x32 pixels, 16x64 pixels, 32x8 pixels, 32x16 pixels, 32x32 pixels, 32x64 pixels, 64x8 pixels, 64x16 pixels, 64x32 pixels or 64x64 pixels, the value of the size variable is set to 2.SELECTED DRAWING: Figure 16
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] FIELD An embodiment of the present invention relates to a video decoding device, a video encoding device, and a prediction image generating method. [Background technology]

[0002] In order to efficiently transmit or record moving images, a moving image encoding device is used that generates encoded data by encoding the moving images, and a moving image decoding device is used that generates a decoded image by decoding the encoded data.

[0003] Specific examples of video coding methods include the methods proposed in H.264 / AVC and High-Efficiency Video Coding (HEVC).

[0004] In such a video coding method, images (pictures) constituting a video are divided into slices obtained by dividing the images, coding tree units (CTUs) obtained by dividing the slices, coding tree units (CTUs) obtained by dividing the coding tree units, and so on. The coding unit (sometimes called a coding unit (CU)) that is to be encoded, and The coding unit is divided into transform units (TUs), which are managed in a hierarchical structure, and the coding unit is encoded / decoded for each CU.

[0005] In such a video coding method, a predicted image is usually generated based on a locally decoded image obtained by encoding / decoding an input image, and a prediction error (sometimes called a "difference image" or "residual image") obtained by subtracting the predicted image from the input image (original image) is coded. Methods for generating a predicted image include inter-prediction and intra-prediction.

[0006] Furthermore, a recent example of a video encoding and decoding technique is Non-Patent Document 1. Non-Patent Document 2 discloses a matrix-based intra prediction technique (MIP) that derives a predicted image by a multiplication and accumulation operation between a reference image derived from an adjacent image and a weighting matrix. [Prior art documents] [Non-patent literature]

[0007] [Non-Patent Document 1] "Versatile Video Coding (Draft 6)", JVET-O2001-vE, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11 [Non-Patent Document 2] "CE3: Affine linear weighted intra prediction (CE3-4.1, CE3-4.2)", JVET-N0217-v1, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11 Summary of the Invention [Problem to be solved by the invention]

[0008] In the matrix intra prediction as described in Non-Patent Document 1 and Non-Patent Document 2, since different weight matrices are stored according to the sizes of a plurality of blocks and the intra prediction mode, there is a problem that the memory size for storing the weight matrices is large. In addition, there is a problem that the amount of processing required to generate a predicted image is enormous.

[0009] An object of the present invention is to perform suitable intra prediction while reducing the memory size of a weighting matrix, and to reduce the amount of processing. [Means for solving the problem]

[0010] In order to solve the above problem, a video decoding device according to one aspect of the present invention includes a matrix reference pixel derivation unit that derives first reference pixels by downsampling adjacent pixels adjacent to the upper side of a current block and derives second reference pixels by downsampling adjacent pixels adjacent to the left side of the current block, a weighting matrix derivation unit that derives a weighting matrix by using an intra prediction mode and a size variable, a matrix predicted image derivation unit that derives an intermediate predicted image of a predetermined size by using a multiply-accumulate operation of the first reference pixels, the second reference pixels, and the weighting matrix, and a matrix predicted image interpolation unit that derives a predicted image by using the intermediate predicted image, and the size of the width and height of the current block is 4x8 pixels, 4x16 pixels, 4x32 pixels, 4x64 pixels, ... , 8x8 pixels, 8x4 pixels, 16x4 pixels, 32x4 pixels, or 64x4 pixels, the value of the size variable is set to 1, and the width and height size of the target block is 8x16 pixels, 8x32 pixels, 8x64 pixels, 16x8 pixels, 16x16 pixels, 16x32 pixels, 16x64 pixels, 32x8 pixels, 32x16 pixels, 32x32 pixels. , 32x64 pixels, 64x8 pixels, 64x16 pixels, 64x32 pixels, or 64x64 pixels, the value of the size variable is set to 2. A video decoding device according to an aspect of the present invention includes a matrix reference pixel derivation unit configured to derive an image obtained by downsampling images adjacent to the top and left of a current block as a reference image, a weighting matrix derivation unit configured to derive a matrix of weighting coefficients according to an intra prediction mode and a current block size, a matrix predicted image derivation unit configured to derive a predicted image by multiplying elements of the reference image by elements of the matrix of weighting coefficients, and a matrix predicted image interpolation unit configured to derive the predicted image or an image obtained by interpolating the predicted image as a predicted image, wherein the weighting matrix derivation unit derives a matrix having a size equal to or smaller than a width and height of the current block size.

[0011] The weighting matrix derivation unit is characterized in that it derives a matrix of size 4x4 when one side of the target block has 4.

[0012] The weighting matrix derivation part calculates a matrix of size 4x4 when the target block size is 4x16 and 16x4. The present invention is characterized in that:

[0013] The weighting matrix derivation unit uses a 4x4 size when the product of the width and height of the target block size is 64 or less. The method is characterized by deriving a matrix of noise. The matrix predicted image derivation unit derives a square intermediate predicted image predMip[][] with equal width and height. The present invention is characterized by the above.

[0014] A video encoding device comprising a matrix reference pixel derivation unit that derives an image obtained by downsampling images adjacent to the top and left of a target block as a reference image, a weighting matrix derivation unit that derives a matrix of weighting coefficients according to an intra prediction mode and a target block size, a matrix predicted image derivation unit that derives a predicted image by multiplying elements of the reference image by elements of the matrix of weighting coefficients, and a matrix predicted image interpolation unit that derives the predicted image or an image obtained by interpolating the predicted image as a predicted image, wherein the weighting matrix derivation unit derives a matrix whose size is less than the width and height of the target block size.

[0015] The weighting matrix derivation unit is characterized in that it derives a matrix of size 4x4 when one side of the target block has 4.

[0016] The weighting matrix derivation part calculates a matrix of size 4x4 when the target block size is 4x16 and 16x4. The present invention is characterized in that:

[0017] The weighting matrix derivation unit uses a 4x4 size when the product of the width and height of the target block size is 64 or less. The method is characterized by deriving a matrix of noise. The matrix predicted image derivation unit derives a square intermediate predicted image predMip[][] with equal width and height. The present invention is characterized by the above. Effect of the Invention

[0018] According to one aspect of the present invention, it is possible to reduce the memory size of a weighting matrix or perform suitable intra prediction while reducing the amount of processing. [Brief description of the drawings]

[0019] [Figure 1] 1 is a schematic diagram showing a configuration of an image transmission system according to an embodiment of the present invention. [Diagram 2] 1 is a diagram showing the configuration of a transmitting device equipped with a video encoding device according to the present embodiment, and a receiving device equipped with a video decoding device. PROD_A indicates the transmitting device equipped with the video encoding device, and PROD_B indicates the receiving device equipped with the video decoding device. [Diagram 3] 1 is a diagram showing the configuration of a recording device equipped with a video encoding device according to the present embodiment, and a playback device equipped with a video decoding device, in which PROD_C indicates a recording device equipped with a video encoding device, and PROD_D indicates a playback device equipped with a video decoding device. [Figure 4] FIG. 2 is a diagram showing a hierarchical structure of data in an encoded stream. [Diagram 5] FIG. 13 is a diagram illustrating an example of division of a CTU. [Figure 6] FIG. 13 is a schematic diagram showing types of intra-prediction modes (mode numbers). [Figure 7] FIG. 1 is a schematic diagram showing a configuration of a video decoding device. [Figure 8] FIG. 13 is a schematic diagram showing a configuration of an intra-prediction parameter decoding unit. [Figure 9] FIG. 13 is a diagram showing reference regions used for intra prediction. [Figure 10] FIG. 13 is a diagram illustrating a configuration of an intra-prediction image generating unit. [Figure 11] FIG. 13 is a diagram illustrating an example of MIP processing. [Figure 12] FIG. 13 is a diagram illustrating an example of MIP processing. [Figure 13]FIG. 1 is a block diagram showing a configuration of a video encoding device. [Figure 14] 13 is a schematic diagram showing a configuration of an intra-prediction parameter encoding unit. [Figure 15] FIG. 2 is a diagram showing details of an MIP section. [Figure 16] FIG. 2 is a diagram illustrating MIP processing according to the present embodiment. [Figure 17] FIG. 13 is a diagram showing parameters for generating a predicted image when deriving predMip including a non-square in MIP. [Figure 18] FIG. 11 is a diagram showing a method for deriving sizeId in one embodiment of the present invention (MIP Example 1). [Figure 19] FIG. 13 is a diagram showing parameters for generating a predicted image when deriving a square predMip by MIP. [Figure 20] FIG. 13 is a diagram showing a method for deriving sizeId in one embodiment of the present invention (MIP Example 2). [Figure 21] FIG. 13 is a diagram showing a method for deriving sizeId in one embodiment of the present invention (MIP Example 3). [Figure 22] FIG. 11 is a diagram showing a method for deriving sizeId in one embodiment of the present invention (MIP Example 4). DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0020] (First embodiment) Hereinafter, an embodiment of the present invention will be described with reference to the drawings.

[0021] FIG. 1 is a schematic diagram showing the configuration of an image transmission system 1 according to this embodiment.

[0022] The image transmission system 1 is a system that transmits an encoded stream obtained by encoding an image to be encoded, decodes the transmitted encoded stream, and displays an image. The system includes a video encoding device (image encoding device) 11, a network 21, a video decoding device (image decoding device) 31, and a video display device (image display device) 41.

[0023] An image T is input to the video encoding device 11 .

[0024] The network 21 transmits the encoded stream Te generated by the video encoding device 11 to the video decoding device 31. The network 21 may be the Internet, a wide area network (WAN), a local area network (LAN), or any of these. The network 21 is a combination of the above. The network 21 is not necessarily limited to a two-way communication network, but may be a one-way communication network that transmits broadcast waves such as terrestrial digital broadcasting, satellite broadcasting, etc. The network 21 may also be replaced by a storage medium on which the encoded stream Te is recorded, such as a DVD (Digital Versatile Disc: registered trademark) or a BD (Blue-ray Disc: registered trademark).

[0025] The video decoding device 31 decodes each of the coded streams Te transmitted by the network 21, and generates one or more decoded images Td.

[0026] The video display device 41 displays all or part of one or more decoded images Td generated by the video decoding device 31. The video display device 41 includes a display device such as a liquid crystal display or an organic EL (Electro-luminescence) display. The display may be in the form of a stationary display, a mobile display, an HMD, or the like. In addition, the video decoding device 31 has a high processing capability. When the image display device has a higher processing power, it displays a high quality image, and when the image display device has a lower processing power, it displays an image that does not require a high processing power or display power.

[0027] <operator> The operators used in this specification are listed below.

[0028] >> is a right bit shift, << is a left bit shift, & is a bitwise AND, | is a bitwise OR , |= is the OR assignment operator, and || indicates the logical OR.

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

[0030] Clip3(a, b, c) is a function that clips c to a value between a and b (inclusive). If c < a, it returns a; if c > b, it returns b; otherwise, it returns c (assuming a <= b).

[0031] Clip1Y(c) is an operator where a = 0 and b = (1 << BitDepthY) - 1 in Clip3(a, b, c). BitDepthY is the bit depth of luminance.

[0032] abs(a) is a function that returns the absolute value of a.

[0033] Int(a) is a function that returns the integer value of a.

[0034] floor(a) is a function that returns the largest integer less than or equal to a.

[0035] ceil(a) is a function that returns the smallest integer greater than or equal to a.

[0036] a / d represents the division of a by d (truncating the fractional part).

[0037] min(a, b) is a function that returns the smaller value of a and b.

[0038] <Structure of the encoded stream Te> Prior to the detailed description of the moving image encoding device 11 and the moving image decoding device 31 according to this embodiment, the data structure of the encoded stream Te generated by the moving image encoding device 11 and decoded by the moving image decoding device 31 will be described.

[0039] FIG. 4 is a diagram showing a hierarchical structure of data in the coded stream Te. 4 shows a coded video sequence that defines a sequence SEQ, a coded picture that defines a picture PICT, a coded slice that defines a slice S, and a coded slice data that defines a slice data. A diagram showing the coded slice data, the coding tree units included in the coded slice data, and the coding units included in the coding tree units is shown.

[0040] (Coded Video Sequence) In the case of a coded video sequence, a video decoder is used to decode the sequence SEQ to be processed. A set of data to be referred to by the device 31 is defined. The sequence SEQ includes a Video Parameter Set, a Sequence The parameter set includes a sequence parameter set SPS (Sequence Parameter Set), a picture parameter set PPS (Picture Parameter Set), a picture PICT, and supplemental enhancement information SEI (Supplemental Enhancement Information).

[0041] The video parameter set VPS is used to determine the number of layers of a video image. A set of coding parameters common to multiple video images and a set of coding parameters related to multiple layers and individual layers included in the video images are defined.

[0042] The sequence parameter set SPS is used to decode the target sequence. A set of coding parameters to be referenced by the PPS is specified. For example, the width and height of a picture are specified. Note that there may be multiple SPSs. In that case, one of the multiple SPSs can be selected from the PPS. Select .

[0043] The picture parameter set PPS specifies the number of pictures to be decoded for each picture in the target sequence. A set of coding parameters to be referred to by the video decoding device 31 is defined. For example, the reference value of the quantization width (pic_init_qp_minus26) used for decoding a picture and the application of weighted prediction are defined. A flag (weighted_pred_flag) indicating the weighted pred is included. Note that there may be multiple PPSs. In this case, one of multiple PPSs is selected from each picture in the target sequence.

[0044] (Encoded Picture) The coded picture defines a set of data to be referenced by the video decoding device 31 in order to decode the picture PICT to be processed. The picture PICT is, as shown in the coded picture of FIG. As shown in the figure, slices 0 to NS-1 are included (NS is the total number of slices included in the picture PICT). .

[0045] In the following, when there is no need to distinguish between slices 0 to NS-1, the symbols are The subscripts may be omitted in the description, and the same applies to other data to which subscripts are added that are included in the coded stream Te described below.

[0046] (Coded Slice) In the case of the coded slice, the video decoding device 31 refers to the slice S to be processed in order to decode the slice S. A slice is a set of data that is encoded as shown in the coding slice of Figure 4. It includes a slice header and slice data.

[0047] The slice header is referred to by the video decoding device 31 in order to determine the decoding method of the current slice. The slice type designation information (slice_type) that designates a slice type is an example of a coding parameter included in a slice header.

[0048] Slice types that can be specified by the slice type specification information include (1) an I slice that uses only intra prediction during encoding, (2) a P slice that uses unidirectional prediction or intra prediction during encoding, and (3) a B slice that uses unidirectional prediction, bidirectional prediction, or intra prediction during encoding. Note that inter prediction is not limited to uni-prediction or bi-prediction, and a predicted image may be generated using more reference pictures. Hereinafter, P When called a B slice, it is a slice that includes blocks that can use inter prediction. This refers to the s.

[0049] In addition, the slice header may include a reference to a picture parameter set PPS (pic_parameter_set_id).

[0050] (Encoded slice data) The coded slice data defines a set of data to be referenced by the video decoding device 31 in order to decode the slice data to be processed. As shown in the slice header, the slice includes a CTU, which is a block of a fixed size (for example, 64x64) that constitutes a slice, and is also called a Largest Coding Unit (LCU).

[0051] (coding tree unit) 4 specifies a set of data to be referenced by the video decoding device 31 in order to decode the CTU to be processed. The CTU is divided into a recursive quad tree (QT (Quad Tree) division), a binary tree (BT (Binary Tree) division), or a ternary tree (TT (Ternary Tree) division). The BT and TT divisions are collectively called multi-tree division (MT (Multi Tree) division). The nodes of the tree structure obtained by recursive quad-tree division are called coding nodes. The intermediate nodes of the 1-ary, 2-ary, and 3-ary trees are coding nodes, and the CTU itself is the highest coding It is defined as an encoding node.

[0052] CT includes, as CT information, a QT split flag (cu_split_flag) indicating whether or not to perform QT ​​split, MT MT split flag (split_mt_flag) indicating whether or not a split has occurred, and MT split direction indicating the direction of the MT split (split_mt_dir), and MT split type (split_mt_type) that indicates the split type of MT split. cu_split_flag, split_mt_flag, split_mt_dir, and split_mt_type are transmitted for each encoding node. will be done.

[0053] If cu_split_flag is 1, the coding node is split into four coding nodes (QT in Figure 5).

[0054] When cu_split_flag is 0, and split_mt_flag is 0, the coding node is not split and has one CU as a node (no split in Figure 5). A CU is a terminal node of a coding node. The CU is the basic unit of the encoding process.

[0055] When split_mt_flag is 1, the coding node is split into MT as follows: When split_mt_type is 0, when split_mt_dir is 1, the coding node is split horizontally into two coding nodes (BT (horizontal split) in Figure 5), and when split_mt_dir is 0, the coding node is split into two coding nodes. (BT (vertical split) in Figure 5). Also, when split_mt_type is 1, if split_mt_dir is 1, the coding node is split horizontally into three coding nodes (TT (horizontal split) in Figure 5). If split_mt_dir is 0, the coding node is split vertically into three coding nodes (Figure 5 These are shown in the CT information in Figure 5.

[0056] Also, when the size of the CTU is 64x64 pixels, the size of the CU is 64x64 pixels, 64x32 pixels, 32x64 pixels, 32x32 pixels, 64x16 pixels, 16x64 pixels, 32x16 pixels, 16x32 pixels, 16x16 pixels, 64x8 Pixels, 8x64 pixels, 32x8 pixels, 8x32 pixels, 16x8 pixels, 8x16 pixels, 8x8 pixels, 64x4 pixels, 4x64 pixels, 32x4 pixels, 4x32 pixels, 16x4 pixels, 4x16 pixels, 8x4 pixels, 4x8 pixels, and 4x4 pixels You can choose either one.

[0057] (Encoding Unit) As shown in the coding unit of FIG. 4, a video is generated to decode the coding unit to be processed. The CU header specifies a set of data to be referenced by the image decoding device 31. Specifically, a CU is composed of a CU header CUH, prediction parameters, transformation parameters, quantization transformation coefficients, etc. A prediction mode, etc. are defined.

[0058] The prediction process may be performed in units of CUs, or in units of sub-CUs obtained by further dividing a CU. When the size of a CU and a sub-CU are equal, there is one sub-CU in the CU. When the size of a CU is larger than that of a sub-CU, the CU is divided into sub-CUs. For example, when a CU is 8x8 and a sub-CU is 4x4, the CU is divided into 2 parts horizontally and 2 parts vertically, into 4 sub-CUs.

[0059] There are two types of prediction (prediction modes): intra prediction and inter prediction. Intra prediction is a prediction within the same picture, while inter prediction refers to a prediction process performed between different pictures (for example, between display times or between layer images).

[0060] Transformation and quantization are performed in units of CUs, but quantization coefficients are stored in units of subblocks such as 4x4. It may be entropy coded.

[0061] (Prediction parameters) The predicted image is derived from prediction parameters associated with the block, which include intra-prediction and inter-prediction parameters.

[0062] The prediction parameters of the intra prediction are explained below. The intra prediction parameters are composed of a luminance prediction mode IntraPredModeY and a color difference prediction mode IntraPredModeC. FIG. 1 is a schematic diagram showing types of intra prediction modes (mode numbers). As shown in the diagram, there are, for example, 67 types of intra prediction modes (0 to 66). For example, these are planar prediction (0), DC prediction (1), and angular prediction (2 to 66). In addition, LM modes (67 to 72) are added for color difference. This is also fine.

[0063] Syntax elements for deriving intra prediction parameters include, for example, intra_luma_mpm_flag, intra_luma_mpm_idx, and intra_luma_mpm_remainder.

[0064] (MPM) The intra_luma_mpm_flag is a flag indicating whether the IntraPredModeY of the target block matches the MPM (Most Probable Mode). The MPM is included in the MPM candidate list mpmCandList[]. The MPM candidate list is based on the intra prediction modes of the neighboring blocks and the This is a list that stores candidates that are estimated to have a high probability of being applied to the current block from among the intra prediction modes in the above. When intra_luma_mpm_flag is 1, IntraPredModeY of the current block is derived using the MPM candidate list and index intra_luma_mpm_idx.

[0065] IntraPredModeY = mpmCandList[intra_luma_mpm_idx] (REM) When intra_luma_mpm_flag is 0, the intra prediction mode is selected from the remaining modes RemIntraPredMode, excluding the intra prediction modes included in the MPM candidate list from all intra prediction modes. The intra prediction modes selectable as RemIntraPredMode are "non-MPM" or It is called "REM". RemIntraPredMode is derived using intra_luma_mpm_remainder. do.

[0066] (Configuration of a video decoding device) The configuration of a video decoding device 31 (FIG. 7) according to this embodiment will be described.

[0067] The video decoding device 31 includes an entropy decoding unit 301, a parameter decoding unit (prediction image decoding device The image processing unit 302 includes a loop filter 305, a reference picture memory 306, a prediction parameter memory 307, a prediction image generating unit (prediction image generating device) 308, an inverse quantization and inverse transformation unit 311, and an adder 312. In addition, in accordance with a video encoding device 11 described later, the video decoding device 31 may have a configuration in which the loop filter 305 is not included.

[0068] The parameter decoding unit 302 includes an inter prediction parameter decoding unit 303 and an intra prediction parameter decoding unit 304 (not shown). The predicted image generating unit 308 includes an inter prediction image generating unit 309 and an intra prediction image generating unit 310.

[0069] In the following, we will describe an example in which CTU and CU are used as processing units, but this is not limiting. Alternatively, the processing may be performed in units of sub-CUs. The block may be replaced with a block, and processing may be performed in units of blocks or subblocks.

[0070] The entropy decoding unit 301 performs entropy decoding on the encoded stream Te input from the outside. Entropy coding is then performed to separate and decode the individual codes (syntax elements). There are two types of entropy coding: one is to variable-length code syntax elements using a context (probability model) that is adaptively selected according to the type of syntax element and the surrounding circumstances, and the other is to variable-length code syntax elements using a pre-defined table or formula. The former, CABAC (Context Adaptive Binary Arithmetic Coding), stores an updated probability model in memory for each coded or decoded picture (slice). Then, for P pictures, Alternatively, as the initial state of the B-picture context, the probability model stored in memory is From the above, a probability model for pictures using the same slice type and quantization parameters at the same slice level is set. This initial state is used for encoding and decoding processes. The separated codes include prediction information for generating a predicted image and prediction error for generating a difference image.

[0071] The entropy decoding unit 301 outputs the separated codes to the parameter decoding unit 302. Control of which code to decode is performed based on an instruction from the parameter decoding unit 302.

[0072] (Configuration of the intra prediction parameter decoding unit 304) The intra-prediction parameter decoding unit 304 performs intra-prediction by referring to prediction parameters stored in the prediction parameter memory 307 based on the code input from the entropy decoding unit 301. Decode the parameters, for example, the intra prediction mode IntraPredMode. The meter decoding unit 304 outputs the decoded intra prediction parameters to a predicted image generating unit 308, and also stores them in a prediction parameter memory 307. The intra prediction parameter decoding unit 304 may derive different intra prediction modes for luminance and chrominance.

[0073] FIG. 8 is a schematic diagram showing the configuration of the intra-prediction parameter decoding unit 304 of the parameter decoding unit 302. As shown in the figure, the intra prediction parameter decoding unit 304 includes a parameter decoding control unit 3041, a luma intra prediction parameter decoding unit 3042, and a chroma intra prediction parameter decoding unit 3043. It is composed of 043.

[0074] The parameter decoding control unit 3041 instructs the entropy decoding unit 301 to decode the syntax elements. The parameter decoding control unit 3041 receives a syntax element from the entropy decoding unit 301. When intra_luma_mpm_flag is 1, the parameter decoding control unit 3041 outputs intra_luma_mpm_idx to the MPM parameter decoding unit 30422 in the luma intra prediction parameter decoding unit 3042. When intra_luma_mpm_flag is 0, the parameter decoding control unit 3041 outputs intra_luma_mpm_remainder to the non-MPM parameter decoding unit 30423 in the luma intra prediction parameter decoding unit 3042. The meter decoding control unit 3041 outputs the syntax elements of the chrominance intra prediction parameters to the chrominance intra prediction parameter decoding unit 3043.

[0075] The luma intra prediction parameter decoding unit 3042 receives an MPM candidate list derivation unit 30421 and an MPM parameter The MPM parameter decoding unit 30422 includes a non-MPM parameter decoding unit 30423 (decoding unit, derivation unit). can be.

[0076] The MPM parameter decoding unit 30422 derives IntraPredModeY by referring to the mpmCandList[] and intra_luma_mpm_idx derived by the MPM candidate list derivation unit 30421, and generates an intra-predicted image. The signal is output to the signal generation unit 310.

[0077] The non-MPM parameter decoding unit 30423 derives RemIntraPredMode from mpmCandList[ ] and intra_luma_mpm_remainder, and outputs IntraPredModeY to the intra-predicted image generation unit 310.

[0078] The chrominance intra-prediction parameter decoding unit 3043 derives IntraPredModeC from the syntax elements of the chrominance intra-prediction parameters, and outputs it to the intra-prediction image generation unit 310.

[0079] The loop filter 305 is a filter provided in the coding loop, and is used to remove block distortion and ringing. The loop filter 305 is a filter that removes distortion and improves image quality. The loop filter 305 applies a deblocking filter, a sample adaptive offset (SAO), and an adaptive Apply a filter such as an automatic loop filter (ALF).

[0080] The reference picture memory 306 stores the decoded image of the CU generated by the adder 312 in a location that is determined in advance for each current picture and current CU.

[0081] The prediction parameter memory 307 stores prediction parameters at a predetermined position for each CTU or CU to be decoded. Specifically, the prediction parameter memory 307 stores the parameters decoded by the parameter decoding unit 302 and the prediction mode predMode separated by the entropy decoding unit 301. do.

[0082] The prediction mode predMode, prediction parameters, etc. are input to the prediction image generation unit 308. The predicted image generation unit 308 then reads out the reference picture from the reference picture memory 306. The predicted image generation unit 308 performs the prediction parameter generation and the read out reference picture in the prediction mode indicated by the prediction mode predMode. A prediction image of a block or sub-block is generated using a reference picture (reference picture block). Here, a reference picture block is a set of pixels on the reference picture (usually rectangular, so called a block), which is an area referenced to generate a prediction image.

[0083] (Intra-prediction image generation unit 310) When the prediction mode predMode indicates an intra prediction mode, the intra prediction image generation unit 310 The intra-prediction parameter and the reference picture input from the intra-prediction parameter decoding unit 304 are The intra prediction is performed using reference pixels read from the frame memory 306.

[0084] Specifically, the intra-prediction image generating unit 310 generates a prediction image from a current block in a current picture. The adjacent blocks within the predetermined range are read from the reference picture memory 306. The surrounding blocks are adjacent blocks to the left, upper left, upper, and upper right of the current block, and the area to be referenced differs depending on the intra prediction mode.

[0085] The intra-prediction image generating unit 310 generates a prediction image of the current block by referring to the read decoded pixel values ​​and the prediction mode indicated by IntraPredMode. The prediction image of the block thus obtained is output to the adder 312.

[0086] The generation of predicted images based on intra prediction modes is explained below. In planar prediction, DC prediction, and angular prediction, the prediction image is generated by referring to the decoded surrounding area adjacent (close) to the prediction target block. Then, a predicted image is generated by extrapolating pixels in the reference region R in a specific direction. For example, the reference region R is an L-shaped region including the left and top (or further, the top left, top right, and bottom left) of the block to be predicted (for example, the diagonal line circle in the reference region example 1 in FIG. 9). The pixel area may be set as the pixel area.

[0087] (Details of predicted image generation unit) Next, the configuration of the intra-prediction image generation unit 310 will be described in detail with reference to FIG. The image generation unit 310 includes a reference sample filter unit 3103 (a second reference image setting unit), a prediction unit 3104, and a predicted image correction unit 3105 (a predicted image correction unit, a filter switching unit, and a weighting coefficient changing unit). Equipped with.

[0088] Based on each reference pixel (reference image) in the reference region R, a filtered reference image generated by applying a reference pixel filter (first filter), and the intra prediction mode, the prediction unit 3104 generates a temporary predicted image (pre-corrected predicted image) of the block to be predicted, and outputs it to the predicted image correction unit 3105. The predicted image correction unit 3105 corrects the temporary predicted image in accordance with the intra prediction mode, and generates and outputs a predicted image (corrected predicted image).

[0089] Below, each unit included in the intra-predicted image generation unit 310 will be described.

[0090] (Reference sample filter unit 3103) The reference sample filter unit 3103 refers to the reference image and calculates the reference The reference sample filter unit 3103 derives a reference sample s[x][y]. Depending on the mode, the reference pixel filter (first filter) is applied to the reference sample s[x][y]. Then, the reference sample s[x][y] at each position (x, y) on the reference region R is updated (a filtered reference image s[x][y] is derived). Specifically, a low-pass filter is applied to the reference image at the position (x, y) and its surroundings to derive a filtered reference image (reference region example 2 in FIG. 9). Note that this does not necessarily apply to the entire image. It is not necessary to apply a low-pass filter to the intra prediction modes, and a low-pass filter may be applied to some of the intra prediction modes. Note that the filter applied to the reference image in the reference region R in the reference sample filter unit 3103 is called a "reference pixel filter (first filter)", while the filter that corrects the provisional predicted image in the predicted image correction unit 3105 described later is called a "position-dependent filter (second filter)".

[0091] (Configuration of the intra prediction unit 3104) The intra prediction unit 3104 generates a provisional predicted image (provisional predicted pixel value, uncorrected predicted image) of the block to be predicted based on the intra prediction mode, the reference image, and the filtered reference pixel value, and outputs the provisional predicted image to the predicted image correction unit 3105. The prediction unit 3104 includes a planar prediction unit 31041, a DC prediction unit 31042, an angular prediction unit 31043, an LM prediction unit 31044, and an MIP unit 31045. A specific prediction unit is selected according to the intra prediction mode, and a reference image and a filtered reference image are input. The relationship between the intra prediction mode and the corresponding prediction unit is as follows. ·Planar prediction ···Planar prediction section 31041 ·DC prediction ···DC prediction section 31042 ·Angular Prediction ··Angular Prediction Part 31043 ·LM prediction ··LM prediction section 31044 · Matrix intra prediction · MIP section 31045 (Planar forecast) The planar prediction unit 31041 selects a reference sample according to the distance between the prediction target pixel position and the reference pixel position. The prediction image correction unit 3105 linearly adds the signal s[x][y] to generate a temporary predicted image and outputs it to the predicted image correction unit 3105.

[0092] (DC forecast) The DC prediction unit 31042 derives a DC predicted value equivalent to the average value of the reference samples s[x][y], and outputs a temporary predicted image q[x][y] whose pixel values ​​are the DC predicted values.

[0093] (Angular prediction) The angular prediction unit 31043 generates a temporary predicted image q[x][y] using a reference sample s[x][y] in the prediction direction (reference direction) indicated by the intra prediction mode, and outputs the temporary predicted image q[x][y] to the predicted image correction unit 3105.

[0094] (LM forecast) The LM prediction unit 31044 predicts the pixel value of the color difference based on the pixel value of the luminance. This is a method to generate a predicted image of the color difference image (Cb, Cr) using a linear model based on the coded luminance image. CCLM prediction is a prediction method that uses a linear model to predict chrominance from luminance for one block.

[0095] (MIP Example 1) An example of MIP processing (Matrix-based intra prediction processing) executed by the MIP unit 31045 will be described below with reference to FIGS. 11 to 18. MIP is a method for predicting a matrix based on a prediction result derived from adjacent images. This is a technique for deriving a predicted image by multiplying and adding a reference image and a weighting matrix. In the figure, the target block has a width of nTbW and a height of nTbH. (1) Boundary reference pixel derivation The MIP unit derives a variable sizeId relating to the size of the target block using the following formula (FIG. 18).

[0096] sizeId = (nTbW<=4 && nTbH<=4) ? 0 : (nTbW<=8 && nTbH<=8) ? 1 : 2 (MIP-1) 18, when the size (nTbW x nTbH) of the target block is 4x4, 8x8, or 16x16, sizeId is 0, 1, or 2, respectively. When the size is 4x16 or 16x4, sizeId=2.

[0097] Next, the MIP unit 31045 uses sizeId to calculate the number of MIP modes, numModes, and the The prediction obtained in the prediction process using the reference regions redT[], redL[] of the matrix redT[], redL[] of the matrix redT[], redL[] of the matrix redT[], redL[] of the matrix redL ... Derive the size of one side of the image, predC.

[0098] numModes = (sizeId==0) ? 35 : (sizeId==1) ? 19 : 11 (MIP-2) boundarySize = (sizeId==0) ? 2 : 4 predW = (sizeId<=1) ? 4 : Min(nTbW,8) predH = (sizeId<=1) ? 4 : Min(nTbH,8) predC = (sizeId<=1) ? 4 : 8 The relationship between sizeId and the values ​​of these variables is shown in FIG.

[0099] The size of the weighting matrix is ​​a square (predC*predC), and is 4x4 for sizeId=0 and sizeId=1, and 8x8 for sizeId=2. The size of the weighting matrix and the output size of the intermediate predicted image predW*pre When dH is different (especially when predC > predW or predC > predH), the weight matrix is thinned out and referred to as described below. For example, in this embodiment, when the output size is 4x16 or 16x4, since the weight matrix with sizeId = 2 (predC) being 8 is selected, in each case, there are cases where predW = 4 (< predC = 8) and predH = 4 (< predC = 8). The size (predW * predH) of the intermediate prediction image must be equal to or less than the size nTbW * nTbH of the target block. Therefore, when the size of the target block is small, if a larger weight matrix (predC * predC) is selected, it is necessary to adjust the weight matrix to the size of the intermediate prediction image. Since it is necessary to be equal to or less than the size nTbW * nTbH of the target block, when the size of the target block is small, if a larger weight matrix (predC * predC) is selected, it is necessary to adjust the weight matrix to the size of the intermediate prediction image. Since it is necessary to be equal to or less than the size nTbW * nTbH of the target block, when the size of the target block is small, if a larger weight matrix (predC * predC) is selected, it is necessary to adjust the weight matrix to the size of the intermediate prediction image. processing is required.

[0100] Also, the MIP unit 31045 derives the transposition processing flag isTransposed using IntraPredMode. IntraPredMode is, for example, the intra prediction modes 0 to 66 shown in FIG. 6. IntraPredMode is, for example, the intra prediction modes 0 to 66 shown in FIG. 6.

[0101] isTransposed = (IntraPredMode > (numModes / 2))? 1 : 0 Also, the number of reference pixels inSize used for prediction by the weight matrix mWeight[predC * predC][inSize], and the width mipW and height mipH of the transposed intermediate prediction image predMip[][] are derived.

[0102] inSize = 2 * boundarySize - ((sizeId == 2)? 1 : 0) mipW = isTransposed? predH : predW mipH = isTransposed? predW : predH The matrix reference pixel derivation unit of the MIP unit 31045 sets the pixel values ​​predSamples[x][-1] (x=0..nTbW-1) of the block adjacent to the upper side of the target block to the first reference area refT[x] (x=0..nTbW-1). Also, the pixel values ​​predSamples[-1][y] (y=0..nTbH-1) of the block adjacent to the left side of the target block The MIP unit 31045 sets the first reference region refT[x], refL[y] (y=0..nTbH-1) as the first reference region. Next, the MIP unit 31045 downsamples the first reference region refT[x], refL[y] to derive the second reference region redT[x] (x=0..boundarySize-1), redL[y] (y=0..boundarySize-1). The downsampling is Since similar processing is performed on refS[i] (i = 0..nTbX-1) and redS[i] (i = 0..boundarySize-1) in the following,

[0103] The matrix reference pixel derivation unit performs the following process on refS[] with refT[] or refL[] substituted, to derive redS[]. When refT is substituted for refS, nTbS=nTbW, and when refL is substituted for refS, In this case, nTbS=nTbH.

[0104] if (boundarySize <nTbS) { bDwn = nTbS / boundarySize (MIP-3) for (x=0; x <boundarySize; x++) redS[x] = (ΣrefS[x*bDwn+i]+(1<<(Log2(bDwn)-1)))>>Log2(bDwn) } else for (x=0; x <boundarySize; x++) redS[x] = refS[x] Here, Σ is the sum from i=0 to i=bDwn-1.

[0105] Next, the matrix reference pixel derivation unit combines the second reference regions redL[] and redT[] to derive p[i] (i=0..2*boundarySize-1).

[0106] if (isTransposed==1) (MIP-4) for (i=0;i <boundarySize;i++) { pTemp[i] = redL[i] pTemp[i+boundarySize] = redT[i] } else for (i=0;i <boundarySize;i++) { pTemp[i] = redT[i] pTemp[i+boundarySize] = redL[i] } if (sizeId==2) for (i=0;i <inSize;i++) p[i] = pTemp[i+1] - pTemp[0] else { p[0] = pTemp[0] - (1<<(BitDepthY-1)) for (i=1;i <inSize;i++) p[i] = pTemp[i] - pTemp[0] } bitDepthY is the bit depth of the luminance, which may be, for example, 10 bits.

[0107] If the above reference pixels cannot be referenced, the values ​​of available reference pixels are used, as in conventional intra prediction. If all reference pixels cannot be referenced, 1<<(bitDepthY-1) is used as the pixel value. isTransposed indicates whether the prediction direction is close to vertical prediction, so isTransposed is used to switch between storing redL or redT in the first half of p[]. Then, the mWeight[][] pattern can be reduced by half. (2) Deriving predicted pixels (matrix calculation) In STEP 2 of FIG. 11, the MIP unit 31045 calculates the predicted pixel by performing a matrix operation on p[]. Then, an intermediate predicted image predMip[][] of size predW*predH is derived.

[0108] The weighting matrix derivation unit of the MIP unit 31045 refers to sizeId and modeId and selects a weighting matrix mWeight[predC*predC][inSize] from the set of matrices.

[0109] First, the weighting matrix derivation unit derives modeId using IntraPredMode. modeId is an intra prediction mode used in MIP.

[0110] modeId = IntraPredMode-((isTransposed==1) ? (numModes / 2) : 0) When sizeId=0, the matrix reference pixel derivation unit selects mWeight

[16] [4] from the array WeightS0

[18]

[16] [4] that stores the weight matrix by referring to modeId. When sizeId=1, the matrix reference pixel derivation unit selects mWeight

[16] [4] from the array WeightS0

[18]

[16] [4] that stores the weight matrix. From the array WeightS1

[10]

[16] [8] that stores the weight matrix, select mWeight

[16] [8] by referring to modeId. When sizeId=2, from the array WeightS2[6]

[64] [7] that stores the weight matrix, select mWeight

[64] [7] by referring to modeId. These are expressed by the following formula.

[0111] if (sizeId==0) (MIP-5) mWeight[i][j] = WeightS0[modeId][i][j] (i=0..15, j=0..3) else if (sizeId==1) mWeight[i][j] = WeightS1[modeId][i][j] (i=0..15, j=0..7) else / / sizeId=2 mWeight[i][j] = WeightS2[modeId][i][j] (i=0..63, j=0..6) Next, the weighting matrix derivation unit refers to sizeId and modeId to determine the shift value sW and Derive the offset coefficient fO. ShiftS0

[18] , ShiftS1

[10] , and ShiftS2[6] are arrays that store shift values, and OffsetS0

[18] , OffsetS1

[10] , and OffsetS2[6] are arrays that store offset coefficients. It is.

[0112] if (sizeId==0) { (MIP-6) sW = ShiftS0[modeId] fO = OffsetS0[modeId] } else if (sizeId==1) { sW = ShiftS1[modeId] fO = OffsetS1[modeId] } else { / / sizeId=2 sW = ShiftS2[modeId] fO = OffsetS2[modeId] } The matrix predicted image derivation unit of the MIP unit 31045 performs a multiplication and accumulation operation (MIP-7) on p[] to obtain Then, we derive predMip[][] of size mipW*mipH. Here, the corresponding position of predMip[][] is The intermediate predicted image is derived by referring to the elements of the weighting matrix mWeight[][] for each pixel. In the above, when sizeId=2, the size of the weighting matrix predC may be larger than the size mipW or mipH of predMip. For this reason, the weighting matrix is ​​thinned out and referenced using the variables incW and incH.

[0113] oW = (1<<(sW-1)) - fO*Σp[i] incW = (predC>mipW) ? 2 : 1 incH = (predC>mipH) ? 2 : 1 for (x=0; x <mipW; x++) (MIP-7) for (y=0; y <mipH; y++) { predMip[x][y] = (((ΣmWeight[i][y*incH*predC+x*incW]*p[i])+ oW)>>sW) + pTemp[0] predMip[x][y] = Clip1Y(predMip[x][y]) } Σ is the sum from i=0 to i=inSize-1.

[0114] When isTransposed=1, the input p[] to the multiply-and-accumulate operation is the position of the upper reference pixel and the left reference pixel. The output of the multiplication and accumulation operation, predMip[][], is transposed before being output to (3). do.

[0115] if (isTransposed==1) { (MIP-8) for (x=0; x <predW; x++) for (y=0; y <predH; y++) tmpPred[x][y] = predMip[y][x] for (x=0; x <predW; x++) for (y=0; y <predH; y++) predMip[x][y] = tmpPred[x][y] } (3) Deriving predicted pixels (linear interpolation) If nTbW=predW and nTbH=predH, the matrix predicted image interpolation unit of the MIP unit 31045 copies predMip[][] to predsamples[][].

[0116] for (x=0; x <nTbW; x++) for (y=0; y <nTbH; y++) predSamples[x][y] = predMip[x][y] Otherwise (nTbW>predW or nTbH>predH), the matrix predicted image interpolation unit stores predMip[][] in the predicted image predSamples[][] of size nTbW*nTbH in STEP 3 Deriving predicted pixels (linear interpolation) 3-1 in FIG. 11. If predW, predH are different from nTbW, nTbH, in 3-2, The predicted pixel value is then interpolated.

[0117] (3-1) The matrix predicted image interpolation unit stores predMip[][] in predSamples[][]. That is, in the pre-interpolation image in Fig. 12, predMip[][] is stored at the shaded pixel position in the upper right and lower left direction.

[0118] upHor = nTbW / predW (MIP-9) upVer = nTbH / predH for (x=0; x <predW; x++) for (y=0; y <predH; y++) predSamples[(x+1)*upHor-1][(y+1)*upVer-1] = predMip[x][y] (3-2) If nTbH>nTbW, the pixels not stored in (3-1) are interpolated using pixel values ​​of adjacent blocks in the horizontal and vertical directions to generate a predicted image.

[0119] Horizontal interpolation is performed, and pixel values ​​at positions indicated by "◯" are derived using predSamples[xHor][yHor] and predSamples[xHor+upHor][yHor] (shaded pixels in the image after horizontal interpolation in the figure).

[0120] for (m=0; m <predW; m++) (MIP-10) for (n=1; n<=predH; n++) for (dX=1; dX <upHor; dX++) { xHor = m*upHor-1 yHor = n*upVer-1 sum = (upHor-dX)*predSamples[xHor][yHor]+dX*predSamples[xHor+upHor][yHor] predSamples[xHor+dX][yHor] = (sum+upHor / 2) / upHor } After horizontal interpolation, predSamples[xVer][yVer] and predSamples[xVer][yVer+upVer] (Fig. The pixel values ​​at the positions indicated by "○" are derived using the shaded pixels of the image after vertical interpolation of the pixel values ​​(the shaded pixels of the image after vertical interpolation of the pixel values).

[0121] for (m=0; m <nTbW; m++) (MIP-11) for (n=0; n <predH; n++) for (dY=1; dY <upVer; dY++) { xVer = m yVer = n*upVer-1 sum = (upVer-dY)*predSamples[xVer][yVer]+dY*predSamples[xVer][yVer+upVer] predSamples[xVer][yVer+dY] = (sum+upVer / 2) / upVer } When nTbH<=nTbW, the predicted image is generated by interpolating using pixel values ​​of adjacent blocks in the vertical and horizontal directions. The vertical and horizontal interpolation processes are the same as when nTbH>nTbW.

[0122] (MIP Example 2) In this embodiment, the processing is simplified without reducing the coding efficiency compared to the first embodiment of MIP. The following will focus on the changes, so the parts not mentioned are the same as those in the MIP This is the same process as in the first embodiment.

[0123] FIG. 16 shows the square matrix mWeight, which is equal to or smaller than the width nTbW and height bTbH of the target block. 31 shows the configuration of an MIP unit 31045 that derives a square intermediate predicted image predMip of the same size.

[0124] In this embodiment, when sizeId=2, predW=predH=predC are set. Change the definition of predW, predH, and predC. Hereafter, predW, predH, and predC will be written as predSize. (1) Boundary reference pixel derivation The MIP unit 31045 derives a variable sizeId relating to the size of the target block using the following formula (FIG. 20).

[0125] sizeId = (nTbW<=4 && nTbH<=4) ? 0 : ((nTbW<=4 || nTbH<=4) || (nTbW == 8 && nTbH == 8)) ? 1 : 2 (MIP-21) For example, if the size of the target block is 4xN, Nx4 (N>4), or 8x8, sizeId is 1. If it is a class, formula (MIP-21) can be expressed in a different way. For example, it can be expressed as follows.

[0126] sizeId = (nTbW<=4 && nTbH<=4) ? 0 : ((nTbW<=8 && nTbH<=8) || nTbW <= 4 || nTbH <= 4) ? 1 : 2 (MIP-21) Another example is sizeId = (nTbW<=4 && nTbH<=4) ? 0 : ((nTbW==8 && nTbH==8) || nTbW <= 4 || nTbH <= 4) ? 1 : 2 (MIP-21) Also, if the minimum size of the input block is 4x4, nTbW<=4 and nTbH<=4 may be read as nTbW==4 and nTbH==4, respectively.

[0127] Furthermore, if the block size to which MIP is applied is limited, the MIP unit may derive sizeId by another derivation method. For example, as shown in FIG. 20, if MIP is applied only to blocks whose aspect ratio is 4 times or less (Abs(Log2(nTbW) - Log2(nTbH)) <= 2) of the input block size, sizeId may be derived as follows instead of (MIP-21).

[0128] sizeId = (nTbW<=4 && nTbH<=4) ? 0 : (nTbW * nTbH <= 64) ? 1 : 2 (MIP-21a) Alternatively, it may be derived using logarithmic expression as follows:

[0129] sizeId = (nTbW<=4 && nTbH<=4) ? 0 : (Log2(nTbW)+Log2(nTbH) <= 6) ? 1 : 2 (MIP-21b) When the block size to which MIP is applied is limited, sizeId is derived using (MIP-21a) and (MIP-21b), which has the effect of simplifying the processing.

[0130] As shown in FIG. 20, in this embodiment, in the case of 4×16 and 16×4, a matrix with size (predC) of 4 indicated by sizeId=1 is selected, so predW and predH are determined based on the size predC (=predSize). The MIP unit 31045 of this embodiment selects a matrix (predC=predSize) whose size is equal to or smaller than nTbW and bTbH, that is, a matrix that satisfies the following formula.

[0131] predSize = predC <= min(nTbW, nTbH) In this embodiment, the size of the matrix is ​​4x4 when sizeId=0, 1, and 8x8 when sizeId=2, so the MIP unit 31045 selects "a matrix with sizeId=0 or sizeId=1 when one of nTbW and bTbH is 4." Such selection restrictions are the same in Figs. 21 and 22 described below.

[0132] That is, the weighting matrix derivation unit included in the MIP unit 31045 derives a matrix having a size equal to or smaller than the width and height of the target block size. In addition, the weighting matrix derivation unit derives a matrix of size 4x4 when the target block size is 4x16 and 16x4. In addition, the weighting matrix derivation unit derives a matrix of size 4x4 when the target block size is 4x16 and 16x4. First, we derive either a matrix indicated by sizeId=0, 1 with a size of 8x8 or a matrix indicated by sizeId=2 with a size of 8x8. If one side of the target block is 4, we derive a matrix with sizeId=1 or 2.

[0133] Next, the MIP unit 31045 uses sizeId to calculate the number of MIP modes, numModes, and the The size boundarySize of the reference regions redT[], redL[], the weighting matrix mWeight, and the width and height predSize of the intermediate predicted image predMip[][] are derived.

[0134] numModes = (sizeId==0) ? 35 : (sizeId==1) ? 19 : 11 (MIP-22) boundarySize = (sizeId==0) ? 2 : 4 predSize = (sizeId<=1) ? 4 : 8 The relationship between sizeId and the values ​​of these variables is shown in FIG.

[0135] The derivation of isTransposed and inSize is the same as in the first MIP embodiment.

[0136] First reference region refT[], refL[], second reference region redT[], redL[], necessary for deriving predMip The derivation of p[] and pTemp[] is the same as in the first MIP embodiment. (2) Deriving predicted pixels (matrix calculation) In STEP 2 of FIG. 11, the MIP unit 31045 calculates the predicted pixel by performing a matrix operation on p[]. Then, derive predMip[][] of size predSize*predSize.

[0137] The weighting matrix derivation unit of the MIP unit 31045 refers to sizeId and modeId and selects a weighting matrix mWeight[predSize*predSize][inSize] from the set of matrices.

[0138] The method of selecting modeId and mWeight[][] and the method of deriving the shift value sW and offset coefficient fO are the same as in the first MIP embodiment.

[0139] The matrix predicted image derivation unit of the MIP unit 31045 derives predMip[][] of a size of predSize*predSize by performing a (MIP-23) multiplication and accumulation operation on p[]. Here, in the classification of sizeId in this embodiment, mipW and mipH are always equal to or greater than predSize(predC). Therefore, incW and incH in the first embodiment are always 1, and the calculation is omitted.

[0140] oW = (1<<(sW-1)) - fO*Σp[i] for (x=0; x <predSize; x++) (MIP-23) for (y=0; y <predSize; y++) { predMip[x][y] = (((ΣmWeight[i][y*predSize+x]*p[i])+oW)>>sW) + pTemp[0] predMip[x][y] = Clip1Y(predMip[x][y]) } Σ is the sum from i=0 to i=inSize-1.

[0141] if (isTransposed==1) { (MIP-24) for (x=0; x <predSize; x++) for (y=0; y <predSize; y++) tmpPred[x][y] = predMip[y][x] for (x=0; x <predSize; x++) for (y=0; y <predSize; y++) predMip[x][y] = tmpPred[x][y] } (3) Deriving predicted pixels (linear interpolation) If nTbW=predSize and nTbH=predSize, the matrix predicted image interpolation unit of the MIP unit 31045 copies predMip[][] to predsamples[][].

[0142] for (x=0; x <nTbW; x++) for (y=0; y <nTbH; y++) predSamples[x][y] = predMip[x][y] Otherwise (nTbW>predSize or nTbH>predSize), the matrix predicted image interpolation unit enlarges predMip[][] of predSize*predSize to a predicted image predSamples[][] of nTbW*nTbH in STEP 3 predicted pixel derivation (linear interpolation) in FIG. 11. In 3-1, the pixel at the corresponding position is copied. Then, in 3-2, pixels at non-corresponding positions are derived by interpolation.

[0143] (3-1) The matrix predicted image interpolation unit stores predMip[][] in the corresponding position of predSamples[][]. In other words, in the pre-interpolation image in FIG. 12, predMip[][] is the shaded pixel of predSamples[][] of 3-1. Store in position.

[0144] upHor = nTbW / predSize (MIP-25) upVer = nTbH / predSize for (x=0; x <predSize; x++) for (y=0; y <predSize; y++) predSamples[(x+1)*upHor-1][(y+1)*upVer-1] = predMip[x][y] (3-2) If nTbH>nTbW, the pixels not stored in (3-1) are interpolated horizontally and vertically using the pixel values ​​of adjacent blocks to generate a predicted image. In the following, the interpolation is performed in the horizontal direction and then the vertical direction, but it may also be performed in the vertical direction and then the horizontal direction.

[0145] Horizontal interpolation is performed, and pixel values ​​at positions indicated by "◯" are derived using predSamples[xHor][yHor] and predSamples[xHor+upHor][yHor] (shaded pixels in the image after horizontal interpolation in the figure).

[0146] for (m=0; m <predSize; m++) (MIP-26) for (n=1; n<=predSize; n++) for (dX=1; dX <upHor; dX++) { xHor = m*upHor-1 yHor = n*upVer-1 sum = (upHor-dX)*predSamples[xHor][yHor]+dX*predSamples[xHor+upHor][yHor] predSamples[xHor+dX][yHor] = (sum+upHor / 2) / upHor } After horizontal interpolation, predSamples[xVer][yVer] and predSamples[xVer][yVer+upVer] (Fig. The pixel values ​​at the positions indicated by "○" are derived using the shaded pixels of the image after vertical interpolation of the pixel values ​​(the shaded pixels of the image after vertical interpolation of the pixel values).

[0147] for (m=0; m <nTbW; m++) (MIP-27) for (n=0; n <predSize; n++) for (dY=1; dY <upVer; dY++) { xVer = m yVer = n*upVer-1 sum = (upVer-dY)*predSamples[xVer][yVer]+dY*predSamples[xVer][yVer+upVer] predSamples[xVer][yVer+dY] = (sum+upVer / 2) / upVer } When nTbH<=nTbW, the predicted image is generated by interpolating the pixel values ​​of adjacent blocks in the vertical and horizontal directions. The vertical and horizontal interpolation processes are the same as when nTbH>nTbW.

[0148] The MIP unit 31045 of the second MIP embodiment is characterized in that it derives a square (predW=predH=predSize) intermediate predicted image predMip[][]. Since the address calculation of the predicted image becomes easy, the derivation process is simplified.

[0149] The MIP unit 31045 of the second MIP embodiment selects a predSize that is equal to or smaller than the width nTbW and height nTbH of the target block. By doing so, the matrix size predC (=predSize) selected by sizeId becomes equal to predW and predH, making it easier to refer to matrix elements in deriving predMip.

[0150] In the MIP embodiment 2, by limiting the width and height of the predicted image classified as sizeId=2, the number of calculations can be significantly reduced compared to the MIP embodiment 1. Simulations have confirmed that these changes cause almost no decrease in coding efficiency. (MIP Example 3) In this embodiment, the processing is simplified without reducing the coding efficiency compared to the first embodiment of MIP. In the following, the explanation will be centered on the changes, and the parts not described are the same as the processes in the second MIP embodiment.

[0151] In this embodiment, when sizeId=2, predW=predH=predC are set. Change the definition of predW, predH, and predC. Hereafter, predW, predH, and predC will be written as predSize. (1) Boundary reference pixel derivation The MIP unit derives the variable sizeId relating to the size of the target block using the following formula (top of FIG. 21).

[0152] sizeId = (nTbW<=4 && nTbH<=4) ? 0 : (nTbW <= 4 || nTbH <= 4) ? 1 : 2 (MIP-28) Alternatively, sizeId may be determined under other conditions (bottom of Figure 21).

[0153] sizeId = (nTbW<=4 && nTbH<=4) ? 0 : (nTbW <= 8 || nTbH <= 8) ? 1 : 2 (MIP-29) (2) Deriving predicted pixels (matrix calculation) Same as MIP Example 2. (3) Deriving predicted pixels (linear interpolation) Same as MIP Example 2.

[0154] As described above, in the MIP third embodiment, the determination of sizeId is simplified more than in the MIP second embodiment, so that the number of calculations can be further reduced compared to the MIP second embodiment.

[0155] In addition, like MIP embodiment 2, MIP embodiment 3 derives a square (predW=predH=predSize) intermediate predicted image predMip[][], selects a predSize that is equal to or less than the width nTbW and height nTbH of the target block, and limits the width and height of the predicted image classified as sizeId=2, thereby achieving the same effect as MIP embodiment 2. (MIP Example 4) In this embodiment, compared with the first MIP embodiment, the memory required for storing the weight matrix is ​​reduced. The following will focus on the changes, so the parts not mentioned are the same as those in the MIP implementation. This is the same processing as in Example 2.

[0156] In this embodiment, when sizeId=2, predW=predH=predC are set. Change the definition of predW, predH, and predC. Hereafter, predW, predH, and predC will be written as predSize. (1) Boundary reference pixel derivation The MIP unit derives a variable sizeId relating to the size of the target block using the following formula.

[0157] sizeId = (nTbW<=4 || nTbH<=4) ? 0 : 1 (MIP-30) In the above example, the sizeId value was set to 0 or 1. sizeId = (nTbW<=4 || nTbH<=4) ? 0 : 2 (MIP-34) Or, as shown in Figure 22, sizeId = (nTbW<=4 || nTbH<=4) ? 1 : 2 (MIP-34) Then, sizeId can be expressed as a combination of 0,2 or 1,2. Note that the conditional expression (nTbW<=4 || nTbH<=4) may be replaced by (nTbW<=8 || nTbH<=8).

[0158] In the example of formula MIP-30, the value of sizeId is either 0 or 1. It is possible to omit all processing when sizeId = 2. For example, the derivation of p[i] (i = 0..2 * boundarySize-1) from the second reference region redL[] and redT[] becomes only the following formula.

[0159] if (isTransposed==1) (MIP-31) for (i=0;i <boundarySize;i++) { pTemp[i] = redL[i] pTemp[i+boundarySize] = redT[i] } else for (i=0;i <boundarySize;i++) { pTemp[i] = redT[i] pTemp[i+boundarySize] = redL[i] }(2) Deriving predicted pixels (matrix operation) It may be the same as MIP Example 2, but since sizeId=2 is not used, refer to sizeId and modeId. The process of selecting a weight matrix mWeight[predSize*predSize][inSize] from the set of matrices can be expressed as follows, omitting the case where sizeId=2.

[0160] if (sizeId==0) (MIP-32) mWeight[i][j] = WeightS0[modeId][i][j] (i=0..15, j=0..3) else / / sizeId==1 mWeight[i][j] = WeightS1[modeId][i][j] (i=0..15, j=0..7) Similarly, the process of deriving the shift value sW and the offset coefficient fO by referring to sizeId and modeId can be expressed by the following equation.

[0161] if (sizeId==0) { (MIP-33) sW = ShiftS0[modeId] fO = OffsetS0[modeId] } else { / / sizeId==1) sW = ShiftS1[modeId] fO = OffsetS1[modeId] } (3) Deriving predicted pixels (linear interpolation) Same as MIP Example 2. As described above, in the MIP third embodiment, by reducing the number of types of sizeId compared to the MIP second embodiment, it is possible to reduce the memory required to store the weighting matrix compared to the MIP second embodiment.

[0162] In addition, in the MIP embodiment 3, as in the MIP embodiment 2, a square (predW=predH=predSize) intermediate predicted image predMip[][] is derived, a matrix (predSize) equal to or smaller than the size nTbW x nTbH of the target block is selected, and the width and height of the predicted image classified as sizeId=2 are restricted, so that the efficiency is the same as that of the MIP embodiment 2. To bear fruit.

[0163] (Configuration of predicted image correction unit 3105) The predicted image correction unit 3105 corrects the provisional predicted image output from the prediction unit 3104 according to the intra prediction mode. Specifically, the predicted image correction unit 3105 derives a position-dependent weighting coefficient for each pixel of the provisional predicted image according to the reference region R and the position of the target predicted pixel. Then, the provisional predicted image is calculated by performing weighted addition (weighted averaging) of the reference sample s[][] and the provisional predicted image. The prediction unit 3104 derives a corrected predicted image Pred[ ][ ] by correcting the image. Note that in some intra prediction modes, the predicted image correction unit 3105 may not correct the temporary predicted image, and the output of the prediction unit 3104 may be used as the predicted image as it is.

[0164] The inverse quantization and inverse transform unit 311 inverse quantizes the quantized transform coefficients input from the entropy decoding unit 301 to obtain transform coefficients. The quantized transform coefficients are coefficients obtained by performing frequency transform such as DCT (Discrete Cosine Transform) or DST (Discrete Sine Transform) on prediction errors in the encoding process and quantizing them. The inverse quantization and inverse transform unit 311 performs inverse frequency transform such as inverse DCT or inverse DST on the obtained transform coefficients, The inverse quantization and inverse transform unit 311 calculates a prediction error and outputs the prediction error to the addition unit 312.

[0165] The adder 312 adds, for each pixel, the predicted image of the block input from the predicted image generation unit 308 and the prediction error input from the inverse quantization and inverse transform unit 311 to generate a decoded image of the block. The adder 312 stores the decoded image of the block in the reference picture memory 306 , and also outputs it to the loop filter 305 .

[0166] (Configuration of a video encoding device) Next, the configuration of the video encoding device 11 according to this embodiment will be described. Fig. 13 is a block diagram showing the configuration of the video encoding device 11 according to this embodiment. The video encoding device 11 includes a prediction image generating unit 101, a subtraction unit 102, a transformation and quantization unit 103, an inverse quantization and inverse transformation unit 105, an addition unit 106, a loop filter 107, a prediction parameter memory (prediction parameter storage unit, frame memory) 108, a reference picture memory (reference image storage unit, frame memory) 109, an encoding parameter determining unit 110, a parameter encoding unit 111, and an entropy encoding unit 104.

[0167] The predicted image generating unit 101 generates a predicted image for each CU, which is an area obtained by dividing each picture of the image T. The predicted image generating unit 101 operates in the same manner as the predicted image generating unit 308 already described, and so a description thereof will be omitted.

[0168] The subtraction unit 102 generates a prediction error by subtracting the pixel values ​​of the predicted image of the block input from the predicted image generation unit 101 from the pixel values ​​of the image T. The subtraction unit 102 outputs the prediction error to the transformation and quantization unit 103.

[0169] The transform / quantization unit 103 calculates transform coefficients by frequency transforming the prediction error input from the subtraction unit 102, and derives quantized transform coefficients by quantizing the prediction error. The quantized transform coefficients are output to the entropy coding unit 104 and the inverse quantization and inverse transform unit 105 .

[0170] The inverse quantization and inverse transform unit 105 corresponds to the inverse quantization and inverse transform unit 311 (FIG. 7) in the video decoding device 31. The calculated prediction error is output to the adder 106.

[0171] The entropy coding unit 104 receives the quantized transform coefficients from the transform / quantization unit 103 and the coding parameters from the parameter coding unit 111. The entropy coding unit 104 entropy codes the partition information, the prediction parameters, the quantized transform coefficients, etc. to generate and output a coded stream Te.

[0172] The parameter encoding unit 111 includes a header encoding unit 1110, a CT information encoding unit 1111, and a CU The encoding unit 1112 (prediction mode encoding unit), and the inter-prediction parameter encoding unit 112 and the inter The CU encoding unit 1112 further includes a TU encoding unit 1114.

[0173] (Configuration of the intra-prediction parameter encoding unit 113) The intra prediction parameter encoding unit 113 derives a format for encoding (for example, intra_luma_mpm_idx, intra_luma_mpm_remmainder, etc.) from the IntraPredMode input from the encoding parameter determination unit 110. This includes a part of the same configuration as the configuration in which the meter decoding unit 304 derives intra prediction parameters.

[0174] 14 is a schematic diagram showing a configuration of the intra-prediction parameter coding unit 113 of the parameter coding unit 111. The intra-prediction parameter coding unit 113 includes a parameter coding control unit 1131, The image processing unit 1130 includes a brightness intra-prediction parameter derivation unit 1132 and a chrominance intra-prediction parameter derivation unit 1133.

[0175] The parameter encoding control unit 1131 receives IntraPredModeY and The parameter coding control unit 1131 refers to mpmCandList[ ] of the MPM candidate list derivation unit 30421 to determine intra_luma_mpm_flag. Then, the parameter coding control unit 1131 outputs intra_luma_mpm_flag and IntraPredModeY to the luma intra prediction parameter derivation unit 1132. In addition, the color difference intra prediction parameter derivation unit 1133 outputs IntraPredModeC to the color difference intra prediction parameter derivation unit 1133.

[0176] The luma intra prediction parameter derivation unit 1132 is configured to include an MPM candidate list derivation unit 30421 (candidate list derivation unit), an MPM parameter derivation unit 11322, and a non-MPM parameter derivation unit 11323 (encoding unit, derivation unit).

[0177] The MPM candidate list derivation unit 30421 determines the number of adjacent blocks stored in the prediction parameter memory 108. The MPM parameter derivation unit 11322 derives mpmCandList[] by referring to the intra-prediction mode. When intra_luma_mpm_flag is 1, the non-MPM parameter derivation unit 11323 derives intra_luma_mpm_idx from IntraPredModeY and mpmCandList[ ], and outputs the intra_luma_mpm_idx to the entropy encoding unit 104. When intra_luma_mpm_flag is 0, the entropy coding unit 104 derives RemIntraPredMode from IntraPredModeY and mpmCandList[ ], and outputs intra_luma_mpm_remainder to the entropy coding unit 104 .

[0178] The color difference intra prediction parameter derivation unit 1133 derives and outputs intra_chroma_pred_mode from IntraPredModeY and IntraPredModeC.

[0179] The adder 106 adds, for each pixel, the pixel value of the predicted image of the block input from the predicted image generation unit 101 and the prediction error input from the inverse quantization and inverse transform unit 105 to generate a decoded image. The unit 106 stores the generated decoded image in a reference picture memory 109 .

[0180] The loop filter 107 performs deblocking filtering, SAO, and ALF on the decoded image generated by the adder 106. Note that the loop filter 107 does not necessarily include the above three types of filters. For example, the filter may be configured with only a deblocking filter.

[0181] The prediction parameter memory 108 stores the prediction parameters generated by the coding parameter determination unit 110 in a predetermined location for each current picture and CU.

[0182] The reference picture memory 109 stores the decoded image generated by the loop filter 107 at a predetermined position for each current picture and CU.

[0183] The encoding parameter determination unit 110 determines one of the multiple sets of encoding parameters. The coding parameters are the above-mentioned QT, BT or TT division information, prediction parameters, or parameters to be coded that are generated in relation to these. The predicted image generating unit 101 generates a predicted image using these coding parameters.

[0184] The coding parameter determination unit 110 determines the size of the amount of information and the coding parameter for each of the plurality of sets. The coding parameter determination unit 110 calculates an RD cost value indicating an error. The entropy coding unit 104 then selects the set of coding parameters that results in the smallest coding rate. The entropy coding unit 104 then outputs the selected set of coding parameters as the coded stream Te. The parameter determination unit 110 stores the determined coding parameters in the prediction parameter memory 108 .

[0185] In addition, in the above-described embodiment, a part of the video encoding device 11 and the video decoding device 31, for example, the entropy decoding unit 301, the parameter decoding unit 302, the loop filter 305, the predicted image generating unit 306, 308, an inverse quantization and inverse transform unit 311, an addition unit 312, a predicted image generation unit 101, a subtraction unit 102, a transform and The quantization unit 103, the entropy coding unit 104, the inverse quantization and inverse transform unit 105, the loop filter 107, the coding parameter determination unit 110, and the parameter coding unit 111 may be realized by a computer. In this case, a program for realizing this control function may be recorded on a computer-readable recording medium, and the program recorded on the recording medium may be read and executed by a computer system. Note that the "computer system" referred to here is a computer system built into either the video coding device 11 or the video decoding device 31, and includes hardware such as an OS and peripheral devices. Also, the "computer-readable recording medium" refers to a portable medium such as a flexible disk, a magneto-optical disk, a ROM, a CD-ROM, or a storage device such as a hard disk built into a computer system. Furthermore, the term "computer-readable recording medium" may also include a device that dynamically stores a program for a short period of time, such as a communication line when transmitting a program via a network such as the Internet or a communication line such as a telephone line, or a device that stores a program for a certain period of time, such as a volatile memory inside a computer system that serves as a server or client in such a case. The above program may also be one that realizes part of the above-mentioned functions, or may be one that can realize the above-mentioned functions in combination with a program already recorded in the computer system.

[0186] In addition, a part or the whole of the video encoding device 11 and the video decoding device 31 in the above-mentioned embodiment may be realized as an integrated circuit such as an LSI (Large Scale Integration). Each functional block of the video encoding device 11 and the video decoding device 31 may be individually made into a processor, or a part or the whole may be integrated into a processor. The integrated circuit method is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor. Furthermore, when an integrated circuit technology that replaces LSI appears due to the progress of semiconductor technology, an integrated circuit based on that technology may be used.

[0187] Although one embodiment of the present invention has been described in detail above with reference to the drawings, the specific configuration is not limited to the above, and various design changes, etc. are possible within the scope that does not deviate from the gist of the present invention.

[0188] [Application example] The above-mentioned video encoding device 11 and video decoding device 31 can be mounted on various devices that transmit, receive, record, and play videos. The video may be a natural video captured by a camera or the like, or an artificial video (including CG and GUI) generated by a computer or the like.

[0189] First, it will be described with reference to FIG. 2 that the above-mentioned video encoding device 11 and video decoding device 31 can be used for transmitting and receiving videos.

[0190] FIG. 2 is a block diagram showing the configuration of a transmission device PROD_A equipped with a video encoding device 11. As shown in the figure, the transmitting device PROD_A includes an encoding unit PROD_A1 that obtains encoded data by encoding a moving image, a modulation unit PROD_A2 that obtains a modulated signal by modulating a carrier wave with the encoded data obtained by the encoding unit PROD_A1, and a transmitting unit PROD_A3 that transmits the modulated signal obtained by the modulation unit PROD_A2. The above-mentioned moving image encoding device 11 is used as this encoding unit PROD_A1.

[0191] The transmission device PROD_A captures moving images as a supply source of moving images to be input to the encoding unit PROD_A1. The apparatus further includes a camera PROD_A4 for recording moving images, a recording medium PROD_A5 for recording moving images, an input terminal PROD_A6 for inputting moving images from the outside, and an image processing unit A7 for generating or processing images. In the figure, a configuration in which the transmitting device PROD_A includes all of these components is illustrated, but some of them may be omitted.

[0192] The recording medium PROD_A5 may be one in which unencoded moving images are recorded. Alternatively, the recording medium PROD_A5 may be a recording medium that has recorded thereon a video encoded by a recording encoding method different from the transmission encoding method. In the latter case, a decoding unit ( It is advisable to use a conductor (not shown) between the two.

[0193] FIG. 2 is a block diagram showing the configuration of a receiving device PROD_B equipped with a video decoding device 31. FIG. 1 shows a receiving device PROD_B. As shown in the figure, the receiving device PROD_B includes a receiving unit PROD_B1 that receives a modulated signal, a demodulation unit PROD_B2 that obtains coded data by demodulating the modulated signal received by the receiving unit PROD_B1, and a decoding unit PROD_B3 that obtains a moving image by decoding the coded data obtained by the demodulation unit PROD_B2. The above-mentioned moving image decoding device 31 is used as this decoding unit PROD_B3.

[0194] The receiving device PROD_B is a supply destination of the video output by the decoding unit PROD_B3, and displays the video. The display PROD_B4 may further include a recording medium PROD_B5 for recording moving images, and an output terminal PROD_B6 for outputting the moving images to the outside. Although the receiving device PROD_B is illustrated as having the above configuration, some of these may be omitted.

[0195] The recording medium PROD_B5 is for recording unencoded moving images. Alternatively, the signal may be encoded by a coding method for recording that is different from the coding method for transmission. In the latter case, a signal from the decoding unit PROD_B3 to the recording medium PROD_B5 may be provided between the decoding unit PROD_B3 and the recording medium PROD_B5. It is preferable to interpose an encoding unit (not shown) that encodes the acquired video image according to an encoding method for recording.

[0196] The transmission medium for transmitting the modulated signal may be wireless or wired. The transmission mode for transmitting the modulated signal may be broadcast (here, this refers to a transmission mode in which the destination is not specified in advance) or communication (here, this refers to a transmission mode in which the destination is specified in advance). In other words, the transmission of the modulated signal may be realized by any of wireless broadcast, wired broadcast, wireless communication, and wired communication.

[0197] For example, a broadcasting station (such as a broadcasting facility) / receiving station (such as a television receiver) for terrestrial digital broadcasting is an example of a transmitting device PROD_A / receiving device PROD_B that transmits and receives modulated signals by wireless broadcasting. Also, a broadcasting station (such as a broadcasting facility) / receiving station (such as a television receiver) for cable television broadcasting is an example of a transmitting device PROD_A / receiving device PROD_B that transmits and receives modulated signals by cable broadcasting.

[0198] Also, a server (such as a workstation) / client (such as a television receiver, a personal computer, a smartphone, etc.) of a VOD (Video On Demand) service or a video sharing service using the Internet is an example of a transmitting device PROD_A / receiving device PROD_B that transmits and receives modulated signals by communication (usually, in a LAN, either wireless or wired is used as a transmission medium, and in a WAN, wired is used as a transmission medium). Here, personal computers include desktop PCs, laptop PCs, and tablet PCs. Also, smartphones include multi-function mobile phone terminals.

[0199] The client of the video hosting service has a function to decode the encoded data downloaded from the server and display it on a display, as well as a function to encode the video captured by the camera and upload it to the server. That is, the client of the video hosting service functions as both the transmitting device PROD_A and the receiving device PROD_B.

[0200] Next, it will be described with reference to FIG. 3 that the above-mentioned video encoding device 11 and video decoding device 31 can be used for recording and reproducing videos.

[0201] FIG. 3 is a block diagram showing the configuration of a recording device PROD_C equipped with the above-mentioned video encoding device 11. As shown in the figure, the recording device PROD_C includes an encoding unit PROD_C1 that encodes a moving image to obtain encoded data, and a writing unit PROD_C2 that writes the encoded data obtained by the encoding unit PROD_C1 onto a recording medium PROD_M. is used as this encoding unit PROD_C1.

[0202] The recording medium PROD_M may be (1) a type built into the recording device PROD_C, such as a hard disk drive (HDD) or a solid state drive (SSD), (2) a type connected to the recording device PROD_C, such as an SD memory card or a universal serial bus (USB) flash memory, or (3) a DVD (digital versatile disc: registered). (registered trademark) or BD (Blu-ray Disc: registered trademark), It may be mounted on a live device (not shown).

[0203] The recording device PROD_C supplies a video image to the encoding unit PROD_C1. The recording device PROD_C may further include a camera PROD_C3 for capturing an image, an input terminal PROD_C4 for inputting a moving image from the outside, a receiving unit PROD_C5 for receiving the moving image, and an image processing unit PROD_C6 for generating or processing an image. In the figure, the recording device PROD_C is illustrated as having all of these components, but some of them may be omitted.

[0204] The receiving unit PROD_C5 may receive uncoded video. Alternatively, the receiving unit PROD_C5 may receive encoded data that has been encoded by a transmission encoding method different from the recording encoding method. In the latter case, a transmission decoding unit (not shown) that decodes the encoded data that has been encoded by the transmission encoding method may be provided between the receiving unit PROD_C5 and the encoding unit PROD_C1.

[0205] Examples of such a recording device PROD_C include a DVD recorder, a BD recorder, and an HDD (Hard Disk Drive) recorder (in this case, the input terminal PROD_C4 or the receiving unit PROD_C5 is the main source of the moving image). Also, a camcorder (in this case, the camera PROD_C3 is the main source of the moving image), a personal computer (in this case, the receiving unit PROD_C5 or the image The processing unit C6 is the main source of video images), a smartphone (in this case, the camera PROD_C3 Or the receiving unit PROD_C5 is the main source of video images) This is an example.

[0206] FIG. 3 shows the configuration of a playback device PROD_D equipped with the above-mentioned video decoding device 31. As shown in the figure, the playback device PROD_D includes a reading unit PROD_D1 that reads out the coded data written on the recording medium PROD_M, and a decoding unit PROD_D2 that obtains a moving image by decoding the coded data read by the reading unit PROD_D1. The image decoding device 31 is used as this decoding unit PROD_D2.

[0207] The recording medium PROD_M may be (1) a type built into the playback device PROD_D, such as an HDD or SSD, or (2) a type of storage device, such as an SD memory card or a USB flash memory. (3) DVD, BD, etc. The DVD-ROM 10 may be loaded into a drive device (not shown) built into the playback device PROD_D.

[0208] In addition, the playback device PROD_D receives the video output from the decoding unit PROD_D2 and outputs the video to the playback device PROD_D. The apparatus may further include a display PROD_D3 for displaying the moving image, an output terminal PROD_D4 for outputting the moving image to the outside, and a transmission unit PROD_D5 for transmitting the moving image. Although the configuration of the playback device PROD_D is illustrated, some of the configuration may be omitted.

[0209] The transmission unit PROD_D5 may transmit uncoded video. Alternatively, the decoder unit PROD_D2 may transmit encoded data encoded by a transmission encoding method different from the recording encoding method. In the latter case, it is preferable to interpose an encoding unit (not shown) between the decoder unit PROD_D2 and the transmitter unit PROD_D5, which encodes the video image by the transmission encoding method.

[0210] Examples of such a playback device PROD_D include a DVD player, a BD player, and a HDD player (in this case, the output terminal PROD_D4 to which a television receiver or the like is connected operates). In addition, television receivers (in this case, the display PROD_D3 is the main supply destination of moving images), digital signage (also called electronic billboards or electronic bulletin boards, etc.) a display PROD_D3 or a transmission unit PROD_D5 being the main destination of the moving image), a desktop PC (in this case, the output terminal PROD_D4 or the transmission unit PROD_D5 being the main destination of the moving image), a laptop or tablet PC (in this case, the display PROD_D3 or the transmission unit PROD_D5 being the main destination of the moving image), Examples of such a playback device PROD_D include a playback device PROD_D for a smartphone (in which case the display PROD_D3 or the transmission unit PROD_D5 is the main destination of the video images), and a smartphone (in which case the display PROD_D3 or the transmission unit PROD_D5 is the main destination of the video images).

[0211] (Hardware and Software Realizations) Furthermore, each block of the above-mentioned video decoding device 31 and video encoding device 11 may be realized in hardware by a logic circuit formed on an integrated circuit (IC chip), or may be realized by a CPU. This may be realized in software using a Central Processing Unit (Central Processing Unit).

[0212] In the latter case, each of the above devices includes a CPU that executes the instructions of a program that realizes each function, Storage devices such as ROM (Read Only Memory) that stores programs, RAM (Random Access Memory) that expands the programs, and memory that stores the programs and various data. The object of the embodiment of the present invention can also be achieved by supplying each of the above devices with a recording medium on which program code (executable program, intermediate code program, source program) of a control program for each of the above devices, which is software for realizing the above functions, is recorded in a computer-readable manner, and the computer (or CPU or MPU) reads out and executes the program code recorded on the recording medium.

[0213] Examples of the recording medium include tapes such as magnetic tapes and cassette tapes, magnetic disks such as floppy disks (registered trademark) and hard disks, and CD-ROMs (Compact Disc Read-Only Memory), MO disks (Magneto-Optical discs), MDs (Mini Discs), DVDs (Digital Versatile Discs: registered trademark), CD-Rs (CD Recordable), and Blu-ray discs (Blu-ray Discs, including optical discs such as Disc: registered trademark, IC cards (including memory cards) / Cards such as optical cards, mask ROM / EPROM (Erasable Programmable Read-Only Memory) / EEPROM (Electrically Erasable and Programmable Read-Only Memory: registered trademark) Semiconductor memories such as flash ROMs, or logic circuits such as PLDs (Programmable logic devices) and FPGAs (Field Programmable Gate Arrays) can be used.

[0214] Moreover, each of the above devices may be configured to be connectable to a communication network, and the above program code may be supplied via the communication network. This communication network is not particularly limited as long as it is capable of transmitting the program code. For example, the Internet, an intranet, an extranet, a LAN (Local Area Network), an ISDN (Integrated Services Digital Network), a VAN (Value-Added Network), a CATV (Community Antenna television / Cable Television) communication network, a virtual private network, a telephone line network, a mobile communication network, a satellite communication network, etc. may be used. Moreover, the transmission medium constituting this communication network is not limited to a specific configuration or type as long as it is a medium capable of transmitting the program code. For example, it can be used in wired communication such as IEEE (Institute of Electrical and Electronic Engineers) 1394, USB, power line carrier, cable TV line, telephone line, ADSL (Asymmetric Digital Subscriber Line) line, etc., or in wireless communication such as infrared such as IrDA (Infrared Data Association) or remote control, BlueTooth (registered trademark), IEEE802.11 wireless, HDR (High Data Rate), NFC (Near Field Communication), DLNA (Digital Living Network Alliance: registered trademark), mobile phone network, satellite line, terrestrial digital broadcasting network, etc. The embodiment of the present invention can also be realized in the form of a computer data signal embedded in a carrier wave in which the program code is embodied by electronic transmission.

[0215] The present invention is not limited to the above-described embodiment, and various modifications are possible within the scope of the claims. In other words, the technical scope of the present invention also includes embodiments obtained by combining technical means that are appropriately modified within the scope of the claims. [Industrial Applicability]

[0216] The embodiments of the present invention can be suitably applied to a video decoding device that decodes coded data in which image data is coded, and a video coding device that generates coded data in which image data is coded, and can also be suitably applied to the data structure of coded data that is generated by a video coding device and referenced by the video decoding device. [Explanation of symbols]

[0217] 31 Image Decoding Device 301 Entropy Decoding Unit 302 Parameter Decoding Unit 3020 Header Decoding Unit 303 Inter-prediction parameter decoding unit 304 Intra prediction parameter decoding unit 308 Prediction Image Generation Unit 309 Inter-prediction image generation unit 310 Intra-prediction image generation unit 311 Inverse quantization and inverse transformation unit 312 Addition section 11 Image encoding device 101 Prediction image generation unit 102 Subtraction section 103 Transformation and Quantization Section 104 Entropy coding unit 105 Inverse quantization and inverse transformation unit 107 Loop Filter 110 Encoding parameter determination unit 111 Parameter Encoding Unit 112 Inter-prediction parameter coding unit 113 Intra prediction parameter coding unit 1110 Header encoding part 1111 CT information encoder 1112 CU encoding unit (prediction mode encoding unit) 1114 TU encoder

Claims

1. 1. A video decoding device for decoding encoded data, comprising: a matrix reference pixel derivation unit that derives first reference pixels by downsampling adjacent pixels adjacent to the upper side of the target block and derives second reference pixels by downsampling adjacent pixels adjacent to the left side of the target block; a weighting matrix derivation unit that derives a weighting matrix using an intra prediction mode and a size variable; a matrix predicted image derivation unit that derives an intermediate predicted image of a predetermined size by using a multiplication and accumulation operation of the first reference pixels, the second reference pixels, and the weighting matrix; a matrix predicted image interpolation unit that derives a predicted image using the intermediate predicted image, If the width and height of the target block is 4x8 pixels, 4x16 pixels, 4x32 pixels, 4x64 pixels, 8x8 pixels, 8x4 pixels, 16x4 pixels, 32x4 pixels, or 64x4 pixels, the value of the size variable is , is set to 1, If the width and height of the target block are 8x16 pixels, 8x32 pixels, 8x64 pixels, 16x8 pixels, 16x16 pixels, 16x32 pixels, 16x64 pixels, 32x8 pixels, 32x16 pixels, 32x32 pixels, 32x64 pixels, 64x8 pixels, 64x16 pixels, 64x32 pixels, or 64x64 pixels, the value of the size variable is set to 2. A video decoding device characterized in that

2. 1. A video encoding device for encoding data, comprising: a matrix reference pixel derivation unit that derives first reference pixels by downsampling adjacent pixels adjacent to the upper side of the target block and derives second reference pixels by downsampling adjacent pixels adjacent to the left side of the target block; a weighting matrix derivation unit that derives a weighting matrix using an intra prediction mode and a size variable; a matrix predicted image derivation unit that derives an intermediate predicted image of a predetermined size by using a multiplication and accumulation operation of the first reference pixels, the second reference pixels, and the weighting matrix; a matrix predicted image interpolation unit that derives a predicted image using the intermediate predicted image, If the width and height of the target block is 4x8 pixels, 4x16 pixels, 4x32 pixels, 4x64 pixels, 8x8 pixels, 8x4 pixels, 16x4 pixels, 32x4 pixels, or 64x4 pixels, the value of the size variable is , is set to 1, If the width and height of the target block are 8x16 pixels, 8x32 pixels, 8x64 pixels, 16x8 pixels, 16x16 pixels, 16x32 pixels, 16x64 pixels, 32x8 pixels, 32x16 pixels, 32x32 pixels, 32x64 pixels, 64x8 pixels, 64x16 pixels, 64x32 pixels, or 64x64 pixels, the value of the size variable is set to 2. A video encoding device characterized in that

3. deriving first reference pixels by downsampling adjacent pixels adjacent to an upper side of the current block, and deriving second reference pixels by downsampling adjacent pixels adjacent to a left side of the current block; deriving a weighting matrix using the intra prediction mode and a size variable; deriving an intermediate predicted image of a predetermined size by using a multiplication and accumulation operation of the first reference pixels, the second reference pixels, and the weighting matrix; deriving a predicted image using the intermediate predicted image; If the width and height of the target block is 4x8 pixels, 4x16 pixels, 4x32 pixels, 4x64 pixels, 8x8 pixels, 8x4 pixels, 16x4 pixels, 32x4 pixels, or 64x4 pixels, the value of the size variable is , is set to 1, If the width and height of the target block are 8x16 pixels, 8x32 pixels, 8x64 pixels, 16x8 pixels, 16x16 pixels, 16x32 pixels, 16x64 pixels, 32x8 pixels, 32x16 pixels, 32x32 pixels, 32x64 pixels, 64x8 pixels, 64x16 pixels, 64x32 pixels, or 64x64 pixels, the value of the size variable is set to 2. A method for generating a predicted image, comprising:

Citation Information

Patent Citations

  • Intra predictions using linear or affine transforms with neighbouring sample reduction

    WO2020127811A2

  • Image component prediction method, encoder, decoder, and storage medium

    WO2021004155A1

  • Matrix weighted intra prediction of video signals

    WO2021040941A1