WO2022191064A1 - 動画像符号化装置、復号装置 - Google Patents

動画像符号化装置、復号装置 Download PDF

Info

Publication number
WO2022191064A1
WO2022191064A1 PCT/JP2022/009378 JP2022009378W WO2022191064A1 WO 2022191064 A1 WO2022191064 A1 WO 2022191064A1 JP 2022009378 W JP2022009378 W JP 2022009378W WO 2022191064 A1 WO2022191064 A1 WO 2022191064A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
unit
prediction
parameter
model parameters
Prior art date
Application number
PCT/JP2022/009378
Other languages
English (en)
French (fr)
Inventor
拓矢 鈴木
瑛一 佐々木
健 中條
知宏 猪飼
典男 伊藤
裕 渡辺
Original Assignee
シャープ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by シャープ株式会社 filed Critical シャープ株式会社
Priority to CN202280019035.2A priority Critical patent/CN116965018A/zh
Publication of WO2022191064A1 publication Critical patent/WO2022191064A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • Embodiments of the present invention relate to video encoding devices and decoding devices.
  • a moving image encoding device that generates encoded data by encoding a moving image and a moving image that generates a decoded image by decoding the encoded data in order to efficiently transmit or record the moving image An image decoding device is used.
  • Specific video encoding methods include H.264/AVC and H.265/HEVC (High-Efficiency Video Coding).
  • the images (pictures) that make up the video are divided into slices obtained by dividing an image, and coding tree units (CTU: Coding Tree Units) obtained by dividing a slice. ), a coding unit obtained by dividing the coding tree unit (Coding Unit: CU)), and a transform unit obtained by dividing the coding unit (TU: Transform Unit), and encoded/decoded for each CU.
  • CTU Coding Tree Units
  • a predicted image is normally generated based on a locally decoded image obtained by encoding/decoding an input image, and the predicted image is generated from the input image (original image).
  • the prediction error obtained by subtraction (sometimes called the "difference image” or “residual image”) is encoded.
  • Inter-prediction and intra-prediction are methods for generating predicted images.
  • Non-Patent Document 1 can be cited as a technique for video encoding and decoding in recent years.
  • Non-Patent Document 1 defines RPR (Reference Picture Re-sampling) technology that enables encoding and decoding with variable image resolution. Furthermore, Annex D of Non-Patent Document 1 defines additional enhancement information SEI for transmitting the properties of an image, the display method, the timing, etc. at the same time as the encoded data.
  • RPR Reference Picture Re-sampling
  • Non-Patent Document 2 proposes a technique for super-resolution of moving images using multiple model parameters. The quality of moving images is improved by selecting and using model parameters suitable for the target picture. Also, the model parameters used in Non-Patent Document 2 are neural network weights used in a resolution enhancement method using a neural network. In Non-Patent Document 2, it is possible to output an image that is less blurry and closer to the original image than the conventional processing using an upsampling filter and one neural network.
  • Non-Patent Document 1 when the resolution of at least a part of the input image is reduced using RPR in Non-Patent Document 1, encoding/decoding is performed, and the resolution is restored to the original (same as the input image), blurring is likely to occur. I have a problem.
  • Non-Patent Document 2 selects and applies model parameters suitable for moving images from a set of predetermined model parameters. Therefore, if a moving image that is not suitable for a plurality of prepared model parameters has to be processed, the processed moving image may be of low quality. It takes a lot of time and effort to prepare many model parameters to deal with various moving images.
  • the quality of moving images can be improved.
  • second model parameters to create and use new model parameters (first model parameters)
  • first model parameters the quality of moving images can be improved.
  • the video encoding device needs to acquire information for deriving the first model parameters from the input video and notify the video decoding device of it.
  • a moving image decoding device is an image decoding device that decodes encoded data obtained by encoding an image subjected to resolution conversion and filter information for deriving a first model parameter; It is characterized by having a post-processing device for converting the image decoded by the decoding device to the same resolution as the input image.
  • the post-processing device is characterized by having second model parameters and using the second model parameters and the decoded filter information to create the first model parameters.
  • FIG. 1 is a schematic diagram showing the configuration of a moving image transmission system according to this embodiment
  • FIG. 1 is a diagram showing the configuration of a transmitting device equipped with a moving image encoding device and a receiving device equipped with a moving image decoding device according to an embodiment
  • FIG. PROD_A indicates a transmitting device equipped with a video encoding device
  • PROD_B indicates a receiving device equipped with a video decoding device.
  • 1 is a diagram showing configurations of a recording device equipped with a moving image encoding device and a reproducing device equipped with a moving image decoding device according to an embodiment
  • FIG. 4 is a diagram showing a hierarchical structure of encoded data
  • 4 is a conceptual diagram of an image to be processed in the moving image transmission system according to the embodiment
  • FIG. 2 is a conceptual diagram showing an example of reference pictures and reference picture lists
  • 1 is a schematic diagram showing the configuration of an image decoding device
  • FIG. 4 is a flowchart for explaining schematic operations of the image decoding device
  • FIG. 4 is a schematic diagram showing the configuration of an inter-prediction parameter deriving unit
  • It is a schematic diagram which shows the structure of an inter prediction image production
  • FIG. 1 is a diagram illustrating a configuration example of a post-processing device according to an embodiment
  • FIG. FIG. 4 is a diagram illustrating an example of a syntax table that defines filter information according to one embodiment
  • FIG. 10 is a diagram showing derivation processing of the first model parameter of one embodiment
  • FIG. 10 is a diagram showing an example of a syntax table that defines filter information in the case of including a pattern for which resolution conversion processing is not performed in the preprocessing device, to which one embodiment is applied
  • FIG. 10 is a diagram showing derivation processing of first model parameters when including a pattern for which resolution conversion processing is not performed in the preprocessing device, to which one embodiment is applied
  • FIG. 4 illustrates the structure of model parameters used in one embodiment
  • FIG. 4 illustrates the structure of model parameters used in one embodiment
  • FIG. 4 illustrates the structure of model parameters used in one embodiment
  • FIG. 1 is a schematic diagram showing the configuration of a moving image transmission system according to this embodiment.
  • the moving image transmission system 1 is a system that transmits encoded data obtained by encoding images of different resolutions after resolution conversion, decodes the transmitted encoded data, inversely converts the image to the original resolution, and displays the image.
  • a moving image transmission system 1 includes a moving image encoding device 10 , a network 21 , a moving image decoding device 30 and an image display device 41 .
  • the video encoding device 10 is composed of a preprocessing device (preprocessing section) 51, an image encoding device (image encoding section) 11, and a synthetic information creating device (compositing information creating section) 71.
  • the video decoding device 30 is composed of an image decoding device (image decoding section) 31 and a post-processing device (post-processing section) 61 .
  • the preprocessing device 51 converts the resolution of the image T included in the moving image as necessary, and supplies the variable resolution moving image T2 including images of different resolutions to the image encoding device 11. Also, the preprocessing device 51 may supply the image coding device 11 with filter information indicating whether or not the resolution of the image is converted. When the information indicates resolution conversion, the video encoding device 10 sets 1 to ref_pic_resampling_enabled_flag, which will be described later. Then, it is coded in the sequence parameter set SPS (Sequence Parameter Set) of the coded data Te.
  • SPS Sequence Parameter Set
  • the synthesis information creation device 71 creates filter information based on the image T1 included in the moving image, and sends it to the image encoding device 11.
  • FIG. A variable resolution image T2 is input to the image encoding device 11 .
  • the image encoding device 11 uses the RPR framework to encode the image size information of the input image in units of PPS, and sends it to the image decoding device 31 .
  • the network 21 transmits the encoded filter information and encoded data Te to the image decoding device 31. Part or all of the encoded filter information may be included in the encoded data Te as additional enhancement information SEI.
  • the network 21 is the Internet, a Wide Area Network (WAN), a Local Area Network (LAN), or a combination thereof.
  • the network 21 is not necessarily 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. Also, the network 21 may be replaced by a storage medium such as a DVD (Digital Versatile Disc: registered trademark) or a BD (Blue-ray Disc: registered trademark) that records the encoded data Te.
  • the image decoding device 31 decodes each of the encoded data Te transmitted by the network 21, generates a variable resolution decoded image, and supplies it to the post-processing device 61.
  • the post-processing device 61 When the filter information indicates resolution conversion, the post-processing device 61 performs super-resolution processing using super-resolution model parameters based on the image size information included in the encoded data. Then, by inversely transforming the resolution-converted image, a decoded image of the original size is generated. If the filter information does not indicate resolution conversion, image restoration processing using model parameters for image restoration is performed. A decoded image with reduced coding noise is generated by performing image restoration processing.
  • the image display device 41 displays all or part of one or more decoded images Td2 input from the post-processing device 61.
  • the image display device 41 includes a display device such as a liquid crystal display or an organic EL (Electro-luminescence) display.
  • the form of the display includes stationary, mobile, HMD, and the like.
  • the image decoding device 31 has high processing power, it displays an image with high image quality, and when it has only lower processing power, it displays an image that does not require high processing power and display power.
  • FIG. 5 is a conceptual diagram of an image to be processed in the moving image transmission system shown in FIG. 1, showing changes in resolution of the image over time. However, in FIG. 5, it is not distinguished whether the image is encoded or not.
  • FIG. 5 shows an example in which an image is transmitted to the image decoding device 31 with its resolution lowered in the process of the moving image transmission system. As shown in FIG. 5, the image preprocessor 51 typically performs a transformation that reduces the resolution of the image in order to reduce the amount of information transmitted.
  • x ? y : z is a ternary operator that takes y if x is true (other than 0) and z if x is false (0).
  • abs(a) is a function that returns the absolute value of a.
  • Int(a) is a function that returns the integer value of a.
  • floor(a) is a function that returns the largest integer less than or equal to a.
  • ceil(a) is a function that returns the smallest integer greater than or equal to a.
  • a/d represents the division of a by d (truncated after the decimal point).
  • FIG. 4 is a diagram showing the hierarchical structure of data in the encoded data Te.
  • the encoded data Te illustratively includes a sequence and a plurality of pictures that constitute the sequence.
  • FIG. 4 shows a coded video sequence defining a sequence SEQ, a coded picture defining a picture PICT, a coded slice defining a slice S, a coded slice data defining a slice data, and a coded slice data included in the coded slice data.
  • a diagram showing a coding tree unit and coding units included in the coding tree unit is shown.
  • the encoded video sequence defines a set of data that the image decoding device 31 refers to in order to decode the sequence SEQ to be processed.
  • Sequence SEQ as shown in Figure 4, consists of video parameter set VPS (Video Parameter Set), sequence parameter set SPS (Sequence Parameter Set), picture parameter set PPS (Picture Parameter Set), adaptation parameter set (APS), picture PICT , and Supplemental Enhancement Information (SEI).
  • VPS Video Parameter Set
  • sequence parameter set SPS Sequence Parameter Set
  • picture parameter set PPS Picture Parameter Set
  • APS adaptation parameter set
  • SEI Supplemental Enhancement Information
  • a video parameter set VPS is a set of coding parameters common to multiple video images, a set of coding parameters common to multiple video images, and a set of coding parameters related to multiple layers and individual layers included in a video image. Sets are defined.
  • the sequence parameter set SPS defines a set of encoding parameters that the image decoding device 31 refers to in order to decode the target sequence. For example, the width and height of the picture are defined. A plurality of SPSs may exist. In that case, one of a plurality of SPSs is selected from the PPS.
  • the sequence parameter set SPS includes the following syntax elements.
  • ref_pic_resampling_enabled_flag A flag that specifies whether or not to use a function that makes the resolution variable (resampling) when decoding each image included in a single sequence that references the target SPS.
  • the flag is a flag that indicates that the size of the reference picture referred to in generating the predicted image changes between each image represented by a single sequence. If the value of the flag is 1, the above resampling is applied; if it is 0, it is not applied.
  • pic_width_max_in_luma_samples A syntax element that specifies the width, in luma blocks, of the image with the largest width among the images in a single sequence.
  • the value of the syntax element is required to be non-zero and an integral multiple of Max(8, MinCbSizeY).
  • MinCbSizeY is a value determined by the minimum size of the luminance block.
  • pic_height_max_in_luma_samples A syntax element that specifies the height of the image with the largest height among the images in a single sequence, in units of luma blocks. Also, the value of the syntax element is required to be non-zero and an integral multiple of Max(8, MinCbSizeY).
  • sps_temporal_mvp_enabled_flag A flag that defines whether or not to use temporal motion vector prediction when decoding the target sequence.
  • temporal motion vector prediction is used, and if the value is 0, temporal motion vector prediction is not used. Also, by specifying the flag, it is possible to prevent the coordinate position to be referred to from shifting when referring to reference pictures of different resolutions.
  • the picture parameter set PPS defines 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, it includes a quantization width reference value (pic_init_qp_minus26) used for picture decoding and a flag (weighted_pred_flag) indicating application of weighted prediction.
  • a plurality of PPSs may exist. In that case, one of a plurality of PPSs is selected from each picture in the target sequence.
  • the picture parameter set PPS includes the following syntax elements.
  • pic_width_in_luma_samples A syntax element that specifies the width of the target picture. The value of the syntax element is required to be not 0, but an integer multiple of Max(8, MinCbSizeY) and less than or equal to pic_width_max_in_luma_samples.
  • pic_height_in_luma_samples A syntax element that specifies the height of the target picture. The value of the syntax element is required to be not 0, but an integer multiple of Max(8, MinCbSizeY) and less than or equal to pic_height_max_in_luma_samples.
  • conformance_window_flag a flag indicating whether or not the conformance (cropping) window offset parameter is subsequently signaled.
  • the conformance window offset parameter indicates where to display the conformance window. If the flag is 1, the parameter is signaled, and if it is 0, the parameter does not exist.
  • conf_win_left_offset, conf_win_right_offset, conf_win_top_offset, conf_win_bottom_offset Offset values for specifying the left, right, top, and bottom positions of a picture output in decoding processing with respect to a rectangular area specified by picture coordinates for output.
  • scaling_window_flag A flag indicating whether or not a scaling window offset parameter exists in the target PPS, and is a flag relating to regulation 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. Also, if the value of ref_pic_resampling_enabled_flag is 0, then the value of scaling_window_flag is also required to be 0.
  • scaling_win_left_offset, scaling_win_right_offset, scaling_win_top_offset, scaling_win_bottom_offset Syntax elements that specify the offsets applied to the image size for scaling ratio calculations, in units of luminance samples, for the left, right, top, and bottom positions of the target picture, respectively. Also, 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 assumed to be 0.
  • scaling_win_left_offset + scaling_win_right_offset is required to be less than pic_width_in_luma_samples
  • the value of scaling_win_top_offset + scaling_win_bottom_offset is required to be less than pic_height_in_luma_samples.
  • the output picture width PicOutputWidthL and height PicOutputHeightL are derived as follows.
  • 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) (coded picture)
  • the encoded picture defines a set of data that the image decoding device 31 refers to in order to decode the picture PICT to be processed.
  • a picture PICT includes a picture header PH, slice 0 to slice NS-1 (NS is the total number of slices included in the picture PICT).
  • a picture header contains the following syntax elements: • pic_temporal_mvp_enabled_flag: A flag that defines whether or not to use temporal motion vector prediction for inter prediction of slices 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 such 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 for decoding the slice associated with the picture header. Also, if the flag is not specified, the value is assumed to be 0.
  • the coded slice defines a set of data that the image decoding device 31 refers to in order to decode the slice S to be processed.
  • a slice includes a slice header and slice data, as shown in FIG.
  • the slice header contains a group of coding parameters that the image decoding device 31 refers to in order to determine the decoding method for the target slice.
  • Slice type designation information (slice_type) that designates a slice type is an example of a coding parameter included in a slice header.
  • Slice types that can be specified by the slice type specifying information include (1) an I slice that uses only intra prediction during encoding, (2) simple prediction (L0 prediction) or intra prediction that uses during encoding. (3) B slices using uni-prediction (L0 prediction or L1 prediction), bi-prediction, or intra-prediction in encoding.
  • inter prediction is not limited to uni-prediction and bi-prediction, and a predicted image may be generated using more reference pictures.
  • P and B slices they refer to slices containing blocks for which inter prediction can be used.
  • the slice header may contain a reference (pic_parameter_set_id) to the picture parameter set PPS.
  • the encoded slice data defines a set of data that the image decoding device 31 refers to in order to decode slice data to be processed.
  • the slice data contains CTU, as shown in the encoded slice header in FIG.
  • a CTU is a fixed-size (for example, 64x64) block that forms a slice, and is also called a largest coding unit (LCU).
  • FIG. 4 defines a set of data that the image decoding device 31 refers to in order to decode the CTU to be processed.
  • CTU uses recursive quad tree partitioning (QT (Quad Tree) partitioning), binary tree partitioning (BT (Binary Tree) partitioning), or ternary tree partitioning (TT (Ternary Tree) partitioning) to perform coding processing. It is divided into coding units CU, which are basic units. BT partitioning and TT partitioning are collectively called multi-tree partitioning (MT (Multi Tree) partitioning).
  • MT Multi Tree partitioning
  • a node of a tree structure obtained by recursive quadtree partitioning is called a coding node.
  • Intermediate nodes of quadtrees, binary trees, and ternary trees are coding nodes, and the CTU itself is defined as the top-level coding node.
  • CT includes, as CT information, a CU split flag (split_cu_flag) indicating whether or not to perform CT splitting, a QT split flag (qt_split_cu_flag) indicating whether or not to perform QT splitting, and an MT splitting direction indicating the splitting direction of MT splitting ( mtt_split_cu_vertical_flag), including MT split type (mtt_split_cu_binary_flag) indicating the split type of the MT split.
  • split_cu_flag, qt_split_cu_flag, mtt_split_cu_vertical_flag and mtt_split_cu_binary_flag are transmitted for each encoding node.
  • FIG. 4 defines a set of data that the image decoding device 31 refers to in order to decode the encoding unit to be processed.
  • a CU is composed of a CU header CUH, prediction parameters, transform parameters, quantized transform coefficients, and the like.
  • a prediction mode and the like are defined in the CU header.
  • Prediction processing may be performed in units of CUs or in units of sub-CUs, which are subdivided into CUs. If the CU and sub-CU sizes are equal, there is one sub-CU in the CU. If the CU is larger than the sub-CU size, the CU is split into sub-CUs. For example, if the CU is 8x8 and the sub-CU is 4x4, the CU is divided into 4 sub-CUs consisting of 2 horizontal divisions and 2 vertical divisions.
  • Intra prediction is prediction within the same picture
  • inter prediction is prediction processing performed between different pictures (for example, between display times, between layer images).
  • the transform/quantization process is performed in CU units, but the quantized transform coefficients may be entropy coded in subblock units such as 4x4.
  • prediction parameter A predicted image is derived from the prediction parameters associated with the block.
  • the prediction parameters include prediction parameters for intra prediction and inter prediction.
  • the prediction parameters for inter prediction are described below.
  • the inter prediction parameters are composed of prediction list usage flags predFlagL0 and predFlagL1, reference picture indices refIdxL0 and refIdxL1, and motion vectors mvL0 and mvL1.
  • predFlagL0 and predFlagL1 are flags indicating whether or not reference picture lists (L0 list, L1 list) are used, and when the value is 1, the corresponding reference picture list is used.
  • flag when the term "flag indicating whether or not it is XX" is used, when the flag is other than 0 (for example, 1), it is XX, and 0 is not XX. Treat 1 as true and 0 as false (same below).
  • other values can be used as true and false values.
  • inter-prediction parameters include, for example, affine flag affine_flag used in merge mode, merge flag merge_flag, merge index merge_idx, MMVD flag mmvd_flag, inter-prediction identifier for selecting reference pictures used in AMVP mode There are inter_pred_idc, reference picture index refIdxLX, predicted vector index mvp_LX_idx for deriving a motion vector, difference vector mvdLX, motion vector accuracy mode amvr_mode.
  • a 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 reference pictures and reference picture lists.
  • rectangles are pictures, arrows are picture reference relationships, the horizontal axis is time, I, P, and B in the rectangle are intra pictures, uni-predictive pictures, bi-predictive pictures, respectively.
  • the numbers in the rectangles indicate the decoding order.
  • the decoding order of the pictures is I0, P1, B2, B3, B4, and the display order is I0, B3, B2, B4, P1.
  • FIG. 6 shows an example of a reference picture list for picture B3 (current picture).
  • a reference picture list is a list representing reference picture candidates, and one picture (slice) may have one or more reference picture lists.
  • the target picture B3 has two reference picture lists, an L0 list RefPicList0 and an L1 list RefPicList1.
  • LX is a description method used when L0 prediction and L1 prediction are not distinguished, and hereinafter, parameters for the L0 list and parameters for the L1 list are distinguished by replacing LX with L0 and L1.
  • merge prediction and AMVP prediction There are a merge prediction (merge) mode and an AMVP (Advanced Motion Vector Prediction, adaptive motion vector prediction) mode in prediction parameter decoding (encoding) methods, and merge_flag is a flag for identifying these.
  • the merge prediction mode is a mode in which the prediction list usage flag predFlagLX, the reference picture index refIdxLX, and the motion vector mvLX are not included in the encoded data, but are derived from prediction parameters and the like of already processed neighboring blocks.
  • AMVP mode is a mode in which inter_pred_idc, refIdxLX, and mvLX are included in encoded data.
  • mvLX is encoded as mvp_LX_idx that identifies the prediction vector mvpLX and the difference vector mvdLX. Also, in addition to the merge prediction mode, there may be an affine prediction mode and an MMVD prediction mode.
  • inter_pred_idc is a value that indicates the type and number of reference pictures, and takes one of PRED_L0, PRED_L1, and PRED_BI.
  • PRED_L0 and PRED_L1 indicate uni-prediction using one reference picture managed by the L0 list and L1 list, respectively.
  • PRED_BI indicates bi-prediction using two reference pictures managed by the L0 list and L1 list.
  • merge_idx is an index that indicates which prediction parameter is to be used as the prediction parameter for the target block among the prediction parameter candidates (merge candidates) derived from the blocks for which processing has been completed.
  • (motion vector) mvLX indicates the amount of shift between blocks on two different pictures.
  • a prediction vector and a difference vector for mvLX are called mvpLX and mvdLX, respectively.
  • inter_pred_idc Inter prediction identifier inter_pred_idc and prediction list usage flag predFlagLX
  • inter_pred_idc The relationships between inter_pred_idc, predFlagL0, and predFlagL1 are as follows, and can be mutually converted.
  • the configuration of the image decoding device 31 (FIG. 7) according to this embodiment will be described.
  • 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 generation unit (prediction image generation device) 308, an inverse quantum It includes a normalization/inverse transformation unit 311 , an addition unit 312 , and a prediction parameter derivation unit 320 .
  • the image decoding device 31 may have a configuration in which the loop filter 305 is not included in accordance with the image encoding device 11 described later.
  • 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 called a decoding module.
  • Header decoding section 3020 decodes parameter set information such as VPS, SPS, PPS, and APS, and slice headers (slice information) from encoded data.
  • CT information decoding section 3021 decodes CT from encoded data.
  • a CU decoding unit 3022 decodes a CU from encoded data.
  • TU decoding section 3024 decodes QP update information (quantization correction value) and quantization prediction error (residual_coding) from encoded data when prediction error is included in TU.
  • the predicted image generation unit 308 includes an inter predicted image generation unit 309 and an intra predicted image generation unit 310.
  • the prediction parameter derivation unit 320 includes an inter prediction parameter derivation unit 303 and an intra prediction parameter derivation unit 304.
  • CTU and CU as processing units
  • processing may be performed in sub-CU units.
  • CTU and CU may be read as blocks
  • sub-CU may be read as sub-blocks
  • processing may be performed in units of blocks or sub-blocks.
  • the entropy decoding unit 301 performs entropy decoding on the encoded data Te input from the outside to decode individual codes (syntax elements).
  • the entropy decoding unit 301 outputs the decoded code to the parameter decoding unit 302.
  • the decoded codes are, for example, prediction modes predMode, merge_flag, merge_idx, inter_pred_idc, refIdxLX, mvp_LX_idx, mvdLX, amvr_mode, and the like. Control of which code is to be decoded is performed based on an instruction from parameter decoding section 302 .
  • FIG. 8 is a flowchart for explaining a schematic operation of the image decoding device 31. As shown in FIG.
  • the header decoding unit 3020 decodes parameter set information such as VPS, SPS, and PPS from the encoded data.
  • the header decoding unit 3020 decodes the slice header (slice information) from the encoded data.
  • the image decoding device 31 derives a decoded image of each CTU by repeating the processing from S1300 to S5000 for each CTU included in the target picture.
  • the CT information decoding unit 3021 decodes the CTU from the encoded data.
  • the CT information decoding unit 3021 decodes the CT from the encoded data.
  • the CU decoding unit 3022 performs S1510 and S1520 to decode the CU from the encoded data.
  • the CU decoding unit 3022 decodes CU information, prediction information, TU split flag split_transform_flag, CU residual flags cbf_cb, cbf_cr, cbf_luma, etc. from the encoded data.
  • TU decoding section 3024 decodes QP update information, quantized prediction error, and transform index mts_idx from encoded data when prediction error is included in TU.
  • the QP update information is a difference value from the quantization parameter prediction value qPpred, which is the prediction value of the quantization parameter QP.
  • the predicted image generation unit 308 generates a predicted image based on the prediction information for each block included in the target CU.
  • the inverse quantization/inverse transform unit 311 executes inverse quantization/inverse transform processing for each TU included in the target CU.
  • the addition unit 312 adds the predicted image supplied from the predicted image generation unit 308 and the prediction error supplied from the inverse quantization/inverse transform unit 311, thereby decoding the target CU. Generate an image.
  • the loop filter 305 applies a loop filter such as a deblocking filter, SAO, and ALF to the decoded image to generate a decoded image.
  • a loop filter such as a deblocking filter, SAO, and ALF
  • FIG. 9 shows a schematic diagram showing the configuration of the inter prediction parameter derivation unit 303 according to this embodiment.
  • Inter prediction parameter derivation section 303 derives inter prediction parameters by referring to prediction parameters stored in prediction parameter memory 307 based on syntax elements input from parameter decoding section 302 . Also, inter prediction parameters are output to inter prediction image generation section 309 and 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 , image encoding device, and image decoding device, they may be collectively referred to as a motion vector derivation unit (motion vector derivation device).
  • the scale parameter derivation unit 30378 calculates the reference picture horizontal scaling ratio RefPicScale[i][j][0], the reference picture vertical scaling ratio RefPicScale[i][j][1], and the reference picture scaling ratio RefPicScale[i][j][1].
  • Derive RefPicIsScaled[i][j] that indicates whether the picture is scaled or not.
  • i indicates whether the reference picture list is the L0 list or the L1 list
  • j is the value of the L0 reference picture list or the L1 reference picture list y list, and is derived as follows.
  • (RefPicScale[i][j][1] ! (1 ⁇ 14))
  • the variable PicOutputWidthL is the value used to calculate the horizontal scaling ratio when the coded picture is referenced, and is the number of horizontal pixels of luminance in the coded picture minus the left and right offset values.
  • the variable PicOutputHeightL is a value used when calculating the vertical scaling ratio when a coded picture is referenced, and the value obtained by subtracting the vertical offset value from the number of luminance pixels in the vertical direction of the coded picture is used.
  • the variable fRefWidth is the value of PicOutputWidthL of the reference picture of reference list value j of list i
  • the variable fRefHight is the value of PicOutputHeightL of the reference picture of reference picture list value j of list i.
  • affine prediction unit 30372 When affine_flag is 1, that is, indicates the affine prediction mode, the affine prediction unit 30372 derives inter prediction parameters for each subblock.
  • the MMVD prediction unit 30373 derives an inter prediction parameter from the merge candidate and the difference vector derived by the merge prediction parameter derivation unit 3036.
  • the GPM unit 30377 derives GPM parameters.
  • merge_idx is derived and output to the merge prediction parameter derivation unit 3036.
  • the AMVP prediction parameter derivation unit 3032 derives mvpLX from inter_pred_idc, refIdxLX or mvp_LX_idx.
  • the MV adder 3038 adds the derived mvpLX and mvdLX to derive mvLX.
  • the affine prediction unit 30372 1) derives motion vectors of two control points CP0, CP1 or three control points CP0, CP1, CP2 of the target block, 2) derives affine prediction parameters of the target block, and 3) A motion vector for each sub-block is derived from the affine prediction parameters.
  • the merge prediction parameter derivation unit 3036 derives the prediction parameters of the target block using the prediction parameters (mvLX, refIdxLX, etc.) of spatially neighboring blocks or temporally neighboring blocks of the target block.
  • the DMVR unit 30375 performs DMVR (Decoder side Motion Vector Refinement) processing.
  • merge_flag is 1 or skip flag skip_flag is 1 for the target CU
  • the DMVR unit 30375 modifies the motion vector mvLX of the target CU.
  • mvLX is corrected using a predicted image derived from two reference pictures and motion vectors.
  • the mvLX after correction is supplied to the inter prediction image generation unit 309 .
  • AMVP prediction parameter derivation section 3032 selects motion vector mvpListLX[mvp_LX_idx] indicated by mvp_LX_idx from among the prediction vector candidates as mvpLX, and outputs it to MV addition section 3038 .
  • MV adding section 3038 adds mvpLX input from AMVP prediction parameter deriving section 3032 and decoded mvdLX to calculate mvLX. Addition section 3038 outputs calculated mvLX to inter prediction image generation section 309 and prediction parameter memory 307 .
  • a loop filter 305 is a filter provided in the encoding loop, and is a filter that removes block distortion and ringing distortion to improve image quality.
  • a loop filter 305 applies filters such as a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF) to the decoded image of the CU generated by the addition unit 312 .
  • the loop filter 305 may include a post-processing device 61, which will be described later.
  • the post-processing device 61 which will be described later, may derive an output image from the filter information transmitted in the encoded data, using the first model parameters, using a neural network.
  • a first model parameter is derived by a model integration process.
  • the reference picture memory 306 stores the decoded image of the CU in a predetermined position for each target picture and target CU.
  • the prediction parameter memory 307 stores prediction parameters in predetermined positions for each CTU or CU. Specifically, the prediction parameter memory 307 stores the parameters decoded by the parameter decoding unit 302, the parameters derived by the prediction parameter deriving unit 320, and the like.
  • the parameters derived by the prediction parameter derivation unit 320 are input to the prediction image generation unit 308 .
  • the predicted image generation unit 308 reads a reference picture from the reference picture memory 306 .
  • a predicted image generation unit 308 generates a predicted image of a block or sub-block using parameters and a reference picture (reference picture block) in a prediction mode indicated by predMode.
  • a reference picture block is a set of pixels on a reference picture (usually rectangular and therefore called a block), and is an area referred to for generating a prediction image.
  • Inter prediction image generator 309 When predMode indicates the inter prediction mode, inter prediction image generation section 309 generates a prediction image of a block or sub-block by inter prediction using inter prediction parameters and reference pictures input from inter prediction parameter derivation section 303 .
  • FIG. 10 is a schematic diagram showing the configuration of the inter predicted image generation unit 309 included in the predicted image generation unit 308 according to this embodiment.
  • the inter predicted image generation unit 309 includes a motion compensation unit (predicted image generation device) 3091 and a synthesizing unit 3095 .
  • the synthesizing section 3095 includes an IntraInter synthesizing section 30951 , a GPM synthesizing section 30952 , a BDOF section 30954 and a weight prediction section 3094 .
  • the motion compensation unit 3091 (interpolated image generation unit 3091) performs interpolation by reading reference blocks from the reference picture memory 306 based on the inter prediction parameters (predFlagLX, refIdxLX, mvLX) input from the inter prediction parameter derivation unit 303. Generate an image (motion compensated image).
  • the reference block is a block on the reference picture RefPicLX specified by refIdxLX, which is shifted by mvLX from the position of the target block.
  • refIdxLX a filter that is shifted by mvLX from the position of the target block.
  • an interpolated image is generated by applying a filter called a motion compensation filter for generating pixels at decimal positions.
  • the motion compensation unit 3091 uses the reference picture horizontal scaling ratio RefPicScale[i][j][0] derived by the scale parameter deriving unit 30378 and the reference picture vertical scaling ratio RefPicScale[i] It has a function to scale the interpolated image according to [j][1].
  • the synthesizing unit 3095 includes an IntraInter synthesizing unit 30951, a GPM synthesizing unit 30952, a weight predicting unit 3094, and a BDOF unit 30954.
  • the IntraInter synthesizing unit 30951 generates a predicted image by weighted sum of the inter predicted image and the intra predicted image.
  • the GPM synthesizing unit 30952 generates a predicted image using the GPM described above.
  • the BDOF unit 30954 refers to two predicted images (first predicted image and second predicted image) and a gradient correction term to generate a predicted image in bi-prediction mode.
  • the weight prediction unit 3094 performs weight prediction from the interpolated image PredLX to generate a block prediction image pbSamples.
  • 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 the reference pixels read from the reference picture memory 306 when the predMode indicates the intra prediction mode.
  • the inverse quantization/inverse transform unit 311 inversely quantizes the quantized transform coefficients input from the parameter decoding unit 302 to obtain transform coefficients.
  • the addition unit 312 adds the predicted image of the block input from the predicted image generation unit 308 and the prediction error input from the inverse quantization/inverse transform unit 311 for each pixel 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 .
  • the inverse quantization/inverse transform unit 311 inversely quantizes the quantized transform coefficients input from the parameter decoding unit 302 to obtain transform coefficients.
  • the addition unit 312 adds the predicted image of the block input from the predicted image generation unit 308 and the prediction error input from the inverse quantization/inverse transform unit 311 for each pixel 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 .
  • FIG. 11 is a block diagram showing the configuration of the image encoding device 11 according to this embodiment.
  • the image coding device 11 includes a predicted image generation unit 101, a subtraction unit 102, a transform/quantization unit 103, an inverse quantization/inverse transform unit 105, an addition unit 106, a loop filter 107, a prediction parameter memory (prediction parameter storage unit, frame memory) 108, reference picture memory (reference image storage unit, frame memory) 109, coding parameter determination unit 110, parameter coding unit 111, prediction parameter derivation unit 120, and entropy coding unit 104.
  • the predicted image generation unit 101 generates a predicted image for each CU.
  • the predicted image generation unit 101 includes the already described inter predicted image generation unit 309 and intra predicted image generation unit 310, and the description thereof will be omitted.
  • the subtraction unit 102 subtracts 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 to generate prediction errors.
  • Subtraction section 102 outputs the prediction error to transform/quantization section 103 .
  • the transform/quantization unit 103 calculates transform coefficients by frequency transforming the prediction error input from the subtraction unit 102, and derives quantized transform coefficients by quantization.
  • the transform/quantization unit 103 outputs the quantized transform coefficients to the parameter coding unit 111 and the inverse quantization/inverse transform unit 105 .
  • the inverse quantization/inverse transform unit 105 is the same as the inverse quantization/inverse transform unit 311 (FIG. 7) in the image decoding device 31, and description thereof is omitted.
  • the calculated prediction error is output to addition section 106 .
  • the parameter encoding unit 111 includes a header encoding unit 1110, a CT information encoding unit 1111, and a CU encoding unit 1112 (prediction mode encoding unit).
  • CU encoding section 1112 further comprises TU encoding section 1114 . The general operation of each module will be described below.
  • a header encoding unit 1110 performs encoding processing of parameters such as filter information, header information, division information, prediction information, and quantized transform coefficients.
  • a CT information encoding unit 1111 encodes QT, MT (BT, TT) division information and the like.
  • a CU encoding unit 1112 encodes CU information, prediction information, division information, and the like.
  • the TU encoding unit 1114 encodes the QP update information and the quantized prediction error when the TU contains the prediction error.
  • the CT information encoding unit 1111 and the CU encoding unit 1112 use 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), quantization transform coefficients, and other syntax elements to the parameter encoding unit 111.
  • inter prediction parameters predMode, merge_flag, merge_idx, inter_pred_idc, refIdxLX, mvp_LX_idx, mvdLX
  • intra prediction parameters intra prediction parameters
  • intra prediction parameters intra prediction parameters
  • intra prediction parameters intra prediction parameters
  • the entropy coding unit 104 receives input from the parameter coding unit 111 of the quantized transform coefficients and coding parameters (division information, prediction parameters). The entropy encoding unit 104 entropy-encodes these to generate and output encoded data Te.
  • Prediction parameter derivation unit 120 is means including inter prediction parameter encoding unit 112 and intra prediction parameter encoding unit 113, and derives intra prediction parameters and intra prediction parameters from the parameters input from encoding parameter determination unit 110. .
  • the derived intra prediction parameters and intra prediction parameters are output to parameter coding section 111 .
  • Inter prediction parameter encoding section 112 is configured including parameter encoding control section 1121 and inter prediction parameter deriving section 303 .
  • the inter-prediction parameter deriving unit 303 has a common configuration with the image decoding device.
  • Parameter encoding control section 1121 includes merge index derivation section 11211 and vector candidate index derivation section 11212 .
  • the merge index derivation unit 11211 derives merge candidates and the like, and outputs them to the inter prediction parameter derivation unit 303.
  • Vector candidate index derivation section 11212 derives vector prediction candidates and the like, and outputs them to inter prediction parameter derivation section 303 and parameter coding section 111 .
  • Intra prediction parameter encoding section 113 includes parameter encoding control section 1131 and intra prediction parameter deriving section 304 .
  • the intra-prediction parameter derivation unit 304 has a common configuration with the image decoding device.
  • the parameter encoding control unit 1131 derives IntraPredModeY and IntraPredModeC. Furthermore, refer to mpmCandList[] to determine intra_luma_mpm_flag. These prediction parameters are output to intra prediction parameter derivation section 304 and parameter coding section 111 .
  • 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 are output to the parameter coding unit 111.
  • the addition unit 106 adds pixel values of the prediction block input from the prediction image generation unit 101 and prediction errors input from the inverse quantization/inverse transformation unit 105 for each pixel to generate a decoded image.
  • the addition unit 106 stores the generated decoded image in the reference picture memory 109 .
  • a loop filter 107 applies a deblocking filter, SAO, and ALF to the decoded image generated by the addition unit 106.
  • the loop filter 107 does not necessarily include the three types of filters described above, and may be configured with only a deblocking filter, for example.
  • the prediction parameter memory 108 stores the prediction parameters generated by the coding parameter determination unit 110 in predetermined positions for each current picture and CU.
  • the reference picture memory 109 stores the decoded image generated by the loop filter 107 in a predetermined position for each target picture and CU.
  • the coding parameter determination unit 110 selects one set from a plurality of sets of coding parameters.
  • the coding parameter is the above-described QT, BT or TT division information, prediction parameters, or parameters to be coded generated in relation to these.
  • the predicted image generating unit 101 generates predicted images using these coding parameters.
  • the coding parameter determination unit 110 calculates an RD cost value indicating the magnitude of the information amount and the coding error for each of the multiple sets.
  • the RD cost value is, for example, the sum of the code amount and the value obtained by multiplying the squared error by the coefficient ⁇ .
  • the code amount is the information amount of the encoded data Te obtained by entropy-encoding the quantization error and the encoding parameter.
  • the squared error is the sum of squares of the prediction errors calculated in subtraction section 102 .
  • the coefficient ⁇ is a preset real number greater than zero. Coding parameter determination section 110 selects a set of coding parameters that minimizes the calculated cost value. Coding parameter determination section 110 outputs the determined coding parameters to parameter coding section 111 and prediction parameter derivation section 120 .
  • part of the image encoding device 11 and the image decoding device 31 in the above-described embodiment for example, the entropy decoding unit 301, the parameter decoding unit 302, the loop filter 305, the prediction image generation unit 308, the inverse quantization/inverse transform unit 311, addition unit 312, prediction parameter derivation unit 320, prediction image generation unit 101, subtraction unit 102, transformation/quantization unit 103, entropy coding unit 104, inverse quantization/inverse transformation unit 105, loop filter 107, coding
  • the parameter determining unit 110, the parameter encoding unit 111, and the prediction parameter deriving unit 120 may be implemented by a computer.
  • a program for realizing this control function may be recorded in a computer-readable recording medium, and the program recorded in this recording medium may be read into a computer system and executed.
  • the “computer system” 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.
  • the term "computer-readable recording medium” refers to portable media such as flexible discs, magneto-optical discs, ROMs and CD-ROMs, and storage devices such as hard disks built into computer systems.
  • “computer-readable recording medium” means a medium that dynamically stores a program for a short period of time, such as a communication line for transmitting a program via a network such as the Internet or a communication line such as a telephone line. In that case, it may also include a memory that holds the program for a certain period of time, such as a volatile memory inside a computer system that serves as a server or client. Further, the program may be for realizing part of the functions described above, or may be capable of realizing the functions described above in combination with a program already recorded in the computer system.
  • part or all of the image encoding device 11 and the image decoding device 31 in the above-described embodiment may be realized as an integrated circuit such as LSI (Large Scale Integration).
  • LSI Large Scale Integration
  • Each functional block of the image encoding device 11 and the image decoding device 31 may be individually processorized, or part or all of them may be integrated and processorized.
  • the method of circuit integration is not limited to LSI, but may be realized by a dedicated circuit or a general-purpose processor.
  • an integrated circuit based on this technology may be used.
  • model integration As an example of the present embodiment, the parameter BaseModel[i] (second model parameter) of the base model neural network provided in the post-processing device 61 is used to obtain the parameter WeightedModel[i] (first model parameter) of the new neural network. ) is derived (see Fig. 12). The process of deriving the first model parameters is referred to herein as "model integration”.
  • the first model parameters are derived using a linear combination (weighted average) of the second model parameters.
  • the weight coefficient weight_coeff[i] which is the weight of the weighted average in model integration, etc.
  • Encoded data of filter information may be transmitted using SPS, PPS, APS, picture header, slice header, or SEI.
  • SPS, PPS, picture header, and slice header are sets of sequence-level, picture-level, and slice-level parameters, respectively.
  • APS is a parameter set that collects data applicable to multiple pictures.
  • SEI is a set of parameters for display and post-processing.
  • weighting coefficients, biases, and other neural network parameters are simply referred to as model parameters without distinction.
  • NumberOfParameters represents the number of model parameters.
  • FIG. 13 is a diagram showing an example of syntax of encoded data (filter information) for post-processing or loop filter processing according to the present embodiment.
  • Encoded data defining filter information may include the following syntax elements.
  • ⁇ number_of_models indicates the number of BaseModel[i] provided in the post-processing device 61 .
  • log2_weight_denom_minus1 an integer indicating the accuracy of the weighting factor.
  • the weighting factor weight_coeff[i] is a fixed-point number in units of 1/(1 ⁇ log2_weight_denom_minus_1+1).
  • se(v) indicates the use of binarization for encoding values including negative weighting coefficients as encoded data.
  • offset_coeff Indicates the constant term (bias) of the linear sum used to derive the first model parameter. An integer value.
  • the header decoding unit decodes the flag indicating whether it is non-zero. If the flag indicates non-zero, the weighting factor is decoded by further decoding the magnitude of the weighting factor, and if the flag indicates zero, the weighting factor is derived as 0. This makes it possible to decode weighting coefficients encoded with a small amount of code.
  • the header decoding unit may decode the weighting factor that can take a negative value. As a result, there is an effect that the degree of freedom in deriving the first model parameters derived by the subsequent model integration unit can be increased.
  • FIG. 14 shows an example of a method of deriving the first model parameter WeightedModel using the syntax in FIG.
  • Model integration section 612 derives WeightedModel from weight_coeff[j] for model j obtained by decoding encoded data and BaseModel[j], which is a model parameter of model j provided in advance in model integration section 612 .
  • WeightedModel[i] ( ⁇ (weight_coeff[j] * BaseModel[j][i]) + offset_coeff + (1 ⁇ log2_weight_denom_minus1)) >> (log2_weight_denom_minus1 + 1) (expression Weight-1)
  • the derived WeightedModel[i] is output to post-processing section 611 .
  • WeightedModel[i] ( ⁇ (weight_coeff[j] * BaseModel[j][i]) + (1 ⁇ log2_weight_denom_minus1)) >> (log2_weight_denom_minus1 + 1) (expression Weight-2)
  • model integration section 612 derives the weighted sum of the second model parameters if there are two or more elements having a value other than 0 in weight_coeff[j].
  • offset_coeff may be added to the weighted sum and divided (or shifted) using the value of log2_weight_denom_minus1.
  • the first model parameters are derived by integrating the second model parameters.
  • a particular second model parameter is used as the first model parameter. As a result, a higher quality image can be generated than when at least one model parameter is used.
  • FIG. 15 is another example of extending the syntax of FIG.
  • the syntax added in Figure 15 includes: • scale_factor: A positive integer indicating the magnification of the image.
  • scale_factor may be, for example, magnification factors of 1, 2, 4, 8.
  • log2_scale_factor in base 2 logarithm expression may be transmitted instead of scale_factor.
  • scale_factor 1 ⁇ log2_scale_factor.
  • scale_factor_divNK may be transmitted to enable scaling in units of 1/NK.
  • scale_factor scale_factor_divNK/NK.
  • NK may be an exponential power of two.
  • scale_factor scale_factor_divNK ⁇ log2(NK).
  • NK is for example 2, 4, 8, 16 etc.
  • - num_of_const_param Indicates the number of model parameters that are not multiplied by a weighting factor.
  • Both scale_factor and num_of_const_param may be included in the encoded data, or only one of them may be included. If they are not included in the encoded data, fixed values may be set for scale_factor and num_of_const_param, or appropriate values may be set on the video decoding device side.
  • the model integration unit 612 may derive the first model parameter by the following calculation.
  • WeightedModel[i] ( ⁇ (weight_coeff[j] * BaseModel[scale_factor][j][i]) + offset_coeff + (1 ⁇ log2_weight_denom_minus1)) >> (log2_weight_denom_minus1 + 1) (formula Weight-3)
  • the BaseModel included in the model integration unit 612 may have different model parameters for each image magnification. That is, by using scale_factor and selecting BaseModel[scale_factor] for scale_factor, suitable model parameters can be derived even for images with different resolutions.
  • BaseModel[scale_factor][0] contains the default model parameters.
  • the header decoding unit 3020 further decodes the scale_factor indicating the scale between the input image size and the output image size of the neural network, and the model integration unit 612 uses the second model parameters that differ depending on the scale, 1 model parameters may be derived.
  • the post-processing unit 611 may perform post-processing using a neural network that partially includes neural network processing (for example, an Upsampling layer) that changes the size of the image when the scale factor indicates a size other than the same size. .
  • the first model parameter may be derived using the already explained (Formula Weight-1) or (Formula Weight-2) without depending on the scale_factor.
  • the method of deriving the first model parameter does not use the enlargement factor, and there is no need to prepare the second model parameter for each enlargement factor. Therefore, the amount of memory for storing the second model parameters can be reduced.
  • the first model parameter may be used to perform resolution conversion in accordance with the scale_factor in the subsequent UpSampling section of the post-processing section 611 .
  • the model integration unit 612 derives some of the first model parameters by weighting the BaseModel, and uses the parameters BaseModel[scale_factor][0] of the specific BaseModel without weighting the other parameters.
  • may Figure 16 shows that out of the NumberOfParameters parameters of the first model parameter, some (num_of_const_param) parameters use the parameters of the base model as they are, and the other (NumberOfParameters-num_of_const_param) parameters are derived by weighting.
  • the model integration unit 612 derives the first model parameters without weighting the num_of_const_param parameters, and derives the first model parameters from the NumberOfParameters-num_of_const_param parameters by weighting.
  • the header decoding unit 3020 may decode information (for example, num_of_const_param) indicating the number of parameters to be derived without weighting among the first model parameters.
  • the model integration unit 612 substitutes BaseModel[i] for WeightedModel[i], and the post-processing unit 611 performs post-processing using WeightedModel[i].
  • the unit 612 may be configured to derive only the model parameters of the neural network of the portion to be weighted.
  • the post-processing unit 611 performs post-processing using the model parameters of the derived neural network for the weighted portion, and uses the model parameters of BaseModel[i] as they are for the non-weighted portion. Do the processing part.
  • the configuration is shown in which weighting is not performed in the first half and weighting is performed in the second half.
  • Restoration processing can be performed.
  • the model parameters derived by model integration are used in the same-size part of the first half part 1700, and the model parameters derived by using the enlargement ratio are used in the second half UpSampling. This allows the model integration unit 612 to derive suitable model parameters for various magnifications without holding the second parameter BaseModel for each magnification.
  • the scale_factor is 1, the input and output image sizes are the same. Otherwise, it is processed to size (number of channels)*(width*scale_factor)*(height*scale_factor). Also, when num_of_const_param is notified, only specific model parameters of BaseModel[i] are multiplied by weight_coeff[i] in (expression Weight-1). In the example of FIG. 16, the smaller the value of num_of_const_param, the larger the number of parameters to be model-integrated by weighting, and the greater the degree of freedom. Conversely, the larger the value of num_of_const_param, the smaller the amount of parameters derived by weighting during model integration. Therefore, although the degree of freedom is reduced, the number of model parameters of the base model required for weighting is also small.
  • a post-processing unit 611 performs filtering with a neural network using the first model parameter WeightedModel derived by the model integration unit 612 .
  • the filtering process may be a loop filter applied to the reference image or a post filter applied to the output image.
  • the post-processing unit 611 is performed as one process of the loop filter 305, the input is the locally decoded image, and the output is used as the reference image.
  • the decoded image Td1 and WeightedModel are input to the post-processing unit 611, and the output Td2 is output to the outside (for example, the image display device 41).
  • the filter of the post-processing unit 611 may be a process in which the size (width, height) of the input image and the size (width, height) of the output image are equal, that is, processing that does not include resolution conversion. Alternatively, it may be a process of changing the width and height, that is, a process of converting the resolution.
  • the neural network inputs an image (tensor) of (channel: C) * (width: W) * (height: H), (number of channels: C) * (width: W * scale_factor) * (height: H*scale_factor) image (tensor) is output.
  • scale_factor indicates an enlargement ratio.
  • the scale_factor may be transmitted as one syntax element of encoded data as shown in FIG.
  • Channel C may be two luminance and color difference components, three channels consisting of RGB, or one channel consisting of any one of luminance, color difference, or RGB. Alternatively, two color difference components may be used. Also, when the luminance and color difference sizes are different, such as 4:2:0, one luminance component, four Cb, and four Cr may be arranged.
  • the neural network of this specification consists of a layer (convolution layer, Conv) that multiplies and sums the weights that are the elements of the parameters of the input vector and the neural network and adds the bias, and a layer (activation layer) that performs nonlinear processing on the derived values. layer, Act).
  • the activation layer may use Relu, leakyRelu, PRelu, ELU, and the like.
  • Relu is a process that returns max(x,0).
  • leakyRelu is a process of adding a*x gradient when Relu is x ⁇ 0.
  • PRelu and ELU are processes that use the leakyRelu gradient parameter as an updatable parameter instead of a fixed value.
  • ConvolutionNeuralNetoworl may include a Pooling layer, a layer called FullConnection (FNN), Squeeze-and-Excitation Networks, SelfAttention, and attention.
  • resolution conversion may include linear processing such as bilinear, bicubic, and lanczos, and processing called depth2space, PixelShuffle, and Deconvolution (transposed convolution).
  • the Pooling layer is a layer that averages or maximizes values for each predetermined unit.
  • FNN is a layer that combines all inputs regardless of position. Squeeze-and-Excitation Networks, SelfAttention, and transformer are attentions that weight between channels.
  • linear processing such as sinc, hammering, hanning, DCT, DST, FFT, DWT (Wavelet), high-pass filter, low-pass filter, filter bank, etc.
  • It may also include a skip connection called ResidualNetwork (ResNet), and may include processing for stacking multiple inputs into a channel.
  • ResidualNetwork ResidualNetwork
  • there may be a process (element sum) of adding values to a plurality of inputs without stacking them, or a process of performing an element product which is a product of a plurality of inputs.
  • FIG. 18 shows an example of the neural network of this embodiment.
  • FIG. 18 is used for processing without resolution conversion.
  • FIG. 17 shows an example of the neural network of this embodiment.
  • FIG. 17 is used for resolution conversion processing.
  • the feature extraction structure 1700 is composed of a neural network (feature extraction structure) 1700 that performs processing at the same size and a neural network 1701 that performs resolution conversion.
  • the feature extraction structure 1700 comprises a plurality of feature extraction layers 1702 and Residual Blocks 1703 .
  • the feature extraction layer consists of the convolution layer and the activation layer described above.
  • a Residual Block consists of a feature extraction layer, a Convolution layer, and an Activation layer.
  • a neural network 1701 that performs resolution conversion consists of a convolution layer, an upsampling section 1704 and a feature extraction layer 1705 .
  • this network introduces a residual structure (residual block), which is a structure for improving the performance of the neural network.
  • the residual structure is the structure that learns the difference of different feature vectors obtained from the neural network.
  • the residual structure is used in the Residual Block and feature extraction structure 1700 .
  • the UpSampling filter 1704 converts the width and height of the feature vector output from the feature extraction structure 1700 to the width and height of the output.
  • the UpSampling filter can be bilinear, bicubic, PixelShuffle, deconvolution, etc. Note that the UpSampling filter may change the enlargement rate by scale_factor.
  • the feature extraction layer 1705 generates an output image that has the same channels, width, and height as the input image from the enlarged feature vector.
  • BaseModel[i] and WeightedModel are the model parameters of the neural network that performs the above-mentioned post-filtering and loop filtering, and BaseModel[i] and WeightedModel have the same structure.
  • BaseModel[i] is a predetermined model parameter
  • WeightedModel is a weighted model parameter for BaseModel[i].
  • the first model parameters are derived from the syntax of the present invention, and the resolution is inversely transformed. As a result, it is possible to generate a moving image of higher quality than selecting any model parameter from a set of model parameters.
  • FIG. 1 is a block diagram in which the moving image generated by the pre-processing device 51 is encoded by the image encoding device 11 and the moving image decoded by the image decoding device 31 is processed by the post-processing device 61. As shown in FIG.
  • the video encoding device 10 inputs the input image T1 to the synthesis information creating device 71 and creates filter information for deriving the first model parameters. Then, the filter information is sent to the image encoding device 11.
  • FIG. The synthesis information creating device 71 creates filter information from the statistical information of the pixel values of the input image T1.
  • the image encoding device 11 encodes the reduced image T2 obtained by reducing the resolution of the input image T1 by the preprocessing device 51 and the filter information (referred to as an encoded image). Then, the filter information and the encoded image are sent to the network 21 as encoded data Te.
  • the video decoding device 30 decodes the encoded data Te including the encoded image and the filter information by the image decoding device 31 and sends the decoded data to the post-processing device 61 .
  • FIG. 12 is a block diagram showing the configuration of the post-processing device 61.
  • the post-processing device 61 is composed of a post-processing unit 611 and a model integration unit 612, receives a decoded image Td1 and filter information, and outputs a decoded image Td2.
  • Model integration section 612 derives first model parameters from the input filter information and sends the first model parameters to post-processing section 611 .
  • the first model parameter is derived by taking the weighted sum of the second model parameter using the weighting factor obtained from the filter information and dividing (or shifting) it by the value indicated by the filter information.
  • the post-processing unit 611 receives the decoded image Td1 and the first model parameters, and outputs the decoded image Td2.
  • the post-processing unit 611 generates a decoded image Td2 by inversely converting the resolution of the decoded image Td1 to the same resolution as the input image using the first model parameters, and outputs the decoded image Td2 to the image display device 41.
  • the synthesis information creation device 71 creates filter information with the input image T1 as an input, and sends it to the image encoding device 11.
  • the filter information includes weighting factors created based on the input image T1, that is, data necessary for deriving the first model parameters.
  • the image decoding device 31 decodes the filter information from the encoded data Te obtained via the network 21 based on the syntax of FIG. 13 or FIG. send.
  • the post-processing device 61 uses the filter information to derive the first model parameters by the processing shown in FIG. 14 or FIG. Then, the decoded image Td2 is generated by performing inverse resolution conversion on Td1 using the image Td1 decoded by the image decoding device 31 and the first model parameters.
  • the moving image encoding device 10 and the moving image decoding device 30 described above can be used by being installed in various devices for transmitting, receiving, recording, and reproducing moving images.
  • the moving image may be a natural moving image captured by a camera or the like, or may be an artificial moving image (including CG and GUI) generated by a computer or the like.
  • the video encoding device 10 and the video decoding device 30 described above can be used to transmit and receive video.
  • PROD_A in FIG. 2 is a block diagram showing the configuration of the transmission device PROD_A equipped with the video encoding device 10.
  • the transmission device PROD_A includes an encoding unit PROD_A1 that obtains encoded data by encoding a moving image, and a modulated signal by modulating a carrier wave with the encoded data obtained by the encoding unit PROD_A1. and a transmitter PROD_A3 for transmitting the modulated signal obtained by the modulator PROD_A2.
  • the video encoding device 10 described above is used as this encoding unit PROD_A1.
  • the transmission device PROD_A uses a camera PROD_A4 for capturing a moving image, a recording medium PROD_A5 for recording the moving image, an input terminal PROD_A6 for externally inputting the moving image, and , and an image processing unit A7 for generating or processing an image.
  • a camera PROD_A4 for capturing a moving image
  • a recording medium PROD_A5 for recording the moving image
  • an input terminal PROD_A6 for externally inputting the moving image
  • an image processing unit A7 for generating or processing an image.
  • the recording medium PROD_A5 may record an unencoded moving image, or record a moving image encoded by an encoding scheme for recording different from the encoding scheme for transmission. can be anything. In the latter case, a decoding unit (not shown) that decodes the encoded data read from the recording medium PROD_A5 according to the recording encoding method may be interposed between the recording medium PROD_A5 and the encoding unit PROD_A1.
  • PROD_B in FIG. 2 is a block diagram showing the configuration of the receiving device PROD_B on which the video decoding device 30 is mounted.
  • the receiver PROD_B includes a receiver PROD_B1 that receives a modulated signal, a demodulator PROD_B2 that obtains encoded data by demodulating the modulated signal received by the receiver PROD_B1, and a demodulator PROD_B2 that obtains encoded data. and a decoding unit PROD_B3 that obtains a moving image by decoding the encoded data.
  • the video decoding device 30 described above is used as this decoding unit PROD_B3.
  • the receiving device PROD_B supplies the moving image output from the decoding unit PROD_B3 to a display PROD_B4 for displaying the moving image, a recording medium PROD_B5 for recording the moving image, and an output terminal for outputting the moving image to the outside.
  • PROD_B6 may also be provided. In the drawing, the configuration in which the receiving device PROD_B has all of these is illustrated, but some of them may be omitted.
  • the recording medium PROD_B5 may be used for recording unencoded moving images, or may be encoded by an encoding scheme for recording that is different from the encoding scheme for transmission. may In the latter case, an encoding unit (not shown) may be interposed between the decoding unit PROD_B3 and the recording medium PROD_B5 to encode the moving image acquired from the decoding unit PROD_B3 according to the recording encoding method.
  • the transmission medium for transmitting the modulated signal may be wireless or wired.
  • the transmission mode for transmitting the modulated signal may be broadcasting (here, transmission mode in which the destination is not specified in advance), or communication (here, transmission mode in which the destination is specified in advance). aspect) may be used. That is, transmission of the modulated signal may be realized by any of wireless broadcasting, wired broadcasting, wireless communication, and wired communication.
  • a digital terrestrial broadcasting station (broadcasting equipment, etc.)/receiving station (television receiver, etc.) is an example of a transmitting device PROD_A/receiving device PROD_B that transmits and receives modulated signals by radio broadcasting.
  • a broadcasting station (broadcasting equipment, etc.)/receiving station (television receiver, etc.) of cable television broadcasting is an example of a transmitting device PROD_A/receiving device PROD_B that transmits/receives a modulated signal by cable broadcasting.
  • servers workstations, etc.
  • clients television receivers, personal computers, smartphones, etc.
  • VOD Video On Demand
  • video sharing services using the Internet are transmission devices that transmit and receive modulated signals through communication.
  • PROD_A/receiving device PROD_B usually, in LAN, either wireless or wired transmission medium is used, and in WAN, wired transmission medium is used.
  • personal computers include desktop PCs, laptop PCs, and tablet PCs.
  • Smartphones also include multifunctional mobile phone terminals.
  • the client of the video sharing service In addition to the function of decoding the encoded data downloaded from the server and displaying it on the display, the client of the video sharing service also has the function of encoding the video captured by the camera and uploading it to the server. That is, the client of the video sharing service functions as both the transmitting device PROD_A and the receiving device PROD_B.
  • the moving image encoding device 10 and the moving image decoding device 30 described above can be used for recording and reproducing moving images.
  • PROD_C in FIG. 3 is a block diagram showing the configuration of the recording device PROD_C equipped with the moving image encoding device 10 described above.
  • the recording device PROD_C includes an encoding unit PROD_C1 that obtains encoded data by encoding a moving image, and a writing unit PROD_C2 that writes the encoded data obtained by the encoding unit PROD_C1 to the recording medium PROD_M. and have.
  • the video encoding device 10 described above is used as this encoding unit PROD_C1.
  • the recording medium PROD_M may be (1) a type built into the recording device PROD_C, such as a HDD (Hard Disk Drive) or SSD (Solid State Drive), or (2) an SD memory It may be of the type connected to the recording device PROD_C, such as a card or USB (Universal Serial Bus) flash memory; Disc: registered trademark) may be loaded in a drive device (not shown) incorporated in the recording device PROD_C.
  • a type built into the recording device PROD_C such as a HDD (Hard Disk Drive) or SSD (Solid State Drive)
  • an SD memory It may be of the type connected to the recording device PROD_C, such as a card or USB (Universal Serial Bus) flash memory; Disc: registered trademark) may be loaded in a drive device (not shown) incorporated in the recording device PROD_C.
  • the recording device PROD_C includes a camera PROD_C3 for capturing the moving image, an input terminal PROD_C4 for inputting the moving image from the outside, and a receiving terminal for receiving the moving image as a supply source of the moving image to be input to the encoding unit PROD_C1. It may further include a unit PROD_C5 and an image processing unit PROD_C6 that generates or processes an image. In the drawing, the configuration in which the recording device PROD_C includes all of these is exemplified, but some of them may be omitted.
  • the receiving unit PROD_C5 may receive an unencoded moving image, or receive encoded data encoded by an encoding scheme for transmission that is different from the encoding scheme for recording. It may be something to do. In the latter case, it is preferable to interpose a decoding unit for transmission (not shown) that decodes encoded data encoded by an encoding method for transmission between the receiving unit PROD_C5 and the encoding unit PROD_C1.
  • Examples of such a recording device PROD_C include a DVD recorder, BD recorder, HDD (Hard Disk Drive) recorder, etc. (In this case, the input terminal PROD_C4 or the receiver PROD_C5 is the main supply source of moving images.) .
  • a camcorder in this case, the camera PROD_C3 is the main source of moving images
  • a personal computer in this case, the receiver PROD_C5 or the image processing unit C6 is the main source of moving images
  • a smartphone in this case, the camera PROD_C3 is the main source of moving images
  • the camera PROD_C3 or the receiving unit PROD_C5 is the main supply source of moving images
  • FIG. 3 PROD_D is a block showing the configuration of the playback device PROD_D equipped with the video decoding device 30 described above.
  • the playback device PROD_D includes a reading unit PROD_D1 that reads encoded data written to the recording medium PROD_M, and a decoding unit PROD_D2 that obtains a moving image by decoding the encoded data read by the reading unit PROD_D1. , is equipped with The video decoding device 30 described above is used as this decoding unit PROD_D2.
  • the recording medium PROD_M may be (1) a type built into the playback device PROD_D, such as an HDD or SSD, or (2) an SD memory card, USB flash memory, or the like. It may be of a type that is connected to the playback device PROD_D, or (3) like a DVD or BD, it may be loaded into a drive device (not shown) built into the playback device PROD_D. good.
  • the playback device PROD_D includes a display PROD_D3 for displaying the moving image, an output terminal PROD_D4 for outputting the moving image to the outside, and a transmitting unit for transmitting the moving image, as destinations to which the moving image output by the decoding unit PROD_D2 is supplied.
  • PROD_D5 may also be provided. In the drawing, the configuration in which the playback device PROD_D includes all of these is illustrated, but some of them may be omitted.
  • the transmission unit PROD_D5 may transmit an unencoded moving image, or transmit encoded data encoded by an encoding scheme for transmission different from the encoding scheme for recording. It may be something to do. In the latter case, it is preferable to interpose an encoding unit (not shown) that encodes a moving image using an encoding method for transmission between the decoding unit PROD_D2 and the transmitting unit PROD_D5.
  • Such a playback device PROD_D includes, for example, a DVD player, a BD player, an HDD player, etc.
  • the output terminal PROD_D4 to which a television receiver or the like is connected is the main supply destination of moving images.
  • television receivers in this case, display PROD_D3 is the main supply of moving images
  • digital signage also called electronic billboards, electronic bulletin boards, etc.
  • display PROD_D3 or transmission unit PROD_D5 is the main supply of moving images.
  • desktop PC in this case, output terminal PROD_D4 or transmitter PROD_D5 is the main destination of the video
  • laptop or tablet PC in this case, display PROD_D3 or transmitter PROD_D5
  • An example of such a playback device PROD_D is a smartphone (in this case, the display PROD_D3 or the transmission unit PROD_D5 is the main destination of moving images).
  • Each block of the moving image decoding device 30 and the moving image encoding device 10 described above may be realized in hardware by a logic circuit formed on an integrated circuit (IC chip), or may be implemented by a CPU (Central Processing Unit). Unit) may be used for software implementation.
  • IC chip integrated circuit
  • CPU Central Processing Unit
  • each of the above devices includes a CPU that executes the instructions of the program that realizes each function, a ROM (Read Only Memory) that stores the above program, a RAM (Random Access Memory) that expands the above program, the above program and various data. and a storage device (recording medium) such as a memory for storing the .
  • An object of the embodiments of the present invention is a computer-readable record of the program code (executable program, intermediate code program, source program) of the control program for each of the above devices, which is software for realizing the above functions. It can also be achieved by supplying a medium to each of the devices described above and causing the computer (or CPU or MPU) to read and execute the program code recorded on the recording medium.
  • tapes such as magnetic tapes and cassette tapes
  • magnetic disks such as floppy (registered trademark) disks / hard disks
  • CD-ROM Compact Disc Read-Only Memory
  • MO disc Magnetic-Optical disc
  • MD Mini Disc
  • DVD Digital Versatile Disc: registered trademark
  • CD-R Compact Disc
  • Blu-ray Disc Blu-ray Disc
  • cards such as optical cards
  • mask ROM / EPROM Erasable Programmable Read-Only Memory
  • EEPROM Electrical Erasable and Programmable Read-Only Memory: registered trademark
  • semiconductor memories such as flash ROM, or PLD (Programmable Logic devices) and logic circuits such as FPGAs (Field Programmable Gate Arrays)
  • FPGAs Field Programmable Gate Arrays
  • each of the above devices may be configured to be connectable to a communication network, and the program code may be supplied via the communication network.
  • This communication network is not particularly limited as long as it can transmit the program code.
  • Internet intranet, extranet, LAN (Local Area Network), ISDN (Integrated Services Digital Network), VAN (Value-Added Network), CATV (Community Antenna television/Cable Television) communication network, Virtual Private network Network), telephone line network, mobile communication network, satellite communication network, etc.
  • the transmission medium constituting this communication network is not limited to a specific configuration or type as long as it can transmit the program code.
  • Embodiments of the invention may also be implemented in the form of a computer data signal embedded in a carrier wave, with the program code embodied in electronic transmission.
  • Embodiments of the present invention are preferably applied to a moving image decoding device that decodes encoded image data and a moving image encoding device that generates encoded image data. be able to. Also, the present invention can be preferably applied to the data structure of encoded data generated by a video encoding device and referenced by a video decoding device. (Cross reference to related applications) This application claims the benefit of priority to Japanese Patent Application: Japanese Patent Application No. 2021-039720 filed on March 11, 2021, and by referring to it, all of its contents are Included in this document.
  • Video transmission system 30 Video decoder 31 Image decoder 301 Entropy Decoder 302 Parameter decoder 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 Predictive image generator 309 Inter prediction image generator 310 Intra prediction image generator 311, 105 Inverse quantization/inverse transform section 312, 106 adder 320 prediction parameter derivation unit 10 Video encoder 11 Image encoding device 102 Subtractor 103 Transform/Quantization Unit 104 Entropy Encoder 110 Encoding parameter determination unit 111 Parameter encoder 112 Inter prediction parameter coding unit 113 Intra prediction parameter encoder 120 Prediction parameter derivation part 71 Filter information creation device

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

