Image encoding device and image decoding device

The method of segmenting image blocks by combining quad-tree and binary tree has solved the problems of compression efficiency and processing load in the prior art, and more efficient image encoding and decoding are achieved.

CN116248878BActive Publication Date: 2025-07-22PANASONIC INTELLECTUAL PROPERTY CORP OF AMERICA
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310453174.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2016-11-21
Filing Date
2017-11-17
Publication Date
2025-07-22
Estimated Expiration
2037-11-17

AI Technical Summary

Technical Problem

In the existing image encoding and decoding technologies, the problems of compression efficiency and processing load have not been fully solved.

Method used

A new block segmentation method is adopted to segment the image blocks into 4 sub-blocks through a combined segmentation method of quad-tree and binary tree, and segment them in a single or two-way direction under specific conditions to improve coding efficiency.

Benefits of technology

It achieves higher compression efficiency and reduces processing load, and improves image encoding and decoding performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116248878B_ABST
    Figure CN116248878B_ABST
Patent Text Reader

Abstract

The present invention provides an image encoding device and an image decoding device. The image encoding device includes a circuit and a memory connected to the circuit; during operation, the circuit obtains a block from a coding tree unit; when the specified number of sub-blocks of the block is set to 4, the block is divided into 4 sub-blocks, wherein when the size of the block satisfies the block size condition, it is divided into 4 sub-blocks along a single direction, and this division includes: when the width of the block is greater than the height and the size is 32×8, it is divided into 4 8×8 sub-blocks along the vertical direction; when the height of the block is greater than the width and the size is 8×32, it is divided into 4 8×8 sub-blocks along the horizontal direction, and when the size of the block does not satisfy the block size condition, it is divided into 4 sub-blocks along the vertical direction and the horizontal direction, and this division includes: when the width of the block is equal to the height and the size is 32×32, it is divided into 4 16×16 sub-blocks along the vertical direction and the horizontal direction; and encodes the sub-blocks.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the patent application for invention with the application date of November 17, 2017, application number 201780071858.9, and invention title "Coding Device, Decoding Device, Coding Method, and Decoding Method". Technical Field

[0002] The present invention relates to a coding device, a decoding device, a coding method, and a decoding method. Background Art

[0003] An image coding standard specification called HEVC (High-Efficiency Video Coding) has been standardized by JCT-VC (Joint Collaborative Team on Video Coding).

[0004] Prior Art Documents

[0005] Non-Patent Documents

[0006] Non-Patent Document 1: H.265 (ISO / IEC 23008-2 HEVC (High Efficiency Video Coding)) Summary of the Invention

[0007] Problems to be Solved by the Invention

[0008] In such coding and decoding technologies, further improvement in compression efficiency and reduction in processing load are required.

[0009] Therefore, the present invention provides a coding device, a decoding device, a coding method, or a decoding method capable of achieving further improvement in compression efficiency and reduction in processing load.

[0010] Means for Solving the Problems

[0011] An image encoding device according to an aspect of the present invention includes: a circuit; and a memory connected to the circuit. In operation, the circuit obtains a block from a Coding Tree Unit (CTU). When the specified number of sub-blocks of the block is set to 4, the block is divided into 4 sub-blocks. Among them, when the size of the block satisfies the block size condition, the block is divided into 4 sub-blocks in a single direction. This division includes: when the width of the block is greater than the height of the block and the size of the block is 32×8, the block is divided into 4 sub-blocks of 8×8 in the vertical direction; and when the height of the block is greater than the width of the block and the size of the block is 8×32, the block is divided into 4 sub-blocks of 8×8 in the horizontal direction. When the size of the block does not satisfy the block size condition, the block is divided into 4 sub-blocks in the vertical and horizontal directions. This division includes: when the width of the block is equal to the height of the block and the size of the block is 32×32, the block is divided into 4 sub-blocks of 16×16 in the vertical and horizontal directions; and the obtained sub-blocks of the block are encoded.

[0012] In addition, these inclusive or specific aspects can also be implemented by a system, a method, an integrated circuit, a computer program, or a recording medium such as a computer-readable CD-ROM, or can be implemented by any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0013] Advantages of the Invention

[0014] The present invention can provide an encoding device, a decoding device, an encoding method, or a decoding method that can achieve further improvement in compression efficiency and reduction in processing load. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] Figure 1 It is a block diagram showing the functional structure of the encoding device according to Embodiment 1.

[0016] Figure 2 It is a diagram showing an example of block division in Embodiment 1.

[0017] Figure 3 It is a table showing transform basis functions corresponding to respective transform types.

[0018] Figure 4A It is a diagram showing an example of the shape of a filter used in ALF.

[0019] Figure 4B It is a diagram showing another example of the shape of a filter used in ALF.

[0020] Figure 4C It is a diagram showing another example of the shape of a filter used in ALF.

[0021] Figure 5A It is a diagram showing 67 intra prediction modes for intra prediction.

[0022] Figure 5B It is a flowchart for explaining the outline of the predicted image correction process based on OBMC processing.

[0023] Figure 5C It is a conceptual diagram for explaining the outline of the predicted image correction process based on OBMC processing.

[0024] Figure 5D It is a diagram showing an example of FRUC.

[0025] Figure 6 It is a diagram for explaining pattern matching (bidirectional matching) between two blocks along a motion trajectory.

[0026] Figure 7 It is a diagram for explaining pattern matching (template matching) between a template in the current picture and a block in the reference picture.

[0027] Figure 8 It is a diagram for explaining a model assuming uniform linear motion.

[0028] Figure 9A It is a diagram for explaining the derivation of a motion vector in sub-block units based on motion vectors of multiple adjacent blocks.

[0029] Figure 9B It is a diagram for explaining the outline of the motion vector derivation process based on the merge mode.

[0030] Figure 9C It is a conceptual diagram for explaining the outline of the DMVR process.

[0031] Figure 9D It is a diagram for explaining the outline of a predicted image generation method that employs a luminance correction process based on LIC processing.

[0032] Figure 10 It is a block diagram showing the functional structure of the decoding device related to Embodiment 1.

[0033] Figure 11 It is a flowchart showing an example of the video encoding process related to Embodiment 2.

[0034] Figure 12 It is a flowchart showing an example of the video decoding process related to Embodiment 2.

[0035] Figure 13 It is a flowchart showing an example of the video encoding process related to Embodiment 3.

[0036] Figure 14 It is a flowchart showing an example of video decoding processing related to Embodiment 3.

[0037] Figure 15 It is a flowchart showing an example of video encoding processing related to Embodiment 4.

[0038] Figure 16 It is a flowchart showing an example of video decoding processing related to Embodiment 4.

[0039] Figure 17 It is a flowchart showing an example of video encoding processing related to Embodiment 5.

[0040] Figure 18 It is a flowchart showing an example of video decoding processing related to Embodiment 5.

[0041] Figure 19 It is a flowchart showing an example of video encoding processing related to Embodiment 6.

[0042] Figure 20 It is a flowchart showing an example of video decoding processing related to Embodiment 6.

[0043] Figure 21 It is a flowchart showing an example of video encoding processing related to Embodiment 7.

[0044] Figure 22 It is a flowchart showing an example of video decoding processing related to Embodiment 7.

[0045] Figure 23 It is a flowchart showing an example of video encoding processing related to Embodiment 8.

[0046] Figure 24 It is a flowchart showing an example of video decoding processing related to Embodiment 8.

[0047] Figure 25 It is a flowchart showing an example of video encoding processing related to Embodiment 9.

[0048] Figure 26 It is a flowchart showing an example of video decoding processing related to Embodiment 9.

[0049] Figure 27 It is a flowchart showing an example of video encoding processing related to Embodiment 10.

[0050] Figure 28 It is a flowchart showing an example of video decoding processing related to Embodiment 10.

[0051] Figure 29 It is a flowchart showing an example of video encoding processing related to Embodiment 11.

[0052] Figure 30 It is a flowchart showing an example of video decoding processing related to Embodiment 11.

[0053] Figure 31 It is a flowchart showing an example of video encoding processing related to Embodiment 12.

[0054] Figure 32 It is a flowchart showing an example of video decoding processing related to Embodiment 12.

[0055] Figure 33 It is a flowchart showing an example of video encoding processing related to Embodiment 13.

[0056] Figure 34 It is a flowchart showing an example of video decoding processing related to Embodiment 13.

[0057] Figure 35 It is a block diagram showing the configuration of a video / image encoding device related to an embodiment.

[0058] Figure 36 It is a block diagram showing the configuration of a video / image decoding device related to an embodiment.

[0059] Figure 37 It is a diagram showing possible positions of parameters in a compressed video bitstream.

[0060] Figure 38 It is a diagram showing the results of block partitioning that differ according to block segmentation information.

[0061] Figure 39 It is a diagram showing an example of a combination of block partitioning structures.

[0062] Figure 40 It is a diagram showing an example of a modification of a block partitioning structure.

[0063] Figure 41 It is a diagram showing examples of a segmentation method and a block partitioning structure.

[0064] Figure 42A It is a diagram showing a modification example of an initial block partitioning structure.

[0065] Figure 42B It is a diagram showing a modification example of an initial block partitioning structure.

[0066] Figure 42C It is a diagram showing a modification example of an initial block partitioning structure.

[0067] Figure 43 It is a diagram showing a modification example of an initial block partitioning structure.

[0068] Figure 44 It is a figure showing the result of block division that varies according to geometric figures.

[0069] Figure 45A It is a figure showing an example of block division into sub - blocks of a geometric figure based on blocks.

[0070] Figure 45B It is a figure showing an example of block division into sub - blocks of a geometric figure based on blocks.

[0071] Figure 45C It is a figure showing an example of block division into sub - blocks of a geometric figure based on blocks.

[0072] Figure 45D It is a figure showing an example of block division into sub - blocks of a geometric figure based on blocks.

[0073] Figure 46A It is a figure showing an example of block division into sub - blocks of a geometric figure based on parameters.

[0074] Figure 46B It is a figure showing an example of block division into sub - blocks of a geometric figure based on parameters.

[0075] Figure 46C It is a figure showing an example of block division into sub - blocks of a geometric figure based on parameters.

[0076] Figure 46D It is a figure showing an example of block division into sub - blocks of a geometric figure based on parameters.

[0077] Figure 47A It is a figure showing an example of block division into sub - blocks of the quantity of a geometric figure based on blocks.

[0078] Figure 47B It is a figure showing an example of block division into sub - blocks of the quantity of a geometric figure based on blocks.

[0079] Figure 48A It is a figure showing an example of block division into sub - blocks of the quantity based on parameters.

[0080] Figure 48B It is a figure showing an example of block division into sub - blocks of the quantity based on parameters.

[0081] Figure 48C It is a figure showing an example of block division into sub - blocks of the quantity based on parameters.

[0082] Figure 49A It is a figure showing an example of selecting block division information from a set of block division information.

[0083] Figure 49BThis is a diagram showing an example of selecting block segmentation information from a set of block segmentation information.

[0084] Figure 50 This is a diagram showing an example of the selection of a block partitioning structure based on a predicted block partitioning structure.

[0085] Figure 51 This is a diagram showing an example of the rearrangement of a list of block segmentation information.

[0086] Figure 52 This is a diagram showing an example of the rearrangement of a list of block segmentation information.

[0087] Figure 53 This is a diagram showing the coding bits of a partition selection parameter and their meanings.

[0088] Figure 54 This is a diagram showing the overall structure diagram of a content supply system for implementing a content distribution service.

[0089] Figure 55 This is a diagram showing an example of an encoding structure in scalable coding.

[0090] Figure 56 This is a diagram showing an example of an encoding structure in scalable coding.

[0091] Figure 57 This is a diagram showing an example of a display screen of a web page.

[0092] Figure 58 This is a diagram showing an example of a display screen of a web page.

[0093] Figure 59 This is a diagram showing an example of a smart phone.

[0094] Figure 60 This is a block diagram showing an example of the structure of a smart phone. Detailed implementation

[0095] (Understanding as the basis of the present invention)

[0096] In conventional image and video encoding and decoding methods, an image is divided into blocks, and encoding processing and decoding processing are performed at the block level. In recent video standard specifications, in addition to the usual sizes such as 8×8 or 16×16, encoding processing and decoding processing can also be performed with various block sizes. For example, in image encoding processing and decoding processing, sizes in the range of 4×4 to 256×256 can be used.

[0097] In order to represent the range of block sizes from 4×4 to 256×256, block splitting information such as the splitting mode (e.g., quadtree splitting mode and binary tree splitting mode) and splitting flags (e.g., split flag) for the block is determined and signaled. The overhead of this signaling increases as the splitting depth increases. Also, if the overhead increases, the overall image compression efficiency decreases.

[0098] Therefore, in the present invention, an encoding device and a decoding device are provided that can reduce the amount of code related to block splitting information and improve the compression efficiency.

[0099] Hereinafter, embodiments will be specifically described with reference to the drawings.

[0100] In addition, all the embodiments described below represent inclusive or specific examples. The numerical values, shapes, materials, constituent elements, configurations and connection forms of the constituent elements, steps, order of steps, etc. shown in the following embodiments are examples and do not limit the meaning of the claims. In addition, among the constituent elements of the following embodiments, the constituent elements not described in the independent claims representing the most general concept are described as arbitrary constituent elements.

[0101] (Embodiment 1)

[0102] First, as an example of an encoding device and a decoding device that can apply the processing and / or structure described in each aspect of the present invention described later, an outline of Embodiment 1 will be described. However, Embodiment 1 is merely an example of an encoding device and a decoding device that can apply the processing and / or structure described in each aspect of the present invention, and the processing and / or structure described in each aspect of the present invention can also be implemented in encoding devices and decoding devices different from Embodiment 1.

[0103] When applying the processing and / or structure described in each aspect of the present invention to Embodiment 1, for example, any of the following may be performed.

[0104] (1) For the encoding device or decoding device of Embodiment 1, the constituent elements corresponding to the constituent elements described in each aspect of the present invention among the multiple constituent elements constituting the encoding device or decoding device are replaced with the constituent elements described in each aspect of the present invention;

[0105] (2) For the encoding device or decoding device of Embodiment 1, after arbitrarily changing the functions or the processing performed on a part of the multiple constituent elements constituting the encoding device or decoding device, such as adding, replacing, or deleting, the constituent elements corresponding to the constituent elements described in each aspect of the present invention are replaced with the constituent elements described in each aspect of the present invention;

[0106] (3) For the method implemented by the encoding device or decoding device of Embodiment 1, after adding processing and / or making any changes such as replacing or deleting a part of the multiple processes included in the method, replace the process corresponding to the process described in each aspect of the present invention with the process described in each aspect of the present invention;

[0107] (4) Combine a part of the multiple components constituting the encoding device or decoding device of Embodiment 1 with the components described in each aspect of the present invention, the components having a part of the functions possessed by the components described in each aspect of the present invention, or the components implementing a part of the processes implemented by the components described in each aspect of the present invention;

[0108] (5) Combine the components having a part of the functions possessed by a part of the multiple components constituting the encoding device or decoding device of Embodiment 1 or the components implementing a part of the processes implemented by a part of the multiple components constituting the encoding device or decoding device of Embodiment 1 with the components described in each aspect of the present invention, the components having a part of the functions possessed by the components described in each aspect of the present invention, or the components implementing a part of the processes implemented by the components described in each aspect of the present invention;

[0109] (6) For the method implemented by the encoding device or decoding device of Embodiment 1, replace the process corresponding to the process described in each aspect of the present invention among the multiple processes included in the method with the process described in each aspect of the present invention;

[0110] (7) Combine a part of the multiple processes included in the method implemented by the encoding device or decoding device of Embodiment 1 with the processes described in each aspect of the present invention.

[0111] In addition, the implementation manners of the processes and / or structures described in each aspect of the present invention are not limited to the above examples. For example, it can also be implemented in a device used for a purpose different from the moving image / image encoding device or moving image / image decoding device disclosed in Embodiment 1, or the processes and / or structures described in each aspect can be implemented alone. In addition, the processes and / or structures described in different aspects can also be combined and implemented.

[0112] [Outline of Encoding Device]

[0113] First, the outline of the encoding device of Embodiment 1 will be described. Figure 1FIG. 0 is a block diagram showing the functional configuration of the encoding device 100 according to Embodiment 1. The encoding device 100 is a moving image / image encoding device that encodes moving images / images in units of blocks.

[0114] As Figure 1 shown, the encoding device 100 is a device that encodes images in units of blocks, and includes a splitting unit 102, a subtraction unit 104, a transformation unit 106, a quantization unit 108, an entropy encoding unit 110, an inverse quantization unit 112, an inverse transformation unit 114, an addition unit 116, a block memory 118, a loop filter unit 120, a frame memory 122, an intra prediction unit 124, an inter prediction unit 126, and a prediction control unit 128.

[0115] The encoding device 100 is implemented by, for example, a general-purpose processor and a memory. In this case, when a software program stored in the memory is executed by the processor, the processor functions as the splitting unit 102, the subtraction unit 104, the transformation unit 106, the quantization unit 108, the entropy encoding unit 110, the inverse quantization unit 112, the inverse transformation unit 114, the addition unit 116, the loop filter unit 120, the intra prediction unit 124, the inter prediction unit 126, and the prediction control unit 128. In addition, the encoding device 100 may also be implemented as one or more dedicated electronic circuits corresponding to the splitting unit 102, the subtraction unit 104, the transformation unit 106, the quantization unit 108, the entropy encoding unit 110, the inverse quantization unit 112, the inverse transformation unit 114, the addition unit 116, the loop filter unit 120, the intra prediction unit 124, the inter prediction unit 126, and the prediction control unit 128.

[0116] Hereinafter, each component included in the encoding device 100 will be described.

[0117] [Splitting Unit]

[0118] The splitting unit 102 splits each picture included in the input moving image into a plurality of blocks, and outputs each block to the subtraction unit 104. For example, the splitting unit 102 first splits a picture into blocks of a fixed size (for example, 128×128). Such blocks of a fixed size are sometimes referred to as coding tree units (CTUs). And, the splitting unit 102 further splits each block of a fixed size into blocks of a variable size (for example, 64×64 or less) based on recursive quadtree and / or binary tree block splitting. Such blocks of a variable size are sometimes referred to as coding units (CUs), prediction units (PUs), or transform units (TUs). In addition, in the present embodiment, it is not necessary to distinguish between CUs, PUs, and TUs, and a part or all of the blocks in a picture may be used as the processing units for CUs, PUs, and TUs.

[0119] Figure 2 FIG. 21 is a diagram showing an example of block splitting according to Embodiment 1. InFigure 2 Among them, solid lines indicate block boundaries based on quadtree block division, and dashed lines indicate block boundaries based on binary tree block division.

[0120] Here, block 10 is a square block of 128×128 pixels (128×128 block). This 128×128 block 10 is first divided into 4 square 64×64 blocks (quadtree block division).

[0121] The upper-left 64×64 block is further vertically divided into 2 rectangular 32×64 blocks, and the left 32×64 block is further vertically divided into 2 rectangular 16×64 blocks (binary tree block division). As a result, the upper-left 64×64 block is divided into 2 16×64 blocks 11, 12 and a 32×64 block 13.

[0122] The upper-right 64×64 block is horizontally divided into 2 rectangular 64×32 blocks 14, 15 (binary tree block division).

[0123] The lower-left 64×64 block is divided into 4 square 32×32 blocks (quadtree block division). The upper-left block and the lower-right block among the 4 32×32 blocks are further divided. The upper-left 32×32 block is vertically divided into 2 rectangular 16×32 blocks, and the right 16×32 block is further horizontally divided into 2 16×16 blocks (binary tree block division). The lower-right 32×32 block is horizontally divided into 2 32×16 blocks (binary tree block division). As a result, the lower-left 64×64 block is divided into a 16×32 block 16, 2 16×16 blocks 17, 18, 2 32×32 blocks 19, 20, and 2 32×16 blocks 21, 22.

[0124] The lower-right 64×64 block 23 is not divided.

[0125] As described above, in Figure 2 , block 10 is divided into 13 variable-size blocks 11 to 23 based on recursive quadtree and binary tree block division. Such a division is sometimes called QTBT (quad - tree plus binary tree) division.

[0126] In addition, in Figure 2 , 1 block is divided into 4 or 2 blocks (quadtree or binary tree block division), but the division is not limited to this. For example, 1 block can also be divided into 3 blocks (ternary tree division). Divisions including such ternary tree division are sometimes called MBT (multi type tree) division.

[0127] [Subtraction part]

[0128] The subtraction unit 104 subtracts the predicted signal (predicted samples) from the original signal (original samples) in units of blocks divided by the division unit 102. That is, the subtraction unit 104 calculates the prediction error (also referred to as the residual) of the block to be encoded (hereinafter referred to as the current block). And the subtraction unit 104 outputs the calculated prediction error to the transformation unit 106.

[0129] The original signal is the input signal of the encoding device 100 and is a signal representing the images of each picture constituting the moving image (for example, a luma signal and two chroma signals). Hereinafter, there are cases where the signal representing the image is also referred to as a sample.

[0130] [Transformation unit]

[0131] The transformation unit 106 transforms the prediction error in the spatial domain into transform coefficients in the frequency domain and outputs the transform coefficients to the quantization unit 108. Specifically, the transformation unit 106, for example, performs a preset discrete cosine transform (DCT) or discrete sine transform (DST) on the prediction error in the spatial domain.

[0132] In addition, the transformation unit 106 can also adaptively select a transformation type from among multiple transformation types and use a transform basis function corresponding to the selected transformation type to transform the prediction error into transform coefficients. Such a transformation is called EMT (explicit multiple core transform, multi-core transform) or AMT (adaptive multiple transform, adaptive multi-transform) in some cases.

[0133] The multiple transformation types include, for example, DCT-II, DCT-V, DCT-VIII, DST-I, and DST-VII. Figure 3 is a table showing the transform basis functions corresponding to each transformation type. In Figure 3 where N represents the number of input pixels. The selection of the transformation type from among these multiple transformation types can depend, for example, on the type of prediction (intra prediction and inter prediction) or on the intra prediction mode.

[0134] Information indicating whether to apply such EMT or AMT (for example, called the AMT flag) and information indicating the selected transformation type are signaled at the CU level. In addition, the signaling of this information does not need to be limited to the CU level and can also be other levels (for example, sequence level, picture level, slice level, tile level, or CTU level).

[0135] In addition, the transformation unit 106 can also perform inverse transformation on the transformation coefficients (transformation results). Such inverse transformation is sometimes referred to as AST (adaptive secondary transform) or NSST (non-separable secondary transform). For example, the transformation unit 106 performs inverse transformation on each sub-block (e.g., 4×4 sub-block) included in the block of transformation coefficients corresponding to the intra-prediction error. Information indicating whether to apply NSST and information related to the transformation matrix used in NSST are signaled at the CU level. Additionally, the signaling of this information does not need to be limited to the CU level and can also be at other levels (e.g., sequence level, picture level, slice level, tile level, or CTU level).

[0136] Here, a Separable transformation refers to a method of performing multiple transformations by separating them in each direction according to the number of dimensions of the input. A Non-Separable transformation refers to a method of treating two or more dimensions as one dimension and performing a transformation together when the input is multi-dimensional.

[0137] For example, as an example of a Non-Separable transformation, when the input is a 4×4 block, it can be regarded as a permutation with 16 elements, and a transformation process is performed on this permutation with a 16×16 transformation matrix.

[0138] In addition, similarly, a method of performing Givens rotation on this permutation multiple times (Hypercube Givens Transform) after regarding a 4×4 input block as a permutation with 16 elements is also an example of a Non-Separable transformation.

[0139] [Quantization Unit]

[0140] The quantization unit 108 quantizes the transformation coefficients output from the transformation unit 106. Specifically, the quantization unit 108 scans the transformation coefficients of the current block in a specified scan order, and quantizes the transformation coefficients based on the quantization parameter (QP) corresponding to the scanned transformation coefficients. Then, the quantization unit 108 outputs the quantized transformation coefficients (hereinafter referred to as quantization coefficients) of the current block to the entropy coding unit 110 and the inverse quantization unit 112.

[0141] The specified order is the order used for quantization / inverse quantization of the transformation coefficients. For example, the specified scan order is defined by ascending frequency (order from low frequency to high frequency) or descending frequency (order from high frequency to low frequency).

[0142] A quantization parameter refers to a parameter that defines the quantization step (quantization width). For example, if the value of the quantization parameter increases, the quantization step also increases. That is, if the value of the quantization parameter increases, the quantization error increases.

[0143] [Entropy encoding unit]

[0144] The entropy encoding unit 110 generates an encoded signal (encoded bitstream) by performing variable-length encoding on the quantized coefficients that are the input from the quantization unit 108. Specifically, the entropy encoding unit 110 binarizes the quantized coefficients, for example, and performs arithmetic coding on the binary signal.

[0145] [Inverse quantization unit]

[0146] The inverse quantization unit 112 performs inverse quantization on the quantized coefficients that are the input from the quantization unit 108. Specifically, the inverse quantization unit 112 performs inverse quantization on the quantized coefficients of the current block in a prescribed scan order. And the inverse quantization unit 112 outputs the inverse-quantized transform coefficients of the current block to the inverse transform unit 114.

[0147] [Inverse transform unit]

[0148] The inverse transform unit 114 restores the prediction error by performing an inverse transform on the transform coefficients that are the input from the inverse quantization unit 112. Specifically, the inverse transform unit 114 restores the prediction error of the current block by performing an inverse transform corresponding to the transform of the transform unit 106 on the transform coefficients. And the inverse transform unit 114 outputs the restored prediction error to the addition unit 116.

[0149] In addition, since information is lost through quantization in the restored prediction error, it is not consistent with the prediction error calculated by the subtraction unit 104. That is, the restored prediction error contains a quantization error.

[0150] [Addition unit]

[0151] The addition unit 116 reconstructs the current block by adding the prediction error that is the input from the inverse transform unit 114 and the prediction sample that is the input from the prediction control unit 128. And the addition unit 116 outputs the reconstructed block to the block memory 118 and the loop filter unit 120. The reconstructed block is sometimes referred to as a local decoded block.

[0152] [Block memory]

[0153] The block memory 118 is a storage unit for storing blocks within the picture to be encoded (hereinafter referred to as the current picture) that are referred to in intra prediction. Specifically, the block memory 118 stores the reconstructed blocks output from the addition unit 116.

[0154] [Loop filter unit]

[0155] The loop filter unit 120 performs loop filtering on the block reconstructed by the adder unit 116, and outputs the filtered reconstructed block to the frame memory 122. Loop filtering refers to the filtering used within the coding loop (in-loop filtering), and includes, for example, deblocking filtering (DF), sample adaptive offset (SAO), and adaptive loop filtering (ALF).

[0156] In ALF, a least squares error filter used to remove coding distortion is adopted. For example, for each 2×2 sub-block within the current block, one filter selected from multiple filters is adopted based on the direction and activity of the locality-based gradient.

[0157] Specifically, first, sub-blocks (e.g., 2×2 sub-blocks) are classified into multiple classes (e.g., 15 or 25 classes). The classification of sub-blocks is performed based on the direction and activity of the gradient. For example, using the direction value D of the gradient (e.g., 0 to 2 or 0 to 4) and the activity value A of the gradient (e.g., 0 to 4), the classification value C (e.g., C = 5D + A) is calculated. And based on the classification value C, the sub-blocks are classified into multiple classes (e.g., 15 or 25 classes).

