Video encoding device and video decoding device

JP7641186B2Active Publication Date: 2025-03-06SHARP KK
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2021103852
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-06-23
Publication Date
2025-03-06
Estimated Expiration
2041-06-23

AI Technical Summary

Benefits of technology

【0014】 このような構成にすることで、ニューラルネットワークを用いて超解像処理を行った場合でも、符号化効率を最適化でき、課題を解決できる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007641186000001
    Figure 0007641186000001
  • Figure 0007641186000002
    Figure 0007641186000002
  • Figure 0007641186000003
    Figure 0007641186000003
Patent Text Reader

Abstract

To provide a video encoding device and a video decoding device, capable of appropriately performing resolution conversion and inverse conversion processing while considering the color difference sample position of an image.SOLUTION: In a video transmission system 1, a video encoding device 10 and a video coding device 30 that is connected to an image display device 41 are connected via a network 21. The video decoding device 30 includes: an image decoding device 31 which decodes encoded data Te; an inverse conversion information decoding device 91 which decodes color difference sample position information (inverse conversion information) of an image decoded by the image decoding device 31; and a resolution inverse conversion device 61 which converts the image Td1 to an image with a specified resolution using the inverse conversion information.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] An embodiment of the present invention relates to a video encoding device and a video decoding device. [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 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 encoding methods include H.264 / AVC and H.265 / HEVC (High-Efficiency Video Coding).

[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] Moreover, Non-Patent Document 1 can be cited as a recent example of a video encoding and decoding technique.

[0007] Non-Patent Document 1 specifies a reference picture re-sampling (RPR) technique that enables variable image resolution encoding and decoding. Furthermore, Annex D of Non-Patent Document 1 specifies supplemental extension information (SEI) for transmitting image properties, display methods, timing, and the like simultaneously with encoded data.

[0008] In Non-Patent Document 2, neural network parameters are restored using auxiliary extension information (SEI). A technology has been proposed in which the decoded image is then transmitted to the signal side to achieve super-resolution. [Prior art documents] [Non-patent literature]

[0009] [Non-Patent Document 1] ITU-T Recommendation H.266 (08 / 20) 2020-08-29 [Non-Patent Document 2] T. Chujoh, E. Sasaki and T. Ikai, AHG9 / AHG11: Neural network based super resolution SEI, JVET Document, JVET-T0092, Oct. 2020. Summary of the Invention [Problem to be solved by the invention]

[0010] However, when the RPR method described in Non-Patent Document 1 is used, at least a part of the input image is When reducing the resolution of an image, encoding and decoding it, and then returning it to the original resolution (the same as the input image), there is a problem that blurring is likely to occur.

[0011] In addition, by using super-resolution technology using neural networks as in Non-Patent Document 2, When converting back to the original resolution (same as the input image), if the input image is in 4:2:0 format, the chrominance If the sample position is not taken into consideration, the expected performance may not be achieved. [Means for solving the problem]

[0012] A video decoding device according to one aspect of the present invention includes: an image decoding device for decoding encoded data; an inverse transformation information decoding device that decodes chrominance sample position information (inverse transformation information) of the image decoded by the image decoding device; The present invention is characterized by comprising a resolution inverse conversion device that converts the image into a designated resolution using the inverse conversion information.

[0013] Furthermore, a video encoding device according to an aspect of the present invention comprises: A resolution conversion device that converts the resolution of an input image; an image encoding device that encodes the image whose resolution has been converted by the resolution conversion device; an inverse conversion information generating device that generates color difference sample position information (inverse conversion information) from the input image and the resolution-converted image; The inverse transformation information coding device includes an inverse transformation information coding device for coding the inverse transformation information. Effect of the Invention

[0014] By using such a configuration, it is possible to optimize the coding efficiency even when performing super-resolution processing using a neural network, thereby solving the problem. [Brief description of the drawings]

[0015] [Figure 1] 1 is a schematic diagram showing a configuration of a video 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 encoded data. [Diagram 5] 1 is a conceptual diagram of an image to be processed in the video transmission system according to the present embodiment. [Figure 6] FIG. 2 is a conceptual diagram showing an example of a reference picture and a reference picture list. [Figure 7] FIG. 1 is a schematic diagram showing a configuration of an image decoding device. [Figure 8] 11 is a flowchart illustrating a schematic operation of an image decoding device. [Figure 9] FIG. 13 is a schematic diagram showing a configuration of an inter-prediction parameter derivation unit. [Figure 10] 1 is a schematic diagram showing the configuration of a merge prediction parameter derivation unit and an AMVP prediction parameter derivation unit. [Figure 11] FIG. 13 is a schematic diagram showing a configuration of an inter-prediction image generating unit. [Figure 12] FIG. 1 is a block diagram showing a configuration of an image encoding device. [Figure 13] 13 is a schematic diagram showing a configuration of an inter-prediction parameter encoding unit. [Figure 14] FIG. 11 is a diagram for explaining sample positions of color difference in the 4:2:0 format. [Figure 15] FIG. 11 is a diagram illustrating an example of a syntax table of supplemental enhancement information SEI that specifies chrominance sample position information according to an embodiment of the present application. [Figure 16]FIG. 2 is a diagram illustrating a configuration example of an APS syntax table that specifies color difference sample position information according to an embodiment of the present application. [Figure 17] FIG. 2 is a diagram illustrating a configuration example of an APS syntax table that specifies color difference sample position information according to an embodiment of the present application. [Figure 18] FIG. 2 is a diagram illustrating a configuration example of a syntax table of an SPS that specifies color difference sample position information according to an embodiment of the present application. [Figure 19] FIG. 2 is a diagram illustrating an example of the configuration of a resolution inverse conversion device 61 according to an embodiment of the present application. [Figure 20] FIG. 2 is a diagram illustrating an example of the configuration of a resolution inverse conversion device 61 according to an embodiment of the present application. [Figure 21] FIG. 2 is a diagram illustrating an example of the configuration of a resolution inverse conversion device 61 according to an embodiment of the present application. [Figure 22] FIG. 2 is a diagram illustrating an example of the configuration of a resolution inverse conversion device 61 according to an embodiment of the present application. [Figure 23] 6 shows the structure of a neural network in a resolution inverse conversion network unit 602 according to an embodiment of the present application. [Figure 24] 1 is an application example of a resolution inverse conversion device 61 according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

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

[0017] FIG. 1 is a schematic diagram showing the configuration of a video transmission system according to this embodiment.

[0018] The video transmission system 1 encodes images having different resolutions, the resolutions of which have been converted. The video transmission system 1 comprises a video encoding device 10, a network 21, and a video It comprises an image decoding device 30 and an image display device 41 .

[0019] The video encoding device 10 is made up of a resolution conversion device (resolution conversion unit) 51, an image encoding device (image encoding unit) 11, an inverse conversion information creation device (inverse conversion information creation unit) 71, and an inverse conversion information encoding device (inverse conversion information encoding unit) 81.

[0020] The video decoding device 30 includes an image decoding device (image decoding unit) 31, a resolution inverse conversion device (resolution inverse conversion unit) 61, and an inverse conversion information decoding device (inverse conversion information decoding unit) 91.

[0021] The resolution conversion device 51 converts the resolution of an image T included in a video to generate an image of a different resolution. to the image coding device 11. The resolution conversion device 51 also supplies inverse conversion information (filter parameter information, model information, neural network information) indicating a conversion method such as image resolution conversion to the image coding device 11. If the information indicates resolution conversion, the video coding device 10 sets resolution conversion information ref_pic_resampling_enabled_flag to 1, and includes it in a sequence parameter set SPS (Sequence Parameter Set) of the coded data Te for coding.

[0022] The inverse conversion information generating device 71 generates inverse conversion information based on an image T1 included in a video. The inverse conversion information is derived or selected from the relationship between an input image T1 before resolution conversion and an image Td1 after resolution conversion, encoding, and decoding.

[0023] Inverse transformation information is input to the inverse transformation information coding device 81. The inverse transformation information coding device 81 codes the inverse transformation information and transmits it to the network 21.

[0024] A variable resolution image T2 is input to the image encoding device 11. The image encoding device 11 encodes the image T2 in the RPR frame. The image size information of the input image is encoded in PPS units using the set, and sent to the image decoding device 31. .

[0025] In FIG. 1, the inverse transformation information coding device 81 is not connected to the image coding device 11. The transformation information encoding device 81 and the image encoding device 11 may communicate necessary information as appropriate.

[0026] The network 21 transmits the coded inverse transformation information and the coded data Te to the image decoding device 31. A part or all of the coded inverse transformation information is coded as supplemental extension information SEI. The encoded data Te may be included in the data Te. The network 21 is the Internet, a wide area network (WAN), a local area network (LAN), or a combination of these. The network 21 is not necessarily limited to a two-way communication network, and may be a one-way communication network that transmits broadcast waves such as terrestrial digital broadcasting and satellite broadcasting. The network 21 may also be replaced by a storage medium on which the encoded data Te is recorded, such as a DVD (Digital Versatile Disc: registered trademark) or a BD (Blue-ray Disc: registered trademark).

[0027] The image decoding device 31 decodes each of the encoded data Te transmitted by the network 21 , generates a variable resolution decoded image, and supplies it to the resolution inverse conversion device 61 .

[0028] The inverse conversion information decoding device 91 decodes the coded inverse conversion information transmitted by the network 21 to generate inverse conversion information, and supplies the generated inverse conversion information to the resolution inverse conversion device 61 .

[0029] 1, the inverse transformation information decoding device 91 is illustrated separately from the image decoding device 31, but the inverse transformation information decoding device 91 may be included in the image decoding device 31. For example, the inverse transformation information decoding device 91 may be included in the image decoding device 31 separately from each functional unit of the image decoding device 31. Also, although not connected to the image decoding device 31 in FIG. 1, the inverse transformation information decoding device 91 and the image decoding device 31 may communicate necessary information as appropriate.

[0030] When the resolution conversion information indicates resolution conversion, the resolution inverse conversion device 61 generates a decoded image of the original size by inversely converting the resolution-converted image through super-resolution processing based on image size information included in the encoded data. When the resolution conversion information does not indicate resolution conversion, the resolution inverse conversion device 61 may operate as a filter that performs noise removal and the like without performing resolution conversion. The output image of the resolution inverse conversion device 61 may be referred to as a reference image in the image decoding device 31. In other words, it may be operated as a loop filter.

[0031] The image display device 41 receives one or more decoded images Td2 from the resolution inverse conversion device 61. The image display device 41 displays all or part of the image. The image 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. When the image decoding device 31 has high processing power, it displays high quality images, and when it has only low processing power, it displays images that do not require high processing power or display power.

[0032] (Application example of the resolution inverse converter 61) 24 is a diagram showing an application example of a resolution inverse conversion device 61. The resolution inverse conversion device 61 is a means for performing filtering processing on an input image using a neural network, and at the same time, performs reduction / enlargement at a constant rate or a rational number rate using color difference sample position information. The resolution inverse conversion device 61 may be used as a loop filter applied to a reference image, a predicted image generation process from a reference image, or a post filter for an output image.

[0033] 24(a) shows an example of the configuration of a loop filter. The loop filter 305 of the video decoding device (loop filter 107 of the video encoding device) includes a resolution inverse conversion device 61. The unit 61 filters the images in the reference picture memory 306 / 106 and stores them in the reference picture memory 306 / 106. As previously explained, the loop filter may comprise a DF, ALF, SAO, bilateral filter, etc.

[0034] FIG. 24(b) shows an example of the configuration of a predicted image generating unit. The center predicted image generating unit 309 includes a resolution inverse conversion device 61. The resolution inverse conversion device 61 The image in the reference picture memory 306 / 106 is read and filtered to generate a predicted image. The measured image is further used for CIIP prediction, GPM prediction, weight prediction, and BDOF in the synthesis unit 3095. Alternatively, the signal may be output as is to the addition unit 312 (subtraction unit 102 in the encoding device).

[0035] FIG. 24(c) shows an example of the configuration of a post-filter. The post-processing unit of the video decoding device performs resolution inversion. The resolution inverse conversion device 61 outputs the image in the reference picture memory 306. At that time, the image is processed by the resolution inverse conversion device 61 and output to the outside. The output image may be displayed, written to a file, re-encoded (transcoded), transmitted, or the like.

[0036] FIG. 5 is a conceptual diagram of an image to be processed in the video transmission system shown in FIG. 1, showing a change in resolution of the image over time. However, in FIG. 5, there is no distinction as to whether the image is encoded or not. FIG. 5 shows an example of transmitting an image to the image decoding device 31 with a reduced resolution in the process of the video transmission system. As shown in FIG. 5, the resolution conversion device 51 usually performs conversion to reduce the resolution of the image in order to reduce the amount of information to be transmitted. The resolution conversion device 51 may be a pre-filter that reduces high-frequency components in time and space while keeping the image at the same size. In this case, the resolution inverse conversion device 61 becomes a filter that restores degradation and reproduces high-frequency components without changing the size.

[0037] <Operator> The operators used in this specification are described below.

[0038] >> represents a right bit shift, << represents a left bit shift, & represents a bitwise AND, and | represents a bitwise OR. , |= is an OR assignment operator, and || represents a logical OR.

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

[0040] 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). That is, it returns a when c < a, b when c > b, and c otherwise (where a <= b).

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

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

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

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

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

