Image decoding device

By using a common tree structure to segment the brightness block and the color difference block in the image decoding device, the problem of degradation of processing delay and compression performance in intra prediction is solved, and a more efficient prediction image generation process is achieved.

CN113632475BActive Publication Date: 2025-08-08SHARP KK
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202080019398.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-03-08
Filing Date
2020-03-05
Publication Date
2025-08-08
Estimated Expiration
2040-03-05

AI Technical Summary

Technical Problem

In the prior art, the moving image encoding method has a large processing delay in intra prediction, resulting in a reduced throughput, and there are problems such as reduced compression performance and low parallel processing efficiency during color difference block processing.

Method used

The brightness block and the color difference block are divided using a common tree structure, and the common prediction information is decoded when the color difference block is divided into smaller blocks to generate a prediction image.

Benefits of technology

The predicted image generation processing performance in the image decoding device is improved, and the processing efficiency and compression performance are improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113632475B_ABST
    Figure CN113632475B_ABST
Patent Text Reader

Abstract

The present invention improves the performance of a prediction image generation process in an image decoding device. The device comprises: a parameter decoding unit (302) that decodes partitioning information and prediction information for partitioning a luminance block and a chrominance block in a common tree structure; and a prediction image generation unit (308) that generates a prediction image. When the chrominance block is partitioned into blocks smaller than a predetermined block size, the parameter decoding unit decodes the common prediction information for each block.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present invention relate to an image decoding device. Background Art

[0002] In order to efficiently transmit or record moving images, a moving image encoding device that encodes a moving image to generate encoded data and a moving image decoding device that decodes the encoded data to generate a decoded image are used.

[0003] Specific moving picture coding methods include, for example, methods proposed in H.264 / AVC and HEVC (High-Efficiency Video Coding).

[0004] In such a motion image coding method, the images (pictures) that constitute the motion image are managed through a hierarchical structure and encoded / decoded for each CU. The hierarchical structure includes slices obtained by dividing the image, coding tree units (CTU: Coding Tree Unit) obtained by dividing the slices, coding units (sometimes also called coding units (CU)) obtained by dividing the coding tree units, and transform units (TU: Transform Unit) obtained by dividing the coding units.

[0005] Furthermore, in such moving image coding methods, a predicted image is typically generated based on a local decoded image obtained by encoding / decoding an input image, and the prediction error (sometimes also referred to as a "difference image" or "residual image") obtained by subtracting the predicted image from the input image (original image) is encoded. Examples of methods for generating the predicted image include inter-frame prediction and intra-frame prediction.

[0006] Furthermore, recent technologies for moving image encoding and decoding include Non-Patent Document 1. VVC uses various partitioning trees, including quadtrees, binary trees, and ternary trees. However, intra-frame prediction of chroma requires encoding and decoding of small blocks, such as 2×2 / 4×2 / 2×4. Technologies for simplifying chroma prediction for small blocks include Non-Patent Document 2, which limits the chroma block size of a DUAL tree and the prediction mode for small chroma blocks, and Non-Patent Document 3, which allows for parallel processing of chroma prediction for small blocks by changing the reference pixels used for chroma prediction.

[0007] Prior art literature

[0008] Non-patent literature

[0009] Non-Patent Document 1: “Versatile Video Coding (Draft 4)”, JVET-M1001-v1, Joint Video Exploration Team (JVET) of ITU-T SG 16WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11, February 1, 2019

[0010] Non-Patent Document 2: “Non-CE3: Intra chroma partitioning and prediction restriction,” JVET-M0065-v1, Joint Video Exploration Team (JVET) of ITU-T SG 16WP3 and ISO / IEC JTC 1 / SC 29 / WG 11, December 28, 2018

[0011] Non-Patent Document 3: “CE3-related: Shared reference samples for multiple chromaintra CBs,” JVET-M0169-v1, Joint Video Exploration Team (JVET) of ITU-T SG 16WP3 and ISO / IEC JTC 1 / SC 29 / WG 11, January 2, 2019 Summary of the Invention

[0012] Problems to be solved by the invention

[0013] However, the technology of non-patent document 1 has a problem of reduced overall throughput due to the high overhead per pixel of small blocks, especially increased processing delay in intra-frame prediction. In addition, there are methods that use two different segmentation trees (DUAL tree) for luminance and chrominance, and methods that use a common segmentation tree (SINGLE tree) for luminance and chrominance. The Single tree has the following problem: the same segmentation is applied to luminance and chrominance, so even if the size of the chrominance block is simply restricted (for example, the segmentation of chrominance blocks below a specified size is prohibited), the corresponding luminance block cannot be segmented, the luminance block becomes larger, and the compression performance is greatly reduced.

[0014] The techniques in Non-Patent Documents 2 and 3 retain small chroma blocks and simplify the prediction process. However, the chroma blocks require decoded image derivation processes such as inverse quantization and inverse transforms. Therefore, simply simplifying the prediction process creates throughput issues. Furthermore, the technique in Non-Patent Document 3 requires medium-granularity parallel processing, which cannot be used in software that cannot utilize parallel processing beyond the fine-grained operation level or the large-grained thread level.

[0015] One aspect of the present invention has been made in view of the above-mentioned problem, and an object of the present invention is to improve the performance of a predicted image generation process in an image decoding device.

[0016] Technical Solution

[0017] In order to solve the above-mentioned problem, an image decoding device of one embodiment of the present invention comprises: a parameter decoding unit, which decodes partitioning information for partitioning luminance blocks and chrominance blocks in a common tree structure and prediction information referenced in a process of generating a prediction image for each partitioned block; and a prediction image generating unit, which generates a prediction image related to each luminance block and each chrominance block with reference to the partitioning information and prediction information decoded by the parameter decoding unit, wherein the prediction parameter decoding unit decodes the common prediction information for each block included in the chrominance block when the chrominance block is partitioned into blocks smaller than a prescribed block size.

[0018] Beneficial effects

[0019] According to one aspect of the present invention, the performance of the predicted image generation process in the image decoding device can be improved. BRIEF DESCRIPTION OF THE DRAWINGS

[0020] Figure 1 This is a schematic diagram showing the configuration of the image transmission system according to this embodiment.

[0021] Figure 2 This diagram shows the configuration of a transmitting device equipped with the moving picture encoding device according to this embodiment and a receiving device equipped with the moving picture decoding device. Figure 2 (a) represents a transmitting device equipped with a motion picture encoding device, Figure 2 (b) shows a receiving device equipped with a motion picture decoding device.

[0022] Figure 3 This diagram shows the configuration of a recording device equipped with the moving picture encoding device according to this embodiment and a reproducing device equipped with the moving picture decoding device. Figure 3 (a) represents a recording device equipped with a motion picture encoding device, Figure 3 (b) shows a reproduction device equipped with a motion picture decoding device.

[0023] Figure 4 This is a diagram showing the hierarchical structure of coded stream data.

[0024] Figure 5 This is a diagram showing an example of CTU division.

[0025] Figure 6 This is a schematic diagram showing the structure of a moving picture decoding device.

[0026] Figure 7 This is a flowchart explaining the schematic operation of the moving picture decoding device.

[0027] Figure 8 This is a flowchart explaining the operation of the CT information decoding unit.

[0028] Figure 9 This is a diagram showing an example of the structure of a syntax table of CTU and QT information.

[0029] Figure 10 This is a diagram showing a configuration example of a syntax table of MT (Multi Tree) information.

[0030] Figure 11 This is a block diagram showing the structure of a moving picture encoding device.

[0031] Figure 12 This is a diagram showing an example of a configuration for decoding a prediction flag mode.

[0032] Figure 13 This is a diagram showing a configuration example of a syntax table of CT according to this embodiment.

[0033] Figure 14 This is a diagram showing a configuration example of a syntax table of CT according to this embodiment.

[0034] Figure 15 This is a diagram showing a configuration example of a syntax table of a CU according to this embodiment.

[0035] Figure 16 This is a diagram showing an example of the structure of a syntax table of a TU according to this embodiment.

[0036] Figure 17 This is a diagram showing a configuration example of a syntax table of CT according to this embodiment.

[0037] Figure 18 This is a diagram showing a configuration example of a syntax table of CT according to this embodiment.

[0038] Figure 19 This is a diagram showing a configuration example of a syntax table of CT according to this embodiment.

[0039] Figure 20 This is a diagram showing a configuration example of a syntax table of a CU according to this embodiment. DETAILED DESCRIPTION

[0040] (First embodiment)

[0041] Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings.

[0042] Figure 1 It is a schematic diagram showing the configuration of the image transmission system 1 according to this embodiment.

[0043] Image transmission system 1 transmits a coded stream obtained by encoding a target image, decodes the transmitted coded stream, and displays the image. Image transmission system 1 includes a moving image encoding device (image encoding device) 11, a network 21, a moving image decoding device (image decoding device) 31, and a moving image display device (image display device) 41.

[0044] The moving picture encoding device 11 receives an image T as input.

[0045] The network 21 transmits the encoded stream Te generated by the moving image encoding device 11 to the moving image decoding device 31. 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 limited to a bidirectional communication network and may also be a unidirectional communication network that transmits broadcast waves such as terrestrial digital broadcasting and satellite broadcasting. Furthermore, the network 21 may be replaced by a storage medium such as a DVD (Digital Versatile Disc, a registered trademark) or a BD (Blue-ray Disc, a registered trademark) that stores the encoded stream Te.

[0046] The moving picture decoding device 31 decodes each coded stream Te transmitted via the network 21 and generates one or more decoded pictures Td.

[0047] The moving image display device 41 displays all or part of one or more decoded images Td generated by the moving image decoding device 31. The moving image display device 41 includes, for example, a liquid crystal display or an organic EL (electroluminescence) display. Examples of display types include fixed, mobile, and head-mounted displays (HMDs). If the moving image decoding device 31 has high processing power, it displays high-quality images. If it has low processing power, it displays images that do not require high processing power or high display capabilities.

[0048] <operator>