[0158] The direction value D of the gradient is derived, for example, by comparing the gradients in multiple directions (e.g., horizontal, vertical, and two diagonal directions). In addition, the activity value A of the gradient is derived, for example, by adding the gradients in multiple directions and quantifying the added result.

[0159] Based on the result of such classification, the filter to be used for the sub-block is determined from among multiple filters.

[0160] As the shape of the filter used in ALF, for example, a circularly symmetric shape is used. Figures 4A to 4C It is a diagram showing multiple examples of the shape of the filter used in ALF. Figure 4A It represents a 5×5 diamond-shaped filter, Figure 4B It represents a 7×7 diamond-shaped filter, Figure 4C It represents a 9×9 diamond-shaped filter. The information indicating the shape of the filter is signaled at the picture level. In addition, the signaling of the information indicating the shape of the filter does not need to be limited to the picture level, and can also be other levels (e.g., sequence level, slice level, tile level, CTU level, or CU level).

[0161] The on / off of ALF is determined, for example, at the picture level or CU level. For example, for luminance, it is determined at the CU level whether to adopt ALF, and for chrominance difference, it is determined at the picture level whether to adopt ALF. The information indicating the on / off of ALF is signaled at the picture level or CU level. In addition, the signaling of the information indicating the on / off of ALF does not need to be limited to the picture level or CU level, and can also be other levels (e.g., sequence level, slice level, tile level, or CTU level).

[0162] The coefficient sets of multiple selectable filters (e.g., up to 15 or 25 filters) are signaled at the picture level. Additionally, the signaling of the coefficient sets does not need to be limited to the picture level and can also be at other levels (e.g., sequence level, slice level, tile level, CTU level, CU level, or sub-block level).

[0163] [Frame memory]

[0164] The frame memory 122 is a storage unit for storing reference pictures used in inter-frame prediction, and is also sometimes referred to as a frame buffer. Specifically, the frame memory 122 stores the reconstructed blocks filtered by the loop filter unit 120.

[0165] [Intra-frame prediction unit]

[0166] The intra-frame prediction unit 124 performs intra-frame prediction (also referred to as intra-picture prediction) of the current block by referring to the block within the current picture stored in the block memory 118, thereby generating a prediction signal (intra-frame prediction signal). Specifically, the intra-frame prediction unit 124 generates an intra-frame prediction signal by performing intra-frame prediction with reference to the samples (e.g., luminance values, chrominance difference values) of the blocks adjacent to the current block, and outputs the intra-frame prediction signal to the prediction control unit 128.

[0167] For example, the intra-frame prediction unit 124 performs intra-frame prediction using one of a plurality of predefined intra-frame prediction modes. The plurality of intra-frame prediction modes include one or more non-directional prediction modes and a plurality of directional prediction modes.

[0168] One or more non-directional prediction modes include, for example, the Planar (plane) prediction mode and the DC prediction mode defined by the H.265 / HEVC (High-Efficiency Video Coding) standard (Non-Patent Document 1).

[0169] The plurality of directional prediction modes include, for example, the 33-direction prediction mode defined by the H.265 / HEVC standard. Additionally, the plurality of directional prediction modes may also include a 32-direction prediction mode (a total of 65 directional prediction modes) in addition to the 33 directions. Figure 5A This is a diagram showing 67 intra-frame prediction modes (2 non-directional prediction modes and 65 directional prediction modes) in intra-frame prediction. The solid arrows represent the 33 directions defined by the H.265 / HEVC standard, and the dashed arrows represent the additional 32 directions.

[0170] In addition, in the intra prediction of the chrominance blocks, the luminance blocks may also be referred to. That is, the chrominance components of the current block may also be predicted based on the luminance component of the current block. Such intra prediction is called CCLM (cross-component linear model) prediction in some cases. The intra prediction mode of the chrominance blocks that refers to the luminance blocks (for example, called the CCLM mode) may also be added as one of the intra prediction modes of the chrominance blocks.

[0171] The intra prediction unit 124 may also correct the pixel value after intra prediction based on the gradients of the reference pixels in the horizontal / vertical directions. The intra prediction accompanied by such correction is called PDPC (position dependent intraprediction combination) in some cases. Information indicating whether PDPC is used (for example, called the PDPC flag) is signaled at the CU level, for example. In addition, the signaling of this information is not limited to the CU level and may also be at other levels (for example, sequence level, picture level, slice level, tile level, or CTU level).

[0172] [Inter prediction unit]

[0173] The inter prediction unit 126 performs inter prediction (also called inter-picture prediction) of the current block by referring to a reference picture different from the current picture stored in the frame memory 122, thereby generating a prediction signal (inter prediction signal). The inter prediction is performed in units of the current block or sub-blocks (for example, 4×4 blocks) within the current block. For example, the inter prediction unit 126 performs motion estimation within the reference picture for the current block or sub-block. Then, the inter prediction unit 126 performs motion compensation using the motion information (for example, motion vector) obtained by the motion estimation, thereby generating the inter prediction signal for the current block or sub-block. And the inter prediction unit 126 outputs the generated inter prediction signal to the prediction control unit 128.

[0174] The motion information used in the motion compensation is signaled. In the signaling of the motion vector, a motion vector predictor may also be used. That is, the difference between the motion vector and the predicted motion vector may also be signaled.

[0175] Alternatively, it is also possible to generate an inter-prediction signal not only using the motion information of the current block obtained by motion estimation, but also using the motion information of adjacent blocks. Specifically, it is also possible to perform weighted addition of a prediction signal based on the motion information obtained by motion estimation and a prediction signal based on the motion information of adjacent blocks, thereby generating an inter-prediction signal in units of sub-blocks within the current block. Such inter-prediction (motion compensation) is sometimes referred to as OBMC (overlapped block motion compensation).

[0176] In such an OBMC mode, information indicating the size of the sub-blocks used for OBMC (e.g., referred to as the OBMC block size) is signaled at the sequence level. In addition, information indicating whether the OBMC mode is adopted (e.g., referred to as the OBMC flag) is signaled at the CU level. Additionally, the levels at which these pieces of information are signaled do not need to be limited to the sequence level and the CU level, and can also be other levels (e.g., picture level, slice level, tile level, CTU level, or sub-block level).

[0177] A more specific description of the OBMC mode will be given. Figure 5B and Figure 5C are a flowchart and a conceptual diagram for explaining the outline of the prediction image correction process based on OBMC processing.

[0178] First, using the motion vector (MV) assigned to the block to be encoded, a prediction image (Pred) obtained by normal motion compensation is acquired.

[0179] Next, a prediction image (Pred_L) is acquired by adopting the motion vector (MV_L) of the encoded left adjacent block for the block to be encoded, and the first correction of the prediction image is performed by weighted superposition of the above prediction image and Pred_L.

[0180] Similarly, a prediction image (Pred_U) is acquired by adopting the motion vector (MV_U) of the encoded upper adjacent block for the block to be encoded, and the second correction of the prediction image is performed by weighted superposition of the prediction image after the above first correction and Pred_U, and this is used as the final prediction image.

[0181] In addition, the method of two-stage correction using the left adjacent block and the upper adjacent block is described here, but it can also be configured to perform more than two-stage corrections using the right adjacent block and the lower adjacent block.

[0182] In addition, the region for superposition may not be the entire pixel region of the block, but only a partial region near the block boundary.

[0183] In addition, the prediction image correction process based on one reference picture has been described here. However, the same applies to the case of correcting the prediction image based on multiple reference pictures. After obtaining the corrected prediction images according to each reference picture, the obtained prediction images are further superimposed to obtain the final prediction image.

[0184] In addition, the above processing target block may be in units of prediction blocks or in units of sub-blocks obtained by further dividing the prediction blocks.

[0185] As a method for determining whether to use the OBMC process, for example, there is a method of using a signal indicating whether to use the OBMC process, that is, obmc_flag. As a specific example, in an encoding device, it is determined whether an encoding target block belongs to a region with complex motion. In the case of belonging to a region with complex motion, the value 1 is set as obmc_flag and encoding is performed using the OBMC process. In the case of not belonging to a region with complex motion, the value 0 is set as obmc_flag and encoding is performed without using the OBMC process. On the other hand, in a decoding device, by decoding the obmc_flag described in the stream, whether to use the OBMC process is switched according to its value to perform decoding.

[0186] In addition, the motion information may not be signaled and may be derived on the decoding device side. For example, the merge mode specified by the H.265 / HEVC standard may be used. In addition, for example, the motion information may be derived by performing motion estimation on the decoding device side. In this case, motion estimation is performed without using the pixel values of the current block.

[0187] Here, the mode of performing motion estimation on the decoding device side is described. The mode of performing motion estimation on the decoding device side may be a mode called PMMVD (pattern matched motion vector derivation) mode or FRUC (frame rate up-conversion) mode.

[0188] In Figure 5D shows an example of FRUC processing. First, referring to the motion vectors of the encoded blocks adjacent to the current block in space or time, a plurality of candidates each having a predicted motion vector are generated (it may be shared with the merge list). Then, the best candidate MV is selected from among the plurality of candidate MVs registered in the candidate list. For example, the evaluation value of each candidate included in the candidate list is calculated, and one candidate is selected based on the evaluation value.

[0189] And, based on the motion vector of the selected candidate, a motion vector for the current block is derived. Specifically, for example, the motion vector of the selected candidate (the best candidate MV) is directly derived as the motion vector for the current block. In addition, for example, a motion vector for the current block may also be derived by performing pattern matching in a peripheral region of the position within the reference picture corresponding to the motion vector of the selected candidate. That is, the peripheral region of the best candidate MV may also be searched by the same method, and in the case where there is an MV with a better evaluation value, the best candidate MV is updated to the above MV, and this is used as the final MV of the current block. Additionally, a structure may be configured not to perform this process.

[0190] The exact same process may also be performed when processing is carried out in units of sub - blocks.

[0191] In addition, regarding the evaluation value, it is calculated by obtaining a difference value of the reconstructed image through pattern matching between the region within the reference picture corresponding to the motion vector and a specified region. Additionally, it may also be that, in addition to the difference value, other information is used to calculate the evaluation value.

[0192] As the pattern matching, the first pattern matching or the second pattern matching is used. In some cases, the first pattern matching and the second pattern matching are respectively referred to as bilateral matching and template matching.

[0193] In the first pattern matching, pattern matching is performed between two blocks along the motion trajectory of the current block in two different reference pictures. Thus, in the first pattern matching, as the specified region for calculating the evaluation value of the candidate, a region within another reference picture along the motion trajectory of the current block is used.

[0194] Figure 6 This is a diagram for explaining an example of pattern matching (bilateral matching) between two blocks along a motion trajectory. As Figure 6 shown, in the first pattern matching, by searching for the most matching pair among pairs of two blocks in two different reference pictures (Ref0, Ref1) along the motion trajectory of the current block (Cur block), two motion vectors (MV0, MV1) are derived. Specifically, for the current block, the difference between the reconstructed image at the specified position in the first encoded reference picture (Ref0) specified by the candidate MV and the reconstructed image at the specified position in the second encoded reference picture (Ref1) specified by the symmetric MV obtained by scaling the above candidate MV by the display time interval is obtained, and the evaluation value is calculated using the obtained difference value. A candidate MV with the best evaluation value among multiple candidate MVs may be selected as the final MV.

[0195] Under the assumption of a continuous motion trajectory, the motion vectors (MV0, MV1) indicating two reference blocks are proportional to the temporal distances (TD0, TD1) between the current picture (Cur Pic) and the two reference pictures (Ref0, Ref1). For example, when the current picture is temporally located between the two reference pictures and the temporal distances from the current picture to the two reference pictures are equal, in the first pattern matching, a mirror-symmetric bidirectional motion vector is derived.

[0196] In the second pattern matching, pattern matching is performed between a template within the current picture (a block adjacent to the current block within the current picture (e.g., an upper and / or left adjacent block)) and a block within the reference picture. Therefore, in the second pattern matching, as the specified region for calculating the evaluation value for the above candidates, a block adjacent to the current block within the current picture is used.

[0197] Figure 7 It is a diagram for explaining an example of pattern matching (template matching) between a template within the current picture and a block within the reference picture. As Figure 7 shown, in the second pattern matching, by searching for the block in the reference picture (Ref0) that best matches the block adjacent to the current block (Cur block) within the current picture (Cur Pic), the motion vector of the current block is derived. Specifically, for the current block, the difference between the reconstructed image of the encoded region of both or one of the left adjacent and upper adjacent blocks and the reconstructed image at the equivalent position within the encoded reference picture (Ref0) specified by the candidate MV is derived, and the obtained difference value is used to calculate the evaluation value. Among the multiple candidate MVs, the candidate MV with the best evaluation value is selected as the best candidate MV.

[0198] Information indicating whether to adopt the FRUC mode (e.g., called the FRUC flag) is signaled at the CU level. In addition, in the case of adopting the FRUC mode (e.g., when the FRUC flag is true), information indicating the method of pattern matching (the first pattern matching or the second pattern matching) (e.g., called the FRUC mode flag) is signaled at the CU level. Additionally, the signaling of this information does not need to be limited to the CU level and can also be at other levels (e.g., sequence level, picture level, slice level, tile level, CTU level, or sub-block level).

[0199] Here, a mode of deriving a motion vector based on a model assuming uniform linear motion is described. This mode has a case called BIO (bi-directional optical flow).

[0200] Figure 8 It is a diagram for explaining a model assuming uniform linear motion. InFigure 8 Among them, (vx, vy) represents the velocity vector, and τ0 and τ1 respectively represent the temporal distances between the current picture (Cur Pic) and two reference pictures (Ref0, Ref1). (MVx0, M Vy0) represents the motion vector corresponding to the reference picture Ref0, and (MVx1, MVy1) represents the motion vector corresponding to the reference picture Ref1.

[0201] At this time, under the assumption of a uniform linear motion of the velocity vector (vx, vy), (MVx0, MVy0) and (MVx1, MVy1) are respectively represented as (vxτ0, vyτ0) and (-vxτ1, -vyτ1), and the following optical flow equation (1) holds.

[0202] [Equation 1]

[0203]

[0204] Here, I (k) represents the luminance value of the reference image k (k = 0, 1) after motion compensation. This optical flow equation means that the sum of (i) the temporal differential of the luminance value, (ii) the product of the horizontal velocity and the horizontal component of the spatial gradient of the reference image, and (iii) the product of the vertical velocity and the vertical component of the spatial gradient of the reference image is equal to zero. Based on the combination of this optical flow equation and Hermite interpolation, the motion vectors in block units obtained from a merge list or the like are corrected in pixel units.

[0205] In addition, the motion vector can also be derived on the decoder side by a method different from the derivation of the motion vector based on a model assuming uniform linear motion. For example, the motion vector can also be derived in sub-block units based on the motion vectors of multiple adjacent blocks.

[0206] Here, a mode of deriving the motion vector in sub-block units based on the motion vectors of multiple adjacent blocks will be described. This mode is the case called the affine motion compensation prediction mode.

[0207] Figure 9A is a diagram for explaining the derivation of the motion vector in sub-block units based on the motion vectors of multiple adjacent blocks. In Figure 9AAmong them, the current block includes 16 4×4 sub-blocks. Here, based on the motion vectors of adjacent blocks, the motion vector v0 of the upper left control point of the current block is derived, and based on the motion vectors of adjacent sub-blocks, the motion vector v1 of the upper right control point of the current block is derived. Moreover, using the two motion vectors v0 and v1, the motion vectors (vx, vy) of each sub-block within the current block are derived by the following formula (2).

[0208] [Equation 2]

[0209]

[0210] Here, x and y respectively represent the horizontal position and vertical position of the sub-block, and w represents a preset weight coefficient.

[0211] In such an affine motion compensation prediction mode, several modes in which the methods for deriving the motion vectors of the upper left and upper right control points are different may also be included. Information indicating such an affine motion compensation prediction mode (for example, called an affine flag) is signaled at the CU level. In addition, the signaling of the information indicating the affine motion compensation prediction mode is not limited to the CU level, and may also be other levels (for example, sequence level, picture level, slice level, tile level, CTU level, or sub-block level).

[0212] [Prediction control unit]

[0213] The prediction control unit 128 selects one of the intra-prediction signal and the inter-prediction signal, uses the selected signal as the prediction signal, and outputs it to the subtraction unit 104 and the addition unit 116.

[0214] Here, an example of deriving the motion vector of the coded object picture through the merge mode is described. Figure 9B It is a diagram for explaining the outline of the motion vector derivation process based on the merge mode.

[0215] First, a prediction MV list registering candidates of the prediction MV is generated. As candidates of the prediction MV, there are the MV of multiple coded blocks spatially located around the coded object block, that is, the spatially adjacent prediction MV, the MV of the block near the projection of the position of the coded object block in the coded reference picture, that is, the temporally adjacent prediction MV, the MV generated by combining the MV values of the spatially adjacent prediction MV and the temporally adjacent prediction MV, that is, the combined prediction MV, and the MV with a value of zero, that is, the zero prediction MV, etc.

[0216] Next, by selecting one prediction MV from the multiple prediction MVs registered in the prediction MV list, it is determined as the MV of the coded object block.

[0217] Furthermore, in the variable length coding unit, the merge_idx, which is a signal indicating which prediction MV is selected, is described in the stream and coded.

[0218] In addition, the predicted MVs registered in the predicted MV list described in Figure 9B are an example, and may also be a number different from the number in the figure, or a structure that does not include some types of the predicted MVs in the figure, or a structure with predicted MVs added other than the types of the predicted MVs in the figure.

[0219] In addition, the MVs of the coded object blocks derived through the merge mode may be used for the subsequent DMVR processing to determine the final MV.

[0220] Here, an example of determining the MV using the DMVR processing will be described.

[0221] Figure 9C is a conceptual diagram for explaining the outline of the DMVR processing.

[0222] First, the optimal MVP set for the processing target block is used as the candidate MV. According to the above candidate MV, reference pixels are obtained from the first reference picture of the processed pictures in the L0 direction and the second reference picture of the processed pictures in the L1 direction respectively, and a template is generated by taking the average of each reference pixel.

[0223] Next, using the above template, the peripheral areas of the candidate MVs in the first reference picture and the second reference picture are searched respectively, and the MV with the minimum cost is determined as the final MV. In addition, regarding the cost value, it is calculated using the difference values between the pixel values of the template and the pixel values of the search area and the MV values, etc.

[0224] In addition, in the encoding device and the decoding device, the outline of the processing described here is basically common.

[0225] In addition, even if it is not the processing itself described here, as long as it is a processing that can search the periphery of the candidate MV and derive the final MV, other processing can also be used.

[0226] Here, the mode of generating a predicted image using the LIC processing will be described.

[0227] Figure 9D is a diagram for explaining the outline of the predicted image generation method using the luminance correction processing based on the LIC processing.

[0228] First, the MV for obtaining the reference image corresponding to the coded object block from the reference picture of the coded picture is derived.

[0229] Next, for the coded object block, using the luminance pixel values of the coded neighboring and upper neighboring reference region and the luminance pixel values at the same position in the reference picture specified by the MV, information indicating how the luminance values change in the reference picture and the coded object picture is extracted, and a luminance correction parameter is calculated.

[0230] By performing a luminance correction process on the reference image in the reference picture specified by the MV using the above luminance correction parameter, a prediction image for the coded object block is generated.

[0231] In addition, Figure 9D the shape of the above neighboring reference region in is an example, and other shapes may also be used.

[0232] Furthermore, the process of generating a prediction image based on one reference picture is described here, but the same applies when generating a prediction image based on multiple reference pictures. After performing a luminance correction process on the reference images obtained from each reference picture in the same manner, a prediction image is generated.

[0233] As a method for determining whether to adopt the LIC process, for example, there is a method of using the lic_flag which is a signal indicating whether to adopt the LIC process. As a specific example, in the coding device, it is determined whether the coded object block belongs to a region where a luminance change has occurred. If it belongs to a region where a luminance change has occurred, the value 1 is set as the lic_flag and coding is performed using the LIC process. If it does not belong to a region where a luminance change has occurred, the value 0 is set as the lic_flag and coding is performed without using the LIC process. On the other hand, in the decoding device, by decoding the lic_flag described in the stream, decoding is performed by switching whether to adopt the LIC process according to its value.

[0234] As another method for determining whether to adopt the LIC process, for example, there is also a method of determining according to whether the LIC process has been adopted in the neighboring blocks. As a specific example, when the coded object block is in the merge mode, it is determined whether the neighboring coded blocks selected at the time of deriving the MV in the merge mode process have been coded using the LIC process, and according to the result, coding is performed by switching whether to adopt the LIC process. In addition, in the case of this example, the process in decoding is also exactly the same.

[0235] [Outline of the decoding device]

[0236] Next, an outline of the decoding device that can decode the coded signal (coded bitstream) output from the above coding device 100 will be described. Figure 10FIG. 0 is a block diagram showing the functional configuration of the decoding apparatus 200 according to Embodiment 1. The decoding apparatus 200 is a moving image / image decoding apparatus that decodes moving images / images in units of blocks.

[0237] As Figure 10 shown in FIG. 5, the decoding apparatus 200 includes an entropy decoding unit 202, an inverse quantization unit 204, an inverse transform unit 206, an addition unit 208, a block memory 210, a loop filter unit 212, a frame memory 214, an intra prediction unit 216, an inter prediction unit 218, and a prediction control unit 220.

[0238] The decoding apparatus 200 is implemented by, for example, a general-purpose processor and a memory. In this case, when a software program stored in the memory is executed by the processor, the processor functions as the entropy decoding unit 202, the inverse quantization unit 204, the inverse transform unit 206, the addition unit 208, the loop filter unit 212, the intra prediction unit 216, the inter prediction unit 218, and the prediction control unit 220. In addition, the decoding apparatus 200 may be implemented as one or more dedicated electronic circuits corresponding to the entropy decoding unit 202, the inverse quantization unit 204, the inverse transform unit 206, the addition unit 208, the loop filter unit 212, the intra prediction unit 216, the inter prediction unit 218, and the prediction control unit 220.

[0239] Hereinafter, each component included in the decoding apparatus 200 will be described.

[0240] [Entropy Decoding Unit]

[0241] The entropy decoding unit 202 performs entropy decoding on the encoded bitstream. Specifically, the entropy decoding unit 202, for example, arithmetic decodes the encoded bitstream into a binary signal. Next, the entropy decoding unit 202 de-binarizes the binary signal. Thereby, the entropy decoding unit 202 outputs the quantization coefficients to the inverse quantization unit 204 in units of blocks.

[0242] [Inverse Quantization Unit]

[0243] The inverse quantization unit 204 performs inverse quantization on the quantization coefficients of the decoding target block (hereinafter referred to as the current block) that is an input from the entropy decoding unit 202. Specifically, for the quantization coefficients of the current block, the inverse quantization unit 204 performs inverse quantization on each quantization coefficient based on the quantization parameter corresponding to the quantization coefficient. And the inverse quantization unit 204 outputs the inverse-quantized quantization coefficients (i.e., transform coefficients) of the current block to the inverse transform unit 206.

[0244] [Inverse Transform Unit]

[0245] The inverse transform unit 206 restores the prediction error by performing an inverse transform on the transform coefficients that are an input from the inverse quantization unit 204.

[0246] For example, in the case where the information read from the coded bitstream indicates the use of EMT or AMT (e.g., the AMT flag is true), the inverse transform unit 206 performs an inverse transform on the transform coefficients of the current block based on the information indicating the transform type read.

[0247] In addition, for example, in the case where the information read from the coded bitstream indicates the use of NSST, the inverse transform unit 206 applies an inverse re - transform to the transform coefficients.

[0248] [Addition unit]

[0249] The addition unit 208 reconstructs the current block by adding the prediction error, which is the input from the inverse transform unit 206, to the prediction sample, which is the input from the prediction control unit 220. And the addition unit 208 outputs the reconstructed block to the block memory 210 and the loop filter unit 212.

[0250] [Block memory]

[0251] The block memory 210 is a storage unit for storing blocks within the decoding target picture (hereinafter referred to as the current picture) that are referred to in intra - prediction. Specifically, the block memory 210 stores the reconstructed blocks output from the addition unit 208.

[0252] [Loop filter unit]

[0253] The loop filter unit 212 applies loop filtering to the block reconstructed by the addition unit 208 and outputs the filtered reconstructed block to the frame memory 214, the display device, etc.

[0254] In the case where the information indicating the on / off of ALF read from the coded bitstream indicates that ALF is on, one filter is selected from a plurality of filters based on the direction and activity of the local gradient, and the selected filter is applied to the reconstructed block.

[0255] [Frame memory]

[0256] The frame memory 214 is a storage unit for storing reference pictures used in inter - prediction, and is sometimes referred to as a frame buffer. Specifically, the frame memory 214 stores the reconstructed blocks filtered by the loop filter unit 212.

[0257] [Intra - prediction unit]

[0258] The intra prediction unit 216 performs intra prediction with reference to the blocks within the current picture stored in the block memory 210 based on the intra prediction mode decoded from the coded bitstream, thereby generating a prediction signal (intra prediction signal). Specifically, the intra prediction unit 216 generates an intra prediction signal by performing intra prediction with reference to the samples (e.g., luminance values, chrominance differences) of the blocks adjacent to the current block, and outputs the intra prediction signal to the prediction control unit 220.

[0259] In addition, when an intra prediction mode that refers to the luminance block is selected for the intra prediction of the chrominance block, the intra prediction unit 216 may also predict the chrominance component of the current block based on the luminance component of the current block.

[0260] Furthermore, when the information decoded from the coded bitstream indicates the adoption of PDPC, the intra prediction unit 216 corrects the pixel value after intra prediction based on the gradients of the reference pixels in the horizontal / vertical directions.

[0261] [Inter prediction unit]

[0262] The inter prediction unit 218 predicts the current block with reference to the reference pictures stored in the frame memory 214. The prediction is performed in units of the current block or sub-blocks (e.g., 4×4 blocks) within the current block. For example, the inter prediction unit 218 performs motion compensation using the motion information (e.g., motion vector) decoded from the coded bitstream, thereby generating an inter prediction signal for the current block or sub-block, and outputs the inter prediction signal to the prediction control unit 220.

[0263] In addition, when the information decoded from the coded bitstream indicates the adoption of the OBMC mode, the inter prediction unit 218 generates an inter prediction signal using not only the motion information of the current block obtained through motion estimation but also the motion information of the adjacent blocks.

[0264] Furthermore, when the information decoded from the coded bitstream indicates the adoption of the FRUC mode, the inter prediction unit 218 performs motion estimation according to the pattern matching method (bidirectional matching or template matching) decoded from the coded stream, thereby deriving the motion information. And the inter prediction unit 218 performs motion compensation using the derived motion information.

[0265] In addition, the inter prediction unit 218 derives a motion vector based on a model assuming uniform linear motion when adopting the BIO mode. In addition, when the information decoded from the coded bitstream indicates the adoption of the affine motion compensation prediction mode, the inter prediction unit 218 derives a motion vector in units of sub-blocks based on the motion vectors of multiple adjacent blocks.