[0046] a ^ b represents a to the power of b. When a = 2 and b is an integer, 2 ^ b = 1 << b.

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

[0048] FIG. 4 is a diagram showing a hierarchical structure of data in the encoded data Te. The encoded data Te is , exemplarily, includes a sequence and a number of pictures that constitute the sequence. a coded video sequence defining a sequence SEQ; a coded picture defining a picture PICT; A slice definition for slice S, an encoding slice definition for slice data, A diagram showing slice data, coding tree units contained in the coded slice data, and coding units contained in the coding tree units is shown.

[0049] (Coded Video Sequence) In a coded video sequence, an image decoding device is used to decode the sequence SEQ to be processed. The standard specifies a set of data referenced by the video parameter set (VPS) 31. As shown in Fig. 4, the sequence SEQ includes a video parameter set (VPS), a sequence parameter set (SPS), a picture parameter set (PPS), an adaptation parameter set (APS), a picture PICT, and supplemental enhancement information (SEI).

[0050] In the video parameter set VPS, for a video image that consists of multiple layers, A set of coding parameters common to a plurality of video streams and a set of coding parameters associated with a plurality of layers and each individual layer contained in the video stream are defined.

[0051] The sequence parameter set SPS specifies a set of coding parameters that the image decoding device 31 refers to in order to decode the target sequence. For example, the width and height of a picture are Note that multiple SPSs may exist. In that case, one of the multiple SPSs is selected from the PPS. Select.

[0052] Here, the sequence parameter set SPS includes the following syntax elements: ref_pic_resampling_enabled_flag: A flag that specifies whether or not to use a function for varying resolution (resampling) when decoding each image included in a single sequence that references the target SPS. In other words, this flag indicates that the size of the reference picture referenced in generating a predicted image changes between each image indicated by a single sequence. When the value of this flag is 1, the resampling function is enabled. is applied, if it is 0 it is not applied. pic_width_max_in_luma_samples: The maximum width of any image in a sequence. This syntax element specifies the width of the image in luminance block units. The value of this syntax element must not be 0 and must be an integer multiple of Max(8, MinCbSizeY). Here, MinCbSizeY is a value determined by the minimum size of a luminance block. pic_height_max_in_luma_samples: This syntax element specifies the height of the image with the maximum height among the images in a single sequence, in units of luminance blocks. The value of this syntax element must not be 0 and must be an integer multiple of Max(8, MinCbSizeY). is required. sps_temporal_mvp_enabled_flag: The time motion detection flag for decoding the target sequence. A flag that specifies whether or not to use vector prediction. If the value of the flag is 1, time If the value is 0, temporal motion vector prediction is not used. In addition, by defining this flag, it is possible to prevent the coordinate position to be referenced from shifting when, for example, referring to a reference picture with a different resolution.

[0053] 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 image decoding device 31 is defined. For example, the reference value of the quantization width (pic_init_qp_minus26) used in decoding a picture and the application of weighted prediction are defined. A flag (weighted_pred_flag) indicating the PPS 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.

[0054] Here, the picture parameter set PPS includes the following syntax elements: · pic_width_in_luma_samples: A syntax element that specifies the width of the target picture. The value of this syntax element is required to be a non-zero integer multiple of Max(8, MinCbSizeY) and equal to or less than pic_width_max_in_luma_samples. pic_height_in_luma_samples: A syntax element that specifies the height of the target picture. The value of this syntax element is required to be a non-zero integer multiple of Max(8, MinCbSizeY) and equal to or less than pic_height_max_in_luma_samples. · conformance_window_flag: Conformance (cropping) window offset A flag indicating whether the parameter is to be subsequently notified and where the conformance window is to be displayed. If this flag is 1, the parameter is notified. If it is 0, the conformance window offset parameter is not present. This indicates that. conf_win_left_offset, conf_win_right_offset, conf_win_top_offset, conf_win_bottom_offset: offset values ​​for specifying the left, right, top, and bottom positions of the picture output by the decoding process with respect to the rectangular area specified by the output picture coordinates. In addition, if the value of conformance_window_flag is 0, the values ​​of conf_win_left_offset, conf_win_right_offset, conf_win_top_offset, and conf_win_bottom_offset are estimated to be 0. scaling_window_flag: A flag indicating whether or not a scaling window offset parameter exists in the target PPS, and is a flag related to the specification of the output image size. When this flag is 1, it indicates that the parameter exists in the PPS, and when this flag is 0, it indicates that the parameter does not exist in the PPS. In addition, when the value of ref_pic_resampling_enabled_flag is 0, the value of scaling_window_flag is also required to be 0. scaling_win_left_offset, scaling_win_right_offset, scaling_win_top_offset, scaling_win_bottom_offset: Syntax elements that specify the offsets applied to the image size for scaling ratio calculation in luma samples for the left, right, top, and bottom positions of the target picture, respectively. If the value of scaling_window_flag is 0, the values ​​of scaling_win_left_offset, scaling_win_right_offset, scaling_win_top_offset, and scaling_win_bottom_offset are inferred to be 0. It is also required that the value of scaling_win_left_offset + scaling_win_right_offset is less than pic_width_in_luma_samples, and the value of scaling_win_top_offset + scaling_win_bottom_offset is less than pic_height_in_luma_samples.

[0055] The width PicOutputWidthL and height PicOutputHeightL of the output picture are derived as follows:

[0056] PicOutputWidthL = pic_width_in_luma_samples - (scaling_win_right_offset + scaling_win_left_offset) PicOutputHeightL = pic_height_in_pic_size_units - (scaling_win_bottom_offset + scaling_win_top_offset) In Non-Patent Document 1, the width and height of the output picture are specified, but the specific method for performing the resolution inverse conversion process is not specified. When a normal upsampling filter process is performed, there is a problem that blurring is likely to occur.

[0057] On the other hand, it is known that a super-resolution algorithm technology for moving images using a neural network can restore a high resolution without blurring compared to conventional upsampling filter processing. The technology in Non-Patent Document 2, which transmits neural network parameters to the decoding side in auxiliary extension information SEI and performs super-resolution processing or filter processing on the decoded image, can improve the image quality of the decoded image. However, when the code amount of the auxiliary extension information SEI is large, there is a problem that the coding efficiency cannot always be improved due to the relationship between rate and distortion.

[0058] In this embodiment, a framework is provided that can control the amount of information of network parameters in accordance with image quality in a manner that is adaptive to moving images.

[0059] The inverse transformation information generating device 71 receives the input image T1 and a locally decoded image in the reference image memory of the image encoding device 11, and outputs inverse transformation information.

[0060] The inverse transformation information generating device 71 generates chrominance sample position information nnr_chroma_sample_loc_type as inverse transformation information and sends it to the inverse transformation information encoding device 81. The partial update network parameters are information on the network parameters of the part to be updated among the neural network parameters used when performing super-resolution or filtering on a locally decoded image. The chrominance sample position information is information indicating the sample position of chrominance, as will be described later.

[0061] The resolution inverse conversion device 61 is equipped with general-purpose trained network parameters in a neural network capable of performing inverse conversion processing, but may also be configured to transmit partial update network parameters to update the network parameters.

[0062] The inverse transformation information coding device 81 and the inverse transformation information decoding device 91 may hold the general-purpose network parameters in common. In this case, the inverse transformation information coding device 81 may code the partial update network parameters, or may code the difference between the partial update network parameters and the general-purpose network parameters. In this case, the inverse transformation information decoding device 91 may decode the partial update network parameters by adding the difference to the general-purpose network parameters.

[0063] FIG. 14 shows an example of color difference sample position information according to the present embodiment. In this case, the number of pixels for the color differences Cb and Cr is half that of the luminance Y in both the horizontal and vertical directions. In this case, there are six possible sample positions for the color differences Cb and Cr in the case of a progressive signal. In Fig. 14, the circles represent the sample positions for luminance Y, the squares represent the sample positions for the color differences Cb and Cr, and The numbers indicate the sample position information of the color difference.

[0064] 0 is the position of the even-numbered column of luminance in the horizontal direction, and the midpoint between the even-numbered and odd-numbered rows of luminance in the vertical direction. Here, the horizontal luminance sample positions are counted as columns 0 and 1 from the left edge of the screen, and the vertical luminance sample positions are counted as rows 0 and 1 from the top of the screen. The positions 2, 0, and 1, which are particularly frequently used, are shown separately as (a), (b), and (c).

[0065] 1 is the middle position between the even and odd columns of luminance in the horizontal direction, and the even and odd rows of luminance in the vertical direction. The figure shows the intermediate position.

[0066] 2 indicates the same position as the even rows and even columns of luminance in both the horizontal and vertical directions.

[0067] 3 is the middle position between the even and odd columns of luminance in the horizontal direction, and the even row position in the vertical direction. It shows.

[0068] 4 indicates the same position as the odd rows and even columns of luminance in both the horizontal and vertical directions.

[0069] 5 indicates the middle position between the even and odd columns of luminance in the horizontal direction, and the position of several rows of luminance in the vertical direction. is doing.

[0070] The chrominance sample location information is defined by assigning the value shown in Fig. 14 to nnr_chroma_sample_loc_type. In the case of an interlaced signal, the screen is treated as a field picture.