あらかじめ定められたモデルパラメータの集合から入力動画像に適したモデルパラメータを選択し、適用する解像度逆変換を行う場合、複数のモデルパラメータに適さない動画像は低品質になる可能性がある。 解像度変換を行った画像と第1のモデルパラメータを導出するためのフィルタ情報を符号化した符号化データを復号する画像復号装置を有し、 前記画像復号装置で復号された画像とフィルタ情報を使用し、入力画像信号と同じ解像度に変換する後処理装置を有する。 また、第1のモデルパラメータを導出するためのフィルタ情報を作成する合成情報作成装置と、解像度変換などで前処理された画像及び前記合成情報作成装置で作成したフィルタ情報を符号化する画像符号化装置を有する。

Description

動画像符号化装置、復号装置
 本発明の実施形態は、動画像符号化装置、復号装置に関する。
 動画像を効率的に伝送または記録するために、動画像を符号化することによって符号化データを生成する動画像符号化装置、および、当該符号化データを復号することによって復号画像を生成する動画像復号装置が用いられている。
 具体的な動画像符号化方式としては、例えば、H.264/AVCやH.265/HEVC(High-Efficiency Video Coding)方式などが挙げられる。
 このような動画像符号化方式においては、動画像を構成する画像(ピクチャ)は、画像を分割することにより得られるスライス、スライスを分割することにより得られる符号化ツリーユニット(CTU:Coding Tree Unit)、符号化ツリーユニットを分割することで得られる符号化単位(符号化ユニット(Coding Unit:CU)と呼ばれることもある)、及び、符号化単位を分割することより得られる変換ユニット(TU:Transform Unit)からなる階層構造により管理され、CU毎に符号化/復号される。
 また、このような動画像符号化方式においては、通常、入力画像を符号化/復号することによって得られる局所復号画像に基づいて予測画像が生成され、当該予測画像を入力画像(原画像)から減算して得られる予測誤差(「差分画像」または「残差画像」と呼ぶこともある)が符号化される。予測画像の生成方法としては、画面間予測(インター予測)、および、画面内予測(イントラ予測)が挙げられる。
 また、近年の動画像符号化及び復号の技術として非特許文献1が挙げられる。
 非特許文献1においては、可変の画像解像度の符号化、復号を可能とするRPR(Reference Picture Re-sampling)技術が規定されている。さらに、非特許文献1のAnnex Dには、画像の性質や、表示方法、タイミングなどを符号化データと同時に伝送するための付加拡張情報SEIが規定されている。
 非特許文献2においては、複数のモデルパラメータを用いて動画像を超解像する技術が提案されている。対象とするピクチャに適したモデルパラメータを選択、使用することで動画像の品質を向上させている。また、非特許文献2で使用されているモデルパラメータはニューラルネットワークを用いた高解像度化手法に用いられるニューラルネットワークの重みである。非特許文献2では、従来のアップサンプリングフィルタ、一つのニューラルネットワークを用いた処理と比較して、ボケが少なく、元画像に近い画像を出力することが出来る。
