Moving image encoding device, video decoding device

By introducing auxiliary information decoding devices and network parameters to restore images in the video encoding device, the problem of low recognition accuracy and transmission rate in the video image encoding method is solved, and efficient image recognition and encoding are achieved.

JP2025014089AInactive Publication Date: 2025-01-29SHARP KK
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2021202161
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2021-12-14
Publication Date
2025-01-29
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

The existing video image encoding and decoding methods have problems such as lower recognition accuracy and low transmission rate in image recognition, and the encoding efficiency is not high enough, making it difficult to achieve low bit rate transmission.

Method used

By introducing auxiliary information decoding devices into the video encoding device, auxiliary information is encoded and decoded to indicate the position, size and type of the image recognition target, and image recognition accuracy is improved using network parameters.

Benefits of technology

Maintaining image recognition accuracy at low transmission rates improves image recognition accuracy and encoding efficiency and reduces processing volume.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025014089000001_ABST
    Figure 2025014089000001_ABST
Patent Text Reader

Abstract

To solve a problem in which, when a moving image is compressed, coded, transmitted, and decoded, and then image recognition processing is performed on the decoded image, especially when the transmission rate is low, the accuracy of image recognition is significantly reduced due to coding distortion contained in the decoded image, and a method of integrating the description of the analysis result of the moving image and the coding of the moving image is not sufficient in terms of coding efficiency, and it is not possible to realize a low transmission bit rate.SOLUTION: A moving image encoding device includes an image decoding device that decodes an image from encoded data, and an auxiliary information decoding device that decodes auxiliary information that indicates at least one of the position, size, and type of a recognition target in the image decoded by the image decoding device.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 managed in a hierarchical structure consisting of slices obtained by dividing images, coding tree units (CTUs) obtained by dividing slices, coding units (sometimes called coding units: CUs) obtained by dividing coding tree units, and transform units (TUs) obtained by dividing coding units, and are coded / 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 describes a video encoding and decoding method with extremely high encoding efficiency.

[0008] Non-Patent Document 2 discusses a method for integrating description of video analysis results and video coding. [Prior art documents] [Non-patent literature]

[0009] [Non-Patent Document 1] ITU-T Recommendation H.266 [Non-Patent Document 2] L.-Y. Duan, J. Liu, W. Yang, T. Huang and W. Gao, “Video Coding for Machines: A Paradigm of Collaborative Compression and Intelligent Analytics,” IEEE Trans.Image Processing, vol.29, pp.8680-8695 Summary of the Invention [Problem to be solved by the invention]

[0010] However, although Non-Patent Document 1 describes a video encoding and decoding method with high coding efficiency, there is a problem in that when image recognition is performed on the decoded video, if the transmission rate is low, coding distortion reduces the image recognition accuracy.

[0011] In addition, Non-Patent Document 2 describes a method for integrating the description of video analysis results and video coding. However, there is a problem that the coding efficiency is insufficient and a low transmission bit rate cannot be realized. [Means for solving the problem]

[0012] A video decoding device according to one aspect of the present invention includes: an image decoding device that decodes an image from encoded data; Decoded by the image decoding device The present invention is characterized by having an auxiliary information decoding device that decodes auxiliary information indicating at least one of the position, size, and type of a recognition target in an image.

[0013] The auxiliary information decoding device is characterized in that it decodes network parameters used for image restoration of the recognition target area as auxiliary information.

[0014] A video encoding device according to one aspect of the present invention comprises: an image encoding device for encoding an input image; an auxiliary information encoding device that encodes auxiliary information indicating at least one of a position, a size, and a type of a recognition target of the input image; The present invention is characterized by having the following.

[0015] The auxiliary information encoding device is characterized in that it encodes network parameters used for image restoration of the recognition target area as auxiliary information. Effect of the Invention

[0016] By using this configuration, the problem of maintaining image recognition accuracy even at low rates can be solved by encoding and decoding additional auxiliary information without significantly changing the framework of the video encoding and decoding method. [Brief description of the drawings]

[0017] [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, in which 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. 13 is a diagram showing an example of a syntax table of SEI of image recognition auxiliary information that defines auxiliary information according to an embodiment. [Figure 15] FIG. 11 is a schematic diagram showing the configuration of another moving image transmission system according to the present embodiment. [Figure 16] FIG. 11 is a diagram showing an example of a syntax table of a network parameter SEI that specifies auxiliary information in one embodiment. [Figure 17] 1 is a diagram showing an example of the configuration of an APS syntax table that defines image recognition auxiliary information according to an embodiment. FIG. [Figure 18]1 is a diagram showing an example of the configuration of an APS syntax table that defines image recognition auxiliary information according to an embodiment. FIG. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

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

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

[0020] The video transmission system 1 is a system that transmits coded data obtained by coding an image, decodes and displays the coded data, and performs image recognition. The video transmission system 1 is made up of a video coding device 10, a network 21, a video decoding device 30, an image display device 41, and an image recognition device 51.

[0021] The video encoding device 10 includes an image encoding device (image encoding unit) 11, an image analysis device (image analysis unit) 61, an auxiliary information creation device (auxiliary information creation unit) 71, and an auxiliary information encoding device (auxiliary information encoding unit) 81.

[0022] The video decoding device 30 includes an image decoding device (image decoding section) 31 and a side information decoding device (side information decoding section) 91.

[0023] The image encoding device 11 compresses and encodes the input video image T.

[0024] The image analysis device 61 analyzes the input video sequence T to obtain information on which area in the picture should be used in the image recognition device 51 , and sends the analysis result to the auxiliary information creation device 71 .

[0025] Based on the analysis results from the image analysis device 61, the auxiliary information creation device 71 generates auxiliary information such as information on whether or not to operate the image recognition device for the picture and in which area of ​​the picture the image recognition device should operate, and sends this to the auxiliary information encoding device 81.

[0026] The auxiliary information encoder 81 encodes the auxiliary information generated by the auxiliary information generator 71 in accordance with a predetermined syntax. The output of the image encoder 11 and the output of the auxiliary information encoder 81 are sent to the network 21 as encoded data Te.

[0027] The video encoding device 10 takes an input image T as input, compresses and encodes the image, and also analyzes the image to generate and encode auxiliary information to be input to an image recognition device 51, generates encoded data Te, and sends it to the network 21.

[0028] In FIG. 1, the side information encoding device 81 is not connected to the image encoding device 11, but the side information encoding device 81 and the image encoding device 11 may communicate necessary information as appropriate.

[0029] The network 21 transmits the coded auxiliary information and the coded data Te to the image decoding device 31. A part or all of the coded auxiliary information may be included in the coded data Te as supplemental extension information SEI. The network 21 may be the Internet, a wide area network, or the like. The network 21 may be 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 encoded data Te is recorded, such as a digital versatile disc (DVD: registered trademark) or a Blu-ray disc (BD: registered trademark).

[0030] The video decoding device 30 receives the encoded data Te transmitted from the network 21, decodes the video Td, and transmits it to the image display device 41 and the image recognition device 51. It also decodes auxiliary information and outputs it to the image recognition device 51.

[0031] The image decoding device 31 decodes each of the encoded data Te transmitted by the network 21 to generate a decoded video image Td, and supplies the decoded video image Td to the image display device 41 and the image recognition device 51.

[0032] The auxiliary information decoding device 91 decodes the encoded auxiliary information transmitted by the network 21 to generate auxiliary information, and sends it to the image recognition device 61 .

[0033] In Fig. 1, the auxiliary information decoding device 91 is illustrated separately from the image decoding device 31, but the auxiliary information decoding device 91 may be included in the image decoding device 31. For example, the auxiliary 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 auxiliary information decoding device 91 and the image decoding device 31 may communicate necessary information as appropriate.

[0034] The image display device 41 displays all or a part of the decoded video image Td input from the image decoding device 31. 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.

[0035] The image recognition device 51 uses the decoded video image Td decoded by the image decoding device 31 and the auxiliary information decoded by the auxiliary information decoding device 91 to perform image object detection, object region segmentation, object tracking, action recognition, human action evaluation, etc.

[0036] With this configuration, a framework is provided that can maintain image recognition accuracy even at low rates by encoding and decoding additional auxiliary information without significantly changing the framework of the video encoding and decoding method.

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

[0038] >> is a right bit shift, << is a left bit shift, & is a bitwise AND, | is 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).