[0071] In the inverse transform coding device 81, based on the syntax table of FIG. 15 or FIG. 16 and FIG. 17, or in the SPS, inverse transform information (chrominance sample location information nnr_chroma_sample_loc_type) In the case of the syntax table of FIG. 15, the inverse conversion information is coded as supplementary extension information SEI. The inverse transformation information is encoded as APS, multiplexed with the encoded data Te output from the image encoding device 11, and output to the network 21. In the case of the syntax tables in FIG. 16 and FIG. 17, the inverse transformation information is encoded as APS, It is output as part of the encoded data Te output by the image encoding device 11. It is also encoded as SPS. It may be encoded.

[0072] The inverse conversion information decoding device 91 decodes the inverse conversion information from the coded data Te based on the syntax table of FIG. 15 or FIG. 16 and FIG. 17, and sends the decoded result to the resolution inverse conversion device 61. In the case of the syntax table of FIG. 15, the inverse conversion information coded as the supplemental extension information SEI is decoded. In the case of the syntax table of FIG. 17, the inverse transformation information decoder 91 decodes the inverse transformation information coded as APS. Decrypt the information, or you may decrypt it as an SPS.

[0073] The resolution inverse conversion device 61 performs the inverse conversion of the image size information of the image Td1 and the image size information of the input image T1. Based on the result of the inverse transformation, Td1 is inversely transformed using the inverse transformation information to generate a decoded image Td2. The image size information of the input image T1 is coded in PPS units. Here, the inverse transformation information is Includes chrominance sample location information indicating the new portion.

[0074] By using such a configuration, it becomes possible to improve the image quality of the inverse transform process and control the amount of information of the network parameters, thereby optimizing the coding efficiency and solving the problem.

[0075] (Encoded Picture) The coded picture defines a set of data to be referenced by the image decoding device 31 in order to decode the picture PICT to be processed. The picture PICT is, as shown in FIG. PH, including slices 0 to NS-1 (NS is the total number of slices contained in the picture PICT) .

[0076] In the following, when there is no need to distinguish between slices 0 to NS-1, the subscripts of the signs are The same applies to other data to which subscripts are added that are included in the encoded data Te described below.

[0077] The picture header contains the following syntax elements: pic_temporal_mvp_enabled_flag: The image of the slice associated with the picture header. A flag that specifies whether or not to use temporal motion vector prediction for center prediction. If the value of the flag is 0, the syntax element The flag restricts the decoding of the slice to not use temporal motion vector prediction. If the flag has a value of 1, it indicates that temporal motion vector prediction is used to decode the slice associated with the picture header. If the flag is not specified, the value is inferred to be 0.

[0078] (Coded Slice) In the case of the coded slice, the image decoding device 31 refers to the coded slice S to decode the slice S to be processed. As shown in Figure 4, a slice consists of a slice header and and contains slice data.

[0079] The slice header includes a group of coding parameters to be referred to by the image decoding device 31 in order to determine a decoding method for the current slice. Slice type designation information (slice_type) that designates the slice type is an example of a coding parameter included in the slice header.

[0080] Slice types that can be specified by the slice type specification information include (1) an I slice that uses only intra prediction when encoding, (2) a P slice that uses uni-prediction (L0 prediction) or intra prediction when encoding, and (3) a B slice that uses uni-prediction (L0 prediction or L1 prediction), bi-prediction, or intra prediction when 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, when referring to P or B slice, it refers to a slice including a block that can use inter prediction.

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

[0082] (Encoded slice data) The coded slice data defines a set of data to be referenced by the image decoding device 31 in order to decode the slice data to be processed. The slice data is the coded slice data shown in FIG. As shown in the header, it contains a CTU, which is a fixed-size (e.g., 64x64) block that constitutes a slice, and is also called a Largest Coding Unit (LCU).

[0083] (coding tree unit) 4 specifies a set of data that the image decoding device 31 refers to in order to decode a CTU to be processed. The CTU is divided into coding units CU, which are basic units of encoding processing, by recursive quad tree division (QT (Quad Tree) division), binary tree division (BT (Binary Tree) division), or ternary tree division (TT (Ternary Tree) division). BT division and TT division are collectively called multi tree division (MT (Multi Tree) division). A node of a tree structure obtained by recursive quad tree division is called a coding node. Intermediate nodes of a quad tree, binary tree, and ternary tree are coding nodes, and the CTU itself is specified as the top coding node.

[0084] The CT includes, as CT information, a CU split flag (split_cu_flag) indicating whether or not to split the CT, a QT split flag (split_cu_flag) indicating whether or not to split the CT, The flags include a QT split flag (qt_split_cu_flag) indicating whether or not to split the MT, an MT split direction (mtt_split_cu_vertical_flag) indicating the split direction of the MT, and an MT split type (mtt_split_cu_binary_flag) indicating the split type of the MT. split_cu_flag, qt_split_cu_flag, mtt_split_cu_vertical_flag, and mtt_split_cu_binary_flag are transmitted for each encoding node.

[0085] Different trees may be used for luminance and chrominance. The type of tree is indicated by treeType. For example, when using a common tree for luminance (Y, cIdx=0) and chrominance (Cb / Cr, cIdx=1,2), the common single tree is indicated by treeType=SINGLE_TREE. When using two different trees (DUAL trees) for luminance and chrominance, the luminance tree is indicated by treeType=DUAL_TREE_LUMA and the chrominance tree is indicated by treeType=DUAL_TREE_CHROMA.

[0086] (Encoding Unit) FIG. 4 shows data to be referenced by the image decoding device 31 in order to decode the coding unit to be processed. Specifically, a CU consists of a CU header CUH, prediction parameters, and transformation parameters. The CU header includes a quantization transform coefficient, a quantization metric, etc. The CU header specifies a prediction mode, etc.

[0087] Prediction processing may be performed on a CU basis or on a sub-CU basis that is a further division of a CU. If the size of the CU and the sub-CU are equal, there is one sub-CU in the CU. If the size of the CU is larger than the size of the sub-CU, the CU is divided into sub-CUs. For example, if the CU is 8x8 and the sub-CU is 4x4, the CU is divided into 4 sub-CUs, divided into 2 horizontally and 2 vertically.

[0088] 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).

[0089] 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.

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

[0091] Hereinafter, prediction parameters of inter prediction will be described. Inter prediction parameters are composed of prediction list use flags predFlagL0 and predFlagL1, reference picture indexes refIdxL0 and refIdxL1, and motion vectors mvL0 and mvL1. predFlagL0 and predFlagL1 are flags indicating whether or not a reference picture list (L0 list, L1 list) is used, and when the value is 1, the corresponding reference picture list is used. Note that in this specification, when "a flag indicating whether or not XX" is written, a flag other than 0 (for example, 1) is XX, 0 is not XX, and 1 is treated as true and 0 is treated as false in logical negation, logical product, etc. (similarly below). However, in an actual device or method, other values ​​can be used as true and false values.

[0092] Syntax elements for deriving inter prediction parameters include, for example, an affine flag affine_flag used in the merge mode, a merge flag merge_flag, a merge index merge_idx, an MMVD flag mmvd_flag, and an index for selecting a reference picture used in the AMVP mode. Inter prediction identifier inter_pred_idc, reference picture index refIdxLX, predicted vector index mvp_LX_idx for deriving a motion vector, difference vector mvdLX, motion vector There is a rule precision mode amvr_mode.

[0093] (Reference picture list) The reference picture list is a list of reference pictures stored in the reference picture memory 306. FIG. 6 is a conceptual diagram showing an example of a reference picture and a reference picture list. In the conceptual diagram showing an example of a reference picture in FIG. 6, a rectangle indicates a picture, an arrow indicates a reference relationship between pictures, the horizontal axis indicates time, I, P, and B in the rectangle indicate an intra picture, a uni-predictive picture, and a bi-predictive picture, respectively, and numbers in the rectangle indicate a decoding order. As shown in the figure, the decoding order of pictures is I0, P1, B2, B3, and B4, and the display order is I0, B3, B2, B4, and P1. FIG. 6 shows an example of a reference picture list of picture B3 (target picture). A reference picture list is a list representing candidates for a reference picture, and one picture (slice) may have one or more reference picture lists. In the example shown in the figure, the target picture B3 has two reference picture lists, an L0 list RefPicList0 and an L1 list RefPicList1. In each CU, refIdxLX specifies which picture in the reference picture list RefPicListX (X=0 or 1) is actually referenced. The diagram shows an example where refIdxL0=2 and refIdxL1=0. Note that LX is a description method used when there is no distinction between L0 prediction and L1 prediction, and hereinafter, parameters for the L0 list and parameters for the L1 list are distinguished by replacing LX with L0 and L1.

[0094] (Merge prediction and AMVP prediction) There are two methods for decoding (encoding) prediction parameters: merge mode and AMVP (Advanced Motion Vector Prediction) mode. The merge_flag is These are flags for identifying them. The merge prediction mode is a mode in which the prediction list usage flag predFlagLX, the reference picture index refIdxLX, and the motion vector mvLX are not included in the encoded data, but are derived from the prediction parameters of the neighboring blocks that have already been processed. The AMVP mode is a mode in which inter_pred_idc, refIdxLX, and mvLX are included in the encoded data. Note that mvLX is encoded as mvp_LX_idx that identifies the predicted vector mvpLX and the difference vector mvdLX. In addition to the merge prediction mode, there may be an affine prediction mode and an MMVD prediction mode.

[0095] The inter_pred_idc is a value indicating the type and number of reference pictures, and takes one of the values ​​PRED_L0, PRED_L1, and PRED_BI. PRED_L0 and PRED_L1 are managed by the L0 list and the L1 list, respectively. PRED_BI is managed by the L0 list and the L1 list. 1 shows bi-prediction using two reference pictures.

[0096] merge_idx is the prediction parameter candidate (merge candidate) derived from the processed block. (comment) is to be used as a prediction parameter for the current block.

[0097] (Motion Vector) mvLX indicates the amount of shift between blocks on two different pictures. A prediction vector and a difference vector related to mvLX are called mvpLX and mvdLX, respectively.

[0098] (Inter prediction identifier inter_pred_idc and prediction list usage flag predFlagLX) The relationship between inter_pred_idc, predFlagL0, and predFlagL1 is as follows, and they are mutually convertible.

[0099] inter_pred_idc = (predFlagL1<<1)+predFlagL0 predFlagL0 = inter_pred_idc & 1 predFlagL1 = inter_pred_idc >> 1 In addition, the inter prediction parameter may use a prediction list usage flag or an inter prediction identifier. Furthermore, the determination using the prediction list usage flag may be replaced with a determination using the inter prediction identifier. Conversely, the determination using the inter prediction identifier may be replaced with a determination using the prediction list usage flag.

[0100] (Bi-predictive biPred decision) The flag biPred indicating whether or not the prediction is performed can be derived based on whether or not two prediction list usage flags are both 1. For example, the flag can be derived by the following formula.

[0101] biPred = (predFlagL0==1 && predFlagL1==1) Alternatively, biPred can be derived based on whether the inter prediction identifier is a value indicating the use of two prediction lists (reference pictures). For example, biPred can be derived using the following formula:

[0102] biPred = (inter_pred_idc==PRED_BI) ? 1 : 0 (Configuration of an image decoding device) The configuration of an image decoding device 31 (FIG. 7) according to this embodiment will be described.

[0103] The image decoding device 31 includes an entropy decoding unit 301, a parameter decoding unit (prediction image decoding device) 302, a loop filter 305, a reference picture memory 306, a prediction parameter memory 307, and a prediction image A generation unit (prediction image generation device) 308, an inverse quantization and inverse transformation unit 311, an addition unit 312, a prediction parameter The image decoding device 320 is configured to include a data derivation unit 320. In some configurations, the device 31 does not include a loop filter 305 .

[0104] The parameter decoding unit 302 further includes a header decoding unit 3020, a CT information decoding unit 3021, and a CU decoding unit 3022. The CU decoding unit 3022 further includes a TU decoding unit 3024. These may be collectively referred to as a decoding module. The header decoding unit 3020 decodes parameter set information such as VPS, SPS, PPS, and APS, and slice header (slice information) from the encoded data. The CT information decoding unit 3021 decodes the CT from the encoded data. The CU decoding unit 3022 decodes the CU from the encoded data. The TU decoding unit 3024 decodes QP update information (quantization correction value) and quantization prediction error (residual_coding) from the encoded data when a prediction error is included in the TU.

[0105] The TU decoding unit 3024 decodes the QP update information and the quantized prediction error from the encoded data when the mode is other than the skip mode (skip_mode==0). More specifically, when skip_mode==0, the TU decoding unit 3024 decodes the flag cu_cbp indicating whether or not the current block includes a quantized prediction error, and decodes the quantized prediction error when cu_cbp is 1. When cu_cbp does not exist in the encoded data, In this case, it is derived as 0.

[0106] The TU decoding unit 3024 decodes the index mts_idx indicating the transformation base from the encoded data. In addition, the TU decoding unit 3024 decodes an index stIdx indicating the use of a secondary transform and a transform base from the encoded data. When stIdx is 0, it indicates that a secondary transform is not applied, when it is 1, it indicates one of the transforms in a set (pair) of secondary transform bases, and when it is 2, it indicates that one of the above-mentioned pair is applied. The other transformation is shown below.

[0107] Furthermore, the TU decoding unit 3024 may decode a sub-block transform flag cu_sbt_flag. When cu_sbt_flag is 1, the CU is divided into a plurality of sub-blocks, and the residual of only one specific sub-block is decoded. Furthermore, the TU decoding unit 3024 may decode a flag cu_sbt_quad_flag indicating whether the number of sub-blocks is 4 or 2, cu_sbt_horizontal_flag indicating the division direction, and cu_sbt_pos_flag indicating a sub-block including a non-zero transform coefficient.

[0108] The predicted image generating unit 308 includes an inter predicted image generating unit 309 and an intra predicted image generating unit 310. It is composed of:

[0109] The prediction parameter derivation unit 320 is configured to include an inter prediction parameter derivation unit 303 and an intra prediction parameter derivation unit 304 .

[0110] 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. and processing may be performed in units of blocks or sub-blocks.

[0111] The entropy decoding unit 301 performs entropy decoding on the encoded data Te input from the outside. The entropy decoder 301 performs decoding to decode each code (syntax element). There are two types of entropy coding: one is to perform variable-length coding of syntax elements using a context (probability model) adaptively selected according to the type of syntax element and surrounding circumstances, and the other is to perform variable-length coding of syntax elements using a predetermined table or formula. The former CABAC (Context Adaptive Binary Arithmetic Coding) stores the CABAC state of the context (probability state index pStateIdx that specifies the type (0 or 1) and probability of the most probable symbol) in memory. The entropy decoder 301 initializes all CABAC states at the beginning of a segment (tile, CTU row, slice). The entropy decoder 301 converts the syntax element into a binary string (Bin String) and decodes each bit of the Bin String. When a context is used, a context index ctxInc is derived for each bit of the syntax element, the bit is decoded using the context, and the CABAC state of the used context is updated. Bits without context are decoded with equal probability (EP, bypass), and ctxInc derivation and CABAC state are omitted. The decoded syntax elements include prediction information for generating a predicted image and prediction error for generating a difference image.

[0112] The entropy decoding unit 301 outputs the decoded code to the parameter decoding unit 302. The decoded code is, for example, a prediction mode predMode, merge_flag, merge_idx, inter_pred_idc, refIdxLX, mvp_LX_idx, mvdLX, amvr_mode, etc. Control of which code to decode is performed based on an instruction from the parameter decoding unit 302.

[0113] (Basic flow) FIG. 8 is a flowchart illustrating a schematic operation of the image decoding device 31.

[0114] (S1100: Decode Parameter Set Information) The header decoding unit 3020 decodes parameter set information such as the VPS, SPS, and PPS from the encoded data.

[0115] (S1200: Decode slice information) The header decoding unit 3020 decodes slice header information from the encoded data. Decode (slice information).

[0116] Hereinafter, the image decoding device 31 performs the steps S1300 to S5000 for each CTU included in the target picture. The process is repeated to derive a decoded image for each CTU.

[0117] (S1300: Decode CTU Information) The CT information decoding unit 3021 decodes the CTU from the encoded data.

[0118] (S1400: Decode CT Information) The CT information decoding unit 3021 decodes the CT from the encoded data.

[0119] (S1500: CU Decoding) The CU decoding unit 3022 performs S1510 and S1520 to decode the CU from the encoded data. Issued.

[0120] (S1510: Decode CU information) The CU decoding unit 3022 decodes CU information, prediction information, and TU division from the encoded data. The flag split_transform_flag, the CU residual flags cbf_cb, cbf_cr, cbf_luma, etc. are decoded.

[0121] (S1520: Decode TU information) When a TU includes a prediction error, the TU decoding unit 3024 decodes the encoded TU information. The QP update information, the quantization prediction error, and the transform index mts_idx are decoded from the data. Note that the QP update information is derived from the quantization parameter predicted value qPpred, which is the predicted value of the quantization parameter QP. This is the difference value.

[0122] (S2000: Generation of predicted image) The predicted image generation unit 308 generates a predicted image for each block included in the current CU based on the prediction information.

[0123] (S3000: Inverse Quantization and Inverse Transformation) The inverse quantization and inverse transform unit 311 executes inverse quantization and inverse transform processing for each TU included in the target CU.

[0124] (S4000: Decoded image generation) The adder 312 receives a predicted image from the predicted image generator 308 and The prediction error supplied from the inverse quantization and inverse transform unit 311 is added to the A decoded image is generated.

[0125] (S5000: Loop Filter) The loop filter 305 applies a loop filter such as a deblocking filter, SAO, or ALF to the decoded image to generate a decoded image.

[0126] (Configuration of inter-prediction parameter derivation unit) 9 is a schematic diagram showing the configuration of the inter-prediction parameter derivation unit 303 according to this embodiment. The inter-prediction parameter derivation unit 303 decodes prediction parameters stored in the prediction parameter memory 307 based on the syntax elements input from the parameter decoding unit 302. The inter prediction parameter derivation unit 303 and its internal element, the AMVP prediction parameter derivation unit 3032, the merge prediction parameter derivation unit 3033, and the merge prediction parameter derivation unit 3034 refer to the inter prediction parameter derivation unit 303 and output the inter prediction parameters to the inter prediction image generation unit 309 and the prediction parameter memory 307. Derivation unit 3036, affine prediction unit 30372, MMVD prediction unit 30373, GPM unit 30377, DMVR unit 30537, MV addition unit 3038 Since the calculation unit 3038 is a unit common to the image encoding device and the image decoding device, these may be collectively referred to as a motion vector derivation unit (motion vector derivation device).

[0127] The scale parameter derivation unit 30378 derives a horizontal scaling ratio of the reference picture, RefPicScale[i][j][0], a vertical scaling ratio of the reference picture, RefPicScale[i][j][1], and RefPicIsScaled[i][j] indicating whether the reference picture is scaled or not, where i indicates whether the reference picture list is the L0 list or the L1 list, and j is a reference picture in the L0 reference picture list or the L1 reference picture list.

[0128] RefPicScale[i][j][0] = ((fRefWidth << 14)+(PicOutputWidthL >> 1)) / PicOutputWidthL RefPicScale[i][j][1] = ((fRefHeight << 14)+(PicOutputHeightL >> 1)) / PicOutputHeightL RefPicIsScaled[i][j] = (RefPicScale[i][j][0] != (1<<14)) || (RefPicScale[i][j][1] != (1<<14)) Here, the variable PicOutputWidthL is the horizontal scale when the coded picture is referenced. The variable PicOutputHeightL is used when calculating the scaling ratio and is the number of pixels in the horizontal direction of the luminance of the coded picture minus the left and right offset values ​​when a coded picture is referenced, and is used when calculating the vertical scaling ratio when a coded picture is referenced and is the number of pixels in the vertical direction of the luminance of the coded picture minus the top and bottom offset values ​​when a coded picture is referenced. The variable fRefWidth is the value of PicOutputWidthL of the reference picture j of list i, and the variable fRefHight is the value of the reference picture j of list i. The value of PicOutputHeightL.

[0129] When affine_flag is 1, that is, when affine prediction mode is indicated, the affine prediction unit 30372 derives inter prediction parameters on a sub-block basis.

[0130] When mmvd_flag is 1, that is, when it indicates the MMVD prediction mode, the MMVD predictor 30373 derives inter prediction parameters from the merge candidates and difference vectors derived by the merge prediction parameter derivation unit 3036.

[0131] If gpm_flag is 1, ie, indicates Geometric Partitioning Mode, the GPM unit 30377 derives the GPM parameters.

[0132] If merge_flag is 1, i.e., it indicates merge prediction mode, derive merge_idx and The resultant signal is output to the prediction parameter derivation unit 3036.

[0133] When merge_flag is 0, that is, when it indicates the AMVP prediction mode, the AMVP prediction parameter derivation unit 3032 derives mvpLX from inter_pred_idc, refIdxLX, or mvp_LX_idx.

[0134] (MV addition section) The MV adder 3038 adds the derived mvpLX and mvdLX to derive mvLX.

[0135] (Affine prediction part) The affine prediction unit 30372 performs the following steps: 1) estimating two control points CP0 and CP1 of the target block, or estimating three control points CP1 and CP2 of the target block; 2) Derive the motion vectors of the control points CP0, CP1, and CP2, and 3) derive the affine prediction parameters of the target block. 3) derive a motion vector for each subblock from the affine prediction parameters.

[0136] (Merge prediction) 10 is a schematic diagram showing the configuration of the merge prediction parameter derivation unit 3036 according to this embodiment. The merge prediction parameter derivation unit 3036 includes a merge candidate derivation unit 30361, a merge candidate The merging candidate list includes a selection unit 30362. The merging candidates are configured to include prediction parameters (predFlagLX, mvLX, refIdxLX) and are stored in a merging candidate list. An index is assigned to the merging candidates stored in the merging candidate list according to a predetermined rule.

[0137] The merge candidate derivation unit 30361 directly extracts the motion vector and refIdxLx of the decoded adjacent block. In addition, the merge candidate derivation unit 30361 uses the spatial A merge candidate derivation process, a temporal merge candidate derivation process, a pairwise merge candidate derivation process, and a zero merge candidate derivation process may be applied.