ITU-T Recommendation H.266 (08/20) 2020-08-29 T. Hori, Z. Gong, H. Watanabe, T. Ikai, T. Chujoh, E. Sasaki, and N. Ito,"CNN-based Super-Resolution Adapted to Quantization Parameters", International Workshop on Advanced Image Technology, IWAIT 2020, No.42, Jan. 2020.
 しかしながら、非特許文献1におけるRPRなどを用いて入力画像の少なくとも一部の画像の解像度を落として符号化・復号し、元の(入力画像と同じ)解像度に戻す場合、ボケが発生しやすいという課題がある。
 また、非特許文献2に示す方法は、あらかじめ定められたモデルパラメータの集合から動画像に適したモデルパラメータを選択し適用する。そのため、用意した複数のモデルパラメータに適さない動画像を処理しなければならない場合、処理された動画像が低品質になる可能性がある。多様な動画像に対応するために、多くのモデルパラメータを用意する場合、多大な時間と労力がかかる。
 また、複数のモデルパラメータ(第2のモデルパラメータ)を適切に重み付け及び統合して新たなモデルパラメータ(第1のモデルパラメータ)を作成、使用することで動画像の品質を高められる。第1のモデルパラメータを導出するには、導出のための情報を入力動画像から取得する必要がある。そのため、動画像符号化装置は第1のモデルパラメータを導出するための情報を入力動画像から取得し、動画像復号装置に通知する必要がある。
 本発明の一態様に係る動画像復号装置は、解像度変換を行った画像と第1のモデルパラメータを導出するためのフィルタ情報を符号化した符号化データを復号する画像復号化装置と、前記画像復号装置で復号された画像を入力画像と同じ解像度に変換する後処理装置を有することを特徴とする。
 また、前記後処理装置は、第2のモデルパラメータを有し、第2のモデルパラメータと復号したフィルタ情報を使用して第1のモデルパラメータを作成することを特徴とする。
 このような構成にすることで、入力画像に適したモデルパラメータを動的に作成することが可能となり、多様な動画像に適した画質向上が可能となる。そのため、あらかじめ定められたモデルパラメータを用いるよりも高品質な動画像を伝送することができる。