[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 (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 decimal part).

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

[0047] Fig. 4 is a diagram showing a hierarchical structure of data in the coded data Te. The coded data Te illustratively includes a sequence and a plurality of pictures constituting the sequence. Fig. 4 shows a diagram showing a coded video sequence that defines the sequence SEQ, a coded picture that defines the picture PICT, a coded slice that defines the slice S, coded slice data that defines the slice data, a coding tree unit included in the coded slice data, and a coding unit included in the coding tree unit.

[0048] (Coded Video Sequence) In the coded video sequence, a set of data to be referred to by the image decoding device 31 in order to decode the sequence SEQ to be processed is defined. As shown in Fig. 4, the sequence SEQ includes a video parameter set VPS (Video Parameter Set), a sequence parameter set SPS (Sequence Parameter Set), a picture parameter set PPS (Picture Parameter Set), an adaptation parameter set (APS), a picture PICT, and supplemental enhancement information SEI (Supplemental Enhancement Information).

[0049] The video parameter set VPS specifies a set of coding parameters common to multiple videos composed of multiple layers, as well as a set of coding parameters related to multiple layers and each individual layer included in the video.

[0050] 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 specified. Note that there may be multiple SPSs. In that case, one of the multiple SPSs is selected from the PPS.

[0051] Here, the sequence parameter set SPS includes the following syntax elements:

[0052] ref_pic_resampling_enabled_flag is a flag that specifies whether or not to use a function (resampling) that changes the resolution when decoding each image included in a single sequence that references the target SPS. In other words, the 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 the flag is 1, the resampling is applied, and when the value is 0, the resampling is not applied.

[0053] pic_width_max_in_luma_samples is a syntax element that specifies the width of the image with the largest width 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). where MinCbSizeY is a value determined by the minimum size of a luminance block.

[0054] "pic_height_max_in_luma_samples" is a syntax element that 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 is required to be a non-zero integer multiple of Max(8, MinCbSizeY).

[0055] sps_temporal_mvp_enabled_flag is a flag that specifies whether or not to use temporal motion vector prediction when decoding a target sequence. If the value of the flag is 1, temporal motion vector prediction is used, and if the value is 0, temporal motion vector prediction is not used. In addition, by specifying the flag, it is possible to prevent the coordinate position to be referenced from shifting when referring to a reference picture with a different resolution, etc.

[0056] The picture parameter set PPS specifies a set of coding parameters that the image decoding device 31 refers to in order to decode each picture in the target sequence. For example, the picture parameter set PPS includes a reference value of the quantization width (pic_init_qp_minus26) used in decoding the picture and a flag (weighted_pred_flag) indicating the application of weighted prediction. Note that there may be multiple PPSs. In that case, one of the multiple PPSs is selected for each picture in the target sequence.

[0057] Here, the picture parameter set PPS includes the following syntax elements:

[0058] pic_width_in_luma_samples is 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.

[0059] pic_height_in_luma_samples is 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.

[0060] conformance_window_flag is a flag indicating whether conformance (cropping) window offset parameters will be signaled subsequently and where to display the conformance window. If this flag is 1, the parameters will be signaled, if it is 0, the conformance window offset parameters are not present.

[0061] conf_win_left_offset, conf_win_right_offset, conf_win_top_offset, and conf_win_bottom_offset are offset values ​​for specifying the left, right, top, and bottom positions of a picture output by a decoding process with respect to a rectangular area specified by the output picture coordinates. In addition, when 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.

[0062] The scaling_window_flag is 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.

[0063] scaling_win_left_offset, scaling_win_right_offset, scaling_win_top_offset, and scaling_win_bottom_offset are syntax elements that specify the offsets applied to the image size for scaling ratio calculation in luma sample units for the left, right, top, and bottom positions of the target picture, respectively. In addition, 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 presumed to be 0. In addition, it is 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.

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

[0065] 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) Fig. 5 is a conceptual diagram of an image to be processed in the video transmission system 1, showing changes in the resolution of the image over time. However, in Fig. 5, no distinction is made as to whether the image is encoded or not. Fig. 5 shows an example in which an image is transmitted to the image decoding device 31 while adaptively changing the resolution using a picture parameter set PPS in the process of the video transmission system 1.

[0066] (Encoded Picture) A coded picture defines a set of data to be referenced by the image decoding device 31 in order to decode a picture PICT to be processed. As shown in Fig. 4, the picture PICT includes a picture header PH and slices 0 to NS-1 (NS is the total number of slices included in the picture PICT).

[0067] Hereinafter, when there is no need to distinguish between slices 0 to NS-1, the subscripts of the symbols may be omitted. The same applies to other data that are included in the coded data Te described below and have subscripts.

[0068] The picture header contains the following syntax elements:

[0069] pic_temporal_mvp_enabled_flag is a flag that specifies whether or not temporal motion vector prediction is used for inter prediction of a slice associated with the picture header. If the value of the flag is 0, the syntax elements of the slice associated with the picture header are restricted so that temporal motion vector prediction is not used in decoding the slice. If the value of the flag is 1, it indicates that temporal motion vector prediction is used in decoding the slice associated with the picture header. If the flag is not specified, the value is presumed to be 0.

[0070] (Coded Slice) A coded slice defines a set of data to be referenced by the image decoding device 31 in order to decode a target slice S. As shown in Fig. 4, a slice includes a slice header and slice data.

[0071] 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 a slice type is an example of a coding parameter included in the slice header.

[0072] The slice types that can be specified by the slice type specification information are: (1) Examples of inter-prediction include (1) an I slice that uses only intra-prediction for coding, (2) a P slice that uses uni-prediction (L0 prediction) or intra-prediction for coding, and (3) a B slice that uses uni-prediction (L0 prediction or L1 prediction), bi-prediction, or intra-prediction for coding. 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.

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

[0074] (Encoded slice data) The coded slice data specifies a set of data to be referenced by the image decoding device 31 in order to decode the slice data to be processed. As shown in the coded slice header in Fig. 4, the slice data includes a CTU. A CTU is a block of a fixed size (e.g., 64x64) that constitutes a slice, and is also called a Largest Coding Unit (LCU).