[0266] [Prediction control unit]

[0267] The prediction control unit 220 selects one of the intra-prediction signal and the inter-prediction signal, and outputs the selected signal as the prediction signal to the addition unit 208.

[0268] (Embodiment 2)

[0269] [Overview]

[0270] The encoding device according to this embodiment is an encoding device that encodes blocks of an image, and includes a processor and a memory connected to the processor; the processor uses the memory to perform the following processing: writing a parameter into a bitstream, and determining whether the written parameter is equal to a specified value; when the written parameter is equal to the specified value, predicting block segmentation information, and using the predicted block segmentation information, dividing a block into a plurality of sub-blocks; when the written parameter is not equal to the specified value, not using the predicted block segmentation information, but dividing the block into a plurality of sub-blocks; encoding the sub-blocks included in the plurality of sub-blocks through an encoding process including a transform process and / or a prediction process.

[0271] Thus, when the parameter is equal to the specified value, block segmentation information can be predicted. By dividing the block using the predicted block segmentation information, the amount of code related to the block segmentation information can be reduced, and the compression efficiency can be improved.

[0272] For example, in the encoding device according to this embodiment, the process of predicting the block segmentation information may also include a process of generating block segmentation information using the block information of an encoded block.

[0273] Thus, the block segmentation information can be predicted using the block information of the encoded block, the prediction accuracy of the block segmentation information can be improved, and the amount of code can be reduced.

[0274] The decoding device according to this embodiment is a decoding device that decodes blocks of an image, and includes a processor and a memory; the processor uses the memory to perform the following processing: parsing a parameter from a bitstream; determining whether the parsed parameter is equal to a specified value; when the parsed parameter is equal to the specified value, predicting block segmentation information, and using the predicted block segmentation information to divide a block into a plurality of sub-blocks; when the written parameter is not equal to the specified value, not using the predicted block segmentation information but dividing the block into a plurality of sub-blocks; decoding the sub-blocks included in the plurality of sub-blocks through a decoding process including an inverse transform process and / or a prediction process.

[0275] Thus, when the parameter is equal to the specified value, block segmentation information can be predicted. By dividing the block using the predicted block segmentation information, the amount of code related to the block segmentation information can be reduced, and the compression efficiency can be improved.

[0276] For example, in the decoding apparatus according to the present embodiment, the process of predicting the block segmentation information may also include a process of generating the block segmentation information using the block information of the decoded block.

[0277] Thereby, it is possible to predict the block segmentation information using the block information of the decoded block, improve the prediction accuracy of the block segmentation information, and reduce the code amount.

[0278] In addition, these inclusive or specific forms may also be implemented by a system, a method, an integrated circuit, a computer program, or a recording medium such as a computer-readable CD-ROM, or may be implemented by any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0279] Hereinafter, a method for encoding an image and a method for decoding the image will be described according to embodiments as shown in Figure 11 and Figure 12 respectively. In addition, an apparatus for encoding an image and an apparatus for decoding the image will be described according to embodiments as shown in Figure 35 and Figure 36 respectively.

[0280] [Encoding Process]

[0281] Figure 11 This represents an example of the image encoding process according to Embodiment 2.

[0282] As a first step S1001, parameters are written to the bitstream. Figure 37 This represents the writable position of the above parameters in the compressed image bitstream. The written parameters include one or more parameters for identifying whether the prediction of the block segmentation information is valid. For example, the one or more parameters may include a flag indicating whether the prediction of the block segmentation information is valid.

[0283] Next, in step S1002, it is determined whether the written parameter is equal to a specified value.

[0284] If the written parameter is equal to the specified value (Yes in S1002), then in step S1003, the block segmentation information is predicted, and then, in step S1004, the block is divided into a plurality of sub-blocks using the predicted block segmentation information. For example, the predicted block segmentation information is used as the initial block segmentation information. And the initial block segmentation information is updated to the final block segmentation information.

[0285] The final block segmentation information is determined to have the minimum rate - distortion cost among other available block segmentation information in intra - frame and inter - frame prediction processing. By writing the differential information between the predicted block segmentation information and the final block segmentation information into the bitstream, in the decoder, the corresponding final block segmentation information is generated based on the predicted block segmentation information. By encoding the differential information instead of the final block segmentation information, the bits required for signaling the final block segmentation information can be reduced.

[0286] As a segmentation method, for example, binary tree segmentation as shown in b1) and b2) of Figure 41 can be performed, or quadtree segmentation as shown in q1) and q2) of Figure 41 , or multi - tree cutting / segmentation as shown in m1) and m2) of Figure 41 , or non - square / non - rectangular segmentation as shown in n1) of Figure 41 . As the geometry (shape and / or size) of the sub - blocks, there can be various geometries such as non - symmetric binary tree segmentation as shown in b2) of Figure 41 , non - symmetric quadtree segmentation as shown in q2) of Figure 41 , multi - tree cutting with different sizes as shown in m1) of Figure 41 , or non - square / non - rectangular segmentation as shown in n1) of Figure 41 .

[0287] Here, the block segmentation information can be predicted according to the block information of the encoded block (e.g., block partition structure, intra - frame prediction mode or inter - frame prediction mode, intra - frame prediction direction, motion vector, reference picture, quantization parameter, and segmentation depth, etc.). The block is segmented into multiple sub - blocks using the block segmentation information. As shown in Figure 38 , if different block segmentation information is used, the height, width, or shape of the multiple sub - blocks as the result of block segmentation is also different.

[0288] As the predicted block partition structure of the current block, the block partition structure of the encoded block can be used as it is.

[0289] It is also possible to combine the block partition structures of two or more encoded blocks (e.g., as shown in Figure 39 , using the block partition structure of the upper block for the upper half and the block partition structure of the left block for the remaining half) to derive a new block partition structure as the predicted block partition structure of the current block.

[0290] As a method for selecting the encoded block, as an example, there is a method of selecting an encoded block with the same intra - frame / inter - frame prediction mode as the current block. Specifically, if the current block is an inter - frame prediction block, one or more encoded blocks encoded using inter - frame prediction are selected.

[0291] It is also possible to correct the block partition structure of an encoded block (e.g., as shown in Figure 40 ), and use a block partition structure with a shallower split depth to derive a new block partition structure as the predicted block partition structure of the current block.

[0292] The block split information may also be a parameter set indicating whether to split the block horizontally or vertically. In addition, the block split information may also be a parameter set including the specified block width and specified block height of all sub-blocks within the block.

[0293] The predicted block split information may also vary according to the information on the intra prediction direction of the encoded block. For example, in order to predict whether to split the current block vertically or horizontally into smaller blocks, the information on the intra prediction direction at a specific adjacent block position may also be used. For example, if it is determined that the information on the intra prediction direction of the upper adjacent block is vertical or close to vertical, block split information including vertical splitting may be predicted for the current block. Similarly, if it is determined that the information on the intra prediction direction of the left adjacent block is horizontal or close to horizontal, block split information including horizontal splitting may be predicted for the current block.

[0294] The block split information may also be a parameter set including an index for selecting one split structure candidate from a specified list of block partition structure candidates. At this time, the block partition structure visually indicates the geometry of all sub-blocks within the block, as shown in Figure 38 .

[0295] The block split information may also be predicted according to the intra / inter prediction mode of the encoded block. For example, when the prediction mode of the encoded block is the intra prediction mode, specified block split information for splitting the block into multiple sub-blocks with a relatively small block size may be predicted. In addition, for example, when the prediction mode of the encoded block is the inter prediction mode, other specified block split information for splitting the block into multiple sub-blocks with a relatively large block size may be predicted.

[0296] The block split information may also be predicted according to the motion vector of the encoded block. For example, when the difference between the motion vector of the encoded block and the motion vector of the current block is greater than a specified threshold, specified block split information for splitting the block into multiple sub-blocks with a relatively small block size may be predicted. On the other hand, when the difference between the motion vector of the encoded block and the motion vector of the current block is below the specified threshold, other specified block split information for splitting the block into multiple sub-blocks with a relatively large block size may be predicted.

[0297] The block splitting information can also be predicted according to the quantization parameter of the encoded block. For example, in the case where the value of the quantization parameter of the encoded block is smaller than the specified value, it is possible to predict the specified block splitting information for splitting the block into a plurality of sub-blocks with a relatively small block size. In addition, for example, in the case where the value of the quantization parameter of the encoded block is equal to or greater than the specified value, it is possible to predict other specified block splitting information for splitting the block into a plurality of sub-blocks with a relatively large block size.

[0298] The block splitting information can also be predicted according to the reference picture information of the encoded block. For example, in the case where the reference picture of the encoded block is temporally close to the current picture, or in the case where the plurality of reference pictures of the plurality of encoded blocks are similar to each other, it is possible to predict the specified block splitting information for splitting the block into a plurality of sub-blocks with a relatively large block size. In the case where the reference picture of the encoded block is not temporally close to the current picture or in the case where the plurality of reference pictures of the plurality of encoded blocks are not similar to each other, it is possible to predict other specified block splitting information for splitting the block into a plurality of sub-blocks with a relatively small block size.

[0299] The block splitting information can also be predicted according to the splitting depth of the encoded block. For example, in the case where the splitting depth of the encoded block is greater than the specified value (for example, 4), it is possible to predict the specified block splitting information for splitting the block into a plurality of sub-blocks with a relatively small block size. In the case where the splitting depth of the encoded block is equal to or less than the specified value (for example, in the case where the splitting depth is equal to 2), it is possible to predict other specified block splitting information for splitting the block into a plurality of sub-blocks with a relatively large block size.

[0300] The block splitting information can also be predicted according to the splitting information of the encoded block of a frame different from the current frame. For example, the block splitting information (including split information) for the current block or the split information of the current block can be predicted based on the encoded blocks of the encoded frames different from the current frame (for example, collocated blocks, the last encoded block, or the encoded blocks determined by the motion vector, etc.).

[0301] In the case where the written parameter is not equal to the specified value (No in S1002), in step S1005, the block is split into a plurality of sub-blocks without using the predicted block splitting information. As a splitting method, for example, binary tree splitting as shown in b1) and b2) of Figure 41 or quadtree splitting as shown in q1) and q2) of Figure 41 or multi-tree cutting / splitting as shown in m1) and m2) of Figure 41 or non-square / non-rectangular splitting as shown in n1) of Figure 41 can be performed. As the geometry (shape and / or size) of the sub-blocks, like Figure 41the asymmetric binary tree division shown in b2), Figure 41 the asymmetric quadtree division shown in q2), Figure 41 the multiway tree cut of different sizes shown in m1), or Figure 41 There are various geometric figures like the non-square / non-rectangular division shown in n1).

[0302] In step S1006, the sub-blocks included in the multiple sub-blocks are encoded through encoding processing. Here, the encoding processing includes transform processing and / or prediction processing. The transform processing can be performed for each block of the same degree as the size of the sub-block.

[0303] [Encoding device]

[0304] Figure 35 It is a block diagram showing the configuration of the video / image encoding device according to the embodiment.

[0305] The video encoding device 25000 is a device that encodes the input video / image bitstream for each block and generates an encoded output bitstream. As Figure 35 shown, it includes a transform unit 25001, a quantization unit 25002, an inverse quantization unit 25003, an inverse transform unit 25004, a block memory 25005, a frame memory 25006, an intra prediction unit 25007, an inter prediction unit 25008, an entropy encoding unit 25009, and a block division information determination unit 25010.

[0306] The input video is input to the adder, and the added value is output to the transform unit 25001. The transform unit 25001 transforms the added value into frequency coefficients based on the block division information derived by the block division information determination unit 25010, and outputs the obtained frequency coefficients to the quantization unit 25002. The quantization unit 25002 quantizes the input frequency coefficients and outputs the obtained quantization values to the inverse quantization unit 25003 and the entropy encoding unit 25009.

[0307] The inverse quantization unit 25003 inverse quantizes the quantization values output from the quantization unit 25002 and outputs the frequency coefficients to the inverse transform unit 25004. The inverse transform unit 25004 performs an inverse frequency transform on the frequency coefficients based on the block division information derived by the block division information determination unit 25010 to transform them into sample values of the bitstream, and outputs the obtained sample values to the adder.

[0308] The adder adds the predicted value of the video / image output from the intra prediction unit 25007 / inter prediction unit 25008 to the sample value of the bitstream output from the inverse transform unit 25004, and outputs the obtained added value to the block memory 25005 or the frame memory 25006 for future prediction.

[0309] The block segmentation information determination unit 25010 derives block segmentation information and parameters related to the block segmentation information by collecting block information from the block memory 25005 or the frame memory 25006. If the block segmentation information derived here is used, the block is segmented into a plurality of sub-blocks.

[0310] The intra prediction unit 25007 / inter prediction unit 25008 retrieves the reconstructed image stored in the block memory 25005 or the reconstructed image in the frame memory 25006 based on the block segmentation information derived by the block segmentation information determination unit 25010, and speculates, for prediction, an image area that is most similar to the input image, for example.

[0311] The entropy encoding unit 25009 encodes the quantization values output from the quantization unit 25002, encodes the parameters from the block segmentation information determination unit 25010, and outputs a bitstream.

[0312] [Decoding process]

[0313] Figure 12 Shows an example of the video decoding process related to Embodiment 2.

[0314] As the first step S2001, parameters are parsed from the bitstream. Figure 37 Shows the parsable position of the above parameters in the compressed video bitstream. The parsed parameters include one or more parameters for identifying whether the prediction of the block segmentation information is valid. For the one or more parameters, if a flag is included, for example, it can indicate whether the prediction of the block segmentation information is valid.

[0315] Next, in step S2002, it is determined whether the parsed parameters are equal to a specified value.

[0316] When the parsed parameters are equal to the specified value (Yes in S2002), in step S2003, the block segmentation information is predicted, and then, in step S2004, the block is segmented into a plurality of sub-blocks using the predicted block segmentation information. The predicted block segmentation information is used as the initial block segmentation information, for example. And the initial block segmentation information is updated to the final block segmentation information according to the differential information between the predicted block segmentation information and the final block segmentation information parsed from the bitstream. As a segmentation method, for example, binary tree segmentation as shown in Figure 41 b1) and b2) below, or quadtree segmentation as shown in Figure 41 q1) and q2) below, or multi-tree cutting / segmentation as shown in Figure 41 m1) and m2) below, or non-square / non-rectangular segmentation as shown in Figure 41 n1) below. As the geometry (shape and / or size) of the sub-block, like Figure 41The asymmetric binary tree segmentation shown in b2), such as Figure 41 the asymmetric quadtree segmentation shown in q2), such as Figure 41 the multiway tree cutting with different sizes shown in m1), or such as Figure 41 the non-square / non-rectangular segmentation shown in n1), there can be various geometric shapes.

[0317] Here, regarding the block segmentation information, it can be predicted according to the block information of the decoded block (for example, block partition structure, intra prediction mode or inter prediction mode, intra prediction direction, motion vector, reference picture, quantization parameter, and segmentation depth, etc.). The block is segmented into multiple sub-blocks using the block segmentation information. As Figure 38 shown, if different block segmentation information is used, the height, width, or shape of the multiple sub-blocks as the result of the block segmentation are also different.

[0318] As the predicted block partition structure of the current block, the block partition structure of the decoded block can be used as it is.

[0319] It is also possible to combine the block partition structures of two or more decoded blocks (for example, as Figure 39 shown, use the block partition structure of the upper block for the upper half and the block partition structure of the left block for the remaining half), and derive a new block partition structure as the predicted block partition structure of the current block. As a method for selecting the decoded block, as an example, there is a method of selecting a decoded block with the same intra / inter prediction mode as the current block. Specifically, if the current block is an inter prediction block, one or more decoded blocks decoded using inter prediction are selected.

[0320] It is also possible to correct the block partition structure of the decoded block (for example, as Figure 40 shown, use the block partition structure with a shallower segmentation depth), and derive a new block partition structure as the predicted block partition structure of the current block.

[0321] The block segmentation information can also be a parameter set indicating whether to segment the block horizontally or vertically. In addition, the block segmentation information can also be a parameter set including the specified block width and specified block height of all sub-blocks within the block.

[0322] The predicted block segmentation information can also be different according to the information of the intra prediction direction of the decoded block. For example, in order to predict whether to segment the current block vertically or horizontally into smaller blocks, the information of the intra prediction direction at a specific adjacent block position can also be used. For example, if it is determined that the information of the intra prediction direction of the upper adjacent block is vertical or close to vertical, for the current block, block segmentation information including vertical segmentation can be predicted. Similarly, if it is determined that the information of the intra prediction direction of the left adjacent block is horizontal or close to horizontal, for the current block, block segmentation information including horizontal segmentation can be predicted.

[0323] The block segmentation information may also be a parameter set including an index for selecting one candidate segmentation structure from a candidate list constructed from a specified block partition. At this time, the block partition structure is as shown in Figure 38 and visually indicates the geometry of all sub-blocks within the block.

[0324] The block segmentation information may also be predicted according to the intra / inter-frame prediction mode of the decoded block. For example, when the prediction mode of the decoded block is the intra-frame prediction mode, it is possible to predict specified block segmentation information that divides the block into a plurality of sub-blocks with a relatively small block size. In addition, for example, when the prediction mode of the decoded block is the inter-frame prediction mode, it is possible to predict other specified block segmentation information that divides the block into a plurality of sub-blocks with a relatively large block size.

[0325] The block segmentation information may also be predicted according to the motion vector of the decoded block. For example, when the difference between the motion vector of the decoded block and the motion vector of the current block is greater than a specified threshold, it is possible to predict specified block segmentation information that divides the block into a plurality of sub-blocks with a relatively small block size. On the other hand, when the difference between the motion vector of the decoded block and the motion vector of the current block is below the specified threshold, it is possible to predict other specified block segmentation information that divides the block into a plurality of sub-blocks with a relatively large block size.

[0326] The block segmentation information may also be predicted according to the quantization parameter of the decoded block. For example, when the value of the quantization parameter of the decoded block is smaller than a specified value, it is possible to predict specified block segmentation information that divides the block into a plurality of sub-blocks with a relatively small block size. In addition, for example, when the value of the quantization parameter of the decoded block is above the specified value, it is possible to predict other specified block segmentation information that divides the block into a plurality of sub-blocks with a relatively large block size.

[0327] The block segmentation information may also be predicted according to the reference picture information of the decoded block. For example, when the reference picture of the decoded block is temporally close to the current picture, or when the multiple reference pictures of multiple decoded blocks are similar to each other, it is possible to predict specified block segmentation information that divides the block into a plurality of sub-blocks with a relatively large block size. When the reference picture of the decoded block is not temporally close to the current picture or when the multiple reference pictures of multiple decoded blocks are not similar to each other, it is possible to predict other specified block segmentation information that divides the block into a plurality of sub-blocks with a relatively small block size.

[0328] The block splitting information can also be predicted according to the splitting depth of the decoded blocks. For example, when the splitting depth of the decoded block is greater than a specified value (e.g., 4), it is possible to predict the specified block splitting information for splitting the block into a plurality of sub-blocks with a relatively small block size. When the splitting depth of the decoded block is below the specified value (e.g., when the splitting depth is equal to 2), it is possible to predict other specified block splitting information for splitting the block into a plurality of sub-blocks with a relatively large block size.

[0329] The block splitting information can also be predicted according to the splitting information of the decoded blocks of a frame different from the current frame. For example, the block splitting information (including separation information) for the current block or the separation information of the current block can be predicted based on the decoded blocks of a decoded frame different from the current frame (e.g., collocated block, last decoded block, or decoded block determined by a motion vector, etc.).

[0330] When the written parameter is not equal to the specified value (No in S2002), in step S2005, instead of using the predicted block splitting information, the block is split into a plurality of sub-blocks. As a splitting method, for example, binary tree splitting as shown in b1) and b2) below, or quadtree splitting as shown in q1) and q2) below, or multi-tree cutting / splitting as shown in m1) and m2) below, or non-square / non-rectangular splitting as shown in n1) below can be performed. Figure 41 As the splitting method, for example, binary tree splitting as shown in b1) and b2) below, or quadtree splitting as shown in q1) and q2) below, or multi-tree cutting / splitting as shown in m1) and m2) below, or non-square / non-rectangular splitting as shown in n1) below can be performed. Figure 41 As the splitting method, for example, binary tree splitting as shown in b1) and b2) below, or quadtree splitting as shown in q1) and q2) below, or multi-tree cutting / splitting as shown in m1) and m2) below, or non-square / non-rectangular splitting as shown in n1) below can be performed. Figure 41 As the splitting method, for example, binary tree splitting as shown in b1) and b2) below, or quadtree splitting as shown in q1) and q2) below, or multi-tree cutting / splitting as shown in m1) and m2) below, or non-square / non-rectangular splitting as shown in n1) below can be performed. Figure 41 As the splitting method, for example, binary tree splitting as shown in b1) and b2) below, or quadtree splitting as shown in q1) and q2) below, or multi-tree cutting / splitting as shown in m1) and m2) below, or non-square / non-rectangular splitting as shown in n1) below can be performed. As the geometry (shape and / or size) of the sub-blocks, there can be various geometries such as asymmetric binary tree splitting as shown in b2) below, asymmetric quadtree splitting as shown in q2) below, multi-tree cutting with different sizes as shown in m1) below, or non-square / non-rectangular splitting as shown in n1) below. Figure 41 As the splitting method, for example, binary tree splitting as shown in b1) and b2) below, or quadtree splitting as shown in q1) and q2) below, or multi-tree cutting / splitting as shown in m1) and m2) below, or non-square / non-rectangular splitting as shown in n1) below can be performed. As the geometry (shape and / or size) of the sub-blocks, there can be various geometries such as asymmetric binary tree splitting as shown in b2) below, asymmetric quadtree splitting as shown in q2) below, multi-tree cutting with different sizes as shown in m1) below, or non-square / non-rectangular splitting as shown in n1) below. Figure 41 As the splitting method, for example, binary tree splitting as shown in b1) and b2) below, or quadtree splitting as shown in q1) and q2) below, or multi-tree cutting / splitting as shown in m1) and m2) below, or non-square / non-rectangular splitting as shown in n1) below can be performed. As the geometry (shape and / or size) of the sub-blocks, there can be various geometries such as asymmetric binary tree splitting as shown in b2) below, asymmetric quadtree splitting as shown in q2) below, multi-tree cutting with different sizes as shown in m1) below, or non-square / non-rectangular splitting as shown in n1) below. Figure 41 As the splitting method, for example, binary tree splitting as shown in b1) and b2) below, or quadtree splitting as shown in q1) and q2) below, or multi-tree cutting / splitting as shown in m1) and m2) below, or non-square / non-rectangular splitting as shown in n1) below can be performed. As the geometry (shape and / or size) of the sub-blocks, there can be various geometries such as asymmetric binary tree splitting as shown in b2) below, asymmetric quadtree splitting as shown in q2) below, multi-tree cutting with different sizes as shown in m1) below, or non-square / non-rectangular splitting as shown in n1) below. Figure 41 As the splitting method, for example, binary tree splitting as shown in b1) and b2) below, or quadtree splitting as shown in q1) and q2) below, or multi-tree cutting / splitting as shown in m1) and m2) below, or non-square / non-rectangular splitting as shown in n1) below can be performed. As the geometry (shape and / or size) of the sub-blocks, there can be various geometries such as asymmetric binary tree splitting as shown in b2) below, asymmetric quadtree splitting as shown in q2) below, multi-tree cutting with different sizes as shown in m1) below, or non-square / non-rectangular splitting as shown in n1) below.

[0331] In step S2006, the sub-blocks included in the plurality of sub-blocks are decoded through a decoding process. Here, in this decoding process, an inverse transformation process and / or a prediction process are included. The inverse transformation process can be performed on blocks of the same size as the sub-blocks.

[0332] [Decoding device]

[0333] Figure 36 is a block diagram showing the configuration of the video / image decoding device according to the embodiment.

[0334] The video decoding device 26000 is a device that decodes an encoded input bitstream for each block and outputs a video / image.Figure 36 As shown, it includes an entropy decoding unit 26001, an inverse quantization unit 26002, an inverse transform unit 26003, a block memory 26004, a frame memory 26005, an intra-frame prediction unit 26006, an inter-frame prediction unit 26007, and a block segmentation information determination unit 26008.

[0335] The encoded input bitstream is input to the entropy decoding unit 26001. After the encoded input bitstream is input to the entropy decoding unit 26001, the entropy decoding unit 26001 decodes the encoded input bitstream, outputs parameters to the block segmentation information determination unit 26008, and outputs decoded values to the inverse quantization unit 26002.

[0336] The inverse quantization unit 26002 performs inverse quantization on the decoded values and outputs frequency coefficients to the inverse transform unit 26003. The inverse transform unit 26003 performs an inverse frequency transform on the frequency coefficients based on the block segmentation information derived by the block segmentation information determination unit 26008, thereby transforming them into sample values, and outputs the obtained sample values to an adder.

[0337] The adder adds the obtained sample values to the predicted values of the image / video output from the intra-frame prediction unit 26006 / inter-frame prediction unit 26007, outputs the obtained added values to a display, and outputs them to the block memory 26004 or the frame memory 26005 for future prediction.

[0338] The block segmentation information determination unit 26008 derives block segmentation information by collecting block information from the block memory 26004 or the frame memory 26005 and using the decoding parameters from the entropy decoding unit 26001. If the block segmentation information derived here is used, the block is divided into multiple sub-blocks.

[0339] Furthermore, the intra-frame prediction unit 26006 / inter-frame prediction unit 26007 retrieves the image / video stored in the block memory 26004 or the reconstructed image / video in the frame memory 26005 based on the block segmentation information derived from the block segmentation information determination unit 26008, and speculates, for example, the image / video region most similar to the image / video of the decoded block for prediction.

[0340] (Embodiment 3)

[0341] [Summary]

[0342] The encoding device according to the present embodiment is an encoding device that encodes blocks of an image, and includes a processor and a memory connected to the processor; the processor performs the following processing using the memory: writing parameters into a bitstream; using the written parameters, selecting at least one encoded block from a plurality of encoded blocks, reading out block information from the selected at least one encoded block, using the read out block information, dividing a current block into a plurality of sub-blocks, and encoding the sub-blocks included in the plurality of sub-blocks through an encoding process including a transform process and / or a prediction process.

[0343] Thereby, it is possible to adaptively select an encoded block for dividing the current block using the parameters. By dividing the block into a plurality of sub-blocks using the block information of the encoded block thus selected, it is possible to reduce the amount of code related to the block division information and improve the compression efficiency.

[0344] For example, in the encoding device according to the present embodiment, it may also be that the current block and the plurality of encoded blocks are different blocks, and at least one of the plurality of encoded blocks is included in the same frame as the current block or in another frame different from the frame of the current block.

[0345] Thereby, it is possible to select an encoded block for block division from among a plurality of mutually different encoded blocks, and it is possible to divide the current block using block information more suitable for block division. As a result, it is possible to reduce the amount of code related to the block division information and improve the compression efficiency.

[0346] For example, in the encoding device according to the present embodiment, it may also be that the read out block information includes at least one of information related to a block partition structure, an intra prediction mode or an inter prediction mode, an intra prediction direction, a motion vector, a reference picture, a quantization parameter, and a division depth.