本実施形態に係る動画像伝送システムの構成を示す概略図である。 本実施形態に係る動画像符号化装置を搭載した送信装置、および、動画像復号装置を搭載した受信装置の構成について示した図である。PROD_Aは動画像符号化装置を搭載した送信装置を示しており、PROD_Bは動画像復号装置を搭載した受信装置を示している。 本実施形態に係る動画像符号化装置を搭載した記録装置、および、動画像復号装置を搭載した再生装置の構成について示した図である。PROD_Cは動画像符号化装置を搭載した記録装置を示しており、PROD_Dは動画像復号装置を搭載した再生装置を示している。 符号化データの階層構造を示す図である。 本実施形態に係る動画像伝送システムにおいて処理の対象となる画像の概念図である。 参照ピクチャおよび参照ピクチャリストの一例を示す概念図である。 画像復号装置の構成を示す概略図である。 画像復号装置の概略的動作を説明するフローチャートである。 インター予測パラメータ導出部の構成を示す概略図である。 インター予測画像生成部の構成を示す概略図である。 画像符号化装置の構成を示すブロック図である。 一実施形態の後処理装置の構成例を示す図である。 一実施形態のフィルタ情報を規定するシンタックス表の一例を示す図である。 一実施形態の第1のモデルパラメータの導出処理を示す図である。 一実施形態を応用した、前処理装置において解像度変換処理が行われないパターンを含む場合のフィルタ情報を規定するシンタックス表の一例を示す図である。 一実施形態を応用した、前処理装置において解像度変換処理が行われないパターンを含む場合の第1のモデルパラメータの導出処理を示す図である。 一実施形態で使用されるモデルパラメータの構造を示す図である。 一実施形態で使用されるモデルパラメータの構造を示す図である。
  (第1の実施形態)
 以下、図面を参照しながら本発明の実施形態について説明する。
 図1は、本実施形態に係る動画像伝送システムの構成を示す概略図である。
 動画像伝送システム1は、解像度が変換された異なる解像度の画像を符号化した符号化データを伝送し、伝送された符号化データを復号し画像を元の解像度に逆変換して表示するシステムである。動画像伝送システム1は、動画像符号化装置10とネットワーク21と動画像復号装置30と画像表示装置41からなる。
 動画像符号化装置10は、前処理装置(前処理部)51、画像符号化装置(画像符号化部)11、合成情報作成装置(合成情報作成部)71から構成される。
 動画像復号装置30は、画像復号装置(画像復号部)31、後処理装置(後処理部)61から構成される。
 前処理装置51は、動画像に含まれる画像Tの解像度を必要に応じて変換し、異なる解像度の画像を含む可変解像度動画像T2を、画像符号化装置11に供給する。また、前処理装置51は、画像の解像度変換の有無を示すフィルタ情報を画像符号化装置11に供給してもよい。当該情報が解像度変換を示す場合、動画像符号化装置10は、後述するref_pic_resampling_enabled_flagを1に設定する。そして、符号化データTeのシーケンスパラメータセットSPS(Sequence Parameter Set)において符号化する。
 合成情報作成装置71は、動画像に含まれる画像T1に基づいて、フィルタ情報を作成し、画像符号化装置11に送る。
 画像符号化装置11には可変解像度画像T2が入力される。画像符号化装置11は、RPRの枠組みを用いて、PPS単位で入力画像の画像サイズ情報を符号化し、画像復号装置31に送る。
 ネットワーク21は、符号化されたフィルタ情報及び符号化データTeを画像復号装置31に伝送する。符号化されたフィルタ情報の一部または全部は、付加拡張情報SEIとして、符号化データTeに含められてもよい。ネットワーク21は、インターネット(Internet)、広域ネットワーク(WAN:Wide Area Network)、小規模ネットワーク(LAN:Local Area Network)またはこれらの組み合わせである。ネットワーク21は、必ずしも双方向の通信網に限らず、地上デジタル放送、衛星放送等の放送波を伝送する一方向の通信網であっても良い。また、ネットワーク21は、DVD(Digital Versatile Disc:登録商標)、BD(Blue-rayDisc:登録商標)等の符号化データTeを記録した記憶媒体で代替されても良い。
 画像復号装置31は、ネットワーク21が伝送した符号化データTeのそれぞれを復号し、可変解像度復号画像を生成して後処理装置61に供給する。
 後処理装置61は、フィルタ情報が解像度変換を示す場合、符号化データに含まれる画像サイズ情報に基づいて、超解像用のモデルパラメータを用いた超解像処理を行う。そして、解像度変換された画像を逆変換することによって、オリジナルサイズの復号画像を生成する。また、フィルタ情報が解像度変換を示さない場合、画像復元用のモデルパラメータを用いた画像復元処理を行う。画像復元処理を行うことによって、符号化ノイズを低減した復号画像を生成する。
 画像表示装置41は、後処理装置61から入力された1または複数の復号画像Td2の全部または一部を表示する。画像表示装置41は、例えば、液晶ディスプレイ、有機EL(Electro-luminescence)ディスプレイ等の表示デバイスを備える。ディスプレイの形態としては、据え置き、モバイル、HMD等が挙げられる。また、画像復号装置31が高い処理能力を有する場合には、画質の高い画像を表示し、より低い処理能力しか有しない場合には、高い処理能力、表示能力を必要としない画像を表示する。
 図5は、図1に示す動画像伝送システムにおいて処理の対象となる画像の概念図であって、時間の経過に伴う、当該画像の解像度の変化を示す図である。ただし、図5においては、画像が符号化されているか否かを区別していない。図5は、動画像伝送システムの処理過程において、解像度を低下させて画像復号装置31に画像を伝送する例を示している。図5に示すように、通常、画像前処理装置51は、伝送される情報の情報量を少なくするために画像の解像度を低下させる変換を行う。
 <演算子>
 本明細書で用いる演算子を以下に記載する。
 >>は右ビットシフト、<<は左ビットシフト、&はビットワイズAND、|はビットワイズOR、|=はOR代入演算子であり、||は論理和を示す。
 x ? y : zは、xが真(0以外)の場合にy、xが偽(0)の場合にzをとる3項演算子である。
 Clip3(a,b,c)は、cをa以上b以下の値にクリップする関数であり、c<aの場合にはaを返し、c>bの場合にはbを返し、その他の場合にはcを返す関数である(ただし、a<=b)。
 abs(a)はaの絶対値を返す関数である。
 Int(a)はaの整数値を返す関数である。
 floor(a)はa以下の最大の整数を返す関数である。
 ceil(a)はa以上の最小の整数を返す関数である。
 a/dはdによるaの除算(小数点以下切り捨て)を表す。
  <符号化データTeの構造>
 本実施形態に係る画像符号化装置11および画像復号装置31の詳細な説明に先立って、画像符号化装置11によって生成され、画像復号装置31によって復号される符号化データTeのデータ構造について説明する。
 図4は、符号化データTeにおけるデータの階層構造を示す図である。符号化データTeは、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。図4には、シーケンスSEQを既定する符号化ビデオシーケンス、ピクチャPICTを規定する符号化ピクチャ、スライスSを規定する符号化スライス、スライスデータを規定する符号化スライスデータ、符号化スライスデータに含まれる符号化ツリーユニット、符号化ツリーユニットに含まれる符号化ユニットを示す図が示されている。
  (符号化ビデオシーケンス)
 符号化ビデオシーケンスでは、処理対象のシーケンスSEQを復号するために画像復号装置31が参照するデータの集合が規定されている。シーケンスSEQは、図4に示すように、ビデオパラメータセットVPS(Video Parameter Set)、シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、Adaptation Parameter Set(APS)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。
 ビデオパラメータセットVPSでは、複数のレイヤから構成されている動画像において、複数の動画像に共通する符号化パラメータの集合および動画像に含まれる複数のレイヤおよび個々のレイヤに関連する符号化パラメータの集合が規定されている。
 シーケンスパラメータセットSPSでは、対象シーケンスを復号するために画像復号装置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの幅や高さが規定される。なお、SPSは複数存在してもよい。その場合、PPSから複数のSPSの何れかを選択する。
 ここで、シーケンスパラメータセットSPSには以下のシンタックス要素が含まれる。