[0138] (DMVR) Next, a DMVR (Decoder side Motion Vector Refinement) process performed by the DMVR unit 30375 will be described. When merge_flag is 1 for a target CU, or when the skip flag skip_flag is 1, the DMVR unit 30375 performs a process of refining the mvLX of the target CU derived by the merge prediction unit 30374 based on the reference image. Specifically, the prediction parameters derived by the merge prediction unit 30374 are bi-predictive. When the motion vector is estimated, the motion vector is corrected using a predicted image derived from the motion vector corresponding to two reference pictures. The corrected mvLX is output to the inter-prediction image generating unit 309. are supplied to.

[0139] (AMVP Prediction) 10 is a schematic diagram showing the configuration of the AMVP prediction parameter derivation unit 3032 according to this embodiment. The AMVP prediction parameter derivation unit 3032 includes a vector candidate derivation unit 3033 and a vector candidate selection unit 3034. The vector candidate derivation unit 3033 derives a prediction vector candidate from the motion vector of the decoded adjacent block stored in the prediction parameter memory 307 based on refIdxLX. , and stored in the predicted vector candidate list mvpListLX[ ].

[0140] The vector candidate selection unit 3034 selects the predicted vector candidate mvp_LX_idx from among the predicted vector candidates in mvpListLX[]. The vector candidate selection unit 3034 outputs the selected mvpLX to the MV addition unit 3038.

[0141] (MV addition section) The MV addition unit 3038 calculates mvLX by adding the mvpLX input from the AMVP prediction parameter derivation unit 3032 and the decoded mvdLX. The addition unit 3038 outputs the calculated mvLX to the inter predicted image generation unit 309. and outputs it to the prediction parameter memory 307.

[0142] mvLX[0] = mvpLX[0] + mvdLX[0] mvLX[1] = mvpLX[1] + mvdLX[1] MMVD prediction (Merge with Motion Vector Difference) can be classified as merge prediction. , or AMVP prediction. In the former case, mmvd_flag and MMVD related Decode the syntax elements, and in the latter, if merge_flag=0, mmvd_flag and MMVD related syntax elements are Decode the tax element.

[0143] 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 filter to the decoded image of the CU generated by the adder 312. Apply a filter such as an automatic loop filter (ALF).

[0144] The reference picture memory 306 stores the decoded image of the CU in a predetermined Store it in position.

[0145] The prediction parameter memory 307 stores prediction parameters at a predetermined location for each CTU or CU. Specifically, the prediction parameter memory 307 stores parameters decoded by the parameter decoding unit 302, parameters derived by the prediction parameter derivation unit 320, and the like.