[0347] Thereby, it is possible to use appropriate information as the block information, and it is possible to divide the current block using block information more suitable for block division. As a result, it is possible to reduce the amount of code related to the block division information and improve the compression efficiency.

[0348] The decoding device according to the present embodiment is a decoding device that decodes blocks of an image, and includes a processor and a memory; the processor performs the following processing using the memory: parsing parameters from a bitstream; determining whether the parsed parameters are equal to a specified value; in the case where the parsed parameters are equal to the specified value, predicting block division information, and using the predicted block division information, dividing a block into a plurality of sub-blocks; in the case where the written parameters are not equal to the specified value, not using the predicted block division information, but dividing the block into a plurality of sub-blocks; and decoding the sub-blocks included in the plurality of sub-blocks through a decoding process including an inverse transform process and / or a prediction process.

[0349] Thus, it is possible to adaptively select decoded blocks for segmenting a current block using parameters. By segmenting the block into a plurality of sub-blocks using block information of the decoded blocks thus selected, it is possible to reduce the amount of code related to block segmentation information and improve compression efficiency.

[0350] For example, in the decoding apparatus according to the present embodiment, it may be that the current block and the decoded block are different blocks from each other, and at least one of the decoded blocks is included in the same frame as the current block or in another frame different from the frame of the current block.

[0351] Thus, it is possible to select a decoded block for block segmentation from among a plurality of mutually different decoded blocks, and it is possible to segment the current block using block information more suitable for block segmentation. As a result, it is possible to reduce the amount of code related to block segmentation information and improve compression efficiency.

[0352] For example, in the decoding apparatus according to the present embodiment, it may be that the read block information includes at least one of information related to a block partitioning structure, an intra prediction mode or an inter prediction mode, an intra prediction direction, a motion vector, a reference picture, a quantization parameter, and a segmentation depth.

[0353] Thus, it is possible to use appropriate information as block information, and it is possible to segment the current block using block information more suitable for block segmentation. As a result, it is possible to reduce the amount of code related to block segmentation information and improve compression efficiency.

[0354] In addition, these inclusive or specific forms may also be implemented by a system, a method, an integrated circuit, a computer program, or a recording medium such as a computer-readable CD-ROM, or may be implemented by any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0355] Hereinafter, methods for encoding and decoding an image will be described according to embodiments as Figure 13 and Figure 14 respectively shown.

[0356] [Encoding process]

[0357] Figure 13 An example of an image encoding process according to Embodiment 3 is shown.

[0358] As a first step S3001, parameters are written to a bitstream. Figure 37 Indicates a position where the above parameters can be written in the compressed image bitstream. The written parameters include one or more parameters for selecting one or more encoded blocks or block information from a predetermined candidate list.

[0359] Next, in step S3002, at least one encoded block is selected from among the plurality of encoded blocks using the written parameters. Here, the at least one encoded block is a block included in the same frame as the current block (e.g., an adjacent block of the current block), or a block included in a frame different from the frame including the current block (e.g., a block at the same position as the current block, or a motion-compensated block whose position is obtained using the motion vector of the current block, or the last encoded block included in the latest encoded frame different from the current frame).

[0360] In step S3003, block information is read out from the selected encoded block.

[0361] Next, in step S3004, the current block is divided into a plurality of sub-blocks using the read-out block information. Figure 38 An example of dividing the current block into a plurality of sub-blocks using the read-out block information is shown.

[0362] In order to divide a block into sub-blocks, block division information of the block is derived. Here, the block division information is derived according to the block information of the encoded block (e.g., block partitioning structure, intra prediction mode or inter prediction mode, intra prediction direction, motion vector, reference picture, quantization parameter, and division depth, etc.). The block is divided into a plurality of sub-blocks using the block division information. As Figure 38 shown, if different block division information is used, the height, width, or shape of the plurality of sub-blocks as the result of block division also differ.

[0363] As the block partitioning structure of the current block, the block partitioning structure of the selected encoded block can be used as it is.

[0364] It is also possible to combine the block partitioning structures of two or more selected encoded blocks (e.g., as Figure 39 shown, use the block partitioning structure of the upper block for the upper half and the block partitioning structure of the left block for the remaining half) to derive a new block partitioning structure as the block partitioning structure of the current block.

[0365] It is also possible to correct the block partitioning structure of the selected encoded block (e.g., as Figure 40 shown, use a block partitioning structure with a shallower division depth) to derive a new block partitioning structure as the block partitioning structure of the current block.

[0366] The block division information may also be a parameter set indicating whether to divide the block horizontally or vertically. In addition, the block division information may also be a parameter set including a specified block width and a specified block height of all sub-blocks within the block.

[0367] The block segmentation information may also vary according to the information on the intra prediction direction of the selected coded block. For example, in order to determine whether to vertically or horizontally divide the current block into smaller blocks, the information on the intra prediction direction at a specific adjacent block position may also be used. For example, if it is determined that the information on the intra prediction direction of the upper adjacent block is vertical or close to vertical, for the current block, block segmentation information including vertical division may be derived. Similarly, if it is determined that the information on the intra prediction direction of the left adjacent block is horizontal or close to horizontal, for the current block, block segmentation information including horizontal division may be derived.

[0368] The block segmentation information may also be a parameter set including an index for selecting one segmentation structure candidate from a candidate list constructed from a specified block partition. At this time, the block partition structure visually presents the geometry of all sub-blocks within the block as shown in Figure 38 and

[0369] The block segmentation information may also be derived according to the intra / inter prediction mode of the selected coded block. For example, when the prediction mode of the selected coded block is the intra prediction mode, specified block segmentation information for dividing the block into multiple sub-blocks with a relatively small block size may be derived. In addition, for example, when the prediction mode of the selected coded block is the inter prediction mode, other specified block segmentation information for dividing the block into multiple sub-blocks with a relatively large block size may be derived.

[0370] The block segmentation information may also be derived according to the motion vector of the selected coded block. For example, when the difference between the motion vector of the selected coded block and the motion vector of the current block is greater than a specified threshold, specified block segmentation information for dividing the block into multiple sub-blocks with a relatively small block size may be derived. On the other hand, when the difference between the motion vector of the selected coded block and the motion vector of the current block is less than or equal to the specified threshold, other specified block segmentation information for dividing the block into multiple sub-blocks with a relatively large block size may be derived.

[0371] The block segmentation information may also be derived according to the quantization parameter of the selected coded block. For example, when the value of the quantization parameter of the selected coded block is smaller than a specified value, specified block segmentation information for dividing the block into multiple sub-blocks with a relatively small block size may be derived. In addition, for example, when the value of the quantization parameter of the selected coded block is greater than or equal to the specified value, other specified block segmentation information for dividing the block into multiple sub-blocks with a relatively large block size may be derived.

[0372] The block segmentation information can also be derived according to the reference picture information of the selected coded blocks. For example, when the reference picture of the selected coded block is temporally close to the current picture or the reference pictures of the multiple selected coded blocks are similar to each other, the specified block segmentation information for dividing the block into multiple sub-blocks with a relatively large block size can be derived. When the reference picture of the selected coded block is not temporally close to the current picture or the reference pictures of the multiple selected coded blocks are not similar to each other, other specified block segmentation information for dividing the block into multiple sub-blocks with a relatively small block size can be derived.

[0373] The block segmentation information can also be derived according to the segmentation depth of the selected coded blocks. For example, when the segmentation depth of the selected coded block is greater than a specified value (e.g., 4), the specified block segmentation information for dividing the block into multiple sub-blocks with a relatively small block size can be derived. When the segmentation depth of the selected coded block is below the specified value (e.g., when the segmentation depth is equal to 2), other specified block segmentation information for dividing the block into multiple sub-blocks with a relatively large block size can be derived.

[0374] The block segmentation information can also be derived according to the segmentation information of the coded blocks in a frame different from the current frame. For example, the block segmentation information (including separation information) for the current block or the separation information of the current block can be derived based on the block information of the coded blocks in a coded frame different from the current frame (e.g., collocated blocks, the last encoded block, or the coded block determined by the motion vector).

[0375] In step S3005, the sub-blocks included in the multiple sub-blocks are encoded through an encoding process. Here, the encoding process includes a transform process and / or a prediction process. The transform process can be performed for each block of a size similar to that of the sub-block.

[0376] [Encoding device]

[0377] The structure of the video / image encoding device of this embodiment is the same as that of Embodiment 2, Figure 35 so the illustration and description are omitted.

[0378] [Decoding process]

[0379] Figure 14 An example of the video decoding process for Embodiment 3 is shown.

[0380] As the initial step S4001, parameters are parsed from the bitstream. Figure 37Indicates a parsable position of the above parameters in the compressed video bitstream. The parsed parameters include one or more parameters for selecting one or more decoded blocks or block information from a predetermined candidate list.

[0381] Next, in step S4002, at least one decoded block is selected from the plurality of decoded blocks using the parsed parameters. Here, the at least one decoded block is a block included in the same frame as the current block (e.g., an adjacent block of the current block), or a block included in a frame different from the frame including the current block (e.g., a block at the same position as the current block, or a motion compensated block obtained using the motion vector of the current block, or the last encoded block included in the latest encoded frame different from the current frame).

[0382] In step S4003, block information is read out from the selected decoded block.

[0383] Next, in step S4004, the current block is divided into a plurality of sub-blocks using the read out block information. Figure 38 Shows an example of dividing the current block into a plurality of sub-blocks using the read out block information.

[0384] In order to divide a block into sub-blocks, block division information of the block is derived. Here, the block division information is derived according to the block information of the decoded block (e.g., block partition structure, intra prediction mode or inter prediction mode, intra prediction direction, motion vector, reference picture, quantization parameter, and division depth, etc.). The block is divided into a plurality of sub-blocks using the block division information. As Figure 38 shown, if different block division information is used, the height, width, or shape of the plurality of sub-blocks as the result of block division also differ.

[0385] As the block partition structure of the current block, the block partition structure of the selected decoded block can be used as it is.

[0386] It is also possible to combine the block partition structures of two or more selected decoded blocks (e.g., as Figure 39 shown, the upper half uses the block partition structure of the upper block, and the remaining half uses the block partition structure of the left block), and derive a new block partition structure as the block partition structure of the current block.

[0387] It is also possible to correct the block partition structure of the selected decoded block (e.g., as Figure 40 shown, use a block partition structure with a shallower division depth), and derive a new block partition structure as the block partition structure of the current block.

[0388] The block division information may also be a parameter set indicating whether to divide the block horizontally or vertically. In addition, the block division information may also be a parameter set including a predetermined block width and a predetermined block height of all sub-blocks within the block.

[0389] The block division information may also vary according to the information on the intra prediction direction of the selected decoded block. For example, in order to determine whether to vertically divide or horizontally divide the current block into smaller blocks, the information on the intra prediction direction at a specific adjacent block position may also be used. For example, if it is determined that the information on the intra prediction direction of the upper adjacent block is vertical or close to vertical, for the current block, block division information including vertical division may be derived. Similarly, if it is determined that the information on the intra prediction direction of the left adjacent block is horizontal or close to horizontal, for the current block, block division information including horizontal division may be derived.

[0390] The block division information may also be a parameter set including an index for selecting one split construction candidate from a candidate list constructed from a prescribed block partition. At this time, the block partition construction visually presents the geometry of all sub-blocks within the block as shown in Figure 38 shown.

[0391] The block division information may also be derived according to the intra / inter prediction mode of the selected decoded block. For example, when the prediction mode of the selected decoded block is the intra prediction mode, prescribed block division information for dividing the block into multiple sub-blocks with a relatively small block size may be derived. In addition, for example, when the prediction mode of the selected decoded block is the inter prediction mode, other prescribed block division information for dividing the block into multiple sub-blocks with a relatively large block size may be derived.

[0392] The block division information may also be derived according to the motion vector of the selected decoded block. For example, when the difference between the motion vector of the selected decoded block and the motion vector of the current block is larger than a prescribed threshold, prescribed block division information for dividing the block into multiple sub-blocks with a relatively small block size may be derived. On the other hand, when the difference between the motion vector of the selected decoded block and the motion vector of the current block is equal to or less than the prescribed threshold, other prescribed block division information for dividing the block into multiple sub-blocks with a relatively large block size may be derived.

[0393] The block division information may also be derived according to the quantization parameter of the selected decoded block. For example, when the value of the quantization parameter of the selected decoded block is smaller than a prescribed value, prescribed block division information for dividing the block into multiple sub-blocks with a relatively small block size may be derived. In addition, for example, when the value of the quantization parameter of the selected decoded block is equal to or greater than the prescribed value, other prescribed block division information for dividing the block into multiple sub-blocks with a relatively large block size may be derived.

[0394] The block segmentation information can also be derived according to the reference picture information of the selected decoded blocks. For example, in the case where the reference picture of the decoded block is temporally close to the current picture or the reference pictures of multiple decoded blocks are similar to each other, the specified block segmentation information for dividing the block into multiple sub-blocks with a relatively large block size can be derived. In the case where the reference picture of the decoded block is not temporally close to the current picture or the reference pictures of multiple decoded blocks are not similar to each other, other specified block segmentation information for dividing the block into multiple sub-blocks with a relatively small block size can be derived.

[0395] The block segmentation information can also be derived according to the segmentation depth of the selected decoded block. For example, in the case where the segmentation depth of the selected decoded block is larger than a specified value (e.g., 4), the specified block segmentation information for dividing the block into multiple sub-blocks with a relatively small block size can be derived. In the case where the segmentation depth of the selected decoded block is equal to or less than the specified value (e.g., when the segmentation depth is equal to 2), other specified block segmentation information for dividing the block into multiple sub-blocks with a relatively large block size can be derived.

[0396] The block segmentation information can also be predicted according to the segmentation information of the decoded blocks in a frame different from the current frame. For example, the block segmentation information (including separation information) for the current block or the separation information of the current block can be derived according to the block information of the decoded blocks in a decoded frame different from the current frame (e.g., collocated block, last decoded block, or decoded block determined by the motion vector).

[0397] In step S4005, the sub-blocks included in the multiple sub-blocks are decoded through a decoding process. Here, the decoding process includes an inverse transformation process and / or a prediction process. The inverse transformation process can be performed for each block having a size similar to that of the sub-block.

[0398] [Decoding Device]

[0399] The configuration of the video / image decoding device of this embodiment is the same as that of Embodiment 2, Figure 36 so the illustration and description are omitted.

[0400] (Embodiment 4)

[0401] [Overview]

[0402] The encoding device according to this embodiment is an encoding device that encodes blocks of an image, and includes a processor and a memory connected to the processor; the processor performs the following processing using the memory: initializing block segmentation information, and if the initialized block segmentation information is used, dividing a block into multiple sub-blocks of a first geometric figure set, and writing parameters into a bitstream; using the written parameters, correcting the initialized block segmentation information into corrected block segmentation information, and if the corrected block segmentation information is used, dividing the block into multiple sub-blocks of a geometric figure set different from the first geometric figure set, and using the corrected block segmentation information to correct the geometric figures of the multiple sub-blocks; encoding the sub-blocks included in the multiple sub-blocks through an encoding process including a transformation process and / or a prediction process.

[0403] Accordingly, it is possible to adaptively correct the initialized block segmentation information into corrected block segmentation information using parameters. It is possible to correct the geometric figures of multiple sub-blocks using the corrected block segmentation information. As a result, it is possible to reduce the code amount related to the block segmentation information and improve the compression efficiency.

[0404] For example, in the encoding device according to this embodiment, the geometric figure may represent at least the shape, height, or width of a block.

[0405] Accordingly, the shape and / or size of a block can be used as the geometric figure.

[0406] For example, in the encoding device according to this embodiment, the process of initializing the block segmentation information may include a process of selecting block segmentation information from a predetermined block segmentation information list.

[0407] Accordingly, by selecting block segmentation information from a predetermined list, the block segmentation information can be initialized. Therefore, as long as the information for identifying the block segmentation information in the list is included in the block segmentation information, it is possible to reduce the code amount related to the block segmentation information and improve the compression efficiency.

[0408] For example, in the encoding device according to this embodiment, the process of initializing the block segmentation information may include a process of generating block segmentation information using predetermined parameters related to geometric figures.

[0409] Accordingly, by generating block segmentation information using parameters, the block segmentation information can be initialized.

[0410] For example, in the encoding device according to this embodiment, in the initialization of the block segmentation information, the segmentation depth may be determined based on at least one of the picture type and quantization parameter of the current block.

[0411] Thus, in the initialization of the block segmentation information, the segmentation depth can be determined based on the picture type and / or quantization parameter of the current block. Therefore, the segmentation depth can be determined based on the existing information in the bitstream, and the amount of code related to the block segmentation information can be reduced. Furthermore, by using the picture type and / or quantization parameter of the current block, the block segmentation information can be initialized with a segmentation depth suitable for the current block, and the compression efficiency can be improved.

[0412] For example, in the encoding device according to the present embodiment, the above-mentioned parameter written may also include the difference between the segmentation depth represented by the initialized above-mentioned block segmentation information and the segmentation depth represented by the corrected block segmentation information.

[0413] Thus, the segmentation depth of the block can be corrected using the parameter, and sub-blocks more suitable for encoding can be utilized. As a result, the compression efficiency can be improved.

[0414] The decoding device according to the present embodiment is a decoding device that decodes blocks of an image, and includes a processor and a memory connected to the processor; the processor uses the memory to perform the following processing: initializing the block segmentation information, if the initialized above-mentioned block segmentation information is used, dividing the block into multiple sub-blocks of the first geometric figure set, parsing a parameter from the bitstream; using the parsed above-mentioned parameter, correcting the initialized above-mentioned block segmentation information to corrected block segmentation information, if the above-mentioned corrected block segmentation information is used, dividing the block into multiple sub-blocks of a geometric figure set different from the first geometric figure set, using the above-mentioned corrected block segmentation information to correct the geometry of the multiple sub-blocks, and decoding the sub-blocks included in the multiple sub-blocks through a decoding process including an inverse transformation process and / or a prediction process.

[0415] Thus, the initialized block segmentation information can be adaptively corrected to corrected block segmentation information using the parameter. The geometry of the multiple sub-blocks can be corrected using the corrected block segmentation information. As a result, the amount of code related to the block segmentation information can be reduced, and the compression efficiency can be improved.

[0416] For example, in the decoding device according to the present embodiment, the geometry may represent at least the shape, height, or width of the block.

[0417] Thus, the shape and / or size of the block can be utilized as the geometry.

[0418] For example, in the decoding device according to the present embodiment, the process of initializing the above-mentioned block segmentation information may also include the process of selecting block segmentation information from a specified block segmentation information list.

[0419] Thus, by selecting block segmentation information from a prescribed list, the block segmentation information can be initialized. Therefore, it is sufficient that information for identifying the block segmentation information within the list is included in the block segmentation information, which can reduce the amount of code related to the block segmentation information and improve the compression efficiency.

[0420] For example, in the decoding apparatus according to the present embodiment, the process of initializing the above-described block segmentation information may include a process of generating block segmentation information using prescribed parameters related to geometric figures.

[0421] Thus, by generating block segmentation information using parameters, the block segmentation information can be initialized.

[0422] For example, in the decoding apparatus according to the present embodiment, in the initialization of the above-described block segmentation information, the segmentation depth may be determined based on at least one of the picture type and quantization parameter of the current block.

[0423] Thus, in the initialization of the block segmentation information, the segmentation depth can be determined based on the picture type and / or quantization parameter of the current block. Therefore, the segmentation depth can be determined based on existing information within the bitstream, which can reduce the amount of code related to the block segmentation information. Furthermore, by using the picture type and / or quantization parameter of the current block, the block segmentation information can be initialized with a segmentation depth suitable for the current block, which can improve the compression efficiency.

[0424] For example, in the decoding apparatus according to the present embodiment, the parsed parameters may also include the difference between the segmentation depth represented by the initialized above-described block segmentation information and the segmentation depth represented by the corrected block segmentation information.

[0425] Thus, the segmentation depth of the block can be corrected using the parameters, and sub-blocks more suitable for encoding can be utilized. As a result, the compression efficiency can be improved.

[0426] In addition, these inclusive or specific forms may also be implemented by a system, method, integrated circuit, computer program, or a recording medium such as a computer-readable CD-ROM, or may be implemented by any combination of a system, method, integrated circuit, computer program, and recording medium.

[0427] Regarding the method for encoding an image and the method for decoding it, as Figure 15 and Figure 16 are respectively shown, they will be described according to the embodiments.

[0428] [Encoding Process]

[0429] Figure 15 An example of the image encoding process according to Embodiment 4 is shown.

[0430] As the initial step S5001, the block division information is initialized. If this initialized block division information (hereinafter referred to as the initial block division information) is used, the block is divided into a plurality of sub-blocks of the first geometric figure set. As Figure 38 shown, if different block division information is used, the height, width, or shape of the plurality of sub-blocks as the result of block division also differs.

[0431] As the initial block partition structure of the current block, the block partition structure of the encoded block can be used as it is.

[0432] It is also possible to combine the block partition structures of two or more encoded blocks (for example, as Figure 39 shown, use the block partition structure of the upper block for the upper half and the block partition structure of the left block for the remaining half), and derive a new block partition structure as the initial block partition structure of the current block. As a method for selecting an encoded block, as an example, there is a method of selecting an encoded block with the same intra / inter prediction mode as the current block. Specifically, if the current block is an inter prediction block, one or more encoded blocks encoded using inter prediction are selected.

[0433] It is also possible to correct the block partition structure of the encoded block (for example, as Figure 40 shown, use a block partition structure with a shallower division depth), and derive a new block partition structure as the initial block partition structure of the current block.

[0434] The initial block division information may also be a parameter set indicating whether to divide the block horizontally or vertically. In addition, the initial block division information may also be a parameter set including a prescribed block width and a prescribed block height of all sub-blocks within the block.

[0435] The initial block division information may also differ according to the information on the intra prediction direction of the encoded block. For example, in order to determine whether to divide the current block vertically or horizontally into smaller blocks, the information on the intra prediction direction at a specific adjacent block position may also be used. For example, if it is determined that the information on the intra prediction direction of the upper adjacent block is vertical or close to vertical, the block division information used for the current block can be initialized to include block division information with vertical division. Similarly, if it is determined that the information on the intra prediction direction of the left adjacent block is horizontal or close to horizontal, the block division information used for the current block can be initialized to include block division information with horizontal division.

[0436] The initial block division information may also be a parameter set including an index for selecting one division structure candidate from a prescribed list of block partition structure candidates. In this case, the initial block partition structure, as Figure 38 shown, visually presents the geometric figures of all sub-blocks within the block.

[0437] The block segmentation information may also be initialized according to the intra / inter prediction mode of the encoded block. For example, in the case where the prediction mode of the encoded block is the intra prediction mode, the block segmentation information may be initialized to the specified block segmentation information for dividing the block into a plurality of sub-blocks with a relatively small block size. In addition, for example, in the case where the prediction mode of the encoded block is the inter prediction mode, the block segmentation information may be initialized to other specified block segmentation information for dividing the block into a plurality of sub-blocks with a relatively large block size.

[0438] The block segmentation information may also be initialized according to the motion vector of the encoded block. For example, in the case where the difference between the motion vector of the encoded block and the motion vector of the current block is larger than a specified threshold, the block segmentation information may be initialized to the specified block segmentation information for dividing the block into a plurality of sub-blocks with a relatively small block size. On the other hand, in the case where the difference between the motion vector of the encoded block and the motion vector of the current block is equal to or less than the specified threshold, the block segmentation information may be initialized to other specified block segmentation information for dividing the block into a plurality of sub-blocks with a relatively large block size.

[0439] The block segmentation information may also be initialized according to the quantization parameter of the encoded block. For example, in the case where the value of the quantization parameter of the encoded block is smaller than a specified value, the block segmentation information may be initialized to the specified block segmentation information for dividing the block into a plurality of sub-blocks with a relatively small block size. In addition, for example, in the case where the value of the quantization parameter of the encoded block is equal to or greater than the specified value, the block segmentation information may be initialized to other specified block segmentation information for dividing the block into a plurality of sub-blocks with a relatively large block size.

[0440] The block segmentation information may also be initialized according to the reference picture information of the encoded block. For example, in the case where the reference picture of the encoded block is temporally close to the current picture or the reference pictures of a plurality of encoded blocks are similar to each other, the block segmentation information may be initialized to the specified block segmentation information for dividing the block into a plurality of sub-blocks with a relatively large block size. In the case where the reference picture of the encoded block is not temporally close to the current picture or the reference pictures of a plurality of encoded blocks are not similar to each other, the block segmentation information may be initialized to other specified block segmentation information for dividing the block into a plurality of sub-blocks with a relatively small block size.

[0441] The block segmentation information may also be initialized according to the segmentation depth of the encoded block. For example, in the case where the segmentation depth of the encoded block is larger than a specified value (e.g., 4), the block segmentation information may be initialized to the specified block segmentation information for dividing the block into a plurality of sub-blocks with a relatively small block size. In the case where the segmentation depth of the encoded block is equal to or less than the specified value (e.g., in the case where the segmentation depth is equal to 2), the block segmentation information may be initialized to other specified block segmentation information for dividing the block into a plurality of sub-blocks with a relatively large block size.

[0442] The block partitioning information can also be initialized according to the partitioning information of the coded blocks of a frame different from the current frame. For example, the block partitioning information (including splitting information) for the current block or the splitting information for the current block can be initialized according to the coded blocks of a coded frame different from the current frame (e.g., collocated blocks at the same position, the last encoded block, or the coded block determined by the motion vector, etc.).

[0443] Next, in step S5002, parameters are written to the bitstream. Figure 37 Indicates the writable position of the above parameters in the compressed video bitstream.

[0444] In step S5003, the initial block partitioning information is corrected to corrected block partitioning information using the written parameters. If this corrected block partitioning information is used, the block is partitioned into multiple sub-blocks of a geometric set different from the first geometric set. The written parameters include one or more parameters used to correct the initial block partitioning information to the corrected block partitioning information.

[0445] For example, among the written parameters, there may be a partitioning flag for partitioning the block into multiple sub-blocks. As Figure 42A shown, if this parameter is used, the value of the quadtree (QT) partitioning flag changes and the initial block partitioning structure is corrected.

[0446] As another example, among the written parameters, there may be merge flags for hierarchically combining smaller blocks into larger blocks based on a specified scan order (such as raster scan or Z scan). As Figure 42B shown, if this parameter is used, multiple blocks are combined into a larger block and the initial block partitioning structure is corrected. In Figure 43 an example of hierarchically combining smaller blocks into a larger block is shown.

[0447] As another example, among the written parameters, there may be split enable flags for hierarchically splitting a larger block into smaller blocks based on a specified scan order (such as raster scan or Z scan). As Figure 42C shown, if this parameter is used, the block is split into smaller sub-blocks and the initial block partitioning structure is corrected.

[0448] As another example, among the written parameters, there may be the difference between the partitioning depth represented by the initial block partitioning information and the partitioning depth represented by the corrected block partitioning information. If this parameter is used, the partitioning depth of the block is corrected.