[0049] The following describes the operators used in this specification.

[0050] >> is for right shift, << is for left shift, & is for bitwise AND, | is for bitwise OR, |= is for OR assignment operator, and || represents logical OR.

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

[0052] Clip3(a, b, c) is a function that clips c to a value between a and b. It returns a when c < a, returns b when c > b, and returns c otherwise (where a <= b).

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

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

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

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

[0057] a / d means a divided by d (discarding the fractional part).

[0058] <Structure of the encoded stream Te>

[0059] Before explaining the moving image encoding device 11 and the moving image decoding device 31 of this embodiment in detail, the data structure of the encoded stream Te generated by the moving image encoding device 11 and decoded by the moving image decoding device 31 is explained.

[0060] Figure 4 is a diagram showing the hierarchical structure of the data in the encoded stream Te. The encoded stream Te exemplarily includes a sequence and multiple pictures constituting the sequence. Figure 4 The (a) - (f) of are diagrams showing the encoded video sequence of a given sequence SEQ, the encoded picture of a specified picture PICT, the encoded slice of a specified slice S, the encoded slice data of the specified slice data, the encoded tree unit included in the encoded slice data, and the encoded unit included in the encoded tree unit, respectively.

[0061] (Encoded video sequence)

[0062] In the encoded video sequence, a set of data that the moving image decoding device 31 refers to for decoding the sequence SEQ to be processed is defined. The sequence SEQ is as Figure 4As shown in (a), it includes a video parameter set (Video Parameter Set), a sequence parameter set SPS (Sequence Parameter Set), a picture parameter set PPS (Picture Parameter Set), a picture PICT and supplemental enhancement information SEI (Supplemental Enhancement Information).

[0063] In a moving picture composed of multiple layers, the video parameter set VPS defines a set of coding parameters common to the multiple moving pictures, as well as a set of coding parameters associated with the multiple layers included in the moving picture and each layer.

[0064] The sequence parameter set (SPS) specifies a set of coding parameters that the video decoding device 31 references to decode the target sequence. For example, it specifies the width and height of the picture. It should be noted that there can be multiple SPSs. In this case, any one of the multiple SPSs is selected from the PPS.

[0065] The picture parameter set (PPS) specifies a set of coding parameters that the video decoding device 31 references to decode each picture in the target sequence. For example, these parameters include a reference value for the quantization width used for picture decoding (pic_init_qp_minus26) and a flag (weighted_pred_flag) indicating the use of weighted prediction. It should be noted that multiple PPSs can exist. In this case, one of the multiple PPSs is selected for each picture in the target sequence.

[0066] (Encoded image)

[0067] In the coded picture, a set of data that the video decoding device 31 refers to in order to decode the picture PICT to be processed is defined. Figure 4 As shown in (b), it includes slices 0 to NS-1 (NS is the total number of slices included in the picture PICT).

[0068] Note that, in the following description, when there is no need to distinguish between slices 0 to NS-1, the subscripts of reference numerals may be omitted. The same applies to other data with subscripts included in the coded stream Te described below.

[0069] (Encoding slice)

[0070] The coded slice specifies a set of data that the video decoding device 31 refers to in order to decode the slice S to be processed. Figure 4 (c) includes a slice header and slice data.

[0071] The slice header includes a coding parameter group that the moving picture decoding device 31 refers to in order to determine a decoding method for a target slice. Slice type designation information (slice_type) that designates a slice type is an example of a coding parameter included in the slice header.

[0072] Examples of slice types that can be specified by the slice type specification information include: (1) I slices that use only intra-frame prediction during encoding, (2) P slices that use unidirectional prediction or intra-frame prediction during encoding, and (3) B slices that use unidirectional prediction, bidirectional prediction, or intra-frame prediction during encoding. It should be noted that inter-frame prediction is not limited to unidirectional prediction and bidirectional prediction, and more reference pictures can be used to generate a predicted image. Hereinafter, P and B slices refer to slices that include blocks that can use inter-frame prediction.

[0073] It should be noted that the slice header may also include a reference to the picture parameter set PPS (pic_parameter_set_id).

[0074] (Encoded slice data)

[0075] The coded slice data specifies a set of data that the video decoding device 31 refers to in order to decode the slice data to be processed. Figure 4 (d) shows a CTU. A CTU is a block of a fixed size (for example, 64×64) constituting a slice and is also called a Largest Coding Unit (LCU).

[0076] (Coding Tree Unit)

[0077] exist Figure 4 In (e), a set of data that the motion picture decoding device 31 refers to in order to decode the CTU to be processed is specified. The CTU is divided into coding units CU, which are basic units of encoding processing, by recursive quadtree partitioning (QT (Quad Tree) partitioning), binary tree partitioning (BT (Binary Tree) partitioning), or ternary tree partitioning (TT (Ternary Tree) partitioning). BT partitioning and TT partitioning are collectively referred to as multi-tree partitioning (MT (Multi Tree) partitioning). The nodes of the tree structure obtained by recursive quadtree partitioning are called coding nodes (Coding Node). The intermediate nodes of the quadtree, binary tree, and ternary tree are coding nodes, and the CTU itself is also specified as the top-level coding node.

[0078] CT information includes the following: a QT split flag (split_cu_flag) indicating whether QT splitting is performed, an MT split flag (split_mt_flag) indicating whether MT splitting is performed, an MT split direction (split_mt_dir) indicating the direction of MT splitting, and an MT split type (split_mt_type) indicating the type of MT splitting. split_cu_flag, split_mt_flag, split_mt_dir, and split_mt_type are transmitted for each coding node.

[0079] When split_cu_flag is 1, the coding node is split into 4 coding nodes ( Figure 5 (b)).

[0080] When split_cu_flag is 0 and split_mt_flag is 0, the coding node is not split and 1 CU is kept as a node ( Figure 5 (a)). A CU is the terminal node of a coding node and is not further split. A CU is the basic unit of the coding process.