[0075] (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.

[0076] CT includes, as CT information, a CU split flag (split_cu_flag) indicating whether CT splitting is performed, a QT split flag (qt_split_cu_flag) indicating whether QT splitting is performed, an MT split direction (mtt_split_cu_vertical_flag) indicating the split direction of MT splitting, and an MT split type (mtt_split_cu_binary_flag) indicating the split type of MT splitting. split_cu_flag, qt_split_cu_flag, mtt_split_cu_vertical_flag, and mtt_split_cu_binary_flag are transmitted for each encoding node.

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

[0078] (Encoding Unit) 4 specifies a set of data to be referred to by the image decoding device 31 in order to decode a coding unit to be processed. Specifically, a CU is composed of a CU header CUH, prediction parameters, transformation parameters, quantization transformation coefficients, etc. The CU header specifies a prediction mode, etc.

[0079] The prediction process may be performed on a CU basis, or on a sub-CU basis by further dividing a CU. If the size of a CU and a sub-CU are the same, there is one sub-CU in the CU. If the size of a CU is larger than that of a 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 2 parts horizontally and 2 parts vertically, into 4 sub-CUs.

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

[0081] The transform and quantization processes are performed in units of CUs, but the quantized transform coefficients may be entropy coded in units of sub-blocks such as 4x4.

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

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

[0084] Syntax elements for deriving inter-prediction parameters include, for example, an affine flag affine_flag used in merge mode, a merge flag merge_flag, a merge index merge_idx, an MMVD flag mmvd_flag, an inter-prediction identifier inter_pred_idc for selecting a reference picture to be used in AMVP mode, a reference picture index refIdxLX, a prediction vector index mvp_LX_idx for deriving a motion vector, a difference vector mvdLX, and a motion vector precision mode amvr_mode.

[0085] (See 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 a picture B3 (target picture). A reference picture list is a list indicating 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.

[0086] (Configuration of an image decoding device) The configuration of an image decoding device 31 (FIG. 7) according to this embodiment will be described.

[0087] 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, a prediction image generating unit (prediction image generating device) 308, an inverse quantization and inverse transform unit 311, an adder 312, and a prediction parameter derivation unit 320. Note that, in accordance with the image encoding device 11 described below, the image decoding device 31 may also be configured not to include the loop filter 305.

[0088] The parameter decoding unit 302 further includes a header decoding unit 3020, a CT information decoding unit 3021, and a CU decoding unit 3022 (prediction mode decoding unit), and 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.

[0089] In cases other than the skip mode (skip_mode==0), the TU decoding unit 3024 decodes the QP update information and the quantized prediction error from the encoded data. More specifically, in cases of skip_mode==0, the TU decoding unit 3024 decodes a 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, it derives 0.

[0090] The TU decoding unit 3024 decodes an index mts_idx indicating a transformation base from the coded data. The TU decoding unit 3024 also decodes an index stIdx indicating the use of a secondary transformation and a transformation base from the coded data. When stIdx is 0, it indicates no application of a secondary transformation, when it is 1, it indicates one transformation of a set (pair) of secondary transformation bases, and when it is 2, it indicates the other transformation of the pair.

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

[0092] The predicted image generating unit 308 includes an inter predicted image generating unit 309 and an intra predicted image generating unit 310 .

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

[0094] In addition, although an example in which CTU and CU are used as processing units will be described below, the present invention is not limited to this example, and processing may be performed in sub-CU units. Alternatively, CTU and CU may be read as blocks, and sub-CU as sub-blocks, and processing may be performed in block or sub-block units.

[0095] The entropy decoding unit 301 performs entropy decoding on the coded data Te input from the outside, and decodes each code (syntax element). There are two types of entropy coding: a method of variable-length coding the syntax element using a context (probability model) adaptively selected according to the type of syntax element and surrounding circumstances, and a method of variable-length coding the syntax element 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 decoding unit 301 initializes all CABAC states at the beginning of a segment (tile, CTU row, slice). The entropy decoding unit 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 that do not use a context are decoded with equal probability (EP, bypass), and the derivation of ctxInc and the CABAC state are omitted. The decoded syntax elements include prediction information for generating a predicted image and a prediction error for generating a difference image.

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

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

[0098] (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.

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

[0100] Thereafter, the image decoding device 31 repeats the processes from S1300 to S5000 for each CTU included in the target picture to derive a decoded image of each CTU.

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

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

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

[0104] (S1510: Decoding CU information) The CU decoding unit 3022 decodes the CU information, prediction information, the TU split flag split_transform_flag, the CU residual flags cbf_cb, cbf_cr, cbf_luma, and the like from the encoded data.

[0105] (S1520: TU information decoding) When a prediction error is included in a TU, the TU decoding unit 3024 decodes the QP update information, the quantization prediction error, and the transform index mts_idx from the encoded data. Note that the QP update information is a difference value from the quantization parameter predicted value qPpred, which is a predicted value of the quantization parameter QP.

[0106] (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.

[0107] (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.

[0108] (S4000: Generate decoded image) The adder 312 adds the predicted image supplied from the predicted image generation unit 308 and the prediction error supplied from the inverse quantization and inverse transform unit 311 to generate a decoded image of the current CU.

[0109] (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.

[0110] (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 derives inter prediction parameters by referring to the prediction parameters stored in the prediction parameter memory 307 based on the syntax elements input from the parameter decoding unit 302. In addition, the inter prediction parameters are output to the inter prediction image generation unit 309 and the prediction parameter memory 307. The inter prediction parameter derivation unit 303 and its internal elements, the AMVP prediction parameter derivation unit 3032, the merge prediction parameter derivation unit 3036, the affine prediction unit 30372, the MMVD prediction unit 30373, the GPM unit 30377, the DMVR unit 30537, and the MV addition unit 3038, are means common to the image encoding device and the image decoding device, and therefore may be collectively referred to as a motion vector derivation unit (motion vector derivation device).

[0111] The scale parameter derivation unit 30378 derives the horizontal scaling ratio RefPicScale[i][j][0] of the reference picture, the vertical scaling ratio RefPicScale[i][j][1] of the reference picture, 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 the value of the L0 reference picture list or the L1 reference picture y list, as follows:

[0112] RefPicScale[i][j][0] = ((fRefWidth << 14)+(PicOutputWidthL >> 1)) / PicOutputWidthL RefPicScale[ i ][ j ]

[0001] = ((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 a value used when calculating a horizontal scaling ratio when a coded picture is referenced, and is the value obtained by subtracting left and right offset values ​​from the number of pixels in the horizontal direction of the luminance of the coded picture. The variable PicOutputHeightL is a value used when calculating a vertical scaling ratio when a coded picture is referenced, and is the value obtained by subtracting top and bottom offset values ​​from the number of pixels in the vertical direction of the luminance of the coded picture. The variable fRefWidth is the value of PicOutputWidthL of the reference picture with reference list value j in list i, and the variable fRefHight is the value of PicOutputHeightL of the reference picture with reference picture list value j in list i.

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

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

[0115] If gpm_flag is 1, i.e., indicates Geometric Partitioning Mode, the GPM unit 30377 derives the GPM parameters.

[0116] When merge_flag is 1, that is, when it indicates the merge prediction mode, merge_idx is derived and output to the merge prediction parameter derivation unit 3036 .

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

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

[0119] (Affine prediction part) The affine prediction unit 30372 1) derives motion vectors for two control points CP0 and CP1, or three control points CP0, CP1, and CP2 of the target block, 2) derives affine prediction parameters for the target block, and 3) derives motion vectors for each sub-block from the affine prediction parameters.

[0120] (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 and a merge candidate selection unit 30362. Note that a merge candidate includes prediction parameters (predFlagLX, mvLX, refIdxLX), and is stored in a merge candidate list. An index is assigned to the merge candidates stored in the merge candidate list according to a predetermined rule.

[0121] The merge candidate derivation unit 30361 derives merge candidates by directly using the motion vectors and refIdxLX of the decoded adjacent blocks. In addition, the merge candidate derivation unit 30361 may apply a spatial merge candidate derivation process, a temporal merge candidate derivation process, a pairwise merge candidate derivation process, and a zero merge candidate derivation process, which will be described later.

[0122] (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 skip_flag is 1, the DMVR unit 30375 corrects the mvLX of the target CU derived by the merge prediction unit 30374 using a reference image. Specifically, when the prediction parameters derived by the merge prediction unit 30374 are bi-predictive, the DMVR unit 30375 corrects the motion vector using a predicted image derived from a motion vector corresponding to two reference pictures. The corrected mvLX is supplied to the inter-prediction image generation unit 309.

[0123] (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 stores the candidate in a prediction vector candidate list mvpListLX[].

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

[0125] (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 the prediction parameter memory 307.

[0126] mvLX[0] = mvpLX[0] + mvdLX[0] mvLX[1] = mvpLX[1] + mvdLX[1] (Detailed classification of subblock merges) The types of prediction processes related to sub-block merging are summarized below. As described above, they are roughly divided into merge prediction and AMVP prediction.

[0127] Merge predictions are further categorized as follows:

[0128] Normal merge prediction (block-based merge prediction) Sub-block merge prediction Sub-block merge prediction is further categorized as follows:

[0129] Sub-block prediction (ATMVP) Affine prediction Inferred affine prediction · Constructed affine prediction On the other hand, AMVP predictions are categorized as follows:

[0130] ·AMVP (translation) ·MVD affine prediction MVD affine prediction is further categorized as follows:

[0131] 4-parameter MVD affine prediction 6-parameter MVD affine prediction It should be noted that MVD affine prediction refers to affine prediction that uses a decoded difference vector.

[0132] In the sub-block prediction, similarly to the temporal merge derivation process, the availability of the co-located sub-block COL of the target sub-block, availableFlagSbCol, is determined, and if available, prediction parameters are derived. At least when the above-mentioned SliceTemporalMvpEnabledFlag is 0, availableFlagSbCol is set to 0.

[0133] MMVD prediction (Merge with Motion Vector Difference) may be classified as merge prediction or AMVP prediction. In the former case, mmvd_flag and MMVD-related syntax elements are decoded when merge_flag=1, and in the latter case, mmvd_flag and MMVD-related syntax elements are decoded when merge_flag=0.

[0134] The loop filter 305 is a filter provided in the encoding loop, which removes block distortion and ringing distortion to improve image quality. The loop filter 305 applies a filter such as a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF) to the decoded image of the CU generated by the adder 312.

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

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

[0137] The predicted image generating unit 308 receives parameters derived by the prediction parameter derivation unit 320. The predicted image generating unit 308 also reads a reference picture from the reference picture memory 306. The predicted image generating unit 308 generates a predicted image of a block or sub-block using the parameters and a reference picture (reference picture block) in a prediction mode indicated by predMode. Here, the reference picture block is a set of pixels on the reference picture (usually rectangular, so called a block), and is an area referenced to generate a predicted image.

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

[0139] 11 is a schematic diagram showing a configuration of an inter-prediction image generation unit 309 included in the prediction image generation unit 308 according to this embodiment. The inter-prediction image generation unit 309 includes a motion compensation unit (prediction image generation device) 3091 and a synthesis unit 3095. 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.

[0140] (Motion Compensation) The motion compensation unit 3091 (interpolated image generation unit 3091) generates an interpolated image (motion compensated image) by reading a reference block from the reference picture memory 306 based on the inter prediction parameters (predFlagLX, refIdxLX, mvLX) input from the inter prediction parameter derivation unit 303. The reference block is a block at a position shifted by mvLX from the position of the target block on the reference picture RefPicLX specified by refIdxLX. Here, if mvLX is not integer precision, a filter for generating pixels at decimal positions called a motion compensation filter is applied to generate an interpolated image.

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

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

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

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

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

[0146] In addition, the motion compensation unit 3091 has the function of scaling the interpolated image according to the horizontal scaling ratio RefPicScale[i][j][0] of the reference picture derived by the scale parameter derivation unit 30378 and the vertical scaling ratio RefPicScale[i][j][1] of the reference picture.

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

[0148] (IntraInter synthesis processing) The IntraInter synthesis unit 30951 generates a predicted image by a weighted sum of an inter predicted image and an intra predicted image.

[0149] If the flag ciip_flag indicating whether to apply IntraInter blending processing is 1, the pixel value predSamplesComb[x][y] of the predicted image is derived as follows.

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

[0151] The weight w is derived as follows:

[0152] When the bottommost block (A1 in FIG. 9) adjacent to the left of the current coding block and the rightmost block (B1 in FIG. 9) adjacent to the top of the current coding block are both intra blocks, w is set to 3.

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

[0154] Otherwise, w is set to 2.

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

[0156] (BDOF prediction) Next, a description will be given of BDOF prediction (Bi-Directional Optical Flow, BDOF processing) performed by the BDOF unit 30954. In a bi-prediction mode, the BDOF unit 30954 generates a predicted image by referring to two predicted images (a first predicted image and a second predicted image) and a gradient correction term.

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

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

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

[0160] The adder 312 generates a decoded image of the block by adding, 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. 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.

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

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

[0163] (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 transformation and quantization unit 103, an inverse quantization and inverse transformation unit 105, an addition unit 106, a loop filter 107, a prediction parameter memory (prediction parameter storage unit, frame memory) 108, a reference picture memory (reference image storage unit, frame memory) 109, an encoding parameter determining unit 110, a parameter encoding unit 111, a prediction parameter derivation unit 120, and an entropy encoding unit 104.

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

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

[0166] The transform / quantization unit 103 calculates transform coefficients by frequency transforming the prediction errors input from the subtraction unit 102, and derives quantized transform coefficients by quantizing the prediction errors. The transform / quantization unit 103 outputs the quantized transform coefficients to the parameter coding unit 111 and the inverse quantization / inverse transform unit 105.

[0167] The inverse quantization and inverse transform unit 105 is the same as the inverse quantization and inverse transform unit 311 (FIG. 7) in the image decoding device 31, and a description thereof will be omitted. The calculated prediction error is output to the addition unit .

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

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

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

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

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

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

[0174] The entropy coding unit 104 receives the quantized transform coefficients and coding parameters (division information, prediction parameters) from the parameter coding unit 111. The entropy coding unit 104 entropy codes these to generate and output coded data Te.

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

[0176] (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.

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

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

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

[0180] However, unlike the image decoding device, the inputs to the inter prediction parameter derivation unit 303 and the intra prediction parameter derivation unit 304 are the coding parameter determination unit 110 and the prediction parameter memory 108 , and they are output to the parameter coding unit 111 .

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

[0182] 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 have to include the above three types of filters, and may be configured, for example, as only a deblocking filter.

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

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

[0185] The coding parameter determination unit 110 selects one set from among a plurality of sets of coding 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 generation unit 101 generates a predicted image using these coding parameters.

[0186] The coding parameter determination unit 110 calculates an RD cost value indicating the amount of information and the coding error for each of the multiple sets. The RD cost value is calculated by multiplying the code amount and the square error by a coefficient λ, for example. The coding amount is the amount of information of the coded data Te obtained by entropy coding the quantization error and the coding parameters. The squared error is the sum of the squares of the prediction errors calculated in the subtraction unit 102. The coefficient λ is a preset real number greater than zero. The coding parameter determination unit 110 selects a set of coding parameters that minimizes the calculated cost value. The coding parameter determination unit 110 outputs the determined coding parameters to the parameter coding unit 111 and the prediction parameter derivation unit 120.

[0187] Non-Patent Document 1 describes a video encoding and decoding method with extremely high coding efficiency. However, when performing image recognition on decoded images of compressed video, there is a problem in that the accuracy of image recognition decreases due to coding distortion when the transmission rate is low.

[0188] In addition, Non-Patent 2 discusses a method of integrating the description of video analysis results with video coding, but there was an issue that the coding efficiency was insufficient and it was not possible to achieve low transmission bit rates.

[0189] In this embodiment, a framework is provided that can maintain image recognition accuracy even at low rates by encoding and decoding additional auxiliary information without significantly changing the framework of the video encoding and decoding method.

[0190] (Image Recognition Assistance SEI) 14 is a diagram showing one form of the syntax of the auxiliary information encoded and decoded by the auxiliary information encoding device 81 and the auxiliary information decoding device 91 of this embodiment. In this example, an SEI called "image_recognition_hint_sei_message" is shown. This SEI is intended to improve the recognition accuracy and reduce the amount of processing when the image recognition device processes the picture. To this end, this SEI message encodes and decodes at least one of the type, position, and size of the recognition target for the picture as auxiliary information, and has the number of bytes equal to the value of payloadSize.

[0191] The syntax, syntax elements, and semantics of the image_recognition_hint_sei_message in this embodiment will be described below.

[0192] The image_recognition_idc is an index value that indicates the type of image recognition processing. If the value of image_recognition_idc is 0, the picture is considered to have no recognition target, and information on the recognition area is not described. In this example, if the value of image_recognition_idc is 1, information on the recognition target is described. Note that image_recognition_idc may include additional syntax elements of auxiliary information depending on the type of image recognition processing.

[0193] number_of_region_minus1 is a syntax element that represents the number of recognition regions minus 1. Information on the type, position, and size of the recognition target is described for the number of regions whose values ​​are equal to or greater than number_of_region_minus1 plus 1.

[0194] The region_id is an index value that indicates the type of recognition target. The allocation of index values ​​is determined according to the recognition target in the image recognition device 51. For example, when detecting a person with the image recognition device 51, if the value of the region_id is 0, the recognition target indicates a person, and if the value of the region_id is 1, the recognition target indicates something else. For example, when recognizing a person, a bicycle, and a car with the image recognition device 51, if the value of the region_id is 0, the recognition target indicates a person, if the value of the region_id is 1, the recognition target indicates a bicycle, if the value of the region_id is 3, the recognition target indicates a car, and if the value of the region_id is 4, the recognition target indicates something else.

[0195] region_x and region_y are syntax elements that indicate the position of the recognition target. region_x is the x coordinate value (horizontal direction) of the luminance of the top left of the rectangular region. region_y is the y coordinate value (vertical direction) of the luminance of the top left of the rectangular region. region_x and region_y may also be relative positions within the screen. For example, they may be positions within the screen when the screen size is normalized to a predetermined fixed size (e.g., 512x512).

[0196] region_width and region_hight are syntax elements that indicate the size of the recognition correspondence. region_width is the number of pixels of luminance in the horizontal direction of the rectangular region. Note that the value of region_x+region_width must not exceed the number of pixels in the horizontal direction of the picture. region_hight is the number of pixels of luminance in the vertical direction of the rectangular region. Note that the value of region_y+region_height must not exceed the number of pixels in the vertical direction of the picture.

[0197] In this embodiment, the recognition target region is expressed as a rectangle by the coordinate value of the top left corner of the rectangle and the number of pixels in the horizontal and vertical directions, but the recognition target region may be expressed in another way. For example, the position information (region_x, region_y) of the recognition target may be the top right, bottom left, bottom right, or center of gravity instead of the top left. Also, the size of the region (region_width, region_height) may be limited to a square other than a rectangle, and only the number of pixels on one side (region_size) may be specified. Alternatively, the position and size may be specified in 4x4 or 16x16 units, or the CTU address and the number of CTUs, which are the encoding units, instead of in pixel units.

[0198] rbsp_trailing_bits() adds 1 to 8 bits of data so that the number of bits in the SEI is in bytes, and the number of bytes in the SEI matches the value of payloadSize.

[0199] The image analysis device 61 analyzes the input video image T to detect candidates for recognition. In this case, in order to reduce the amount of processing, it is sufficient to have the accuracy as a candidate for recognition. In addition, when the position of the recognition target in the picture can be estimated, such as in a fixed camera image, the image analysis device 61 may set the detection target area in advance.

[0200] The auxiliary information generating unit 71 converts the rectangular area information of the recognition target candidate detected by the image analyzing unit 61 into information on the position within the picture and the size of the rectangle, and sends it to the auxiliary information encoding unit 81.

[0201] Alternatively, the output of the auxiliary information creating device 71 may be input to the image coding device 11. In this case, the image coding device 11 may control the image quality of the area portion of the recognition target candidate created by the auxiliary information creating unit 71. For example, the image quality may be increased by using a quantization parameter with a smaller value than other areas in the picture. By doing so, it is possible to improve the recognition accuracy.

[0202] In addition to the decoded video Td, information on the type, position, and size of the recognition target in the picture is input to the image recognition device 51 as auxiliary information. As a result, it is possible to process only the pixels in the area of ​​the recognition target candidate without using all the information in the picture, and therefore the amount of processing can be significantly reduced. In addition, since the types of the recognition target candidates can be limited in advance, the recognition accuracy can be improved. Furthermore, if the image quality of the decoded image in the recognition target area is improved, the recognition accuracy is improved.

[0203] According to this embodiment, even when a decoded image coded at a low rate is used, it is possible to improve the image recognition accuracy in the image recognition device 51 and reduce the amount of processing required for image recognition.

[0204] (Configuration of another video transmission system) FIG. 15 is a schematic diagram showing the configuration of another moving image transmission system according to this embodiment.

[0205] The video transmission system 1 is a system that transmits coded data obtained by coding an image, decodes and displays the coded data, and performs image recognition. The system comprises a video encoding device 10, a network 21, a video decoding device 30, an image display device 41, and an image recognition device 51.

[0206] The video encoding device 10 is composed of an image encoding device (image encoding unit) 11, an image analysis device (image analysis unit) 61, an auxiliary information creation device (auxiliary information creation unit) 71, an auxiliary information encoding device (auxiliary information encoding unit) 81, and a pre-image processing device (pre-image processing unit) 1001.

[0207] The video decoding device 30 includes an image decoding device (image decoding section) 31, a side information decoding device (side information decoding section) 91, and a post-image processing device (host image processing section) 1002.

[0208] The pre-image processing device 1001 performs pre-image processing on the input video sequence T, and sends a pre-processed image Tp to the image coding device 11 and the auxiliary information generating device 71 .

[0209] As one example of a specific embodiment, information on the candidate recognition targets output by the auxiliary information creation device 71 may be input to a pre-image processing device 1001, and low-pass filtering may be performed on the areas other than the candidate recognition targets to reduce the difficulty of encoding and relatively improve the image quality of the candidate recognition target areas.

[0210] The image coding device 11 compresses and codes the output Tp of the pre-image processing device 1001 .

[0211] The image analysis device 61 analyzes the input video sequence T to obtain information on which area in the picture should be used in the image recognition device 51 , and sends the analysis result to the auxiliary information creation device 71 .

[0212] Based on the analysis results from the image analysis device 61 and the pre-image processing Tp from the pre-image processing device 1001, the auxiliary information creation device 71 generates auxiliary information such as information on whether or not to operate the image recognition device 51 for the picture and on which area of ​​the picture the image recognition device 51 should operate, and sends the auxiliary information to the auxiliary information encoding device 81.

[0213] The auxiliary information encoder 81 encodes the auxiliary information generated by the auxiliary information generator 71 in accordance with a predetermined syntax. The output of the image encoder 11 and the output of the auxiliary information encoder 81 are sent to the network 21 as encoded data Te.

[0214] The video encoding device 10 takes an input image T as input, compresses and encodes the image, and also analyzes the image to generate and encode auxiliary information to be input to an image recognition device 51, generates encoded data Te, and sends it to the network 21.

[0215] In FIG. 15, the side information encoding device 81 is not connected to the image encoding device 11, but the side information encoding device 81 and the image encoding device 11 may communicate necessary information as appropriate.

[0216] The network 21 transmits the coded auxiliary information and the coded data Te to the image decoding device 31. A part or all of the coded auxiliary information may be included in the coded data Te as auxiliary extension information SEI. 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 bidirectional communication network, and may be a unidirectional 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 coded data Te is recorded, such as a DVD (Digital Versatile Disc: registered trademark) or a BD (Blue-ray Disc: registered trademark).

[0217] The video decoding device 30 receives the encoded data Te sent from the network 21, decodes the image and auxiliary information, and sends the decoded information to the image display device 41 and the image recognition device 51. In addition, the auxiliary information is decoded and output to the image recognition device 51.

[0218] The image decoding device 31 decodes each of the encoded data Te transmitted by the network 21 to generate a decoded video image Td, and supplies the decoded video image Td to the image post-processing device 1002 .

[0219] The auxiliary information decoding device 91 decodes the encoded auxiliary information transmitted by the network 21 to generate auxiliary information, and sends it to the image recognition device 61 .

[0220] 15, the auxiliary information decoding device 91 is illustrated separately from the image decoding device 31, but the auxiliary information decoding device 91 may be included in the image decoding device 31. For example, the auxiliary 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. 15, the auxiliary information decoding device 91 and the image decoding device 31 may communicate necessary information as appropriate.

[0221] The image post-processing device 1002 performs post-image processing on the decoded image Td that is the output of the image decoding device 31, and outputs the post-image processing result To.

[0222] As one example of a specific embodiment, post-image processing using a neural network may be performed to improve the image quality of the decoded video Td. At this time, network parameters for improving the image quality are input as auxiliary information from the auxiliary information decoding device 91 and used in the post-image processing.

[0223] The image display device 41 displays all or part of the post-processed image To output from the post-image processing device 1002. 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 a high-quality image, and when it has only low processing power, it displays an image that does not require high processing power or display power.

[0224] The image recognition device 51 uses the post-processed image To output from the post-image processing device 1002 and the auxiliary information decoded by the auxiliary information decoding device 91 to perform image object detection, object region segmentation, object tracking, action recognition, human action evaluation, etc.

[0225] With this configuration, a framework is provided that can maintain image recognition accuracy even at low rates by encoding and decoding additional auxiliary information without significantly changing the framework of the video encoding and decoding method.

[0226] (Image recognition post-processing SEI) 16 is a diagram showing one form of syntax for encoding and decoding auxiliary information by the auxiliary information encoding device 81 and the auxiliary information decoding device 91 of this embodiment. In this example, an SEI called image_recognition_post_processing_sei_message is shown. This SEI is intended to perform post-image processing on the picture by the post-image processing device 1002 and to improve the recognition accuracy when the image recognition device 51 performs image recognition processing. To this end, this is an SEI message that encodes and decodes network parameters for post-image processing as auxiliary information, and has the number of bytes of the value of payloadSize.

[0227] The syntax, syntax elements, and semantics of the image_recognition_post_processing_sei_message in this embodiment will be described below.

[0228] The region_id is an index value that indicates the type of recognition target, the same as in FIG. 14. The allocation is determined according to the recognition target in the image recognition device 51. Alternatively, it may be defined as an index value that identifies an area for each recognition target within the screen.

[0229] nnr_payload_byte is the network parameter information, which is a value expressed in bytes as coded data of the network parameters used for post-image processing. The length of the coded data is (payloadSize-1) bytes.

[0230] payloadSize is a number representing the number of bytes of data in SEI.

[0231] Neural network parameters are encoded and decoded as parameter representations of the neural network in standard formats such as ONNX (Open Neural Network eXchange), NNEF (Neural Network Exchange Format), and MPEG NNC (Moving Picture Experts Group Neural Network Coding), or library-dependent formats such as tensorflow and pytorch.

[0232] Furthermore, generic network parameters may be held in common by the auxiliary information creating device 71, the auxiliary information encoding device 81, and the auxiliary information decoding device 91. The auxiliary information creating device 71 may create network parameters for partially updating the commonly held generic network as auxiliary information, which may then be encoded by the auxiliary information encoding device 81 and decoded by the auxiliary information decoding device 91. With this configuration, the amount of code for the auxiliary information can be reduced, and auxiliary information corresponding to the input image T can be created, encoded, and decoded.

[0233] In addition, in order to support multiple formats as the transmission format of the network parameters, a parameter (identifier) ​​indicating the format may be sent. Furthermore, the actual auxiliary information following the identifier may be transmitted as a byte string.

[0234] The auxiliary information of the network parameters decoded by the auxiliary information decoder 91 is input to a post-image processor 1002 .

[0235] The image post-processing unit 1002 uses the decoded auxiliary information to perform post-image processing using a neural network, thereby restoring the decoded video sequence Td.

[0236] In addition, post-image processing may be performed only on the recognition target candidate region using the region_id information of the image recognition assistance SEI together with the auxiliary information of the image recognition assistance SEI shown in FIG.

[0237] This improves the image quality of the decoded video image Td on the decoded image side, and also improves the recognition accuracy of the image recognition device. In addition, the encoding and decoding of network parameters is not limited to SEI, and syntax such as SPS, PPS, APS, and slice header may be used.

[0238] The auxiliary encoding device 81 encodes the auxiliary information based on the syntax table of Figure 14, Figure 16, or Figure 17 and Figure 18. In the case of the syntax table of Figure 14 or Figure 16, the auxiliary information is encoded as auxiliary extension information SEI, multiplexed into the encoded data Te output by the image encoding device 11, and output to the network 21. In the case of the syntax tables of Figures 17 and 18, the auxiliary information is encoded as APS, and output as part of the encoded data Te output by the image encoding device 11.

[0239] The auxiliary information decoder 91 decodes the auxiliary information from the coded data Te based on the syntax tables of Figs. 14, 16, or 18 and 19, and sends the decoded result to the post-image processing device 1002 and the image recognition device 51. In the case of the syntax tables of Figs. 14 and 16, the auxiliary information decoder 91 decodes the auxiliary information coded as auxiliary extension information SEI. In the case of the syntax tables of Figs. 17 and 18, the auxiliary information decoder 91 decodes the auxiliary information coded as auxiliary extension information SEI. An information decoding device 91 decodes the auxiliary information coded as the APS.

[0240] The image post-processing device 1002 performs post-image processing on the decoded video image Td using the decoded video image Td and the auxiliary information, and generates a post-image processing image To.

[0241] (Image Recognition Auxiliary Information APS) Fig. 17 is a diagram showing an example of a syntax table in which an APS (Adaptive Parameter Set) for image recognition extension in the present embodiment is extended. As shown in Fig. 18, the following syntax elements can be included.

[0242] aps_extension_flag is a flag indicating the presence of APS extension data. When aps_extension_flag is 1, image_recognition_extension_flag is coded. When aps_extension_flag is 0, no APS extension data exists, so image_recognition_extension_flag is not coded and is assumed to be 0.

[0243] The image_recognition_extension_flag is a flag indicating that image recognition extension data exists. It is also a flag indicating whether or not to encode and decode the syntax of image_recognition_extension_data(). When image_recognition_extension_flag is 1, the syntax of image_recognition_extension_data() is encoded and decoded. The image_recognition_extension_data() is a syntax that includes image recognition auxiliary information.

[0244] 18 shows an example of the syntax of image_recognition_extension_data(), which is one of the extension information of APS. image_recognition_extension_data() includes network parameter information used for image recognition extension.

[0245] The purpose of this APS extension data is to improve the recognition accuracy and reduce the amount of processing when an image recognition device processes the picture. To achieve this, the type, position, and size of the recognition target for the picture are described as auxiliary information.

[0246] The syntax, syntax elements, and semantics of image_recognition_extension_data() will be described below as an example in this embodiment.

[0247] The image_recognition_idc is an index value indicating the type of image recognition processing. If the value of the image_recognition_idc is 0, the picture is considered to have no recognition target, and the recognition area information and the network parameter information for post-image processing are not described. In this example, if the value of the image_recognition_idc is 1, the recognition area information is described. Note that the image_recognition_idc may include additional syntax elements of auxiliary information depending on the type of image recognition processing.

[0248] When the value of image_recognition_idc is 1, information on the recognition area is described, so the same syntax as that of the image recognition assistance SEI in FIG. 14 is described.

[0249] number_of_region_minus1 is a syntax element that represents the number of recognition regions minus 1. Information on the type, position, and size of the recognition target is described for the number of regions whose values ​​are equal to or greater than number_of_region_minus1 plus 1.

[0250] The region_id is an index value that indicates the type of recognition target. The allocation of index values ​​is determined according to the recognition target of the image recognition device. For example, when detecting a person with an image recognition device, if the value of region_id is 0, the recognition target indicates a person, and if the value of region_id is 1, the recognition target indicates something other than the person. For example, when recognizing people, bicycles, and cars with an image recognition device, the region If the value of region_id is 0, the recognition target is a person, if the value of region_id is 1, the recognition target is a bicycle, if the value of region_id is 2, the recognition target is a car, and if the value of region_id is 3, the recognition target is something else.

[0251] region_x and region_y are syntax elements that indicate the position of the recognition target. region_x is the x coordinate value (horizontal direction) of the brightness of the top left of the rectangular region. region_y is the y coordinate value (vertical direction) of the brightness of the top left of the rectangular region.

[0252] region_width and region_hight are syntax elements that indicate the size of the recognition correspondence. region_width is the number of pixels of luminance in the horizontal direction of the rectangular region. Note that the value of region_x+region_width must not exceed the number of pixels in the horizontal direction of the picture. region_hight is the number of pixels of luminance in the vertical direction of the rectangular region. Note that the value of region_y+region_height must not exceed the number of pixels in the vertical direction of the picture.

[0253] In this embodiment, the recognition target area is expressed as a rectangle by the coordinate value of the top left corner of the rectangle and the number of pixels in the horizontal and vertical directions, but the recognition target area may be expressed in another way. For example, the position information of the rectangle may be the top right, bottom left, bottom right, or center of gravity instead of the top left. Also, other than rectangles, it may be limited to squares and only the number of pixels on one side may be specified. Or, other than rectangles and squares, it may be specified by the CTU address and the number of CTUs, which are units of encoding.

[0254] The post_processing_data_flag is a flag indicating whether or not post-image processing is to be performed on the decoded video image Td in the post-image processor 111. If TRUE, network parameter information used in the post-image processing is described.

[0255] payloadSize is a number representing the number of bytes of the network parameters.

[0256] nnr_payload_byte is the network parameter information, and is a value expressed in bytes as coded data of the network parameters used for post-image processing. The length of the coded data is payloadSize bytes.

[0257] Neural network parameters are encoded and decoded as parameter representations of the neural network in standard formats such as ONNX (Open Neural Network eXchange), NNEF (Neural Network Exchange Format), and MPEG NNC (Moving Picture Experts Group Neural Network Coding), or library-dependent formats such as tensorflow and pytorch.

[0258] rbsp_trailing_bits() adds 1 to 8 bits of data so that the number of APS bits is in bytes.

[0259] Furthermore, generic network parameters may be held in common by the auxiliary information creating device 71, the auxiliary information encoding device 81, and the auxiliary information decoding device 91. The auxiliary information creating device 71 may create network parameters for partially updating the commonly held generic network as auxiliary information, which may then be encoded by the auxiliary information encoding device 81 and decoded by the auxiliary information decoding device 91. With this configuration, the amount of code for the auxiliary information can be reduced, and auxiliary information corresponding to the input image T can be created, encoded, and decoded.

[0260] In addition, in order to support multiple formats as the transmission format of the network parameters, a parameter (identifier) ​​indicating the format may be sent. Furthermore, the actual auxiliary information following the identifier may be transmitted as a byte string.

[0261] The auxiliary information of the network parameters decoded by the auxiliary information decoder 91 is input to a post-image processor 1002 .

[0262] The network parameters are used to perform post-image processing of the recognition-target candidate region using a neural network in a post-image processing device 1002. This improves the image quality of the decoded video image Td of the recognition-target candidate region and also improves the recognition accuracy of the image recognition device.

[0263] In the example of this embodiment, the syntax is shown in APS, but it is not limited to APS, and syntax such as SPS, PPS, slice header, etc. may be used.

[0264] By using this configuration, the problem of maintaining image recognition accuracy even at low rates can be solved by encoding and decoding additional auxiliary information without significantly changing the framework of the video encoding and decoding method.

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

[0266] 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 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 a part or the whole may be integrated into a processor. The integrated circuit method is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor. In addition, when an integrated circuit technology that replaces LSI appears due to the progress of semiconductor technology, an integrated circuit based on that technology may be used.

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

[0268] [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 video. The moving images may be natural moving images captured by a camera or artificial moving images (including CG and GUI) generated by a computer or the like.

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

[0270] PROD_A in Fig. 2 is a block diagram showing the configuration of a transmitting 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 video, 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 video encoding device 10 is used as this encoding unit PROD_A1.

[0271] The transmitting device PROD_A may further include a camera PROD_A4 for capturing 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, as a source of moving images to be input to the encoding unit PROD_A1. In the figure, the transmitting device PROD_A is illustrated as having all of these components, but some of them may be omitted.

[0272] The recording medium PROD_A5 may record unencoded video, or may record video encoded by an encoding method for recording that is different from the encoding method for transmission. In the latter case, a decoding unit (not shown) that decodes the encoded data read from the recording medium PROD_A5 according to the encoding method for recording may be interposed between the recording medium PROD_A5 and the encoding unit PROD_A1.

[0273] 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 that receives a modulated signal, a demodulation unit PROD_B2 that obtains coded data by demodulating the modulated signal received by the receiving unit PROD_B1, and a decoding unit PROD_B3 that obtains a video by decoding the coded data obtained by the demodulation unit PROD_B2. The above-mentioned video decoding device 30 is used as this decoding unit PROD_B3.

[0274] The receiving device PROD_B may further include, as destinations of the moving image output by the decoding unit PROD_B3, a display PROD_B4 for displaying the moving image, a recording medium PROD_B5 for recording the moving image, and an output terminal PROD_B6 for outputting the moving image to the outside. In the figure, the receiving device PROD_B is illustrated as having all of these components, but some of them may be omitted.

[0275] The recording medium PROD_B5 may be for recording unencoded video, or may be encoded by an encoding method for recording that is different from the encoding method for transmission. In the latter case, it is preferable to interpose an encoding unit (not shown) between the decoding unit PROD_B3 and the recording medium PROD_B5, which encodes the video acquired from the decoding unit PROD_B3 according to the encoding method for recording.

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

[0277] For example, terrestrial digital broadcasting stations (broadcasting equipment, etc.) / receiving stations (television receivers, etc.) The above-mentioned equipment (e.g., broadcasting equipment) and receiving station (e.g., television receiver) for cable television broadcasting are examples of the transmitting device PROD_A and receiving device PROD_B that transmit and receive modulated signals by wireless broadcasting.

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

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

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

[0281] PROD_C in Fig. 3 is a block diagram showing 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 video, 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 video encoding device 10 is used as this encoding unit PROD_C1.

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

[0283] The recording device PROD_C may further include a camera PROD_C3 for capturing moving images, an input terminal PROD_C4 for inputting moving images from the outside, a receiving unit PROD_C5 for receiving moving images, and an image processing unit PROD_C6 for generating or processing images, as a supply source of moving images to be input to the encoding unit PROD_C1. Although the figure illustrates a configuration in which the recording device PROD_C includes all of these, some of them may be omitted.

[0284] The receiving unit PROD_C5 may receive unencoded video, or may receive encoded data encoded by an encoding method for transmission that is different from the encoding method for recording. In the latter case, a transmission decoding unit (not shown) that decodes the encoded data encoded by the encoding method for transmission may be interposed between the receiving unit PROD_C5 and the encoding unit PROD_C1.

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

[0286] Fig. 3PROD_D is a block diagram showing the configuration of a playback device PROD_D equipped with the above-mentioned video decoding device 30. As shown in the figure, the playback device PROD_D includes a reading unit PROD_D1 that reads out coded data written to a recording medium PROD_M, and a decoding unit PROD_D2 that obtains video by decoding the coded data read by the reading unit PROD_D1. The above-mentioned video decoding device 30 is used as this decoding unit PROD_D2.

[0287] The recording medium PROD_M may be (1) a type that is built into the playback device PROD_D, such as an HDD or SSD, (2) a type that is connected to the playback device PROD_D, such as an SD memory card or USB flash memory, or (3) a type that is loaded into a drive device (not shown) built into the playback device PROD_D, such as a DVD or BD.

[0288] The playback device PROD_D may further include, as destinations of the video output by the decoding unit PROD_D2, a display PROD_D3 for displaying the video, an output terminal PROD_D4 for outputting the video to the outside, and a transmission unit PROD_D5 for transmitting the video. In the figure, the playback device PROD_D is illustrated as having all of these components, but some of them may be omitted.

[0289] The transmission unit PROD_D5 may transmit unencoded video, or may transmit encoded data encoded by an encoding method for transmission different from the encoding method for recording. In the latter case, it is preferable to interpose an encoding unit (not shown) between the decoding unit PROD_D2 and the transmission unit PROD_D5, which encodes the video by the encoding method for transmission.

[0290] Examples of such a playback device PROD_D include a DVD player, a BD player, and an HDD player (in this case, the output terminal PROD_D4 to which a television receiver or the like is connected is the main destination of the video image). Other examples of such a playback device PROD_D include a television receiver (in this case, the display PROD_D3 is the main destination of the video image), a digital signage (also called an electronic billboard or electronic bulletin board, and the display PROD_D3 or the transmission unit PROD_D5 is the main destination of the video image), a desktop PC (in this case, the output terminal PROD_D4 or the transmission unit PROD_D5 is the main destination of the video image), a laptop or tablet PC (in this case, the display PROD_D3 or the transmission unit PROD_D5 is the main destination of the video image), and a smartphone (in this case, the display PROD_D3 or the transmission unit PROD_D5 is the main destination of the video image).

[0291] (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 in software by using a CPU (Central Processing Unit).

[0292] In the latter case, each of the above devices includes a CPU that executes the commands of a program that realizes each function, a ROM (Read Only Memory) that stores the above program, and a RAM (Random Access Memory) that expands the above program. The device includes a storage device (recording medium) such as a memory for storing the above-mentioned programs and various data, an access memory, etc. 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 and executes the program code recorded on the recording medium. .

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

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

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

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

[0297] 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 Auxiliary information creation device 81 Auxiliary information encoding device 91 Auxiliary Information Decoding Device 1001 Pre-image processing device 1002 Post image processing device

Claims

1. an image decoding device that decodes an image from encoded data; A video decoding device comprising an auxiliary information decoding device for decoding auxiliary information indicating at least one of a position, a size and a type of a recognition target in an image decoded by said image decoding device.

2. 2. The video decoding device according to claim 1, wherein the auxiliary information decoding device decodes network parameters used for image restoration of the recognition target area as the auxiliary information.

3. an image encoding device for encoding an input image; an auxiliary information encoding device for encoding auxiliary information indicating at least one of a position, a size, and a type of a recognition target of the input image; A video encoding device comprising:

4. 4. The video encoding device according to claim 3, wherein the auxiliary information encoding device encodes network parameters used for image restoration of the recognition target area as auxiliary information.