[0146] The predicted image generation unit 308 receives the parameters derived by the prediction parameter derivation unit 320. The predicted image generation unit 308 also reads a reference picture from the reference picture memory 306. The predicted image generation unit 308 generates a prediction image based on the parameters and the reference picture (reference picture A reference picture block (a reference block) is used to generate a predicted image of a block or sub-block. Here, a reference picture block is a set of pixels on a reference picture (usually rectangular, so called a block), and is an area to be referenced in order to generate a predicted image.

[0147] (Inter-prediction image generation unit 309) When predMode indicates an inter prediction mode, the inter prediction image generating unit 309 Using the inter-prediction parameters and the reference pictures input from the prediction parameter derivation unit 303, A predicted image of the block or sub-block is generated by inter prediction.

[0148] FIG. 11 is a schematic diagram showing a configuration of an inter-prediction image generating unit 309 included in the prediction image generating unit 308 according to this embodiment. The inter-prediction image generating unit 309 is a motion compensation unit (prediction image generating device). The synthesis unit 3095 includes an IntraInter synthesis unit 30951, a GPM synthesis unit 30952, a BDOF unit 30954, and a weighted prediction unit 3094.

[0149] (Motion Compensation) The motion compensation unit 3091 (interpolated image generation unit 3091) receives the input from the inter prediction parameter derivation unit 303. Based on the input inter prediction parameters (predFlagLX, refIdxLX, mvLX), an interpolated image (motion compensated image) is generated by reading a reference block from the reference picture memory 306. The reference block is a block shifted by mvLX from the position of the target block on the reference picture RefPicLX specified by refIdxLX. If mvLX does not have integer precision, an interpolated image is generated by applying a filter called a motion compensation filter for generating pixels at decimal positions.

[0150] The motion compensation unit 3091 first derives an integer position (xInt, yInt) and a phase (xFrac, yFrac) corresponding to coordinates (x, y) in the prediction block using the following formula.

[0151] xInt = xPb+(mvLX[0]>>(log2(MVPREC)))+x xFrac = mvLX[0]&(MVPREC-1) yInt = yPb+(mvLX[1]>>(log2(MVPREC)))+y yFrac = mvLX[1]&(MVPREC-1) Here, (xPb, yPb) are the upper left coordinates of a block of size bW*bH, where x=0...bW-1, y=0...bH-1, and MVPREC indicates the accuracy of mvLX (1 / MVPREC pixel accuracy), e.g., MVPREC=16.

[0152] The motion compensation unit 3091 derives a temporary image temp[][] by performing horizontal interpolation processing on the reference picture refImg using an interpolation filter. In the following, Σ is the sum for k=0..NTAP-1, shift1 is a normalization parameter that adjusts the value range, and offset1=1<<(shift1-1).

[0153] temp[x][y] = (ΣmcFilter[xFrac][k]*refImg[xInt+k-NTAP / 2+1][yInt]+offset1)>>shift1 Next, the motion compensation unit 3091 derives the interpolated image Pred[][] by vertically interpolating the temporary image temp[][]. In the following, Σ is the sum for k=0..NTAP-1, shift2 is a normalization parameter that adjusts the value range, and offset2=1<<(shift2-1).

[0154] Pred[x][y] = (ΣmcFilter[yFrac][k]*temp[x][y+k-NTAP / 2+1]+offset2)>>shift2 In the case of bi-prediction, the above Pred[][] is derived for each L0 list and L1 list (called interpolated images PredL0[][] and PredL1[][]), and an interpolated image Pred[][] is generated from PredL0[][] and PredL1[][].

[0155] The motion compensation unit 3091 uses the reference picture derived by the scale parameter derivation unit 30378. The interpolation unit 102 has a function of scaling the interpolated image according to the horizontal scaling ratio RefPicScale[i][j][0] of the reference picture 102 and the vertical scaling ratio RefPicScale[i][j][1] of the reference picture 102.

[0156] The synthesis unit 3095 includes an IntraInter synthesis unit 30951, a GPM synthesis unit 30952, a weighted prediction unit 3094, and a BDOF unit 30954.

[0157] (IntraInter synthesis processing) The IntraInter synthesis unit 30951 synthesizes the inter-predicted image and the intra-predicted image by weighting the sum of the inter-predicted image and the intra-predicted image. A predicted image is generated.

[0158] The pixel value predSamplesComb[x][y] of the predicted image indicates whether to apply IntraInter synthesis processing. If the flag ciip_flag is 1, it is derived as follows:

[0159] predSamplesComb[x][y] =(w * predSamplesIntra[x][y] +(4 - w)*predSamplesInter[x][y] + 2)>> 2 Here, predSamplesIntra[x][y] is the intra-predicted image, which is restricted to planar prediction, and predSamplesInter[x][y] is the reconstructed inter-predicted image.

[0160] The weight w is derived as follows:

[0161] If both the bottommost left-neighboring block and the rightmost upper-neighboring block to the current coding block are intra, w is set to 3.

[0162] Otherwise, if both the bottommost left-neighboring block and the rightmost upper-neighboring block to the current coding block are not intra, then w is set to 1.

[0163] Otherwise, w is set to 2.

[0164] (GPM synthesis processing) The GPM synthesis unit 30952 generates a predicted image using the above-mentioned GPM.

[0165] (BDOF prediction) Next, a description will be given of BDOF prediction (Bi-Directional Optical Flow, BDOF processing) performed by the BDOF unit 30954. The BDOF unit 30954 performs two predicted images (a first predicted image and A predicted image is generated by referring to the first predicted image (the first predicted image) and the gradient correction term.

[0166] (Weighted prediction) The weighted prediction unit 3094 performs weighted prediction from the interpolated image PredLX to generate a predicted image pbSamples Generate.

[0167] When predMode indicates an intra prediction mode, the intra prediction image generation unit 310 The intra prediction unit 303 performs intra prediction using the intra prediction parameters input from the prediction parameter derivation unit 304 and reference pixels read from the reference picture memory 306 .

[0168] The inverse quantization and inverse transform unit 311 inverse quantizes the quantized transform coefficients input from the parameter decoding unit 302 to obtain transform coefficients.

[0169] 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 .

[0170] The inverse quantization and inverse transform unit 311 inverse quantizes the quantized transform coefficients input from the parameter decoding unit 302 to obtain transform coefficients.

[0171] 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 .

[0172] (Configuration of Image Encoding Device) Next, the configuration of the image encoding device 11 according to this embodiment will be described. Fig. 12 is a block diagram showing the configuration of the image encoding device 11 according to this embodiment. The image encoding device 11 includes a predicted image generating unit 101, a subtraction unit 102, a transform / quantization unit 103, an inverse quantization / inverse transform unit 105, an addition unit 106, a rule The image processing system includes 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 determination unit 110, a parameter encoding unit 111, a prediction parameter derivation unit 120, and an entropy encoding unit 104.

[0173] The predicted image generation unit 101 generates a predicted image for each CU. The predicted image generation unit 101 includes the inter predicted image generation unit 309 and the intra predicted image generation unit 310, which have already been described, and therefore a description thereof will be omitted.

[0174] 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.

[0175] 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 parameter coding unit 111 and the inverse quantization and inverse transform unit 105 .

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

[0177] The parameter coding unit 111 includes a header coding unit 1110, a CT information coding unit 1111, and a CU coding unit 1112 (prediction mode coding unit). The CU coding unit 1112 further includes a TU coding unit 1114. The following describes an outline of the operation of each module.

[0178] The header encoding unit 1110 performs encoding processing of parameters such as header information, division information, prediction information, and quantized transform coefficients.

[0179] The CT information encoding unit 1111 encodes the QT, MT (BT, TT) division information and the like.

[0180] The CU encoding unit 1112 encodes the CU information, prediction information, division information, and so on.

[0181] When a prediction error is included in a TU, the TU encoding unit 1114 encodes the QP update information and the quantized prediction error.

[0182] The CT information encoding unit 1111 and the CU encoding unit 1112 supply syntax elements such as inter prediction parameters (predMode, merge_flag, merge_idx, inter_pred_idc, refIdxLX, mvp_LX_idx, mvdLX), intra prediction parameters (intra_luma_mpm_flag, intra_luma_mpm_idx, intra_luma_mpm_reminder, intra_chroma_pred_mode), and quantized transform coefficients to the parameter encoding unit 111.

[0183] The entropy coding unit 104 receives the quantized transform coefficients and coding parameters (division information, prediction parameters) from the parameter coding unit 111. These are then entropy-encoded to generate encoded data Te, which is then output.

[0184] The prediction parameter derivation unit 120 is a means including an inter-prediction parameter encoding unit 112 and an intra-prediction parameter encoding unit 113, and derives intra-prediction parameters and intra-prediction parameters from the parameters input from the encoding parameter determination unit 110. The derived intra-prediction parameters and intra-prediction parameters are output to the parameter encoding unit 111.

[0185] (Configuration of the inter-prediction parameter encoding unit) 13, the inter prediction parameter encoding unit 112 includes a parameter encoding control unit 1121 and an inter prediction parameter derivation unit 303. The inter prediction parameter derivation unit 303 has the same configuration as the image decoding device. The parameter encoding control unit 1121 includes a merge index derivation unit 11211 and a vector candidate index derivation unit 11212.

[0186] The merge index derivation unit 11211 derives merge candidates and the like, and calculates inter prediction parameters The vector candidate index derivation unit 11212 derives predicted vector candidates and the like, and outputs them to the inter prediction parameter derivation unit 303 and the parameter coding unit 111.

[0187] (Configuration of the intra-prediction parameter encoding unit 113) The intra-prediction parameter coding unit 113 is a parameter coding control unit 1131 and an intra-prediction The image decoding device includes a parameter derivation unit 304. The intra prediction parameter derivation unit 304 has the same configuration as the image decoding device.

[0188] The parameter coding control unit 1131 derives IntraPredModeY and IntraPredModeC. Furthermore, it determines intra_luma_mpm_flag by referring to mpmCandList[ ]. These prediction parameters are output to the intra prediction parameter derivation unit 304 and the parameter coding unit 111.

[0189] However, unlike the image decoding device, the inter prediction parameter derivation unit 303 and the intra prediction parameter derivation unit 304 are The input to the parameter derivation unit 304 is the coding parameter determination unit 110 and the prediction parameter memory 108. and outputs it to parameter coding section 111.

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

[0191] 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.

[0192] 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.

[0193] 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.

[0194] 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.

[0195] 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 RD cost value indicating the error is calculated. The RD cost value is, for example, the sum of the code amount and the value obtained by multiplying the squared error by a coefficient λ. The code amount is the information amount of the coded data Te obtained by entropy coding the quantization error and the coding parameters. The squared error is calculated in the subtraction unit 102. The coefficient λ is a preset real number greater than zero. The coding parameter determination unit 110 determines a set of coding parameters that minimizes the calculated cost value. The encoding parameter determination unit 110 selects the determined encoding parameters as a parameter code. The resultant signal is output to the image forming unit 111 and the prediction parameter derivation unit 120.

[0196] In addition, a part of the image encoding device 11 and the image decoding device 31 in the above-mentioned embodiment, for example, the entropy decoding unit 301, the parameter decoding unit 302, the loop filter 305, the predicted image generating unit 308, the inverse quantization and inverse transform unit 311, the addition unit 312, the prediction parameter derivation unit 320, the predicted image generating unit 101, the subtraction unit 102, the transform and 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, the parameter coding unit 111, and the prediction parameter derivation unit 120 may be realized by a computer. In this case, a program for realizing this control function may be recorded in a computer-readable recording medium, and the program recorded in the recording medium may be read into and executed by a computer system. In addition, the "computer system" referred to here is a computer system built into either the image encoding device 11 or the image decoding device 31, and includes hardware such as an OS and peripheral devices. In addition, "computer-readable recording medium" refers to portable media such as flexible disks, optical magnetic disks, ROMs, and CD-ROMs, and storage devices such as hard disks built into computer systems. Furthermore, "computer-readable recording medium" may also include devices that dynamically hold 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, and devices that hold a program for a certain period of time, such as volatile memory inside a computer system that serves as a server or client in such cases. Furthermore, the above program may 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.

[0197] In addition, a part or the whole of the image encoding device 11 and the image decoding device 31 in the above-mentioned embodiment may be The image encoding device 11 and the image decoding device 31 may be realized as an integrated circuit such as an LSI (Large Scale Integration). Each functional block of the image encoding device 11 and the image decoding device 31 may be individually made into a processor, or may be integrated in part or in whole 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 can replace LSI appears due to the progress of semiconductor technology, an integrated circuit based on that technology may be used.

[0198] 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.

[0199] (SEI for resolution inversion) FIG. 15 shows the syntax of the auxiliary enhancement information SEI for the resolution inverse conversion process according to the present embodiment. 17 is a diagram showing an example of a syntax table. As shown in Fig. 17, the following syntax elements may be included. Parameters including the following syntax elements used in the resolution inverse conversion process may be called inverse conversion information. nnr_chroma_sample_loc_type: Chrominance sample location information used in the resolution inverse conversion process. It is encoded and decoded as a syntax element for deriving chrominance sample location information for the resolution inverse conversion process. nnr_chroma_sample_loc_type takes the values ​​0 to 5 shown in Figure 14.

[0200] Furthermore, in the present embodiment, an example has been described in which the method is applied to resolution inverse conversion, but the method may also be applied to image restoration processing using a post filter without changing the resolution.

[0201] In order to support multiple formats as the transmission format of the inverse conversion information, a parameter (identifier) ​​indicating the format may be sent. Also, the actual inverse conversion information following the identifier may be transmitted as a byte string.

[0202] (APS for reverse conversion processing) FIG. 16 shows an example of an APS (Adaptive Parameter Set) for inverse conversion processing according to the present embodiment. 16 is an example of an extended syntax table. The following syntax elements may be included as shown in FIG. 16: aps_extension_flag: A flag indicating the presence of APS extension data. If aps_extension_flag is 1, nnr_extension_flag is coded. If aps_extension_flag is 0, APS extension data does not exist, so nnr_extension_flag is not coded and is assumed to be 0. nnr_extension_flag: A flag indicating that chrominance sample position information for inverse transformation processing exists. This flag also indicates whether to encode and decode the syntax of nnr_extension_data(). If nnr_extension_flag is 1, the syntax of nnr_extension_data() is encoded and decoded. Encode and decode. nnr_extension_data() is a syntax that contains reverse conversion information.

[0203] Figure 17 shows an example of the syntax of nnr_extension_data(), which is one of the extension information of APS. nnr_extension_data() contains chrominance sample position information used in the inverse transform process. nnr_chroma_sample_loc_type: A syntax element for deriving information indicating the chrominance sample location used in the inverse transform process. nnr_chroma_sample_loc_type takes values ​​from 0 to 5 as shown in Figure 14.

[0204] (SPS color difference sample position information) FIG. 18 shows the color difference sample position information used in the resolution inverse conversion process in this embodiment. An example of the definition is shown below. When chrominance is 4:2:0 (sps_chroma_format_idc==1), sps_chroma_horizontal_collocated_flag (hor_col_flag) and sps_chroma_vertical_collocated_flag (ver_col_flag) may be transmitted by the syntax element.

[0205] sps_chroma_horizontal_collocated_flag equal to 1 indicates that the corresponding luminance sample sps_chroma_horizontal_collocated_flag equal to 0 indicates that the prediction method used should be appropriate for chroma sample locations that are not horizontally shifted relative to the corresponding Chrominance samples that are shifted 0.5 luma sample units to the right relative to the luma sample position. sps_chroma_vertical_collocated_flag is set to 0, which indicates that a prediction method suitable for a chrominance sample position that is shifted downward by 0.5 luminance sample units relative to the corresponding luminance sample position is used. sps_chroma_vertical_collocated_flag is set to 0, which indicates that a prediction method suitable for a chrominance sample position that is shifted downward by 0.5 luminance sample units relative to the corresponding luminance sample position is used. Although a prediction method is described here, in this embodiment, it can also be used as a post-processing device (post filter), loop filter, or predicted image filter as shown in FIG. 24.

[0206] The resolution inverse conversion device 61 may use the SPS flag as the color difference sample position information. The flag values ​​correspond to the following positions:

[0207] sps_chroma_horizontal_collocated_flag==0: Position 3,1 in Fig. 14 sps_chroma_horizontal_collocated_flag==1: Position 2,0 in Fig. 14 sps_chroma_vertical_collocated_flag==0: Position 0,1 in Fig. 14 sps_chroma_vertical_collocated_flag==1: Positions 2 and 3 in Fig. 14 The header decoder 3020 may decode the syntax element as follows and convert it into a value of nnr_chroma_sample_loc_type.

[0208] (hor_col_flag, ver_col_flag)=(1,1) → nnr_chroma_sample_loc_type = 2 (hor_col_flag, ver_col_flag)=(1,0) → nnr_chroma_sample_loc_type = 0 (hor_col_flag, ver_col_flag)=(0,1) → nnr_chroma_sample_loc_type = 3 (hor_col_flag, ver_col_flag)=(0,0) → nnr_chroma_sample_loc_type = 1 (Phase transformation) 19 shows an example of a specific configuration of the resolution inverse conversion device 61 that receives the color difference sample position information according to the present embodiment. The resolution inverse conversion device 61 includes a color difference phase conversion unit 601 and a resolution inverse conversion network. The inverse transformation unit 603 is made up of a chrominance phase inverse transformation unit 602 and a chrominance phase inverse transformation unit 603. The inverse transformation unit 603 receives as input a decoded image Td1 from the image decoding device 31 and chrominance sample position information nnr_chroma_sample_loc_type (inverse transformation information) from the inverse transformation information decoding device 91, and outputs an image Td2 after resolution inverse transformation.

[0209] The resolution inverse conversion network unit 602 is a neural network that performs super-resolution processing on images in 4:2:0 format. This network is trained with a fixed sample position for chrominance. For example, the resolution inverse conversion network unit 602 trains position 2 in FIG. 14 as the sample position for chrominance Cb and Cr. The positions are called "scalar chrominance sample positions."

[0210] The chrominance phase converter 601 converts the chrominance sample positions of the input chrominance samples defined by the chrominance sample position information into , and conversion for matching the scalar color difference sample position of the resolution inverse conversion network unit 602 is performed as follows: conduct.

[0211] The chrominance phase inverse conversion unit 603 performs conversion to match the scalar chrominance sample positions of the resolution inverse conversion network unit 602 with the output chrominance sample positions. The output chrominance sample positions are specified by chrominance sample position information.

[0212] In the following, the scalar color difference sample position of the resolution inverse conversion network unit 602 is the second in FIG. In the color difference phase converter 601, the value of nnr_chroma_sample_loc_type is According to the result, the chrominance sample positions of the image Td1 are converted to match the chrominance sample positions of the scaler. The scalar color difference sample position is the position set by the resolution inverse conversion network unit 602. The following describes the case 2 in Figure 14. Specifically, the value of nnr_chroma_sample_loc_type is In response, if the sample positions of the input chrominance are different, horizontal and vertical interpolation filter processing is performed to generate chrominance at the scalar chrominance sample positions. The above operation may be performed in response to sps_chroma_horizontal_collocated_flag and sps_chroma_vertical_collocated_flag instead of nnr_chroma_sample_loc_type.

[0213] For example, if the chrominance sample location information nnr_chroma_sample_loc_type has a value of 0, and the scalar chrominance When aligning to sample position 2, no conversion is performed in the horizontal direction, and the frame is aligned with a precision of 1 / 16 sample position. The filter coefficient fL(0) is used. In the vertical direction, the chrominance sample position is the luminance pixel position. Since the pixel shift is +1 / 2, the motion compensation filter coefficient FIR(0.75) at the -1 / 4 pixel position is used. The chrominance pixel value of the luminance pixel position is interpolated using Since the resolution of the luminance is half in both the horizontal and vertical directions, the interpolated value of the pixel position where the luminance is half can be obtained at the sample position where the phase is shifted. Since the movement is a -1 / 4 pixel movement, the integer position xIntL is set to -1 and the fractional position xFracL is set to 0.75. For example, for FIR(0.75), fL(12) is used out of the filter coefficients fL with 1 / 16 sample position accuracy. do.

[0214] fL(0)={0, 0, 0, 64, 0, 0, 0, 0} fL(1)={0, 1, -3, 63, 4, -2, 1, 0} fL(2)={-1, 2, -5, 62, 8, -3, 1, 0} fL(3)={-1, 3, -8, 60, 13, -4, 1, 0} fL(4)={-1, 4, -10, 58, 17, -5, 1, 0} fL(5)={-1, 4, -11, 52, 26, -8, 3, -1} fL(6)={-1, 3, -9, 47, 31, -10, 4, -1} fL(7)={-1, 4, -11, 45, 34, -10, 4, -1} fL(8)={-1, 4, -11, 40, 40, -11, 4, -1} fL(9)={-1, 4, -10, 34, 45, -11, 4, -1} fL(10)={-1, 4, -10, 31, 47, -9, 3, -1} fL(11)={-1, 3, -8, 26, 52, -11, 4, -1} fL(12)={0, 1, -5, 17, 58, -10, 4, -1} fL(13)={0, 1, -4, 13, 60, -8, 3, -1} fL(14)={0, 1, -3, 8, 62, -5, 2, -1} fL(15)={0, 1, -2, 4, 63, -3, 1, 0} The color difference phase inverse converter 603 performs resolution inverse conversion according to the value of nnr_chroma_sample_loc_type. The color difference sample positions of the image output from the network unit 602 are converted. For example, the resolution is inverted. The color difference sample position of the output image of the conversion network unit 602 is set to nnr_chroma_sample_loc_type The scalar chrominance sample position is converted according to the value of sps_chroma_horizontal_collocated_flag instead of nnr_chroma_sample_loc_type. Specifically, if the chrominance sample position indicated by nnr_chroma_sample_loc_type is different from the scalar chrominance sample position, horizontal and vertical interpolation filter processing is performed. Then, the chrominance at the scalar chrominance sample position is generated. , the above operation may be performed depending on sps_chroma_vertical_collocated_flag.

[0215] For example, in the chrominance phase inverse conversion unit 603, when the scalar chrominance sample position is 2 and the value of the chrominance sample position information nnr_chroma_sample_loc_type is 0, no conversion is performed in the horizontal direction, and a filter coefficient fL(0) with 1 / 16 sample position accuracy is used. In the vertical direction, since the chrominance sample position is shifted by +1 / 2 pixel in luminance from the luminance pixel position, the chrominance pixel value at the position where the value of nnr_chroma_sample_loc_type is 0 is interpolated using a motion compensation interpolation filter coefficient FIR(0.25) at a +1 / 4 pixel position. For example, fL(4) of the filter coefficients fL with 1 / 16 sample position accuracy is used as FIR(0.25).

[0216] Another example is when nnr_chroma_sample_loc_type=2 and scalar chroma sample location is 0. In this case, the phase of the horizontal filter of the interpolation filter used in the phase converter 601 is 0, and the phase of the vertical filter is +1 / 4. Therefore, the horizontal filter coefficient fL(0) and the vertical filter coefficient fL(4) are used. In this case, the phase of the horizontal filter of the interpolation filter used in the phase inverse converter 603 is 0, and the vertical filter coefficient fL(12) are used.

[0217] When nnr_chroma_sample_loc_type=1 and the scalar chrominance sample position is 2, the horizontal filter phase of the interpolation filter used in the phase converter 601 is −1 / 4 and the vertical filter phase is −1 / 4. Therefore, the horizontal filter coefficient is fL(12) and the vertical filter coefficient is fL(12). In this case, the horizontal filter phase of the interpolation filter used in the phase inverse converter 603 is −1 / 4. The horizontal filter coefficient is fL(4), and the vertical filter phase is 1 / 4. The coefficient fL(4) is used.

[0218] By using this configuration, the chrominance sample position of the decoded image in 4:2:0 format and Even if the chrominance sampling positions (scalar chrominance sampling positions) set by the resolution inverse conversion network unit are different, the resolution inverse conversion process can be performed appropriately.

[0219] (Another configuration example) 20 shows another example of a specific configuration of the resolution inverse conversion device 61 that receives the color difference sample position information according to the present embodiment. The resolution inverse conversion device 61 includes a 4:2:0 to 4:4:4 conversion unit 604 and a resolution It consists of an inverse transformation network unit 602 and a 4:4:4 to 4:2:0 conversion unit 605. It receives as input a decoded image Td1 from the image decoding device 31 and chrominance sample position information nnr_chroma_sample_loc_type from the inverse transformation information decoding device 91, and outputs an image Td2 after resolution inverse transformation.

[0220] The resolution inverse conversion network unit 602 in this embodiment is a neural network that performs super-resolution processing on images in 4:4:4 format. The 4:4:4 format is a set of luminance and chrominance samples. The number of chrominance samples is the same, and the chrominance sample positions are always the same as the luma sample positions. The format does not need to take into account the color difference sample positions.

[0221] The 4:2:0 to 4:4:4 converter 604 converts an image in 4:2:0 format into 4:4:4 format, taking into consideration the input chrominance sample position information (e.g., nnr_chroma_sample_loc_type, sps_chroma_horizontal_collocated_flag, and sps_chroma_vertical_collocated_flag). As an example of 4:2:0 to 4:4:4 conversion, the number of chrominance samples in the 4:2:0 format may be doubled in the vertical direction and then doubled in the horizontal direction to convert to the 4:4:4 format. At this time, if the chrominance sample position is shifted by 1 / 2 pixel from the luminance pixel position in the horizontal or vertical direction based on the chrominance sample position information (for example, if nnr_chroma_sample_loc_type=3or1, it is a horizontal +1 / 2 pixel shift, or if nnr_chroma_sample_loc_type=0or1, it is a vertical +1 / 2 pixel shift), the chrominance pixel value at the luminance pixel position is interpolated using a motion compensation interpolation filter coefficient at the 1 / 4 pixel position (for example, fL(12) or fL(4)). Note that the unit of one pixel is luminance. If the chrominance sample position is the same as the luminance pixel and a chrominance sample exists, the pixel value at that position is used as is. If the chrominance sample position is the same as the luminance pixel and a chrominance sample does not exist, the chrominance pixel value at the non-existent pixel position is interpolated using a motion compensation interpolation filter coefficient at the 1 / 2 pixel position (for example, fL(8)). It is also possible to perform 4:2:0 to 4:4:4 conversion by preparing an appropriate two-dimensional filter coefficient in advance based on the chrominance sample position information.

[0222] The 4:4:4 to 4:2:0 conversion unit 605 converts the chrominance Cb, Cr to the 4:2:0 format in consideration of the chrominance sample position information. As an example of the 4:4:4 to 4:2:0 conversion, the chrominance in the 4:4:4 format is reduced to 1 / 2 in the vertical direction, and then reduced to 1 / 2 in the horizontal direction, and converted to the 4:2:0 format. At this time, if the chrominance sample position is shifted by +1 / 2 pixels from the luminance pixel position in the horizontal or vertical direction based on the chrominance sample position information, the chrominance pixel value at the luminance pixel position is interpolated using the motion compensation interpolation filter coefficient at the +1 / 2 pixel position. If the chrominance sample position is the same as the luminance pixel, the pixel value at that position is used as is. The 4:4:4 to 4:2:0 conversion may be performed by preparing an appropriate two-dimensional filter coefficient in advance based on the chrominance sample position information.

[0223] By using this configuration, the chrominance sample position of the decoded image in 4:2:0 format and Even if the chrominance sampling positions set by the resolution inverse conversion network section are different, the resolution inverse conversion process can be appropriately performed.

[0224] In this example, the resolution inverse conversion network unit 602 is described as a neural network that performs super-resolution processing on an image in 4:4:4 format. However, a neural network that performs super-resolution processing on an image in 4:2:2 format in which the sample positions of chrominance are always in the even-numbered columns of luminance may be used. In this case, a 4:2:0 to 4:2:2 converter may be used instead of the 4:2:0 to 4:4:4 converter 604. A 4:2:2 to 4:2:0 converter is used instead of the 4:4:4 to 4:2:0 converter 605. In this way, by converting the chrominance sampling position into a format that is fixed at a specific position, it is possible to perform appropriate resolution inverse conversion processing even if the chrominance sampling position of the decoded image differs from the chrominance sampling position set by the resolution inverse conversion network unit.

[0225] Furthermore, the 4:4:4 to 4:2:0 conversion unit 605 may be omitted if the 4:4:4 format can be input as the input image Td2 of the downstream image display device 41.

[0226] (Another configuration example 2) 21 shows another example of the configuration of the resolution inverse conversion device 61 that receives chrominance sample position information according to the present embodiment. The resolution inverse conversion device 61 includes a switch 606, a resolution inverse conversion network 0 unit 6020, a resolution inverse conversion network 1 unit 6021, a resolution inverse conversion network 2 unit 6022, a resolution inverse conversion network 3 unit 6023, a resolution inverse conversion network 4 unit 6024, and a resolution inverse conversion network 5 unit 6025. The resolution inverse conversion device 61 receives a decoded image Td1 from the image decoding device 31 and chrominance sample position information nnr_chroma_sample_loc_type from the inverse conversion information decoding device 91 as inputs, and outputs an image Td2 after resolution inverse conversion. The above operation may be performed according to sps_chroma_horizontal_collocated_flag and sps_chroma_vertical_collocated_flag instead of nnr_chroma_sample_loc_type.

[0227] The resolution inverse conversion network 0 unit 6020 is a neural network that performs super-resolution processing on an image in 4:2:0 format, and the sample positions of chrominance Cb and Cr are fixed to position 0 shown in Fig. 14 for learning. Similarly, the resolution inverse conversion network 1 unit 6021 is a neural network that performs super-resolution processing on an image in 4:2:0 format, and the sample positions of chrominance Cb and Cr are fixed to position 1 shown in Fig. 14 for learning. The resolution inverse conversion network 2 unit 6022 is a neural network that performs super-resolution processing on an image in 4:2:0 format, and the sample positions of chrominance Cb and Cr are fixed to position 2 shown in Fig. 14 for learning. The resolution inverse conversion network 1 unit 6023 is a neural network that performs super-resolution processing on an image in 4:2:0 format, and the sample positions of chrominance Cb and Cr are fixed to position 3 shown in Fig. 14 for learning. The resolution inverse conversion network 4 unit 6024 is a neural network that performs super-resolution processing on images in 4:2:0 format, and the sample positions of chrominance Cb, Cr are fixed to position 4 shown in Fig. 14 during learning. The resolution inverse conversion network 5 unit 6025 is a neural network that performs super-resolution processing on images in 4:2:0 format, and the sample positions of chrominance Cb, Cr are fixed to position 5 shown in Fig. 14 during learning.

[0228] The switch 606 switches the resolution inverse conversion network according to the value of the input color difference sample position information. Select one of the resolution inverse conversion network 5 from work 0 and convert the resolution of image Td1. Note that the position of the corresponding color difference sample position information is not limited to 0-5, and may be 0-3.

[0229] The above-mentioned configuration for switching between a plurality of networks may be realized by having the resolution inverse conversion device 61 provide a plurality of network parameters in advance and having the switch 606 switch between the parameters.

[0230] if (nnr_chroma_sample_loc_type == 0) {Model[] = ModelChromaSample0[]} else if (nnr_chroma_sample_loc_type == 1) {Model[] = ModelChromaSample1[]} else if (nnr_chroma_sample_loc_type == 2) {Model[] = ModelChromaSample2[]} else if (nnr_chroma_sample_loc_type == 3) {Model[] = ModelChromaSample3[]} else if (nnr_chroma_sample_loc_type == 4) {Model[] = ModelChromaSample4[]} else if (nnr_chroma_sample_loc_type == 5) {Model[] = ModelChromaSample5[]} Here, Model is the parameter ( weight, bias value), ModelChromaSampleN is the nucleus used at each color difference sample position N. These are parameters of the neural network.

[0231] In addition, the neural network parameters corresponding to the chrominance sample location information can be stored in an array in advance, and the array index can be switched with nnr_chroma_sample_loc_type as follows: Model[] = ModelChromaSample[nnr_chroma_sample_loc_type][] Instead of nnr_chroma_sample_loc_type, the above operation may be performed according to sps_chroma_horizontal_collocated_flag and sps_chroma_vertical_collocated_flag. For example, in the case of an array, the neural network parameters may be switched according to the flag value as follows:

[0232] Model[] = ModelChromaSample[sps_chroma_horizontal_collocated_flag][sps_chroma_vertical_collocated_flag][] By using this configuration, the chrominance sample position of the decoded image in 4:2:0 format and Even if the chrominance sampling positions set by the resolution inverse conversion network section are different, the resolution inverse conversion process can be appropriately performed.

[0233] FIG. 22 shows another example of the configuration of the resolution inverse conversion device 61 that receives the chrominance sample position information according to the present embodiment. The resolution inverse conversion device 61 receives the decoded image Td1 from the image decoding device 31 and the inversely converted image Td2. The resolution inverse conversion network unit 602 receives the chrominance sample location information nnr_chroma_sample_loc_type from the conversion information decoding device 91 as input, and outputs an image Td2 after resolution inverse conversion by the resolution inverse conversion network unit 602. The chrominance sample location information may be input as a channel other than Y, Cb, and Cr. For example, an image having (Y, Cb, Cr, nnr_chroma_sample_loc_type) as elements may be input. Also, an image having (Y, Cb, Cr, sps_chroma_horizontal_collocated_flag, sps_chroma_vertical_collocated_flag) as elements may be input.

[0234] In this case, the resolution inverse conversion network unit 602 takes into account different chrominance sample position information. It is necessary to study in advance.

[0235] Even with this configuration, the chrominance sample position and resolution of the decoded image are reversed in 4:2:0 format. Even if the chrominance sample position set by the conversion network is different, the resolution is properly inverse converted. Processing can be performed.

[0236] FIG. 23 shows the structure of the neural network in the super-resolution network unit 602 of this embodiment. This is an example. The neural network in Figure 23(a) is a Conv2d (2 Dimentional Convolutional It is composed of a Neural Network), PReLU (Parametric Rectified Linear Unit), ResBlock (Residual Network Block), PixelShuffle, and an adder. Conv2d is a two-dimensional convolution layer. PReLU is an activation function. ResBlock learns a residual function that refers to the input of the layer. PixelShuffle is one of the image enlargement methods.

[0237] In this embodiment, the network uses four ResBlocks. The composition elements are not limited to Conv2d and PRelu, and elements such as fully connected layers Dense, Pooling, Deconv, Transposed Conv, Relu, Leaky Relu, Sigmoid, etc., or elements such as element product Mult, element sum Add (adder Add), and concatenation Concat may be used.

[0238] Figure 23(b) shows the structure of ResBlock. ResBlock consists of Conv2d, PReLU, and an adder Add. The input of ResBlock is first split into two. One input is a combination of Conv2d and PReLU. The result is passed through a three-layer network and added to the other input, and then input to the PReLU.

[0239] Furthermore, in the present embodiment, the resolution inverse conversion process has been described, but the process may be applied simply as image restoration process using a post filter without changing the resolution.

[0240] [Application example] The above-mentioned video encoding device 10 and video decoding device 30 can be mounted and used in various devices that transmit, receive, record, and play back videos. Note that 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.

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

[0242] PROD_A in FIG. 2 is a block diagram showing the configuration of a transmission device PROD_A equipped with a video encoding device 10. 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 10 is used as this encoding unit PROD_A1.

[0243] 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.

[0244] 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 moving image 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.

[0245] PROD_B in FIG. 2 is a block diagram showing the configuration of a receiving device PROD_B equipped with a video decoding device 30. As shown in the figure, the receiving device PROD_B includes a receiving unit PROD_B1 for receiving a modulated signal, The video decoding device 30 includes 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 video by decoding the coded data obtained by the demodulation unit PROD_B2. The video decoding device 30 described above is used as the decoding unit PROD_B3.

[0246] 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.

[0247] 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.

[0248] 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.

[0249] 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.

[0250] 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.

[0251] 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.

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

[0253] PROD_C in FIG. 3 shows the configuration of a recording device PROD_C equipped with the above-mentioned video encoding device 10. As shown in the figure, the recording device PROD_C includes an encoding unit PROD_C1 that obtains encoded data by encoding a moving image, and a writing unit PROD_C2 that writes the encoded data obtained by the encoding unit PROD_C1 onto a recording medium PROD_M. The above-mentioned moving image encoding device 10 is used as this encoding unit PROD_C1.

[0254] The recording medium PROD_M may be (1) a type built into the recording device PROD_C, such as an HDD (Hard Disk Drive) or SSD (Solid State Drive), (2) a type connected to the recording device PROD_C, such as an SD memory card or USB (Universal Serial Bus) flash memory, or (3) a type loaded into a drive device (not shown) built into the recording device PROD_C, such as a DVD (Digital Versatile Disc: registered trademark) or BD (Blu-ray Disc: registered trademark).

[0255] 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.

[0256] 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.

[0257] 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). Other examples of such a recording device PROD_C include 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 processing unit C6 is the main source of the moving image), and a smartphone (in this case, the camera PROD_C3 or the receiving unit PROD_C5 is the main source of the moving image).