[0449] Different splitting methods such as splitting of blocks and combination of smaller blocks with each other can also be combined to form the final block partitioning structure. In the header of the bitstream, one or more switching parameters or flags such as a merge enable flag or a split enable flag indicating whether to use them can be included as control parameters.

[0450] If initial block splitting information or corrected block splitting information is used, various block partitioning structures formed by various splitting methods can be obtained. As the splitting method, for example, it can be binary tree splitting as shown in b1) and b2) of Figure 41 , or quadtree splitting as shown in q1) and q2) of Figure 41 , or multi-tree cutting / splitting as shown in m1) and m2) of Figure 41 , or non-square / non-rectangular splitting as shown in n1) of Figure 41 . As the geometry (shape and / or size) of the sub-blocks, like asymmetric binary tree splitting as shown in b2) of Figure 41 , asymmetric quadtree splitting as shown in q2) of Figure 41 , multi-tree cutting with different sizes as shown in m1) of Figure 41 , or non-square / non-rectangular splitting as shown in n1) of Figure 41 , there can be various geometries.

[0451] The written parameter can also indicate, for example, that no correction is required. If no correction is required, steps S5003 and S5004 can be omitted. Therefore, before proceeding to step S5005, the block is split into multiple sub-blocks using the initial block splitting information. Then, in step S5005, the case of encoding the sub-blocks included in the multiple sub-blocks split using the corrected block splitting information through the encoding process is replaced with encoding the sub-blocks included in the multiple sub-blocks split using the initial block splitting information through the encoding process.

[0452] In step S5004, the geometry of the multiple sub-blocks is corrected using the corrected block splitting information.

[0453] In step S5005, the sub-blocks included in the multiple sub-blocks are encoded through the encoding process. Here, the encoding process includes a transform process and / or a prediction process. The transform process can be performed for each block of the same size as the sub-block.

[0454] [Encoding device]

[0455] The structure of the video / image encoding device of this embodiment is the same as that of Embodiment 2, Figure 35 so the illustration and description are omitted.

[0456] [Decoding process]

[0457] Figure 16 Shows an example of the video decoding process for Embodiment 4.

[0458] As the first step S6001, initialize the block segmentation information. If this initial block segmentation information is used, the block is segmented into multiple sub-blocks of the first geometric figure set. As Figure 38 shown, if different block segmentation information is used, the height, width, or shape of the multiple sub-blocks as the result of block segmentation also differ.

[0459] As the initial block partition structure of the current block, the block partition structure of the decoded block can be used as it is.

[0460] It is also possible to combine the block partition structures of two or more decoded blocks (for example, as Figure 39 shown, use the block partition structure of the upper block for the upper half and the block partition structure of the left block for the remaining half) to derive a new block partition structure as the initial block partition structure of the current block. As a method for selecting a decoded block, as an example, there is a method of selecting a decoded block with the same intra / inter prediction mode as the current block. Specifically, if the current block is an inter prediction block, select one or more decoded blocks decoded using inter prediction.

[0461] It is also possible to correct the block partition structure of the decoded block (for example, as Figure 40 shown, use a block partition structure with a shallower segmentation depth) to derive a new block partition structure as the initial block partition structure of the current block.

[0462] The initial block segmentation information can also be a parameter set indicating whether to horizontally or vertically segment the block. In addition, the initial block segmentation information can also be a parameter set including the specified block width and specified block height of all sub-blocks within the block.

[0463] The initial block segmentation information can also differ according to the information on the intra prediction direction of the decoded block. For example, in order to determine whether to vertically or horizontally segment the current block into smaller blocks, the information on the intra prediction direction at a specific adjacent block position can also be used. For example, if it is determined that the information on the intra prediction direction of the upper adjacent block is vertical or close to vertical, the block segmentation information for the current block can be initialized to include block segmentation information for vertical segmentation. Similarly, if it is determined that the information on the intra prediction direction of the left adjacent block is horizontal or close to horizontal, the block segmentation information for the current block can be initialized to include block segmentation information for horizontal segmentation.

[0464] The initial block segmentation information may also be a parameter set including an index used to select one segmentation construction candidate from a candidate list constructed from a specified block partition. At this time, the initial block partition construction is as shown in Figure 38 which visually presents the geometries of all sub-blocks within the block.

[0465] The block segmentation information may be initialized according to the intra / inter prediction mode of the decoded block. For example, when the prediction mode of the decoded block is the intra prediction mode, the block segmentation information may be initialized to specified block segmentation information that divides the block into multiple sub-blocks with a relatively small block size. In addition, for example, when the prediction mode of the decoded block is the inter prediction mode, the block segmentation information may be initialized to other specified block segmentation information that divides the block into multiple sub-blocks with a relatively large block size.

[0466] The block segmentation information may also be initialized according to the motion vector of the decoded block. For example, when the difference between the motion vector of the decoded block and the motion vector of the current block is greater than a specified threshold, the block segmentation information may be initialized to specified block segmentation information that divides the block into multiple sub-blocks with a relatively small block size. On the other hand, when the difference between the motion vector of the decoded block and the motion vector of the current block is less than or equal to the specified threshold, the block segmentation information may be initialized to other specified block segmentation information that divides the block into multiple sub-blocks with a relatively large block size.

[0467] The block segmentation information may also be initialized according to the quantization parameter of the decoded block. For example, when the value of the quantization parameter of the decoded block is smaller than a specified value, the block segmentation information may be initialized to specified block segmentation information that divides the block into multiple sub-blocks with a relatively small block size. In addition, for example, when the value of the quantization parameter of the decoded block is greater than or equal to the specified value, the block segmentation information may be initialized to other specified block segmentation information that divides the block into multiple sub-blocks with a relatively large block size.

[0468] The block segmentation information may also be initialized according to the reference picture information of the decoded block. For example, when the reference picture of the decoded block is temporally close to the current picture or the multiple reference pictures of multiple decoded blocks are similar to each other, the block segmentation information may be initialized to specified block segmentation information that divides the block into multiple sub-blocks with a relatively large block size. When the reference picture of the decoded block is not temporally close to the current picture or the multiple reference pictures of multiple decoded blocks are not similar to each other, the block segmentation information may be initialized to other specified block segmentation information that divides the block into multiple sub-blocks with a relatively small block size.

[0469] The block segmentation information can also be initialized according to the segmentation depth of the decoded blocks. For example, when the segmentation depth of the decoded block is greater than a specified value (e.g., 4), the block segmentation information can be initialized to the specified block segmentation information for dividing the block into multiple sub-blocks with a relatively small block size. When the segmentation depth of the decoded block is below the specified value (e.g., when the segmentation depth is equal to 2), the block segmentation information can be initialized to other specified block segmentation information for dividing the block into multiple sub-blocks with a relatively large block size.

[0470] The block segmentation information can also be initialized according to the segmentation information of the decoded blocks of a frame different from the current frame. For example, the block segmentation information (including separation information) for the current block or the separation information of the current block can be initialized according to the decoded blocks of a decoded frame different from the current frame (e.g., collocated block, last decoded block, or decoded block determined by the motion vector, etc.).

[0471] Next, in step S6002, parameters are parsed from the bitstream. Figure 37 Indicates the parsable position of the above parameters in the compressed video bitstream.

[0472] In step S6003, using the parsed parameters, the initial block segmentation information is corrected to the corrected block segmentation information. If this corrected block segmentation information is used, the block is divided into multiple sub-blocks of a geometric shape set different from the first geometric shape set. The parsed parameters include one or more parameters for correcting the initial block segmentation information to the corrected block segmentation information.

[0473] For example, among the parsed parameters, there may be a segmentation flag for dividing the block into multiple sub-blocks. As Figure 42A shown, if this parameter is used, the value of the quadtree (QT) segmentation flag changes, and the initial block partition structure is corrected.

[0474] As another example, among the parsed parameters, there may be merge flags for hierarchically combining smaller blocks into a larger block based on a specified scan order (such as raster scan or Z scan). As Figure 42B shown, if this parameter is used, multiple blocks are combined into a larger block, and the initial block partition structure is corrected. An example of hierarchically combining smaller blocks into a larger block is shown in Figure 43 .

[0475] As another example, among the parsed parameters, there may be split enable flags for hierarchically dividing a larger block into smaller blocks based on a specified scan order (such as raster scan or Z scan). AsFigure 42C As shown, if this parameter is used, the block is divided into smaller sub - blocks and the initial block partition structure is corrected.

[0476] As another example, among the parsed parameters, a difference between the split depth indicated by the initial block split information and the split depth indicated by the corrected block split information may be included. If this parameter is used, the split depth of the block is corrected.

[0477] Different split methods such as splitting of a block and combination of smaller blocks with each other can also be combined to form the final block partition structure. In the header of the bitstream, control parameters such as one or more switching parameters or flags indicating whether to use a merge enable flag or a split enable flag may be included.

[0478] If the initial block split information or the corrected block split information is used, various block partition structures performed by various split methods can be obtained. As split methods, for example, it can be binary tree splitting as shown in b1) and b2) of Figure 41 or quadtree splitting as shown in q1) and q2) of Figure 41 or multi - tree cutting / splitting as shown in m1) and m2) of Figure 41 or non - square / non - rectangular splitting as shown in n1) of Figure 41 As the geometric shapes (shapes and / or sizes) of the sub - blocks, there are various geometric shapes such as asymmetric binary tree splitting as shown in b2) of Figure 41 or asymmetric quadtree splitting as shown in q2) of Figure 41 or multi - tree cutting with different sizes as shown in m1) of Figure 41 or non - square / non - rectangular splitting as shown in n1) of Figure 41

[0479] The parsed parameters may also indicate, for example, that no correction is required. If no correction is required, steps S6003 and S6004 can be omitted. Therefore, before proceeding to step S6005, the block is divided into multiple sub - blocks using the initial block split information. Then, in step S6005, the case of decoding the sub - blocks included in the multiple sub - blocks split using the corrected block split information through the decoding process is replaced with decoding the sub - blocks included in the multiple sub - blocks split using the initial block split information.

[0480] In step S6004, the geometric shapes of the multiple sub - blocks are corrected using the corrected block split information.

[0481] ​In step S6005, the sub-blocks included in the plurality of sub-blocks are decoded through decoding processing. Here, the decoding processing includes inverse transformation processing and / or prediction processing. The inverse transformation processing can be performed for each block having a size similar to that of the sub-block.

[0482] [Decoding device]

[0483] The configuration of the video / image decoding device of this embodiment is the same as that of Embodiment 2, Figure 36 so the illustration and description thereof are omitted.

[0484] In addition, in this embodiment, as the initial block segmentation information, default block segmentation information can also be used. The default block segmentation information refers to pre-set block segmentation information. For example, the default block segmentation information can also be block segmentation information predefined in a standard specification. In addition, for example, the default block segmentation information can also be block segmentation information written in a header at a higher level than the block. In addition, when using the default block segmentation information, in steps S5001 and S6001, instead of initializing the block segmentation information, the default block segmentation information is acquired.

[0485] In addition, in this embodiment, as an example of the initialization of the block segmentation information, an example of the initialization based on the block information of the encoded block or the decoded block is described, but it is not limited thereto. For example, in the initialization of the block segmentation information, the segmentation depth can also be determined based on at least one of the picture type (I, P, or B picture) of the current block and the quantization parameter.

[0486] Specifically, for example, if the picture type of the current block is an I picture, the block segmentation information can also be initialized to block segmentation information that divides the block with a relatively deep segmentation depth. In addition, for example, if the picture type of the current block is a P picture or a B picture, the block segmentation information can also be initialized to block segmentation information that divides the block with a relatively shallow segmentation depth.

[0487] In addition, for example, the segmentation depth of the initial block segmentation information can also be determined based on the quantization parameter of the current block. Specifically, when the value of the quantization parameter of the current block is smaller than a specified value, the block segmentation information can also be initialized to block segmentation information that divides the block with a relatively deep segmentation depth. In addition, for example, when the value of the quantization parameter of the current block is equal to or greater than the specified value, the block segmentation information can also be initialized to other block segmentation information that divides the block with a relatively shallow segmentation depth.

[0488] (Embodiment 5)

[0489] [Summary]

[0490] The encoding device according to this embodiment is an encoding device that encodes blocks of an image, and includes a processor and a memory connected to the processor; the processor uses the memory to perform the following processing: writing parameters into a bitstream; dividing a block into a plurality of sub-blocks, and using the written parameters, combining at least two sub-blocks included in the plurality of sub-blocks to form a combined block; encoding the combined block through an encoding process including a transform process and / or a prediction process.

[0491] Accordingly, at least two sub-blocks can be combined using parameters. Therefore, the division of the current block can be corrected using the parameters, and sub-blocks more suitable for encoding can be utilized. As a result, the compression efficiency can be improved.

[0492] The decoding device according to this embodiment is a decoding device that decodes blocks of an image, and includes a processor and a memory connected to the processor; the processor uses the memory to perform the following processing: parsing parameters from a bitstream; dividing a block into a plurality of sub-blocks, and using the parsed parameters, combining at least two sub-blocks included in the plurality of sub-blocks to form a combined block; decoding the combined block through a decoding process including an inverse transform process and / or a prediction process.

[0493] Accordingly, at least two sub-blocks can be combined using parameters. Therefore, the division of the current block can be corrected using the parameters, and sub-blocks more suitable for decoding can be utilized. As a result, the compression efficiency can be improved.

[0494] In addition, these inclusive or specific forms can also be implemented by a system, a method, an integrated circuit, a computer program, or a recording medium such as a computer-readable CD-ROM, or can be implemented by any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0495] Regarding the method for encoding an image and the method for decoding an image, as Figure 17 and Figure 18 are respectively shown, they will be described according to the embodiments.

[0496] [Encoding Process]

[0497] Figure 17 An example of the video encoding process according to Embodiment 5 is shown.

[0498] As the initial step S7001, parameters are written into the bitstream. Figure 37 Indicates the writable position of the above parameters in the compressed video bitstream.

[0499] Next, in step S7002, the block is divided into a plurality of sub-blocks using the initial block division information. As Figure 38As shown, if different block segmentation information is used, the heights, widths, or shapes of multiple sub-blocks resulting from the block segmentation are also different.

[0500] As the initial block partition structure of the current block, the block partition structure of the encoded block can be used as it is. In addition, as the initial block partition structure of the current block, the default block partition structure can be used.

[0501] It is also possible to combine the block partition structures of two or more encoded blocks (for example, as shown in Figure 39 such that the upper half uses the block partition structure of the upper block and the remaining half uses the block partition structure of the left block), and derive a new block partition structure as the initial block partition structure of the current block. As a method for selecting an encoded block, as an example, there is a method of selecting an encoded block with the same intra / inter prediction mode as the current block. Specifically, if the current block is an inter prediction block, one or more encoded blocks encoded using inter prediction are selected.

[0502] It is also possible to correct the block partition structure of the encoded block (for example, as shown in Figure 40 such that a block partition structure with a shallower segmentation depth is used), and derive a new block partition structure as the initial block partition structure of the current block.

[0503] The initial block segmentation information can also be a parameter set indicating whether to horizontally or vertically segment the block. In addition, the initial block segmentation information can also be a parameter set including the specified block width and specified block height of all sub-blocks within the block.

[0504] The initial block segmentation information can also vary according to the information on the intra prediction direction of the encoded block. For example, in order to determine whether to vertically or horizontally segment the current block into smaller blocks, the information on the intra prediction direction at a specific adjacent block position can also be used. For example, if it is determined that the information on the intra prediction direction of the upper adjacent block is vertical or close to vertical, the block segmentation information used for the current block can be initialized to include block segmentation information for vertical segmentation. Similarly, if it is determined that the information on the intra prediction direction of the left adjacent block is horizontal or close to horizontal, the block segmentation information used for the current block can be initialized to include block segmentation information for horizontal segmentation.

[0505] The initial block segmentation information can also be a parameter set including an index used to select one segmentation structure candidate from a specified list of block partition structure candidates. In this case, the initial block partition structure visually presents the geometry of all sub-blocks within the block as shown in Figure 38 such.

[0506] The block segmentation information can also be initialized according to the intra / inter prediction mode of the encoded block. For example, when the prediction mode of the encoded block is the intra prediction mode, the block segmentation information can be initialized to the specified block segmentation information that divides the block into multiple sub-blocks with a relatively small block size. In addition, for example, when the prediction mode of the encoded block is the inter prediction mode, the block segmentation information can be initialized to other specified block segmentation information that divides the block into multiple sub-blocks with a relatively large block size.

[0507] The block segmentation information can also be initialized according to the motion vector of the encoded block. For example, when the difference between the motion vector of the encoded block and the motion vector of the current block is larger than a specified threshold, the block segmentation information can be initialized to the specified block segmentation information that divides the block into multiple sub-blocks with a relatively small block size. On the other hand, when the difference between the motion vector of the encoded block and the motion vector of the current block is equal to or less than the specified threshold, the block segmentation information can be initialized to other specified block segmentation information that divides the block into multiple sub-blocks with a relatively large block size.

[0508] The block segmentation information can also be initialized according to the quantization parameter of the encoded block. For example, when the value of the quantization parameter of the encoded block is smaller than a specified value, the block segmentation information can be initialized to the specified block segmentation information that divides the block into multiple sub-blocks with a relatively small block size. In addition, for example, when the value of the quantization parameter of the encoded block is equal to or greater than the specified value, the block segmentation information can be initialized to other specified block segmentation information that divides the block into multiple sub-blocks with a relatively large block size.

[0509] The block segmentation information can also be initialized according to the reference picture information of the encoded block. For example, when the reference picture of the encoded block is temporally close to the current picture or the multiple reference pictures of multiple encoded blocks are similar to each other, the block segmentation information can be initialized to the specified block segmentation information that divides the block into multiple sub-blocks with a relatively large block size. When the reference picture of the encoded block is not temporally close to the current picture or the multiple reference pictures of multiple encoded blocks are not similar to each other, the block segmentation information can be initialized to other specified block segmentation information that divides the block into multiple sub-blocks with a relatively small block size.

[0510] The block segmentation information can also be initialized according to the segmentation depth of the encoded block. For example, when the segmentation depth of the encoded block is larger than a specified value (e.g., 4), the block segmentation information can be initialized to the specified block segmentation information that divides the block into multiple sub-blocks with a relatively small block size. When the segmentation depth of the encoded block is equal to or less than the specified value (e.g., when the segmentation depth is equal to 2), the block segmentation information can be initialized to other specified block segmentation information that divides the block into multiple sub-blocks with a relatively large block size.

[0511] The block splitting information can also be initialized according to the splitting information of the encoded blocks of a frame different from the current frame. For example, the block splitting information (including splitting information) for the current block or the splitting information of the current block can be initialized according to the encoded blocks of an encoded frame different from the current frame (e.g., collocated blocks at the same position, the last encoded block, or the encoded blocks determined by the motion vector, etc.).

[0512] In step S7003, using the written parameters, two or more sub-blocks included in multiple sub-blocks are combined to form a merged block. For example, in the written parameters, there may be merge flags for hierarchically combining smaller blocks into larger blocks based on a specified scan order (such as raster scan or Z scan). As Figure 42B shown, if this parameter is used, multiple blocks are combined into a larger block, and the initial block partition structure is corrected. In Figure 43 an example of hierarchically combining smaller blocks into larger blocks is shown.

[0513] The splitting method when deriving the block partition structure can also be different before and after the combining process in step S7003. As the splitting method, for example, it can be binary tree splitting as shown in b1) and b2) of Figure 41 , or quadtree splitting as shown in q1) and q2) of Figure 41 , or multi-tree cutting / splitting as shown in m1) and m2) of Figure 41 , or non-square / non-rectangular splitting as shown in n1) of Figure 41 . As the geometry (shape and / or size) of the sub-blocks, there are various geometries such as asymmetric binary tree splitting as shown in b2) of Figure 41 , asymmetric quadtree splitting as shown in q2) of Figure 41 , multi-tree cutting with different sizes as shown in m1) of Figure 41 , or non-square / non-rectangular splitting as shown in n1) of Figure 41 .

[0514] The written parameters can also indicate, for example, that no combination is required. If no combination is required, step S7003 can be omitted. Therefore, before proceeding to step S7004, the block is split into multiple sub-blocks using the initial block splitting information. Then, in step S7004, the sub-blocks are encoded through an encoding process instead of the combined block.

[0515] In step S7004, the combined block is encoded through encoding processing. Here, the encoding processing includes transform processing and / or prediction processing. The transform processing can be performed on a block of a size similar to that of each sub-block.

[0516] [Encoding device]

[0517] The configuration of the video / image encoding device of this embodiment is the same as that of Embodiment 2, Figure 35 so the illustration and description are omitted.

[0518] [Decoding processing]

[0519] Figure 18 This represents an example of the video decoding processing of Embodiment 5.

[0520] As the initial step S8001, parameters are parsed from the bitstream. Figure 37 This represents the parsable position of the above parameters in the compressed video bitstream.

[0521] Next, in step S8002, the block is divided into a plurality of sub-blocks using the initial block segmentation information. As Figure 38 shown, if different block segmentation information is used, the height, width, or shape of the plurality of sub-blocks as the result of block segmentation will also be different.

[0522] As the initial block partition structure of the current block, the block partition structure of the decoded block can be used as it is.

[0523] It is also possible to combine the block partition structures of two or more decoded blocks (for example, as Figure 39 shown, use the block partition structure of the upper block for the upper half and the block partition structure of the left block for the remaining half), and derive a new block partition structure as the initial block partition structure of the current block. As a method for selecting a decoded block, as an example, there is a method of selecting a decoded block with the same intra-frame / inter-frame prediction mode as the current block. Specifically, if the current block is an inter-frame prediction block, one or more decoded blocks decoded using inter-frame prediction are selected.

[0524] It is also possible to correct the block partition structure of the decoded block (for example, as Figure 40 shown, use a block partition structure with a shallower segmentation depth), and derive a new block partition structure as the initial block partition structure of the current block.

[0525] The initial block segmentation information can also be a parameter set indicating whether to divide the block horizontally or vertically. In addition, the initial block segmentation information can also be a parameter set including the specified block width and specified block height of all sub-blocks within the block.

[0526] The initial block partition information may also vary according to the information on the intra prediction direction of the decoded blocks. For example, in order to determine whether to vertically partition or horizontally partition the current block into smaller blocks, the information on the intra prediction direction at a specific adjacent block position may also be used. For example, if it is determined that the information on the intra prediction direction of the upper adjacent block is vertical or close to vertical, the block partition information for the current block can be initialized to include block partition information with vertical partitioning. Similarly, if it is determined that the information on the intra prediction direction of the left adjacent block is horizontal or close to horizontal, the block partition information for the current block can be initialized to include block partition information with horizontal partitioning.

[0527] The initial block partition information may also be a parameter set including an index for selecting one partition construction candidate from a candidate list for constructing a specified block partition. At this time, the initial block partition construction visually presents the geometry of all sub-blocks within the block as shown in Figure 38 shown.

[0528] The block partition information can be initialized according to the intra / inter prediction mode of the decoded blocks. For example, when the prediction mode of the decoded block is the intra prediction mode, the block partition information can be initialized to specified block partition information that partitions the block into multiple sub-blocks with a relatively small block size. In addition, for example, when the prediction mode of the decoded block is the inter prediction mode, the block partition information can be initialized to other specified block partition information that partitions the block into multiple sub-blocks with a relatively large block size.

[0529] The block partition information may also be initialized according to the motion vector of the decoded block. For example, when the difference between the motion vector of the decoded block and the motion vector of the current block is larger than a specified threshold, the block partition information can be initialized to specified block partition information that partitions the block into multiple sub-blocks with a relatively small block size. On the other hand, when the difference between the motion vector of the decoded block and the motion vector of the current block is equal to or less than the specified threshold, the block partition information can be initialized to other specified block partition information that partitions the block into multiple sub-blocks with a relatively large block size.

[0530] The block partition information may also be initialized according to the quantization parameter of the decoded block. For example, when the value of the quantization parameter of the decoded block is smaller than a specified value, the block partition information can be initialized to specified block partition information that partitions the block into multiple sub-blocks with a relatively small block size. In addition, for example, when the value of the quantization parameter of the decoded block is equal to or greater than the specified value, the block partition information can be initialized to other specified block partition information that partitions the block into multiple sub-blocks with a relatively large block size.

[0531] The block segmentation information can also be initialized according to the reference picture information of the decoded blocks. For example, when the reference picture of the decoded block is temporally close to the current picture or the reference pictures of multiple decoded blocks are similar to each other, the block segmentation information can be initialized to the specified block segmentation information that divides the block into multiple sub-blocks with a relatively large block size. When the reference picture of the decoded block is not temporally close to the current picture or the reference pictures of multiple decoded blocks are not similar to each other, the block segmentation information can be initialized to other specified block segmentation information that divides the block into multiple sub-blocks with a relatively small block size.

[0532] The block segmentation information can also be initialized according to the segmentation depth of the decoded block. For example, when the segmentation depth of the decoded block is greater than a specified value (e.g., 4), the block segmentation information can be initialized to the specified block segmentation information that divides the block into multiple sub-blocks with a relatively small block size. When the segmentation depth of the decoded block is below the specified value (e.g., when the segmentation depth is equal to 2), the block segmentation information can be initialized to other specified block segmentation information that divides the block into multiple sub-blocks with a relatively large block size.

[0533] The block segmentation information can also be initialized according to the segmentation information of the decoded blocks of a frame different from the current frame. For example, the block segmentation information (including separation information) for the current block or the separation information of the current block can be initialized according to the decoded blocks of a decoded frame different from the current frame (e.g., collocated block, last decoded block, or decoded block determined by the motion vector, etc.).

[0534] In step S8003, using the parsed parameters, two or more sub-blocks included in the multiple sub-blocks are combined to form a merged block. For example, in the parsed parameters, there may be merge flags that hierarchically combine smaller blocks into larger blocks based on a specified scan order (such as raster scan or Z scan). As Figure 42B shown, if this parameter is used, multiple blocks are combined into a larger block, and the initial block partition structure is corrected. In Figure 43 an example of hierarchically combining smaller blocks into a larger block is shown.

[0535] The segmentation method when deriving the block partition structure can be different before and after the combination process in step S8003. As the segmentation method, for example, it can be binary tree segmentation as shown in b1) and b2) of Figure 41 , or quadtree segmentation as shown in q1) and q2) of Figure 41 , or multi-tree cutting / segmentation as shown in m1) and m2) of Figure 41 , or asFigure 41 the non-square / non-rectangular division shown in n1). As the geometric figures (shape and / or size) of the sub-blocks, such as Figure 41 the asymmetric binary tree division shown in b2), such as Figure 41 the asymmetric quadtree division shown in q2), such as Figure 41 the multi-tree cutting with different sizes shown in m1), or such as Figure 41 the non-square / non-rectangular division shown in n1), there are various geometric figures.

[0536] The parsed parameters can also represent, for example, no need for combination. If no combination is needed, step S8003 can be omitted. Therefore, before proceeding to step S8004, the block is divided into a plurality of sub-blocks using the initial block division information. Then, in step S8004, instead of combining the blocks, the sub-blocks are decoded through a decoding process.