・ref_pic_resampling_enabled_flag:対象SPSを参照する単一のシーケンスに含まれる各画像を復号する場合に、解像度を可変とする機能(リサンプリング:resampling)を用いるか否かを規定するフラグである。別の側面から言えば、当該フラグは、予測画像の生成において参照される参照ピクチャのサイズが、単一のシーケンスが示す各画像間において変化することを示すフラグである。当該フラグの値が1である場合、上記リサンプリングが適用され、0である場合、適用されない。
・pic_width_max_in_luma_samples:単一のシーケンスにおける画像のうち、最大の幅を有する画像の幅を、輝度ブロック単位で指定するシンタックス要素である。また、当該シンタックス要素の値は、0ではなく、且つMax(8, MinCbSizeY)の整数倍であることが要求される。ここで、MinCbSizeYは、輝度ブロックの最小サイズによって定まる値である。
・pic_height_max_in_luma_samples:単一のシーケンスにおける画像のうち、最大の高さを有する画像の高さを、輝度ブロック単位で指定するシンタックス要素である。また、当該シンタックス要素の値は、0ではなく、且つMax(8, MinCbSizeY)の整数倍であることが要求される。
・sps_temporal_mvp_enabled_flag:対象シーケンスを復号する場合において、時間動きベクトル予測を用いるか否かを規定するフラグである。当該フラグの値が1であれば時間動きベクトル予測が用いられ、値が0であれば時間動きベクトル予測は用いられない。また、当該フラグを規定することにより、異なる解像度の参照ピクチャを参照する場合等に、参照する座標位置がずれてしまうことを防ぐことができる。
 ピクチャパラメータセットPPSでは、対象シーケンス内の各ピクチャを復号するために画像復号装置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの復号に用いられる量子化幅の基準値(pic_init_qp_minus26)や重み付き予測の適用を示すフラグ(weighted_pred_flag)が含まれる。なお、PPSは複数存在してもよい。その場合、対象シーケンス内の各ピクチャから複数のPPSの何れかを選択する。
 ここで、ピクチャパラメータセットPPSには以下のシンタックス要素が含まれる。
・pic_width_in_luma_samples:対象ピクチャの幅を指定するシンタックス要素である。当該シンタックス要素の値は、0ではなく、Max(8, MinCbSizeY)の整数倍であり、且つpic_width_max_in_luma_samples以下の値であることが要求される。
・pic_height_in_luma_samples:対象ピクチャの高さを指定するシンタックス要素である。当該シンタックス要素の値は、0ではなく、Max(8, MinCbSizeY)の整数倍であり、且つpic_height_max_in_luma_samples以下の値であることが要求される。
・conformance_window_flag:コンフォーマンス(クロッピング)ウィンドウオフセットパラメータが続いて通知されるか否かを示すフラグである。コンフォーマンスウィンドウオフセットパラメータはコンフォーマンスウィンドウを表示する場所を示す。このフラグが1である場合、当該パラメータが通知され、0である場合、当該パラメータが存在しないことを示す。
・conf_win_left_offset、conf_win_right_offset、conf_win_top_offset、conf_win_bottom_offset:出力用のピクチャ座標で指定される矩形領域に関して、復号処理で出力されるピクチャの左、右、上、下位置を指定するためのオフセット値である。また、conformance_window_flagの値が0である場合、conf_win_left_offset、conf_win_right_offset、conf_win_top_offset、conf_win_bottom_offsetの値は0であるものと推定される。
・scaling_window_flag:スケーリングウインドウオフセットパラメータが対象PPSに存在するか否かを示すフラグであって、出力される画像サイズの規定に関するフラグである。このフラグが1である場合、当該パラメータがPPSに存在することを示しており、このフラグが0である場合、当該パラメータがPPSに存在しないことを示している。また、ref_pic_resampling_enabled_flagの値が0である場合、scaling_window_flagの値も0であることが要求される。
・scaling_win_left_offset、scaling_win_right_offset、scaling_win_top_offset、scaling_win_bottom_offset:スケーリング比率計算のために画像サイズに適用されるオフセットを、それぞれ、対象ピクチャの左、右、上、下位置について輝度サンプル単位で指定するシンタックス要素である。また、scaling_window_flagの値が0である場合、scaling_win_left_offset、scaling_win_right_offset、scaling_win_top_offset、scaling_win_bottom_offsetの値は0であるものと推定される。また、scaling_win_left_offset + scaling_win_right_offsetの値はpic_width_in_luma_samples未満であること、及びscaling_win_top_offset + scaling_win_bottom_offsetの値はpic_height_in_luma_samples未満であることが要求される。
 出力用ピクチャの幅PicOutputWidthLと高さPicOutputHeightLは以下で導出される。
 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)
  (符号化ピクチャ)
 符号化ピクチャでは、処理対象のピクチャPICTを復号するために画像復号装置31が参照するデータの集合が規定されている。ピクチャPICTは、図4に示すように、ピクチャヘッダPH、スライス0~スライスNS-1を含む(NSはピクチャPICTに含まれるスライスの総数)。
 以下、スライス0~スライスNS-1のそれぞれを区別する必要が無い場合、符号の添え字を省略して記述することがある。また、以下に説明する符号化データTeに含まれるデータであって、添え字を付している他のデータについても同様である。
 ピクチャヘッダには、以下のシンタックス要素が含まれる。