[0258] FIG. 3PROD_D is a block diagram showing the configuration of a playback device PROD_D incorporating the above-described video decoding device 30. 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 video by decoding the coded data read out by the reading unit PROD_D1. The above-mentioned video decoding device 30 is used as this decoding unit PROD_D2.

[0259] 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.

[0260] 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.

[0261] 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.

[0262] 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 this case, the display PROD_D3 or the transmitting unit PROD_D5 is the main destination of the moving images. Other examples of the playback device PROD_D include a television receiver (in this case, the display PROD_D3 is the main destination of the moving images), a digital signage (also called an electronic billboard or an electronic bulletin board, and the display PROD_D3 or the transmitting unit PROD_D5 is the main destination of the moving images), a desktop PC (in this case, the output terminal PROD_D4 or the transmitting unit PROD_D5 is the main destination of the moving images), a laptop or tablet PC (in this case, the display PROD_D3 or the transmitting unit PROD_D5 is the main destination of the moving images), and a smartphone (in this case, the display PROD_D3 or the transmitting unit PROD_D5 is the main destination of the moving images).

[0263] (Hardware and Software Realizations) Furthermore, each block of the above-mentioned video decoding device 30 and video encoding device 10 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).

[0264] In the latter case, each of the above devices includes a CPU that executes the instructions of a program that realizes each function, ROM (Read Only Memory) stores the program, and RAM (Random Access Memory) expands the program. The present invention also includes a storage device (recording medium) such as a memory for storing the above-mentioned programs and various data, and the like. The object of the embodiment of the present invention can also be achieved by supplying each of the above-mentioned devices with a recording medium on which the program code (executable program, intermediate code program, source program) of the control program of each of the above-mentioned devices, which is software for realizing the above-mentioned 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.