[0537] In step S8004, the combined block is decoded through a decoding process. Here, the decoding process includes an inverse transformation process and / or a prediction process. The transformation process can be performed for each block of the same size as the sub-block.

[0538] [Decoding device]

[0539] The configuration of the video / image decoding device of this embodiment is the same as that of Embodiment 2, Figure 36 so the illustration and description are omitted.

[0540] (Embodiment 6)

[0541] [Overview]

[0542] The encoding device related to this embodiment is an encoding device that encodes blocks of an image, and includes a processor and a memory connected to the processor; the processor uses the memory to perform the following processing: read out the geometric figure of the block, determine whether the read geometric figure is equal to a specified geometric figure; if the read geometric figure is equal to the specified geometric figure, divide the block into a specified number of sub-blocks of a first geometric figure set; if the read geometric figure is not equal to the specified geometric figure, divide the block into a specified number of sub-blocks of another geometric figure set different from the first geometric figure set; encode the sub-blocks through an encoding process including a transformation process and / or a prediction process.

[0543] Thus, the block can be divided based on the geometric figure of the block. Therefore, the code amount related to the block division information can be reduced, and the compression efficiency can be improved. Furthermore, the utilization of the geometric figure of the block can contribute to sub-blocks more suitable for encoding and also contribute to the improvement of the compression efficiency.

[0544] For example, in the encoding device according to this embodiment, the geometric figure may also represent at least the shape, height, or width of a block.

[0545] Accordingly, the shape and / or size of the block can be used as the geometric figure.

[0546] For example, in the encoding device according to this embodiment, at least one of the height and width of the above-mentioned sub-block may also be a power of 2.

[0547] Accordingly, the block can be divided in such a way that at least one of the height and width of the sub-block is a power of 2. Thus, sub-blocks having a size suitable for encoding can be obtained, and the compression efficiency can be improved.

[0548] The decoding device according to this embodiment is a decoding device that decodes an image block, and includes a processor and a memory connected to the processor; the processor uses the memory to perform the following processing: reading out the geometric figure of the block, and determining whether the read geometric figure is equal to a specified geometric figure; when the read geometric figure is equal to the specified geometric figure, dividing the block into a specified number of sub-blocks of a first geometric figure set; when the read geometric figure is not equal to the specified geometric figure, dividing the block into a specified number of sub-blocks of another geometric figure set different from the first geometric figure set; and decoding the sub-blocks through a decoding process including an inverse transformation process and / or a prediction process.

[0549] Accordingly, the block can be divided based on the geometric figure of the block. Thus, the amount of code related to the block division information can be reduced, and the compression efficiency can be improved. Furthermore, the use of the geometric figure of the block can contribute to sub-blocks more suitable for encoding and also contribute to the improvement of the compression efficiency.

[0550] For example, in the decoding device according to this embodiment, the geometric figure may also represent at least the shape, height, or width of a block.

[0551] Accordingly, the shape and / or size of the block can be used as the geometric figure.

[0552] For example, in the decoding device according to this embodiment, at least one of the height and width of the above-mentioned sub-block may also be a power of 2.

[0553] Accordingly, the block can be divided in such a way that at least one of the height and width of the sub-block is a power of 2. Thus, sub-blocks having a size suitable for encoding can be used, and the compression efficiency can be improved.

[0554] In addition, these inclusive or specific forms can also be implemented by a system, a method, an integrated circuit, a computer program, or a recording medium such as a computer-readable CD-ROM, or can be implemented by any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0555] Hereinafter, a method for encoding an image and a method for decoding the same will be described according to embodiments as shown respectively in Figure 19 and Figure 20 below.

[0556] [Encoding Process]

[0557] Figure 19 This represents an example of an image encoding process according to Embodiment 6.

[0558] As a first step S9001, the geometry of a block is read out. Here, the geometry represents at least the shape, height, or width of the block. As Figure 44 shown, if different geometries are used, the shapes, block heights, or block widths of the multiple sub-blocks as the result of block segmentation are also different.

[0559] Next, in step S9002, it is determined whether the read-out geometry is equal to a specified geometry.

[0560] When the read-out geometry is equal to the specified geometry (Yes in S9002), in step S9003, the block is divided into a specified number of sub-blocks of a first geometry set. When the read-out geometry is not equal to the specified geometry (No in S9002), in step S9004, the block is divided into a specified number of sub-blocks of another geometry set different from the first geometry set.

[0561] For example, as Figure 45A shown in (a1) of Figure 45A , when the specified number of sub-blocks is set to 2, if the block width is a power of 2 (e.g., 32), the block can be longitudinally divided into 2 sub-blocks in a 1:3 or 3:1 ratio. On the other hand, as

[0562] shown in (a2) of Figure 45C , if the width is not a power of 2 (e.g., 24), the block can be longitudinally divided into 2 sub-blocks in a 1:2 or 2:1 ratio. Similarly, depending on whether the block height of the block is a power of 2, the block can be horizontally divided into 2 sub-blocks. Figure 45CAs shown in (c2), if the width (e.g., 32) is greater than the block height (e.g., 8), the block can be longitudinally divided into two equal-sized sub-blocks.

[0563] When the specified number of sub-blocks is set to 4, for example, as shown in Figure 45B (b1), if the block width of the block is a power of 2 (e.g., 32), the block can be divided into four sub-blocks where the width of the largest sub-block is three times the width of the smallest sub-block. On the other hand, as shown in Figure 45B (b2), if the block width of the block is not a power of 2 (e.g., 24), the block can be divided into four sub-blocks where the width of the largest sub-block is twice the width of the smallest sub-block.

[0564] As another example, as shown in Figure 45D (d1), when the specified number of sub-blocks is set to 4, if the block width (e.g., 32) of the block is the same as the block height (e.g., 32) of the block, the block can be equally divided in both the vertical and horizontal directions. As shown in Figure 45D (d2), if the block width (e.g., 32) of the block is four times the block height (e.g., 8) of the block, the block can be equally divided longitudinally. Similarly, if the block height (e.g., 32) of the block is four times the block width (e.g., 8) of the block, the block can be equally divided horizontally.

[0565] As shown in Figures 45A to 45D , in this embodiment, at least one of the height and width of the sub-block is a power of 2. In addition, the height and / or width of the sub-block may not be limited to a power of 2.

[0566] In step S9005, the sub-blocks are encoded through an encoding process. Here, the encoding process includes a transformation process and / or a prediction process. The transformation process can be performed for each block of a size similar to that of the sub-block.

[0567] [Encoding device]

[0568] The structure of the video / image encoding device of this embodiment is the same as that of Embodiment 2, so the illustration and description are omitted. Figure 35

[0569] [Decoding process]

[0570] Figure 20 This shows an example of the video decoding process of Embodiment 6.

[0571] As the initial step S10001, the geometry of the block is read. Here, the geometry represents at least the shape, height, or width of the block. As shown in Figure 44 , if different geometries are used, the shapes, block heights, or block widths of the multiple sub-blocks resulting from the block division are also different.​

[0572] Next, in step S10002, it is determined whether the read geometric figure is equal to a specified geometric figure.

[0573] When the read geometric figure is equal to the specified geometric figure (Yes in S10002), in step S10003, the block is divided into a specified number of sub - blocks composed of the first geometric figure set. When the read geometric figure is not equal to the specified geometric figure (No in S10002), in step S10004, the block is divided into a specified number of sub - blocks composed of a geometric figure set different from the first geometric figure set.

[0574] For example, as Figure 45A shown in (a1) of, when the specified number of sub - blocks is set to 2, if the block width is a power of 2 (e.g., 32), the block can be longitudinally divided into 2 sub - blocks in a ratio of 1:3 or 3:1. On the other hand, as Figure 45A shown in (a2) of, if the width is not a power of 2 (e.g., 24), the block can be longitudinally divided into 2 sub - blocks in a ratio of 1:2 or 2:1. Similarly, according to whether the block height of the block is a power of 2, the block can be horizontally divided into 2 sub - blocks.

[0575] As another example, as Figure 45C shown in (c1) of, when the specified number of sub - blocks is set to 2, if the block width (e.g., 8) is smaller than the block height (e.g., 32), the block can be horizontally divided into 2 sub - blocks of equal size. On the other hand, as Figure 45C shown in (c2) of, if the width (e.g., 32) is larger than the block height (e.g., 8), the block can be longitudinally divided into 2 sub - blocks of equal size.

[0576] For example, as Figure 45B shown in (b1) of, when the specified number of sub - blocks is set to 4, if the block width is a power of 2 (e.g., 32), the block can be divided into 4 sub - blocks where the width of the largest sub - block is 3 times the width of the smallest sub - block. On the other hand, as [[ID=27 shown in (b2) of, if the block width is not a power of 2 (e.g., 24), the block can be divided into 4 sub - blocks where the width of the largest sub - block is 2 times the width of the smallest sub - block.

[0577] For example, as ​ shown in (d1) of, when the specified number of sub - blocks is set to 4, if the block width (e.g., 32) is the same as the block height (e.g., 32) of the block, the block can be equally divided in both the horizontal and vertical directions. As ​As shown in (d2), if the block width of a block (e.g., 32) is 4 times the block height of the block (e.g., 8), the block can be equally divided longitudinally. Similarly, if the block height of a block (e.g., 32) is 4 times the block width of the block (e.g., 8), the block can be equally divided transversely.

[0578] As ​ In this embodiment, at least one of the height and width of the sub-block is a power of 2. In addition, the height and / or width of the sub-block may not be limited to a power of 2.

[0579] In step S10005, the sub-block is decoded through a decoding process. Here, the inverse transformation process and / or the prediction process are included in the decoding process. The inverse transformation process can be performed for each block having a size similar to that of the sub-block.

[0580] [Decoding device]

[0581] The configuration of the video / image decoding device of this embodiment is the same as that of Embodiment 2, so the illustration and description are omitted. ​ is the same, so the illustration and description are omitted.

[0582] (Embodiment 7)

[0583] [Summary]

[0584] The encoding device according to this embodiment is an encoding device that encodes blocks of an image, and includes a processor and a memory connected to the processor; the processor uses the memory to perform the following processing: writing parameters into a bitstream; determining whether the written parameters are equal to a specified value; when the written parameters are equal to the specified value, dividing the block into a specified number of sub-blocks of a first geometric figure set; when the written parameters are not equal to the specified value, dividing the block into a specified number of sub-blocks of another geometric figure set different from the first geometric figure set; and encoding the sub-blocks through an encoding process including a transformation process and / or a prediction process.

[0585] Thereby, it is possible to switch the geometric figure set of the specified number of sub-blocks after division according to whether the parameters are equal to the specified value.

[0586] For example, in the encoding device according to this embodiment, the geometric figure may represent at least the shape, height, or width of the block.

[0587] Thereby, the shape and / or size of the block can be used as the geometric figure.

[0588] For example, in the encoding device according to this embodiment, at least one of the height and width of the sub-block may also be a power of 2.

[0589] Thus, the block can be divided in such a way that at least one of the height and width of the sub-block is a power of 2. Consequently, sub-blocks of a size suitable for encoding can be obtained, and the compression efficiency can be improved.

[0590] The decoding device according to the present embodiment is a decoding device that decodes blocks of an image, and includes a processor and a memory connected to the processor; the processor performs the following processing using the memory: parsing parameters from a bitstream; determining whether the parsed parameters are equal to a specified value; when the parsed parameters are equal to the specified value, dividing the block into a specified number of sub-blocks of a first geometric figure set; when the parsed parameters are not equal to the specified value, dividing the block into the specified number of sub-blocks of another geometric figure set different from the first geometric figure set; and decoding the sub-blocks through a decoding process including an inverse transform process and / or a prediction process.

[0591] Thus, the geometric figure set of the specified number of sub-blocks after division can be switched according to whether the parameter is equal to the specified value.

[0592] For example, in the decoding device according to the present embodiment, the geometric figure may represent at least the shape, height, or width of the block.

[0593] Thus, the shape and / or size of the block can be used as the geometric figure.

[0594] For example, in the decoding device according to the present embodiment, at least one of the height and width of the sub-block may also be a power of 2.

[0595] Thus, the block can be divided in such a way that at least one of the height and width of the sub-block is a power of 2. Consequently, sub-blocks of a size suitable for encoding can be used, and the compression efficiency can be improved.

[0596] In addition, these inclusive or specific forms can also be implemented by a system, a method, an integrated circuit, a computer program, or a recording medium such as a computer-readable CD-ROM, or can be implemented by any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0597] Hereinafter, a method for encoding an image and a method for decoding the same will be described according to embodiments as ​ and ​ respectively shown.

[0598] [Encoding Process]

[0599] ​ An example of an image encoding process according to Embodiment 7 is shown.

[0600] As a first step S11001, parameters are written into a bitstream. ​ Indicates the writable position of the above parameters in the compressed video bitstream.

[0601] Next, in step S11002, it is determined whether the written parameters are equal to a specified value.

[0602] When the written parameters are equal to the specified value (Yes in S11002), in step S11003, the block is divided into a specified number of sub-blocks of the first geometric figure set. When the written parameters are not equal to the specified value (No in S11002), in step S11004, the block is divided into a specified number of sub-blocks of another geometric figure set different from the first geometric figure set.

[0603] The written parameters can represent a splitting pattern (e.g., quadtree / binary tree / multiway tree splitting, vertical / horizontal splitting, symmetric / asymmetric splitting, and the ratio of the block width / block height of the sub-blocks).

[0604] For example, for a 24×32 block, as ​ shown in (a1) of, the written parameters can represent that the splitting is binary tree splitting, the splitting is vertical splitting, and the ratio of the block widths of the 2 sub-blocks is 1:2. In this case, the 24×32 block is divided into 8×32 sub-blocks and 16×32 sub-blocks.

[0605] As another example, for a 24×32 block, as ​ shown in (a2) of, the written parameters can represent that the splitting is binary tree splitting, the splitting is vertical splitting, and the ratio of the block widths of the 2 sub-blocks is 2:1. In this case, the 24×32 block is divided into 16×32 sub-blocks and 8×32 sub-blocks.

[0606] For example, for a 24×24 block, as ​ shown in (b1) of, the written parameters can represent that the splitting is quadtree splitting, the upper left sub-block is the largest sub-block, and the ratio of the block width of the largest sub-block to the smallest sub-block is 2:1. In this case, the 24×24 block is divided into 16×16 sub-blocks and 8×16 sub-blocks, 16×8 sub-blocks and 8×8 sub-blocks.

[0607] As another example, for a 24×24 block, as ​ shown in (b2) of, the written parameters can represent that the splitting is quadtree splitting, the lower right sub-block is the largest sub-block, and the ratio of the block width of the largest sub-block to the smallest sub-block is 2:1. In this case, the 24×24 block is divided into 8×8 sub-blocks and 16×8 sub-blocks, 8×16 sub-blocks and 16×16 sub-blocks.

[0608] For example, for a 32×32 block, as​ As shown in (c1), the written parameters can indicate that the split is a ternary tree split, the split is a vertical split, and the ratio of the block widths of the sub-blocks is 1:1:2. In this case, a 32×32 block is split into two 8×32 sub-blocks and a 16×32 sub-block.

[0609] As another example, for a 32×32 block, as ​ shown in (c2), the written parameters can indicate that the split is a ternary tree split, the split is a vertical split, and the ratio of the block widths of the sub-blocks is 2:1:1. In this case, a 32×32 block is split into a 16×32 sub-block and two 8×16 sub-blocks.

[0610] For example, for a 32×32 block, as ​ shown in (d1), the written parameters can indicate that the split is a quadtree split and that both horizontal and vertical directions are included in the split. In this case, a 32×32 block is split into four 16×16 sub-blocks.

[0611] As another example, for a 32×32 block, as ​ shown in (d2), it can be indicated by the written parameters that the split is a quadtree split and that only the vertical direction is included in the split. In this case, a 32×32 block is split into four 8×32 sub-blocks.

[0612] As ​ such, in the present embodiment, at least one of the height and width of the sub-block is a power of 2. Additionally, the height and / or width of the sub-block may not be limited to a power of 2.

[0613] In step S11005, the sub-blocks are encoded through an encoding process. Here, the encoding process includes a transform process and / or a prediction process. The transform process can be performed for each block of a size similar to that of the sub-block.

[0614] [Encoding device]

[0615] The configuration of the video / image encoding device of the present embodiment is the same as that of Embodiment 2, ​ so the illustration and description are omitted.

[0616] [Decoding process]

[0617] ​ Shows an example of the video decoding process for Embodiment 7.

[0618] As the first step S12001, parameters are parsed from the bitstream. ​ Indicates the parsable position of the above parameters in the compressed video bitstream.

[0619] Next, in step S12002, it is determined whether the parsed parameter is equal to the specified value.

[0620] When the parsed parameter is equal to the specified value (Yes in S12002), in step S12003, the block is divided into a specified number of sub - blocks of the first geometric figure set. When the parsed geometric figure is not equal to the specified value (No in S12002), in step S12004, the block is divided into a specified number of sub - blocks of another geometric figure set different from the first geometric figure set.

[0621] The parsed parameter can represent a splitting pattern (e.g., quadtree / binary tree / multi - tree splitting, vertical / horizontal splitting, symmetric / asymmetric splitting, and the ratio of the block width / block height of the sub - blocks).

[0622] For example, for a 24×32 block, as ​ shown in (a1), the parsed parameter can represent that the splitting is binary - tree splitting, the splitting is vertical splitting, and the ratio of the block widths of the 2 sub - blocks is 1:2. In this case, the 24×32 block is divided into 8×32 sub - blocks and 16×32 sub - blocks.

[0623] As another example, for a 24×32 block, as ​ shown in (a2), the parsed parameter can represent that the splitting is binary - tree splitting, the splitting is vertical splitting, and the ratio of the block widths of the 2 sub - blocks is 2:1. In this case, the 24×32 block is divided into 16×32 sub - blocks and 8×32 sub - blocks.

[0624] For example, for a 24×24 block, as ​ shown in (b1), the parsed parameter can represent that the splitting is quadtree splitting, the upper - left sub - block is the largest sub - block, and the ratio of the block width of the largest sub - block to the smallest sub - block is 2:1. In this case, the 24×24 block is divided into 16×16 sub - blocks, 8×16 sub - blocks, 16×8 sub - blocks, and 8×8 sub - blocks.

[0625] As another example, for a 24×24 block, as ​ shown in (b2), the parsed parameter can represent that the splitting is quadtree splitting, the lower - right sub - block is the largest sub - block, and the ratio of the block width of the largest sub - block to the smallest sub - block is 2:1. In this case, the 24×24 block is divided into 8×8 sub - blocks, 16×8 sub - blocks, 8×16 sub - blocks, and 16×16 sub - blocks.

[0626] For example, for a 32×32 block, as ​As shown in (c1), the parsed parameters can indicate that the segmentation is a ternary tree segmentation, the segmentation is a vertical segmentation, and the ratio of the block widths of the sub-blocks is 1:1:2. In this case, the 32×32 block is divided into two 8×32 sub-blocks and a 16×32 sub-block.

[0627] As another example, for a 32×32 block, as ​ shown in (c2), the parsed parameters can indicate that the segmentation is a ternary tree segmentation, the segmentation is a vertical segmentation, and the ratio of the block widths of the sub-blocks is 2:1:1. In this case, the 32×32 block is divided into a 16×32 sub-block and two 8×16 sub-blocks.

[0628] For example, for a 32×32 block, as ​ shown in (d1), the parsed parameters can indicate that the segmentation is a quadtree segmentation and that both horizontal and vertical directions are included in the segmentation. In this case, the 32×32 block is divided into four 16×16 sub-blocks.

[0629] As another example, for a 32×32 block, as ​ shown in (d2), the parsed parameters can indicate that the segmentation is a quadtree segmentation and that only the vertical direction is included in the segmentation. In this case, the 32×32 block is divided into four 8×32 sub-blocks.

[0630] As ​ such, in the present embodiment, at least one of the height and width of the sub-block is a power of 2. Additionally, the height and / or width of the sub-block may not be limited to a power of 2.

[0631] In step S12005, the sub-block is decoded through a decoding process. Here, the inverse transformation process and / or the prediction process are included in this decoding process. The inverse transformation process can be performed for each block of the same size as the sub-block.

[0632] [Decoding Device]

[0633] The configuration of the video / image encoding device of the present embodiment is the same as that of Embodiment 2, ​ so the illustration and description thereof are omitted.

[0634] (Embodiment 8)

[0635] [Summary]

[0636] The encoding device according to the present embodiment is an encoding device that encodes blocks of an image, and includes a processor and a memory connected to the processor; the processor uses the memory to perform the following processing: reading out the geometry of a block, and determining whether the read geometry is equal to a specified geometry; in the case where the read geometry is equal to the specified geometry, dividing the block into a first number of sub-blocks; in the case where the read geometry is not equal to the specified geometry, dividing the block into a number of sub-blocks that is not equal to the first number; and encoding the sub-blocks through an encoding process including a transformation process and / or a prediction process.

[0637] Accordingly, it is possible to divide a block into sub-blocks based on the geometry of the block. Therefore, it is possible to reduce the amount of code related to block division information, and it is possible to improve the compression efficiency. Furthermore, it is possible to make the number of sub-blocks independent of the geometry of the block. As a result, it is possible to divide the block more effectively, and it is possible to improve the compression efficiency.

[0638] For example, in the encoding device according to the present embodiment, the geometry may represent at least the shape, height, or width of the block.

[0639] Accordingly, the shape and / or size of the block can be used as the geometry.

[0640] For example, in the encoding device according to the present embodiment, at least one of the height and width of the sub-block may be a power of 2.

[0641] Accordingly, it is possible to divide the block such that at least one of the height and width of the sub-block is a power of 2. Therefore, it is possible to obtain sub-blocks having a size suitable for encoding, and it is possible to improve the compression efficiency.

[0642] The decoding device according to the present embodiment is a decoding device that decodes blocks of an image, and includes a processor and a memory connected to the processor; the processor uses the memory to perform the following processing: reading out the geometry of a block, and determining whether the read geometry is equal to a specified geometry; in the case where the read geometry is equal to the specified geometry, dividing the block into a first number of sub-blocks; in the case where the read geometry is not equal to the specified geometry, dividing the block into a number of sub-blocks that is not equal to the first number; and decoding the sub-blocks through a decoding process including an inverse transformation process and / or a prediction process.

[0643] Thus, a block can be divided into sub-blocks based on the number of geometric shapes of the block. As a result, the amount of code related to block division information can be reduced, and the compression efficiency can be improved. Furthermore, the number of sub-blocks can be made independent of the geometric shape of the block. Consequently, the block can be divided more effectively, and the compression efficiency can be improved.

[0644] For example, in the decoding device according to the present embodiment, the geometric shape may represent at least the shape, height, or width of the block.

[0645] Thus, the shape and / or size of the block can be used as the geometric shape.

[0646] For example, in the decoding device according to the present embodiment, at least one of the height and width of the above-mentioned sub-block may be a power of 2.

[0647] Thus, the block can be divided such that at least one of the height and width of the sub-block is a power of 2. As a result, sub-blocks having a size suitable for encoding can be used, and the compression efficiency can be improved.

[0648] In addition, these inclusive or specific forms may be implemented by a system, method, integrated circuit, computer program, or a recording medium such as a computer-readable CD-ROM, or may be implemented by any combination of a system, method, integrated circuit, computer program, and recording medium.

[0649] Hereinafter, methods for encoding and decoding an image will be described according to embodiments as ​ and ​ respectively shown.

[0650] [Encoding Process]

[0651] Figure 23 An example of an image encoding process according to Embodiment 8 is shown.

[0652] As a first step S13001, the geometric shape of the block is read out. Here, the geometric shape represents at least the shape, height, or width of the block. As Figure 44 shown, if different geometric shapes are used, the shapes, block heights, or block widths of the multiple sub-blocks as the result of block division are also different.

[0653] Next, in step S13002, it is determined whether the read geometric shape is equal to a specified geometric shape.

[0654] In the case where the read geometric figure is equal to the specified geometric figure (YES in S13002), in step S13003, the block is divided into a first number of sub-blocks. In the case where the read geometric figure is not equal to the specified geometric figure (NO in S13002), in step S13004, the block is divided into a number of sub-blocks that is not equal to the first number.

[0655] For example, as Figure 47A shown in (a1) of, if the block width of the block is a power of 2, the block (e.g., 32×32) can be vertically divided into 4 sub-blocks of the same size (e.g., 8×32). On the other hand, as Figure 47A shown in (a2) of, if the block width of the block is not a power of 2, the block (e.g., 24×32) can be vertically divided into 3 sub-blocks of the same size (e.g., 8×32).

[0656] As another example, as Figure 47B shown in (b1) of, if both the block width and the block height of the block are powers of 2 and the block width is 2 times the block height, the block (e.g., 64×32) can be equally divided into 8 sub-blocks of equal size (e.g., 16×16). On the other hand, as Figure 47B shown in (b2) of, if both the block width and the block height of the block are powers of 2 and the block width is the same as the block height, the block (e.g., 32×32) can be equally divided into 4 sub-blocks of equal size (e.g., 16×16).

[0657] As Figures 47A to 47B such, in the present embodiment, at least one of the height and width of the sub-block is a power of 2. In addition, the height and / or width of the sub-block may not be limited to a power of 2.

[0658] In step S13005, the sub-blocks are encoded by an encoding process. Here, the encoding process includes a transform process and / or a prediction process. The transform process can be performed for each block of a size similar to that of the sub-block.

[0659] [Encoding device]

[0660] The configuration of the video / image encoding device of the present embodiment is the same as that of Embodiment 2, Figure 35 so the illustration and description are omitted.

[0661] [Decoding process]

[0662] Figure 24 An example of the video decoding process according to Embodiment 8 is shown.

[0663] As a first step S14001, the geometric figure of the block is read. Here, the geometric figure represents at least the shape, height, or width of the block. As Figure 44As shown, if different geometric figures are used, the shapes, block heights, or block widths of the multiple sub-blocks resulting from block segmentation are also different.

[0664] Next, in step S14002, it is determined whether the read geometric figure is equal to a specified geometric figure.

[0665] When the read geometric figure is equal to the specified geometric figure (Yes in S14002), in step S14003, the block is divided into a first number of sub-blocks. When the read geometric figure is not equal to the specified geometric figure (No in S14002), in step S14004, the block is divided into a number of sub-blocks that is not equal to the first number.

[0666] For example, as Figure 47A shown in (a1) of, if the block width of the block is a power of 2, the block (e.g., 32×32) can be vertically divided into 4 sub-blocks of the same size (e.g., 8×32). On the other hand, as Figure 47A shown in (a2) of, if the block width of the block is not a power of 2, the block (e.g., 24×32) can be vertically divided into 3 sub-blocks of the same size (e.g., 8×32).

[0667] As another example, as Figure 47B shown in (b1) of, if both the block width and block height of the block are powers of 2 and the block width is 2 times the block height, the block (e.g., 64×32) can be equally divided into 8 sub-blocks of equal size (e.g., 16×16). On the other hand, as Figure 47B shown in (b2) of, if both the block width and block height of the block are powers of 2 and the block width is the same as the block height, the block (e.g., 32×32) can be equally divided into 4 sub-blocks of equal size (e.g., 16×16).

[0668] As Figures 47A to 47B such, in the present embodiment, at least one of the height and width of the sub-block is a power of 2. Additionally, the height and / or width of the sub-block may not be limited to a power of 2.

[0669] In step S14005, the sub-blocks are decoded through a decoding process. Here, the inverse transformation process and / or prediction process is included in this decoding process. The inverse transformation process can be performed for each block of a size similar to that of the sub-block.

[0670] [Decoding device]

[0671] The configuration of the video / image encoding device of the present embodiment is the same as that of Embodiment 2, Figure 36 so the illustration and description are omitted.

[0672] (Embodiment 9)

[0673] [Summary]

[0674] The encoding device according to this embodiment is an encoding device that encodes blocks of an image, and includes a processor and a memory connected to the processor; the processor uses the memory to perform the following processing: write parameters into a bitstream; determine whether the written parameters are equal to a specified value; when the written parameters are equal to the specified value, divide the block into a first number of sub-blocks, the first number being greater than 2 when the division of the block is in a single direction of vertical or horizontal, and greater than 3 when the division of the block is not in a single direction of vertical or horizontal; when the written parameters are not equal to the specified value, divide the block into a second number of sub-blocks that is not equal to the first number, the second number being greater than 2 when the division of the block is in a single direction of vertical or horizontal, and greater than 3 when the division of the block is not in a single direction of vertical or horizontal; encode the sub-blocks through an encoding process including a transform process and / or a prediction process.

[0675] Thereby, it is possible to switch the number of divided sub-blocks according to whether the parameter is equal to the specified value.

[0676] The decoding device according to this embodiment is a decoding device that decodes blocks of an image, and includes a processor and a memory connected to the processor; the processor uses the memory to perform the following processing: parse parameters from a bitstream; determine whether the parsed parameters are equal to a specified value; when the parsed parameters are equal to the specified value, divide the block into a first number of sub-blocks, the first number being greater than 2 when the division of the block is in a single direction of vertical or horizontal, and greater than 3 when the division of the block is not in a single direction of vertical or horizontal; when the parsed parameters are not equal to the specified value, divide the block into a second number of sub-blocks that is not equal to the first number, the second number being greater than 2 when the division of the block is in a single direction of vertical or horizontal, and greater than 3 when the division of the block is not in a single direction of vertical or horizontal; decode the sub-blocks through a decoding process including an inverse transform process and / or a prediction process.

[0677] Thereby, it is possible to switch the number of divided sub-blocks according to whether the parameter is equal to the specified value.

[0678] In addition, these inclusive or specific forms can also be implemented by a system, a method, an integrated circuit, a computer program, or a recording medium such as a computer-readable CD-ROM, or can be implemented by any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0679] Hereinafter, for the method of encoding an image and the method of decoding it, asFigure 25 and Figure 26 will be described according to the embodiments as shown respectively.