・pic_temporal_mvp_enabled_flag:当該ピクチャヘッダに関連付けられたスライスのインター予測に時間動きベクトル予測を用いるか否かを規定するフラグである。当該フラグの値が0である場合、当該ピクチャヘッダに関連付けられたスライスのシンタックス要素は、そのスライスの復号において時間動きベクトル予測が用いられないように制限される。当該フラグの値が1である場合、当該ピクチャヘッダに関連付けられたスライスの復号に時間動きベクトル予測が用いられることを示している。また、当該フラグが規定されていない場合、値が0であるものと推定される。
  (符号化スライス)
 符号化スライスでは、処理対象のスライスSを復号するために画像復号装置31が参照するデータの集合が規定されている。スライスは、図4に示すように、スライスヘッダ、および、スライスデータを含んでいる。
 スライスヘッダには、対象スライスの復号方法を決定するために画像復号装置31が参照する符号化パラメータ群が含まれる。スライスタイプを指定するスライスタイプ指定情報(slice_type)は、スライスヘッダに含まれる符号化パラメータの一例である。
 スライスタイプ指定情報により指定可能なスライスタイプとしては、(1)符号化の際にイントラ予測のみを用いるIスライス、(2)符号化の際に単予測(L0予測)、または、イントラ予測を用いるPスライス、(3)符号化の際に単予測(L0予測或いはL1予測)、双予測、または、イントラ予測を用いるBスライスなどが挙げられる。なお、インター予測は、単予測、双予測に限定されず、より多くの参照ピクチャを用いて予測画像を生成してもよい。以下、P、Bスライスと呼ぶ場合には、インター予測を用いることができるブロックを含むスライスを指す。
 なお、スライスヘッダは、ピクチャパラメータセットPPSへの参照(pic_parameter_set_id)を含んでいても良い。
  (符号化スライスデータ)
 符号化スライスデータでは、処理対象のスライスデータを復号するために画像復号装置31が参照するデータの集合が規定されている。スライスデータは、図4の符号化スライスヘッダに示すように、CTUを含んでいる。CTUは、スライスを構成する固定サイズ(例えば64x64)のブロックであり、最大符号化単位(LCU:Largest Coding Unit)と呼ぶこともある。
  (符号化ツリーユニット)
 図4には、処理対象のCTUを復号するために画像復号装置31が参照するデータの集合が規定されている。CTUは、再帰的な4分木分割(QT(Quad Tree)分割)、2分木分割(BT(Binary Tree)分割)あるいは3分木分割(TT(Ternary Tree)分割)により、符号化処理の基本的な単位である符号化ユニットCUに分割される。BT分割とTT分割を合わせてマルチツリー分割(MT(Multi Tree)分割)と呼ぶ。再帰的な4分木分割により得られる木構造のノードのことを符号化ノード(Coding Node)と称する。4分木、2分木、及び3分木の中間ノードは、符号化ノードであり、CTU自身も最上位の符号化ノードとして規定される。
 CTは、CT情報として、CT分割を行うか否かを示すCU分割フラグ(split_cu_flag)、QT分割を行うか否かを示すQT分割フラグ(qt_split_cu_flag)、MT分割の分割方向を示すMT分割方向(mtt_split_cu_vertical_flag)、MT分割の分割タイプを示すMT分割タイプ(mtt_split_cu_binary_flag)を含む。split_cu_flag、qt_split_cu_flag、mtt_split_cu_vertical_flag、mtt_split_cu_binary_flagは符号化ノード毎に伝送される。
  (符号化ユニット)
 図4は、処理対象の符号化ユニットを復号するために画像復号装置31が参照するデータの集合が規定されている。具体的には、CUは、CUヘッダCUH、予測パラメータ、変換パラメータ、量子化変換係数等から構成される。CUヘッダでは予測モード等が規定される。
 予測処理は、CU単位で行われる場合と、CUをさらに分割したサブCU単位で行われる場合がある。CUとサブCUのサイズが等しい場合には、CU中のサブCUは1つである。CUがサブCUのサイズよりも大きい場合、CUはサブCUに分割される。たとえばCUが8x8、サブCUが4x4の場合、CUは水平2分割、垂直2分割からなる、4つのサブCUに分割される。
 予測の種類(予測モード)は、イントラ予測と、インター予測の2つがある。イントラ予測は、同一ピクチャ内の予測であり、インター予測は、互いに異なるピクチャ間(例えば、表示時刻間、レイヤ画像間)で行われる予測処理を指す。
 変換・量子化処理はCU単位で行われるが、量子化変換係数は4x4等のサブブロック単位でエントロピー符号化してもよい。
  (予測パラメータ)
 予測画像は、ブロックに付随する予測パラメータによって導出される。予測パラメータには、イントラ予測とインター予測の予測パラメータがある。
 以下、インター予測の予測パラメータについて説明する。インター予測パラメータは、予測リスト利用フラグpredFlagL0とpredFlagL1、参照ピクチャインデックスrefIdxL0とrefIdxL1、動きベクトルmvL0とmvL1から構成される。predFlagL0、predFlagL1は、参照ピクチャリスト(L0リスト、L1リスト)が用いられるか否かを示すフラグであり、値が1の場合に対応する参照ピクチャリストが用いられる。なお、本明細書中「XXであるか否かを示すフラグ」と記す場合、フラグが0以外(たとえば1)をXXである場合、0をXXではない場合とし、論理否定、論理積などでは1を真、0を偽と扱う(以下同様)。但し、実際の装置や方法では真値、偽値として他の値を用いることもできる。
 インター予測パラメータを導出するためのシンタックス要素には、例えば、マージモードで用いるアフィンフラグaffine_flag、マージフラグmerge_flag、マージインデックスmerge_idx、MMVDフラグmmvd_flag、AMVPモードで用いる参照ピクチャを選択するためのインター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、動きベクトルを導出するための予測ベクトルインデックスmvp_LX_idx、差分ベクトルmvdLX、動きベクトル精度モードamvr_modeがある。
  (参照ピクチャリスト)
 参照ピクチャリストは、参照ピクチャメモリ306に記憶された参照ピクチャからなるリストである。図6は、参照ピクチャおよび参照ピクチャリストの一例を示す概念図である。図6の参照ピクチャの一例を示す概念図において、矩形はピクチャ、矢印はピクチャの参照関係、横軸は時間、矩形中のI、P、Bは各々イントラピクチャ、単予測ピクチャ、双予測ピクチャ、矩形中の数字は復号順を示す。図に示すように、ピクチャの復号順は、I0、P1、B2、B3、B4であり、表示順は、I0、B3、B2、B4、P1である。図6には、ピクチャB3(対象ピクチャ)の参照ピクチャリストの例を示されている。参照ピクチャリストは、参照ピクチャの候補を表すリストであり、1つのピクチャ(スライス)が1つ以上の参照ピクチャリストを有してもよい。図の例では、対象ピクチャB3は、L0リストRefPicList0およびL1リストRefPicList1の2つの参照ピクチャリストを持つ。個々のCUでは、参照ピクチャリストRefPicListX(X=0または1)中のどのピクチャを実際に参照するかをrefIdxLXで指定する。図は、refIdxL0=2、refIdxL1=0の例である。なお、LXは、L0予測とL1予測を区別しない場合に用いられる記述方法であり、以降では、LXをL0、L1に置き換えることでL0リストに対するパラメータとL1リストに対するパラメータを区別する。
  (マージ予測とAMVP予測)
 予測パラメータの復号(符号化)方法には、マージ予測(merge)モードとAMVP(Advanced Motion Vector Prediction、適応動きベクトル予測)モードがあり、merge_flagは、これらを識別するためのフラグである。マージ予測モードは、予測リスト利用フラグpredFlagLX、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXを符号化データに含めずに、既に処理した近傍ブロックの予測パラメータ等から導出するモードである。AMVPモードは、inter_pred_idc、refIdxLX、mvLXを符号化データに含めるモードである。なお、mvLXは、予測ベクトルmvpLXを識別するmvp_LX_idxと差分ベクトルmvdLXとして符号化される。また、マージ予測モードの他に、アフィン予測モード、MMVD予測モードがあってもよい。
 inter_pred_idcは、参照ピクチャの種類および数を示す値であり、PRED_L0、PRED_L1、PRED_BIの何れかの値をとる。PRED_L0、PRED_L1は、各々L0リスト、L1リストで管理された1枚の参照ピクチャを用いる単予測を示す。PRED_BIはL0リストとL1リストで管理された2枚の参照ピクチャを用いる双予測を示す。
 merge_idxは、処理が完了したブロックから導出される予測パラメータ候補(マージ候補)のうち、いずれの予測パラメータを対象ブロックの予測パラメータとして用いるかを示すインデックスである。
  (動きベクトル)
 mvLXは、異なる2つのピクチャ上のブロック間のシフト量を示す。mvLXに関する予測ベクトル、差分ベクトルを、それぞれmvpLX、mvdLXと呼ぶ。
 (インター予測識別子inter_pred_idcと予測リスト利用フラグpredFlagLX)
 inter_pred_idcと、predFlagL0、predFlagL1の関係は以下のとおりであり、相互に変換可能である。
 inter_pred_idc = (predFlagL1<<1)+predFlagL0
 predFlagL0 = inter_pred_idc & 1
 predFlagL1 = inter_pred_idc >> 1
  (画像復号装置の構成)
 本実施形態に係る画像復号装置31(図7)の構成について説明する。
 画像復号装置31は、エントロピー復号部301、パラメータ復号部(予測画像復号装置)302、ループフィルタ305、参照ピクチャメモリ306、予測パラメータメモリ307、予測画像生成部(予測画像生成装置)308、逆量子化・逆変換部311、及び加算部312、予測パラメータ導出部320を含んで構成される。なお、後述の画像符号化装置11に合わせ、画像復号装置31にループフィルタ305が含まれない構成もある。
 パラメータ復号部302は、さらに、ヘッダ復号部3020、CT情報復号部3021、及びCU復号部3022(予測モード復号部)を備えており、CU復号部3022はさらにTU復号部3024を備えている。これらを総称して復号モジュールと呼んでもよい。ヘッダ復号部3020は、符号化データからVPS、SPS、PPS、APSなどのパラメータセット情報、スライスヘッダ(スライス情報)を復号する。CT情報復号部3021は、符号化データからCTを復号する。CU復号部3022は符号化データからCUを復号する。TU復号部3024は、TUに予測誤差が含まれている場合に、符号化データからQP更新情報(量子化補正値)と量子化予測誤差(residual_coding)を復号する。
 TU復号部3024は、スキップモード以外(skip_mode==0)の場合に、符号化データからQP更新情報と量子化予測誤差を復号する。より具体的には、TU復号部3024は、skip_mode==0の場合に、対象ブロックに量子化予測誤差が含まれているか否かを示すフラグcu_cbpを復号し、cu_cbpが1の場合に量子化予測誤差を復号する。cu_cbpが符号化データに存在しない場合は0と導出する。
 予測画像生成部308は、インター予測画像生成部309及びイントラ予測画像生成部310を含んで構成される。
 予測パラメータ導出部320は、インター予測パラメータ導出部303及びイントラ予測パラメータ導出部304を含んで構成される。
 また、以降では処理の単位としてCTU、CUを使用した例を記載するが、この例に限らず、サブCU単位で処理をしてもよい。あるいはCTU、CUをブロック、サブCUをサブブロックと読み替え、ブロックあるいはサブブロック単位の処理としてもよい。
 エントロピー復号部301は、外部から入力された符号化データTeに対してエントロピー復号を行って、個々の符号(シンタックス要素)を復号する。
 エントロピー復号部301は、復号した符号をパラメータ復号部302に出力する。復号した符号とは、例えば、予測モードpredMode、merge_flag、merge_idx、inter_pred_idc、refIdxLX、mvp_LX_idx、mvdLX、amvr_mode等である。どの符号を復号するかの制御は、パラメータ復号部302の指示に基づいて行われる。
  (基本フロー)
 図8は、画像復号装置31の概略的動作を説明するフローチャートである。
 (S1100:パラメータセット情報復号)ヘッダ復号部3020は、符号化データからVPS、SPS、PPSなどのパラメータセット情報を復号する。
 (S1200:スライス情報復号)ヘッダ復号部3020は、符号化データからスライスヘッダ(スライス情報)を復号する。
 以下、画像復号装置31は、対象ピクチャに含まれる各CTUについて、S1300からS5000の処理を繰り返すことにより各CTUの復号画像を導出する。
 (S1300:CTU情報復号)CT情報復号部3021は、符号化データからCTUを復号する。
 (S1400:CT情報復号)CT情報復号部3021は、符号化データからCTを復号する。
 (S1500:CU復号)CU復号部3022はS1510、S1520を実施して、符号化データからCUを復号する。
 (S1510:CU情報復号)CU復号部3022は、符号化データからCU情報、予測情報、TU分割フラグsplit_transform_flag、CU残差フラグcbf_cb、cbf_cr、cbf_luma等を復号する。
 (S1520:TU情報復号)TU復号部3024は、TUに予測誤差が含まれている場合に、符号化データからQP更新情報と量子化予測誤差、変換インデックスmts_idxを復号する。なお、QP更新情報は、量子化パラメータQPの予測値である量子化パラメータ予測値qPpredからの差分値である。
 (S2000:予測画像生成)予測画像生成部308は、対象CUに含まれる各ブロックについて、予測情報に基づいて予測画像を生成する。
 (S3000:逆量子化・逆変換)逆量子化・逆変換部311は、対象CUに含まれる各TUについて、逆量子化・逆変換処理を実行する。
 (S4000:復号画像生成)加算部312は、予測画像生成部308より供給される予測画像と、逆量子化・逆変換部311より供給される予測誤差とを加算することによって、対象CUの復号画像を生成する。
 (S5000:ループフィルタ)ループフィルタ305は、復号画像にデブロッキングフィルタ、SAO、ALFなどのループフィルタをかけ、復号画像を生成する。
  (インター予測パラメータ導出部の構成)
 図9には、本実施形態に係るインター予測パラメータ導出部303の構成を示す概略図が示されている。インター予測パラメータ導出部303は、パラメータ復号部302から入力されたシンタックス要素に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してインター予測パラメータを導出する。また、インター予測パラメータをインター予測画像生成部309、予測パラメータメモリ307に出力する。インター予測パラメータ導出部303及びその内部の要素であるAMVP予測パラメータ導出部3032、マージ予測パラメータ導出部3036、アフィン予測部30372、MMVD予測部30373、GPM部30377、DMVR部30537、MV加算部3038は、画像符号化装置、画像復号装置で共通する手段であるので、これらを総称して動きベクトル導出部(動きベクトル導出装置)と称してもよい。
 スケールパラメータ導出部30378は、参照ピクチャの水平方向のスケーリング比RefPicScale[i][j][0]、および、参照ピクチャの垂直方向のスケーリング比RefPicScale[i][j][1]、及び、参照ピクチャがスケーリングされているか否かを示すRefPicIsScaled[i][j]を導出する。ここで、iは参照ピクチャリストがL0リストかL1リストであるかを示し、jをL0参照ピクチャリストあるいはL1参照ピクタyリストの値として、次のように導出する。
 RefPicScale[i][j][0] =
  ((fRefWidth << 14)+(PicOutputWidthL >> 1)) / PicOutputWidthL
 RefPicScale[ i ][ j ][ 1 ] =
  ((fRefHeight << 14)+(PicOutputHeightL >> 1)) / PicOutputHeightL
 RefPicIsScaled[i][j] =
  (RefPicScale[i][j][0] != (1<<14)) || (RefPicScale[i][j][1] != (1<<14))
 ここで、変数PicOutputWidthLは、符号化ピクチャが参照される時に水平方向のスケーリング比を計算する時の値であり、符号化ピクチャの輝度の水平方向の画素数から左右のオフセット値を引いたものが用いられる。変数PicOutputHeightLは、符号化ピクチャが参照される時に垂直方向のスケーリング比を計算する時の値であり、符号化ピクチャの輝度の垂直方向の画素数から上下のオフセット値を引いたものが用いられる。変数fRefWidthは、リストiの参照リスト値jの参照ピクチャのPicOutputWidthLの値とし、変数fRefHightは、リストiの参照ピクチャリスト値jの参照ピクチャのPicOutputHeightLの値とする。
 affine_flagが1、すなわち、アフィン予測モードを示す場合、アフィン予測部30372は、サブブロック単位のインター予測パラメータを導出する。
 mmvd_flagが1、すなわち、MMVD予測モードを示す場合、MMVD予測部30373は、マージ予測パラメータ導出部3036で導出されるマージ候補と差分ベクトルからインター予測パラメータを導出する。
 gpm_flagが1、すなわち、Geometric Partitioning Modeを示す場合、GPM部30377はGPMパラメータを導出する。
 merge_flagが1、すなわち、マージ予測モードを示す場合、merge_idxを導出し、マージ予測パラメータ導出部3036に出力する。
 merge_flagが0、すなわち、AMVP予測モードを示す場合、AMVP予測パラメータ導出部3032はinter_pred_idc、refIdxLXかmvp_LX_idxからmvpLXを導出する。
  (MV加算部)
 MV加算部3038では導出されたmvpLXとmvdLXを加算し、mvLXを導出する。
  (アフィン予測部)
 アフィン予測部30372は、1)対象ブロックの2つの制御点CP0、CP1、もしくは3つの制御点CP0, CP1, CP2の動きベクトルを導出し、2)対象ブロックのアフィン予測パラメータを導出し、3)アフィン予測パラメータから各サブブロックの動きベクトルを導出する。
  (マージ予測)
 マージ予測パラメータ導出部3036は、対象ブロックの空間近傍ブロックあるいは時間近傍ブロックの予測パラメータ(mvLX、refIdxLX等)を用いて、対象ブロックの予測パラメータを導出する。
  (DMVR)
 続いて、DMVR部30375はDMVR(Decoder side Motion Vector Refinement)処理を行う。DMVR部30375は、対象CUに対して、merge_flagが1、又は、スキップフラグskip_flagが1の場合、当該対象CUの動きベクトルmvLXを修正する。具体的には、マージ予測部30374が導出する予測パラメータが双予測である場合、2つの参照ピクチャと動きベクトルから導出される予測画像を用いてmvLXを修正する。修正後のmvLXはインター予測画像生成部309に供給される。
  (AMVP予測)
 AMVP予測パラメータ導出部3032は、予測ベクトル候補のうち、mvp_LX_idxが示す動きベクトルmvpListLX[mvp_LX_idx]をmvpLXとして選択し、MV加算部3038に出力する。
  (MV加算部)
 MV加算部3038は、AMVP予測パラメータ導出部3032から入力されたmvpLXと復号したmvdLXを加算してmvLXを算出する。加算部3038は、算出したmvLXをインター予測画像生成部309および予測パラメータメモリ307に出力する。
 mvLX[0] = mvpLX[0]+mvdLX[0]
 mvLX[1] = mvpLX[1]+mvdLX[1]
 ループフィルタ305は、符号化ループ内に設けたフィルタで、ブロック歪やリンギング歪を除去し、画質を改善するフィルタである。ループフィルタ305は、加算部312が生成したCUの復号画像に対し、デブロッキングフィルタ、サンプル適応オフセット(SAO)、適応ループフィルタ(ALF)等のフィルタを施す。
 ループフィルタ305は、後述する後処理装置61を含んでいてもよい。つまり、後述の後処理装置61は、符号化データで伝送されるフィルタ情報から、第1のモデルパラメータを用いてニューラルネットワークにより出力画像を導出してもよい。第1のモデルパラメータはモデル統合処理により導出される。
 参照ピクチャメモリ306は、CUの復号画像を、対象ピクチャ及び対象CU毎に予め定めた位置に記憶する。
 予測パラメータメモリ307は、CTUあるいはCU毎に予め定めた位置に予測パラメータを記憶する。具体的には、予測パラメータメモリ307は、パラメータ復号部302が復号したパラメータ及び予測パラメータ導出部320が導出したパラメータ等を記憶する。
 予測画像生成部308には予測パラメータ導出部320が導出したパラメータが入力される。また、予測画像生成部308は、参照ピクチャメモリ306から参照ピクチャを読み出す。予測画像生成部308は、predModeが示す予測モードで、パラメータと参照ピクチャ(参照ピクチャブロック)を用いてブロックもしくはサブブロックの予測画像を生成する。ここで、参照ピクチャブロックとは、参照ピクチャ上の画素の集合(通常矩形であるのでブロックと呼ぶ)であり、予測画像を生成するために参照する領域である。
  (インター予測画像生成部309)
 predModeがインター予測モードを示す場合、インター予測画像生成部309は、インター予測パラメータ導出部303から入力されたインター予測パラメータと参照ピクチャを用いてインター予測によりブロックもしくはサブブロックの予測画像を生成する。
 図10は、本実施形態に係る予測画像生成部308に含まれるインター予測画像生成部309の構成を示す概略図である。インター予測画像生成部309は、動き補償部(予測画像生成装置)3091、合成部3095を含んで構成される。合成部3095は、IntraInter合成部30951、GPM合成部30952、BDOF部30954、重み予測部3094を含んで構成される。
  (動き補償)
 動き補償部3091(補間画像生成部3091)は、インター予測パラメータ導出部303から入力された、インター予測パラメータ(predFlagLX、refIdxLX、mvLX)に基づいて、参照ピクチャメモリ306から参照ブロックを読み出すことによって補間画像(動き補償画像)を生成する。参照ブロックは、refIdxLXで指定された参照ピクチャRefPicLX上で、対象ブロックの位置からmvLXシフトした位置のブロックである。ここで、mvLXが整数精度でない場合には、動き補償フィルタと呼ばれる小数位置の画素を生成するためのフィルタを施して、補間画像を生成する。
 なお、動き補償部3091は、スケールパラメータ導出部30378で導出された参照ピクチャの水平方向のスケーリング比RefPicScale[i][j][0]、および、参照ピクチャの垂直方向のスケーリング比RefPicScale[i][j][1]に応じて、補間画像をスケーリングする機能を有している。
 合成部3095は、IntraInter合成部30951、GPM合成部30952、重み予測部3094、BDOF部30954を備えている。
  (IntraInter合成処理)
 IntraInter合成部30951は、インター予測画像とイントラ予測画像の重み付け和により予測画像を生成する。
  (GPM合成処理)
 GPM合成部30952は、上述したGPMを用いた予測画像を生成する。
 (BDOF予測)
 BDOF部30954は、双予測モードにおいて、2つの予測画像(第1の予測画像及び第2の予測画像)及び勾配補正項を参照して予測画像を生成する。
  (重み予測)
 重み予測部3094は、補間画像PredLXから重み予測を行いブロックの予測画像pbSamplesを生成する。
 イントラ予測画像生成部310は、predModeがイントラ予測モードを示す場合、イントラ予測パラメータ導出部304から入力されたイントラ予測パラメータと参照ピクチャメモリ306から読み出した参照画素を用いてイントラ予測を行う。
 逆量子化・逆変換部311は、パラメータ復号部302から入力された量子化変換係数を逆量子化して変換係数を求める。
 加算部312は、予測画像生成部308から入力されたブロックの予測画像と逆量子化・逆変換部311から入力された予測誤差を画素毎に加算して、ブロックの復号画像を生成する。加算部312はブロックの復号画像を参照ピクチャメモリ306に記憶し、また、ループフィルタ305に出力する。
 逆量子化・逆変換部311は、パラメータ復号部302から入力された量子化変換係数を逆量子化して変換係数を求める。
 加算部312は、予測画像生成部308から入力されたブロックの予測画像と逆量子化・逆変換部311から入力された予測誤差を画素毎に加算して、ブロックの復号画像を生成する。加算部312はブロックの復号画像を参照ピクチャメモリ306に記憶し、また、ループフィルタ305に出力する。
  (画像符号化装置の構成)
 次に、本実施形態に係る画像符号化装置11の構成について説明する。図11は、本実施形態に係る画像符号化装置11の構成を示すブロック図である。画像符号化装置11は、予測画像生成部101、減算部102、変換・量子化部103、逆量子化・逆変換部105、加算部106、ループフィルタ107、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)108、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)109、符号化パラメータ決定部110、パラメータ符号化部111、予測パラメータ導出部120、エントロピー符号化部104を含んで構成される。
 予測画像生成部101はCU毎に予測画像を生成する。予測画像生成部101は既に説明したインター予測画像生成部309とイントラ予測画像生成部310を含んでおり、説明を省略する。
 減算部102は、予測画像生成部101から入力されたブロックの予測画像の画素値を、画像Tの画素値から減算して予測誤差を生成する。減算部102は予測誤差を変換・量子化部103に出力する。
 変換・量子化部103は、減算部102から入力された予測誤差に対し、周波数変換によって変換係数を算出し、量子化によって量子化変換係数を導出する。変換・量子化部103は、量子化変換係数をパラメータ符号化部111及び逆量子化・逆変換部105に出力する。
 逆量子化・逆変換部105は、画像復号装置31における逆量子化・逆変換部311(図7)と同じであり、説明を省略する。算出した予測誤差は加算部106に出力される。
 パラメータ符号化部111は、ヘッダ符号化部1110、CT情報符号化部1111、CU符号化部1112(予測モード符号化部)を備えている。CU符号化部1112はさらにTU符号化部1114を備えている。以下、各モジュールの概略動作を説明する。
 ヘッダ符号化部1110はフィルタ情報、ヘッダ情報、分割情報、予測情報、量子化変換係数等のパラメータの符号化処理を行う。
 CT情報符号化部1111は、QT、MT(BT、TT)分割情報等を符号化する。
 CU符号化部1112はCU情報、予測情報、分割情報等を符号化する。
 TU符号化部1114は、TUに予測誤差が含まれている場合に、QP更新情報と量子化予測誤差を符号化する。
 CT情報符号化部1111、CU符号化部1112は、インター予測パラメータ(predMode、merge_flag、merge_idx、inter_pred_idc、refIdxLX、mvp_LX_idx、mvdLX)、イントラ予測パラメータ(intra_luma_mpm_flag、intra_luma_mpm_idx、intra_luma_mpm_reminder、intra_chroma_pred_mode)、量子化変換係数等のシンタックス要素をパラメータ符号化部111に供給する。
 エントロピー符号化部104には、パラメータ符号化部111から量子化変換係数と符号化パラメータ(分割情報、予測パラメータ)が入力される。エントロピー符号化部104はこれらをエントロピー符号化して符号化データTeを生成し、出力する。
 予測パラメータ導出部120は、インター予測パラメータ符号化部112、イントラ予測パラメータ符号化部113を含む手段であり、符号化パラメータ決定部110から入力されたパラメータからイントラ予測パラメータ及びイントラ予測パラメータを導出する。導出されたイントラ予測パラメータ及びイントラ予測パラメータは、パラメータ符号化部111に出力される。
  (インター予測パラメータ符号化部の構成)
 インター予測パラメータ符号化部112は、パラメータ符号化制御部1121、インター予測パラメータ導出部303を含んで構成される。インター予測パラメータ導出部303は画像復号装置と共通の構成である。パラメータ符号化制御部1121は、マージインデックス導出部11211とベクトル候補インデックス導出部11212を含む。
 マージインデックス導出部11211は、マージ候補等を導出し、インター予測パラメータ導出部303に出力する。ベクトル候補インデックス導出部11212は予測ベクトル候補等を導出し、インター予測パラメータ導出部303とパラメータ符号化部111に出力する。
  (イントラ予測パラメータ符号化部113の構成)
 イントラ予測パラメータ符号化部113は、パラメータ符号化制御部1131とイントラ予測パラメータ導出部304を備える。イントラ予測パラメータ導出部304は画像復号装置と共通の構成である。
 パラメータ符号化制御部1131はIntraPredModeYおよびIntraPredModeCを導出する。さらにmpmCandList[]を参照してintra_luma_mpm_flagを決定する。これらの予測パラメータをイントラ予測パラメータ導出部304とパラメータ符号化部111に出力する。
 ただし、画像復号装置と異なり、インター予測パラメータ導出部303、イントラ予測パラメータ導出部304への入力は符号化パラメータ決定部110、予測パラメータメモリ108であり、パラメータ符号化部111に出力する。
 加算部106は、予測画像生成部101から入力された予測ブロックの画素値と逆量子化・逆変換部105から入力された予測誤差を画素毎に加算して復号画像を生成する。加算部106は生成した復号画像を参照ピクチャメモリ109に記憶する。
 ループフィルタ107は加算部106が生成した復号画像に対し、デブロッキングフィルタ、SAO、ALFを施す。なお、ループフィルタ107は、必ずしも上記3種類のフィルタを含まなくてもよく、例えばデブロッキングフィルタのみの構成であってもよい。
 予測パラメータメモリ108は、符号化パラメータ決定部110が生成した予測パラメータを、対象ピクチャ及びCU毎に予め定めた位置に記憶する。
 参照ピクチャメモリ109は、ループフィルタ107が生成した復号画像を対象ピクチャ及びCU毎に予め定めた位置に記憶する。
 符号化パラメータ決定部110は、符号化パラメータの複数のセットのうち、1つのセットを選択する。符号化パラメータとは、上述したQT、BTあるいはTT分割情報、予測パラメータ、あるいはこれらに関連して生成される符号化の対象となるパラメータである。予測画像生成部101は、これらの符号化パラメータを用いて予測画像を生成する。
 符号化パラメータ決定部110は、複数のセットの各々について情報量の大きさと符号化誤差を示すRDコスト値を算出する。RDコスト値は、例えば、符号量と二乗誤差に係数λを乗じた値との和である。符号量は、量子化誤差と符号化パラメータをエントロピー符号化して得られる符号化データTeの情報量である。二乗誤差は、減算部102において算出された予測誤差の二乗和である。係数λは、予め設定されたゼロよりも大きい実数である。符号化パラメータ決定部110は、算出したコスト値が最小となる符号化パラメータのセットを選択する。符号化パラメータ決定部110は決定した符号化パラメータをパラメータ符号化部111と予測パラメータ導出部120に出力する。
 なお、上述した実施形態における画像符号化装置11、画像復号装置31の一部、例えば、エントロピー復号部301、パラメータ復号部302、ループフィルタ305、予測画像生成部308、逆量子化・逆変換部311、加算部312、予測パラメータ導出部320、予測画像生成部101、減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、ループフィルタ107、符号化パラメータ決定部110、パラメータ符号化部111、予測パラメータ導出部120をコンピュータで実現するようにしても良い。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、画像符号化装置11、画像復号装置31のいずれかに内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
 また、上述した実施形態における画像符号化装置11、画像復号装置31の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現しても良い。画像符号化装置11、画像復号装置31の各機能ブロックは個別にプロセッサ化しても良いし、一部、または全部を集積してプロセッサ化しても良い。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現しても良い。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いても良い。
 以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
 (モデル統合)
 本実施の形態の一例として、後処理装置61が備えるベースモデルニューラルネットワークのパラメータBaseModel[i](第2のモデルパラメータ)を用いて、新しいニューラルネットワークのパラメータWeightedModel[i](第1のモデルパラメータ)を導出する例を説明する(図12参照)。第1のモデルパラメータを導出する処理を本明細書では「モデル統合」と呼ぶ。
 第1のモデルパラメータは、第2のモデルパラメータの線形結合(重み付け平均)を用いて導出される。
 本実施形態では、モデル統合における重み付け平均の重みである重み係数weight_coeff[i]等を、符号化データとして動画像符号化装置10から動画像復号装置30に伝送する。フィルタ情報の符号化データは、SPS、PPS、APS、ピクチャヘッダ、スライスヘッダで伝送してもよいし、SEIで伝送してもよい。SPS、PPSおよびピクチャヘッダ、スライスヘッダは、各々、シーケンスレベル、ピクチャレベル、スライスレベルのパラメータの集合である。APSは複数のピクチャに適用可能なデータを集めたパラメータセットである。SEIは表示や後処理用のパラメータの集合である。
 なお、本明細書では、重み係数とバイアス、その他ニューラルネットワークのパラメータを区別せずに単にモデルパラメータと呼ぶ。モデルパラメータのパラメータ数をNumberOfParametersであらわす。
 (シンタックスの例)
 図13は、本実施の形態における後処理もしくはループフィルタ処理のための符号化データ(フィルタ情報)のシンタックスの一例を示す図である。
 フィルタ情報を規定する符号化データには、以下のシンタックス要素が含まれ得る。