[0081] When split_mt_flag is 1, the coding node is split into MT as follows. When split_mt_type is 0 and split_mt_dir is 1, the coding node is split horizontally into two coding nodes ( Figure 5 (d)), when split_mt_dir is 0, the coding node is vertically split into 2 coding nodes ( Figure 5 In addition, when split_mt_type is 1 and split_mt_dir is 1, the coding node is horizontally split into 3 coding nodes ( Figure 5 (f)), when split_mt_dir is 0, the coding node is vertically split into 3 coding nodes ( Figure 5 (e)). Place them in Figure 5 is shown in (g).

[0082] In addition, when the size of CTU is 64×64 pixels, the size of CU can be any one of 64×64 pixels, 64×32 pixels, 32×64 pixels, 32×32 pixels, 64×16 pixels, 16×64 pixels, 32×16 pixels, 16×32 pixels, 16×16 pixels, 64×8 pixels, 8×64 pixels, 32×8 pixels, 8×32 pixels, 16×8 pixels, 8×16 pixels, 8×8 pixels, 64×4 pixels, 4×64 pixels, 32×4 pixels, 4×32 pixels, 16×4 pixels, 4×16 pixels, 8×4 pixels, 4×8 pixels and 4×4 pixels.

[0083] CTU is composed of luminance blocks and chrominance blocks. In addition, the segmentation trees that represent the segmentation structure of CTU include a DUAL tree (Separate tree) that uses two independent segmentation trees for luminance and chrominance, and a SINGLE tree that uses a common segmentation tree for luminance and chrominance. In the past, in the SINGLE tree, the CU segmentation of luminance and chrominance was linked. In other words, in the 4:2:0 format, the chrominance block is divided into blocks of the same shape as the luminance block and 1 / 2 size in both the horizontal and vertical directions. In the 4:2:2 format, the chrominance block and the luminance block are divided into 1 / 2 size in the horizontal direction and into blocks of the same size in the vertical direction.

[0084] (coding unit)

[0085] like Figure 4 As shown in (f), a set of data that the video decoding device 31 references to decode the coding unit to be processed is specified. Specifically, a CU is composed of a CU header CUH, prediction parameters, transform parameters, quantized transform coefficients, etc. The CU header specifies the prediction mode, etc.

[0086] Prediction processing can be performed in units of CUs or in units of sub-CUs obtained by further dividing the CU. When the CU and sub-CU are of equal size, there is one sub-CU in the CU. When the CU size is larger than the sub-CU size, the CU is divided into sub-CUs. For example, when the CU is 8×8 and the sub-CUs are 4×4, the CU is divided into four sub-CUs, including two horizontally divided parts and two vertically divided parts.

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

[0088] The transform / quantization process is performed in units of CUs, but the quantized transform coefficients may be entropy-coded in units of 4×4 sub-blocks or the like.

[0089] (Prediction parameters)

[0090] The predicted image is derived from prediction parameters attached to the block. The prediction parameters include intra-frame prediction and inter-frame prediction.

[0091] (Configuration of Moving Image Decoding Device)

[0092] The video decoding device 31 ( Figure 6 ) is explained.

[0093] The moving picture 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 / inverse transform unit 311, and an addition unit 312. It should be noted that, depending on the moving picture encoding device 11 described later, the moving picture decoding device 31 may also include a configuration that does not include the loop filter 305.

[0094] The parameter decoding unit 302 also includes a header decoding unit 3020, a CT information decoding unit 3021, and a CU decoding unit 3022 (prediction mode decoding unit). The CU decoding unit 3022 also includes a TU decoding unit 3024. These can also be collectively referred to as a decoding module. The header decoding unit 3020 decodes parameter set information such as VPS, SPS, and PPS, and slice headers (slice information) from the coded data. The CT information decoding unit 3021 decodes CT from the coded data. The CU decoding unit 3022 decodes CU from the coded data. If the TU includes prediction error, the TU decoding unit 3024 decodes QP update information (quantization correction value) and quantization prediction error (residual_coding) from the coded data.

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

[0096] In addition, the following describes examples using CTUs and CUs as processing units, but the present invention is not limited thereto and processing can also be performed in sub-CU units. Alternatively, CTUs and CUs can be replaced with blocks, and sub-CUs can be replaced with sub-blocks, with processing performed in block or sub-block units.

[0097] The entropy decoding unit 301 performs entropy decoding on the externally input coded stream Te, separating and decoding the individual codes (syntax elements). Entropy coding methods include variable-length coding of syntax elements using a context (probability model) appropriately selected based on the type of syntax element and surrounding conditions, and variable-length coding of syntax elements using a predetermined table or calculation formula. The former, CABAC (Context Adaptive Binary Arithmetic Coding), stores a probability model updated for each encoded or decoded picture (slice) in memory. Then, as the initial state of the context for a P- or B-picture, a probability model for pictures using the same slice type and slice-level quantization parameter is set based on the probability model stored in memory. This initial state is used in the encoding and decoding processes. The separated codes contain prediction information for generating a predicted image and prediction error for generating a differential image.

[0098] The entropy decoding unit 301 outputs the separated codes to the parameter decoding unit 302. The separated codes include, for example, the prediction mode predMode (pred_mode_flag), the merge flag merge_flag, the merge index merge_idx, the inter-frame prediction identifier inter_pred_idc, the reference picture index refIdxLX, the prediction vector index mvp_LX_idx, and the difference vector mvdLX. The control of which code to decode is based on the instruction of the parameter decoding unit 302.

[0099] (Basic Process)

[0100] Figure 7 This is a flowchart explaining the schematic operation of the moving picture decoding device 31 .

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

[0102] (S1200: Slice Information Decoding) The header decoding unit 3020 decodes the slice header (slice information) from the encoded data.

[0103] Thereafter, the video decoding device 31 derives a decoded image of each CTU by repeatedly performing the processes from S1300 to S5000 on each CTU included in the target picture.

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

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

[0106] (S1500: CU Decoding) The CU decoding unit 3022 implements S1510 and S1520 and decodes the CU from the encoded data.

[0107] (S1510: CU Information Decoding) The CU decoding unit 3022 decodes CU information, partition information, prediction information, TU partition flag split_transform_flag, CU residual flags cbf_cb, cbf_cr, cbf_luma, etc. from the coded data. The partition information specifies the structure of the partition tree for the luma block and chroma block.

[0108] (S1520: TU Information Decoding) If a TU includes a prediction error, the TU decoding unit 3024 decodes the QP update information (quantization correction value) and the quantization prediction error (residual_coding) from the coded data. Note that the QP update information is the difference between the quantization parameter prediction value qPpred, which is the predicted value of the quantization parameter QP.

[0109] (S2000: Prediction Image Generation) The prediction image generation unit 308 generates a prediction image for each block included in the target CU based on the partition information and prediction information decoded by the parameter decoding unit 302.

[0110] (S3000: Inverse Quantization / Inverse Transformation Unit) The inverse quantization / inverse transformation unit 311 performs an inverse quantization / inverse transformation process on each TU included in the target CU.

[0111] (S4000: Decoded Image Generation) The adder 312 generates a decoded image of the target CU by adding the predicted image supplied by the predicted image generation unit 308 and the prediction error supplied by the inverse quantization / inverse transformation unit 311.

[0112] (S5000: Loop Filtering) The loop filter 305 applies loop filtering such as deblocking filtering, SAO, and ALF to the decoded image to generate a decoded image.

[0113] (CT Information Decoding Processing)

[0114] Below, refer to Figure 8 、 Figure 9 、 Figure 10 The process of decoding CT information will be described. Figure 8 This is a flowchart for explaining the operation of the CT information decoding unit 3021 according to one embodiment of the present invention. Figure 9is a diagram showing an example of the structure of a syntax table of CTU and QT information according to one embodiment of the present invention. Figure 10 This is a diagram showing a configuration example of a syntax table of MT segmentation information according to one embodiment of the present invention.

[0115] The CT information decoding unit 3021 decodes the CT information from the coded data and recursively decodes the coding tree CT (coding_quadtree). Specifically, the CT information decoding unit 3021 decodes the QT information and decodes the target CT coding_quadtree(x0, y0, log2CbSize, cqtDepth). Note that (x0, y0) is the upper-left coordinate of the target CT, log2CbSize is the logarithm of the CT size (to the base 2), and cqtDepth is the CT depth (QT depth) indicating the CT hierarchy.

[0116] (S1411) The CT information decoding unit 3021 determines whether the decoded CT information has a QT split flag. If so, the process proceeds to S1421; otherwise, the process proceeds to S1422.

[0117] ( S1421 ) When determining that the logarithmic CT size log2CbSize is larger than MinCbLog2SizeY, the CT information decoding unit 3021 decodes the QT split flag (split_cu_flag).

[0118] ( S1422 ) In other cases, the CT information decoding unit 3021 omits decoding of the QT split flag split_cu_flag from the encoded data and sets the QT split flag split_cu_flag to 0.

[0119] (S1450) When the QT split flag split_cu_flag is other than 0, the process proceeds to S1451; otherwise, the process proceeds to S1471.

[0120] (S1451) The CT information decoding unit 3021 performs QT segmentation. Specifically, the CT information decoding unit 3021 decodes four CTs of logarithmic CT size log2CbSize-1 at positions (x0, y0), (x1, y0), (x0, y1), and (x1, y1) at the CT depth cqtDepth+1.

[0121] coding_quadtree(x0, y0, log2CbSize-1, cqtDepth+1)

[0122] coding_quadtree(x1, y0, log2CbSize - 1, cqtDepth + 1)

[0123] coding_quadtree(x0, y1, log2CbSize - 1, cqtDepth + 1)

[0124] coding_quadtree(x1, y1, log2CbSize - 1, cqtDepth + 1)

[0125] Here, (x0, y0) is the upper left coordinate of the object CT, and (x1, y1) is derived by adding half of the CT size (1 << log2CbSize) to (x0, y0) as described in the following formula.

[0126] x1 = x0 + (1 << (log2CbSize - 1))

[0127] y1 = y0 + (1 << (log2CbSize - 1))

[0128] 1 << N is the same value as 2 to the power of N (the same applies hereinafter).

[0129] Moreover, the CT information decoding unit 3021 updates the CT depth cqtDepth and the logarithmic CT size log2CbSize representing the hierarchy of the CT as follows.

[0130] cqtDepth = cqtDepth + 1

[0131] log2CbSize = log2CbSize - 1

[0132] The CT information decoding unit 3021 also uses the updated upper left coordinate, logarithmic CT size, and CT depth in the lower-level CTs, and continues the QT information decoding starting from S1411.

[0133] After the QT segmentation ends, the CT information decoding unit 3021 decodes the CT information from the encoded data and recursively decodes the encoded tree CT (MT, coding_multitree). Specifically, the CT information decoding unit 3021 decodes the MT segmentation information and decodes the object CT coding_multitree(x0, y0, cbWidth, cbHeight, mtDepth). Note that cbWidth is the width of the CT, cbHeight is the height of the CT, and mtDepth is the CT depth (MT depth) representing the hierarchy of the multiway tree.

[0134] (S1471) The CT information decoding unit 3021 determines whether the decoded CT information has an MT division flag (division information). If the MT division flag is present, the process proceeds to S1481. Otherwise, the process proceeds to S1482.

[0135] (S1481) The CT information decoding unit 3021 decodes the MT split flag split_mt_flag.

[0136] ( S1482 ) The CT information decoding unit 3021 does not decode the MT split flag split_mt_flag from the encoded data, but sets it to 0.

[0137] ( S1490 ) The CT information decoding unit 3021 proceeds to S1491 when the MT split flag split_mt_flag is not 0. Otherwise, the CT information decoding unit 3021 does not split the target CT and ends the process (transfers to CU decoding).

[0138] (S1491) The CT information decoding unit 3021 performs MT segmentation. It decodes the split_mt_dir flag, which indicates the MT segmentation direction, and the split_mt_type syntax element, which indicates whether the MT segmentation is a binary or ternary tree. If the MT segmentation type split_mt_type is 0 (split into two parts) and the MT segmentation direction split_dir_flag is 1 (horizontal segmentation), the CT information decoding unit 3021 decodes the following two CTs (BT segmentation information decoding).

[0139] coding_multitree(x0, y0, cbWidth, cbHeight / 2, mtDepth+1)

[0140] coding_multitree(x0, y1, cbWidth, cbHeight / 2, mtDepth+1)

[0141] On the other hand, when the MT split direction split_dir_flag is 0 (vertical split), the following two CTs are decoded (BT split information decoding).

[0142] coding_multitree(x0, y0, cbWidth / 2, cbHeight, mtDepth+1)

[0143] coding_multitree(x1, y0, cbWidth / 2, cbHeight, mtDepth+1)

[0144] Here, (x1, y1) is derived by the following formula.

[0145] x1=x0+cbWidth / 2

[0146] y1=y0+cbHeight / 2

[0147] Also, update cbWidth or cbHeight as follows.

[0148] cbWidth=cbWidth / 2

[0149] cbHeight=cbHeight / 2

[0150] When the MT split type split_mt_type indicates 1 (split into three parts), the CT information decoding unit 3021 decodes three CTs (TT split information decoding).

[0151] When the MT split direction split_dir_flag is 1 (horizontal split), the following three CTs are decoded.

[0152] coding_multitree(x0, y0, cbWidth, cbHeight / 4, mtDepth+1)

[0153] coding_multitree(x0, y1, cbWidth, cbHeight / 2, mtDepth+1)

[0154] coding_multitree(x0, y2, cbWidth, cbHeight / 4, mtDepth+1)

[0155] On the other hand, when the MT split direction split_dir_flag is 1 (vertical split), the following three CTs are decoded (TT split information decoding).

[0156] coding_multitree(x0, y0, cbWidth / 4, cbHeight, mtDepth+1)

[0157] coding_multitree(x1, y0, cbWidth / 2, cbHeight, mtDepth+1)

[0158] coding_multitree(x2, y0, cbWidth / 4, cbHeight, mtDepth+1)

[0159] Here, (x1, y1) and (x2, y2) are derived as shown in the following formula.

[0160] x1=x0+cbWidth / 4

[0161] y1=y0+cbHeight / 4

[0162] x2=x0+3*cbWidth / 4

[0163] y2=y0+3*cbHeight / 4

[0164] The CT information decoding unit 3021 also continues the BT partition information decoding or TT partition information decoding started from S1471 using the updated upper left coordinate, CT width and height, and MT depth in the lower CT.

[0165] Furthermore, when the MT split flag split_mt_flag is 0, that is, when neither QT splitting nor MT splitting is performed, the CT information decoding unit 3021 decodes CU (coding_unit (x0, y0, cbWidth, cbHeight)) through the CU decoding unit 3022 .

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

[0167] The loop filter 305 is a filter within the encoding loop that removes blocking distortion and ringing distortion to improve image quality. It applies filtering such as deblocking filtering, sample adaptive offset (SAO), and adaptive loop filtering (ALF) to the decoded image of the CU generated by the adder 312.

[0168] The reference picture memory 306 stores the CU decoded image generated by the adding unit 312 in a predetermined position for each target picture and target CU.

[0169] The prediction parameter memory 307 stores the prediction parameters for each decoding target CTU or CU in a predetermined location. Specifically, the prediction parameter memory 307 stores the parameters decoded by the parameter decoding unit 302 and the prediction mode predMode separated by the entropy decoding unit 301.

[0170] The prediction image generator 308 receives inputs such as the prediction mode predMode and prediction parameters. Furthermore, the prediction image generator 308 reads a reference picture from the reference picture memory 306. Using the prediction parameters and the read reference picture (reference picture block), the prediction image generator 308 generates a predicted image for a block or sub-block in the prediction mode indicated by the prediction mode predMode. Here, a reference picture block refers to a collection of pixels in a reference picture (usually a rectangular block, hence the name "block") and is the area referenced for generating the predicted image.

[0171] The inverse quantization / inverse transform unit 311 inversely quantizes the quantized transform coefficients input from the entropy decoding unit 301 to obtain transform coefficients. These quantized transform coefficients are obtained by performing a frequency transform such as a DCT (Discrete Cosine Transform) or a DST (Discrete Sine Transform) on the prediction error during the encoding process, followed by quantization. The inverse quantization / inverse transform unit 311 performs an inverse frequency transform such as an inverse DCT, inverse DST, or inverse KLT on the obtained transform coefficients to calculate the prediction error. The inverse quantization / inverse transform unit 311 outputs the prediction error to the addition unit 312.

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

[0173] (Configuration of Moving Image Coding Device)

[0174] Next, the configuration of the moving picture encoding device 11 according to this embodiment will be described. Figure 11 This is a block diagram showing the configuration of a moving picture coding apparatus 11 according to the present embodiment. The moving picture coding apparatus 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, a reference picture memory (reference picture storage unit, frame memory) 109, a coding parameter determination unit 110, a parameter coding unit 111, and an entropy coding unit 104.

[0175] The predicted image generation unit 101 generates a predicted image for each CU, which is a region obtained by dividing each picture of each image T. The predicted image generation unit 101 performs the same operation as the predicted image generation unit 308 already described, and the description thereof is omitted here.

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

[0177] 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 entropy coding unit 104 and the inverse quantization / inverse transform unit 105.

[0178] The inverse quantization / inverse transformation unit 105 and the inverse quantization / inverse transformation unit 311 ( Figure 6 ) is the same as that of FIG. , and its description is omitted here. The calculated prediction error is input to the adding unit 106.

[0179] The entropy coding unit 104 receives quantized transform coefficients from the transform / quantization unit 103 and coding parameters from the parameter coding unit 111. The coding parameters include codes such as the reference picture index refIdxLX, the prediction vector index mvp_LX_idx, the difference vector mvdLX, the prediction mode predMode, and the merge index merge_idx.

[0180] The entropy coding unit 104 performs entropy coding on the partition information, prediction parameters, quantized transform coefficients, etc. to generate a coded stream Te and output it.

[0181] The parameter coding unit 111 includes a header coding unit 1110 (not shown), a CT information coding unit 1111, a CU coding unit 1112 (prediction mode coding unit), an inter prediction parameter coding unit 112, and an intra prediction parameter coding unit 113. The CU coding unit 1112 further includes a TU coding unit 1114.

[0182] The following describes the general operation of each module: The parameter coding unit 111 performs coding processing on parameters such as header information, partition information, prediction information, and quantized transform coefficients.

[0183] The CT information encoding unit 1111 encodes QT, MT (BT, TT) division information and the like based on the encoded data.

[0184] The CU encoding unit 1112 encodes CU information, prediction information, a TU split flag split_transform_flag, CU residual flags cbf_cb, cbf_cr, cbf_luma, and the like.

[0185] When a prediction error is included in a TU, the TU encoding unit 1114 encodes QP update information (quantization correction value) and the quantized prediction error (residual_coding).

[0186] The CT information encoding unit 1111 and the CU encoding unit 1112 supply syntax elements such as inter-frame prediction parameters (prediction mode predMode, merge flag merge_flag, merge index merge_idx, inter-frame prediction identifier inter_pred_idc, reference picture index refIdxLX, prediction vector index mvp_LX_idx, differential vector mvdLX), intra-frame prediction parameters (intra_luma_mpm_flag, intra_luma_mpm_idx, intra_luma_mpm_remainder), and quantized transform coefficients to the entropy encoding unit 104.

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

[0188] The loop filter 107 performs deblocking filtering, SAO, and ALF on the decoded image generated by the adding unit 106. It should be noted that the loop filter 107 does not necessarily include the above three filters, and may include only a deblocking filter, for example.

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

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

[0191] The coding parameter determination unit 110 selects one of multiple sets of coding parameters. Coding parameters refer to the aforementioned QT, BT, or TT split information, prediction parameters, or parameters generated in association with them as the encoding target. The predicted image generation unit 101 uses these coding parameters to generate a predicted image.

[0192] The coding parameter determination unit 110 calculates an RD cost value representing the amount of information and the coding error for each of the multiple sets. For example, the RD cost value is the sum of the code size and the value obtained by multiplying the squared error by the coefficient λ. The code size is the amount of information in the coded stream Te obtained by entropy encoding the quantization error and the coding parameters. The squared error is the sum of the squares of the prediction errors calculated by the subtraction unit 102. The coefficient λ is a real number greater than a preset zero. The coding parameter determination unit 110 selects the set of coding parameters with the smallest calculated cost value. The entropy coding unit 104 then outputs the selected set of coding parameters as the coded stream Te. The coding parameter determination unit 110 stores the determined coding parameters in the prediction parameter memory 108.

[0193] It should be noted that portions of the moving picture encoding device 11 and moving picture decoding device 31 in the above-described embodiments, such as the entropy decoding unit 301, parameter decoding unit 302, loop filter 305, predicted image generation unit 308, inverse quantization / inverse transform unit 311, addition unit 312, predicted image generation unit 101, subtraction unit 102, transform / quantization unit 103, entropy encoding unit 104, inverse quantization / inverse transform unit 105, loop filter 107, coding parameter determination unit 110, and parameter encoding unit 111, can be implemented by a computer. In this case, a program for implementing the control function can be recorded on a computer-readable recording medium, and the computer system can read and execute the program recorded on the recording medium. It should be noted that the "computer system" mentioned here refers to a computer system built into either the moving picture encoding device 11 or the moving picture decoding device 31, and is a computer system including hardware such as an operating system and peripheral devices. Furthermore, a "computer-readable recording medium" refers to removable media such as floppy disks, magneto-optical disks, ROMs, and CD-ROMs, as well as storage devices such as hard disks built into computer systems. Furthermore, a "computer-readable recording medium" may also include: recording media that dynamically store programs for a short period of time, such as when transmitting programs via a network such as the Internet or a communication line such as a telephone line; and recording media that store programs for a fixed period of time, such as volatile memory within a computer system acting as a server or client in this case. Furthermore, the aforementioned program may be a program for implementing a portion of the aforementioned functions, or a program that can implement the aforementioned functions by combining with a program already stored in the computer system.

[0194] (Prediction Image Generation Processing Example 1)

[0195] The following describes a first example of the predicted image generation process in the image decoding device 31 of the present embodiment. The human eye is more sensitive to changes in brightness than to changes in color difference, and a so-called 4:2:2 or 4:2:0 resolution, in which the resolution of the color difference signal is sparser than that of the brightness signal, is widely used. However, in the past, in the SINGLE tree, as described above, a common partitioning tree was used for brightness and color difference. Therefore, especially when the brightness block is partitioned into smaller sizes, there is a case where the coding unit of the color difference block is partitioned finer than the minimum size of the CU (for example, 4×4), which reduces the overall throughput of the predicted image generation process. The following describes an example of an image decoding device 31 that solves the above-mentioned problem.

[0196] The CU decoding unit 3022 (parameter decoding unit 302) of this example is Figure 7 In step S1510, CU information, division information of luminance blocks and chrominance blocks, prediction information referred to in the prediction image generation process of each divided luminance block, and the like are decoded from the encoded data.

[0197] Furthermore, when the chrominance block is divided into blocks smaller than a predetermined block size, the CU decoding unit 3022 decodes common prediction information for each block included in the chrominance block.

[0198] Furthermore, the TU decoding unit 3024 decodes the prediction residual of the luminance block and the prediction residual of the chrominance block. When the chrominance block is small in size, the prediction residuals of a plurality of chrominance blocks are aggregated and decoded.

[0199] The processing of the CT information decoding unit 3021 , the CU decoding unit 3022 , and the TU decoding unit 3024 in this example will be described.

[0200] (1) The CT information decoding unit 3021 recursively performs MTT partitioning on the CTU and determines whether the CT size (cbWidth, cbHeight) is smaller than a predetermined block size and whether the state is not chroma merging (IsChromaMergeRegion==0). If it is determined that the size is smaller than the predetermined block size, the state transitions to chroma merging. The predetermined block size may be the minimum size of a chroma block, for example, the block size (8×8) of the CT corresponding to 4×4. In addition, the predetermined block size may differ depending on the partitioning type of the CT (the same applies to other components). For example, in the case of quadtree partitioning or binary tree partitioning, the predetermined block size may be 8×8. In the case of ternary tree partitioning, the predetermined block size may be 16×8 or 8×16. In addition, for example, in BT partitioning, the determination may be that cbWidth*chHeight<64*2, in TT partitioning, the determination may be that cbWidth*chHeight<64*4, and in QT partitioning, the determination may be that cbWidth*chHeight<64*4.

[0201] In the following (2) to (4), the processing when the state transitions to the color difference combination state in (1) is described.

[0202] (2) When the CU decoding unit 3022 determines in the above-mentioned process (1) that the CT size (cbWidth, cbHeight) is smaller than the prescribed threshold value and is not in the chroma merging state (IsChromaMergeRegion==0), it sets the flag IsChromaMergeRegion indicating whether it is in the chroma merging state to the merged state (IsChromaMergeRegion=1), initializes the flag IsPredModeFlagCoded indicating whether the pred_mode_flag of the prediction mode (intra-frame prediction, inter-frame prediction) is decoded to 0, and stores the upper left coordinate (x0, y0) of the CT and the size (cbWidth, cbHeight) of the CT as variables (chromaMergeRegionTopLeftX, chromaMergeRegionTopLeftY) and (chromaMergeRegionWidth, chromaMergeRegionHeight) indicating the upper left position and size of the chroma merging region.

[0203] (3) The CU decoding unit 3022 decodes pred_mode_flag only for the first CU (or the last CU) in decoding order among the multiple CUs included in the CT. The first CU in decoding order is the top left CU of the CT, which can be determined by (x0 == chromaMergeRegionTopLeftX &&y0 == chromaMergeRegionTopLeftY). The last CU in decoding order is the bottom right CU of the CT, which can be determined by (x0 + cbWidth == chromaMergeRegionTopLeftX + chromaMergeRegionWidth &&y0 + cbHeight == chromaMergeRegionTopLeftY + chromaMergeRegionHeight).

[0204] When pred_mode_flag is decoded in each divided CU, as shown in FIG. Figure 12 As shown in (A), there are four pred_mode_flags for a color difference block. If they do not take the same value, the prediction mode of the color difference block will be inconsistent. In addition, redundant codes will reduce coding efficiency. Therefore, Figure 12 As shown in (B), the pred_mode_flag of the first CU in decoding order among the multiple luma CUs is decoded, and the pred_mode_flag is shared by the subsequent CUs. It should be noted that the CU decoding unit 3022 may also decode the pred_mode_flag of the last CU in decoding order among the multiple CUs, and share the pred_mode_flag with the remaining CUs.

[0205] (4) The CU decoding unit 3022 decodes prediction information (e.g., intra_luma_mpm_flag, intra_luma_mpm_idx) for one or more CUs included in the CT, and the TU decoding unit 3024 decodes residual information. The CU decoding unit 3022 decodes chroma prediction information (e.g., intra_chroma_pred_mode) for the first or last CU in decoding order in the chroma component, and the TU decoding unit 3024 also decodes the residual information for the first or last CU. This allows multiple chroma CUs to use common prediction information.

[0206] Below, refer to Figures 13 to 16 The above-described configurations are supplemented to decode common prediction information for each block included in the chrominance block. Figure 13: is a diagram showing an example of the structure of the syntax table of CT according to this embodiment. Figure 14 It means to continue Figure 13 These processes are performed by the CT information decoding unit 3021.

[0207] like Figure 13 As shown in the third row of the syntax table of , the CT information decoding unit 3021 decodes the CU split flag (split_cu_flag) indicating whether CU splitting is performed. Figure 9 Unlike the example of , split_cu_flag here indicates either QT partitioning or MT partitioning (BT partitioning / TT partitioning). Furthermore, as shown in the 7th line, the flag split_qt_flag indicating whether the CU partition is QT partitioning is decoded.

[0208] like Figure 13 As shown in line 8 of the syntax table, it is determined whether the partition tree of the target CT is QT. If it is not QT partition (MT partition), the processing from line 9 onwards is performed to decode the MT partition direction (mtt_split_cu_vertical_flag) indicating the MT partition direction and the MT partition type (mtt_split_cu_binary_flag) indicating the MT partition type. The split_cu_flag, split_qt_flag, mtt_split_cu_vertical_flag, and mtt_split_cu_binary_flag are transmitted for each coding node.

[0209] The processing on lines 13 and 32 corresponds to (1) above. This determines whether the target CT is transitioned to the color difference merging area. If this condition is met, the state transitions to the color difference merging state. The determination is made as to whether the CT has a predetermined block size. For example, the condition "(cbWidth * cbHeight / 2) < 64" on line 13 determines whether the size of the CT divided into two parts is less than 64.

[0210] The processing in lines 14-20 and 33-38 corresponds to the configuration of (2) above. When transitioning to the chroma merge state, as shown in lines 14-15 and 33-34, IsChromaMergeRegion is set to 1, and the flag IsPredModeFlagCoded, which indicates whether pred_mode_flag has been decoded, is initialized to 0. Furthermore, lines 16-19 and 35-38, etc., store the top left coordinate and size (width and height) of the CT as chromaMergeRegionTopLeftX, chromaMergeRegionTopLeftY, chromaMergeRegionWidth, and chromaMergeRegionHeight.

[0211] In addition, when split_cu_flag is 1, in other words, when the conditional expression in line 5 is true, MTT splitting is recursively performed as shown in lines 27 to 29, lines 42 to 48, etc. Otherwise, the splitting is terminated as shown in line 51 and CU processing is executed.

[0212] Figure 15 3022 is a diagram showing an example of the structure of a syntax table of a CU according to this embodiment. These processes are performed by the CU decoding unit 3022. Figure 15 The processing of the 3rd line indicates whether the target segmentation tree is a chroma separation tree (DUAL tree). The processing of the 6th to 10th lines corresponds to the above (3). The processing of the 6th line determines whether it is the first block in the decoding order among the target blocks (IsPredModeFlagCoded==1) or is in a state other than the chroma merging state (IsChromaMergeRegion==0). If it is the first block in the decoding order or is in a state other than the chroma merging state, pred_mode_flag is decoded according to lines 7 to 9. The decoded mode is stored as PredModeFlagInfer. Then, IsPredModeFlagCoded is set to 1, and it is set so that the processing is not performed on the second and subsequent blocks in the decoding order.

[0213] The processing of lines 12 to 15 is another configuration example (alternative processing) of the processing of lines 6 to 10. That is, either of the processing is implemented. The processing of line 12 determines whether the state is other than the chroma merge state or whether the target CU is the upper left CU of the CT of the chroma merge region. In line 12, it is determined whether the upper left coordinate (x0, y0) of the target CU is equal to the (chromaMergeRegionTopLeftX, chromaMergeRegionTopLeftY) stored as the upper left coordinate of the CT at the time point of transition to the chroma merge state in (2). In the case of being other than the chroma merge state or the upper left coordinate is consistent with the upper left coordinate of the CT of the chroma merge region, pred_mode_flag is decoded and the decoded mode is stored as PredModeFlagInfer.

[0214] Furthermore, the processing of lines 29 and 30 corresponds to the configuration of (4) above. Specifically, if the object is a single tree and is in a state other than the chroma merge state (IsChromaMergeRegion==0), or is the last CU in decoding order among multiple CUs included in the CT in the chroma merge state, or is a chroma tree of a DUAL tree, the chroma prediction information is decoded. It should be noted that the processing of line 29 may also be the determination of the first CU in decoding order (x0==chromaMergeReionTopLeftX &&y0==chromaMergeRegionTopLeftY) instead of the determination of the last CU in decoding order (x0+cbWidth==chromaMergeReionTopLeftX+chromaRegionWidth &&y0+cbHeight==chromaMergeRegionTopLeftY+chromaRegionHeight).

[0215] Figure 16 TU decoding unit 3024 performs these processes. Figure 16The processing of lines 4 to 7 and lines 19 to 24 of the syntax table corresponds to the decoding processing of the residual information of the chrominance block in (4) above. In the processing of lines 4 to 7, the chrominance residual flag (tu_cbf_cb, tu_cbf_cb) is decoded only for the CU in the lower right corner of the chrominance merge area. When the judgment of line 4 is false, the residual flag is set to 0. In addition, in the processing of lines 19 to 24, the residual of the chrominance of the entire chrominance merge area is decoded. It should be noted that the processing of lines 4 and 19 is the processing of the CU at the end (lower right) of the chrominance merge area, but it can also be the processing of the CU at the beginning (upper left) of the chrominance merge area.

[0216] As described above, the image decoding device 31 of this example includes: a parameter decoding unit 302 that decodes partitioning information for partitioning luminance blocks and chrominance blocks into a common tree structure, and prediction information referenced in generating predicted images for each partitioned block; and a predicted image generation unit 308 that generates predicted images for each luminance block and each chrominance block, referring to the partitioning information and prediction information decoded by the parameter decoding unit 302. When the chrominance block is partitioned into blocks smaller than a predetermined block size, the parameter decoding unit 302 decodes the common prediction information for each block included in the chrominance block. This configuration improves the performance of the predicted image generation process in the image decoding device 31.

[0217] (Prediction Image Generation Processing Example 2)

[0218] The following describes a second example of the predicted image generation process in the image decoding device 31 of the present embodiment. It should be noted that, for the sake of convenience, the matters described in the above examples will not be repeated. In this example, in order to prevent the block size of the chrominance block from being divided finer than the minimum size of the CU, the structure of using separate trees in the luminance block and the chrominance block when the block size is below the specified size is described. Therefore, when the CT is larger than the specified size, a single tree is used in which the same division is applied to the luminance and chrominance, and when the CT is smaller than the specified size, a separate tree (DUAL tree) is used in which different divisions are applied to the luminance and chrominance. When the CT is larger than the specified size, a single tree is used, whereby a common motion vector can be applied to the luminance block and the chrominance block. Therefore, there is no need to encode the motion vector of the chrominance block separately, and the encoding efficiency is good.

[0219] The CU decoding unit 3022 (parameter decoding unit 302) of this example is Figure 7 In step S1510, the partitioning information having a common upper tree structure in the luminance block and the chrominance block and different lower tree structures in the luminance block and the chrominance block and the prediction information required for the prediction image generation processing of each partitioned block are decoded.

[0220] The processing of the CU decoding unit 3022 and the TU decoding unit 3024 in this example will be described. It should be noted that the processing of (1) to (3) and (4) is the same as in (Prediction Image Generation Processing Example 1), and the description thereof will be omitted. It should be noted that the processing of (5) below is performed between (3) and (4).

[0221] (5) The CU decoding unit 3022 sets the type treeType of the partition tree to the luminance tree (DUAL_TREE_LUMA) of the separate tree at the time point of transition to the chrominance merge state. In addition, the chrominance tree (DUAL_TREE_CHROMA) is also decoded at the time point of transition to the chrominance merge state. When the state of transition to the separate coding mode is a single tree, and the value of the pred_mode_flag decoded in (3) indicates intra-frame prediction, the type treeType of the partition tree is set to the luminance tree (DUAL_TREE_LUMA) of the separate tree. Therefore, if the object CU is in the intra-frame prediction mode, the luminance and chrominance are separated for subsequent processing. Therefore, the block size of the luminance can be reduced, and the block size of the chrominance can be increased.

[0222] Below, refer to Figures 17 to 20 The following supplements each configuration for the case where two independent partitioning trees are used in small blocks from the middle of partitioning in the luminance block and the chrominance block. Figure 17 、 Figure 18 as well as Figure 19 1 and 2 are diagrams showing an example of the structure of the syntax table of the CT according to this embodiment. Figure 17 Decoding of the CU split flag split_cu_flag and the QT split flag split_qt_flag of the target CT partition tree and processing when the CT is split into BT or TT (split_qt_flag is not set). Figure 18 Indicates the processing when the target CT split tree is QT (split_qt_flag == 1). Figure 17The processing of the 13th line of the syntax table corresponds to the above (1), and determines whether the size of CT (cbWidth, cbHeight) is smaller than the specified block size (for example, cbWidth*chHeight<64*2 in BT segmentation, cbWidth*chHeight<64*4 in TT segmentation), and whether it is not in the chroma merging state (IsChromaMergeRegion==0). When it is smaller than the specified block size and is not in the chroma merging state (IsChromaMergeRegion==0), the processing of the above (2) shown in the processing of lines 14 to 18 is performed. That is, the chroma merging state is set to 1, and the upper left position and size of the chroma merging area are stored. These are the same as (Prediction Image Generation Processing Example 1) Figure 13 、 14 The same syntax. However, unlike the case of embodiment 1, it is also possible to have a structure that does not necessarily maintain the size of CT. In addition, in the case where the partition tree of CT is QT ( Figure 18 Here, if the CT size (cbWidth, cbHeight) is smaller than the specified block size (for example, cbWidth*chHeight<64*4 in early QT segmentation), and the chroma merge state is not in place (IsChromaMergeRegion==0), the state is shifted to the chroma merge state, and the processing of the above-mentioned (2) shown in the processing of lines 12 to 15 is performed.

[0223] also, Figure 19This represents the process of decoding the coding_unit (..., DUAL_TREE_CHROMA) of the CT as the chroma tree after the CT is divided into a single tree when the state transitions to the chroma merge state (IsChromaMergeRegion == 1). Here, the chroma tree is called at the time of transition to the chroma merge state in (2) above. In this configuration, in order to determine the time of transition to the chroma merge state, it is preferable to set IsChromaMergeRegion = 2 instead of IsChromaMergeRegion = 1 in (2) above. When IsChromaMergeRegion == 2, the configuration of calling the coding_unit (..., DUAL_TREE_CHROMA) after setting IsChromaMergeRegion = 1 is used. That is, at the time of transition to the chroma merge state (IsChromaMergeRegion == 2), the chroma tree is called only once at the node of the single tree. To call it only once, change IsChromaMergeRegion from 2 (chroma merge transition state) to 1 (chroma merge state) at the time of calling. In addition, the CT of the chroma tree can also call coding_unit(..., DUAL_TREE_CHROMA) after coding_unit(x0, y0, cbWidth, cbHeight, partIdx, treeType) of a node in the luma tree when split_cu_flag is 0. In this case, Figure 19 Different, perform if(split_cu_flag)

[0224] . The processing of lines 11 to 14 corresponds to the structure of (4) above. When the conditions of line 12 are met, after the CU segmentation using the luminance separation tree, the CU segmentation using the chrominance separation tree is performed. In the case of this structure, the CU size (cbWidth, cbHeight) used for the processing of the luminance CU may be a small CU obtained by further segmenting the chrominance merging area, and the size of the chrominance merging area (chromaRegionWidth, chromaRegionHeight) saved in (2) above is set to cbWidth, chHeight, and the chrominance separation tree is called. That is, coding_unit(x0, y0, chromaRegionWidth, chromaRegionHeight, partIdx, DUAL_TREE_CHROMA)

[0225] Figure 20This is a diagram showing a configuration example of a syntax table of a CU according to this embodiment. Figure 20 The processing of lines 6 to 10 and lines 12 to 15 of the syntax table corresponds to the structure of (3) above, and either of the processes is used in the same manner as in Implementation 1. The processing of lines 20 to 22 corresponds to the structure of (5) above. When the conditions of line 20 are met, that is, when the prediction mode of the object CU is intra-frame prediction, the tree type of the object CU is set to the luminance tree of the separate tree (DUAL_TREE_LUMA). It should be noted that the syntax of transform_unit is the same as Figure 16 The same, description omitted.

[0226] As described above, the image decoding device 31 of this example includes: a parameter decoding unit 302 that decodes partition information having a common upper tree structure for luminance blocks and chrominance blocks and different lower tree structures for luminance blocks and prediction information referenced in a process of generating a predicted image for each partitioned block; and a predicted image generation unit 308 that generates a predicted image for each luminance block and each chrominance block, referring to the partition information and prediction information decoded by the parameter decoding unit 302. With the above configuration, the performance of the predicted image generation process in the image decoding device 31 can be improved.

[0227] In short, Figure 18 In the example, it is determined whether the chroma merge state is 0 and whether the CT size is smaller than the specified size. If it is smaller than the specified size, it is set to the transferable state (here, IsChromaMergeRegion==1 or 2. Figure 20 As shown in the syntax table of , the parameter decoding unit 302 refers to the parameter indicating whether the block of the segmentation object is set in the chroma merging region, and when it is determined that the block of the segmentation object is in a state that can be transferred to the chroma merging region (here IsChromaMergeRegion!=0), the prediction mode flag is decoded in the first block in the decoding order among the multiple blocks included in the block of the segmentation object. When the prediction mode flag indicates intra-frame prediction, it can also be transferred to the dual-tree mode with different lower-level tree structures in the luminance block and the chroma block. Specifically, the subsequent of the single tree can be processed as the luminance tree DUAL_TREE_LUMA, and then as shown in FIG. Figure 19 As shown in FIG. 1 , the chroma tree (DUAL_TREE_CHROMA) process is performed. This allows transition to the dual tree mode based on the information indicated by the prediction mode flag.

[0228] (Prediction Image Generation Processing Example 3)

[0229] The following describes a second example of the predicted image generation process in the image decoding device 31 of the present embodiment. It should be noted that, for the sake of convenience, the matters described in the above examples will not be repeated. In this example, in order to prevent the block size of the chrominance block from being divided finer than the minimum size of the CU, when the block size is below the specified value, the prediction mode pred_mode_flag is not decoded and intra-frame prediction is prohibited. When the prediction mode pred_mode is not decoded, the prediction mode PredMode is set to intra-frame mode when the tile group is an intra-frame tile group, and the prediction mode PredMode is set to inter-frame mode when the tile group is an inter-frame tile group. For example, pred_mode_flag can be decoded in the following formula.

[0230] if(cu_skip_flag[x0][y0]==08&(cbWidth / SSubWidthC*cbHeight / SubHeightC)>=16)

[0231] pred_mode_flag

[0232] Here, SubWidthC and SubHeightC represent the sampling ratio of luma and chroma. In the case of 4:4:4, SubWidthC = SubHeightC = 1, indicating the sampling ratio of luma and chroma. In the case of 4:2:2, SubWidthC = 2 and SubHeightC = 1, indicating the sampling ratio of luma and chroma. In the case of 4:2:0, SubWidthC = SubHeightC = 2. The above (cbWidth / SubWidthC * cbHeight / SubHeightC) corresponds to the area size of chroma.

[0233] Furthermore, the image decoding device 31 of this embodiment can use intra sub-block partitioning (ISP mode) when the prediction mode is intra prediction mode, indicating that only the CU's luma is further split, without splitting the CU's chroma. Preferably, in this case, the flag intra_subpartitions_mode_flag indicating whether the ISP mode is used is decoded. When intra_subpartitions_mode_flag is 1, intra_subpartitions_split_flag indicating the luma splitting method in the ISP mode is decoded. The ISP mode can be a flag indicating whether the luma block is split into NumIntraSubPartitions horizontal blocks (ISP_HOR_SPLIT) or into NumIntraSubPartitions vertical blocks (ISP_VER_SPLIT). The number NumIntraSubPartitions is, for example, 2 or 4. Alternatively, ISP_NO_SPLIT can indicate no splitting. Alternatively, the ISP mode can be a mode that splits the luma block into two horizontally and two vertically (ISP_QT_SPLIT). In addition, a mode may be included in which the luminance block is split into two horizontally and two vertically only when the ISP mode is selected and the block size is a predetermined minimum block size (e.g., 8×8). The trafoWidth and trafoHeight of the block sizes after the split are derived as follows.

[0234] In the case of ISP_HOR_SPLIT, the height trafoHeight of the split block is derived from the height cbHeight of the CU in the following.

[0235] trafoWidth=cbWidth

[0236] trafoHeight=cbHeight / NumIntraSubPartitions

[0237] In the case of ISP_VER_SPLIT, the width trafoWidth of the split block is derived from the width cbWidth of the CU as follows.

[0238] trafoWidth=cbWidth / NumIntraSubPartitions

[0239] trafoHeight=cbHeight

[0240] In the case of ISP_QT_SPLIT, the width trafoWidth and height trafoHeight of the split block are derived from the width cbWidth and height cbHeight of the CU as follows.

[0241] trafoWidth=cbWidth / 2

[0242] trafoHeight=cbHeight / 2

[0243] In ISP mode, the TU decoding unit 3024 decodes the quantized prediction error (residual_coding) of luma for partitioned blocks of size trafoWidth / trafoHeight. For chroma, the TU decoding unit 3024 decodes the quantized prediction error (residual_coding) of chroma for unpartitioned blocks of size cbWidth / SubWidthC / cbHeight / SubHeightC.

[0244] In addition, in the case of ISP mode, it is preferred to decode only one intra-frame prediction mode for the CU, but it is also possible to decode the intra-frame prediction mode in units of the luminance blocks of the split CU only when the ISP mode is used and the block size is the specified minimum block size (for example, 8×8). In the intra-frame prediction mode, the MPM list, which is a list of intra-frame prediction modes, can also be derived, and the flag intra_luma_mpm_flag indicating whether the MPM list is used, the intra_luma_mpm_idx selected by the MPM list, and the intra_luma_mpm_remainder that selects an intra-frame prediction mode from the REM mode, which is a plurality of intra-frame prediction modes other than the MPM list, can be decoded and derived. In addition, in the case of ISP mode, the intra-frame prediction mode can also be limited to the MPM mode. In this case, only the intra_luma_mpm_idx is decoded. That is, in the case of ISP mode, the intra_luma_mpm_flag is always set to 1, and the intra_luma_mpm_remainder is not decoded. Here, it is also possible to derive the intra prediction mode from both the MPM mode and the REM mode only when the ISP mode is in use and the block size is a predetermined minimum block size (e.g., 8×8). That is, it is also possible to configure the intra_luma_mpm_flag to be always set to 1 and not decode the intra_luma_mpm_remainder when the ISP mode is in use and the block size is other than the minimum block size.

[0245] The above configuration prevents the chrominance blocks in the image decoding device 31 from becoming smaller. Furthermore, even when chrominance block reduction is prohibited, the ISP mode allows for segmentation of only the luma block, minimizing the reduction in coding efficiency. Furthermore, even in the ISP mode, when the block size is minimum, the addition of the QT segmentation mode further improves coding efficiency. Furthermore, even in the ISP mode, when the block size is minimum, intra-frame prediction modes are derived using segmented luma blocks, further improving coding efficiency.

[0246] Furthermore, the moving picture encoding device 11 and the moving picture decoding device 31 in the above-described embodiments may be partially or entirely implemented as an integrated circuit such as an LSI (Large Scale Integration). Each functional block of the moving picture encoding device 11 and the moving picture decoding device 31 may be implemented as a separate processor, or partially or entirely integrated. Furthermore, the integrated circuit method is not limited to LSI; implementation may also be achieved using dedicated circuits or general-purpose processors. Furthermore, if advancements in semiconductor technology lead to the emergence of integrated circuit technology that replaces LSI, integrated circuits based on such technology may also be used.

[0247] An embodiment of the present invention has been described above in detail with reference to the drawings. However, the specific configuration is not limited to the above embodiment, and various design changes can be made without departing from the gist of the present invention.

[0248] An embodiment of the present invention has been described above in detail with reference to the drawings. However, the specific configuration is not limited to the above embodiment, and various design changes can be made without departing from the gist of the present invention.

[0249] [Application Examples]

[0250] The moving image encoding device 11 and the moving image decoding device 31 can be installed in various devices that transmit, receive, record, and reproduce moving images. It should be noted that the moving images can be natural moving images captured by a camera or the like, or artificial moving images (including CG and GUI) generated by a computer or the like.

[0251] First, refer to Figure 2 A case where the above-described moving picture encoding device 11 and moving picture decoding device 31 can be used for transmission and reception of moving pictures will be described.

[0252] Figure 2 (a) is a block diagram showing the structure of a transmitting device PROD_A equipped with a motion picture encoding device 11. Figure 2As shown in (a) of FIG. 1 , the transmitting device PROD_A includes an encoding unit PROD_A1 that encodes a moving picture to obtain encoded data, a modulating unit PROD_A2 that modulates a carrier wave using 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 modulating unit PROD_A2. The moving picture encoding device 11 described above is used as the encoding unit PROD_A1.

[0253] As a source of motion images input to the encoding unit PROD_A1, the transmitting device PROD_A may further include: a camera PROD_A4 for shooting motion images, a recording medium PROD_A5 on which motion images are recorded, an input terminal PROD_A6 for inputting motion images from the outside, and an image processing unit A7 for generating or processing images. Figure 2 (a) shows an example in which the transmitting device PROD_A includes all of these components, but some of them may be omitted.

[0254] It should be noted that the recording medium PROD_A5 may be a medium recording unencoded moving images, or a medium recording moving images encoded using a recording encoding method different from the transmission encoding method. In the latter case, a decoding unit (not shown) that decodes the encoded data read from the recording medium PROD_A5 using the recording encoding method is preferably interposed between the recording medium PROD_A5 and the encoding unit PROD_A1.

[0255] Figure 2 (b) is a block diagram showing the structure of a receiving device PROD_B equipped with a motion picture decoding device 31. Figure 2 As shown in (b) of FIG. 1 , the receiving device PROD_B includes a receiving unit PROD_B1 that receives a modulated signal, a demodulating unit PROD_B2 that demodulates the modulated signal received by the receiving unit PROD_B1 to obtain coded data, and a decoding unit PROD_B3 that decodes the coded data obtained by the demodulating unit PROD_B2 to obtain a moving image. The moving image decoding device 31 described above is used as the decoding unit PROD_B3.

[0256] The receiving device PROD_B, as a supply destination of the moving image output by the decoding unit PROD_B3, may further include a display PROD_B4 for displaying the moving image, a recording medium PROD_B5 for recording the moving image, and an output terminal PROD_B6 for outputting the moving image to the outside. Figure 2 (b) shows an example in which the receiving device PROD_B has all of these structures, but some of them may be omitted.

[0257] It should be noted that the recording medium PROD_B5 may be a medium for recording unencoded moving images, or may be a medium encoded using a recording encoding method different from the transmission encoding method. In the latter case, an encoding unit (not shown) that encodes the moving images received from the decoding unit PROD_B3 using the recording encoding method is preferably interposed between the decoding unit PROD_B3 and the recording medium PROD_B5.

[0258] It should be noted that the transmission medium for transmitting the modulated signal can be wireless or wired. Furthermore, the transmission scheme for transmitting the modulated signal can be broadcast (herein, a transmission scheme where the destination is not predetermined) or communication (herein, a transmission scheme where the destination is predetermined). In other words, the transmission of the modulated signal can be achieved through any of wireless broadcasting, wired broadcasting, wireless communication, and wired communication.

[0259] For example, a broadcasting station (broadcasting equipment, etc.) / receiving station (television receiver, etc.) for terrestrial digital broadcasting is an example of a transmitting device PROD_A / receiving device PROD_B that transmits and receives modulated signals via wireless broadcasting. Furthermore, a broadcasting station (broadcasting equipment, etc.) / receiving station (television receiver, etc.) for cable television broadcasting is an example of a transmitting device PROD_A / receiving device PROD_B that transmits and receives modulated signals via wired broadcasting.

[0260] Furthermore, servers (such as workstations) and clients (such as television receivers, personal computers, and smartphones) for internet-based VOD (Video On Demand) services and video sharing services are examples of transmitters PROD_A and receivers PROD_B that transmit and receive modulated signals via communication (typically, wireless or wired transmission media is used in LANs, and wired transmission media is used in WANs). Personal computers include desktop PCs, laptop PCs, and tablet PCs. Furthermore, smartphones also include multifunctional mobile phone terminals.

[0261] It should be noted that the client of the moving image sharing service not only decodes encoded data downloaded from the server and displays it on a monitor, but also encodes moving images captured by a camera and uploads them to the server. In other words, the client of the moving image sharing service functions as both the sending device PROD_A and the receiving device PROD_B.

[0262] Next, refer to Figure 3 , a description will be given of a case where the above-mentioned moving image encoding device 11 and moving image decoding device 31 can be used for recording and reproducing moving images.

[0263] Figure 3 (a) is a block diagram showing the structure of a recording device PROD_C equipped with the above-mentioned motion picture encoding device 11. Figure 3 As shown in (a), 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 to the recording medium PROD_M. The moving image encoding device 11 described above is used as the encoding unit PROD_C1.

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

[0265] In addition, as a supply source of moving images input to the encoding unit PROD_C1, the recording device PROD_C may further include: a camera PROD_C3 for shooting moving images, an input terminal PROD_C4 for inputting moving images from the outside, a receiving unit PROD_C5 for receiving moving images, and an image processing unit PROD_C6 for generating or processing images. Figure 3 (a) shows an example in which the recording device PROD_C includes all of these structures, but some of them may be omitted.

[0266] It should be noted that the receiving unit PROD_C5 can receive unencoded moving images or can receive coded data encoded using a transmission encoding method different from the recording encoding method. In the latter case, a transmission decoding unit (not shown) that decodes the coded data encoded using the transmission encoding method is preferably interposed between the receiving unit PROD_C5 and the encoding unit PROD_C1.

[0267] Examples of such a recording device PROD_C include a DVD recorder, a BD recorder, and an HDD (Hard Disk Drive) recorder (in which case the input terminal PROD_C4 or the receiving unit PROD_C5 is the main source of motion images). Examples of such a recording device PROD_C include a portable video camera (in which case the video camera PROD_C3 is the main source of motion images), a personal computer (in which case the receiving unit PROD_C5 or the image processing unit C6 is the main source of motion images), and a smartphone (in which case the video camera PROD_C3 or the receiving unit PROD_C5 is the main source of motion images).

[0268] Figure 3 (b) is a block diagram showing the structure of the reproduction device PROD_D equipped with the above-mentioned motion picture decoding device 31. Figure 3 As shown in (b), the playback device PROD_D includes a reader PROD_D1 that reads coded data written to the recording medium PROD_M and a decoder PROD_D2 that decodes the coded data read by the reader PROD_D1 to obtain a moving image. The moving image decoding device 31 described above is used as the decoder PROD_D2.

[0269] It should be noted that the recording medium PROD_M can be (1) a type of recording medium built into the reproduction device PROD_D such as HDD, SSD, etc., or (2) a type of recording medium connected to the reproduction device PROD_D such as SD memory card, USB flash memory, etc., or (3) a recording medium loaded into a drive device (not shown) built into the reproduction device PROD_D such as DVD, BD, etc.

[0270] Furthermore, as a supply destination of the moving image output by the decoding unit PROD_D2, the reproduction device PROD_D 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. Figure 3 (b) shows an example in which the playback device PROD_D includes all of these components, but some of them may be omitted.

[0271] It should be noted that the transmitter PROD_D5 can transmit unencoded moving images or can transmit encoded data encoded using a transmission encoding method different from the recording encoding method. In the latter case, it is preferable to place an encoder (not shown) that encodes moving images using the transmission encoding method between the decoder PROD_D2 and the transmitter PROD_D5.

[0272] Examples of such a playback device PROD_D include DVD players, BD players, and HDD players (in this case, the output terminal PROD_D4 connected to a television receiver or the like is the main source of motion images). Examples of such a playback device PROD_D include television receivers (in this case, the display PROD_D3 is the main source of motion images), digital signage (also known as electronic signage or bulletin boards, for which the display PROD_D3 or the transmitter PROD_D5 is the main source of motion images), desktop PCs (in this case, the output terminal PROD_D4 or the transmitter PROD_D5 is the main source of motion images), laptop or tablet PCs (in this case, the display PROD_D3 or the transmitter PROD_D5 is the main source of motion images), and smartphones (in this case, the display PROD_D3 or the transmitter PROD_D5 is the main source of motion images).

[0273] (Hardware implementation and software implementation)

[0274] Furthermore, each block of the above-described moving picture decoding device 31 and moving picture encoding device 11 may be implemented as hardware using a logic circuit formed on an integrated circuit (IC chip), or may be implemented as software using a CPU (Central Processing Unit).

[0275] In the latter case, each of the aforementioned devices includes a CPU that executes instructions for a program that implements each function, a ROM (Read Only Memory) that stores the program, a RAM (Random Access Memory) that develops the program, and a storage device (recording medium) such as a memory that stores the program and various data. Furthermore, the object of the embodiment of the present invention can also be achieved by supplying a recording medium containing computer-readable program code (executable program, intermediate code program, source program) of the control program for each of the aforementioned devices, which implements the aforementioned functions, to each of the aforementioned devices, and having the computer (or CPU, MPU) read and execute the program code recorded on the recording medium.

[0276] As the above-mentioned recording medium, for example, the following tapes can be used: tapes such as magnetic tapes and cassette tapes; magnetic disks including floppy disks (registered trademark) / hard disks, CD-ROMs (Compact Disc Read-Only Memory) / MO disks (Magneto-Optical Disc) / MD (Mini Disc) / DVDs (Digital Versatile Disc) / CD-Rs (CD Recordable) / Blu-ray Discs (registered trademark); cards such as IC cards (including memory cards) / optical cards; semiconductor memories such as mask ROMs / EPROMs (Erasable Programmable Read-Only Memory) / EEPROMs (Electrically Erasable and Programmable Read-Only Memory) / flash ROMs; or logic circuits such as PLDs (Programmable logic devices) and FPGAs (Field Programmable Gate Arrays), etc.

[0277] Furthermore, each of the above-mentioned devices may be configured to be connected to a communication network, and the program code may be supplied via the communication network. The communication network is not particularly limited as long as it can transmit the program code. For example, the Internet, an intranet, an extranet, a LAN (Local Area Network), an ISDN (Integrated Services Digital Network), a VAN (Value-Added Network), a CATV (Community Antenna Television / Cable Television) communication network, a virtual private network (VPN), a telephone line network, a mobile communication network, a satellite communication network, and the like may be utilized. Furthermore, the transmission medium constituting the communication network may be any medium capable of transmitting the program code and is not limited to a specific configuration or type. For example, the present invention can be used in wired networks such as IEEE (Institute of Electrical and Electronic Engineers) 1394, USB, power line transmission, cable TV lines, telephone lines, and ADSL (Asymmetric Digital Subscriber Line) lines, as well as wireless networks such as IrDA (Infrared Data Association), infrared such as remote controls, Bluetooth (registered trademark), IEEE 802.11 wireless, HDR (High Data Rate), NFC (Near Field Communication), DLNA (Digital Living Network Alliance), mobile phone networks, satellite lines, and terrestrial digital broadcasting networks. It should be noted that embodiments of the present invention can also be implemented in the form of a computer data signal embedded in a carrier wave, which embodies the program code through electronic transmission.

[0278] The embodiments of the present invention are not limited to the above-described embodiments, and various modifications can be made within the scope of the claims. That is, embodiments obtained by combining technical solutions appropriately modified within the scope of the claims are also included in the technical scope of the present invention.

[0279] Industrial applicability

[0280] The embodiments of the present invention are preferably applicable to a moving picture decoding device that decodes coded data obtained by encoding image data, and a moving picture encoding device that generates coded data obtained by encoding image data. Furthermore, the embodiments of the present invention are preferably applicable to the data structure of coded data generated by a moving picture encoding device and referenced by a moving picture decoding device.

[0281] (Cross-reference of related applications)

[0282] This application claims the benefit of priority from Japanese Patent Application No. 2019-043098, filed on March 8, 2019, the entire contents of which are incorporated herein by reference.

[0283] Description of Reference Numerals

[0284] 31 Image decoding device

[0285] 301 Entropy Decoding Unit

[0286] 302 parameter decoding unit

[0287] 3020 header decoding unit

[0288] 303 Inter-frame prediction parameter decoding unit

[0289] 304 intra-frame prediction parameter decoding unit

[0290] 308 Prediction Image Generation Unit

[0291] 309 Inter-frame prediction image generation unit

[0292] 310 intra-frame prediction image generation unit

[0293] 311 Inverse quantization / inverse transform unit

[0294] 312 Addition Department

[0295] 11 Image Coding Device

[0296] 101 Prediction Image Generation Unit

[0297] 102 Subtraction Department

[0298] 103 Transformation / Quantization Unit

[0299] 104 Entropy Coding Unit

[0300] 105 Inverse quantization / inverse transform unit

[0301] 107 loop filter

[0302] 110 Coding parameter determination unit

[0303] 111 parameter encoding unit

[0304] 112 Inter-frame prediction parameter encoding unit

[0305] 113 Intra-frame prediction parameter encoding unit

[0306] 1110 header encoding unit

[0307] 1111 CT Information Coding Department

[0308] 1112 CU encoding unit (prediction mode encoding unit)

[0309] 1114 TU Coding Department

Claims

1. A method for decoding an image from a bit stream by an electronic device, characterized in that The method comprises: determining a block size of a block unit in the image; comparing the block size of the block unit with a predetermined size; When the block size of the block unit is greater than the predetermined size, determining the prediction mode of the block unit as an intra-frame prediction mode or an inter-frame prediction mode by parsing the prediction mode flag of the block unit from the bitstream; When the block size of the block unit is equal to or smaller than the predetermined size, the prediction mode flag is not parsed, wherein when the prediction mode flag is not parsed, if the tile group is an intra tile group, the prediction mode is set to an intra prediction mode, and if the tile group is an inter tile group, the prediction mode is set to an inter prediction mode; and The block unit is decoded based on the prediction mode.

2. The method according to claim 1, further comprising: When the block size of the block unit is smaller than a specified block size, a chroma merge mode is performed in the block unit, wherein the specified block size is a minimum size of a chroma block determined according to the block unit being different from the predetermined size.

3. The method according to claim 2, characterized in that The minimum size of the chroma block is 8, and the predetermined size is 4.

4. An image decoding apparatus for decoding an image from a bit stream, the image decoding apparatus comprising: at least one processor; and a storage device coupled to the at least one processor and storing a program that, when executed by the at least one processor, causes the at least one processor to: determining a block size of a block unit in the image; comparing the block size of the block unit with a predetermined size; When the block size of the block unit is greater than the predetermined size, determining the prediction mode of the block unit as an intra-frame prediction mode or an inter-frame prediction mode by parsing the prediction mode flag of the block unit from the bitstream; When the block size of the block unit is equal to or smaller than the predetermined size, the prediction mode flag is not parsed, wherein when the prediction mode flag is not parsed, if the tile group is an intra tile group, the prediction mode is set to an intra prediction mode, and if the tile group is an inter tile group, the prediction mode is set to an inter prediction mode; and The block unit is decoded based on the prediction mode.

5. The image decoding device according to claim 4, wherein When the at least one processor executes the program, the at least one processor is further caused to: When the block size of the block unit is smaller than a specified block size, a chroma merge mode is performed in the block unit, wherein the specified block size is a minimum size of a chroma block determined according to the block unit being different from the predetermined size.

6. The image decoding device according to claim 5, wherein The minimum size of the chroma block is 8, and the predetermined size is 4.

Citation Information

Patent Citations

  • Recording sheet for inkjet

    JP2019043098A