[0680] [Coding process]

[0681] Figure 25 It represents an example of video coding processing related to Embodiment 9.

[0682] As the first step S15001, parameters are written into the bitstream. Figure 37 It represents the writable position of the above parameters in the compressed video bitstream.

[0683] Next, in step S15002, it is determined whether the written parameter is equal to a specified value.

[0684] When the written parameter is equal to the specified value (Yes in S15002), in step S15003, the block is divided into a first number of sub-blocks. Here, if the block division process is in one direction of vertical or horizontal, the first number is greater than 2, and if the block division process is not in one direction of vertical or horizontal, the first number is greater than 3. When the written parameter is not equal to the specified value (No in S15002), in step S15004, the block is divided into a second number of sub-blocks that is not equal to the first number. Here, if the block division process is in one direction of vertical or horizontal, the second number is greater than 2, and if the block division process is not in one direction of vertical or horizontal, the second number is greater than 3.

[0685] For example, for a 32×32 block, as Figure 48A shown in (a1) of, the written parameter can indicate that the division is a quadtree division and only includes vertical in the division. In this case, the 32×32 block is divided into 4 8×32 sub-blocks.

[0686] As another example, for a 32×32 block, as Figure 48A shown in (a2) of, the written parameter can indicate that the division is a ternary tree division, the division is a vertical division, and the ratio of the block widths of the sub-blocks is 1:2:1. In this case, the 32×32 block is divided into 8×32 sub-blocks, 16×32 sub-blocks, and 8×32 sub-blocks.

[0687] For a 32×32 block, for example, as Figure 48B shown in (b1) of, the written parameter can indicate that the division is a quadtree division and only includes horizontal in the division. In this case, the 32×32 block is divided into 4 32×8 sub-blocks.

[0688] As another example, for a 32×32 block, as Figure 48BAs shown in (b2), the written parameters can indicate that the segmentation is a ternary tree segmentation, the segmentation is a horizontal segmentation, and the ratio of the block heights of the sub-blocks is 1:2:1. In this case, a 32×32 block is divided into 32×8 sub-blocks, 32×16 sub-blocks, and 32×8 sub-blocks.

[0689] For a 32×32 block, for example, as Figure 48C shown in (c1), the written parameters can indicate that the segmentation is a quadtree segmentation and that both horizontal and vertical directions are included in the segmentation. In this case, a 32×32 block is divided into 4 16×16 sub-blocks.

[0690] As another example, for a 32×32 block, as Figure 48C shown in (c2), the written parameters can indicate that the segmentation is a multi-tree segmentation, both horizontal and vertical directions are included in the segmentation, and the number of sub-blocks is 16. In this case, a 32×32 block is divided into 16 8×8 sub-blocks.

[0691] In step S15005, the sub-blocks are encoded through an encoding process. Here, the transformation process and / or the prediction process are included in this encoding process. The transformation process can be performed for each block of a size similar to that of the sub-block.

[0692] [Encoding device]

[0693] The structure of the video / image encoding device of this embodiment is the same as that of Embodiment 2, Figure 35 so the illustration and description are omitted.

[0694] [Decoding process]

[0695] Figure 26 An example of the video decoding process related to Embodiment 9 is shown.

[0696] As the first step S16001, the parameters are parsed from the bitstream. Figure 37 The parsable positions of the above parameters in the compressed video bitstream are shown.

[0697] Next, in step S16002, it is determined whether the parsed parameters are equal to the specified values.

[0698] When the parsed parameter is equal to the specified value (yes in S16002), in step S16003, the block is divided into a first number of sub-blocks. Here, if the block division process is in one direction, either vertical or horizontal, the first number is greater than 2, and if the block division process is not in one direction, either vertical or horizontal, the first number is greater than 3. When the parsed parameter is not equal to the specified value (no in S16002), in step S16004, the block is divided into a second number of sub-blocks that is not equal to the first number. Here, if the block division process is in one direction, either vertical or horizontal, the second number is greater than 2, and if the block division process is not in one direction, either vertical or horizontal, the second number is greater than 3.

[0699] For example, for a 32×32 block, as Figure 48A shown in (a1) of, the parsed parameter can indicate that the division is a quadtree division and that only the vertical direction is included in the division. In this case, the 32×32 block is divided into 4 8×32 sub-blocks.

[0700] As another example, for a 32×32 block, as Figure 48A shown in (a2) of, the parsed parameter can indicate that the division is a ternary tree division, the division is a vertical division, and the ratio of the block widths of the sub-blocks is 1:2:1. In this case, the 32×32 block is divided into an 8×32 sub-block, a 16×32 sub-block, and an 8×32 sub-block.

[0701] For example, for a 32×32 block, as Figure 48B shown in (b1) of, the parsed parameter can indicate that the division is a quadtree division and that only the horizontal direction is included in the division. In this case, the 32×32 block is divided into 4 32×8 sub-blocks.

[0702] As another example, for a 32×32 block, as Figure 48B shown in (b2) of, the parsed parameter can indicate that the division is a ternary tree division, the division is a horizontal division, and the ratio of the block heights of the sub-blocks is 1:2:1. In this case, the 32×32 block is divided into a 32×8 sub-block, a 32×16 sub-block, and a 32×8 sub-block.

[0703] For example, for a 32×32 block, as Figure 48C shown in (c1) of, the parsed parameter can indicate that the division is a quadtree division and that both vertical and horizontal directions are included in the division. In this case, the 32×32 block is divided into 4 16×16 sub-blocks.

[0704] As another example, for a 32×32 block, as Figure 48CAs shown in (c2), the parsed parameters can indicate that the segmentation is a multi-way tree segmentation, includes both horizontal and vertical directions in the segmentation, and the number of sub-blocks is 16. In this case, a 32×32 block is divided into 16 8×8 sub-blocks.

[0705] In step S16005, the sub-blocks are decoded through decoding processing. Here, the decoding processing includes inverse transformation processing and / or prediction processing. The inverse transformation processing can be performed for each block of the same size as the sub-block.

[0706] [Decoding device]

[0707] The structure of the video / image encoding device of this embodiment is the same as that of Embodiment 2, Figure 36 so the illustration and description are omitted.

[0708] (Embodiment 10)

[0709] [Overview]

[0710] The encoding device related to this embodiment is an encoding device that encodes blocks of an image, and includes a processor and a memory connected to the processor; the processor uses the memory to perform the following processing: writing partition candidate selection parameters into a bitstream, and using the written partition candidate selection parameters, selecting a small set of block segmentation information from a large set of specified block segmentation information; writing partition selection parameters into the bitstream, and using the written partition selection parameters, determining block segmentation information only from the selected small set of block segmentation information; if the determined block segmentation information is used, the block is divided into multiple sub-blocks of a geometric figure set, and if other block segmentation information is used, the block is divided into multiple sub-blocks of other geometric figure sets; using the determined block segmentation information, dividing the block into multiple sub-blocks, and encoding the sub-blocks through encoding processing including transformation processing and / or prediction processing.

[0711] Thus, it is possible to sequentially select block segmentation information from a set of specified block segmentation information using two parameters. Therefore, if the small sets of block segmentation information are appropriately classified, effective selection can be performed. As a result, the code amount related to block segmentation information can be reduced, and the compression efficiency can be improved.

[0712] For example, in the encoding device related to this embodiment, the geometric figure can also represent at least the shape, height, or width of the block.

[0713] Thus, the shape and / or size of the block can be used as the geometric figure.

[0714] The decoding device according to this embodiment is a decoding device that decodes blocks of an image, and includes a processor and a memory connected to the processor; the processor performs the following processing using the memory: parsing partition candidate selection parameters from a bitstream, and using the parsed partition candidate selection parameters, selecting a small set of block segmentation information from a large set of specified block segmentation information; parsing partition selection parameters from the bitstream, and using the parsed partition selection parameters, determining block segmentation information only from the selected small set of block segmentation information; if the determined block segmentation information is used, the block is divided into multiple sub-blocks of a geometric figure set, and if other block segmentation information is used, the block is divided into multiple sub-blocks of other geometric figure sets; using the determined block segmentation information, dividing the block into multiple sub-blocks; and decoding the sub-blocks through a decoding process including an inverse transform process and / or a prediction process.

[0715] Thus, it is possible to sequentially select block segmentation information from a set of specified block segmentation information using two parameters. Therefore, if the small sets of block segmentation information are appropriately classified, effective selection can be performed. As a result, the code amount related to block segmentation information can be reduced, and the compression efficiency can be improved.

[0716] For example, in the decoding device according to this embodiment, the geometric figure may represent at least the shape, height, or width of the block.

[0717] Thus, the shape and / or size of the block can be used as the geometric figure.

[0718] In addition, these inclusive or specific forms can also be implemented by a system, a method, an integrated circuit, a computer program, or a recording medium such as a computer-readable CD-ROM, or can be implemented by any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0719] Hereinafter, a method for encoding an image and a method for decoding the image will be described according to embodiments as Figure 27 and Figure 28 respectively shown.

[0720] [Encoding Process]

[0721] Figure 27 An example of an image encoding process according to Embodiment 10 is shown.

[0722] As a first step S17001, partition candidate selection parameters are written into the bitstream. Figure 37 The writable position of the partition candidate selection parameters in the compressed image bitstream is shown.

[0723] Next, in step S17002, a small set of block segmentation information is selected from a large set of predetermined block segmentation information using the written partition candidate selection parameters.

[0724] The written partition candidate selection parameters may include, for example, an index used to select a set of block segmentation information from two or more sets of block segmentation information.

[0725] The block segmentation information may be classified into different groups (sets) of block segmentation information according to each segmentation method used (vertical segmentation, horizontal segmentation, quadtree segmentation, etc.). For example, as Figure 49A shown, there are three groups of block segmentation information: a vertical segmentation group (the first set), a horizontal segmentation group (the second set), and a quadtree segmentation group (the third set). The vertical segmentation group corresponds only to vertical segmentation, the horizontal segmentation group corresponds only to horizontal segmentation, and the quadtree segmentation group corresponds only to quadtree segmentation. If the value of the index is 0, the vertical segmentation group is selected. If the value of the index is 1, the horizontal segmentation group is selected. If the value of the index is 2, the quadtree segmentation group is selected.

[0726] The block segmentation information of the encoded blocks may also be classified into different groups of block segmentation information according to each image position. For example, the block segmentation information of the upper left block, the upper block, and the upper right block may be classified into an upper block segmentation group (the first set). The block segmentation information of the lower left block and the left block may be classified into a left block segmentation group (the second set). The block segmentation information of the same position block and the motion compensation reference block may be classified into a temporal block segmentation group (the third set). If the value of the index is 0, the upper block segmentation group is selected. If the value of the index is 1, the left block segmentation group is selected. If the value of the index is 2, the temporal block segmentation group is selected.

[0727] As another example, the written partition candidate selection parameters as Figure 49B shown may include parameters / indexes used to select one or more selected block segmentation information from a set of block segmentation information.

[0728] The block segmentation information may also be a set of parameters indicating whether to horizontally or vertically segment the block. The block segmentation information may also be a set of parameters including a predetermined block width and a predetermined block height of all sub-blocks within the block. In addition, the block segmentation information may also be a set of parameters including an index used to select one segmentation structure candidate from a predetermined list of block partition structure candidates. At this time, the block partition structure as Figure 38 shown visually presents the geometry of all sub-blocks within the block.

[0729] In step S17003, the partition selection parameters are written into the bitstream. Figure 37 Indicates the writable position of the partition selection parameters in the compressed video bitstream.

[0730] Next, in step S17004, using the written partition selection parameter, block segmentation information is determined only from the set of selected block segmentation information. Here, if the determined block segmentation information is used, the block is segmented into multiple sub-blocks of a geometric figure set, and if other block segmentation information is used, the block is segmented into multiple sub-blocks of other geometric figure sets.

[0731] The written partition selection parameter can include, for example, an index used to select one block segmentation information from a small set of selected block segmentation information.

[0732] For example, as Figure 49A shown, in step S17002, a vertical segmentation group (the first set) is selected as a small set of block segmentation information. In the vertical segmentation group, there are three different block partition structures corresponding to three different block segmentation information. If the index value is 0, the first block partition structure of the vertical segmentation group is determined. If the index value is 1, the second block partition structure of the vertical segmentation group is determined. If the index value is 2, the third block partition structure of the vertical segmentation group is determined.

[0733] In another example, the block segmentation information of the upper left block, the upper block, and the upper right block is classified into the upper block segmentation group selected as a small set of block segmentation information in step S17002. If the index value is 0, the block partition structure of the upper left block is determined. If the index value is 1, the block partition structure of the upper block is determined. If the index value is 2, the block partition structure of the upper right block is determined.

[0734] As another example, the written partition selection parameter can include multiple split / merge flags for deriving block segmentation information based on the initial block segmentation information.

[0735] Next, in step S17005, the block is segmented into multiple sub-blocks using the determined block segmentation information.

[0736] In step S17006, the sub-blocks are encoded through an encoding process. Here, the encoding process includes a transformation process and / or a prediction process. The transformation process can be performed for each block of a size similar to that of the sub-block.

[0737] [Encoding device]

[0738] The structure of the video / image encoding device of this embodiment is the same as that of Embodiment 2, Figure 35 so the illustration and description are omitted.

[0739] [Decoding process]

[0740] Figure 28 Shows an example of the video decoding process of Embodiment 10.

[0741] As an initial step S18001, partition candidate selection parameters are parsed from the bitstream. Figure 37 Indicates the parsable position of the partition candidate selection parameters in the compressed video bitstream.

[0742] Next, in step S18002, using the parsed partition candidate selection parameters, a small set of block segmentation information is selected from a large set of predefined block segmentation information.

[0743] The parsed partition candidate selection parameters may include, for example, an index used to select a set of block segmentation information from two or more sets of block segmentation information.

[0744] The block segmentation information may be classified into different groups (sets) of block segmentation information according to each segmentation method used (vertical segmentation, horizontal segmentation, quadtree segmentation, etc.). For example, as Figure 49A shown, there are three groups of block segmentation information: a vertical segmentation group (the first set), a horizontal segmentation group (the second set), and a quadtree segmentation group (the third set). The vertical segmentation group corresponds only to vertical segmentation, the horizontal segmentation group corresponds only to horizontal segmentation, and the quadtree segmentation group corresponds only to quadtree segmentation. If the index value is 0, the vertical segmentation group is selected. If the index value is 1, the horizontal segmentation group is selected. If the index value is 2, the quadtree segmentation group is selected.

[0745] The block segmentation information of the decoded blocks may also be classified into different groups of block segmentation information according to each image position. For example, the block segmentation information of the upper left block, the upper block, and the upper right block may be classified into an upper block segmentation group (the first set). The block segmentation information of the lower left block and the left block may be classified into a left block segmentation group (the second set). The block segmentation information of the same position block and the motion compensation reference block may be classified into a temporal block segmentation group (the third set). If the index value is 0, the upper block segmentation group is selected. If the index value is 1, the left block segmentation group is selected. If the index value is 2, the temporal block segmentation group is selected.

[0746] As another example, the parsed partition candidate selection parameters, as Figure 49B shown, may include parameters / indexes used to select one or more selected block segmentation information from the set of block segmentation information.

[0747] The block segmentation information may also be a set of parameters indicating whether to horizontally or vertically segment the block. The block segmentation information may also be a set of parameters including a predefined block width and a predefined block height of all sub-blocks within the block. In addition, the block segmentation information may also be a set of parameters including an index used to select one segmentation structure candidate from a predefined list of block partition structure candidates. At this time, the block partition structure, as Figure 38 shown, visually presents the geometry of all sub-blocks within the block.

[0748] In step S18003, partition selection parameters are parsed from the bitstream. Figure 37 Indicates the parsable position of the partition selection parameter in the compressed video bitstream.

[0749] Next, in step S18004, using the parsed partition selection parameters, block segmentation information is determined only from a small set of the selected block segmentation information. Here, if the determined block segmentation information is used, the block is divided into multiple sub-blocks of a geometric shape set, and if other block segmentation information is used, the block is divided into multiple sub-blocks of other geometric shape sets.

[0750] The parsed partition selection parameters may include, for example, an index used to select one piece of block segmentation information from the small set of the selected block segmentation information.

[0751] For example, as Figure 49A shown, in step S18002, a vertical segmentation group (the first set) is selected as the small set of block segmentation information. In the vertical segmentation group, there are three different block partition structures corresponding to three different pieces of block segmentation information. If the value of the index is 0, the first block partition structure of the vertical segmentation group is determined. If the value of the index is 1, the second block partition structure of the vertical segmentation group is determined. If the value of the index is 2, the third block partition structure of the vertical segmentation group is determined.

[0752] In another example, the block segmentation information of the upper left block, the upper block, and the upper right block is classified into the upper block segmentation group selected as the small set of block segmentation information in step S18002. If the value of the index is 0, the block partition structure of the upper left block is determined. If the value of the index is 1, the block partition structure of the upper block is determined. If the value of the index is 2, the block partition structure of the upper right block is determined.

[0753] As another example, the parsed partition selection parameters may include multiple split / merge flags used to derive block segmentation information based on the initial block segmentation information.

[0754] Next, in step S18005, the block is divided into multiple sub-blocks using the determined block segmentation information.

[0755] In step S18006, the sub-blocks are decoded through a decoding process. Here, the decoding process includes an inverse transformation process and / or a prediction process. The inverse transformation process can be performed for each block of a size similar to that of the sub-block.

[0756] [Decoding device]

[0757] The structure of the video / image encoding device of this embodiment is the same as that of Embodiment 2, Figure 36 so the illustration and description are omitted.

[0758] (Embodiment 11)

[0759] [Summary]

[0760] The encoding device according to this embodiment is an encoding device that encodes blocks of an image, and includes a processor and a memory connected to the processor; the processor uses the memory to perform the following processing: writing parameters into a bitstream; reading out block information from one or more encoded blocks, and using the read block information to select a small set of block segmentation information from a large set of specified block segmentation information; using the written parameters, determining block segmentation information only from the selected small set of block segmentation information; if the determined block segmentation information is used, the block is divided into multiple sub-blocks of a geometric figure set, and if other block segmentation information is used, the block is divided into multiple sub-blocks of other geometric figure sets; using the determined block segmentation information, dividing the current block into multiple sub-blocks, and encoding the sub-blocks through an encoding process including a transformation process and / or a prediction process.

[0761] Thereby, it is possible to reduce the selectable block segmentation information from the specified block segmentation information through the block information of the encoded blocks, and it is possible to reduce the code amount of the parameters used to select the block segmentation information. As a result, the compression efficiency can be improved.

[0762] For example, in the encoding device according to this embodiment, the geometric figure may represent at least the shape, height, or width of the block.

[0763] Thereby, the shape and / or size of the block can be used as the geometric figure.

[0764] For example, in the encoding device according to this embodiment, the current block and the one or more encoded blocks are different blocks from each other, and at least one of the one or more encoded blocks may be included in the same frame as the current block or in another frame different from the frame of the current block.

[0765] Thereby, it is possible to read out block information from one or more mutually different encoded blocks, and it is possible to select a more appropriate small set of block segmentation information. As a result, the code amount related to the block segmentation information can be reduced, and the compression efficiency can be improved.

[0766] For example, in the encoding device according to this embodiment, the read block information may include at least one of information related to block partition structure, intra prediction mode or inter prediction mode, intra prediction direction, motion vector, reference picture, quantization parameter, and segmentation depth.

[0767] Thereby, information more suitable for the selection of the small set of block segmentation information can be used as the block information.

[0768] The decoding device according to this embodiment is a decoding device that decodes blocks of an image, and includes a processor and a memory connected to the processor; the processor uses the memory to perform the following processing: parsing parameters from a bitstream; reading block information from one or more decoded blocks, and using the read block information, selecting a small set of block segmentation information from a large set of predetermined block segmentation information; using the parsed parameters, determining block segmentation information only from the selected small set of block segmentation information; if the determined block segmentation information is used, the block is divided into a plurality of sub-blocks of a geometric figure set, and if other block segmentation information is used, the block is divided into a plurality of sub-blocks of other geometric figure sets; using the determined block segmentation information, dividing the current block into a plurality of sub-blocks; and decoding the sub-blocks through a decoding process including an inverse transformation process and / or a prediction process.

[0769] Thereby, it is possible to reduce the selectable block segmentation information from the predetermined block segmentation information based on the block information of the decoded blocks, and it is possible to reduce the code amount of the parameters used to select the block segmentation information. As a result, the compression efficiency can be improved.

[0770] For example, in the decoding device according to this embodiment, the geometric figure may represent at least the shape, height, or width of the block.

[0771] Thereby, the shape and / or size of the block can be used as the geometric figure.

[0772] For example, in the decoding device according to this embodiment, the current block and the one or more decoded blocks are different blocks from each other, and at least one of the one or more decoded blocks may be included in the same frame as the current block or in another frame different from the frame of the current block.

[0773] Thereby, it is possible to read block information from one or more different decoded blocks, and it is possible to select a more appropriate small set of block segmentation information. As a result, the code amount related to the block segmentation information can be reduced, and the compression efficiency can be improved.

[0774] For example, in the decoding device according to this embodiment, the read block information may include at least one of information related to block partition structure, intra prediction mode or inter prediction mode, intra prediction direction, motion vector, reference picture, quantization parameter, and segmentation depth.

[0775] Thereby, information more suitable for the selection of the small set of block segmentation information can be used as the block information.

[0776] In addition, these inclusive or specific forms can also be implemented by a system, a method, an integrated circuit, a computer program, or a recording medium such as a computer-readable CD-ROM, or can be implemented by any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0777] For the method of encoding an image and the method of decoding it, as described respectively in Figure 29 and Figure 30 they will be described according to the embodiments.

[0778] [Encoding Process]

[0779] Figure 29 This represents an example of the image encoding process for Embodiment 11.

[0780] As the first step S19001, parameters are written into the bitstream. Figure 37 This indicates the writable position of the parameters in the compressed image bitstream.

[0781] Next, in step S19002, block information (e.g., position, block partition structure, intra prediction mode or inter prediction mode, intra prediction direction, motion vector, reference picture, quantization parameter, and segmentation depth) is read out from one or more encoded blocks.

[0782] In step S19003, using the read-out block information, a small set of block partition information is selected from a large set of specified block partition information.

[0783] For example, using the read-out block information, first, predicted block partition information can be derived. Then, from the large set of specified block partition information, the block partition information having a block partition structure similar to the predicted block partition information is selected and added to the small set of block partition information. In the selection of this block partition information, for example, if the predicted block partition information indicates only vertical segmentation, then the block partition structure with only vertical segmentation ( Figure 49A the first set) is selected. In the selection of this block partition information, for example, if the predicted block partition information indicates only horizontal segmentation, then the block partition structure with only horizontal segmentation ( Figure 49A the second set) is selected. As another example, in the selection of this block partition information, as Figure 50 shown, the block partition structure having the same / similar geometry as the block partition structure corresponding to the predicted block partition information is selected.

[0784] The block splitting information may also be a parameter set indicating whether to split the block horizontally or vertically. In addition, the block splitting information may also be a parameter set including the specified block width and the specified block height of all the sub-blocks within the block. The block splitting information may also be a parameter set including an index for selecting one split structure candidate from a candidate list of block partitions constructed from the specified block partitions. At this time, the block partition structure is as shown in Figure 38 and visually presents the geometries of all the sub-blocks within the block.

[0785] As the predicted block partition structure of the current block, the block partition structure of the encoded block may be used as it is.

[0786] It is also possible to combine the block partition structures of two or more encoded blocks (for example, as shown in Figure 39 where the upper half uses the block partition structure of the upper block and the remaining half uses the block partition structure of the left block) to derive a new block partition structure as the predicted block partition structure of the current block. As a method for selecting an encoded block, as an example, there is a method of selecting an encoded block with the same intra-frame / inter-frame prediction mode as the current block. Specifically, if the current block is an inter-frame prediction block, one or more encoded blocks encoded using inter-frame prediction are selected.

[0787] It is also possible to correct the block partition structure of the encoded block (for example, as shown in Figure 40 using a block partition structure with a shallower split depth) to derive a new block partition structure as the predicted block partition structure of the current block.

[0788] The predicted block splitting information may also vary according to the information on the intra-frame prediction direction of the encoded block. For example, in order to predict whether to split the current block vertically or horizontally into smaller blocks, the information on the intra-frame prediction direction at a specific adjacent block position may also be used. For example, if it is determined that the information on the intra-frame prediction direction of the upper adjacent block is vertical or close to vertical, for the current block, block splitting information including vertical splitting may be predicted. Similarly, if it is determined that the information on the intra-frame prediction direction of the left adjacent block is horizontal or close to horizontal, for the current block, block splitting information including horizontal splitting may be predicted.