・number_of_models:後処理装置61に備わるBaseModel[i]の数を示す。1以上の正の整数である。例えば、モデルが8つの場合、number_of_modelsの値は8である。number_of_modelsの代わりにモデルの数-1をnumber_of_models_minus1で符号化してもよい。
・log2_weight_denom_minus1:重み係数の精度を示す整数である。重み係数weight_coeff[i]は1/(1<<log2_weight_denom_minus_1+1)を単位とする固定小数点の数である。
・weight_flag[i]:重み係数が0以外であるか否かを示すフラグである(i=0..number_of_models-1)。各要素は1または0の1bitで表現され、weight_flag[i]が0の場合、weight_coeff[i]に0を代入する。weight_flag[i]には1の値を持つ要素が少なくとも一つ以上存在しなければならない。
・weight_coeff[i]:第1のモデルパラメータを導出するために用いられる重み係数である(i=0..number_of_models-1)。各要素は整数である。ここでse(v)は、符号化データとして重み係数に負を含む値を符号化するためのバイナリゼーションを用いることを示す。
・offset_coeff:第1のモデルパラメータを導出するために用いられる線形和の定数項(バイアス)を示す。整数値である。
 上記ヘッダ復号部は、非ゼロであるか否かを示すフラグを復号する。上記フラグが非ゼロを示す場合には、さらに重み係数の大きさを復号することにより、上記重み係数を復号し、上記フラグがゼロを示す場合には重み係数を0と導出する。これにより、少ない符号量で符号化された重み係数の復号が可能となる。
 上記ヘッダ復号部は、負値を取りうる上記重み係数を復号してもよい。これにより、後続のモデル統合部で導出される第1のモデルパラメータの導出の自由度を高めることができる効果を奏する。
 (モデル統合部612)
 図14は、図12において前記シンタックスを用いた第1のモデルパラメータWeightedModelを導出する方法の一例を示している。モデル統合部612は、符号化データを復号して得られるモデルjに対するweight_coeff[j]と、モデル統合部612があらかじめ備えるモデルjのモデルパラメータであるBaseModel[j]から、WeightedModelを導出する。
WeightedModel[i] = (Σ(weight_coeff[j] * BaseModel[j][i]) + offset_coeff + (1 <<log2_weight_denom_minus1)) >> (log2_weight_denom_minus1 + 1)(式Weight-1)
 Σはj = 0..number_of_models-1に対する総和である。ここでi=0..NumberOfParameters-1。NumberOfParametersはモデルパラメータのパラメータ数を示す。導出されたWeightedModel[i]は後処理部611に出力される。
 なお、オフセットoffset_coeffの加算は下式のようになくても構わない。
 WeightedModel[i] = (Σ(weight_coeff[j] * BaseModel[j][i]) + (1 << log2_weight_denom_minus1)) >> (log2_weight_denom_minus1 + 1)(式Weight-2)
 なお、モデル統合部612は、weight_flag[i]が0でない場合の数に応じて処理を切り替えてもよい。つまり、weight_flag[i] == 1となるモデルが番号j==iの1つだけの場合、特定のBaseModelのモデルパラメータをそのまま用いてもよい。
 numBaseModel = Σweight_flag[i]
Σはi=0..number_of_models-1の総和である。
if (numBaseModel == 1) {
 if (weight_flag[i] == 1)
  WeightedModel[i] = BaseModel[i][i] 
}
else {
 WeightedModel[i] = (Σ(weight_coeff[j] * BaseModel[j][i]) + offset_coeff + (1 << log2_weight_denom_minus1)) >> (log2_weight_denom_minus1 + 1) 
}
 モデル統合部612は、第1のモデルパラメータの導出において、weight_coeff[j]内に0以外の値を持つ要素が二つ以上存在する場合、第2のモデルパラメータの重み付け和を導出する。さらに、重み付け和にoffset_coeffを加算し、log2_weight_denom_minus1の値を用いて除算(あるいはシフト演算)してもよい。このようにして、第2のモデルパラメータを統合した第1のモデルパラメータが導出される。一方、weight_coeff[i]内に0以外の値を持つ要素が一つしか存在せず、その他の要素が0の場合、特定の第2のモデルパラメータが第1のモデルパラメータとして用いられる。これにより、少なくとも一つのモデルパラメータを使用した場合と比べて、高品質な画像を生成することが出来る。
 図15は図13のシンタックスを拡張した別の一例である。図15で追加されたシンタックスには以下が含まれる。
・scale_factor:画像の拡大率を示す正の整数である。scale_factorは例えば、拡大率1, 2, 4, 8であってもよい。あるいは、scale_factorの代わりに2を底とする対数表現のlog2_scale_factorを伝送してもよい。scale_factor=1<<log2_scale_factor。また、有理数として、1/NK単位での拡大縮小を可能とするために、scale_factor_divNKを伝送してもよい。ここで、scale_factor = scale_factor_divNK / NK。NKは2の指数乗であってもよい。scale_factor = scale_factor_divNK << log2(NK)。NKは例えば2, 4, 8, 16など。
・num_of_const_param:モデルパラメータのうち、重み係数を乗算しないパラメータ数を示す。
 なお、scale_factorとnum_of_const_paramは符号化データ中に両方含まれてもよいし、どちらか一方のみ含まれてもよい。符号化データ中に含まれない場合、scale_factorとnum_of_const_paramに固定値をセットするか、動画像復号装置側で適当に値を設定してもよい。
 モデル統合部612は、以下の計算で、第1のモデルパラメータを導出してもよい。
 WeightedModel[i] = (Σ(weight_coeff[j] * BaseModel[scale_factor][j][i]) + offset_coeff + (1 << log2_weight_denom_minus1)) >> (log2_weight_denom_minus1 + 1) (式Weight-3)
 この例では、モデル統合部612に含まれるBaseModelは画像の拡大率毎に異なるモデルパラメータを有してもよい。つまり、scale_factorを用い、scale_factor用のBaseModel[scale_factor]を選択することにより、解像度が異なる画像に対しても、好適なモデルパラメータを導出することができる。BaseModel[scale_factor][0]にはデフォルトのモデルパラメータが格納されている。
 まとめると、ヘッダ復号部3020は、ニューラルネットワークの入力画像サイズと出力画像サイズの間のスケールを示すscale_factorをさらに復号し、モデル統合部612は、スケールにより異なる第2のモデルパラメータを用いて、第1のモデルパラメータを導出してもよい。また、後処理部611は、上記スケールファクタが等倍以外を示す場合に、画像のサイズを変更するニューラルネットワーク処理(例えばUpsampling層)を一部に含むニューラルネットワークで、後処理を行ってもよい。
 また、すでに説明した(式Weight-1)もしくは(式Weight-2)を用いて、scale_factorによらずに、第1のモデルパラメータを導出してもよい。この場合、第1のモデルパラメータの導出方法は拡大率を用いず、拡大率ごとに第2のモデルパラメータを用意する必要がない。従って、第2のモデルパラメータを格納するメモリ量を少なくすることができる。なお、第1のモデルパラメータを用いて、後続の後処理部611のUpSampling部でscale_factorにあわせた解像度変換を行ってもよい。
 モデル統合部612は、第1のモデルパラメータの一部のパラメータをBaseModelの重み付けにより導出し、それ以外のパラメータは重みづけを行わずに、特定のBaseModelのパラメータBaseModel[scale_factor][0]を用いてもよい。図16は、第1のモデルパラメータの備えるNumberOfParameters個のパラメータのうち、一部(num_of_const_param)のパラメータは、ベースモデルのパラメータをそのまま用い、それ以外(NumberOfParameters-num_of_const_param)のパラメータは、重みづけにより導出する例を示す。つまり、モデル統合部612は、num_of_const_param個のパラメータは重みづけによらず第1のモデルパラメータを導出し、NumberOfParameters-num_of_const_param個のパラメータは重みづけにより第1のモデルパラメータを導出する。
 ここで、重みづけを行うi=0..NumberOfParameters-num_of_const_param-1のパラメータの導出方法は、上記の(式Weight-1)、(式Weight-2)、(式Weight-3)のいずれを用いてもよい。ヘッダ復号部3020は、第1のモデルパラメータのうち、重みづけをせずに導出するパラメータの数を示す情報(たとえばnum_of_const_param)を復号してもよい。
 BaseModelの前半部分(i=0..NumberOfParameters-num_of_const_param-1)は重みづけを行い、後半部分(i=NumberOfParameters-num_of_const_param..NumberOfParameters-1)は重みづけを行わない構成以外にも、前半部分は重みづけを行わず、後半部分は重みづけを行う構成や、中間部分のみだけ重みづけをする構成もある。
 また、重みづけを行わない場合も、モデル統合部612はBaseModel[i]をWeightedModel[i]に代入し、後処理部611はWeightedModel[i]を用いて後処理をする構成以外に、モデル統合部612は重みづけを行う部分のニューラルネットワークのモデルパラメータのみを導出する構成であってもよい。この構成では、後処理部611は重みづけを行う部分は導出されたニューラルネットワークのモデルパラメータを使って後処理を行い、重みづけしない部分は、BaseModel[i]のモデルパラメータをそのまま用いて、後処理部を行う。
 モデル統合部612は、以下の疑似コードで重みづけをしてもよい。
for (i = 0; i < num_of_const_param; i++) {
 tmp_s = 0
 for (j = 0; j < number_of_models; j++)
  tmp_s += (weight_coeff[j] * BaseModel[scale_factor][j][i])
 WeightedModel[i] = (tmp_s + offset_coeff + (1 << log2_weight_denom_minus1))
>> (log2_weight_denom_minus1 + 1)
}
for (i = num_of_const_param; i < NumberOfParameters; i++) {
 WeightedModel[i] = BaseModel[scale_factor][0][i]
}
 ここでは、前半部分は重みづけを行わず、後半部分は重みづけを行う構成を示している。また、拡大率ごとにBaseModelを用意しない構成でもよい。この場合のモデル統合部612の動作の一例を以下に示す。BaseModel[0]にはデフォルトのモデルパラメータが格納されている。
for (i = num_of_const_param; i < NumberOfParameters; i++) {
 tmp_s = 0
 for (j = 0; j < number_of_models; j++)
  tmp_s += (weight_coeff[j] * BaseModel[j][i])
 WeightedModel[i] = (tmp_s + offset_coeff + (1 << log2_weight_denom_minus1))
>> (log2_weight_denom_minus1 + 1)
}
for (i = 0; i < num_of_const_param; i++) {
 WeightedModel[i] = BaseModel[0][i]
}
 また、図示しないが、後述の後処理部611のUpSampling部に相当する部分は、重みづけを行わない構成としてもよい。
for (i = 0; i < num_of_const_param; i++) {
 tmp_s = 0
 for (j = 0; j < number_of_models; j++)
  tmp_s += (weight_coeff[j] * BaseModel[j][i])
 WeightedModel[i] = (tmp_s + offset_coeff + (1 << log2_weight_denom_minus1))
>> (log2_weight_denom_minus1 + 1)
}
for (i = num_of_const_param; i < NumberOfParameters; i++) {//upsampling部に相当
 WeightedModel[i] = BaseModel[0][i]
}
 前記シンタックスを用いることで、拡大率毎にモデルパラメータを導出して好適な画像復元処理を行うことができる。また、図17のような、前半の等倍のニューラルネットワーク処理(1700)と、後半のUpSamplingを組み合わせたニューラルネットワーク(1701)を用いる構成において、様々な拡大率に対して好適なモデルパラメータで画像復元処理を行うことができる。例えば、前半部分1700の等倍部分ではモデル統合により導出されたモデルパラメータを用い、後半のUpSamplingでは拡大率を用いて導出されたモデルパラメータを用いる。これにより、モデル統合部612は拡大率ごとに第2のパラメータBaseModelを保持することなく、様々な拡大率に対して好適なモデルパラメータを導出することができる。
 また、モデルパラメータのうち、特定のパラメータにのみ重み付けをすることで、モデルの統合パターンの処理が容易になる。固定のパラメータを用いる部分では処理に必要なBaseModelは1つであるので、統合モデルを生成するために必要なBaseModelのモデルパラメータ数を少なくすることができる。
 例えば、scale_factorが1の場合、入出力の画像サイズは同じである。それ以外の場合、(チャネル数)*(幅*scale_factor)*(高さ*scale_factor)のサイズになるよう処理される。また、num_of_const_paramが通知される場合、(式Weight-1)において、BaseModel[i]の特定のモデルパラメータにのみweight_coeff[i]が乗算される。図16の例では、num_of_const_paramの値が小さいほど、重み付けによりモデル統合するパラメータの数が大きくなることを示し、自由度が大きい。逆に、num_of_const_paramの値が大きいほどモデル統合する際に重みづけで導出するパラメータの量が小さくなる。従って、自由度は小さくなるが、重みづけに必要なベースモデルのモデルパラメータの数も少なくてよい。
 上述した処理を行うことで、多様な出力画像を生成することができ、第1のモデルパラメータの表現能力を高め、また実装を簡略化することができる。
 (後処理部611)
 後処理部611は、モデル統合部612で導出された第1のモデルパラメータWeightedModelを用いたニューラルネットワークでフィルタ処理を行う。ここで、フィルタ処理は、参照画像にかけるループフィルタであってもよいし、出力画像にかけるポストフィルタであってもよい。
 ループフィルタの構成では、後処理部611はループフィルタ305の一処理として行われ、入力は局所復号画像であり、出力は参照画像として利用される。
 ポストフィルタの構成では、後処理部611には復号画像Td1とWeightedModelが入力され、出力Td2は外部(例えば画像表示装置41)に出力される。
 後処理部611のフィルタは、入力画像のサイズ(幅、高さ)と出力画像のサイズ(幅、高さ)が等しい、つまり解像度変換を含まない処理であってもよい。あるいは、幅、高さを変更する処理、つまり解像度変換する処理であってもよい。
 ニューラルネットワークは、(チャネル:C)*(幅:W)*(高さ:H)の画像(テンソル)を入力し、(チャネル数:C)*(幅:W*scale_factor)*(高さ:H*scale_factor)の画像(テンソル)を出力する処理である。ここでscale_factorは拡大率を示し、1であれば等倍、1以外であれば解像度変換を行う。ループフィルタの構成では、scale_factor=1を用いることが一般的であるが、これに限定されない。scale_factorは、図15に示すように、符号化データの1シンタックス要素として伝送してもよい。
 チャネルCは輝度成分と色差成分2つ、あるいは、RGBから構成される3チャネルでもよいし、輝度成分、色差成分、あるいは、RGBのいずれか1つから構成される1チャネルでもよい。また、色差成分2つでもよい。また、4:2:0など、輝度と色差のサイズが異なる場合、輝度成分1つ、Cb4つ、Cr4つを並べてもよい。
 本明細書のニューラルネットワークは、入力ベクトルとニューラルネットワークのパラメータの要素である重みを積和しバイアスを加算する層(convolution層、Conv)と、導出した値に対して非線形処理をする層(activation層、Act)から構成される。activation層は、Relu、leakyRelu、PRelu、ELUなどを用いてもよい。Reluはmax(x,0)を返す処理である。leakyReluは、Reluがx<0の場合にa*xの勾配をつける処理である。PRelu、ELUは、leakyReluの勾配パラメータを固定値とせず更新可能なパラメータとして用いる処理である。上記の構成ConvolutionNeuralNetoworl(CNN)に限定されず、Pooling層、FullConnection(FNN)と呼ばれる層や、Squeeze-and-Excitation NetworksやSelfAttention、attentionがあってもよい。また、解像度変換(後続のUpsampling)として、bilinear、bicubic、lanczosの線形処理や、depth2space、PixelShuffle、Deconvolution(transposed convolution)と呼ばれる処理があってもよい。Pooling層は所定の単位ごとに値の平均化や最大化を行う層である。FNNは位置によらず全ての入力を結合する層である。Squeeze-and-Excitation NetworksやSelfAttention、transformerはチャネル間に重みづけを行うattentionである。また、sinc、hamming、hanning、DCT、DST、FFT、DWT(Wavelet)、ハイパスフィルタ、ローパスフィルタ、フィルタバンクなどの線形処理を加えてもよい。また、ResidualNetwork(ResNet)と呼ばれるスキップコネクションを含んでもよいし、複数の入力をチャネルにスタックする処理を含んでもよい。また、複数の入力に対して値をスタックせずに加算する処理(要素和)があってもよいし、複数入力の積である要素積を行う処理であってもよい。
 図18は、本実施形態のニューラルネットワークの一例を示す。図18は、解像度を変換しない処理に用いられる。
 図17は、本実施形態のニューラルネットワークの一例を示す。図17は、解像度を変換する処理に用いられる。ここでは、等倍での処理を行うニューラルネットワーク(特徴抽出構造)1700と、解像度変換を行うニューラルネットワーク1701から構成される。特徴抽出構造1700は、特徴抽出層1702とResidual Block 1703を複数備える。特徴抽出層は上述したconvolution層とactivation層からなる。Residual Blockは特徴抽出層、Convolution層、Activation層からなる。解像度変換を行うニューラルネットワーク1701は、Convolution層、Upsampling部1704、特徴抽出層1705かららなる。また、本ネットワークは、ニューラルネットワークの性能を高めるための構造である残差構造(Residual Block)を導入している。残差構造はニューラルネットワークから得られた異なる特徴ベクトルの差分を学習する構造である。図17の超解像ニューラルネットワークの例において、残差構造はResidual Blockや、特徴抽出構造1700で使用されている。UpSamplingフィルタ1704は、特徴抽出構造1700から出力された特徴ベクトルの幅、高さを、出力の幅、高さに変換する。UpSamplingフィルタは、bilinear、bicubic、PixelShuffle、deconvolutionなどでもよい。なお、UpSamplingフィルタはscale_factorにより拡大率を変更してもよい。たとえば、PixelShufflerを使う場合には、scale_factor*scale_factor倍にチャネルを増やしてから、チャネルを1/(scale_factor*scale_factor)して縦横をscale_factor倍する処理を行う。
TransposedConvolutionを使う場合には、
 TransposedConvolution (kernel = scale_factor, stride = scale_factor)