[0265] Examples of the recording medium that can be used include tapes such as magnetic tapes and cassette tapes, magnetic disks such as floppy disks (registered trademark) and hard disks, disks including optical disks such as 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 (registered trademark), cards such as IC cards (including memory cards) and optical cards, semiconductor memories such as mask ROMs, EPROMs (Erasable Programmable Read-Only Memory), EEPROMs (Electrically Erasable and Programmable Read-Only Memory: registered trademark), and flash ROMs, and logic circuits such as PLDs (Programmable logic devices) and FPGAs (Field Programmable Gate Arrays).

[0266] 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.

[0267] 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]

[0268] 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]

[0269] 1. Video transmission system 30 Video Decoding Device 31 Image Decoding Device 301 Entropy Decoding Unit 302 Parameter Decoding Unit 303 Inter-prediction parameter derivation unit 304 Intra prediction parameter derivation unit 305, 107 Loop Filter 306, 109 Reference Picture Memory 307, 108 Prediction parameter memory 308, 101 Prediction image generation unit 309 Inter-prediction image generation unit 310 Intra-prediction image generation unit 311, 105 Inverse quantization and inverse transformation unit 312, 106 Addition section 320 Prediction parameter derivation part 10 Video Encoding Device 11 Image encoding device 102 Subtraction section 103 Transformation and Quantization Section 104 Entropy coding unit 110 Encoding parameter determination unit 111 Parameter Encoding Unit 112 Inter-prediction parameter coding unit 113 Intra prediction parameter coding unit 120 Prediction parameter derivation part 71 Reverse conversion information creation device 81 Inverse transformation information coding device 91 Inverse transformation information decoding device 601 Color Difference Phase Transformation Unit 602 Resolution Reverse Conversion Network 603 Color Difference Phase Inverse Transformation Unit 604 4:2:0 to 4:4:4 conversion unit 605 4:4:4 to 4:2:0 conversion unit 606 Switch 6020 Resolution Reverse Conversion Network Part 0 6021 Resolution Reverse Conversion Network Part 1 6022 Resolution Reverse Conversion Network Part 2 6023 Resolution Reverse Conversion Network Part 3 6024 Resolution Reverse Conversion Network Part 4 6025 Resolution Reverse Conversion Network Part 5

Claims

1. 2. A video decoding device that decodes encoded data to generate a decoded image, an image decoding unit that decodes a syntax element that specifies a chrominance sample position of an image, the syntax element being included in the auxiliary extension information; a resolution inverse conversion unit that performs filtering by a neural network using the syntax elements.

2. A video encoding device for encoding an image to generate encoded data, comprising: an image encoding unit that encodes a syntax element that specifies a chrominance sample position of an image, the syntax element being included in the auxiliary extension information; a resolution inverse conversion unit that performs filtering by a neural network using the syntax elements.

Citation Information

Patent Citations

  • Pixel sampling interleave image encoder / decoder

    JP2020005199A

  • HDR image representations using neural network mappings

    WO2019199701A1