[0789] The block splitting information may also be predicted according to the intra-frame / inter-frame prediction mode of the encoded block. For example, when the prediction mode of the encoded block is the intra-frame prediction mode, specified block splitting information for splitting the block into multiple sub-blocks with a relatively small block size may be predicted. In addition, for example, when the prediction mode of the encoded block is the inter-frame prediction mode, other specified block splitting information for splitting the block into multiple sub-blocks with a relatively large block size may be predicted.

[0790] The block partition information can also be predicted according to the motion vectors of the encoded blocks. For example, when the difference between the motion vector of an encoded block and the motion vector of the current block is greater than a specified threshold, it is possible to predict specified block partition information for partitioning the block into a plurality of sub-blocks with a relatively small block size. On the other hand, when the difference between the motion vector of the encoded block and the motion vector of the current block is equal to or less than the specified threshold, it is possible to predict other specified block partition information for partitioning the block into a plurality of sub-blocks with a relatively large block size.

[0791] The block partition information can also be predicted according to the quantization parameter of the encoded block. For example, when the value of the quantization parameter of the encoded block is smaller than a specified value, it is possible to predict specified block partition information for partitioning the block into a plurality of sub-blocks with a relatively small block size. In addition, for example, when the value of the quantization parameter of the encoded block is equal to or greater than the specified value, it is possible to predict other specified block partition information for partitioning the block into a plurality of sub-blocks with a relatively large block size.

[0792] The block partition information can also be predicted according to the reference picture information of the encoded block. For example, when the reference picture of the encoded block is temporally close to the current picture or the reference pictures of a plurality of encoded blocks are similar to each other, it is possible to predict specified block partition information for partitioning the block into a plurality of sub-blocks with a relatively large block size. When the reference picture of the encoded block is not temporally close to the current picture or the reference pictures of a plurality of encoded blocks are not similar to each other, it is possible to predict other specified block partition information for partitioning the block into a plurality of sub-blocks with a relatively small block size.

[0793] The block partition information can also be predicted according to the partition depth of the encoded block. For example, when the partition depth of the encoded block is greater than a specified value (e.g., 4), it is possible to predict specified block partition information for partitioning the block into a plurality of sub-blocks with a relatively small block size. When the partition depth of the encoded block is equal to or less than the specified value (e.g., when the partition depth is equal to 2), it is possible to predict other specified block partition information for partitioning the block into a plurality of sub-blocks with a relatively large block size.

[0794] The block partition information can also be predicted according to the partition information of the encoded blocks in a frame different from the current frame. For example, the block partition information (including separation information) for the current block or the separation information of the current block can be predicted based on the encoded blocks in an encoded frame different from the current frame (e.g., collocated blocks, the last encoded block, or the encoded block determined by the motion vector, etc.).

[0795] The block segmentation information of the encoded blocks can also be classified into different groups of block segmentation information for each image position. For example, the block segmentation information of the upper left block, the upper block, and the upper right block can be classified into the upper block segmentation group (the first set). The block segmentation information of the lower left block and the left block can be classified into the left block segmentation group (the second set). The block segmentation information of the blocks at the same position and the motion compensation reference blocks can be classified into the temporal block segmentation group (the third set). If the value of the index is 0, the upper block segmentation group is selected. If the value of the index is 1, the left block segmentation group is selected. If the value of the index is 2, the temporal block segmentation group is selected.

[0796] Next, in step S19004, using the written parameters, the block segmentation information is determined only from the small set of the selected block segmentation information. Here, if the determined block segmentation information is used, the block is divided into a plurality of sub-blocks of the geometric figure set, and if other block segmentation information is used, the block is divided into a plurality of sub-blocks of other geometric figure sets. The written parameters can include, for example, an index used to select one block segmentation information from the small set of the selected block segmentation information.

[0797] For example, the block segmentation information of the upper left block, the upper block, and the upper right block is classified into the upper block segmentation group selected as the small set of the block segmentation information in step S19003. If the value of the index is 0, the block partition structure of the upper left block is determined. If the value of the index is 1, the block partition structure of the upper block is determined. If the value of the index is 2, the block partition structure of the upper right block is determined.

[0798] As another example, the written parameters can include a plurality of split / merge flags used to derive the block segmentation information from the initial block segmentation information.

[0799] Next, in step S19005, the block is divided into a plurality of sub-blocks using the determined block segmentation information.

[0800] In step S19006, the sub-blocks are encoded through an encoding process. Here, the transformation process and / or the prediction process are included in the encoding process. The transformation process can be performed for each block having the same size as the sub-block.

[0801] [Encoding device]

[0802] The structure of the video / image encoding device of this embodiment is the same as that of Embodiment 2, Figure 35 so the illustration and description are omitted.

[0803] [Decoding process]

[0804] Figure 30 An example of the video decoding process related to Embodiment 11 is shown.

[0805] As a first step S20001, parameters are parsed from the bitstream. Figure 37 Indicates a parsable position of parameters in the compressed video bitstream.

[0806] Next, in step S20002, block information (e.g., position, block partition structure, intra prediction mode or inter prediction mode, intra prediction direction, motion vector, reference picture, quantization parameter, and segmentation depth) is read out from one or more encoded blocks.

[0807] In step S20003, using the read block information, a small set of block partition information is selected from a large set of predefined block partition information.

[0808] For example, using the read block information, first, predicted block partition information can be derived. Next, from the large set of predefined block partition information, block partition information having a block partition structure similar to the predicted block partition information is selected and added to the small set of block partition information. In the selection of this block partition information, for example, if the predicted block partition information indicates only vertical segmentation, a block partition structure with only vertical segmentation ( Figure 49A the first set) is selected. In the selection of this block partition information, for example, if the predicted block partition information indicates only horizontal segmentation, a block partition structure with only horizontal segmentation ( Figure 49A the second set) is selected. As another example, in the selection of this block partition information, Figure 50 as shown, a block partition structure having the same / similar geometry as the block partition structure corresponding to the predicted block partition information is selected.

[0809] The block partition information may also be a parameter set indicating whether to horizontally or vertically segment the block. In addition, the block partition information may also be a parameter set including a predefined block width and a predefined block height of all sub - blocks within the block. The block partition information may also be a parameter set including an index used to select one segmentation structure candidate from a candidate list of predefined block partition structures. At this time, the block partition structure visually presents the geometry of all sub - blocks within the block as Figure 38 shown.

[0810] As the predicted block partition structure of the current block, the block partition structure of the decoded block can be used as it is.

[0811] The block partition structures of two or more decoded blocks may also be combined (e.g., as Figure 39In that case, the upper half uses the block partitioning structure of the upper block, and the remaining half uses the block partitioning structure of the left block), and a new block partitioning structure is derived as the predicted block partitioning structure of the current block. As a method for selecting a decoded block, as an example, there is a method of selecting a decoded block with the same intra / inter prediction mode as the current block. Specifically, if the current block is an inter prediction block, one or more decoded blocks decoded using inter prediction are selected.

[0812] It is also possible to correct the block partitioning structure of the decoded block (for example, as shown in Figure 40 ), using a block partitioning structure with a shallower split depth), and a new block partitioning structure is derived as the predicted block partitioning structure of the current block.

[0813] The predicted block split information can also vary according to the information on the intra prediction direction of the decoded block. For example, in order to predict whether to vertically or horizontally split the current block into smaller blocks, the information on the intra prediction direction at a specific adjacent block position can also be used. For example, if it is determined that the information on the intra prediction direction of the upper adjacent block is vertical or close to vertical, for the current block, block split information including vertical splitting can be predicted. Similarly, if it is determined that the information on the intra prediction direction of the left adjacent block is horizontal or close to horizontal, for the current block, block split information including horizontal splitting can be predicted.

[0814] The block split information can also be predicted according to the intra / inter prediction mode of the decoded block. For example, when the prediction mode of the decoded block is the intra prediction mode, specific block split information for splitting the block into multiple sub-blocks with a relatively small block size can be predicted. In addition, for example, when the prediction mode of the decoded block is the inter prediction mode, other specific block split information for splitting the block into multiple sub-blocks with a relatively large block size can be predicted.

[0815] The block split information can also be predicted according to the motion vector of the decoded block. For example, when the difference between the motion vector of the decoded block and the motion vector of the current block is greater than a specified threshold, specific block split information for splitting the block into multiple sub-blocks with a relatively small block size can be predicted. On the other hand, when the difference between the motion vector of the decoded block and the motion vector of the current block is equal to or less than the specified threshold, other specific block split information for splitting the block into multiple sub-blocks with a relatively large block size can be predicted.

[0816] The block split information can also be predicted according to the quantization parameter of the decoded block. For example, when the value of the quantization parameter of the decoded block is smaller than a specified value, specific block split information for splitting the block into multiple sub-blocks with a relatively small block size can be predicted. In addition, for example, when the value of the quantization parameter of the decoded block is equal to or greater than the specified value, other specific block split information for splitting the block into multiple sub-blocks with a relatively large block size can be predicted.

[0817] The block segmentation information can also be predicted according to the reference picture information of the decoded blocks. For example, in the case where the reference picture of the decoded block is temporally close to the current picture or the reference pictures of multiple decoded blocks are similar to each other, the specified block segmentation information for dividing the block into multiple sub-blocks with a relatively large block size can be predicted. In the case where the reference picture of the decoded block is not temporally close to the current picture or the reference pictures of multiple decoded blocks are not similar to each other, other specified block segmentation information for dividing the block into multiple sub-blocks with a relatively small block size can be predicted.

[0818] The block segmentation information can also be predicted according to the segmentation depth of the decoded blocks. For example, in the case where the segmentation depth of the decoded block is larger than a specified value (e.g., 4), the specified block segmentation information for dividing the block into multiple sub-blocks with a relatively small block size can be predicted. In the case where the segmentation depth of the decoded block is below the specified value (e.g., when the segmentation depth is equal to 2), other specified block segmentation information for dividing the block into multiple sub-blocks with a relatively large block size can be predicted.

[0819] The block segmentation information can also be predicted according to the segmentation information of the decoded blocks in a frame different from the current frame. For example, the block segmentation information (including separation information) for the current block or the separation information of the current block can be predicted based on the decoded blocks in a decoded frame different from the current frame (e.g., collocated blocks, last decoded blocks, or decoded blocks determined by motion vectors, etc.).

[0820] The block segmentation information of the decoded blocks can also be classified into different block segmentation information groups according to each image position. For example, the block segmentation information of the upper left block, the upper block, and the upper right block can be classified into the upper block segmentation group (the first set). The block segmentation information of the lower left block and the left block can be classified into the left block segmentation group (the second set). The block segmentation information of the collocated blocks and the motion compensated reference blocks can be classified into the temporal block segmentation group (the third set). If the value of the index is 0, the upper block segmentation group is selected. If the value of the index is 1, the left block segmentation group is selected. If the value of the index is 2, the temporal block segmentation group is selected.

[0821] Next, in step S20004, using the parsed parameters, the block segmentation information is determined only from the small set of the selected block segmentation information. Here, if the determined block segmentation information is used, the block is divided into multiple sub-blocks of a geometric figure set, and if other block segmentation information is used, the block is divided into multiple sub-blocks of other geometric figure sets.

[0822] The parsed partition selection parameter can include, for example, an index used to select one block segmentation information from the small set of the selected block segmentation information.

[0823] For example, classify the block division information of the upper left block, the upper block, and the upper right block into the upper block division group selected as a small set of block division information in step S20003. If the value of the index is 0, determine the block partition structure of the upper left block. If the value of the index is 1, determine the block partition structure of the upper block. If the value of the index is 2, determine the block partition structure of the upper right block.

[0824] As another example, the parsed partition selection parameters may include a plurality of split / merge flags for deriving block division information from the initial block division information.

[0825] Next, in step S20005, use the determined block division information to divide the block into a plurality of sub-blocks.

[0826] In step S20006, decode the sub-blocks through a decoding process. Here, the decoding process includes an inverse transform process and / or a prediction process. The inverse transform process can be performed for each block having a size approximately the same as that of the sub-block.

[0827] [Decoding device]

[0828] The structure of the video / image encoding device of this embodiment is the same as that of Embodiment 2, Figure 36 so the illustration and description are omitted.

[0829] (Embodiment 12)

[0830] [Summary]

[0831] The encoding device related to this embodiment is an encoding device that encodes blocks of an image, and includes a processor and a memory connected to the processor; the processor uses the memory to perform the following processes: write list correction parameters into a bitstream, use the written list correction parameters to correct a specified block division information list into a corrected block division information list, write partition selection parameters into the bitstream, use the written partition selection parameters to select, from only the corrected block division information list, the block division information for dividing a block into a plurality of sub-blocks, use the selected block division information to divide the block into a plurality of sub-blocks; encode the sub-blocks included in the plurality of sub-blocks through an encoding process including a transform process and / or a prediction process.

[0832] Thus, it is possible to correct a specified block division information list using the list correction parameters in the bitstream. Therefore, it is possible to reduce the code amount related to the block division information and improve the compression efficiency.

[0833] For example, in the encoding device according to the present embodiment, it may also be that in the correction of the above-mentioned predetermined block segmentation information list, the predetermined block segmentation information list is rearranged to generate corrected block segmentation information, and for the above-mentioned partition selection parameter, the block segmentation information with an earlier list order is encoded with fewer bits than the block segmentation information with a later list order.

[0834] Thereby, the predetermined block segmentation information list can be rearranged using the list correction parameter in the bitstream. Therefore, it is easy to arrange the block segmentation information with a high possibility of being selected at the front of the list, and the code amount related to the block segmentation information can be reduced.

[0835] For example, in the encoding device according to the present embodiment, it may also be that in the correction of the above-mentioned predetermined block segmentation information list, additional block segmentation information is inserted into the above-mentioned predetermined block segmentation information list to generate a longer block segmentation information list.

[0836] Thereby, the additional block segmentation information can be inserted into the predetermined block segmentation information list using the list correction parameter in the bitstream. Therefore, it is easy to add the block segmentation information suitable for block segmentation to the list, and the compression efficiency can be improved.

[0837] The decoding device according to the present embodiment is a decoding device that decodes blocks of an image, and includes a processor and a memory connected to the above-mentioned processor; the above-mentioned processor uses the above-mentioned memory to perform the following processing: parsing a list correction parameter from a bitstream, using the parsed above-mentioned list correction parameter to correct a predetermined block segmentation information list into a corrected block segmentation information list, parsing a partition selection parameter from the bitstream, using the parsed above-mentioned partition selection parameter, only selecting, from the above-mentioned corrected block segmentation information list, the block segmentation information that divides a block into a plurality of sub-blocks, using the selected above-mentioned block segmentation information to divide the block into a plurality of sub-blocks, and decoding the sub-blocks included in the above-mentioned plurality of sub-blocks through a decoding process including an inverse transformation process and / or a prediction process.

[0838] Thereby, the predetermined block segmentation information list can be corrected using the list correction parameter in the bitstream. Therefore, the code amount related to the block segmentation information can be reduced, and the compression efficiency can be improved.

[0839] For example, in the decoding device according to the present embodiment, it may also be that in the correction of the above-mentioned predetermined block segmentation information list, the predetermined block segmentation information list is rearranged to generate corrected block segmentation information, and for the above-mentioned partition selection parameter, the block segmentation information with an earlier list order is encoded with fewer bits than the block segmentation information with a later list order.

[0840] Thus, the list of specified block division information can be rearranged by using the list correction parameter in the bitstream. Therefore, it is easy to arrange the block division information with a high selection probability at the front of the list, and the amount of code related to the block division information can be reduced.

[0841] For example, in the decoding apparatus according to the present embodiment, in the correction of the above-described list of specified block division information, additional block division information may be inserted into the above-described list of specified block division information to generate a longer list of block division information.

[0842] Thus, the additional block division information can be inserted into the list of specified block division information by using the list correction parameter in the bitstream. Therefore, it is easy to add the block division information suitable for block division to the list, and the compression efficiency can be improved.

[0843] In addition, these inclusive or specific forms can also be implemented by a system, a method, an integrated circuit, a computer program, or a recording medium such as a computer-readable CD-ROM, or can be implemented by any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0844] Hereinafter, a method for encoding an image and a method for decoding the same will be described according to embodiments as Figure 31 and Figure 32 respectively shown.

[0845] [Encoding Process]

[0846] Figure 31 An example of an image encoding process according to Embodiment 12 is shown.

[0847] As a first step S21001, the list correction parameter is written into the bitstream. Figure 37 The writable position of the parameter in the compressed image bitstream is shown.

[0848] Next, in step S21002, the list of specified block division information is corrected to a corrected block division information list by using the written list correction parameter. This correction may also be, for example, a process of rearranging the list of specified block division information to generate a corrected block division information list. Here, the partition selection parameter is encoded with fewer bits for the block division information with an earlier list order than for the block division information with a later list order. By rearranging, as Figure 51 shown, the list order of the selected block division information becomes earlier, and the encoded bits of the partition selection parameter are reduced.

[0849] For rearrangement of a list, for example, the list can be classified into different block division information groups (e.g., vertical division group, horizontal division group, quadtree division group, and full division group including all block division information). By rearranging these block division information groups, the list is rearranged as shown in Figure 52 In this example, the list correction parameter may include a parameter indicating the order of each block division group in the corrected block division information list.

[0850] By using the geometry of the current block, the block division information of each group can be implicitly restricted. For example, it can be made such that only divisions with a block width and block height that are powers of 2 can be used. In the case of these block division information, divisions with a sub-block width or sub-block height that is not a power of 2 are not used in this group.

[0851] As another example, the correction can also be a process of creating a longer block division information list by inserting additional block division information into a specified block division information list. If the most likely-to-be-used block division information is inserted at the beginning of the list, the encoding bits of the partition selection parameter become fewer. Here, compared with the block division information with a later list order, the partition selection parameter is encoded with fewer bits for the block division information with an earlier list order.

[0852] As another example, the correction can also be a process of creating a shorter block division information list by deleting block division information from a specified block division information list. If the less likely-to-be-used block division information that is earlier than the most likely-to-be-used block division information is deleted, the encoding bits of the partition selection parameter become fewer. Here, compared with the block division information with a later list order, the partition selection parameter is encoded with fewer bits for the block division information with an earlier list order.

[0853] The rearrangement process, insertion process, and deletion process can also be combined (rearrangement and insertion, or rearrangement and deletion, or insertion and deletion, or rearrangement, insertion, and deletion, etc.).

[0854] By using the geometry of the current block, the block division information in the block division information list can be implicitly restricted. For example, it can be made such that only divisions with a block width and block height that are powers of 2 can be used. In the case of these block division information, divisions with a sub-block width or sub-block height that is not a power of 2 are not used in this list.

[0855] The list correction parameter can also indicate, for example, that no correction is required. If no correction is required, step S21002 can be omitted. Therefore, the corrected block division information list is the same as the specified block division information list before proceeding to step S21003.

[0856] In step S21003, the partition selection parameter is written to the bitstream.Figure 37 Indicates a writable position of a parameter in a compressed video bitstream.

[0857] Next, in step S21004, using the written partition selection parameter, only block splitting information is selected from the list of corrected block splitting information. Here, the block is split into a plurality of sub-blocks using the selected block splitting information. The written partition selection parameter may include, for example, an index for selecting one piece of block splitting information from a predetermined list of block splitting information. As another example, the written partition selection parameter may include a plurality of split / merge flags for deriving block splitting information based on the initial block splitting information.

[0858] The encoded bits of the partition selection parameter and their meanings differ depending on the selected block splitting information. For example, in the case where only horizontal splitting occurs according to the selected block splitting information, there is no need to indicate whether the splitting is horizontal or vertical splitting, and by simply dividing the block in such a way, it means Figure 53 as shown, the block is split horizontally. On the other hand, in the case where only vertical splitting occurs according to the selected block splitting information, there is no need to indicate whether the splitting is horizontal or vertical splitting, and by simply dividing the block in such a way, it means the block is split vertically.

[0859] In step S21005, the block is split into a plurality of sub-blocks using the selected block splitting information. The selected block splitting information may, for example, become the final block splitting information used to split the block into sub-blocks. As another example, the selected block splitting information may also be prediction block splitting information or initial block splitting information. Based on the prediction block splitting information or the initial block splitting information, the final block splitting information used to split the block into sub-blocks is derived.

[0860] In step S21006, the sub-blocks included in the plurality of sub-blocks are encoded through an encoding process. Here, the encoding process includes a transform process and / or a prediction process. The transform process may be performed on a block of a size similar to that of each sub-block.

[0861] [Encoding device]

[0862] The configuration of the video / image encoding device of this embodiment is the same as that of Embodiment 2 Figure 35 so the illustration and description are omitted.

[0863] [Decoding process]

[0864] Figure 32 Shows an example of the video decoding process of Embodiment 12.

[0865] As a first step S22001, list correction parameters are parsed from the bitstream. Figure 37Indicates a resolvable position of a parameter in a compressed video bitstream.

[0866] Next, in step S22002, the parsed list is used to correct the parameter, and the specified block segmentation information list is corrected to a corrected block segmentation information list. This correction may also be, for example, a process of rearranging the specified block segmentation information list to generate a corrected block segmentation information list. Here, compared with the block segmentation information with a later list order, for the block segmentation information with an earlier list order, the partition selection parameter is decoded with fewer bits. By rearranging, as Figure 51 shown, the list order of the selected block segmentation information becomes earlier, and the decoding bits of the partition selection parameter are reduced.

[0867] For the rearrangement of the list, for example, the list can be classified into different block segmentation information groups (e.g., vertical segmentation group, horizontal segmentation group, quadtree segmentation group, and full segmentation group including all block segmentation information). By rearranging these block segmentation information groups, as Figure 52 shown, the list is rearranged. In this example, the list correction parameter may include a parameter indicating the order of each block segmentation group in the corrected block segmentation information list.

[0868] By using the geometry of the current block, the block segmentation information of each group can be implicitly restricted. For example, it can be made such that only segmentations with a block width and block height that are powers of 2 can be used. In the case of this block segmentation information, segmentations with a sub-block width or sub-block height that is not a power of 2 are not used in this group.

[0869] As another example, the correction may also be a process of creating a longer block segmentation information list by inserting additional block segmentation information into the specified block segmentation information list. If the most likely block segmentation information is inserted at the beginning of the list, the decoding bits of the partition selection parameter become fewer. Here, compared with the block segmentation information with a later list order, for the block segmentation information with an earlier list order, the partition selection parameter is decoded with fewer bits.

[0870] As another example, the correction may also be a process of creating a shorter block segmentation information list by deleting block segmentation information from the specified block segmentation information list. If the less likely block segmentation information that is earlier than the most likely block segmentation information is deleted, the decoding bits of the partition selection parameter become fewer. Here, compared with the block segmentation information with a later list order, for the block segmentation information with an earlier list order, the partition selection parameter is decoded with fewer bits.

[0871] It is also possible to combine the rearrangement process, the insertion process, and the deletion process (rearrangement and insertion, or rearrangement and deletion, or insertion and deletion, or rearrangement, insertion, and deletion, etc.).

[0872] By utilizing the geometry of the current block, the block segmentation information in the block segmentation information list can be implicitly restricted. For example, it is possible to enable only the segmentation with the block width and block height being powers of 2. In the case of such block segmentation information, the segmentation with the width or height of the sub-block not being a power of 2 is not used in the list.

[0873] The list correction parameter can also represent, for example, that no correction is required. If no correction is required, step S22002 can be omitted. Therefore, the corrected block segmentation information list is the same as the specified block segmentation information list before proceeding to step S22003.

[0874] In step S22003, the partition selection parameter is parsed from the bit stream. Figure 37 Represents the parsable position of the parameter in the compressed image bit stream.

[0875] Next, in step S22004, using the parsed partition selection parameter, only the block segmentation information is selected from the corrected block segmentation information list. Here, the block is segmented into multiple sub-blocks using the selected block segmentation information. The parsed partition selection parameter can include, for example, an index used to select one block segmentation information from the specified block segmentation information list. As another example, the parsed partition selection parameter can include multiple split / merge flags used to derive the block segmentation information based on the initial block segmentation information.

[0876] The decoded bits of the partition selection parameter and their meanings vary depending on the selected block segmentation information. For example, in the case where only horizontal segmentation occurs according to the selected ...

Claims

1. An image encoding device, wherein, Comprising: a circuit; and a memory connected to the above-mentioned circuit, during operation of the above-mentioned circuit, obtaining a block from a coding tree unit, i.e., a CTU; when a specified number of sub-blocks of the above-mentioned block is set to 4, dividing the above-mentioned block into 4 sub-blocks, where when the size of the above-mentioned block satisfies the block size condition, dividing the above-mentioned block into 4 sub-blocks in a single direction, and this division includes: when the width of the above-mentioned block is greater than the height of the above-mentioned block and the size of the above-mentioned block is 32×8, dividing the above-mentioned block into 4 8×8 sub-blocks in the vertical direction; and when the height of the above-mentioned block is greater than the width of the above-mentioned block and the size of the above-mentioned block is 8×32, dividing the above-mentioned block into 4 8×8 sub-blocks in the horizontal direction, when the size of the above-mentioned block does not satisfy the above-mentioned block size condition, dividing the above-mentioned block into 4 sub-blocks in the vertical and horizontal directions, and this division includes: when the width of the above-mentioned block is equal to the height of the above-mentioned block and the size of the above-mentioned block is 32×32, dividing the above-mentioned block into 4 16×16 sub-blocks in the vertical and horizontal directions; and encoding the above-mentioned sub-blocks of the above-mentioned block.

2. An image decoding device, wherein, Comprising: a circuit; and a memory connected to the above-mentioned circuit, during operation of the above-mentioned circuit, obtaining a block from a coding tree unit, i.e., a CTU; when a specified number of sub-blocks of the above-mentioned block is set to 4, dividing the above-mentioned block into 4 sub-blocks, where when the size of the above-mentioned block satisfies the block size condition, dividing the above-mentioned block into 4 sub-blocks in a single direction, and this division includes: when the width of the above-mentioned block is greater than the height of the above-mentioned block and the size of the above-mentioned block is 32×8, dividing the above-mentioned block into 4 8×8 sub-blocks in the vertical direction; and when the height of the above-mentioned block is greater than the width of the above-mentioned block and the size of the above-mentioned block is 8×32, dividing the above-mentioned block into 4 8×8 sub-blocks in the horizontal direction, when the size of the above-mentioned block does not satisfy the above-mentioned block size condition, dividing the above-mentioned block into 4 sub-blocks in the vertical and horizontal directions, and this division includes: when the width of the above-mentioned block is equal to the height of the above-mentioned block and the size of the above-mentioned block is 32×32, dividing the above-mentioned block into 4 16×16 sub-blocks in the vertical and horizontal directions; and decoding the above-mentioned sub-blocks of the above-mentioned block.

Citation Information

Patent Citations

  • Content adaptive dominant motion compensated prediction for next generation video coding

    CN105850133A

  • Method and apparatus for obtaining size of transform block

    US20140112593A1