でscale_factor倍に拡大できる。
 また、特徴抽出層1705は、拡大された特徴ベクトルから入力画像と同じチャネル、幅、高さになるような出力画像を生成する。
 BaseModel[i]及びWeightedModelは上述したポストフィルタ処理、ループフィルタ処理を行うニューラルネットワークのモデルパラメータであり、BaseModel[i]とWeightedModelの構造は同じである。BaseModel[i]はあらかじめ定められたモデルパラメータであり、WeightedModelはBaseModel[i]に対して重み付けしたモデルパラメータである。
 上述の通り、本発明のシンタックスから第1のモデルパラメータを導出し、解像度逆変換する。これにより、モデルパラメータの集合のうち、いずれかのモデルパラメータを選択するよりも、高品質な動画像を生成することが可能である。
 (解像度逆変換のためのフィルタ情報通知)
 本実施形態の後処理装置61は、解像度変換をはじめとする前処理、後処理に利用することができる。ここでは、その例を説明する。
 図1は、前処理装置51で生成した動画像を画像符号化装置11で符号化し、画像復号装置31で復号した動画像を後処理装置61で処理するブロック図である。
 動画像符号化装置10は、入力画像T1を合成情報作成装置71に入力し、第1のモデルパラメータを導出するためのフィルタ情報を作成する。そして、フィルタ情報は画像符号化装置11に送られる。合成情報作成装置71では入力画像T1の画素値の統計情報からフィルタ情報を作成する。画像符号化装置11は、前処理装置51によって入力画像T1を低解像度化した縮小画像T2とフィルタ情報を符号化(符号化画像と称す)する。そして、フィルタ情報と符号化画像を符号化データTeとしてネットワーク21に送る。
 動画像復号装置30は、符号化画像、フィルタ情報を含む符号化データTeを画像復号装置31によって復号し、後処理装置61へ送る。
 図12は、後処理装置61の構成を示すブロック図である。後処理装置61は後処理部611とモデル統合部612から構成され、復号画像Td1とフィルタ情報を入力し、復号画像Td2を出力する。モデル統合部612は、入力されたフィルタ情報から第1のモデルパラメータを導出し、第1のモデルパラメータを後処理部611へ送る。第1のモデルパラメータは、第2のモデルパラメータに対して、フィルタ情報から得られる重み係数を用いて重み付け和を取り、フィルタ情報の示す値で除算(あるいはシフト演算)することで導出される。後処理部611には復号画像Td1と第1のモデルパラメータが入力され、復号画像Td2を出力する。ここで、後処理部611は、第1のモデルパラメータを用いて、復号画像Td1の解像度を入力画像と同じ解像度に逆変換することで復号画像Td2を生成し、画像表示装置41に出力する。
 合成情報作成装置71は、入力画像T1を入力としてフィルタ情報を作成し、画像符号化装置11に送る。ここで、フィルタ情報には入力画像T1に基づいて作成された重み係数、つまり第1のモデルパラメータの導出に必要なデータが含まれる。
 画像復号装置31(ヘッダ復号部3020)は、ネットワーク21を介して取得した符号化データTeから、図13あるいは図15のシンタックスに基づいてフィルタ情報を復号し、復号結果を後処理装置61に送る。
 後処理装置61はフィルタ情報を使用して図14あるいは図16に示す処理により第1のモデルパラメータを導出する。そして、画像復号装置31が復号した画像Td1と第1のモデルパラメータを用いてTd1を逆解像度変換することにより復号画像Td2を生成する。
  〔応用例〕
 上述した動画像符号化装置10及び動画像復号装置30は、動画像の送信、受信、記録、再生を行う各種装置に搭載して利用することができる。なお、動画像は、カメラ等により撮像された自然動画像であってもよいし、コンピュータ等により生成された人工動画像(CGおよびGUIを含む)であってもよい。
 まず、上述した動画像符号化装置10及び動画像復号装置30を、動画像の送信及び受信に利用できることを、図2を参照して説明する。
 図2のPROD_Aは、動画像符号化装置10を搭載した送信装置PROD_Aの構成を示したブロック図である。図に示すように、送信装置PROD_Aは、動画像を符号化することによって符号化データを得る符号化部PROD_A1と、符号化部PROD_A1が得た符号化データで搬送波を変調することによって変調信号を得る変調部PROD_A2と、変調部PROD_A2が得た変調信号を送信する送信部PROD_A3と、を備えている。上述した動画像符号化装置10は、この符号化部PROD_A1として利用される。
 送信装置PROD_Aは、符号化部PROD_A1に入力する動画像の供給源として、動画像を撮像するカメラPROD_A4、動画像を記録した記録媒体PROD_A5、動画像を外部から入力するための入力端子PROD_A6、及び、画像を生成または加工する画像処理部A7を更に備えていてもよい。図においては、これら全てを送信装置PROD_Aが備えた構成を例示しているが、一部を省略しても構わない。
 なお、記録媒体PROD_A5は、符号化されていない動画像を記録したものであってもよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化された動画像を記録したものであってもよい。後者の場合、記録媒体PROD_A5と符号化部PROD_A1との間に、記録媒体PROD_A5から読み出した符号化データを記録用の符号化方式に従って復号する復号部(不図示)を介在させるとよい。
 図2のPROD_Bは、動画像復号装置30を搭載した受信装置PROD_Bの構成を示したブロック図である。図に示すように、受信装置PROD_Bは、変調信号を受信する受信部PROD_B1と、受信部PROD_B1が受信した変調信号を復調することによって符号化データを得る復調部PROD_B2と、復調部PROD_B2が得た符号化データを復号することによって動画像を得る復号部PROD_B3と、を備えている。上述した動画像復号装置30は、この復号部PROD_B3として利用される。
 受信装置PROD_Bは、復号部PROD_B3が出力する動画像の供給先として、動画像を表示するディスプレイPROD_B4、動画像を記録するための記録媒体PROD_B5、及び、動画像を外部に出力するための出力端子PROD_B6を更に備えていてもよい。図においては、これら全てを受信装置PROD_Bが備えた構成を例示しているが、一部を省略しても構わない。
 なお、記録媒体PROD_B5は、符号化されていない動画像を記録するためのものであってもよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化されたものであってもよい。後者の場合、復号部PROD_B3と記録媒体PROD_B5との間に、復号部PROD_B3から取得した動画像を記録用の符号化方式に従って符号化する符号化部(不図示)を介在させるとよい。
 なお、変調信号を伝送する伝送媒体は、無線であってもよいし、有線であってもよい。また、変調信号を伝送する伝送態様は、放送(ここでは、送信先が予め特定されていない送信態様を指す)であってもよいし、通信(ここでは、送信先が予め特定されている送信態様を指す)であってもよい。すなわち、変調信号の伝送は、無線放送、有線放送、無線通信、及び有線通信の何れによって実現してもよい。
 例えば、地上デジタル放送の放送局(放送設備など)/受信局(テレビジョン受像機など)は、変調信号を無線放送で送受信する送信装置PROD_A/受信装置PROD_Bの一例である。また、ケーブルテレビ放送の放送局(放送設備など)/受信局(テレビジョン受像機など)は、変調信号を有線放送で送受信する送信装置PROD_A/受信装置PROD_Bの一例である。
 また、インターネットを用いたVOD(Video On Demand)サービスや動画共有サービスなどのサーバ(ワークステーションなど)/クライアント(テレビジョン受像機、パーソナルコンピュータ、スマートフォンなど)は、変調信号を通信で送受信する送信装置PROD_A/受信装置PROD_Bの一例である(通常、LANにおいては伝送媒体として無線または有線の何れかが用いられ、WANにおいては伝送媒体として有線が用いられる)。ここで、パーソナルコンピュータには、デスクトップ型PC、ラップトップ型PC、及びタブレット型PCが含まれる。また、スマートフォンには、多機能携帯電話端末も含まれる。
 なお、動画共有サービスのクライアントは、サーバからダウンロードした符号化データを復号してディスプレイに表示する機能に加え、カメラで撮像した動画像を符号化してサーバにアップロードする機能を有している。すなわち、動画共有サービスのクライアントは、送信装置PROD_A及び受信装置PROD_Bの双方として機能する。
 次に、上述した動画像符号化装置10及び動画像復号装置30を、動画像の記録及び再生に利用できることを、図3を参照して説明する。
 図3のPROD_Cは、上述した動画像符号化装置10を搭載した記録装置PROD_Cの構成を示したブロック図である。図に示すように、記録装置PROD_Cは、動画像を符号化することによって符号化データを得る符号化部PROD_C1と、符号化部PROD_C1が得た符号化データを記録媒体PROD_Mに書き込む書込部PROD_C2と、を備えている。上述した動画像符号化装置10は、この符号化部PROD_C1として利用される。
 なお、記録媒体PROD_Mは、(1)HDD(Hard Disk Drive)やSSD(Solid State Drive)などのように、記録装置PROD_Cに内蔵されるタイプのものであってもよいし、(2)SDメモリカードやUSB(Universal Serial Bus)フラッシュメモリなどのように、記録装置PROD_Cに接続されるタイプのものであってもよいし、(3)DVD(Digital Versatile Disc:登録商標)やBD(Blu-ray Disc:登録商標)などのように、記録装置PROD_Cに内蔵されたドライブ装置(不図示)に装填されるものであってもよい。
 また、記録装置PROD_Cは、符号化部PROD_C1に入力する動画像の供給源として、動画像を撮像するカメラPROD_C3、動画像を外部から入力するための入力端子PROD_C4、動画像を受信するための受信部PROD_C5、及び、画像を生成または加工する画像処理部PROD_C6を更に備えていてもよい。図においては、これら全てを記録装置PROD_Cが備えた構成を例示しているが、一部を省略しても構わない。
 なお、受信部PROD_C5は、符号化されていない動画像を受信するものであってもよいし、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを受信するものであってもよい。後者の場合、受信部PROD_C5と符号化部PROD_C1との間に、伝送用の符号化方式で符号化された符号化データを復号する伝送用復号部(不図示)を介在させるとよい。
 このような記録装置PROD_Cとしては、例えば、DVDレコーダ、BDレコーダ、HDD(Hard Disk Drive)レコーダなどが挙げられる(この場合、入力端子PROD_C4または受信部PROD_C5が動画像の主な供給源となる)。また、カムコーダ(この場合、カメラPROD_C3が動画像の主な供給源となる)、パーソナルコンピュータ(この場合、受信部PROD_C5または画像処理部C6が動画像の主な供給源となる)、スマートフォン(この場合、カメラPROD_C3または受信部PROD_C5が動画像の主な供給源となる)なども、このような記録装置PROD_Cの一例である。
 図3PROD_Dは、上述した動画像復号装置30を搭載した再生装置PROD_Dの構成を示したブロックである。図に示すように、再生装置PROD_Dは、記録媒体PROD_Mに書き込まれた符号化データを読み出す読出部PROD_D1と、読出部PROD_D1が読み出した符号化データを復号することによって動画像を得る復号部PROD_D2と、を備えている。上述した動画像復号装置30は、この復号部PROD_D2として利用される。
 なお、記録媒体PROD_Mは、(1)HDDやSSDなどのように、再生装置PROD_Dに内蔵されるタイプのものであってもよいし、(2)SDメモリカードやUSBフラッシュメモリなどのように、再生装置PROD_Dに接続されるタイプのものであってもよいし、(3)DVDやBDなどのように、再生装置PROD_Dに内蔵されたドライブ装置(不図示)に装填されるものであってもよい。
 また、再生装置PROD_Dは、復号部PROD_D2が出力する動画像の供給先として、動画像を表示するディスプレイPROD_D3、動画像を外部に出力するための出力端子PROD_D4、及び、動画像を送信する送信部PROD_D5を更に備えていてもよい。図においては、これら全てを再生装置PROD_Dが備えた構成を例示しているが、一部を省略しても構わない。
 なお、送信部PROD_D5は、符号化されていない動画像を送信するものであってもよいし、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを送信するものであってもよい。後者の場合、復号部PROD_D2と送信部PROD_D5との間に、動画像を伝送用の符号化方式で符号化する符号化部(不図示)を介在させるとよい。
 このような再生装置PROD_Dとしては、例えば、DVDプレイヤ、BDプレイヤ、HDDプレイヤなどが挙げられる(この場合、テレビジョン受像機等が接続される出力端子PROD_D4が動画像の主な供給先となる)。また、テレビジョン受像機(この場合、ディスプレイPROD_D3が動画像の主な供給先となる)、デジタルサイネージ(電子看板や電子掲示板等とも称され、ディスプレイPROD_D3または送信部PROD_D5が動画像の主な供給先となる)、デスクトップ型PC(この場合、出力端子PROD_D4または送信部PROD_D5が動画像の主な供給先となる)、ラップトップ型またはタブレット型PC(この場合、ディスプレイPROD_D3または送信部PROD_D5が動画像の主な供給先となる)、スマートフォン(この場合、ディスプレイPROD_D3または送信部PROD_D5が動画像の主な供給先となる)なども、このような再生装置PROD_Dの一例である。
  (ハードウェア的実現およびソフトウェア的実現)
 また、上述した動画像復号装置30および動画像符号化装置10の各ブロックは、集積回路(ICチップ)上に形成された論理回路によってハードウェア的に実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェア的に実現してもよい。
 後者の場合、上記各装置は、各機能を実現するプログラムの命令を実行するCPU、上記プログラムを格納したROM(Read Only Memory)、上記プログラムを展開するRAM(RandomAccess Memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の実施形態の目的は、上述した機能を実現するソフトウェアである上記各装置の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記各装置に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
 上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ類、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD-ROM(Compact Disc Read-Only Memory)/MOディスク(Magneto-Optical disc)/MD(Mini Disc)/DVD(Digital Versatile Disc:登録商標)/CD-R(CD Recordable)/ブルーレイディスク(Blu-rayDisc:登録商標)等の光ディスクを含むディスク類、ICカード(メモリカードを含む)/光カード等のカード類、マスクROM/EPROM(Erasable Programmable Read-Only Memory)/EEPROM(Electrically Erasable and Programmable Read-Only Memory:登録商標)/フラッシュROM等の半導体メモリ類、あるいはPLD(Programmable logic device)やFPGA(Field Programmable Gate Array)等の論理回路類などを用いることができる。
 また、上記各装置を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークは、プログラムコードを伝送可能であればよく、特に限定されない。例えば、インターネット、イントラネット、エキストラネット、LAN(Local Area Network)、ISDN(Integrated Services Digital Network)、VAN(Value-Added Network)、CATV(Community Antenna television/Cable Television)通信網、仮想専用網(Virtual Private Network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、この通信ネットワークを構成する伝送媒体も、プログラムコードを伝送可能な媒体であればよく、特定の構成または種類のものに限定されない。例えば、IEEE(Institute of Electrical and Electronic Engineers)1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL(Asymmetric Digital Subscriber Line)回線等の有線でも、IrDA(Infrared Data Association)やリモコンのような赤外線、BlueTooth(登録商標)、IEEE802.11無線、HDR(High Data Rate)、NFC(Near Field Communication)、DLNA(Digital Living Network Alliance:登録商標)、携帯電話網、衛星回線、地上デジタル放送網等の無線でも利用可能である。なお、本発明の実施形態は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
 本発明の実施形態は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
 本発明の実施形態は、画像データが符号化された符号化データを復号する動画像復号装置、および、画像データが符号化された符号化データを生成する動画像符号化装置に好適に適用することができる。また、動画像符号化装置によって生成され、動画像復号装置によって参照される符号化データのデータ構造に好適に適用することができる。
(関連出願の相互参照)
 本出願は、2021年3月11日に出願された日本国特許出願:特願2021-039720に対して優先権の利益を主張するものであり、それを参照することにより、その内容の全てが本書に含まれる。
1 動画像伝送システム
30 動画像復号装置
31 画像復号装置
301 エントロピー復号部
302 パラメータ復号部
303 インター予測パラメータ導出部
304 イントラ予測パラメータ導出部
305、107 ループフィルタ
306、109 参照ピクチャメモリ
307、108 予測パラメータメモリ
308、101 予測画像生成部
309 インター予測画像生成部
310 イントラ予測画像生成部
311、105 逆量子化・逆変換部
312、106 加算部
320 予測パラメータ導出部
10 動画像符号化装置
11 画像符号化装置
102 減算部
103 変換・量子化部
104 エントロピー符号化部
110 符号化パラメータ決定部
111 パラメータ符号化部
112 インター予測パラメータ符号化部
113 イントラ予測パラメータ符号化部
120 予測パラメータ導出部
71 フィルタ情報作成装置

Claims (9)

  1.  第1のモデルパラメータを導出するためのフィルタ情報を復号するヘッダ復号部と、
     復号した上記フィルタ情報からニューラルネットワークのモデルパラメータ(第1のモデルパラメータ)を導出するモデル統合部と、
     導出された上記モデルパラメータを用いて、ループフィルタ処理もしくは後処理を行う後処理部を備え、
     上記モデル統合部は、複数の重み係数と、ニューラルネットワークのモデルパラメータ(第2のモデルパラメータ)から上記第1のモデルパラメータを導出することを特徴とする画像復号装置。
  2.  上記モデル統合部は、上記重み係数と上記第2のモデルパラメータとの重みづけ平均から、上記第1のモデルパラメータを導出することを特徴とする請求項1に記載の画像復号装置。
  3.  上記ヘッダ復号部は、非ゼロであるか否かを示すフラグを復号し、上記フラグが非ゼロを示す場合には、重み係数の大きさを復号することにより、上記重み係数を復号し、上記フラグがゼロを示す場合には重み係数を0と導出することを特徴とする請求項1に記載の画像復号装置。
  4.  上記ヘッダ復号部は、負値の上記重み係数を復号することを特徴とする請求項1に記載の画像復号装置。
  5.  上記ヘッダ復号部は、上記ニューラルネットワークの入力画像サイズと出力画像サイズの比を示すスケールファクタを復号することを特徴とする請求項1に記載の画像復号装置。
  6.  上記モデル統合部は、上記スケールファクタにより異なる第2のモデルパラメータを用いて、第1のモデルパラメータを導出する請求項5に記載の画像復号装置。
  7.  上記後処理部は、上記スケールファクタが1倍以外を示す場合に、画像のサイズを変更するニューラルネットワーク処理を一部に含むニューラルネットワークを用いて後処理を行うことを特徴とする請求項5に記載の画像復号装置。
  8.  上記ヘッダ復号部は、後処理で用いられる第1のモデルパラメータのうち、重みづけしないパラメータの数を示す情報を復号することを特徴とする請求項1に記載の画像復号装置。
  9.  入力画像信号に対して解像度変換などの処理を行う前処理装置と、
     入力画像信号から第1のモデルパラメータを導出するために必要なフィルタ情報を作成するフィルタ情報作成装置と、
     前記前処理装置で処理された画像と、前記フィルタ情報作成装置で作成したフィルタ情報を符号化する画像符号化装置を有することを特徴とする動画像符号化装置。
PCT/JP2022/009378 2021-03-11 2022-03-04 動画像符号化装置、復号装置 WO2022191064A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202280019035.2A CN116965018A (zh) 2021-03-11 2022-03-04 运动图像编码装置、解码装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-039720 2021-03-11
JP2021039720 2021-03-11

Publications (1)

Publication Number Publication Date
WO2022191064A1 true WO2022191064A1 (ja) 2022-09-15

Family

ID=83227828

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/009378 WO2022191064A1 (ja) 2021-03-11 2022-03-04 動画像符号化装置、復号装置

Country Status (2)

Country Link
CN (1) CN116965018A (ja)
WO (1) WO2022191064A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024077570A1 (en) * 2022-10-13 2024-04-18 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Reference picture resampling (rpr) based super-resolution with wavelet decomposition

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019087905A1 (ja) * 2017-10-31 2019-05-09 シャープ株式会社 画像フィルタ装置、画像復号装置、および画像符号化装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019087905A1 (ja) * 2017-10-31 2019-05-09 シャープ株式会社 画像フィルタ装置、画像復号装置、および画像符号化装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
T. CHUJOH, E. SASAKI, T. IKAI (SHARP): "AHG9/AHG11: Neural network based super resolution SEI", 20. JVET MEETING; 20201007 - 20201016; TELECONFERENCE; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), 8 October 2020 (2020-10-08), XP030289911 *
TAKUYA SUZUKI, EIICHI SASAKI, TAKESHI CHUJOH, TOMOHIRO IKAI, HIROSHI WATANABE: "P3-B-1 Coded Video Transmission using Super-Resolution and MPEG-NNR Deep Learning Metadata", 37TH SYMPOSIUM ON IMAGE CODING (PCSJ) AND THE 27TH SYMPOSIUM ON IMAGE MEDIA PROCESSING (IMPS); PCSJ/IMPS 2020; NOVEMBER 28-30, 2020, PCSJ/IMPS, JP, 17 November 2020 (2020-11-17) - 30 November 2020 (2020-11-30), JP, pages 1 - 2, XP009540051 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024077570A1 (en) * 2022-10-13 2024-04-18 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Reference picture resampling (rpr) based super-resolution with wavelet decomposition

Also Published As

Publication number Publication date
CN116965018A (zh) 2023-10-27

Similar Documents

Publication Publication Date Title
WO2021111962A1 (ja) 動画像復号装置
JP7448349B2 (ja) 動画像復号装置
US11818363B2 (en) Video decoding apparatus and video coding apparatus
WO2022191064A1 (ja) 動画像符号化装置、復号装置
JP7475908B2 (ja) 予測画像生成装置、動画像復号装置及び動画像符号化装置
JP2022007319A (ja) 動画像符号化装置、復号装置
WO2021200658A1 (ja) 動画像復号装置及び動画像復号方法
WO2021200610A1 (ja) 動画像復号装置、動画像符号化装置、動画像復号方法及び動画像符号化方法
US20210104019A1 (en) Video converting apparatus and method
JP2022096879A (ja) 動画像符号化装置、復号装置
WO2022264622A1 (ja) 動画像符号化装置、動画像復号装置
JP2022065225A (ja) Lic部、画像復号装置および画像符号化装置
JP2020068462A (ja) 画像ビット階調拡張フィルタ装置及び画像符号化装置、画像復号装置
WO2021235448A1 (ja) 動画像符号化装置及び動画像復号装置
JP7425568B2 (ja) 動画像復号装置、動画像符号化装置、動画像復号方法および動画像符号化方法
JP7444570B2 (ja) 動画像復号装置、動画像符号化装置、動画像復号方法および動画像符号化方法
US20230262224A1 (en) Moving image decoding method using chrominance format and intra-frame prediction mode
JP2022156140A (ja) 動画像符号化装置、復号装置
JP7465128B2 (ja) 動画像符号化装置及び動画像復号装置
JP2023002971A (ja) 動画像符号化装置、復号装置
JP2021125798A (ja) 動画像符号化装置、復号装置
JP2022085475A (ja) 動画像符号化装置、復号装置
JP2023096354A (ja) 動画像符号化装置、動画像復号装置
JP2021078004A (ja) 動画像符号化装置、動画像復号装置
JP2021197558A (ja) 動画像符号化装置及び動画像復号装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22767022

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202280019035.2

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22767022

Country of ref document: EP

Kind code of ref document: A1