Video decoding device, coded data generating device, and video decoding method
The video decoding device improves the generation of predicted images by employing super-resolution processing parameters and neural networks, addressing inefficiencies in existing super-resolution techniques to enhance video conversion to high-resolution images.
Patent Information
- Application Number
- JP2024140665
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2024-08-22
- Publication Date
- 2025-09-26
- Estimated Expiration
- 2039-10-04
AI Technical Summary
Existing super-resolution techniques for video processing, such as those described in Non-Patent Document 1, lack efficiency in generating predicted images, particularly in the context of converting low-resolution moving images to high-resolution images.
A video decoding device equipped with an auxiliary information decoding unit and a switching unit that switches between super-resolution processing and up-sampling processing, utilizing super-resolution processing parameters and a neural network to generate predicted images.
Enables the generation of predicted images by referring to suitable images that have undergone super-resolution processing, enhancing the efficiency of video conversion devices in generating high-resolution images.
Smart Images

Figure 0007745053000001 
Figure 0007745053000002 
Figure 0007745053000003
Abstract
Description
[Technical Field]
[0001] FIELD An embodiment of the present invention relates to a video conversion device and a video conversion method. [Background technology]
[0002] In order to efficiently transmit or record moving images, a moving image encoding device is used that encodes moving images to generate coded data, and a moving image decoding device is used that decodes the coded data to generate decoded images.
[0003] Specific video encoding methods include, for example, H.264 / AVC and HEVC (High-Efficiency Video Coding) methods.
[0004] Meanwhile, advances in display devices and imaging devices have made it possible to acquire and display high-resolution video. Therefore, a method for converting the resolution of conventional low-resolution video to high resolution is needed. Furthermore, since the amount of high-resolution video data is enormous, a method for transmitting or recording at a low rate involves first converting the video to low resolution, encoding it, transmitting and recording it, and then converting the decoded video to high resolution for display.
[0005] Such a technique is known as a super-resolution technique for converting low-resolution moving images into high-resolution images. Non-Patent Document 1 is an example of a recent super-resolution technique for moving images. [Prior art documents] [Non-patent literature]
[0006] [Non-Patent Document 1] M. Sajjadi, R. Vemulapalli and M. Brown, Frame-Recurrent Video Super-Resolution. IEEE / CVF Conference on Computer Vision and Pattern Recognition (CVPR 2018) (pp. 6626-6634, Piscataway, 2018. Summary of the Invention [Problem to be solved by the invention]
[0007] However, in the method described in Non-Patent Document 1, there is room for improvement in the process of generating a predicted image.
[0008] An object of one aspect of the present invention is to realize a video conversion device capable of generating a predicted image by referring to a suitable image that has been subjected to super-resolution processing. [Means for solving the problem]
[0009] A video decoding device according to one aspect of the present invention comprises an auxiliary information decoding unit that decodes auxiliary information for switching between super-resolution processing and up-sampling processing, and a switching unit that switches between the super-resolution processing and the up-sampling processing based on the value of the auxiliary information, and is characterized in that the super-resolution processing is performed using super-resolution processing parameters and a neural network. A moving image conversion device according to one aspect of the present invention is characterized by comprising an image buffer unit for storing a plurality of images, a super-resolution processing unit for outputting a super-resolution image by applying super-resolution processing to the image input from the image buffer unit, and a predicted image generation unit for generating a predicted image by referring to the super-resolution image output by the super-resolution processing unit. [Effects of the Invention]
[0010] According to one aspect of the present invention, a predicted image is generated by referring to a suitable image that has been subjected to super-resolution processing. It is possible to realize a video conversion device that can [Brief explanation of the drawings]
[0011] [Figure 1] 1 is a schematic diagram showing the configuration of an image transmission system according to an embodiment of the present invention. [Figure 2] 1 is a diagram showing the configuration of a transmitting device equipped with a video encoding device according to this embodiment, and a receiving device equipped with a video decoding device, in which PROD_A indicates the transmitting device equipped with the video encoding device, and PROD_B indicates the receiving device equipped with the video decoding device. [Figure 3] 1 is a diagram showing the configuration of a recording device equipped with a video encoding device according to this embodiment, and a playback device equipped with a video decoding device, in which PROD_C indicates a recording device equipped with a video encoding device, and PROD_D indicates a playback device equipped with a video decoding device. [Figure 4] FIG. 2 is a diagram showing a hierarchical structure of data in an encoded stream. [Figure 5] FIG. 1 is a conceptual diagram illustrating an example of a reference picture and a reference picture list. [Figure 6] FIG. 1 is a schematic diagram illustrating a configuration of a video decoding device. [Figure 7] 10 is a flowchart illustrating a schematic operation of the video decoding device. [Figure 8] 1 is a functional block diagram of a moving image conversion device according to an embodiment of the present invention. [Figure 9] 1 is a functional block diagram of a moving image conversion device according to an embodiment of the present invention. [Figure 10] FIG. 2 is a conceptual diagram showing processing by the moving image conversion device according to the present embodiment. [Figure 11] 1 is a functional block diagram of a moving image conversion device according to an embodiment of the present invention. [Figure 12] 1 is a functional block diagram of a moving image conversion device according to an embodiment of the present invention. [Figure 13] 1 is a functional block diagram of a moving image conversion device according to an embodiment of the present invention. [Figure 14] FIG. 1 is a block diagram showing a configuration of a video encoding device. [Figure 15] 1 is a functional block diagram of a coded data generating device according to an embodiment of the present invention. [Figure 16] 1 is a functional block diagram of a coded data generating device according to an embodiment of the present invention. [Figure 17] 1 is a functional block diagram of a moving image conversion device according to an embodiment of the present invention. [Figure 18] 1 is a functional block diagram of a coded data generating device according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0012] (Embodiment) Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
[0013] FIG. 1 is a schematic diagram showing the configuration of an image transmission system 1 according to this embodiment.
[0014] The image transmission system 1 is a system that transmits an encoded stream obtained by encoding a target image, decodes the transmitted encoded stream, and displays the image. The image transmission system 1 includes a video encoding device (image encoding device) 11, a network 21, a video decoding device (image decoding device) 31, and a video display device (image display device) 41.
[0015] An image T is input to the video encoding device 11 .
[0016] The network 21 transmits the coded stream Te generated by the video coding device 11 to the video decoding device 31. The network 21 may be the Internet, a wide area network (WAN), a local area network (LAN), or any of these. is a combination of them. The network 21 is not necessarily limited to a two-way communication network, and may be a one-way communication network that transmits broadcast waves such as terrestrial digital broadcasting and satellite broadcasting. Further, the network 21 may be replaced by a storage medium that records an encoded stream Te such as a DVD (Digital Versatile Disc: registered trademark) or a BD (Blue-ray Disc: registered trademark).
[0017] The moving image decoder 31 decodes each of the encoded streams Te transmitted by the network 21 and generates one or more decoded images Td that have been decoded.
[0018] The moving image display device 41 displays all or part of the one or more decoded images Td generated by the moving image decoder 31. The moving image display device 41 includes, for example, a display device such as a liquid crystal display or an organic EL (Electro-luminescence) display. Examples of the form of the display include a stationary type, a mobile type, and an HMD. Further, when the moving image decoder 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 ability.
[0019] <Operator> The operators used in this specification are described below.
[0020] >> is a right bit shift, << is a left bit shift, & is a bitwise AND, and | is a bitwise OR |= is an OR assignment operator, and || indicates a logical OR.
[0021] x?y:z is a ternary operator that takes y when x is true (other than 0) and z when x is false (0).
[0022] Clip3(a, b, c) is a function that clips c to a value between a and b, and returns a when c < a It is a function that returns b if c>b, and returns c otherwise (where a<=b).
[0023] abs(a) is a function that returns the absolute value of a.
[0024] Int(a) is a function that returns the integer value of a.
[0025] floor(a) is a function that returns the largest integer less than or equal to a.
[0026] ceil(a) is a function that returns the smallest integer greater than or equal to a.
[0027] a / d represents the division of a by d (rounded down to the nearest integer).
[0028] <Structure of the coded stream Te> Before proceeding to a detailed description of the video encoding device 11 and video decoding device 31 according to this embodiment, the data structure of the encoded stream Te generated by the video encoding device 11 and decoded by the video decoding device 31 will be described.
[0029] FIG. 4 shows the hierarchical structure of data in the coded stream Te. 4 shows a coded video sequence that defines a sequence SEQ, a coded picture that defines a picture PICT, a coded slice that defines a slice S, and a coded slice data that defines slice data. A diagram showing slice data, coding tree units included in the coded slice data, and coding units included in the coding tree units is shown.
[0030] (Coded Video Sequence) In the case of a coded video sequence, a video decoder is used to decode the sequence SEQ to be processed. The sequence SEQ defines a set of data to be referenced by the device 31. As shown in Fig. 4, the sequence SEQ includes a video parameter set, a sequence parameter set SPS (Sequence Parameter Set), a picture parameter set PPS (Picture Parameter Set), an adaptation parameter set (APS), a picture PICT, and supplemental enhancement information SEI (Supplemental Enhancement Information).
[0031] The video parameter set VPS is used to A set of coding parameters common to several video images and a set of coding parameters related to several layers included in the video image and each individual layer are defined.
[0032] The sequence parameter set SPS is used to decode the target sequence. A set of coding parameters to be referenced by the PPS is specified. For example, the width and height of a picture are specified. Note that there may be multiple SPSs. In that case, one of the multiple SPSs can be selected from the PPS. Select .
[0033] The picture parameter set PPS requires the following parameters to be used to decode each picture in the target sequence: It defines a set of coding parameters to be referenced by the video decoding device 31. For example, the reference value of the quantization width (pic_init_qp_minus26) used for decoding a picture and the application of weighted prediction are specified. It should be noted that there may be multiple PPSs. In this case, one of multiple PPSs is selected from each picture in the target sequence.
[0034] (encoded picture) A coded picture defines a set of data that the video decoding device 31 refers to in order to decode a picture PICT to be processed. As shown in Fig. 4, the picture PICT includes slices 0 to NS-1 (NS is the total number of slices included in the picture PICT).
[0035] In the following, when there is no need to distinguish between slices 0 to NS-1, the symbols The subscripts may be omitted in the description, and the same applies to other data to which subscripts are added that are included in the coded stream Te described below.
[0036] (encoded slice) In the coded slice, the video decoding device 31 refers to the slice S to be processed in order to decode the slice S. As shown in Figure 4, a slice consists of a slice header, and includes slice data.
[0037] The slice header includes a group of coding parameters that the video decoding device 31 refers to in order to determine a decoding method for the current slice. Slice type designation information (slice_type) that designates the slice type is an example of a coding parameter included in the slice header.
[0038] Slice types that can be specified by the slice type specification information include (1) an I-slice that uses only intra-prediction during encoding, (2) a P-slice that uses unidirectional or intra-prediction during encoding, and (3) a B-slice that uses unidirectional, bidirectional, or intra-prediction during encoding. Note that inter-prediction is not limited to uni-prediction or bi-prediction, and a predicted image may be generated using more reference pictures. Hereinafter, P When called a B slice, it is a slice that contains blocks that can use inter prediction. Refers to the s.
[0039] Note that the slice header may include a reference to a picture parameter set PPS (pic_parameter_set_id).
[0040] (encoded slice data) The coded slice data defines a set of data that the video decoding device 31 refers to in order to decode the slice data to be processed. As shown in the slice header, the slice includes a CTU, which is a block of a fixed size (for example, 64x64) that constitutes a slice, and is also called a Largest Coding Unit (LCU).
[0041] (coding tree unit) 4 defines a set of data that the video decoding device 31 refers to in order to decode the CTU to be processed. The CTU is decoded by recursive quad tree (QT) partitioning, binary tree (BT) partitioning, or ternary tree (TT) partitioning. The data is divided into coding units (CU), which are the basic units of processing. BT division and TT division are collectively called multi-tree division (MT (Multi Tree) division). The node of the tree structure obtained by recursive quadtree division is called a coding node. The intermediate nodes of the tree are coding nodes, and the CTU itself is also defined as the top coding node. will be done.
[0042] The CT includes, as CT information, a CU split flag (split_cu_flag) indicating whether to split the CT, a QT split flag (split_cu_flag) indicating whether to split the CT, and The flags include a QT split flag (qt_split_cu_flag) indicating whether splitting is performed, an MT split direction (mtt_split_cu_vertical_flag) indicating the split direction of MT splitting, and an MT split type (mtt_split_cu_binary_flag) indicating the split type of MT splitting. split_cu_flag, qt_split_cu_flag, tt_split_cu_vertical_flag, and mtt_split_cu_binary_flag are transmitted for each encoding node.
[0043] Also, when the size of the CTU is 64x64 pixels, the size of the CU can be 64x64 pixels, 64x32 pixels, 32x64 pixels, 32x32 pixels, 64x16 pixels, 16x64 pixels, 32x16 pixels, 16x32 pixels, 16x16 pixels, 64x8 pixels, Pixels, 8x64 pixels, 32x8 pixels, 8x32 pixels, 16x8 pixels, 8x16 pixels, 8x8 pixels, 64x4 pixels, 4x64 pixels, 32x4 pixels, 4x32 pixels, 16x4 pixels, 4x16 pixels, 8x4 pixels, 4x8 pixels, and 4x4 pixels You can choose either one.
[0044] Different trees may be used for luminance and chrominance. The tree type is indicated by treeType. For example, if a common tree is used for luminance (Y, cIdx=0) and chrominance (Cb / Cr, cIdx=1,2), the common single tree is indicated by treeType=SINGLE_TREE. If two different trees (DUAL trees) are used for luminance and chrominance, the luminance tree is indicated by treeType=DUAL_TREE_LUMA and the chrominance tree is indicated by treeType=DUAL_TREE_CHROMA.
[0045] (encoding unit) FIG. 4 shows the data that the video decoding device 31 refers to in order to decode the coding unit to be processed. Specifically, a CU consists of a CU header CUH, prediction parameters, and transformation parameters. The CU header contains information such as prediction mode.
[0046] Prediction processing may be performed in units of CUs, or in units of sub-CUs obtained by further dividing a CU. If the sizes of a CU and a sub-CU are the same, there is one sub-CU in the CU. If the size of a CU is larger than the size of a sub-CU, the CU is divided into sub-CUs. For example, if the CU is 8x8 and the sub-CU is 4x4, the CU is divided into four sub-CUs, divided horizontally by two and vertically by two.
[0047] There are two types of prediction (prediction modes): intra prediction and inter prediction. Intra prediction is a prediction within the same picture, while inter prediction refers to a prediction process performed between different pictures (for example, between display times or between layer images).
[0048] The transformation and quantization process is performed in units of CU, but the quantized transformation coefficients are stored in units of sub-blocks such as 4x4. It may be entropy coded.
[0049] (Prediction parameters) The predicted image is derived from prediction parameters associated with the block, which include intra-prediction and inter-prediction parameters.
[0050] Hereinafter, prediction parameters of inter prediction will be described. 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 a reference picture list (L0 list, L1 list) is used, and when the value is 1, the corresponding reference picture list is used. Note that in this specification, when a "flag indicating whether XX is true" is used, a flag other than 0 (for example, 1) is considered to be XX, and 0 is considered to be not XX, and in logical negation, logical product, etc., 1 is treated as true and 0 is treated as false (the same applies below). However, in an actual device or method, other values may be used as true and false values.
[0051] The syntax elements for deriving inter prediction parameters include, for example, an affine flag affine_flag used in merge mode, a merge flag merge_flag, a merge index merge_idx, an MMVD flag mmvd_flag, and an index for selecting a reference picture used in AMVP mode. Inter prediction identifier inter_pred_idc, reference picture index refIdxLX, predicted vector index mvp_LX_idx for deriving a motion vector, difference vector mvdLX, motion vector There is a precision mode amvr_mode.
[0052] (Reference Picture List) The reference picture list is a list of reference pictures stored in the reference picture memory 306. FIG. 5 is a conceptual diagram showing an example of a reference picture and a reference picture list. In the conceptual diagram of an example of a reference picture in FIG. 5, the rectangles represent pictures, and the arrows represent the positions of the pictures. Reference relationship, the horizontal axis is time, I, P, and B in the rectangle are intra picture, uni-prediction picture, and bi-prediction picture, respectively. The numbers in the rectangles indicate the decoding order of the predicted pictures. As shown in the figure, the decoding order of the pictures is I0, P1, B2, B3, B4, and the display order is I0, B3, B2, B4, P1. In Figure 5, picture B3 An example of a reference picture list for a target picture (B3) is shown. A reference picture list is a list indicating candidate reference pictures, and one picture (slice) may have one or more reference picture lists. In the example shown in the figure, the target picture B3 has the L0 list RefPicList0 and Each CU has two reference picture lists: L1 list RefPicList1 and L2 list RefPicList2. refIdxLX indicates which picture in the picture list RefPicListX (X=0 or 1) actually refers to. The figure shows an example where refIdxL0=2 and refIdxL1=0. Note that LX is a notation method used when there is no distinction between L0 prediction and L1 prediction, and hereinafter, parameters for the L0 list and parameters for the L1 list will be distinguished by replacing LX with L0 or L1.
[0053] inter_pred_idc is a value indicating the type and number of reference pictures, and takes one of the values PRED_L0, PRED_L1, and PRED_BI. PRED_L0 and PRED_L1 are managed by the L0 list and the L1 list, respectively. PRED_BI is managed by the L0 list and the L1 list. This shows bi-prediction using two reference pictures.
[0054] (motion vector) mvLX indicates the amount of shift between blocks on two different pictures. The predicted vector and differential vector related to mvLX are called mvpLX and mvdLX, respectively.
[0055] (Configuration of video decoding device) The configuration of a video decoding device 31 (FIG. 6) according to this embodiment will be described.
[0056] The video 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 quantization and inverse transform unit 311, and an adder 312, a prediction parameter The video encoding device 11 includes a meter derivation unit 320. The image decoding device 31 may also be configured without the loop filter 305 .
[0057] The parameter decoding unit 302 further includes a header decoding unit 3020, a CT information decoding unit 3021, and a CU decoding unit. The CU decoding unit 3022 further includes a TU decoding unit 3024. These may be collectively referred to as a decoding module. The header decoding unit 3020 decodes parameter set information such as VPS, SPS, PPS, and APS, and slice headers (slice information) from the coded data. The CT information decoding unit 3021 decodes the CT from the coded data. The CU decoding unit 3022 decodes the CU from the coded data. The TU decoding unit 3024 extracts QP update information (quantization correction value) and quantization prediction error (residual_coding) from the coded data when a prediction error is included in the TU. Decrypt.
[0058] The TU decoding unit 3024 decodes the QP update information and the quantized prediction error from the coded data when the mode is other than the skip mode (skip_mode==0). More specifically, when skip_mode==0, the TU decoding unit 3024 decodes the flag cu_cbp indicating whether or not the current block contains a quantized prediction error, and decodes the quantized prediction error when cu_cbp is 1. When cu_cbp does not exist in the coded data, In this case, it is derived as 0.
[0059] The TU decoding unit 3024 decodes the index mts_idx indicating the transformation base from the coded data. The TU decoding unit 3024 also decodes an index stIdx, which indicates the use of a secondary transform and the transform base, from the coded data. When stIdx is 0, it indicates that no secondary transform is applied, when it is 1, it indicates one of the transforms in a set (pair) of secondary transform bases, and when it is 2, it indicates one of the transforms in the pair. The other transformation is shown below.
[0060] The TU decoding unit 3024 may also decode a sub-block transform flag cu_sbt_flag. When cu_sbt_flag is 1, the CU is divided into multiple sub-blocks and the residual of only one specific sub-block is decoded. The TU decoding unit 3024 may also decode a flag cu_sbt_quad_flag indicating whether the number of sub-blocks is 4 or 2, cu_sbt_horizontal_flag indicating the division direction, and cu_sbt_pos_flag indicating a sub-block that includes a non-zero transform coefficient.
[0061] The predicted image generating unit 308 includes an inter predicted image generating unit 309 and an intra predicted image generating unit 310. It is composed of:
[0062] The prediction parameter derivation unit 320 includes an inter prediction parameter derivation unit 303 and an intra prediction parameter derivation unit 304 .
[0063] In the following, an example will be described in which CTU and CU are used as processing units, but this is not limitative. Alternatively, the processing may be performed in units of sub-CUs. and processing may be performed in units of blocks or sub-blocks.
[0064] The entropy decoding unit 301 performs entropy decoding on the coded stream Te input from the outside. Entropy coding is performed to decode individual codes (syntax elements). There are two types of entropy coding: one is to use a context (probability model) that is adaptively selected according to the type of syntax element and the surrounding circumstances to variable-length code the syntax elements, and the other is to use a predefined table or formula to variable-length code the syntax elements. The former, CABAC (Context Adaptive Binary Arithmetic Coding), uses the CABAC state (dominant The symbol type (0 or 1) and probability state index (pStateIdx) that specifies the probability are stored in memory. The entropy decoding unit 301 initializes all CABAC states at the beginning of a segment (tile, CTU row, slice). The entropy decoding unit 301 converts the syntax elements into a binary string (bin string) and decodes each bit of the bin string. When a context is used, the entropy decoding unit 301 derives a context index ctxInc for each bit of the syntax element, decodes the bit using the context, and updates the CABAC state of the used context. Bits without context are decoded with equal probability (EP, bypass), and ctxInc is derived and CABAC is performed. The decoded syntax elements include prediction information for generating a predicted image and prediction errors for generating a difference image.
[0065] The entropy decoding unit 301 outputs the decoded code to the parameter decoding unit 302. The decoded code is, for example, a prediction mode predMode, merge_flag, merge_idx, inter_pred_idc, refIdxLX, mvp_LX_idx, mvdLX, amvr_mode, etc. Which code is to be decoded is controlled by the parameter decoding unit 302. This is done based on instructions from the meter decoder 302.
[0066] (Basic flow) FIG. 7 is a flowchart illustrating the general operation of the video decoding device 31.
[0067] (S1100: Decode Parameter Set Information) The header decoder 3020 decodes parameter set information such as VPS, SPS, and PPS from the coded data.
[0068] (S1200: Decode slice information) The header decoding unit 3020 decodes the slice header from the encoded data. Decode (slice information).
[0069] Hereinafter, the video decoding device 31 performs steps S1300 to S5000 for each CTU included in the target picture. By repeating the above process, a decoded image of each CTU is derived.
[0070] (S1300: Decode CTU Information) The CT information decoding unit 3021 decodes the CTU from the encoded data.
[0071] (S1400: Decode CT Information) The CT information decoding unit 3021 decodes the CT from the encoded data.
[0072] (S1500: CU Decoding) The CU decoding unit 3022 performs S1510 and S1520 to decode the CU from the encoded data. Issued.
[0073] (S1510: Decode CU information) The CU decoding unit 3022 decodes CU information, prediction information, and TU division information from the encoded data. The flag split_transform_flag, the CU residual flags cbf_cb, cbf_cr, cbf_luma, etc. are decoded.
[0074] (S1520: TU information decoding) When a TU includes a prediction error, the TU decoding unit 3024 The QP update information, the quantization prediction error, and the transform index mts_idx are decoded from the data. Note that the QP update information is derived from the quantization parameter predicted value qPpred, which is the predicted value of the quantization parameter QP. This is the difference value.
[0075] (S2000: Generate predicted image) The predicted image generation unit 308 generates a predicted image for each block included in the current CU based on prediction information.
[0076] (S3000: Inverse Quantization and Inverse Transformation) The inverse quantization and inverse transform unit 311 executes inverse quantization and inverse transform processing on each TU included in the target CU.
[0077] (S4000: Generate decoded image) The adder 312 generates a decoded image using the predicted image supplied from the predicted image generator 308. , and the prediction error supplied from the inverse quantization and inverse transform unit 311 are added to obtain the target CU. A decoded image is generated.
[0078] (S5000: Loop filter) The loop filter 305 applies a loop filter such as a deblocking filter, SAO, or ALF to the decoded image to generate a decoded image.
[0079] The loop filter 305 is a filter provided in the encoding loop, and is used to remove block distortion and ringing. The loop filter 305 is a filter that removes distortion and improves image quality. The decoded image of the CU is subjected to deblocking filter, sample adaptive offset (SAO), and adaptive Apply a filter such as an adaptive loop filter (ALF).
[0080] The reference picture memory 306 stores the decoded image of the CU in a predetermined format for each target picture and target CU. Store in the location.
[0081] The prediction parameter memory 307 stores prediction parameters at a predetermined location for each CTU or CU. Specifically, the prediction parameter memory 307 stores parameters decoded by the parameter decoding unit 302, parameters derived by the prediction parameter derivation unit 320, and the like.
[0082] The predicted image generation unit 308 receives the parameters derived by the prediction parameter derivation unit 320. The predicted image generation unit 308 also reads a reference picture from the reference picture memory 306. The predicted image generation unit 308 generates a prediction image based on the parameters and the reference picture (reference picture A reference picture block is a set of pixels (usually rectangular, hence the name block) on the reference picture, and is the area referenced to generate a predicted image.
[0083] The inverse quantization and inverse transform unit 311 inverse quantizes the quantized transform coefficients input from the parameter decoding unit 302 to obtain transform coefficients.
[0084] The inverse quantization and inverse transform unit 311 includes a scaling unit (inverse quantization unit), a secondary transform unit, and and a core conversion section.
[0085] The scaling unit uses the quantization matrix m[x][y] decoded from the coded data or The scaling factor ls[x][y] is derived using the uniform matrix m[x][y]=16, the quantization parameter qP, and the rectNonTsFlag derived from the TU size.
[0086] ls[x][y] = (m[x][y] * levelScale[rectNonTsFlag][qP%6]) << (qP / 6) where levelScale[] = { { 40, 45, 51, 57, 64, 72}, { 57, 64, 72, 81, 91, 102}}.
[0087] rectNonTsFlag = (((Log2(nTbW) + Log2(nTbH)) & 1) == 1 && transform_skip_flag== 0) The scaling unit 31112 derives dnc[][] from the product of ls[][] and the transformation coefficient TransCoeffLevel. , and then dequantize. Then clip the resulting d[][].
[0088] dnc[x][y] = (TransCoeffLevel[xTbY][yTbY][cIdx][x][y] * ls[x][y] + bdOffset) >>bdShift d[x][y] = Clip3( CoeffMin, CoeffMax, dnc[x][y] ) bdShift = bitDepth + ((rectNonTsFlag ? 1:0) + (Log2(nTbW) + Log2(nTbH)) / 2) -5 + dep_quant_enabled_flag bdOffset = ( 1 << bdShift ) >> 1 The secondary transform unit converts some or all of the transform coefficients d[ ][ ] received from the scaling unit. By applying a transformation using a transformation matrix to the The secondary conversion unit restores the conversion coefficients d[ ][ ] after conversion by the The secondary transform unit applies a secondary transform to the transform coefficients d[ ][ ] of the CU. The secondary transform is applied only to intra CUs, and the transform base is determined by referring to stIdx and IntraPredMode. The secondary transform unit outputs the restored modified transform coefficients d[ ][ ] to the core transform unit.
[0089] The core transform unit converts the transform coefficients d[ ][ ] or the modified transform coefficients d[ ][ ] into the selected transform matrix. The core transform unit outputs the prediction errors r[][] (resSamples[][]) to the adder 312. Note that the inverse quantization and inverse transform unit 311 sets all prediction errors of the current block to 0 when skip_flag is 1 or cu_cbp is 0. The transform matrix may be selected from multiple transform matrices using mts_idx.
[0090] The prediction error d[][] after the core transformation is further shifted to the same accuracy as the predicted image Pred[][]. You can also derive resSamples[][].
[0091] resSamples[x][y] = (r[x][y] + (1<<(bdShift-1))) >> bdShift bdShift = Max( 20 - bitDepth, 0 ) The adder 312 adds, for each pixel, the predicted image of the block input from the predicted image generator 308 and the prediction error input from the inverse quantization and inverse transformer 311 to generate a decoded image of the block. The adder 312 stores the decoded image of the block in the reference picture memory 306 and also outputs it to the loop filter 305 .
[0092] (Configuration example 1 of video conversion device) The moving image conversion device according to this embodiment will be described below. The moving image conversion device according to this embodiment is a device that outputs images (pictures, videos) with increased resolution.
[0093] FIG. 8 is a functional block diagram of a video conversion device 401 according to this embodiment. As shown in FIG. The video conversion device 401 according to the example includes an image buffer unit 403 , a predicted image generation unit 405 , a super-resolution processing unit 411 , and a super-resolution image buffer unit 413 .
[0094] The image buffer unit 403 stores a plurality of low-resolution images. The predicted image generation unit 405 includes a motion detection unit 407 and a motion compensation processing unit 409.
[0095] The motion detection unit 407 derives a motion vector at a certain time t by referring to the low-resolution images input from the image buffer unit 403. For example, the image buffer unit 403 stores images corresponding to three frames (three pictures) at times t-1, t, and t+1, and the motion detection unit 407 derives a motion vector at time t-1 and t+1. The motion vector at time t may be derived by referring to the corresponding image.
[0096] Here, time t-1 indicates a time that is a unit time earlier than time t that corresponds to one frame (one picture) of the image signal, and time t+1, which will be described later, indicates a time that is a unit time later than time t. Furthermore, a super-resolution predicted image is a predicted image that has been subjected to super-resolution processing, or an image equivalent to the predicted image.
[0097] The motion compensation processing unit 409 calculates the motion vector at time t input from the motion detection unit 407 and With reference to the super-resolution image at time t−1 input from the super-resolution image buffer unit 413 , a super-resolution predicted image at time t is generated and output to the super-resolution processing unit 411 .
[0098] The super-resolution processing unit 411 performs the following on the image at time t input from the image buffer unit 403: The super-resolution processing unit 411 performs super-resolution processing by referring to the super-resolution predicted image at time t input from the motion compensation processing unit 409, and outputs the super-resolution image at time t. In other words, the super-resolution processing unit 411 outputs the super-resolution image by referring to the image at time t input from the image buffer unit 403 and the super-resolution predicted image.
[0099] 8, the super-resolution processor 411 may refer to auxiliary information as appropriate when performing super-resolution processing. The super-resolution processor 411 may be trained using a convolutional neural network (CNN), a generative adversarial network (GAN), or the like. .
[0100] Here, the auxiliary information is information that can be referenced by any of the image buffer unit 403, the super-resolution processing unit 411, and the predicted image generation unit 405, and is information that defines the processing at the reference source. .
[0101] The image buffer unit 403 determines the order of images to be stored by referring to auxiliary information, for example, as will be described later. The super-resolution processor 411 may determine the resolution of the image after the super-resolution processing, for example. The predicted image generating unit 405 may determine the predicted image by referring to the auxiliary information. It may be determined by referring to auxiliary information whether or not to use a predicted image. It is better not to use a predicted image when, in a series of images indicated by an image signal, the scene suddenly changes and there is no similarity between the previous and next images. Note that FIG. 8 and FIG. 9 (to be described later) are examples of cases where the super-resolution processing unit 411 does not use auxiliary information. 1 illustrates an example of how information is referenced.
[0102] For example, the auxiliary information is useful information for improving image quality in the super-resolution processing unit 411. The super-resolution parameters are parameters for super-resolution processing on a target picture basis or on a block basis when the target picture is divided into blocks. If there is an image (original high resolution) before reduction of the low-resolution image to be super-resolution processed, it is possible to select super-resolution processing parameters that will bring the image closer to a high-resolution image using a signal processing criterion such as squared error. The criterion for bringing the image closer to a high-resolution image may be a subjective element, such as a criterion for further enhancing edges. Alternatively, the super-resolution processing parameters can be generated by taking the difference between the image before encoding and the image after encoding and decoding, in a direction that restores information lost by encoding. By using such super-resolution processing parameters as auxiliary information, the super-resolution processing unit 411 Furthermore, if there is an original image before encoding of a low-resolution image and an image after encoding and decoding, by using parameters that take into account both the error due to encoding and the error between the low-resolution image to be super-resolution processed and the original high-resolution image before reduction as auxiliary information, it is possible to improve image quality even when encoding processing is performed.
[0103] The auxiliary information may be input to the video converter 401 separately from the image signal. It may be configured to be included as part of the image signal.
[0104] The super-resolution image buffer unit 413 stores a plurality of super-resolution images input from the super-resolution processing unit 411. Of the plurality of super-resolution images stored in the super-resolution image buffer unit 413, the super-resolution image at time t-1 is input to the motion compensation processing unit 409. The super-resolution image at time t, which is the output of the super-resolution processing unit 411, is also the output of the video conversion device 401, and is, for example, the target of playback.
[0105] As described above, the video converter 401 according to this embodiment has an image buffer for storing a plurality of images. The video converter 401 includes a super-resolution image generator 403, a predicted image generator 405 that generates a predicted image from the image input from the image buffer 403 by referring to the super-resolution image stored in the super-resolution image buffer 413, and a super-resolution processor 411 that performs super-resolution processing on the image input from the image buffer 403 by referring to the predicted image. The above configuration makes it possible to realize a video converter 401 that can generate a predicted image by referring to a suitable image that has been subjected to super-resolution processing.
[0106] The video conversion method executed by the video conversion device 401 according to this example is a buffering step for storing the super-resolution image; a predicted image generating step of generating a predicted image from the image stored in the buffering step by referring to the image; and a super-resolution processing step of performing super-resolution processing on the image obtained by the super-resolution processing. According to the above method, a predicted image can be generated by referring to a suitable image that has been subjected to super-resolution processing.
[0107] (Configuration example 2 of video conversion device) A second example of the configuration of the video conversion device will be described. In this example, a configuration will be described in which an image is further referenced when the predicted image generation unit 405 generates a super-resolution predicted image. For the sake of convenience, the same description will not be repeated for the above examples, and the same applies to the following examples.
[0108] 9 is a functional block diagram of a video converter 401a according to this example. As shown in FIG. 9, the video converter 401a further includes an upsampling unit 415 in addition to the components shown in FIG.
[0109] The upsampling unit 415 upsamples the input image to The image output has a higher resolution than before the upsampling. The upsampling unit 415 then converts the image data at time t+1 input from the image buffer unit 403 into The low-resolution image is upsampled and output to the motion compensation processing unit 409 .
[0110] This is because the motion compensation processing unit 409 according to this example calculates the motion vector at time t and the motion vector at time t-1. In addition to the super-resolution image at time t, we also refer to the upsampled image at time t+1. and generates a super-resolution predicted image at time t.
[0111] As a result, the motion compensation processing unit 409 generates a super-resolution image at time t-1 and a super-resolution image at time t+1. Even if there is an occlusion problem in either the upsampled image or the above image, a suitable super-resolution predicted image can be generated by referring to the other image.
[0112] 10 is a conceptual diagram showing the processing by the video conversion device 401a according to this example. In FIG. 10, low-resolution images at times t-1, t, and t+1 are input in order to the motion detection unit 407, and the motion compensation processing unit 409 calculates the motion vector at time t, the super-resolution image at time t-1, and the low-resolution image at time t+1. , and a process of outputting a super-resolution image at time t, which is generated by referring to the upsampled image at time t+1, to the super-resolution processing unit 411.
[0113] As described above, the video converter 401a according to this embodiment receives the video data from the video buffer unit 403. 8 further includes an upsampling unit 415 that outputs an image with a higher resolution than before the upsampling by upsampling the super-resolution image at time t-1 and the upsampled image at time t+1. The predicted image is generated by referring to the above. According to the above configuration, it is possible to improve the processing performance for generating a super-resolution predicted image.
[0114] (Configuration Example 3 of Video Conversion Device) A third example of the configuration of the video converter will be described. In this example, a configuration in which the video converter changes the order of images stored in the image buffer unit 403 will be described.
[0115] Fig. 11 is a functional block diagram of a video converter 401b according to this example. As shown in Fig. 11, the video converter 401b includes a frame order changer (first order changer) 417 and a frame reverse order changer (second frame order changer) 419 in addition to the components shown in Fig. 8.
[0116] The frame order change unit 417 changes the time series order of the low resolution images to a predetermined order. 11, the frame order change unit 417 changes the order of a plurality of images stored in the image buffer unit 403 to a predetermined order. For example, as shown in Fig. 11, the order of the image at time t and the image at time t-1 is swapped. As a result, the order of images to be processed thereafter becomes (t-4, t-3, t-2, t, t-1) = (t'-4, t'-3, t'-2, t'-1, t').
[0117] The order of images changed by the frame order change unit 417 is determined by the auxiliary information. In other words, the frame order change unit 417 may change the order of the images in the time series by This may be changed depending on the content of the information.
[0118] The frame reverse order change unit 419 changes the order of the images in the time series represented by the image signal to the frame reverse order. The order is changed to the original order before the order change unit 417 changed the order. The frame reverse order change unit 419 changes the order of the super-resolution images input from the super-resolution image buffer unit 413 back to the original order.
[0119] Furthermore, in the example shown in Figure 11, the motion detection unit 407 in this example may derive the motion vector at time t' by referring to images corresponding to the past four frames after the order change, that is, times t'-4, t'-3, t'-2, and t'-1.
[0120] Furthermore, when generating a super-resolution predicted image at time t', the motion compensation processing unit 409 according to this example uses the motion vector at time t' and the super-resolution predicted images at times t'-4, t'-3, t'-2, and t'-1. This configuration refers to the super-resolution predicted image, thereby improving the processing performance for generating the super-resolution predicted image.
[0121] Supplementally, the order of images in the time series is changed by the frame order change unit 417. Therefore, when the motion compensation unit generates a super-resolution predicted image at time t' (= time t-1), In this case, a super-resolution image at time t'-1 (=time t), which is a time in the future of time t', can also be referenced. Therefore, even if there is an occlusion problem in either an image at a time earlier than time t' or an image at a time later than time t', a suitable super-resolution predicted image can be generated by referring to the other image. Furthermore, the configuration of this example is such that the allowable delay in images input to the image buffer unit 403 is the same as that of the video conversion device in "Configuration Example 2 of Video Conversion Device." It is larger than device 401a.
[0122] As described above, the video converter 401b according to this embodiment stores the video in the video buffer unit 403. The order of the images input to the super-resolution processing unit 411 is set to a predetermined order. 8, further comprising a frame order change unit 417 that changes the order of the super-resolution images output by the super-resolution processing unit 411 to the order before the order was changed by the frame order change unit 417, and a frame reverse order change unit 419 that changes the order of the super-resolution images output by the super-resolution processing unit 411 to the order before the order was changed by the frame order change unit 417. This has the effect of making it easier to avoid the problem of occlusion when forming a pixel.
[0123] (Configuration Example 4 of Video Conversion Device) A fourth example of the configuration of the video conversion device will be described. In this example, a configuration in which an image decoded by a decoding device is input to an image buffer unit 403 will be described.
[0124] 12 is a functional block diagram of a video converter 401c according to this example. As shown in FIG. 12, the video converter 401c according to this example includes a decoding unit (decoding device) 421, a side information decoding unit 425, and a multi-frame super-resolution processing unit 427.
[0125] The decoding unit 421 is a decoding device having the same functions as the video decoding device 31. However, as shown in FIG. In this example, the configuration is simplified, and the decoded image is read from the reference picture memory 306 as follows: The signal is output to the outside of the decoding unit 421. The prediction unit 423 performs processing related to the generation of a predicted image.
[0126] The auxiliary information decoding unit 425 decodes the encoded auxiliary information. The encoded auxiliary information may be decoded by the decoder 421, or the encoded auxiliary information data may be It may be configured to be included in the coded stream.
[0127] In addition, the auxiliary information is information that specifies the processing at the reference source, and may be information that is referenced by any of the image buffer unit 403, super-resolution processing unit 411, and predicted image generation unit 405 provided in the multi-frame super-resolution processing unit 427.
[0128] The multi-frame super-resolution processor 427 is a simplified version of the video converter 401 (or 401a or 401b) shown in FIG. 8 (or FIG. 9 or FIG. 11), and is equivalent to the video converter 401, etc. and includes an image buffer unit 403 and the like.
[0129] From another perspective of the above-mentioned configuration, the video conversion device 401c according to this example further includes a decoding unit 421 for decoding the coded stream of images in addition to the configuration shown in FIG. 8 etc., and The image thus obtained is used as an input image for the image buffer unit 403 included in the multi-frame super-resolution processing unit 427. With the above configuration, a video conversion device 401c that processes coded streams can be realized.
[0130] Furthermore, the video conversion device 401c according to this example uses auxiliary information that is referenced by at least one of the image buffer unit 403, the super-resolution processing unit 411, and the predicted image generation unit 405, and is 8 etc., further includes a side information decoding unit 425 that decodes side information that defines the processing to be performed in the video conversion device 401. The above configuration makes it possible to realize a video conversion device 401c that can decode and refer to coded side information.
[0131] In another embodiment of the present invention, the decoding unit (decoding device) 421 and the auxiliary information decoding unit 425 may be configured to be realized as external devices, rather than being included in the video conversion device 401c. The image buffer unit 403 provided may be a single shared memory.
[0132] (Configuration Example 5 of Video Conversion Device) A fifth example of the configuration of the video conversion device will be described below. In this example, the video conversion device switches the processing for the decoded image depending on the auxiliary information.
[0133] Fig. 13 is a functional block diagram of a video converter 401d according to this example. As shown in Fig. 13, the video converter 401d according to this example further includes a switching unit 429, an intra-frame super-resolution processor 431, and an upsampling unit 433 in addition to the components shown in Fig. 12.
[0134] The switching unit 429 switches the output destination of the decoded image output from the decoding unit 421 to one of the multi-frame super-resolution processing unit 427, the intra-frame super-resolution processing unit 431, and the upsampling unit 433, with reference to the auxiliary information. That is, in this example, the auxiliary information is information that defines the processing of the switching unit 429. The intra-frame super-resolution processing unit 431 refers to the image itself to be processed, and The upsampling unit 433 performs super-resolution processing on the image. By upsampling, an image with a higher resolution than before the upsampling is output.
[0135] The switching can be performed in units of a plurality of accessible pictures called a GOP (Group of Pictures), in units of one picture, or in units of blocks obtained by dividing one picture.
[0136] From another perspective of the above-mentioned configuration, the video conversion device 401d according to this example includes a decoding unit 421 that decodes an encoded stream of images, a switching unit 429 that switches the output destination of the images decoded by the decoding unit 421, and a side information decoding unit 425 that decodes side information that defines the processing of the switching unit 429, all of which are shown in FIG. 2, etc., and one of the output destinations of the decoded image, which is switched by the switching unit 429 with reference to the auxiliary information, is the image buffer unit 403 included in the multi-frame super-resolution processing unit 427. With the above configuration, it is possible to realize a moving image conversion device 401d that processes an encoded stream and can output an image that has been subjected to super-resolution processing as necessary.
[0137] (Configuration of a video encoding device) Next, the configuration of the video encoding device 11 according to this embodiment will be described. Fig. 14 is a block diagram showing the configuration of the video encoding device 11 according to this embodiment. The video encoding device 11 includes a prediction image generation unit 101, a subtraction unit 102, a transformation and quantization unit 103, an inverse quantization and inverse transformation unit 105, an addition unit 106, a loop filter 107, a prediction parameter memory (prediction parameter storage unit, frame memory) 108, a reference picture memory (reference image storage unit, frame memory) 109, a coding parameter determination unit 110, a parameter coding unit 111, a prediction parameter derivation unit 120, and an entropy coding unit 104.
[0138] The predicted image generation unit 101 generates a predicted image for each CU. The predicted image generation unit 101 includes the inter predicted image generation unit 309 and the intra predicted image generation unit 310, which have already been described, and therefore further description thereof will be omitted.
[0139] The subtraction unit 102 generates a prediction error by subtracting pixel values of the predicted image of the block input from the predicted image generation unit 101 from pixel values of the image T. The subtraction unit 102 outputs the prediction error to the transformation and quantization unit 103.
[0140] The transform / quantization unit 103 calculates transform coefficients by frequency transforming the prediction errors input from the subtraction unit 102, and derives quantized transform coefficients by quantizing the prediction errors. The quantized transform coefficients are output to the parameter coding unit 111 and the inverse quantization and inverse transform unit 105 .
[0141] The inverse quantization and inverse transform unit 105 is the same as the inverse quantization and inverse transform unit 311 (FIG. 6) in the video decoding device 31. The calculated prediction error is output to the adder 106.
[0142] The parameter coding unit 111 includes a header coding unit 1110, a CT information coding unit 1111, and a CU coding unit 1112 (prediction mode coding unit). The CU coding unit 1112 further includes a TU coding unit 1114. The outline of the operation of each module is explained below.
[0143] The header encoding unit 1110 performs encoding processing of parameters such as header information, division information, prediction information, and quantized transform coefficients.
[0144] The CT information encoding unit 1111 encodes QT, MT (BT, TT) division information and the like.
[0145] The CU encoding unit 1112 encodes CU information, prediction information, division information, and the like.
[0146] When a prediction error is included in a TU, the TU encoding unit 1114 encodes the QP update information and the quantized prediction error.
[0147] The CT information encoding unit 1111 and the CU encoding unit 1112 transmit syntax elements such as inter prediction parameters (predMode, merge_flag, merge_idx, inter_pred_idc, refIdxLX, mvp_LX_idx, mvdLX), intra prediction parameters (intra_luma_mpm_flag, intra_luma_mpm_idx, intra_luma_mpm_reminder, intra_chroma_pred_mode), and quantized transform coefficients to the parameter encoding unit 111. Supply.
[0148] The entropy coding unit 104 receives the quantized transform coefficients and the coding parameters from the parameter coding unit 111. The entropy coding unit 104 receives the input of the parameters (division information, prediction parameters). These are then entropy coded to generate and output a coded stream Te.
[0149] The prediction parameter derivation unit 120 is a means including an inter-prediction parameter coding unit 112 and an intra-prediction parameter coding unit 113, and derives intra-prediction parameters and intra-prediction parameters from the parameters input from the coding parameter determination unit 110. The derived intra-prediction parameters and intra-prediction parameters are output to the parameter coding unit 111. can be.
[0150] The adder 106 generates a decoded image by adding, for each pixel, the pixel values of the predicted block input from the predicted image generation unit 101 and the prediction errors input from the inverse quantization and inverse transform unit 105. The adder 106 stores the generated decoded image in a reference picture memory 109.
[0151] The loop filter 107 performs deblocking filtering, SAO, and ALF on the decoded image generated by the adder 106. Note that the loop filter 107 does not necessarily include the above three types of filters. For example, the filter may be configured with only a deblocking filter.
[0152] The prediction parameter memory 108 stores the prediction parameters generated by the coding parameter determination unit 110 in a predetermined location for each current picture and CU.
[0153] The reference picture memory 109 stores the decoded image generated by the loop filter 107 at a predetermined location for each current picture and CU.
[0154] The encoding parameter determination unit 110 determines one set of encoding parameters from among a plurality of sets of encoding parameters. The coding parameters are the above-mentioned QT, BT or TT division information, prediction parameters, or parameters to be coded that are generated in relation to these. The predicted image generation unit 101 generates a predicted image using these coding parameters.
[0155] The encoding parameter determination unit 110 determines the size of the information amount and the encoding parameter for each of the plurality of sets. The RD cost value indicating the error is calculated. The RD cost value is, for example, the sum of the code amount and the value obtained by multiplying the squared error by a coefficient λ. The code amount is the information amount of the coded stream Te obtained by entropy coding the quantization error and the coding parameters. The squared error is calculated in the subtraction unit 102. The coefficient λ is a preset real number greater than zero. The coding parameter determination unit 110 determines the set of coding parameters that minimizes the calculated cost value. The encoding parameter determination unit 110 selects the encoding parameter. The result is output to the encoding unit 111 and the prediction parameter derivation unit 120.
[0156] (Configuration Example 1 of the Encoded Data Generation Device) The coded data generating device according to this embodiment will be described below. The coded data generating device is a device that outputs a coded stream of images and coded auxiliary information data. In this example, a coded data generating device 451c that is used in conjunction with the video conversion device 401c described above in "Configuration Example 4 of a Video Conversion Device" will be described.
[0157] 15 is a functional block diagram of the coded data generating device 451c according to this example. As shown in FIG. 15, the coded data generating device 451c according to this example includes an image reducing unit (downsampling unit) 453. , a coding unit (coding device) 455, and a side information coding unit 461.
[0158] The image reduction unit 453 downsamples the input image to reduce the size of the downsampled image. Outputs an image with a lower resolution than before sampling.
[0159] The encoding unit 455 is an encoding device having the same functions as the encoding device 11. However, in FIG. In this example, the configuration is simplified.
[0160] The auxiliary information encoding unit 461 encodes the auxiliary information that defines the processing of the video conversion device. The auxiliary information encoding unit 461 according to the example encodes, as auxiliary information, information input from the image reducing unit 453, which indicates the reduction ratio of the image. It can be said that the video converter 401c also functions as an auxiliary information generator that generates auxiliary information indicating the reduction ratio of the image. This may be referenced when determining the resolution of an image.
[0161] The coded data generating device 451c according to this example includes an auxiliary information generating unit (image reducing unit 453 in the above example) that generates auxiliary information referenced by the video conversion device 401c (or 401, 401a, or 401b). The auxiliary information may be auxiliary information referenced by at least one of the image buffer unit 403, the super-resolution processing unit 411, and the predicted image generating unit 405. According to this, it is possible to realize an encoded data generation device 451c that is used in combination with the video conversion device 401c or the like.
[0162] In addition, the coded auxiliary information may be included in the coded stream of the image. In the above-mentioned configuration, for example, the entropy coding unit 104 codes the coded auxiliary information data. Alternatively, the entropy coding unit 104 may combine the auxiliary information with the encoded stream. The information encoding unit 461 may be configured to function as the information encoding unit 461.
[0163] (Configuration Example 2 of the Encoded Data Generation Device) A second configuration example of a coded data generating device will be described. In this example, a coded data generating device 451d that is used as a pair with the moving image conversion device 401d described above in "Configuration Example 5 of a Moving Image Conversion Device" will be described. For the sake of convenience, overlapping descriptions of matters already described in the above examples will not be repeated.
[0164] 16 is a functional block diagram of a coded data generation device 451d according to this example. As shown in FIG. 16, the coded data generation device 451d according to this example includes a coding unit (coding device) 455, an image reduction unit 453, a side information generation unit 459, and a side information coding unit 461.
[0165] The auxiliary information generating unit 459 generates an input image to the coded data generating device 451d and a reference picture memory. The auxiliary information may be generated by referring to the decoded image stored in the image storage 109. The auxiliary information is used when the switching unit 429 of the video converter 401d switches the output destination of the decoded image. The auxiliary information generated by the auxiliary information generating unit 459 may be an auxiliary information code. The data is input to the encoding unit 461 and encoded.
[0166] According to the above configuration, it is possible to realize a coded data generating device 451d that is used as a pair with the moving picture conversion device 401d.
[0167] (Configuration Example 3 of the Encoded Data Generating Device) A third example of the configuration of a coded data generating device will be described. In this example, a coded data generating device 451e will be described which is used as a pair with the video converter 401c described above in "Configuration Example 4 of a Video Converter" or the video converter 401e shown in FIG. 17. The video converter 401e uses a frame super-resolution processor 427 instead of the multi-frame super-resolution processor 427 in the video converter 401c. The configuration includes an intra-frame super-resolution processing unit 431. The intra-frame super-resolution processing unit 431 refers to the image to be processed itself and performs super-resolution processing on the image. For ease of explanation, overlapping descriptions of matters already explained in the above example will not be repeated.
[0168] 18 is a functional block diagram of a coded data generation device 451e according to this example. As shown in FIG. 18, the coded data generation device 451e according to this example includes a coding unit (coding device) 455, an image reduction unit 453, a side information generation unit 459, and a side information coding unit 461.
[0169] The auxiliary information generating unit 459 generates the auxiliary information for the high-resolution image signal that is input to the coded data generating device 451e. The auxiliary information generating unit 459 generates auxiliary information from complexity information based on the frequency characteristics. The complexity information may be derived by image variance or edge extraction. The auxiliary information generating unit 459 may also derive complexity information for the decoded image stored in the reference picture memory 109 in the same way, and generate auxiliary information by comparing it with the complexity information. The auxiliary information generating unit 459 generates auxiliary information on a pixel-by-pixel basis. Alternatively, the auxiliary information may be generated in units of blocks to reduce the amount of auxiliary information. The auxiliary information generating unit 459 may perform quantization processing to reduce the amount of auxiliary information. The auxiliary information generated by the auxiliary information generating unit 459 is input to the auxiliary information encoding unit 461 and encoded.
[0170] Note that, in the above-described embodiment, the video encoding device 11 and a part of the video decoding device 31, for example, the entropy decoding unit 301, the parameter decoding unit 302, the loop filter 305, the predicted image generation unit 306, The control unit 308, the inverse quantization and inverse transform unit 311, the addition unit 312, the prediction parameter derivation unit 320, the prediction image generation unit 101, the subtraction unit 102, the transform and quantization unit 103, the entropy coding unit 104, the inverse quantization and inverse transform unit 105, the loop filter 107, the coding parameter determination unit 110, the parameter coding unit 111, and the prediction parameter derivation unit 120 may be realized by a computer. The program for realizing the above may be recorded on a computer-readable recording medium, and the program recorded on the recording medium may be read and executed by a computer system. Note that the "computer system" here refers to a computer system built into either the video encoding device 11 or the video decoding device 31, and includes hardware such as an OS and peripheral devices. Also, the "computer-readable recording medium" refers to a portable medium such as a flexible disk, a magneto-optical disk, a ROM, a CD-ROM, or a computer-readable medium. "A computer-readable recording medium" refers to a storage device, such as a hard disk, built into a computer system. Furthermore, "computer-readable recording medium" may also include a device that dynamically stores a program for a short period of time, such as a communication line when transmitting a program via a network such as the Internet or a communication line such as a telephone line, or a device that stores a program for a fixed period of time, such as volatile memory within a computer system that serves as a server or client in such cases. Furthermore, the program may be one that realizes part of the aforementioned functions, or may be one that can realize the aforementioned functions in combination with a program already stored in the computer system.
[0171] Furthermore, part or all of the video encoding device 11 and video decoding device 31 in the above-described embodiments may be realized as an integrated circuit such as an LSI (Large Scale Integration). Each functional block of the video encoding device 11 and video decoding device 31 may be individually implemented as a processor, or part or all of them may be integrated into a processor. Furthermore, the integrated circuit implementation method is not limited to LSI, and may be implemented using a dedicated circuit or a general-purpose processor. Furthermore, if an integrated circuit implementation technology that can replace LSI emerges due to advances in semiconductor technology, an integrated circuit based on that technology may be used.
[0172] One embodiment of the present invention has been described in detail above with reference to the drawings, but the specific configuration is not limited to that described above, and various design changes and the like are possible within the scope that does not deviate from the gist of the present invention.
[0173] [Application example] The above-mentioned video encoding device 11 and video decoding device 31 can be mounted on various devices that transmit, receive, record, and play back video. The moving images may be natural moving images captured by a camera or artificial moving images (including CG and GUI) generated by a computer or the like.
[0174] First, it will be explained with reference to FIG. 2 that the above-described video encoding device 11 and video decoding device 31 can be used for transmitting and receiving video.
[0175] PROD_A in FIG. 2 is a block diagram showing the configuration of a transmitting device PROD_A equipped with a video encoding device 11. As shown in the figure, the transmitting device PROD_A includes an encoding unit PROD_A1 that encodes a video image to obtain encoded data, a modulation unit PROD_A2 that modulates a carrier wave with the encoded data obtained by the encoding unit PROD_A1 to obtain a modulated signal, and a transmitting unit PROD_A3 that transmits the modulated signal obtained by the modulation unit PROD_A2. The above-described video encoding device 11 is used as this encoding unit PROD_A1.
[0176] The transmitting device PROD_A captures moving images as a supply source of moving images to be input to the encoding unit PROD_A1. a recording medium PROD_A5 on which moving images are recorded; an input terminal PROD_A6 for inputting moving images from the outside; and an image processing unit A7 for generating or processing images. In the figure, the transmitting device PROD_A is shown as having all of these components, but some of them may be omitted.
[0177] The recording medium PROD_A5 may also be one that records unencoded moving images. Alternatively, the recording medium PROD_A5 may be a recording medium that has been coded using a coding method for recording that is different from the coding method for transmission. In the latter case, a decoding unit ( It is advisable to use a device (not shown) between the two.
[0178] PROD_B in FIG. 2 is a block diagram showing the configuration of a receiving device PROD_B equipped with a video decoding device 31. As shown in the figure, the receiving device PROD_B includes a receiving unit PROD_B1 that receives a modulated signal, The video decoding device 31 is used as the decoding unit PROD_B3. will be done.
[0179] The receiving device PROD_B is a supply destination of the video output from the decoding unit PROD_B3, and is configured to display the video. The device may further include a display PROD_B4 for recording moving images, a recording medium PROD_B5 for recording moving images, and an output terminal PROD_B6 for outputting moving images to the outside. Although the receiving device PROD_B is illustrated as having the above components, some of these may be omitted.
[0180] The recording medium PROD_B5 is for recording unencoded moving images. In the latter case, a signal from the decoding unit PROD_B3 to the recording medium PROD_B5 is provided between the decoding unit PROD_B3 and the recording medium PROD_B5. It is preferable to interpose an encoding unit (not shown) that encodes the acquired moving images according to an encoding method for recording.
[0181] The transmission medium for transmitting the modulated signal may be wireless or wired. The transmission mode for transmitting the modulated signal may be broadcast (here, this refers to a transmission mode in which the destination is not specified in advance) or communication (here, this refers to a transmission mode in which the destination is specified in advance). In other words, the transmission of the modulated signal may be realized by any of wireless broadcasting, wired broadcasting, wireless communication, and wired communication.
[0182] For example, terrestrial digital broadcasting stations (broadcasting equipment, etc.) / receiving stations (television receivers, etc.) The above) are examples of a transmitting device PROD_A / receiving device PROD_B that transmits and receives modulated signals by wireless broadcasting. A cable television broadcasting station (broadcasting equipment, etc.) / receiving station (television receiver, etc.) are also examples of a transmitting device PROD_A / receiving device PROD_B that transmits and receives modulated signals by cable broadcasting.
[0183] Furthermore, a server (such as a workstation) / client (such as a television receiver, personal computer, or smartphone) of an Internet-based VOD (Video On Demand) service or video sharing service is an example of a transmitter PROD_A / receiver PROD_B that transmits and receives modulated signals via communication (usually, a LAN uses either a wireless or wired transmission medium, while a WAN uses a wired transmission medium). Here, personal computers include desktop PCs, laptop PCs, and tablet PCs. Smartphones also include multi-function mobile phone terminals.
[0184] The client of the video hosting service has the function of decoding the encoded data downloaded from the server and displaying it on a display, as well as the function of encoding the video images captured by a camera and uploading them to the server. In other words, the client of the video hosting service functions as both the transmitting device PROD_A and the receiving device PROD_B.
[0185] Next, it will be explained with reference to FIG. 3 that the above-described video encoding device 11 and video decoding device 31 can be used for recording and reproducing video.
[0186] PROD_C in FIG. 3 shows the configuration of a recording device PROD_C equipped with the above-described video encoding device 11. As shown in the figure, the recording device PROD_C includes an encoding unit PROD_C1 that encodes a moving image to obtain encoded data, and a writing unit PROD_C2 that writes the encoded data obtained by the encoding unit PROD_C1 onto a recording medium PROD_M. , is used as this encoding unit PROD_C1.
[0187] The recording medium PROD_M may be (1) a type built into the recording device PROD_C, such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive), (2) a type connected to the recording device PROD_C, such as an SD memory card or a USB (Universal Serial Bus) flash memory, or (3) a DVD (Digital Versatile Disc: registered). (registered trademark) or BD (Blu-ray Disc: registered trademark), It may also be one that is loaded into a live device (not shown).
[0188] The recording device PROD_C also receives the video as a video source to be input to the encoding unit PROD_C1. The recording device PROD_C may further include a camera PROD_C3 for capturing images, an input terminal PROD_C4 for inputting moving images from the outside, a receiving unit PROD_C5 for receiving moving images, and an image processing unit PROD_C6 for generating or processing images. In the figure, the recording device PROD_C is shown as having all of these components, but some of them may be omitted.
[0189] The receiving unit PROD_C5 may receive unencoded video. Alternatively, the receiving unit PROD_C5 may receive coded data coded by a coding method for transmission that is different from the coding method for recording. In the latter case, it is preferable to interpose a decoding unit for transmission (not shown) between the receiving unit PROD_C5 and the coding unit PROD_C1, which decodes the coded data coded by the coding method for transmission.
[0190] Examples of such a recording device PROD_C include a DVD recorder, a BD recorder, and an HDD (Hard Disk Drive) recorder (in this case, the input terminal PROD_C4 or the receiving unit PROD_C5 is the main source of the moving image). Also, a camcorder (in this case, the camera PROD_C3 is the main source of the moving image), a personal computer (in this case, the receiving unit PROD_C5 or the image The processing unit C6 is the main source of video images), a smartphone (in this case, the camera PROD_C3 or the receiving unit PROD_C5 is the main source of the moving image), such a recording device PROD_C This is an example.
[0191] FIG. 3 is a block diagram showing the configuration of a playback device PROD_D incorporating the above-described video decoding device 31. As shown in the figure, the playback device PROD_D includes a reading unit PROD_D1 that reads coded data written on a recording medium PROD_M, and a decoding unit PROD_D2 that obtains video by decoding the coded data read by the reading unit PROD_D1. The above-mentioned video decoding device 31 is used as this decoding unit PROD_D2.
[0192] The recording medium PROD_M may be (1) a type that is built into the playback device PROD_D, such as an HDD or SSD, or (2) a type that is not built into the playback device PROD_D, such as an SD memory card or a USB flash memory. (3) DVD, BD, etc. As shown in the figure, the disc may be loaded into a drive device (not shown) built into the playback device PROD_D.
[0193] Furthermore, the playback device PROD_D receives the video output from the decoding unit PROD_D2 and sends the video to The image processing device may further include a display PROD_D3 for displaying the moving image, an output terminal PROD_D4 for outputting the moving image to the outside, and a transmission unit PROD_D5 for transmitting the moving image. Although the configuration of the playback device PROD_D is illustrated, some of the components may be omitted.
[0194] The transmission unit PROD_D5 may transmit unencoded video. Alternatively, the decoder PROD_D2 may transmit coded data coded by a coding method for transmission that is different from the coding method for recording. In the latter case, it is preferable to interpose a coding unit (not shown) between the decoder PROD_D2 and the transmitter PROD_D5, which codes the video by the coding method for transmission.
[0195] Examples of such a playback device PROD_D include a DVD player, a BD player, and an HDD player (in this case, the output terminal PROD_D4 to which a television receiver or the like is connected operates). In addition, television receivers (in this case, the display PROD_D3 is the main supply destination of moving images), digital signage (also called electronic billboards or electronic bulletin boards, etc.) a display PROD_D3 or a transmitter PROD_D5 is the main supply destination of the moving image), a desktop PC (in this case, the output terminal PROD_D4 or a transmitter PROD_D5 is the main supply destination of the moving image), a laptop or tablet PC (in this case, the display PROD_D3 or a transmitter PROD_D5 is the main supply destination of the moving image). Examples of such a playback device PROD_D include a playback device PROD_D1 (in which case the display PROD_D3 or the transmission unit PROD_D5 is the main supply destination of the video images) and a smartphone (in which case the display PROD_D3 or the transmission unit PROD_D5 is the main supply destination of the video images).
[0196] (hardware and software implementations) Furthermore, each block of the video decoding device 31 and the video encoding device 11 may be realized in hardware by a logic circuit formed on an integrated circuit (IC chip), or may be realized by a CPU. This may be realized in software using a Central Processing Unit (Central Processing Unit).
[0197] In the latter case, each of the above devices includes a CPU that executes instructions from a program to realize each function, ROM (Read Only Memory) stores the program, and RAM (Random Access Memory) expands the program. The object of the embodiment of the present invention can also be achieved by supplying a recording medium on which the program code (executable program, intermediate code program, source program) of the control program of each of the above devices, which is software for realizing the above-mentioned functions, is recorded in a computer-readable manner to each of the above devices, and having the computer (or CPU or MPU) read and execute the program code recorded on the recording medium. .
[0198] Examples of the recording medium include tapes such as magnetic tapes and cassette tapes, magnetic disks such as floppy disks (registered trademark) and hard disks, disks including optical disks such as CD-ROMs (Compact Disc Read-Only Memory), MO disks (Magneto-Optical discs), MDs (Mini Discs), DVDs (Digital Versatile Discs: registered trademark), CD-Rs (CD Recordable), and Blu-ray Discs (registered trademark), cards such as IC cards (including memory cards) and optical cards, and memory cards such as mask ROMs, EPROMs (Erasable Programmable Read-Only Memory), EEPROMs (Electrically Erasable and Programmable Read-Only Memory: registered trademark), Semiconductor memories such as flash ROM, or PLD (Programmable logic device) and FPGA Logic circuits such as a Field Programmable Gate Array (FPGA) can be used.
[0199] Furthermore, each of the above devices may be configured to be connectable to a communications network, and the program code may be supplied via the communications network. This communications network may be any network capable of transmitting the program code. For example, the Internet, an intranet, an extranet, a local area network (LAN), an integrated services digital network (ISDN), a value-added network (VAN), a community antenna television / cable television (CATV) communications network, a virtual private network, a telephone line network, a mobile communications network, a satellite communications network, etc. Furthermore, the transmission media constituting this communications network may be any medium capable of transmitting the program code, and are not limited to any particular configuration or type. For example, there are wired standards such as IEEE (Institute of Electrical and Electronic Engineers) 1394, USB, power line carriers, cable TV lines, telephone lines, and ADSL (Asymmetric Digital Subscriber Line) lines, infrared standards such as IrDA (Infrared Data Association) and remote controls, Bluetooth (registered trademark), IEEE802.11 wireless, HDR (High Data Rate), NFC (Near Field Communication), DLNA (Digital Living Network Alliance: registered trademark), mobile phone networks, It can also be used wirelessly via satellite links, terrestrial digital broadcasting networks, etc. Note that the embodiments of the present invention can also be realized in the form of a computer data signal in which the program code is embodied by electronic transmission and is embedded in a carrier wave.
[0200] The present invention is not limited to the above-described embodiments, and various modifications are possible within the scope of the claims. In other words, embodiments obtained by combining technical means modified appropriately within the scope of the claims are also included in the technical scope of the present invention. [Industrial Applicability]
[0201] The embodiments of the present invention can be suitably applied to a video decoding device that decodes coded data obtained by coding image data, and a video coding device that generates coded data obtained by coding image data, and can also be suitably applied to the data structure of coded data generated by a video coding device and referenced by the video decoding device. [Explanation of symbols]
[0202] 31 Image decoding device 301 Entropy Decoding Unit 302 Parameter Decoding Unit 303 Inter-prediction parameter derivation unit 304 Intra prediction parameter derivation unit 305, 107 Loop filter 306, 109 Reference Picture Memory 307, 108 Prediction parameter memory 308, 101, 405 Prediction image generation unit 309 Inter-prediction image generation unit 310 Intra-prediction image generation unit 311, 105 Inverse quantization and inverse transform unit 312, 106 Addition section 320 Prediction parameter derivation part 401, 401a, 401b, 401c, 401d Video conversion device 403 Image buffer section 407 Detection unit 409 Compensation Processing Unit 411 Super-resolution processing unit 413 Super-resolution image buffer 415, 433 Upsampling section 417 Frame Order Changer 419 Frame Reverse Order Changer 421 Decoding Unit 423 Prediction Department 425 Auxiliary Information Decoding Unit 427 Multi-frame Super-resolution Processing Unit 429 Switching Unit 431 Intra-frame super-resolution processing unit 451c, 451d Encoded data generator 453 Image reduction unit (downsampling unit, auxiliary information generation unit) 455 Encoding section 459 Auxiliary information generation section 461 Auxiliary information encoder 11 Image encoding device 102 Subtraction section 103 Transformation and Quantization Unit 104 Entropy coding unit 110 Encoding parameter determination unit 111 Parameter Encoding Unit 112 Inter-prediction parameter coding unit 113 Intra prediction parameter coding unit 120 Prediction parameter derivation part
Claims
1. a side information decoding unit that decodes side information for switching between super-resolution processing and up-sampling processing; a switching unit that switches between the super-resolution processing and the up-sampling processing based on a value of the auxiliary information, A video decoding device characterized in that the super-resolution processing is performed using super-resolution processing parameters and a neural network.
2. 2. The video decoding device according to claim 1, wherein when a plurality of images are input, the super-resolution processing is performed by referring to only the image to be processed.
3. decoding auxiliary information for switching between super-resolution processing and up-sampling processing; and switching between the super-resolution processing and the up-sampling processing based on a value of the auxiliary information; A video decoding method characterized in that the super-resolution processing is performed using super-resolution processing parameters and a neural network.
Citation Information
Patent Citations
Video processing device
JP2019121836A