Bitstream transmission device and bitstream transmission method

The bitstream transmission device optimizes block division and signaling in video encoding and decoding to improve compression efficiency and reduce processing load.

JP2026012264APending Publication Date: 2026-01-23PANASONIC INTELLECTUAL PROPERTY CORP OF AMERICA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025180344
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2016-11-21
Filing Date
2025-10-27
Publication Date
2026-01-23

AI Technical Summary

Technical Problem

Existing video encoding and decoding methods face challenges in improving compression efficiency and reducing processing load due to increased overhead in signaling block partitioning information for various block sizes.

Method used

A bitstream transmission device and method that divides image blocks into sub-blocks based on specific geometries and parameters, reducing the amount of code related to block division information.

Benefits of technology

Enhances compression efficiency and reduces processing load by optimizing block division and signaling in video encoding and decoding processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026012264000001_ABST
    Figure 2026012264000001_ABST
Patent Text Reader

Abstract

To provide an encoding device capable of further improving compression efficiency and reducing a processing load.SOLUTION: And a memory coupled to the circuitry, wherein the circuitry, when in operation, writes parameters to the bitstream and, when the parameters have first values of at least a split direction and a number of splits, splits a block of a picture into four sub-blocks having a first set of geometries along a first direction based on the first values; In a case that the parameter has a second value different from a first value including at least a split direction and the number of splits, the block of the picture is split into three sub-blocks having a second geometry set different from the first geometry set along the first direction at a ratio of 1:2:1 in a second direction different from the first direction based on the second value, and a bitstream including a parameter related to splitting of the sub-blocks of the block into encodings is transmitted.SELECTED DRAWING: Figure 15
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a bitstream transmission device and a bitstream transmission method. [Background technology]

[0002] A video coding standard called HEVC (High-Efficiency Video Coding) has been standardized by the Joint Collaborative Team on Video Coding (JCT-VC). [Prior art documents] [Non-patent literature]

[0003] [Non-Patent Document 1] H.265(ISO / IEC 23008-2 HEVC(High Efficiency Video Coding)) Summary of the Invention [Problem to be solved by the invention]

[0004] In such encoding and decoding techniques, there is a demand for further improvement in compression efficiency and reduction in processing load.

[0005] Therefore, the present disclosure provides a bitstream transmission device or a bitstream transmission method that can further improve compression efficiency and reduce processing load. [Means for solving the problem]

[0006] A bitstream transmission device according to one embodiment of the present disclosure comprises a circuit and a memory connected to the circuit, wherein during operation the circuit writes parameters to a bitstream, and when the parameters have a first value consisting of at least a division direction and a division number, divides a block of a picture into four sub-blocks having a first geometry set along a first direction based on the first value, and when the parameters have a second value different from the first value consisting of at least a division direction and a division number, divides the block of the picture into three sub-blocks having a second geometry set different from the first geometry set along the first direction in a 1:2:1 ratio in a second direction different from the first direction based on the second value, and transmits a bitstream including parameters regarding the division of the block into the sub-blocks.

[0007] These general or specific aspects may be realized as a system, a method, an integrated circuit, a computer program, or a computer-readable recording medium such as a CD-ROM, or may be realized as any combination of a system, a method, an integrated circuit, a computer program, and a recording medium. [Effects of the Invention]

[0008] The present disclosure can provide a bitstream transmission device or a bitstream transmission method that can further improve compression efficiency and reduce processing load. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 1 is a block diagram showing a functional configuration of a coding device according to the first embodiment. [Figure 2] FIG. 2 is a diagram showing an example of block division according to the first embodiment. [Figure 3] FIG. 3 is a table showing the transformation basis functions corresponding to each transformation type. [Figure 4A] FIG. 4A is a diagram showing an example of the shape of a filter used in ALF. [Figure 4B]FIG. 4B is a diagram showing another example of the shape of the filter used in ALF. [Figure 4C] FIG. 4C is a diagram showing another example of the shape of the filter used in ALF. [Figure 5A] FIG. 5A is a diagram showing 67 intra prediction modes in intra prediction. [Figure 5B] FIG. 5B is a flowchart for explaining an outline of the predicted image correction process using the OBMC process. [Figure 5C] FIG. 5C is a conceptual diagram for explaining an outline of the predicted image correction process using the OBMC process. [Figure 5D] FIG. 5D is a diagram showing an example of FRUC. [Figure 6] FIG. 6 is a diagram for explaining pattern matching (bilateral matching) between two blocks along a motion trajectory. [Figure 7] FIG. 7 is a diagram for explaining pattern matching (template matching) between a template in a current picture and a block in a reference picture. [Figure 8] FIG. 8 is a diagram for explaining a model assuming uniform linear motion. [Figure 9A] FIG. 9A is a diagram for explaining derivation of a motion vector for each sub-block based on motion vectors of a plurality of adjacent blocks. [Figure 9B] FIG. 9B is a diagram for explaining an outline of the motion vector derivation process in the merge mode. [Figure 9C] FIG. 9C is a conceptual diagram for explaining an outline of the DMVR process. [Figure 9D] FIG. 9D is a diagram for explaining an outline of a predicted image generation method using luminance correction processing by LIC processing. [Figure 10] FIG. 10 is a block diagram showing a functional configuration of a decoding device according to the first embodiment. [Figure 11] FIG. 11 is a flowchart showing an example of a video encoding process according to the second embodiment. [Figure 12]FIG. 12 is a flowchart illustrating an example of a video decoding process according to the second embodiment. [Figure 13] FIG. 13 is a flowchart showing an example of a video encoding process according to the third embodiment. [Figure 14] FIG. 14 is a flowchart showing an example of a video decoding process according to the third embodiment. [Figure 15] FIG. 15 is a flowchart showing an example of a video encoding process according to the fourth embodiment. [Figure 16] FIG. 16 is a flowchart showing an example of a video decoding process according to the fourth embodiment. [Figure 17] FIG. 17 is a flowchart showing an example of a video encoding process according to the fifth embodiment. [Figure 18] FIG. 18 is a flowchart showing an example of a video decoding process according to the fifth embodiment. [Figure 19] FIG. 19 is a flowchart showing an example of a video encoding process according to the sixth embodiment. [Figure 20] FIG. 20 is a flowchart showing an example of a video decoding process according to the sixth embodiment. [Figure 21] FIG. 21 is a flowchart showing an example of a video encoding process according to the seventh embodiment. [Figure 22] FIG. 22 is a flowchart showing an example of a video decoding process according to the seventh embodiment. [Figure 23] FIG. 23 is a flowchart showing an example of a video encoding process according to the eighth embodiment. [Figure 24] FIG. 24 is a flowchart showing an example of a video decoding process according to the eighth embodiment. [Figure 25] FIG. 25 is a flowchart showing an example of a video encoding process according to the ninth embodiment. [Figure 26] FIG. 26 is a flowchart showing an example of a video decoding process according to the ninth embodiment. [Figure 27] FIG. 27 is a flowchart showing an example of a video encoding process according to the tenth embodiment. [Figure 28] FIG. 28 is a flowchart illustrating an example of a video decoding process according to the tenth embodiment. [Figure 29] FIG. 29 is a flowchart showing an example of a video encoding process according to the eleventh embodiment. [Figure 30] FIG. 30 is a flowchart illustrating an example of a video decoding process according to the eleventh embodiment. [Figure 31] FIG. 31 is a flowchart illustrating an example of a video encoding process according to the twelfth embodiment. [Figure 32] FIG. 32 is a flowchart illustrating an example of a video decoding process according to the twelfth embodiment. [Figure 33] FIG. 33 is a flowchart illustrating an example of a video encoding process according to the thirteenth embodiment. [Figure 34] FIG. 34 is a flowchart illustrating an example of a video decoding process according to the thirteenth embodiment. [Figure 35] FIG. 35 is a block diagram showing a structure of a video / image encoding device according to an embodiment. [Figure 36] FIG. 36 is a block diagram showing a structure of a video / image decoding device according to an embodiment. [Figure 37] FIG. 37 is a diagram illustrating possible locations of parameters in a compressed video bitstream. [Figure 38] FIG. 38 is a diagram showing the results of block division that differ depending on the block division information. [Figure 39] FIG. 39 is a diagram showing an example of a combination of block partition structures. [Figure 40] FIG. 40 is a diagram showing an example of correction of the block partition structure. [Figure 41] FIG. 41 is a diagram showing an example of a division method and a block partition structure. [Figure 42A] FIG. 42A is a diagram showing an example of a modification of the initial block partition structure. [Figure 42B]FIG. 42B is a diagram showing an example of a modification of the initial block partition structure. [Figure 42C] FIG. 42C is a diagram showing an example of a modification to the initial block partition structure. [Figure 43] FIG. 43 is a diagram showing an example of a modification of the initial block partition structure. [Figure 44] FIG. 44 shows the results of block division that differ depending on the geometry. [Figure 45A] FIG. 45A is a diagram illustrating an example of block division into sub-blocks of geometry based on the geometry of the block. [Figure 45B] FIG. 45B is a diagram illustrating an example of block division into geometric sub-blocks based on the geometry of the block. [Figure 45C] FIG. 45C is a diagram illustrating an example of block division into geometric sub-blocks based on the geometry of the block. [Figure 45D] FIG. 45D is a diagram illustrating an example of a block division into geometric sub-blocks based on the geometry of the block. [Figure 46A] FIG. 46A is a diagram illustrating an example of block division of geometry into sub-blocks based on parameters. [Figure 46B] FIG. 46B is a diagram illustrating an example of block division of geometry into sub-blocks based on parameters. [Figure 46C] FIG. 46C is a diagram illustrating an example of block division of geometry into sub-blocks based on parameters. [Figure 46D] FIG. 46D is a diagram illustrating an example of block division of geometry into sub-blocks based on parameters. [Figure 47A] FIG. 47A is a diagram showing an example of block division into a number of sub-blocks based on the geometry of the block. [Figure 47B] FIG. 47B is a diagram showing an example of block division into a number of sub-blocks based on the geometry of the block. [Figure 48A]FIG. 48A is a diagram showing an example of block division into a number of sub-blocks based on parameters. [Figure 48B] FIG. 48B is a diagram showing an example of block division into a number of sub-blocks based on parameters. [Figure 48C] FIG. 48C is a diagram showing an example of block division into a number of sub-blocks based on parameters. [Figure 49A] FIG. 49A is a diagram showing an example of selection of block division information from a set of block division information. [Figure 49B] FIG. 49B is a diagram showing an example of selection of block division information from a set of block division information. [Figure 50] FIG. 50 is a diagram illustrating an example of selection of a block partition structure based on a predicted block partition structure. [Figure 51] FIG. 51 is a diagram showing an example of rearrangement of the list of block division information. [Figure 52] FIG. 52 is a diagram showing an example of rearrangement of the list of block division information. [Figure 53] FIG. 53 is a diagram showing coded bits of the partition selection parameter and their meanings. [Figure 54] FIG. 54 is a diagram showing the overall configuration of a content supply system that realizes a content distribution service. [Figure 55] FIG. 55 is a diagram showing an example of a coding structure for scalable coding. [Figure 56] FIG. 56 is a diagram showing an example of a coding structure for scalable coding. [Figure 57] FIG. 57 is a diagram showing an example of a display screen of a web page. [Figure 58] FIG. 58 is a diagram showing an example of a display screen of a web page. [Figure 59] FIG. 59 is a diagram illustrating an example of a smartphone. [Figure 60] FIG. 60 is a block diagram showing an example of the configuration of a smartphone. DETAILED DESCRIPTION OF THE INVENTION

[0010] (Findings that formed the basis of this disclosure) In conventional image and video encoding and decoding methods, an image is divided into blocks, and encoding and decoding are performed at the block level. Recent video standards allow encoding and decoding with various block sizes other than the usual 8x8 or 16x16. For example, image encoding and decoding can use a range of block sizes from 4x4 to 256x256.

[0011] To represent a range of block sizes from 4x4 to 256x256, block partitioning information such as partitioning modes (e.g., quadtree partitioning mode and binary tree partitioning mode) and partition flags (e.g., split flags) are determined and signaled for each block. The overhead of this signaling increases as the partitioning depth increases. The increased overhead reduces the overall video compression efficiency.

[0012] Therefore, the present disclosure provides an encoding device and a decoding device that can reduce the amount of code related to block division information and improve compression efficiency.

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

[0014] The embodiments described below are all comprehensive or specific examples. The numerical values, shapes, materials, components, component placement and connection configurations, steps, and step order shown in the following embodiments are merely examples and are not intended to limit the scope of the claims. Furthermore, among the components in the following embodiments, components that are not described in the independent claims that represent the highest concepts are described as optional components.

[0015] (Embodiment 1) First, an overview of the first embodiment will be described as an example of an encoding device and a decoding device to which the processes and / or configurations described in each aspect of the present disclosure can be applied. However, the first embodiment is merely an example of an encoding device and a decoding device to which the processes and / or configurations described in each aspect of the present disclosure can be applied, and the processes and / or configurations described in each aspect of the present disclosure can also be implemented in encoding devices and decoding devices different from the first embodiment.

[0016] When applying the processing and / or configurations described in each aspect of the present disclosure to the first embodiment, for example, any of the following may be performed.

[0017] (1) For the encoding device or decoding device of the first embodiment, among the multiple components constituting the encoding device or decoding device, components corresponding to the components described in each aspect of the present disclosure are replaced with the components described in each aspect of the present disclosure. (2) Any modification, such as addition, replacement, or deletion, of the functions or processes performed by some of the components constituting the encoding device or decoding device of the first embodiment may be made to the encoding device or decoding device, and then components corresponding to the components described in each aspect of the present disclosure may be replaced with the components described in each aspect of the present disclosure. (3) The method implemented by the encoding device or decoding device of the first embodiment may be modified by adding a process and / or replacing or deleting some of the processes included in the method, and then replacing the process described in each aspect of the present disclosure with the process described in each aspect of the present disclosure. (4) Some of the components constituting the encoding device or decoding device of the first embodiment may be implemented in combination with components described in each aspect of the present disclosure, components having some of the functions of the components described in each aspect of the present disclosure, or components performing some of the processing performed by the components described in each aspect of the present disclosure. (5) A component having some of the functions of some of the components constituting the encoding device or decoding device of the first embodiment, or a component that performs some of the processing performed by some of the components constituting the encoding device or decoding device of the first embodiment, is implemented in combination with a component described in each aspect of the present disclosure, a component having some of the functions of the components described in each aspect of the present disclosure, or a component that performs some of the processing performed by the components described in each aspect of the present disclosure. (6) In the method implemented by the encoding device or decoding device of the first embodiment, among the multiple processes included in the method, processes corresponding to the processes described in each aspect of the present disclosure are replaced with the processes described in each aspect of the present disclosure. (7) Some of the processes included in the method implemented by the encoding device or decoding device of the first embodiment may be implemented in combination with the processes described in each aspect of the present disclosure.

[0018] It should be noted that the manner of implementing the processes and / or configurations described in each aspect of the present disclosure is not limited to the above examples. For example, they may be implemented in a device used for a purpose different from the video / image encoding device or video / image decoding device disclosed in Embodiment 1, or the processes and / or configurations described in each aspect may be implemented independently. Furthermore, the processes and / or configurations described in different aspects may be implemented in combination.

[0019] [Outline of the encoding device] First, an overview of a coding device according to Embodiment 1 will be described. Fig. 1 is a block diagram showing a functional configuration of a coding device 100 according to Embodiment 1. The coding device 100 is a video / image coding device that codes a video / image on a block-by-block basis.

[0020] As shown in FIG. 1, the encoding device 100 is a device that encodes an image on a block-by-block basis, and includes a division 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.

[0021] The encoding device 100 is realized by, for example, a general-purpose processor and memory. In this case, when a software program stored in the memory is executed by the processor, the processor functions as the division unit 102, the subtraction unit 104, the transformation unit 106, the quantization unit 108, the entropy coding 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. Alternatively, the encoding device 100 may be realized as one or more dedicated electronic circuits corresponding to the division unit 102, the subtraction unit 104, the transformation unit 106, the quantization unit 108, the entropy coding 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.

[0022] Each component included in the encoding device 100 will be described below.

[0023] [Divided part] The division unit 102 divides each picture included in the input video into a plurality of blocks and outputs each block to the subtraction unit 104. For example, the division unit 102 first divides a picture into blocks of a fixed size (e.g., 128x128). These fixed-size blocks are sometimes called coding tree units (CTUs). The division unit 102 then divides each of the fixed-size blocks into blocks of a variable size (e.g., 64x64 or less) based on recursive quadtree and / or binary tree block division. These variable-size blocks are sometimes called coding units (CUs), prediction units (PUs), or transform units (TUs). Note that in this embodiment, there is no need to distinguish between CUs, PUs, and TUs, and some or all of the blocks in a picture may serve as the processing units of CUs, PUs, and TUs.

[0024] Fig. 2 is a diagram showing an example of block division according to embodiment 1. In Fig. 2, solid lines represent block boundaries based on quadtree block division, and dashed lines represent block boundaries based on binary tree block division.

[0025] Here, the block 10 is a square block of 128x128 pixels (128x128 block). This 128x128 block 10 is first divided into four square 64x64 blocks (quadtree block division).

[0026] The top-left 64x64 block is further divided vertically into two rectangular 32x64 blocks, and the left 32x64 block is further divided vertically into two rectangular 16x64 blocks (binary tree block division). As a result, the top-left 64x64 block is divided into two 16x64 blocks 11 and 12 and a 32x64 block 13.

[0027] The top right 64x64 block is divided horizontally into two rectangular 64x32 blocks 14 and 15 (binary tree block division).

[0028] The lower-left 64x64 block is divided into four square 32x32 blocks (quadtree block decomposition). Of the four 32x32 blocks, the upper-left and lower-right blocks are further divided. The upper-left 32x32 block is divided vertically into two rectangular 16x32 blocks, and the right 16x32 block is further divided horizontally into two 16x16 blocks (binary tree block decomposition). The lower-right 32x32 block is divided horizontally into two 32x16 blocks (binary tree block decomposition). As a result, the lower-left 64x64 block is divided into 16x32 block 16, two 16x16 blocks 17 and 18, two 32x32 blocks 19 and 20, and two 32x16 blocks 21 and 22.

[0029] The bottom right 64x64 block 23 is not split.

[0030] 2, block 10 is divided into 13 variable-sized blocks 11 to 23 based on recursive quad-tree and binary tree block division. This type of division is sometimes called QTBT (quad-tree plus binary tree) division.

[0031] In Fig. 2, one block is divided into four or two blocks (quadtree or binary tree block division), but the division is not limited to this. For example, one block may be divided into three blocks (ternary tree block division). Division including such ternary tree block division is sometimes called MBT (multi type tree) division.

[0032] [Subtraction section] The subtraction unit 104 subtracts a prediction signal (prediction sample) from an original signal (original sample) for each block divided by the division unit 102. That is, the subtraction unit 104 calculates a prediction error (also referred to as a residual) of a block to be coded (hereinafter referred to as a current block). Then, the subtraction unit 104 outputs the calculated prediction error to the conversion unit 106.

[0033] The original signal is an input signal to the encoding device 100, and is a signal representing an image of each picture constituting a moving image (for example, a luminance (luma) signal and two color difference (chroma) signals). Hereinafter, the signal representing an image may also be referred to as a sample.

[0034] [Conversion section] The transform unit 106 transforms the spatial domain prediction errors into frequency domain transform coefficients and outputs the transform coefficients to the quantization unit 108. Specifically, the transform unit 106 performs, for example, a predetermined discrete cosine transform (DCT) or discrete sine transform (DST) on the spatial domain prediction errors.

[0035] The transform unit 106 may adaptively select a transform type from among a plurality of transform types and transform the prediction errors into transform coefficients using a transform basis function corresponding to the selected transform type. Such a transform is sometimes called an explicit multiple core transform (EMT) or an adaptive multiple transform (AMT).

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

[0037] Information indicating whether EMT or AMT is applied (e.g., referred to as an AMT flag) and information indicating the selected transformation type are signaled at the CU level. Note that signaling of this information does not need to be limited to the CU level, and may be at other levels (e.g., sequence level, picture level, slice level, tile level, or CTU level).

[0038] Furthermore, the transform unit 106 may retransform the transform coefficients (transform results). Such retransformation may be referred to as an adaptive secondary transform (AST) or a non-separable secondary transform (NSST). For example, the transform unit 106 performs retransformation on each sub-block (e.g., 4x4 sub-block) included in a block of transform coefficients corresponding to intra-prediction errors. Information indicating whether or not to apply NSST and information regarding the transform matrix used for NSST are signaled at the CU level. Note that signaling of this information does not need to be limited to the CU level, and may be at other levels (e.g., the sequence level, picture level, slice level, tile level, or CTU level).

[0039] Here, a separable transformation is a method in which the transformation is performed multiple times by separating the input into directions equal to the number of dimensions, and a non-separable transformation is a method in which, when the input is multidimensional, two or more dimensions are treated as one dimension and the transformation is performed all at once.

[0040] For example, one example of a non-separable transformation is when the input is a 4x4 block, it is treated as a single array with 16 elements, and the transformation process is performed on that array using a 16x16 transformation matrix.

[0041] Similarly, a non-separable transformation is one that treats a 4x4 input block as a single array with 16 elements and then performs multiple Givens rotations on that array (Hypercube Givens Transform).

[0042] [Quantization section] The quantization unit 108 quantizes the transform coefficients output from the transform unit 106. Specifically, the quantization unit 108 scans the transform coefficients of the current block in a predetermined scanning order and quantizes the transform coefficients based on quantization parameters (QP) corresponding to the scanned transform coefficients. The quantization unit 108 then outputs the quantized transform coefficients of the current block (hereinafter referred to as quantized coefficients) to the entropy coding unit 110 and the inverse quantization unit 112.

[0043] The predetermined order is an order for quantizing / dequantizing the transform coefficients. For example, the predetermined scanning order is defined as an ascending order (low frequency to high frequency) or a descending order (high frequency to low frequency).

[0044] The quantization parameter is a parameter that defines the quantization step (quantization width). For example, as the value of the quantization parameter increases, the quantization step also increases. In other words, as the value of the quantization parameter increases, the quantization error also increases.

[0045] [Entropy coding section] The entropy coding unit 110 generates a coded signal (coded bit stream) by variable-length coding the quantized coefficients input from the quantization unit 108. Specifically, the entropy coding unit 110, for example, binarizes the quantized coefficients and arithmetically codes the binary signal.

[0046] [Dequantization section] The inverse quantization unit 112 inverse quantizes the quantized coefficients input from the quantization unit 108. Specifically, the inverse quantization unit 112 inverse quantizes the quantized coefficients of the current block in a predetermined scanning order. The inverse quantization unit 112 then outputs the inverse quantized transform coefficients of the current block to the inverse transform unit 114.

[0047] [Inverse conversion section] The inverse transform unit 114 restores the prediction error by inverse transforming the transform coefficients that are 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 on the transform coefficients that corresponds to the transform performed by the transform unit 106. Then, the inverse transform unit 114 outputs the restored prediction error to the adder unit 116.

[0048] Note that the restored prediction error does not match the prediction error calculated by the subtraction unit 104 because information has been lost due to quantization. In other words, the restored prediction error includes a quantization error.

[0049] [Addition section] The adder 116 reconstructs the current block by adding the prediction error input from the inverse transformer 114 and the prediction sample input from the prediction control unit 128. The adder 116 then outputs the reconstructed block to the block memory 118 and the loop filter unit 120. The reconstructed block is sometimes called a local decoded block.

[0050] [Block Memory] The block memory 118 is a storage unit for storing blocks that are referenced in intra prediction and are in a picture to be coded (hereinafter referred to as a current picture). Specifically, the block memory 118 stores the reconstructed blocks output from the adder 116.

[0051] [Loop filter section] The loop filter unit 120 applies a loop filter to the block reconstructed by the adder 116 and outputs the filtered reconstructed block to the frame memory 122. The loop filter is a filter (in-loop filter) used in the encoding loop, and includes, for example, a deblocking filter (DF), a sample adaptive offset (SAO), and an adaptive loop filter (ALF).

[0052] ALF applies a least squares error filter to remove coding artifacts, for example, for each 2x2 sub-block in the current block, one filter selected from multiple filters based on local gradient direction and activity.

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

[0054] The gradient direction value D is derived by, for example, comparing gradients in multiple directions (e.g., horizontal, vertical, and two diagonal directions), and the gradient activity value A is derived by, for example, adding gradients in multiple directions and quantizing the sum.

[0055] Based on the result of such classification, a filter for the sub-block is determined from among a plurality of filters.

[0056] The filter shape used in ALF is, for example, a circularly symmetric shape. FIGS. 4A to 4C are diagrams showing several examples of filter shapes used in ALF. FIG. 4A shows a 5x5 diamond-shaped filter, FIG. 4B shows a 7x7 diamond-shaped filter, and FIG. 4C shows a 9x9 diamond-shaped filter. Information indicating the filter shape is signaled at the picture level. Note that signaling of the information indicating the filter shape does not need to be limited to the picture level, and may be at other levels (e.g., sequence level, slice level, tile level, CTU level, or CU level).

[0057] Whether ALF is turned on or off is determined, for example, at the picture level or the CU level. For example, whether ALF is applied to luminance is determined at the CU level, and whether ALF is applied to chrominance is determined at the picture level. Information indicating whether ALF is turned on or off is signaled at the picture level or the CU level. Note that signaling of information indicating whether ALF is turned on or off does not need to be limited to the picture level or the CU level, and may be at another level (for example, the sequence level, the slice level, the tile level, or the CTU level).

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

[0059] [Frame memory] The frame memory 122 is a storage unit for storing reference pictures used in inter prediction, and is sometimes called a frame buffer. Specifically, the frame memory 122 stores the reconstructed blocks filtered by the loop filter unit 120.

[0060] [Intra prediction section] The intra prediction unit 124 generates a prediction signal (intra prediction signal) by performing intra prediction (also referred to as intra-picture prediction) of the current block with reference to blocks in the current picture stored in the block memory 118. Specifically, the intra prediction unit 124 generates the intra prediction signal by performing intra prediction with reference to samples (e.g., luminance values, chrominance values) of blocks adjacent to the current block, and outputs the intra prediction signal to the prediction control unit 128.

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

[0062] The one or more non-directional prediction modes include, for example, a planar prediction mode and a DC prediction mode defined in the H.265 / High-Efficiency Video Coding (HEVC) standard (Non-Patent Document 1).

[0063] The multiple directional prediction modes include, for example, the 33 prediction modes defined in the H.265 / HEVC standard. Note that the multiple directional prediction modes may also include 32 prediction modes in addition to the 33 directions (65 directional prediction modes in total). Fig. 5A is a diagram showing 67 intra prediction modes (2 non-directional prediction modes and 65 directional prediction modes) in intra prediction. Solid arrows represent the 33 directions defined in the H.265 / HEVC standard, and dashed arrows represent the additional 32 directions.

[0064] Note that a luminance block may be referenced in intra prediction of a chrominance block. That is, the chrominance component of the current block may be predicted based on the luminance component of the current block. This type of intra prediction is sometimes called CCLM (cross-component linear model) prediction. An intra prediction mode of a chrominance block that references such a luminance block (e.g., called a CCLM mode) may be added as one of the intra prediction modes for the chrominance block.

[0065] The intra prediction unit 124 may correct pixel values ​​after intra prediction based on gradients of reference pixels in the horizontal / vertical directions. Intra prediction involving such correction is sometimes called PDPC (position dependent intra prediction combination). Information indicating whether PDPC is applied (e.g., called a PDPC flag) is signaled, for example, at the CU level. Note that signaling of this information does not need to be limited to the CU level, and may be at other levels (e.g., sequence level, picture level, slice level, tile level, or CTU level).

[0066] [Inter prediction section] The inter prediction unit 126 generates a prediction signal (inter prediction signal) by performing inter prediction (also referred to as inter prediction) on the current block with reference to a reference picture stored in the frame memory 122 that is different from the current picture. The inter prediction is performed in units of the current block or sub-blocks (e.g., 4x4 blocks) within the current block. For example, the inter prediction unit 126 performs motion estimation on the current block or sub-block within the reference picture. The inter prediction unit 126 then generates an inter prediction signal for the current block or sub-block by performing motion compensation using motion information (e.g., a motion vector) obtained by the motion estimation. The inter prediction unit 126 then outputs the generated inter prediction signal to the prediction control unit 128.

[0067] The motion information used for motion compensation is signaled. For the signaling of the motion vector, a motion vector predictor may be used, i.e., the difference between the motion vector and the motion vector predictor may be signaled.

[0068] Note that an inter-prediction signal may be generated using not only the motion information of the current block obtained by motion estimation, but also the motion information of adjacent blocks. Specifically, an inter-prediction signal may be generated for each sub-block in the current block by weighting and adding a prediction signal based on the motion information obtained by motion estimation and a prediction signal based on the motion information of adjacent blocks. Such inter-prediction (motion compensation) may be called OBMC (overlapped block motion compensation).

[0069] In such an OBMC mode, information indicating the size of a sub-block for OBMC (e.g., called an OBMC block size) is signaled at the sequence level. Also, information indicating whether the OBMC mode is applied (e.g., called an OBMC flag) is signaled at the CU level. Note that the signaling level of this information is not limited to the sequence level and the CU level, and may be other levels (e.g., the picture level, slice level, tile level, CTU level, or sub-block level).

[0070] The OBMC mode will now be described in more detail. Figures 5B and 5C are a flowchart and a conceptual diagram for explaining an outline of the predictive image correction process using the OBMC process.

[0071] First, a predicted image (Pred) is obtained by normal motion compensation using a motion vector (MV) assigned to the block to be coded.

[0072] Next, the motion vector (MV_L) of the coded left adjacent block is applied to the block to be coded to obtain a predicted image (Pred_L), and the predicted image is weighted and superimposed with Pred_L to perform the first correction of the predicted image.

[0073] Similarly, the motion vector (MV_U) of the already coded upper adjacent block is applied to the block to be coded to obtain a predicted image (Pred_U), and the predicted image that has been corrected the first time is weighted and overlaid with Pred_U to perform a second correction of the predicted image, which is then used as the final predicted image.

[0074] Although a two-stage correction method using the left adjacent block and the upper adjacent block has been described here, it is also possible to configure a method in which correction is performed more than two times using the right adjacent block or the lower adjacent block.

[0075] The area to be superimposed does not have to be the pixel area of ​​the entire block, but may be only a part of the area near the block boundary.

[0076] Although the process of correcting a predicted image from one reference picture has been described here, the process is similar when correcting a predicted image from multiple reference pictures. After obtaining corrected predicted images from each reference picture, the obtained predicted images are further superimposed to form the final predicted image.

[0077] The target block to be processed may be a prediction block unit or a sub-block unit obtained by further dividing the prediction block.

[0078] As a method for determining whether to apply OBMC processing, for example, there is a method using obmc_flag, which is a signal indicating whether to apply OBMC processing. As a specific example, an encoding device determines whether a block to be encoded belongs to an area with complex motion, and if it belongs to an area with complex motion, sets the value of obmc_flag to 1 and performs encoding using OBMC processing, and if it does not belong to an area with complex motion, sets the value of obmc_flag to 0 and performs encoding without applying OBMC processing. On the other hand, a decoding device decodes obmc_flag described in a stream, and switches whether to apply OBMC processing depending on the value, and performs decoding.

[0079] Alternatively, the motion information may be derived on the decoding device side without being signaled. For example, a merge mode defined in the H.265 / HEVC standard may be used. Alternatively, the motion information may be derived by performing motion estimation on the decoding device side. In this case, the motion estimation is performed without using pixel values ​​of the current block.

[0080] Here, a mode in which motion estimation is performed on the decoding device side will be described. This mode in which motion estimation is performed on the decoding device side is sometimes called a pattern matched motion vector derivation (PMMVD) mode or a frame rate up-conversion (FRUC) mode.

[0081] An example of the FRUC process is shown in Figure 5D. First, a list of multiple candidates (which may be the same as the merge list) each having a predicted motion vector is generated by referring to the motion vectors of coded blocks spatially or temporally adjacent to the current block. Next, a best candidate MV is selected from the multiple candidate MVs registered in the candidate list. For example, an evaluation value of each candidate included in the candidate list is calculated, and one candidate is selected based on the evaluation value.

[0082] Then, a motion vector for the current block is derived based on the motion vector of the selected candidate. Specifically, for example, the motion vector of the selected candidate (best candidate MV) is derived as the motion vector for the current block as is. Also, for example, the motion vector for the current block may be derived by performing pattern matching in a peripheral area of ​​a position in a reference picture corresponding to the motion vector of the selected candidate. That is, a search is performed in a similar manner in a peripheral area of ​​the best candidate MV, and if an MV with a better evaluation value is found, the best candidate MV may be updated to the MV and used as the final MV for the current block. Note that a configuration may be adopted in which this process is not performed.

[0083] The same processing may be performed when processing is performed in sub-block units.

[0084] The evaluation value is calculated by finding the difference between the reconstructed image and a predetermined area by pattern matching between the area in the reference picture corresponding to the motion vector. The evaluation value may be calculated using other information in addition to the difference.

[0085] As the pattern matching, first pattern matching or second pattern matching is used. The first pattern matching and second pattern matching are sometimes called bilateral matching and template matching, respectively.

[0086] In the first pattern matching, pattern matching is performed between two blocks in two different reference pictures that are along the motion trajectory of the current block. Therefore, in the first pattern matching, an area in another reference picture that is along the motion trajectory of the current block is used as a predetermined area for calculating the evaluation value of the candidate.

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

[0088] Under the assumption of continuous motion trajectories, motion vectors (MV0, MV1) pointing to two reference blocks are proportional to the temporal distances (TD0, TD1) between a current picture (CurPic) and two reference pictures (Ref0, Ref1). For example, if the current picture is located between two reference pictures temporally and the temporal distances from the current picture to the two reference pictures are equal, the first pattern matching derives bidirectional motion vectors that are mirror-symmetric.

[0089] In the second pattern matching, pattern matching is performed between a template in the current picture (a block adjacent to the current block in the current picture (e.g., an upper and / or left adjacent block)) and a block in the reference picture. Therefore, in the second pattern matching, the block adjacent to the current block in the current picture is used as a predetermined area for calculating the evaluation value of the candidate.

[0090] 7 is a diagram illustrating an example of pattern matching (template matching) between a template in a current picture and a block in a reference picture. As shown in FIG. 7, in the second pattern matching, a motion vector of a current block is derived by searching a reference picture (Ref0) for a block that best matches a block adjacent to a current block (Cur block) in the current picture (Cur Pic). Specifically, a difference is derived between a reconstructed image of both or either of the coded areas adjacent to the left and / or above the current block and a reconstructed image at the same position in the coded reference picture (Ref0) specified by a candidate MV, an evaluation value is calculated using the obtained difference value, and the candidate MV with the best evaluation value among the multiple candidate MVs is selected as the best candidate MV.

[0091] Information indicating whether such a FRUC mode is applied (e.g., called an FRUC flag) is signaled at the CU level. Furthermore, when the FRUC mode is applied (e.g., when the FRUC flag is true), information indicating a pattern matching method (first pattern matching or second pattern matching) (e.g., called an FRUC mode flag) is signaled at the CU level. Note that signaling of this information does not need to be limited to the CU level, and may be at other levels (e.g., the sequence level, the picture level, the slice level, the tile level, the CTU level, or the sub-block level).

[0092] Here, we will explain a mode that derives a motion vector based on a model that assumes uniform linear motion. This mode is based on BIO (bi-directional optical This is sometimes called flow mode.

[0093] Fig. 8 is a diagram illustrating a model assuming uniform linear motion. In Fig. 8, (vx, vy) indicate a velocity vector, and τ0 and τ1 indicate the temporal distances between the current picture (Cur Pic) and two reference pictures (Ref0, Ref1), respectively. (MVx0, MVy0) indicate the motion vector corresponding to reference picture Ref0, and (MVx1, MVy1) indicate the motion vector corresponding to reference picture Ref1.

[0094] In this case, under the assumption of uniform linear motion of the velocity vector (vx, vy), (MVx0, MVy0) and (MVx1, MVy1) are expressed as (vxτ0, vyτ0) and (-vxτ1, -vyτ1), respectively, and the following optical flow equation (1) holds.

[0095]

number

[0096] Here, I(k) denotes the luminance value of reference image k (k=0,1) after motion compensation. This optical flow equation indicates that the sum of (i) the time derivative 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 a combination of this optical flow equation and Hermite interpolation, block-wise motion vectors obtained from a merge list or the like are corrected pixel by pixel.

[0097] Note that the decoding device may derive motion vectors using a method other than that based on a model assuming constant-velocity linear motion. For example, a motion vector may be derived for each sub-block based on the motion vectors of multiple adjacent blocks.

[0098] Here, a mode in which a motion vector is derived for each sub-block based on the motion vectors of multiple neighboring blocks will be described. This mode is sometimes called an affine motion compensation prediction mode.

[0099] 9A is a diagram illustrating the derivation of motion vectors for each sub-block based on the motion vectors of multiple adjacent blocks. In FIG. 9A, the current block includes 16 4x4 sub-blocks. Here, a motion vector v0 for the upper left corner control point of the current block is derived based on the motion vectors of the adjacent blocks, and a motion vector v1 for the upper right corner control point of the current block is derived based on the motion vectors of the adjacent sub-blocks. Then, using the two motion vectors v0 and v1, the motion vectors (vx, vy) of each sub-block within the current block are derived according to the following equation (2):

[0100]

number

[0101] Here, x and y respectively indicate the horizontal and vertical positions of the sub-block, and w indicates a predetermined weighting coefficient.

[0102] Such an affine motion compensation prediction mode may include several modes in which the methods of deriving the motion vectors of the upper-left and upper-right corner control points are different. Information indicating such an affine motion compensation prediction mode (e.g., called an affine flag) is signaled at the CU level. Note that the signaling of the information indicating this affine motion compensation prediction mode does not need to be limited to the CU level, and may be at other levels (e.g., the sequence level, the picture level, the slice level, the tile level, the CTU level, or the sub-block level).

[0103] [Predictive control unit] The prediction control unit 128 selects either the intra-prediction signal or the inter-prediction signal, and outputs the selected signal to the subtraction unit 104 and the addition unit 116 as a prediction signal.

[0104] Here, an example of deriving a motion vector for a picture to be coded in merge mode will be described. Fig. 9B is a diagram for explaining an overview of the motion vector derivation process in merge mode.

[0105] First, a prediction MV list is generated in which prediction MV candidates are registered. The prediction MV candidates include spatially adjacent prediction MVs, which are MVs held by multiple coded blocks spatially located around the block to be coded, temporally adjacent prediction MVs, which are MVs held by blocks in the vicinity of the block to be coded projected onto the coded reference picture, joint prediction MVs, which are MVs generated by combining the MV values ​​of the spatially adjacent prediction MVs and the temporally adjacent prediction MVs, and zero prediction MVs, which are MVs with a value of zero.

[0106] Next, one prediction MV is selected from the plurality of prediction MVs registered in the prediction MV list, and is determined as the MV for the block to be coded.

[0107] Furthermore, the variable length coding unit encodes the stream by describing merge_idx, which is a signal indicating which predicted MV has been selected.

[0108] Note that the predicted MVs registered in the predicted MV list described in Figure 9B are just an example, and the number may be different from the number shown in the figure, the configuration may not include some of the types of predicted MVs shown in the figure, or the configuration may include predicted MVs other than the types of predicted MVs shown in the figure.

[0109] The final MV may be determined by performing the DMVR process, which will be described later, using the MV of the block to be coded derived in the merge mode.

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

[0111] FIG. 9C is a conceptual diagram for explaining an outline of the DMVR process.

[0112] First, the optimal MVP set for the block to be processed is set as a candidate MV, and reference pixels are obtained from the first reference picture, which is a processed picture in the L0 direction, and the second reference picture, which is a processed picture in the L1 direction, according to the candidate MV, and a template is generated by averaging each reference pixel.

[0113] Next, the template is used to search the surrounding areas of the candidate MVs in the first and second reference pictures, and the MV with the smallest cost is determined as the final MV. The cost value is calculated using the difference between each pixel value of the template and each pixel value of the search area, the MV value, etc.

[0114] The outline of the processing described here is basically the same for the encoding device and the decoding device.

[0115] Note that other processing may be used instead of the processing described here, as long as it is processing that can search the vicinity of the candidate MV and derive the final MV.

[0116] Here, a mode for generating a predicted image using LIC processing will be described.

[0117] FIG. 9D is a diagram for explaining an outline of a predicted image generation method using luminance correction processing by LIC processing.

[0118] First, an MV for obtaining a reference image corresponding to a block to be coded is derived from a reference picture that is a coded picture.

[0119] Next, for the block to be coded, the luminance pixel values ​​of the coded surrounding reference areas adjacent to the left and above and the luminance pixel values ​​at the equivalent positions in the reference picture specified by the MV are used to extract information indicating how the luminance values ​​have changed between the reference picture and the picture to be coded, and a luminance correction parameter is calculated.

[0120] A predicted image for the block to be coded is generated by performing luminance correction processing on a reference image in a reference picture specified by the MV using the luminance correction parameters.

[0121] The shape of the peripheral reference region in FIG. 9D is an example, and other shapes may be used.

[0122] Although the process of generating a predicted image from one reference picture has been described here, the process is similar when generating a predicted image from multiple reference pictures, and a luminance correction process is performed in a similar manner on the reference images obtained from each reference picture before generating a predicted image.

[0123] One method for determining whether to apply LIC processing is to use lic_flag, which is a signal indicating whether to apply LIC processing. As a specific example, an encoding device determines whether the encoding target block belongs to an area where a luminance change occurs, and if it belongs to an area where a luminance change occurs, sets the value of lic_flag to 1 and performs encoding by applying LIC processing, and if it does not belong to an area where a luminance change occurs, sets the value of lic_flag to 0 and performs encoding without applying LIC processing. On the other hand, a decoding device decodes lic_flag described in the stream, and switches whether to apply LIC processing depending on the value, and performs decoding.

[0124] As another method for determining whether to apply LIC processing, for example, there is also a method for determining whether LIC processing has been applied to surrounding blocks.As a specific example, when the block to be coded is in merge mode, it is determined whether the surrounding coded blocks selected when deriving MV in merge mode processing have been coded using LIC processing, and depending on the result, whether to apply LIC processing is switched and coded.In addition, in this example, the process in decoding is exactly the same.

[0125] [Overview of the decoding device] Next, an overview will be given of a decoding device capable of decoding the coded signal (coded bitstream) output from the above coding device 100. Fig. 10 is a block diagram showing the functional configuration of a decoding device 200 according to Embodiment 1. The decoding device 200 is a video / image decoding device that decodes video / images on a block-by-block basis.

[0126] As shown in FIG. 10, the decoding device 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.

[0127] The decoding device 200 is realized by, for example, a general-purpose processor and 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. Alternatively, the decoding device 200 may be realized 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.

[0128] Each component included in the decoding device 200 will be described below.

[0129] [Entropy Decoding] The entropy decoding unit 202 entropy-decodes the coded bitstream. Specifically, the entropy decoding unit 202 arithmetically decodes the coded bitstream into a binary signal. The entropy decoding unit 202 then debinarizes the binary signal. As a result, the entropy decoding unit 202 outputs quantized coefficients to the inverse quantization unit 204 on a block-by-block basis.

[0130] [Dequantization section] The inverse quantization unit 204 inverse quantizes the quantized coefficients of a block to be decoded (hereinafter referred to as a current block) that is input from the entropy decoding unit 202. Specifically, the inverse quantization unit 204 inverse quantizes each quantized coefficient of the current block based on a quantization parameter corresponding to the quantized coefficient. The inverse quantization unit 204 then outputs the inverse quantized coefficients (i.e., transform coefficients) of the current block to the inverse transform unit 206.

[0131] [Inverse conversion section] The inverse transform unit 206 restores the prediction error by inverse transforming the transform coefficients input from the inverse quantization unit 204 .

[0132] For example, if the information interpreted from the encoded bitstream indicates that EMT or AMT is to be applied (e.g., the AMT flag is true), the inverse transform unit 206 inverse transforms the transform coefficients of the current block based on the interpreted information indicating the transform type.

[0133] Also, for example, if the information decoded from the coded bitstream indicates that NSST is to be applied, then inverse transform unit 206 applies an inverse re-transform to the transform coefficients.

[0134] [Addition section] The adder 208 reconstructs the current block by adding the prediction error input from the inverse transformer 206 and the prediction sample input from the prediction control unit 220. The adder 208 then outputs the reconstructed block to the block memory 210 and the loop filter unit 212.

[0135] [Block Memory] The block memory 210 is a storage unit for storing blocks that are referenced in intra prediction and are in a picture to be decoded (hereinafter referred to as a current picture). Specifically, the block memory 210 stores the reconstructed blocks output from the adder 208.

[0136] [Loop filter section] The loop filter unit 212 applies a loop filter to the block reconstructed by the adder unit 208, and outputs the filtered reconstructed block to a frame memory 214, a display device, or the like.

[0137] If the information indicating ALF on / off read from the encoded bitstream indicates that ALF is on, one filter is selected from multiple filters based on the local gradient direction and activity, and the selected filter is applied to the reconstructed block.

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

[0139] [Intra prediction section] The intra prediction unit 216 generates a prediction signal (intra prediction signal) by performing intra prediction based on the intra prediction mode interpreted from the encoded bitstream, by referring to blocks in the current picture stored in the block memory 210. Specifically, the intra prediction unit 216 generates the intra prediction signal by performing intra prediction by referring to samples (e.g., luminance values, chrominance values) of blocks adjacent to the current block, and outputs the intra prediction signal to the prediction control unit 220.

[0140] Note that when an intra prediction mode that references a luminance block in intra prediction of a chrominance block is selected, the intra prediction unit 216 may predict the chrominance component of the current block based on the luminance component of the current block.

[0141] Furthermore, when information interpreted from the coded bitstream indicates the application of PDPC, the intra prediction unit 216 corrects pixel values ​​after intra prediction based on the gradients of reference pixels in the horizontal and vertical directions.

[0142] [Inter prediction section] The inter prediction unit 218 predicts the current block by referring to a reference picture stored in the frame memory 214. The prediction is performed in units of the current block or sub-blocks (e.g., 4x4 blocks) within the current block. For example, the inter prediction unit 218 generates an inter prediction signal for the current block or sub-block by performing motion compensation using motion information (e.g., motion vectors) interpreted from the coded bitstream, and outputs the inter prediction signal to the prediction control unit 220.

[0143] In addition, if the information interpreted from the encoded bitstream indicates that the OBMC mode is to be applied, the inter prediction unit 218 generates an inter prediction signal using not only the motion information of the current block obtained by motion search, but also the motion information of adjacent blocks.

[0144] Furthermore, if the information interpreted from the coded bitstream indicates that the FRUC mode is to be applied, the inter prediction unit 218 derives motion information by performing motion search according to the pattern matching method (bilateral matching or template matching) interpreted from the coded bitstream. Then, the inter prediction unit 218 performs motion compensation using the derived motion information.

[0145] Furthermore, when the BIO mode is applied, the inter prediction unit 218 derives a motion vector based on a model assuming constant-velocity linear motion. Furthermore, when information interpreted from the coded bitstream indicates that the affine motion compensation prediction mode is to be applied, the inter prediction unit 218 derives a motion vector for each sub-block based on the motion vectors of multiple adjacent blocks.

[0146] [Predictive control unit] The prediction control unit 220 selects either the intra-prediction signal or the inter-prediction signal, and outputs the selected signal to the addition unit 208 as a prediction signal.

[0147] (Embodiment 2) [overview] The encoding device of 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 write parameters to a bitstream, determines whether the written parameters are equal to a predetermined value, predicts block division information if the written parameters are equal to the predetermined value, and divides the block into a plurality of sub-blocks using the predicted block division information. If the written parameters are not equal to the predetermined value, divides the block into a plurality of sub-blocks without using the predicted block division information, and encodes the sub-blocks included in the plurality of sub-blocks using an encoding process that includes a transformation process and / or a prediction process.

[0148] This allows predicting block division information when the parameter is equal to a predetermined value. By dividing blocks using this predicted block division information, the amount of code related to the block division information can be reduced, thereby improving compression efficiency.

[0149] For example, in the encoding device according to this embodiment, the process of predicting the block division information may include a process of generating the block division information using block information of an already-encoded block.

[0150] This makes it possible to predict block division information using block information of already-encoded blocks, thereby improving the prediction accuracy of block division information and reducing the amount of coding.

[0151] The decoding device of this embodiment is a decoding device that decodes blocks of an image, and is equipped with a processor and a memory. The processor uses the memory to analyze parameters from a bitstream, determine whether the analyzed parameters are equal to a predetermined value, predict block division information if the analyzed parameters are equal to the predetermined value, and divide the block into a plurality of sub-blocks using the predicted block division information. If the written parameters are not equal to the predetermined value, divide the block into a plurality of sub-blocks without using the predicted block division information, and decode the sub-blocks included in the plurality of sub-blocks using a decoding process that includes an inverse transform process and / or a prediction process.

[0152] This allows predicting block division information when the parameter is equal to a predetermined value. By dividing blocks using this predicted block division information, the amount of code related to the block division information can be reduced, thereby improving compression efficiency.

[0153] For example, in the decoding device according to this embodiment, the process of predicting the block division information may include a process of generating the block division information using block information of a decoded block.

[0154] This makes it possible to predict block division information using block information of decoded blocks, thereby improving the prediction accuracy of block division information and reducing the amount of coding.

[0155] These comprehensive or specific aspects may be realized as a system, a method, an integrated circuit, a computer program, or a computer-readable recording medium such as a CD-ROM, or may be realized as any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0156] Hereinafter, a method for encoding and a method for decoding video will be described according to embodiments, as shown in Figures 11 and 12, respectively. Also, a device for encoding and a device for decoding video will be described according to embodiments, as shown in Figures 35 and 36, respectively.

[0157] [Encoding process] FIG. 11 shows an example of a video encoding process according to the second embodiment.

[0158] In the first step S1001, parameters are written to a bitstream. Figure 37 shows positions where the parameters can be written in a compressed video bitstream. The written parameters include one or more parameters for identifying whether prediction of the block partition information is valid. For example, the one or more parameters may include a flag indicating whether prediction of the block partition information is valid.

[0159] Next, in step S1002, it is determined whether the written parameters are equal to predetermined values.

[0160] If the written parameters are equal to the predetermined values ​​(Y in S1002), block partition information is predicted in step S1003, and then, in step S1004, the block is divided into a plurality of sub-blocks using the predicted block partition information. For example, the predicted block partition information is used as initial block partition information. Then, the initial block partition information is updated to final block partition information.

[0161] The final block partition information is determined to minimize the rate-distortion cost relative to other available block partition information during intra and inter prediction processes. Difference information between the predicted block partition information and the final block partition information is written into a bitstream, so that the corresponding final block partition information is generated based on the predicted block partition information at a decoder. By encoding the difference information instead of the final block partition information, the number of bits required to signal the final block partition information can be reduced.

[0162] Possible partitioning methods include binary tree partitioning as shown in b1) and b2) of Figure 41, quad tree partitioning as shown in q1) and q2) of Figure 41, multi-tree cut / partitioning as shown in m1) and m2) of Figure 41, or non-square / non-rectangular partitioning as shown in n1) of Figure 41. The geometry (shape and / or size) of the sub-blocks can be various, such as asymmetric binary tree partitioning as shown in b2) of Figure 41, asymmetric quad tree partitioning as shown in q2) of Figure 41, multi-tree cuts of different sizes as shown in m1) of Figure 41, or non-square / non-rectangular partitioning as shown in n1) of Figure 41.

[0163] Here, the block partition information can be predicted according to block information of the coded block (e.g., block partition structure, intra prediction mode or inter prediction mode, intra prediction direction, motion vector, reference picture, quantization parameter, and partition depth). The block is divided into multiple sub-blocks using the block partition information. As shown in Figure 38, if different block partition information is used, the heights, widths, or shapes of the multiple sub-blocks resulting from the block partition will also be different.

[0164] The block partition structure of the coded block can be used as it is as the predicted block partition structure of the current block.

[0165] A new block partition structure can also be derived as the predicted block partition structure of the current block by combining the block partition structures of two or more coded blocks (for example, as shown in Figure 39, 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).

[0166] For example, a coded block may be selected by selecting a coded block in the same intra / inter prediction mode as the current block. Specifically, if the current block is an inter prediction block, one or more coded blocks coded using inter prediction are selected.

[0167] The block partition structure of the coded block may be modified (for example, by using a block partition structure with a shallower division depth as shown in Figure 40) and the new block partition structure may be derived as the predicted block partition structure of the current block.

[0168] The block division information may be a parameter set indicating whether to divide the block horizontally or vertically, or may be a parameter set including predetermined block widths and predetermined block heights for all sub-blocks within the block.

[0169] The predicted block partition information may differ depending on the intra-prediction direction information of the coded block. For example, information on the intra-prediction direction at a specific neighboring block position may be used to predict whether the current block is divided vertically or horizontally into smaller blocks. For example, if the intra-prediction direction information of the upper neighboring block is determined to be vertical or close to vertical, block partition information including vertical partitioning can be predicted for the current block. Similarly, if the intra-prediction direction information of the left neighboring block is determined to be horizontal or close to horizontal, block partition information including horizontal partitioning can be predicted for the current block.

[0170] The block partition information may be a parameter set including an index for selecting one partition structure candidate from a predetermined list of block partition structure candidates, where the block partition structure visually presents the geometry of all sub-blocks within the block, as shown in Figure 38.

[0171] The block division information may be predicted according to the intra / inter prediction mode of the coded block. For example, if the prediction mode of the coded block is an intra prediction mode, predetermined block division information for dividing the block into a plurality of sub-blocks with a relatively small block size can be predicted. Also, for example, if the prediction mode of the coded block is an inter prediction mode, other predetermined block division information for dividing the block into a plurality of sub-blocks with a relatively large block size can be predicted.

[0172] The block division information may be predicted according to the motion vector of the coded block. For example, if the difference between the motion vector of the coded block and the motion vector of the current block is greater than a predetermined threshold, the block division information may be predicted to divide the block into a plurality of sub-blocks of a relatively small block size. On the other hand, if the difference between the motion vector of the coded block and the motion vector of the current block is equal to or smaller than a predetermined threshold, the block division information may be predicted to divide the block into a plurality of sub-blocks of a relatively large block size.

[0173] The block division information may be predicted according to a quantization parameter of the coded block. For example, if the value of the quantization parameter of the coded block is smaller than a predetermined value, predetermined block division information for dividing the block into a plurality of sub-blocks with a relatively small block size can be predicted. Alternatively, for example, if the value of the quantization parameter of the coded block is equal to or greater than a predetermined value, other predetermined block division information for dividing the block into a plurality of sub-blocks with a relatively large block size can be predicted.

[0174] The block partition information may be predicted according to the reference picture information of the coded block. For example, if the reference picture of the coded block is temporally close to the current picture or the reference pictures of the coded blocks are similar to each other, predetermined block partition information for dividing the block into multiple sub-blocks with a relatively large block size can be predicted. If the reference picture of the coded block is not temporally close to the current picture or the reference pictures of the coded blocks are dissimilar to each other, other predetermined block partition information for dividing the block into multiple sub-blocks with a relatively small block size can be predicted.

[0175] The block division information may be predicted according to the division depth of the coded block. For example, if the division depth of the coded block is greater than a predetermined value (e.g., 4), predetermined block division information for dividing the block into multiple sub-blocks of relatively small block sizes can be predicted. If the division depth of the coded block is equal to or less than a predetermined value (e.g., the division depth is equal to 2), other predetermined block division information for dividing the block into multiple sub-blocks of relatively large block sizes can be predicted.

[0176] The block partition information may be predicted according to partition information of a coded block in a frame different from the current frame. For example, the block partition information (including split information) for the current block or the split information of the current block can be predicted from a coded block in a coded frame different from the current frame (e.g., a collocated block, a last coded block, or a coded block identified by a motion vector, etc.).

[0177] If the written parameter is not equal to the predetermined value (N in S1002), in step S1005, the block is divided into a plurality of sub-blocks without using prediction block division information. Possible division methods include, for example, binary tree division as shown in b1) and b2) of FIG. 41, quad tree division as shown in q1) and q2) of FIG. 41, multi-tree cut / division as shown in m1) and m2) of FIG. 41, or non-square / non-rectangular division as shown in n1) of FIG. 41. The geometry (shape and / or size) of the sub-blocks can be various geometries, such as asymmetric binary tree division as shown in b2) of FIG. 41, asymmetric quad tree division as shown in q2) of FIG. 41, multi-tree cut of different sizes as shown in m1) of FIG. 41, or non-square / non-rectangular division as shown in n1) of FIG. 41.

[0178] In step S1006, sub-blocks included in the plurality of sub-blocks are coded by coding processing. Here, this coding processing includes a transform processing and / or a predictive processing. The transform processing is preferably performed for each block having a size approximately equal to that of the sub-block.

[0179] [Encoding device] FIG. 35 is a block diagram showing a structure of a video / image encoding device according to an embodiment.

[0180] The video encoding device 25000 is a device that encodes an input video / image bitstream on a block-by-block basis and generates an encoded output bitstream, and as shown in FIG. 35 , 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 partition information determination unit 25010.

[0181] An input video is input to the adder, and the added value is output to the conversion unit 25001. The conversion unit 25001 converts the added value into a frequency coefficient based on the block partition information derived by the block partition information determination unit 25010, and outputs the obtained frequency coefficient to the quantization unit 25002. The quantization unit 25002 quantizes the input frequency coefficient, and outputs the obtained quantized value to the inverse quantization unit 25003 and the entropy coding unit 25009.

[0182] The inverse quantization unit 25003 inversely quantizes the quantized 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 partition information derived by the block partition information determination unit 25010, thereby converting them into sample values ​​of a bit stream, and outputs the obtained sample values ​​to an adder.

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

[0184] The block division information determination unit 25010 derives block division information and parameters related to the block division information by collecting block information from the block memory 25005 or the frame memory 25006. If the block division information derived here is used, the block is divided into multiple sub-blocks.

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

[0186] The entropy coding unit 25009 codes the quantized value output from the quantization unit 25002, codes the parameters from the block division information determination unit 25010, and outputs a bitstream.

[0187] [Decryption process] FIG. 12 shows an example of a video decoding process according to the second embodiment.

[0188] In the first step S2001, parameters are parsed from the bitstream. Figure 37 shows the analyzable locations of the parameters in the compressed video bitstream. The parsed parameters include one or more parameters for identifying whether the prediction of the block partition information is valid. If the one or more parameters include, for example, a flag, the one or more parameters can indicate whether the prediction of the block partition information is valid.

[0189] Next, in step S2002, it is determined whether the analyzed parameter is equal to a predetermined value.

[0190] If the analyzed parameter is equal to a predetermined value (Y in S2002), block partition information is predicted in step S2003, and then, in step S2004, the block is divided into a plurality of sub-blocks using the predicted block partition information. The predicted block partition information is used, for example, as initial block partition information. The initial block partition information is then updated to final block partition information according to difference information between the predicted block partition information and the final block partition information, which is analyzed from the bitstream. Possible partitioning methods include, for example, binary tree partitioning as shown in b1) and b2) of FIG. 41, quad tree partitioning as shown in q1) and q2) of FIG. 41, multi-tree cut / partitioning as shown in m1) and m2) of FIG. 41, or non-square / non-rectangular partitioning as shown in n1) of FIG. 41. The geometry (shape and / or size) of the sub-blocks can vary, such as an asymmetric binary tree division as shown in b2) of Figure 41, an asymmetric quad-tree division as shown in q2) of Figure 41, a multi-tree cut of different sizes as shown in m1) of Figure 41, or a non-square / non-rectangular division as shown in n1) of Figure 41.

[0191] Here, the block partition information can be predicted according to 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, partition depth, etc.). The block is divided into multiple sub-blocks using the block partition information. As shown in Figure 38, if different block partition information is used, the heights, widths, or shapes of the multiple sub-blocks resulting from the block partition will also be different.

[0192] The block partition structure of the decoded block can be used as it is as the predicted block partition structure of the current block.

[0193] A new block partition structure can also be derived as the predicted block partition structure of the current block by combining the block partition structures of two or more decoded blocks (for example, as shown in FIG. 39, 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). One example of a method for selecting a decoded block is to select a decoded block in 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.

[0194] The block partition structure of the decoded block may be modified (for example, by using a block partition structure with a shallower division depth as shown in Figure 40) and the new block partition structure may be derived as the predicted block partition structure of the current block.

[0195] The block division information may be a parameter set indicating whether to divide the block horizontally or vertically, or may be a parameter set including predetermined block widths and predetermined block heights for all sub-blocks within the block.

[0196] The predicted block division information may differ depending on the intra-prediction direction information of the decoded block. For example, information on the intra-prediction direction at a specific neighboring block position may be used to predict whether the current block is divided vertically or horizontally into smaller blocks. For example, if the intra-prediction direction information of the upper neighboring block is determined to be vertical or close to vertical, block division information including vertical division can be predicted for the current block. Similarly, if the intra-prediction direction information of the left neighboring block is determined to be horizontal or close to horizontal, block division information including horizontal division can be predicted for the current block.

[0197] The block partition information may be a parameter set including an index for selecting one partition structure candidate from a predetermined list of block partition structure candidates, where the block partition structure visually presents the geometry of all sub-blocks within the block, as shown in Figure 38.

[0198] The block division information may be predicted according to the intra / inter prediction mode of the decoded block. For example, if the prediction mode of the decoded block is an intra prediction mode, predetermined block division information for dividing the block into a plurality of sub-blocks with a relatively small block size can be predicted. For example, if the prediction mode of the decoded block is an inter prediction mode, other predetermined block division information for dividing the block into a plurality of sub-blocks with a relatively large block size can be predicted.

[0199] The block division information may be predicted according to the motion vector of the decoded block. For example, if the difference between the motion vector of the decoded block and the motion vector of the current block is greater than a predetermined threshold, predetermined block division information for dividing the block into a plurality of sub-blocks of a relatively small block size can be predicted. On the other hand, if the difference between the motion vector of the decoded block and the motion vector of the current block is equal to or smaller than a predetermined threshold, other predetermined block division information for dividing the block into a plurality of sub-blocks of a relatively large block size can be predicted.

[0200] The block division information may be predicted according to a quantization parameter of the decoded block. For example, if the value of the quantization parameter of the decoded block is smaller than a predetermined value, predetermined block division information for dividing the block into a plurality of sub-blocks with a relatively small block size can be predicted. For example, if the value of the quantization parameter of the decoded block is equal to or greater than a predetermined value, other predetermined block division information for dividing the block into a plurality of sub-blocks with a relatively large block size can be predicted.

[0201] The block division information may be predicted according to the reference picture information of the decoded block. For example, if the reference picture of the decoded block is temporally close to the current picture or the reference pictures of the decoded blocks are similar to each other, predetermined block division information for dividing the block into multiple sub-blocks with a relatively large block size can be predicted. If the reference picture of the decoded block is not temporally close to the current picture or the reference pictures of the decoded blocks are dissimilar to each other, other predetermined block division information for dividing the block into multiple sub-blocks with a relatively small block size can be predicted.

[0202] The block division information may be predicted according to the division depth of the decoded block. For example, if the division depth of the decoded block is greater than a predetermined value (e.g., 4), predetermined block division information for dividing the block into multiple sub-blocks of a relatively small block size can be predicted. If the division depth of the decoded block is equal to or less than a predetermined value (e.g., the division depth is equal to 2), other predetermined block division information for dividing the block into multiple sub-blocks of a relatively large block size can be predicted.

[0203] The block partition information may be predicted according to partition information of a decoded block of a frame different from the current frame. For example, the block partition information (including split information) for the current block or the split information of the current block may be predicted from a decoded block of a decoded frame different from the current frame (e.g., a collocated block, a last decoded block, a decoded block identified by a motion vector, etc.).

[0204] If the written parameter is not equal to the predetermined value (N in S2002), in step S2005, the block is divided into a plurality of sub-blocks without using prediction block division information. Possible division methods include, for example, binary tree division as shown in b1) and b2) of FIG. 41, quad tree division as shown in q1) and q2) of FIG. 41, multi-tree cut / division as shown in m1) and m2) of FIG. 41, or non-square / non-rectangular division as shown in n1) of FIG. 41. The geometry (shape and / or size) of the sub-blocks can be various geometries, such as asymmetric binary tree division as shown in b2) of FIG. 41, asymmetric quad tree division as shown in q2) of FIG. 41, multi-tree cut of different sizes as shown in m1) of FIG. 41, or non-square / non-rectangular division as shown in n1) of FIG. 41.

[0205] In step S2006, sub-blocks included in the plurality of sub-blocks are decoded by a decoding process. Here, this decoding process includes an inverse transform process and / or a prediction process. The inverse transform process is preferably performed for each block having a size approximately equal to that of the sub-block.

[0206] [Decryption device] FIG. 36 is a block diagram showing a structure of a video / image decoding device according to an embodiment.

[0207] The video decoding device 26000 is a device that decodes an encoded input bitstream block by block and outputs video / images, and as shown in FIG. 36, 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 prediction unit 26006, an inter prediction unit 26007, and a block partition information determination unit 26008.

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

[0209] The inverse quantization unit 26002 inversely quantizes the decoded values ​​and outputs frequency coefficients to the inverse transformation unit 26003. The inverse transformation unit 26003 converts the frequency coefficients into sample values ​​by performing an inverse frequency transformation based on the block partition information derived by the block partition information determination unit 26008, and outputs the obtained sample values ​​to an adder.

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

[0211] The block division information determination unit 26008 derives block division information using the decoding parameters from the entropy decoding unit 26001 by collecting block information from the block memory 26004 or the frame memory 26005. If the block division information derived here is used, the block is divided into a plurality of sub-blocks.

[0212] Furthermore, the intra prediction unit 26006 / inter prediction unit 26007 searches for video / images stored in the block memory 26004 or reconstructed video / images in the frame memory 26005 based on the block partition information derived from the block partition information determination unit 26008, and estimates, for example, the video / image area that is most similar to the video / image of the decoded block for prediction.

[0213] (Embodiment 3) [overview] The encoding device of this embodiment is an encoding device that encodes blocks of an image, and includes a processor and a memory connected to the processor, wherein the processor uses the memory to write parameters to a bitstream, uses the written parameters to select at least one encoded block from a plurality of encoded blocks, reads block information from the selected at least one encoded block, uses the read block information to divide a current block into a plurality of sub-blocks, and encodes the sub-blocks included in the plurality of sub-blocks using an encoding process that includes a transformation process and / or a prediction process.

[0214] This allows adaptive selection of coded blocks for dividing the current block using the parameters. By dividing the block into multiple sub-blocks using block information of the coded blocks selected in this way, the amount of code related to the block division information can be reduced, thereby improving compression efficiency.

[0215] For example, in the encoding device according to this embodiment, the current block and the plurality of encoded blocks may be different blocks, and at least one of the plurality of 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.

[0216] This allows a coded block for block division to be selected from among multiple coded blocks that are different from each other, and allows the current block to be divided using block information that is more suitable for block division. As a result, the amount of code related to the block division information can be reduced, and compression efficiency can be improved.

[0217] For example, in the encoding device according to this embodiment, the read block information may include at least one of information regarding 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.

[0218] This allows appropriate information to be used as block information, and makes it possible to divide the current block using block information that is more suitable for block division. As a result, the amount of code related to the block division information can be reduced, and compression efficiency can be improved.

[0219] The decoding device of this embodiment is a decoding device that decodes blocks of an image, and is equipped with a processor and a memory. The processor uses the memory to analyze parameters from a bitstream, determine whether the analyzed parameters are equal to a predetermined value, predict block division information if the analyzed parameters are equal to the predetermined value, and divide the block into a plurality of sub-blocks using the predicted block division information. If the written parameters are not equal to the predetermined value, divide the block into a plurality of sub-blocks without using the predicted block division information, and decode the sub-blocks included in the plurality of sub-blocks using a decoding process that includes an inverse transform process and / or a prediction process.

[0220] This allows adaptive selection of a decoded block for dividing the current block using the parameter. By dividing the block into a plurality of sub-blocks using the block information of the decoded block selected in this way, the amount of code related to the block division information can be reduced, thereby improving compression efficiency.

[0221] For example, in a decoding device according to this embodiment, the current block and the decoded blocks may be different blocks, and at least one of the 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.

[0222] This allows a decoded block for block division to be selected from among multiple different decoded blocks, and allows the current block to be divided using block information that is more suitable for block division. As a result, the amount of code related to the block division information can be reduced, and compression efficiency can be improved.

[0223] For example, in the decoding device according to this embodiment, the read block information may include at least one of information regarding 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.

[0224] This allows appropriate information to be used as block information, and makes it possible to divide the current block using block information that is more suitable for block division. As a result, the amount of code related to the block division information can be reduced, and compression efficiency can be improved.

[0225] These comprehensive or specific aspects may be realized as a system, a method, an integrated circuit, a computer program, or a computer-readable recording medium such as a CD-ROM, or may be realized as any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0226] Hereinafter, a method for encoding and a method for decoding video will be described according to an embodiment, as shown in FIGS. 13 and 14, respectively.

[0227] [Encoding process] FIG. 13 shows an example of a video encoding process according to the third embodiment.

[0228] As a first step S3001, parameters are written into the bitstream. Figure 37 shows where these parameters can be written in a compressed video bitstream. The written parameters include one or more parameters for selecting one or more coded blocks or block information from a predetermined candidate list.

[0229] Next, in step S3002, at least one coded block is selected from the plurality of coded blocks using the written parameters, where the at least one coded 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 other than the frame including the current block (e.g., a block located at the same position as the current block, a motion compensation block whose position is obtained using the motion vector of the current block, or the last coded block included in the latest coded frame other than the current frame).

[0230] In step S3003, block information is read from the selected coded block.

[0231] Then, in step S3004, the current block is divided into a plurality of sub-blocks using the read block information. Figure 38 shows an example of dividing the current block into a plurality of sub-blocks using the read block information.

[0232] To divide a block into sub-blocks, block partition information of the block is derived. Here, the block partition information is derived according to block information of the coded block (e.g., block partition structure, intra prediction mode or inter prediction mode, intra prediction direction, motion vector, reference picture, quantization parameter, and partition depth). The block is divided into multiple sub-blocks using the block partition information. As shown in Figure 38, if different block partition information is used, the heights, widths, or shapes of the multiple sub-blocks resulting from the block partition will also be different.

[0233] The block partition structure of the selected coded block can be used as it is as the block partition structure of the current block.

[0234] A new block partition structure can also be derived as the block partition structure of the current block by combining the block partition structures of two or more selected coded blocks (for example, as shown in Figure 39, 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).

[0235] The block partition structure of the selected coded block may be modified (e.g., using a block partition structure with a shallower division depth, as shown in Figure 40) and a new block partition structure may be derived as the block partition structure of the current block.

[0236] The block division information may be a parameter set indicating whether to divide the block horizontally or vertically, or may be a parameter set including predetermined block widths and predetermined block heights for all sub-blocks within the block.

[0237] The block partition information may differ depending on the information on the intra-prediction direction of the selected coded block. For example, information on the intra-prediction direction at a specific neighboring block position may be used to determine whether to vertically or horizontally partition the current block into smaller blocks. For example, if the information on the intra-prediction direction of the upper neighboring block is determined to be vertical or close to vertical, block partition information including vertical partitioning can be derived for the current block. Similarly, if the information on the intra-prediction direction of the left neighboring block is determined to be horizontal or close to horizontal, block partition information including horizontal partitioning can be derived for the current block.

[0238] The block partition information may be a parameter set including an index for selecting one partition structure candidate from a predetermined list of block partition structure candidates, where the block partition structure visually presents the geometry of all sub-blocks within the block, as shown in Figure 38.

[0239] The block division information may be derived according to the intra / inter prediction mode of the selected coded block. For example, if the prediction mode of the selected coded block is an intra prediction mode, predetermined block division information for dividing the block into multiple sub-blocks of relatively small block sizes can be derived. Also, for example, if the prediction mode of the selected coded block is an inter prediction mode, other predetermined block division information for dividing the block into multiple sub-blocks of relatively large block sizes can be derived.

[0240] The block division information may be derived according to the motion vector of the selected coded block. For example, if the difference between the motion vector of the selected coded block and the motion vector of the current block is greater than a predetermined threshold, predetermined block division information for dividing the block into multiple sub-blocks of relatively small block sizes can be derived. On the other hand, if the difference between the motion vector of the selected coded block and the motion vector of the current block is equal to or smaller than a predetermined threshold, other predetermined block division information for dividing the block into multiple sub-blocks of relatively large block sizes can be derived.

[0241] The block division information may be derived according to a quantization parameter of the selected coded block. For example, if the value of the quantization parameter of the selected coded block is smaller than a predetermined value, predetermined block division information for dividing the block into multiple sub-blocks of relatively small block sizes can be derived. For example, if the value of the quantization parameter of the selected coded block is equal to or greater than a predetermined value, other predetermined block division information for dividing the block into multiple sub-blocks of relatively large block sizes can be derived.

[0242] The block division information may be derived according to the reference picture information of the selected coded block. For example, if the reference picture of the selected coded block is temporally close to the current picture or the reference pictures of the selected coded blocks are similar to each other, predetermined block division information for dividing the block into multiple sub-blocks with a relatively large block size can be derived. If the reference picture of the selected coded block is not temporally close to the current picture or the reference pictures of the selected coded blocks are not similar to each other, other predetermined block division information for dividing the block into multiple sub-blocks with a relatively small block size can be derived.

[0243] The block division information may be derived according to the division depth of the selected coded block. For example, if the division depth of the selected coded block is greater than a predetermined value (e.g., 4), predetermined block division information can be derived to divide the block into multiple sub-blocks of relatively small block sizes. If the division depth of the selected coded block is equal to or less than a predetermined value (e.g., the division depth is equal to 2), other predetermined block division information can be derived to divide the block into multiple sub-blocks of relatively large block sizes.

[0244] The block partition information may be derived according to partition information of a coded block of a frame different from the current frame. For example, the block partition information (including split information) for the current block or the split information of the current block can be derived from block information of a coded block of a coded frame different from the current frame (e.g., a collocated block, a last coded block, or a coded block identified by a motion vector).

[0245] In step S3005, sub-blocks included in the plurality of sub-blocks are coded by coding processing. Here, this coding processing includes a transform processing and / or a predictive processing. The transform processing is preferably performed for each block having a size approximately equal to that of the sub-block.

[0246] [Encoding device] The structure of the video / image coding device in this embodiment is the same as that in FIG. 35 of the second embodiment, and therefore will not be illustrated or described again.

[0247] [Decryption process] FIG. 14 shows an example of a video decoding process according to the third embodiment.

[0248] As a first step S4001, parameters are parsed from the bitstream. Figure 37 shows the possible locations of the parameters in a 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.

[0249] Next, in step S4002, at least one decoded block is selected from the plurality of decoded blocks using the analyzed parameters, where 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 another frame different from the frame including the current block (e.g., a block located at the same position as the current block, or a motion compensation block whose position is obtained using the motion vector of the current block, or the last coded block included in the latest coded frame different from the current frame).

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

[0251] Then, in step S4004, the current block is divided into a plurality of sub-blocks using the read block information. Figure 38 shows an example of dividing the current block into a plurality of sub-blocks using the read block information.

[0252] To divide a block into sub-blocks, block partition information of the block is derived. Here, the block partition information is derived according to block information of a decoded block (e.g., block partition structure, intra prediction mode or inter prediction mode, intra prediction direction, motion vector, reference picture, quantization parameter, and partition depth). The block is divided into multiple sub-blocks using the block partition information. As shown in Figure 38, if different block partition information is used, the heights, widths, or shapes of the multiple sub-blocks resulting from the block partition will also be different.

[0253] The block partition structure of the selected decoded block can be used as it is as the block partition structure of the current block.

[0254] A new block partition structure can also be derived as the block partition structure of the current block by combining the block partition structures of two or more selected decoded blocks (for example, as shown in Figure 39, 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).

[0255] The block partition structure of the selected decoded block may be modified (for example, by using a block partition structure with a shallower division depth, as shown in Figure 40), and a new block partition structure may be derived as the block partition structure of the current block.

[0256] The block division information may be a parameter set indicating whether to divide the block horizontally or vertically, or may be a parameter set including predetermined block widths and predetermined block heights for all sub-blocks within the block.

[0257] The block division information may differ depending on the information of the intra-prediction direction of the selected decoded block. For example, information on the intra-prediction direction at a specific neighboring block position may be used to determine whether to vertically or horizontally divide the current block into smaller blocks. For example, if the information on the intra-prediction direction of the upper neighboring block is determined to be vertical or close to vertical, block division information including vertical division can be derived for the current block. Similarly, if the information on the intra-prediction direction of the left neighboring block is determined to be horizontal or close to horizontal, block division information including horizontal division can be derived for the current block.

[0258] The block partition information may be a parameter set including an index for selecting one partition structure candidate from a predetermined list of block partition structure candidates, where the block partition structure visually presents the geometry of all sub-blocks within the block, as shown in Figure 38.

[0259] The block division information may be derived according to the intra / inter prediction mode of the selected decoded block. For example, if the prediction mode of the selected decoded block is an intra prediction mode, predetermined block division information for dividing the block into multiple sub-blocks of a relatively small block size can be derived. Also, for example, if the prediction mode of the selected decoded block is an inter prediction mode, other predetermined block division information for dividing the block into multiple sub-blocks of a relatively large block size can be derived.

[0260] The block division information may be derived according to the motion vector of the selected decoded block. For example, if the difference between the motion vector of the selected decoded block and the motion vector of the current block is greater than a predetermined threshold, predetermined block division information for dividing the block into multiple sub-blocks of a relatively small block size can be derived. On the other hand, if the difference between the motion vector of the selected decoded block and the motion vector of the current block is equal to or smaller than a predetermined threshold, other predetermined block division information for dividing the block into multiple sub-blocks of a relatively large block size can be derived.

[0261] The block division information can also be derived according to the quantization parameter of the selected decoded block. For example, if the value of the quantization parameter of the selected decoded block is smaller than a predetermined value, the predetermined block division information can be derived to divide the block into multiple sub-blocks with relatively small block sizes. For example, if the value of the quantization parameter of the selected decoded block is equal to or greater than a predetermined value, the other predetermined block division information can be derived to divide the block into multiple sub-blocks with relatively large block sizes.

[0262] The block division information can also be derived according to the reference picture information of the selected decoded block. For example, if the reference picture of the decoded block is temporally close to the current picture or the reference pictures of the decoded blocks are similar to each other, predetermined block division information can be derived to divide the block into multiple sub-blocks with a relatively large block size. If the reference picture of the decoded block is not temporally close to the current picture or the reference pictures of the decoded blocks are not similar to each other, other predetermined block division information can be derived to divide the block into multiple sub-blocks with a relatively small block size.

[0263] The block division information may be derived according to the division depth of the selected decoded block. For example, if the division depth of the selected decoded block is greater than a predetermined value (e.g., 4), predetermined block division information for dividing the block into multiple sub-blocks of a relatively small block size can be derived. If the division depth of the selected decoded block is equal to or less than a predetermined value (e.g., the division depth is equal to 2), other predetermined block division information for dividing the block into multiple sub-blocks of a relatively large block size can be derived.

[0264] The block partition information may be predicted according to partition information of a decoded block of a frame different from the current frame. For example, the block partition information (including split information) for the current block or the split information of the current block can be derived from block information of a decoded block of a decoded frame different from the current frame (e.g., a collocated block, a last decoded block, or a decoded block identified by a motion vector).

[0265] In step S4005, sub-blocks included in the plurality of sub-blocks are decoded by a decoding process. Here, this decoding process includes an inverse transform process and / or a prediction process. The inverse transform process is preferably performed for each block having a size approximately equal to that of the sub-block.

[0266] [Decryption device] The structure of the video / image decoding device in this embodiment is the same as that in FIG. 36 of the second embodiment, and therefore will not be illustrated or described again.

[0267] (Fourth embodiment) [overview] The encoding device of 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 initialize block partition information, and if the initialized block partition information is used, the block is divided into a plurality of sub-blocks of a first geometry set, writes parameters to a bitstream, and uses the written parameters to modify the initialized block partition information to modified block partition information, and if the modified block partition information is used, the block is divided into a plurality of sub-blocks of a geometry set different from the first geometry set, modifies the geometry of the plurality of sub-blocks using the modified block partition information, and encodes the sub-blocks included in the plurality of sub-blocks using an encoding process that includes a transformation process and / or a prediction process.

[0268] This allows the initialized block partition information to be adaptively modified to modified block partition information using parameters. The modified block partition information can be used to modify the geometry of multiple sub-blocks. As a result, the amount of code related to the block partition information can be reduced, improving compression efficiency.

[0269] For example, in the encoding device according to this embodiment, the geometry may indicate at least the shape, height, or width of the block.

[0270] This allows the shape and / or size of the blocks to be used as geometry.

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

[0272] This allows the block division information to be initialized by selecting the block division information from a predetermined list. Therefore, as long as the block division information contains information that identifies the block division information in the list, the amount of code related to the block division information can be reduced, thereby improving compression efficiency.

[0273] For example, in the encoding device according to this embodiment, the process of initializing the block division information may include a process of generating the block division information using predetermined parameters related to geometry.

[0274] This allows the block division information to be initialized by generating the block division information using the parameters.

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

[0276] This allows the division depth to be determined based on the picture type and / or quantization parameter of the current block when initializing the block division information. Therefore, the division depth can be determined based on existing information in the bitstream, and the amount of code related to the block division information can be reduced. Furthermore, by using the picture type and / or quantization parameter of the current block, the block division information can be initialized to a division depth appropriate for the current block, improving compression efficiency.

[0277] For example, in the encoding device according to this embodiment, the written parameters may include the difference between the division depth indicated by the initialized block division information and the division depth indicated by the modified block division information.

[0278] This allows the division depth of the block to be modified using the parameters, and allows the use of sub-blocks that are more suitable for encoding, thereby improving compression efficiency.

[0279] The decoding device of 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 initialize block partition information, and if the initialized block partition information is used, the block is divided into a plurality of sub-blocks of a first geometry set, analyzes parameters from the bitstream, and uses the analyzed parameters to modify the initialized block partition information to modified block partition information, and if the modified block partition information is used, the block is divided into a plurality of sub-blocks of a geometry set different from the first geometry set, modifies the geometry of the plurality of sub-blocks using the modified block partition information, and decodes sub-blocks included in the plurality of sub-blocks in a decoding process that includes an inverse transformation process and / or a prediction process.

[0280] This allows the initialized block partition information to be adaptively modified to modified block partition information using parameters. The modified block partition information can be used to modify the geometry of multiple sub-blocks. As a result, the amount of code related to the block partition information can be reduced, improving compression efficiency.

[0281] For example, in the decoding device according to this embodiment, the geometry may indicate at least the shape, height, or width of the block.

[0282] This allows the shape and / or size of the blocks to be used as geometry.

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

[0284] This allows the block division information to be initialized by selecting the block division information from a predetermined list. Therefore, as long as the block division information contains information that identifies the block division information in the list, the amount of code related to the block division information can be reduced, thereby improving compression efficiency.

[0285] For example, in the decoding device according to this embodiment, the process of initializing the block division information may include a process of generating the block division information using predetermined parameters related to geometry.

[0286] This allows the block division information to be initialized by generating the block division information using the parameters.

[0287] For example, in the decoding device according to this embodiment, when initializing the block division information, the division depth may be determined based on at least one of the picture type and the quantization parameter of the current block.

[0288] This allows the division depth to be determined based on the picture type and / or quantization parameter of the current block when initializing the block division information. Therefore, the division depth can be determined based on existing information in the bitstream, and the amount of code related to the block division information can be reduced. Furthermore, by using the picture type and / or quantization parameter of the current block, the block division information can be initialized to a division depth appropriate for the current block, improving compression efficiency.

[0289] For example, in the decoding device according to this embodiment, the analyzed parameters may include the difference between the division depth indicated by the initialized block division information and the division depth indicated by the modified block division information.

[0290] This allows the division depth of the block to be modified using the parameters, and allows the use of sub-blocks that are more suitable for encoding, thereby improving compression efficiency.

[0291] These comprehensive or specific aspects may be realized as a system, a method, an integrated circuit, a computer program, or a computer-readable recording medium such as a CD-ROM, or may be realized as any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0292] A method for encoding and decoding a video will be described according to an embodiment, as shown in FIG. 15 and FIG. 16, respectively.

[0293] [Encoding process] FIG. 15 shows an example of a video encoding process according to the fourth embodiment.

[0294] In the first step S5001, block division information is initialized. When this initialized block division information (hereinafter referred to as initial block division information) is used, the block is divided into multiple sub-blocks of the first geometry set. As shown in Figure 38, if different block division information is used, the height, width, or shape of the multiple sub-blocks resulting from the block division will also differ.

[0295] The block partition structure of the coded block can be used as the initial block partition structure of the current block.

[0296] A new block partition structure can also be derived as the initial block partition structure of the current block by combining the block partition structures of two or more coded blocks (for example, as shown in FIG. 39, 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). One example of a method for selecting a coded block is to select a coded block in the same intra / inter prediction mode as the current block. Specifically, if the current block is an inter prediction block, one or more coded blocks coded using inter prediction are selected.

[0297] It is also possible to modify the block partition structure of the coded block (for example, by using a block partition structure with a shallower division depth as shown in Figure 40) and derive the new block partition structure as the initial block partition structure of the current block.

[0298] The initial block division information may be a parameter set indicating whether to divide the block horizontally or vertically, or may be a parameter set including predetermined block widths and predetermined block heights for all sub-blocks within the block.

[0299] The initial block partition information may differ depending on the intra-prediction direction information of the coded block. For example, information on the intra-prediction direction at a specific neighboring block position may be used to determine whether to vertically or horizontally divide the current block into smaller blocks. For example, if the intra-prediction direction information of the upper neighboring block is determined to be vertical or close to vertical, the block partition information for the current block can be initialized to block partition information including vertical division. Similarly, if the intra-prediction direction information of the left neighboring block is determined to be horizontal or close to horizontal, the block partition information for the current block can be initialized to block partition information including horizontal division.

[0300] The initial block partition information may be a parameter set including an index for selecting one partition structure candidate from a predetermined list of block partition structure candidates, where the initial block partition structure visually presents the geometry of all sub-blocks in the block, as shown in Figure 38.

[0301] The block partition information can be initialized according to the intra / inter prediction mode of the coded block. For example, if the prediction mode of the coded block is an intra prediction mode, the block partition information can be initialized to predetermined block partition information that divides the block into multiple sub-blocks of relatively small block sizes. For example, if the prediction mode of the coded block is an inter prediction mode, the block partition information can be initialized to other predetermined block partition information that divides the block into multiple sub-blocks of relatively large block sizes.

[0302] The block division information may be initialized according to the motion vector of the coded block. For example, if the difference between the motion vector of the coded block and the motion vector of the current block is greater than a predetermined threshold, the block division information may be initialized to predetermined block division information that divides the block into multiple sub-blocks of a relatively small block size. On the other hand, if the difference between the motion vector of the coded block and the motion vector of the current block is equal to or smaller than the predetermined threshold, the block division information may be initialized to other predetermined block division information that divides the block into multiple sub-blocks of a relatively large block size.

[0303] The block division information may be initialized according to a quantization parameter of the coded block. For example, if the value of the quantization parameter of the coded block is smaller than a predetermined value, the block division information may be initialized to predetermined block division information that divides the block into multiple sub-blocks of relatively small block sizes. For example, if the value of the quantization parameter of the coded block is equal to or greater than a predetermined value, the block division information may be initialized to other predetermined block division information that divides the block into multiple sub-blocks of relatively large block sizes.

[0304] The block partition information may be initialized according to the reference picture information of the coded block. For example, if the reference picture of the coded block is temporally close to the current picture or the reference pictures of the coded blocks are similar to each other, the block partition information may be initialized to predetermined block partition information that divides the block into multiple sub-blocks with a relatively large block size. If the reference picture of the coded block is not temporally close to the current picture or the reference pictures of the coded blocks are not similar to each other, the block partition information may be initialized to other predetermined block partition information that divides the block into multiple sub-blocks with a relatively small block size.

[0305] The block division information may be initialized according to the division depth of the encoded block. For example, if the division depth of the encoded block is greater than a predetermined value (e.g., 4), the block division information can be initialized to predetermined block division information that divides the block into multiple sub-blocks of relatively small block sizes. If the division depth of the encoded block is equal to or less than a predetermined value (e.g., the division depth is equal to 2), the block division information can be initialized to other predetermined block division information that divides the block into multiple sub-blocks of relatively large block sizes.

[0306] The block partition information may be initialized according to partition information of a coded block of a frame different from the current frame. For example, the block partition information (including split information) for the current block or the split information of the current block may be initialized from a coded block of a coded frame different from the current frame (e.g., a collocated block, a last coded block, or a coded block identified by a motion vector, etc.).

[0307] Next, in step S5002, the parameters are written into the bitstream. Figure 37 shows the positions where the above parameters can be written in the compressed video bitstream.

[0308] In step S5003, the initial block division information is modified to modified block division information using the written parameters. When this modified block division information is used, the block is divided into multiple sub-blocks of a geometry set different from the first geometry set. The written parameters include one or more parameters for modifying the initial block division information to the modified block division information.

[0309] For example, the written parameters may include a split flag that splits a block into multiple sub-blocks, which changes the value of the quad-tree (QT) split flag and modifies the initial block partition structure, as shown in Figure 42A.

[0310] As another example, the written parameters may include merge flags that hierarchically combine smaller blocks into larger blocks based on a predetermined scan order (e.g., raster scan or Z scan). As shown in Figure 42B, this parameter is used to combine multiple blocks into larger blocks and modify the initial block partition structure. An example of hierarchically combining smaller blocks into larger blocks is shown in Figure 43.

[0311] As another example, the written parameters may include split enable flags that hierarchically split larger blocks into smaller blocks based on a predetermined scan order (such as raster scan or Z scan). Using these parameters, blocks are split into smaller sub-blocks and the initial block partition structure is modified, as shown in Figure 42C.

[0312] As another example, the written parameters may include a difference between the division depth indicated by the initial block division information and the division depth indicated by the modified block division information, and the parameter is used to modify the division depth of the block.

[0313] It is also possible to combine different partitioning methods, such as splitting blocks and combining smaller blocks, to form the final block partition structure. The bitstream header may contain control parameters, such as one or more toggle parameters or flags indicating whether to use a merge enable flag or a split enable flag.

[0314] Using the initial block partition information or the modified block partition information, various block partition structures can be obtained by various partitioning methods. The partitioning methods can be, for example, binary tree partitioning as shown in b1) and b2) of Figure 41, quad tree partitioning as shown in q1) and q2) of Figure 41, multi-tree cut / partitioning as shown in m1) and m2) of Figure 41, or non-square / non-rectangular partitioning as shown in n1) of Figure 41. The geometry (shape and / or size) of the sub-blocks can be various geometries, such as asymmetric binary tree partitioning as shown in b2) of Figure 41, asymmetric quad tree partitioning as shown in q2) of Figure 41, multi-tree cuts with different sizes as shown in m1) of Figure 41, or non-square / non-rectangular partitioning as shown in n1) of Figure 41.

[0315] The written parameters may indicate, for example, that no modification is necessary. If no modification is necessary, steps S5003 and S5004 can be omitted. Thus, before proceeding to step S5005, the block is divided into a plurality of sub-blocks using the initial block division information. Then, in step S5005, encoding the sub-blocks included in the plurality of sub-blocks divided using the modified block division information by the encoding process is replaced with encoding the sub-blocks included in the plurality of sub-blocks divided using the initial block division information by the encoding process.

[0316] In step S5004, the geometries of the multiple sub-blocks are modified using the modified block division information.

[0317] In step S5005, sub-blocks included in the plurality of sub-blocks are coded by coding processing. Here, this coding processing includes a transform processing and / or a predictive processing. The transform processing is preferably performed for each block having a size approximately equal to that of the sub-block.

[0318] [Encoding device] The structure of the video / image coding device in this embodiment is the same as that in FIG. 35 of the second embodiment, and therefore will not be illustrated or described again.

[0319] [Decryption process] FIG. 16 shows an example of a video decoding process according to the fourth embodiment.

[0320] In the first step S6001, block division information is initialized. When this initial block division information is used, the block is divided into multiple sub-blocks of the first geometry set. As shown in Figure 38, if different block division information is used, the height, width, or shape of the multiple sub-blocks resulting from the block division will also be different.

[0321] The block partition structure of the decoded block can be used as is as the initial block partition structure of the current block.

[0322] A new block partition structure can also be derived as the initial block partition structure of the current block by combining the block partition structures of two or more decoded blocks (for example, as shown in FIG. 39, 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). One example of a method for selecting a decoded block is to select a decoded block in 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.

[0323] It is also possible to modify the block partition structure of the decoded block (for example, by using a block partition structure with a shallower division depth as shown in Figure 40) and derive the new block partition structure as the initial block partition structure of the current block.

[0324] The initial block division information may be a parameter set indicating whether to divide the block horizontally or vertically, or may be a parameter set including predetermined block widths and predetermined block heights for all sub-blocks within the block.

[0325] The initial block partition information may differ depending on the intra-prediction direction information of the decoded block. For example, information on the intra-prediction direction at a specific neighboring block position may be used to determine whether to vertically or horizontally divide the current block into smaller blocks. For example, if it is determined that the intra-prediction direction information of the upper neighboring block is vertical or close to vertical, the block partition information for the current block can be initialized to block partition information including vertical division. Similarly, if it is determined that the intra-prediction direction information of the left neighboring block is horizontal or close to horizontal, the block partition information for the current block can be initialized to block partition information including horizontal division.

[0326] The initial block partition information may be a parameter set including an index for selecting one partition structure candidate from a predetermined list of block partition structure candidates, where the initial block partition structure visually presents the geometry of all sub-blocks in the block, as shown in Figure 38.

[0327] The block division information can be initialized according to the intra / inter prediction mode of the decoded block. For example, if the prediction mode of the decoded block is an intra prediction mode, the block division information can be initialized to predetermined block division information that divides the block into multiple sub-blocks of a relatively small block size. For example, if the prediction mode of the decoded block is an inter prediction mode, the block division information can be initialized to other predetermined block division information that divides the block into multiple sub-blocks of a relatively large block size.

[0328] The block division information may be initialized according to the motion vector of the decoded block. For example, if the difference between the motion vector of the decoded block and the motion vector of the current block is greater than a predetermined threshold, the block division information may be initialized to predetermined block division information that divides the block into multiple sub-blocks of a relatively small block size. On the other hand, if the difference between the motion vector of the decoded block and the motion vector of the current block is equal to or smaller than the predetermined threshold, the block division information may be initialized to other predetermined block division information that divides the block into multiple sub-blocks of a relatively large block size.

[0329] The block division information may be initialized according to the quantization parameter of the decoded block. For example, if the value of the quantization parameter of the decoded block is smaller than a predetermined value, the block division information can be initialized to predetermined block division information that divides the block into multiple sub-blocks of relatively small block sizes. For example, if the value of the quantization parameter of the decoded block is equal to or greater than a predetermined value, the block division information can be initialized to other predetermined block division information that divides the block into multiple sub-blocks of relatively large block sizes.

[0330] The block partition information may be initialized according to the reference picture information of the decoded block. For example, if the reference picture of the decoded block is temporally close to the current picture or the reference pictures of the decoded blocks are similar to each other, the block partition information may be initialized to predetermined block partition information that divides the block into multiple sub-blocks with a relatively large block size. If the reference picture of the decoded block is not temporally close to the current picture or the reference pictures of the decoded blocks are dissimilar to each other, the block partition information may be initialized to other predetermined block partition information that divides the block into multiple sub-blocks with a relatively small block size.

[0331] The block division information may be initialized according to the division depth of the decoded block. For example, if the division depth of the decoded block is greater than a predetermined value (e.g., 4), the block division information may be initialized to predetermined block division information that divides the block into multiple sub-blocks of a relatively small block size. If the division depth of the decoded block is equal to or less than a predetermined value (e.g., the division depth is equal to 2), the block division information may be initialized to other predetermined block division information that divides the block into multiple sub-blocks of a relatively large block size.

[0332] The block partition information may be initialized according to partition information of a decoded block of a frame different from the current frame. For example, the block partition information (including split information) for the current block or the split information of the current block may be initialized from a decoded block of a decoded frame different from the current frame (e.g., a collocated block, a last decoded block, a decoded block identified by a motion vector, etc.).

[0333] Next, in step S6002, the parameters are parsed from the bitstream. Figure 37 shows the parsable locations of the above parameters in a compressed video bitstream.

[0334] In step S6003, the initial block partition information is modified to modified block partition information using the analyzed parameters. When the modified block partition information is used, the block is divided into multiple sub-blocks of a geometry set different from the first geometry set. The analyzed parameters include one or more parameters for modifying the initial block partition information to the modified block partition information.

[0335] For example, the parsed parameters may include a split flag that splits a block into multiple sub-blocks, which, when used, changes the value of the quad-tree (QT) split flag to modify the initial block partition structure, as shown in Figure 42A.

[0336] As another example, the analyzed parameters may include merge flags that hierarchically combine smaller blocks into larger blocks based on a predetermined scan order (e.g., raster scan or Z scan). As shown in Figure 42B, this parameter is used to combine multiple blocks into larger blocks and modify the initial block partition structure. An example of hierarchically combining smaller blocks into larger blocks is shown in Figure 43.

[0337] As another example, the analyzed parameters may include split enable flags that hierarchically split larger blocks into smaller blocks based on a predetermined scan order (such as raster scan or Z scan). Using these parameters, blocks are split into smaller sub-blocks and the initial block partition structure is modified, as shown in Figure 42C.

[0338] As another example, the analyzed parameters may include a difference between the division depth indicated by the initial block division information and the division depth indicated by the modified block division information, and the parameter is used to modify the division depth of the block.

[0339] It is also possible to combine different partitioning methods, such as splitting blocks and combining smaller blocks, to form the final block partition structure. The bitstream header may contain control parameters, such as one or more toggle parameters or flags indicating whether to use a merge enable flag or a split enable flag.

[0340] Using the initial block partition information or the modified block partition information, various block partition structures can be obtained by various partitioning methods. The partitioning methods can be, for example, binary tree partitioning as shown in b1) and b2) of Figure 41, quad tree partitioning as shown in q1) and q2) of Figure 41, multi-tree cut / partitioning as shown in m1) and m2) of Figure 41, or non-square / non-rectangular partitioning as shown in n1) of Figure 41. The geometry (shape and / or size) of the sub-blocks can be various geometries, such as asymmetric binary tree partitioning as shown in b2) of Figure 41, asymmetric quad tree partitioning as shown in q2) of Figure 41, multi-tree cuts with different sizes as shown in m1) of Figure 41, or non-square / non-rectangular partitioning as shown in n1) of Figure 41.

[0341] The analyzed parameters may indicate, for example, that no modification is necessary. If no modification is necessary, steps S6003 and S6004 can be omitted. Therefore, before proceeding to step S6005, the block is divided into a plurality of sub-blocks using the initial block division information. Then, in step S6005, decoding sub-blocks included in the plurality of sub-blocks divided using the modified block division information in a decoding process is replaced with decoding sub-blocks included in the plurality of sub-blocks divided using the initial block division information in a decoding process.

[0342] In step S6004, the geometries of the plurality of sub-blocks are modified using the modified block division information.

[0343] In step S6005, the sub-blocks included in the plurality of sub-blocks are decoded by a decoding process. Here, this decoding process includes an inverse transform process and / or a prediction process. The inverse transform process is preferably performed for each block having a size approximately equal to that of the sub-block.

[0344] [Decryption device] The structure of the video / image decoding device in this embodiment is the same as that in FIG. 36 of the second embodiment, and therefore will not be illustrated or described again.

[0345] In this embodiment, default block division information may be used as the initial block division information. Default block division information is predetermined block division information. For example, the default block division information may be block division information predefined in a standard. Alternatively, the default block division information may be block division information written in a header higher than the block. When default block division information is used, in steps S5001 and S6001, the default block division information is acquired instead of initializing the block division information.

[0346] In the present embodiment, the initialization of block partition information has been described as an example of initialization based on block information of an already-encoded block or an already-decoded block, but is not limited to this. For example, in the initialization of block partition information, the division depth may be determined based on at least one of the picture type (I, P, or B picture) and the quantization parameter of the current block.

[0347] Specifically, for example, if the picture type of the current block is an I-picture, the block partition information may be initialized to block partition information that divides the blocks at a relatively deep partition depth.Alternatively, for example, if the picture type of the current block is a P-picture or a B-picture, the block partition information may be initialized to block partition information that divides the blocks at a relatively shallow partition depth.

[0348] Furthermore, for example, the division depth in the initial block division information may be determined based on the quantization parameter of the current block. Specifically, if the value of the quantization parameter of the current block is smaller than a predetermined value, the block division information may be initialized to block division information that divides the block at a relatively deep division depth. Furthermore, for example, if the value of the quantization parameter of the current block is equal to or greater than a predetermined value, the block division information may be initialized to other block division information that divides the block at a relatively shallow division depth.

[0349] (Embodiment 5) [overview] The encoding device of this embodiment is an encoding device that encodes a block of an image, and includes a processor and a memory connected to the processor. The processor uses the memory to write parameters to a bitstream, divides the block into a plurality of sub-blocks, and uses the written parameters to combine at least two sub-blocks included in the plurality of sub-blocks to form a combined block, and encodes the combined block using an encoding process that includes a transformation process and / or a prediction process.

[0350] This allows combining at least two sub-blocks using parameters. Therefore, the division of the current block can be modified using parameters, and sub-blocks that are more suitable for encoding can be used. As a result, compression efficiency can be improved.

[0351] The decoding device of 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 analyze parameters from a bitstream, divides the block into a plurality of sub-blocks, and uses the analyzed parameters to combine at least two sub-blocks included in the plurality of sub-blocks into a combined block, and decodes the combined block using a decoding process that includes an inverse transform process and / or a prediction process.

[0352] This allows combining at least two sub-blocks using the parameters. Therefore, the division of the current block can be modified using the parameters, and sub-blocks that are more suitable for decoding can be used. As a result, compression efficiency can be improved.

[0353] These comprehensive or specific aspects may be realized as a system, a method, an integrated circuit, a computer program, or a computer-readable recording medium such as a CD-ROM, or may be realized as any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0354] A method for encoding and decoding a video will be described according to an embodiment, as shown in FIGS. 17 and 18, respectively.

[0355] [Encoding process] FIG. 17 shows an example of a video encoding process according to the fifth embodiment.

[0356] In the first step S7001, parameters are written into the bitstream. Figure 37 shows the positions where the above parameters can be written in the compressed video bitstream.

[0357] Next, in step S7002, the block is divided into a plurality of sub-blocks using the initial block division information. As shown in Fig. 38, if different block division information is used, the height, width, or shape of the plurality of sub-blocks resulting from the block division will also be different.

[0358] The block partition structure of the coded block can be used as the initial block partition structure of the current block, or the default block partition structure can be used as the initial block partition structure of the current block.

[0359] A new block partition structure can also be derived as the initial block partition structure of the current block by combining the block partition structures of two or more coded blocks (for example, as shown in FIG. 39, 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). One example of a method for selecting a coded block is to select a coded block in the same intra / inter prediction mode as the current block. Specifically, if the current block is an inter prediction block, one or more coded blocks coded using inter prediction are selected.

[0360] It is also possible to modify the block partition structure of the coded block (for example, by using a block partition structure with a shallower division depth as shown in Figure 40) and derive the new block partition structure as the initial block partition structure of the current block.

[0361] The initial block division information may be a parameter set indicating whether to divide the block horizontally or vertically, or may be a parameter set including predetermined block widths and predetermined block heights for all sub-blocks within the block.

[0362] The initial block partition information may differ depending on the intra-prediction direction information of the coded block. For example, information on the intra-prediction direction at a specific neighboring block position may be used to determine whether to vertically or horizontally divide the current block into smaller blocks. For example, if the intra-prediction direction information of the upper neighboring block is determined to be vertical or close to vertical, the block partition information for the current block can be initialized to block partition information including vertical division. Similarly, if the intra-prediction direction information of the left neighboring block is determined to be horizontal or close to horizontal, the block partition information for the current block can be initialized to block partition information including horizontal division.

[0363] The initial block partition information may be a parameter set including an index for selecting one partition structure candidate from a predetermined list of block partition structure candidates, where the initial block partition structure visually presents the geometry of all sub-blocks in the block, as shown in Figure 38.

[0364] The block partition information can be initialized according to the intra / inter prediction mode of the coded block. For example, if the prediction mode of the coded block is an intra prediction mode, the block partition information can be initialized to predetermined block partition information that divides the block into multiple sub-blocks of relatively small block sizes. For example, if the prediction mode of the coded block is an inter prediction mode, the block partition information can be initialized to other predetermined block partition information that divides the block into multiple sub-blocks of relatively large block sizes.

[0365] The block division information may be initialized according to the motion vector of the coded block. For example, if the difference between the motion vector of the coded block and the motion vector of the current block is greater than a predetermined threshold, the block division information may be initialized to predetermined block division information that divides the block into multiple sub-blocks of a relatively small block size. On the other hand, if the difference between the motion vector of the coded block and the motion vector of the current block is equal to or smaller than the predetermined threshold, the block division information may be initialized to other predetermined block division information that divides the block into multiple sub-blocks of a relatively large block size.

[0366] The block division information may be initialized according to a quantization parameter of the coded block. For example, if the value of the quantization parameter of the coded block is smaller than a predetermined value, the block division information may be initialized to predetermined block division information that divides the block into multiple sub-blocks of relatively small block sizes. For example, if the value of the quantization parameter of the coded block is equal to or greater than a predetermined value, the block division information may be initialized to other predetermined block division information that divides the block into multiple sub-blocks of relatively large block sizes.

[0367] The block partition information may be initialized according to the reference picture information of the coded block. For example, if the reference picture of the coded block is temporally close to the current picture or the reference pictures of the coded blocks are similar to each other, the block partition information may be initialized to predetermined block partition information that divides the block into multiple sub-blocks with a relatively large block size. If the reference picture of the coded block is not temporally close to the current picture or the reference pictures of the coded blocks are not similar to each other, the block partition information may be initialized to other predetermined block partition information that divides the block into multiple sub-blocks with a relatively small block size.

[0368] The block division information may be initialized according to the division depth of the encoded block. For example, if the division depth of the encoded block is greater than a predetermined value (e.g., 4), the block division information can be initialized to predetermined block division information that divides the block into multiple sub-blocks of relatively small block sizes. If the division depth of the encoded block is equal to or less than a predetermined value (e.g., the division depth is equal to 2), the block division information can be initialized to other predetermined block division information that divides the block into multiple sub-blocks of relatively large block sizes.

[0369] The block partition information may be initialized according to partition information of a coded block of a frame different from the current frame. For example, the block partition information (including split information) for the current block or the split information of the current block may be initialized from a coded block of a coded frame different from the current frame (e.g., a collocated block, a last coded block, or a coded block identified by a motion vector, etc.).

[0370] In step S7003, two or more sub-blocks included in the plurality of sub-blocks are combined into a merged block using the written parameters. For example, the written parameters may include merge flags that hierarchically combine smaller blocks into larger blocks based on a predetermined scan order (e.g., raster scan or Z scan). As shown in FIG. 42B, using these parameters, multiple blocks are combined into larger blocks and the initial block partition structure is modified. An example of hierarchically combining smaller blocks into larger blocks is shown in FIG. 43.

[0371] The division method for deriving the block partition structure may be different before and after the combining process in step S7003. Possible division methods include, for example, binary tree division as shown in b1) and b2) of Figure 41, quad tree division as shown in q1) and q2) of Figure 41, multi-tree cut / division as shown in m1) and m2) of Figure 41, or non-square / non-rectangular division as shown in n1) of Figure 41. The geometry (shape and / or size) of the sub-blocks can be various, such as asymmetric binary tree division as shown in b2) of Figure 41, asymmetric quad tree division as shown in q2) of Figure 41, multi-tree cuts of different sizes as shown in m1) of Figure 41, or non-square / non-rectangular division as shown in n1) of Figure 41.

[0372] The written parameters may indicate, for example, that no combining is required. If no combining is required, step S7003 can be omitted. Thus, the block is divided into multiple sub-blocks using the initial block division information before proceeding to step S7004. Then, in step S7004, the sub-blocks are coded in the coding process instead of the combined block.

[0373] In step S7004, the combined block is coded using a coding process, which may include a transform process and / or a prediction process. The transform process may be performed for each block having a size similar to that of the sub-block.

[0374] [Encoding device] The structure of the video / image coding device in this embodiment is the same as that in FIG. 35 of the second embodiment, and therefore will not be illustrated or described again.

[0375] [Decryption process] FIG. 18 shows an example of a video decoding process according to the fifth embodiment.

[0376] As a first step S8001, parameters are parsed from the bitstream. Figure 37 shows the parsable locations of the above parameters in a compressed video bitstream.

[0377] Next, in step S8002, the block is divided into a plurality of sub-blocks using the initial block division information. As shown in Fig. 38, if different block division information is used, the height, width, or shape of the plurality of sub-blocks resulting from the block division will also be different.

[0378] The block partition structure of the decoded block can be used as is as the initial block partition structure of the current block.

[0379] A new block partition structure can also be derived as the initial block partition structure of the current block by combining the block partition structures of two or more decoded blocks (for example, as shown in FIG. 39, 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). One example of a method for selecting a decoded block is to select a decoded block in 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.

[0380] It is also possible to modify the block partition structure of the decoded block (for example, by using a block partition structure with a shallower division depth as shown in Figure 40) and derive the new block partition structure as the initial block partition structure of the current block.

[0381] The initial block division information may be a parameter set indicating whether to divide the block horizontally or vertically, or may be a parameter set including predetermined block widths and predetermined block heights for all sub-blocks within the block.

[0382] The initial block partition information may differ depending on the intra-prediction direction information of the decoded block. For example, information on the intra-prediction direction at a specific neighboring block position may be used to determine whether to vertically or horizontally divide the current block into smaller blocks. For example, if it is determined that the intra-prediction direction information of the upper neighboring block is vertical or close to vertical, the block partition information for the current block can be initialized to block partition information including vertical division. Similarly, if it is determined that the intra-prediction direction information of the left neighboring block is horizontal or close to horizontal, the block partition information for the current block can be initialized to block partition information including horizontal division.

[0383] The initial block partition information may be a parameter set including an index for selecting one partition structure candidate from a predetermined list of block partition structure candidates, where the initial block partition structure visually presents the geometry of all sub-blocks in the block, as shown in Figure 38.

[0384] The block division information can be initialized according to the intra / inter prediction mode of the decoded block. For example, if the prediction mode of the decoded block is an intra prediction mode, the block division information can be initialized to predetermined block division information that divides the block into multiple sub-blocks of a relatively small block size. For example, if the prediction mode of the decoded block is an inter prediction mode, the block division information can be initialized to other predetermined block division information that divides the block into multiple sub-blocks of a relatively large block size.

[0385] The block division information may be initialized according to the motion vector of the decoded block. For example, if the difference between the motion vector of the decoded block and the motion vector of the current block is greater than a predetermined threshold, the block division information may be initialized to predetermined block division information that divides the block into multiple sub-blocks of a relatively small block size. On the other hand, if the difference between the motion vector of the decoded block and the motion vector of the current block is equal to or smaller than the predetermined threshold, the block division information may be initialized to other predetermined block division information that divides the block into multiple sub-blocks of a relatively large block size.

[0386] The block division information may be initialized according to the quantization parameter of the decoded block. For example, if the value of the quantization parameter of the decoded block is smaller than a predetermined value, the block division information can be initialized to predetermined block division information that divides the block into multiple sub-blocks of relatively small block sizes. For example, if the value of the quantization parameter of the decoded block is equal to or greater than a predetermined value, the block division information can be initialized to other predetermined block division information that divides the block into multiple sub-blocks of relatively large block sizes.

[0387] The block partition information may be initialized according to the reference picture information of the decoded block. For example, if the reference picture of the decoded block is temporally close to the current picture or the reference pictures of the decoded blocks are similar to each other, the block partition information may be initialized to predetermined block partition information that divides the block into multiple sub-blocks with a relatively large block size. If the reference picture of the decoded block is not temporally close to the current picture or the reference pictures of the decoded blocks are dissimilar to each other, the block partition information may be initialized to other predetermined block partition information that divides the block into multiple sub-blocks with a relatively small block size.

[0388] The block division information may be initialized according to the division depth of the decoded block. For example, if the division depth of the decoded block is greater than a predetermined value (e.g., 4), the block division information may be initialized to predetermined block division information that divides the block into multiple sub-blocks of a relatively small block size. If the division depth of the decoded block is equal to or less than a predetermined value (e.g., the division depth is equal to 2), the block division information may be initialized to other predetermined block division information that divides the block into multiple sub-blocks of a relatively large block size.

[0389] The block partition information may be initialized according to partition information of a decoded block of a frame different from the current frame. For example, the block partition information (including split information) for the current block or the split information of the current block may be initialized from a decoded block of a decoded frame different from the current frame (e.g., a collocated block, a last decoded block, a decoded block identified by a motion vector, etc.).

[0390] In step S8003, two or more sub-blocks included in the plurality of sub-blocks are combined into a merged block using the analyzed parameters. For example, the analyzed parameters may include merge flags that hierarchically combine smaller blocks into larger blocks based on a predetermined scan order (e.g., raster scan or Z scan). As shown in FIG. 42B, the parameters are used to combine multiple blocks into larger blocks and modify the initial block partition structure. An example of hierarchically combining smaller blocks into larger blocks is shown in FIG. 43.

[0391] The division method for deriving the block partition structure may be different before and after the combining process in step S8003. Possible division methods include, for example, binary tree division as shown in b1) and b2) of Figure 41, quad tree division as shown in q1) and q2) of Figure 41, multi-tree cut / division as shown in m1) and m2) of Figure 41, or non-square / non-rectangular division as shown in n1) of Figure 41. The geometry (shape and / or size) of the sub-blocks can be various, such as asymmetric binary tree division as shown in b2) of Figure 41, asymmetric quad tree division as shown in q2) of Figure 41, multi-tree cuts of different sizes as shown in m1) of Figure 41, or non-square / non-rectangular division as shown in n1) of Figure 41.

[0392] The analyzed parameters may indicate, for example, that no combining is required. If no combining is required, step S8003 can be omitted. Thus, the block is divided into multiple sub-blocks using the initial block division information before proceeding to step S8004. Then, in step S8004, the sub-blocks are decoded in the decoding process instead of the combined block.

[0393] In step S8004, the combined block is decoded by a decoding process, which includes an inverse transform process and / or a prediction process. The transform process is preferably performed for each block having a size approximately equal to that of the sub-block.

[0394] [Decryption device] The structure of the video / image decoding device in this embodiment is the same as that in FIG. 36 of the second embodiment, and therefore will not be illustrated or described again.

[0395] (Sixth embodiment) [overview] The encoding device of 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 read the geometry of the block, determine whether the read geometry is equal to a predetermined geometry, and if the read geometry is equal to the predetermined geometry, divide the block into a predetermined number of sub-blocks of a first geometry set. If the read geometry is not equal to the predetermined geometry, divide the block into the predetermined number of sub-blocks of another geometry set different from the first geometry set, and encode the sub-blocks using an encoding process that includes a transformation process and / or a prediction process.

[0396] This allows a block to be divided based on the block geometry. Therefore, the amount of code related to the block division information can be reduced, and compression efficiency can be improved. Furthermore, the use of block geometry contributes to sub-blocks that are more suitable for encoding, which can also contribute to improving compression efficiency.

[0397] For example, in the encoding device according to this embodiment, the geometry may indicate at least the shape, height, or width of the block.

[0398] This allows the shape and / or size of the blocks to be used as geometry.

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

[0400] This allows the blocks to be divided so that at least one of the height and width of the sub-blocks is a power of 2. This makes it possible to obtain sub-blocks of a size suitable for encoding, thereby improving compression efficiency.

[0401] The decoding device of 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 read the geometry of the block, determine whether the read geometry is equal to a predetermined geometry, and if the read geometry is equal to the predetermined geometry, divide the block into a predetermined number of sub-blocks of a first geometry set. If the read geometry is not equal to the predetermined geometry, divide the block into the predetermined number of sub-blocks of another geometry set different from the first geometry set, and decode the sub-blocks using a decoding process that includes an inverse transformation process and / or a prediction process.

[0402] This allows a block to be divided based on the block geometry. Therefore, the amount of code related to the block division information can be reduced, and compression efficiency can be improved. Furthermore, the use of block geometry contributes to sub-blocks that are more suitable for encoding, which can also contribute to improving compression efficiency.

[0403] For example, in the decoding device according to this embodiment, the geometry may indicate at least the shape, height, or width of the block.

[0404] This allows the shape and / or size of the blocks to be used as geometry.

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

[0406] This allows the blocks to be divided so that at least one of the height and width of the sub-blocks is a power of 2. This makes it possible to use sub-blocks of a size suitable for encoding, thereby improving compression efficiency.

[0407] These comprehensive or specific aspects may be realized as a system, a method, an integrated circuit, a computer program, or a computer-readable recording medium such as a CD-ROM, or may be realized as any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0408] Hereinafter, a method for encoding and a method for decoding video will be described according to an embodiment, as shown in FIGS. 19 and 20, respectively.

[0409] [Encoding process] FIG. 19 shows an example of a video encoding process according to the sixth embodiment.

[0410] In the first step S9001, the geometry of the block is read. Here, the geometry indicates 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 will also differ.

[0411] Next, in step S9002, it is determined whether the read geometry is equal to a predetermined geometry.

[0412] If the read geometry is equal to the predetermined geometry (Y in S9002), the block is divided into a predetermined number of sub-blocks of a first geometry set in step S9003. If the read geometry is not equal to the predetermined geometry (N in S9002), the block is divided into a predetermined number of sub-blocks of another geometry set different from the first geometry set in step S9004.

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

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

[0415] If the predetermined number of sub-blocks is set to 4, for example, as shown in (b1) of Figure 45B, 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 (b2) of Figure 45B, 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.

[0416] As another example, as shown in (d1) of Figure 45D, if the predetermined number of sub-blocks is set to 4, and the block width (e.g., 32) of a block is the same as the block height (e.g., 32), the block can be equally divided both vertically and horizontally. As shown in (d2) of Figure 45D, if the block width (e.g., 32) of a block is four times its block height (e.g., 8), the block can be equally divided vertically. Similarly, if the block height (e.g., 32) of a block is four times its block width (e.g., 8), the block can be equally divided horizontally.

[0417] 45A to 45D, in this embodiment, at least one of the height and width of a sub-block is a power of 2. Note that the height and / or width of a sub-block is not limited to being a power of 2.

[0418] In step S9005, the sub-blocks are coded using a coding process that includes a transform process and / or a predictive process. The transform process is preferably performed for each block having a size similar to that of the sub-block.

[0419] [Encoding device] The structure of the video / image coding device in this embodiment is the same as that in FIG. 35 of the second embodiment, and therefore will not be illustrated or described again.

[0420] [Decryption process] FIG. 20 shows an example of a video decoding process according to the sixth embodiment.

[0421] In the first step S10001, the geometry of the block is read. Here, the geometry indicates at least the shape, height, or width of the block. As shown in Figure 44, if the geometry used is different, the shape, block height, or block width of the multiple sub-blocks resulting from the block division will also be different.

[0422] Next, in step S10002, it is determined whether the read geometry is equal to a predetermined geometry.

[0423] If the read geometry is equal to the predetermined geometry (Y in S10002), the block is divided into a predetermined number of sub-blocks made up of the first geometry set in step S10003. If the read geometry is not equal to the predetermined geometry (N in S10002), the block is divided into a predetermined number of sub-blocks made up of a different geometry set from the first geometry set in step S10004.

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

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

[0426] For example, as shown in (b1) of Figure 45B, if the predetermined number of sub-blocks is set to 4, and 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 (b2) of Figure 45B, 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.

[0427] For example, as shown in (d1) of Figure 45D, if the predetermined number of sub-blocks is set to 4, and the block width (e.g., 32) of a block is the same as the block height (e.g., 32), the block can be equally divided both vertically and horizontally. As shown in (d2) of Figure 45D, if the block width (e.g., 32) of a block is four times its block height (e.g., 8), the block can be equally divided vertically. Similarly, if the block height (e.g., 32) of a block is four times its block width (e.g., 8), the block can be equally divided horizontally.

[0428] 45A to 45D, in this embodiment, at least one of the height and width of a sub-block is a power of 2. Note that the height and / or width of a sub-block is not limited to being a power of 2.

[0429] In step S10005, the sub-blocks are decoded by a decoding process. Here, this decoding process includes an inverse transform process and / or a prediction process. The inverse transform process is preferably performed for each block having a size approximately equal to that of the sub-block.

[0430] [Decryption device] The structure of the video / image decoding device in this embodiment is the same as that in FIG. 36 of the second embodiment, and therefore will not be illustrated or described again.

[0431] (Embodiment 7) [overview] The encoding device of 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 write parameters to a bitstream, determine whether the written parameters are equal to a predetermined value, and if the written parameters are equal to the predetermined value, divide the block into a predetermined number of sub-blocks of a first geometry set. If the written parameters are not equal to the predetermined value, divide the block into the predetermined number of sub-blocks of another geometry set different from the first geometry set, and encode the sub-blocks using an encoding process that includes a transformation process and / or a prediction process.

[0432] This makes it possible to switch the geometry set of a predetermined number of sub-blocks after division depending on whether the parameter is equal to a predetermined value.

[0433] For example, in the encoding device according to this embodiment, the geometry may indicate at least the shape, height, or width of the block.

[0434] This allows the shape and / or size of the blocks to be used as geometry.

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

[0436] This allows the blocks to be divided so that at least one of the height and width of the sub-blocks is a power of 2. This makes it possible to obtain sub-blocks of a size suitable for encoding, thereby improving compression efficiency.

[0437] The decoding device of 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 analyze parameters from a bitstream, determine whether the analyzed parameters are equal to a predetermined value, and if the analyzed parameters are equal to the predetermined value, divide the block into a predetermined number of sub-blocks of a first geometry set. If the analyzed parameters are not equal to the predetermined value, divide the block into the predetermined number of sub-blocks of another geometry set different from the first geometry set, and decode the sub-blocks using a decoding process that includes an inverse transformation process and / or a prediction process.

[0438] This makes it possible to switch the geometry set of a predetermined number of sub-blocks after division depending on whether the parameter is equal to a predetermined value.

[0439] For example, in the decoding device according to this embodiment, the geometry may indicate at least the shape, height, or width of the block.

[0440] This allows the shape and / or size of the blocks to be used as geometry.

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

[0442] This allows the blocks to be divided so that at least one of the height and width of the sub-blocks is a power of 2. This makes it possible to use sub-blocks of a size suitable for encoding, thereby improving compression efficiency.

[0443] These comprehensive or specific aspects may be realized as a system, a method, an integrated circuit, a computer program, or a computer-readable recording medium such as a CD-ROM, or may be realized as any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0444] Hereinafter, a method for encoding and a method for decoding video will be described according to an embodiment, as shown in FIGS. 21 and 22, respectively.

[0445] [Encoding process] FIG. 21 shows an example of a video encoding process according to the seventh embodiment.

[0446] As the first step S11001, the parameters are written into the bitstream. Figure 37 shows the positions where the above parameters can be written in the compressed video bitstream.

[0447] Next, in step S11002, it is determined whether the written parameters are equal to predetermined values.

[0448] If the written parameters are equal to the predetermined values ​​(Y in S11002), the block is divided into a predetermined number of sub-blocks of the first geometry set in step S11003. If the written parameters are not equal to the predetermined values ​​(N in S11002), the block is divided into a predetermined number of sub-blocks of another geometry set different from the first geometry set in step S11004.

[0449] The written parameters can indicate the division mode (eg, quad-tree / binary-tree / multi-tree division, vertical / horizontal division, symmetric / asymmetric division, and the ratio of block width / block height of the sub-blocks).

[0450] For example, for a 24x32 block, as shown in (a1) of Figure 46A, the written parameters can indicate that the division is binary tree division, that the division is vertical division, and that the ratio of the block widths of the two sub-blocks is 1:2. In this case, the 24x32 block is divided into an 8x32 sub-block and a 16x32 sub-block.

[0451] As another example, for a 24x32 block, as shown in (a2) of Figure 46A, the written parameters may indicate that the division is a binary tree division, that the division is a vertical division, and that the ratio of the block widths of the two sub-blocks is 2:1. In this case, the 24x32 block is divided into a 16x32 sub-block and an 8x32 sub-block.

[0452] For example, for a 24x24 block, as shown in (b1) of Figure 46B, the written parameters may indicate that the division is quadtree division, that the upper left sub-block is the largest sub-block, and that the ratio of the block widths of the largest and smallest sub-blocks is 2:1. In this case, the 24x24 block is divided into 16x16 sub-blocks, 8x16 sub-blocks, 16x8 sub-blocks, and 8x8 sub-blocks.

[0453] As another example, for a 24x24 block, as shown in (b2) of Figure 46B, the written parameters may indicate that the division is quadtree division, that the bottom right sub-block is the largest sub-block, and that the ratio of the block widths of the largest and smallest sub-blocks is 2:1. In this case, the 24x24 block is divided into 8x8 sub-blocks, 16x8 sub-blocks, 8x16 sub-blocks, and 16x16 sub-blocks.

[0454] For example, for a 32x32 block, as shown in (c1) of Figure 46C, the written parameters may indicate that the division is a ternary tree division, that the division is vertical division, and that the ratio of block widths of the sub-blocks is 1:1:2. In this case, the 32x32 block is divided into two 8x32 sub-blocks and one 16x32 sub-block.

[0455] As another example, for a 32x32 block, the written parameters may indicate that the partition is a ternary tree partition, that the partition is a vertical partition, and that the ratio of block widths of the sub-blocks is 2:1:1, as shown in (c2) of Figure 46C. In this case, the 32x32 block is partitioned into a 16x32 sub-block and two 8x16 sub-blocks.

[0456] For example, for a 32x32 block, the written parameters may indicate that the partition is a quadtree partition and that the partition includes both vertical and horizontal directions, as shown in (d1) of Figure 46D, in which case the 32x32 block is divided into four 16x16 sub-blocks.

[0457] As another example, for a 32x32 block, the written parameters may indicate that the partition is a quadtree partition and that the partition includes only the vertical direction, as shown in (d2) of Figure 46D, in which case the 32x32 block is divided into four 8x32 sub-blocks.

[0458] 46A to 46D, in this embodiment, at least one of the height and width of a sub-block is a power of 2. Note that the height and / or width of a sub-block does not have to be limited to a power of 2.

[0459] In step S11005, the sub-blocks are coded using a coding process that includes a transform process and / or a predictive process. The transform process is preferably performed for each block having a size similar to that of the sub-block.

[0460] [Encoding device] The structure of the video / image coding device in this embodiment is the same as that in FIG. 35 of the second embodiment, and therefore will not be illustrated or described again.

[0461] [Decryption process] FIG. 22 shows an example of a video decoding process according to the seventh embodiment.

[0462] As a first step S12001, parameters are parsed from the bitstream. Figure 37 shows the parsable locations of the above parameters in a compressed video bitstream.

[0463] Next, in step S12002, it is determined whether the analyzed parameters are equal to a predetermined value.

[0464] If the analyzed parameters are equal to the predetermined value (Y in S12002), the block is divided into a predetermined number of sub-blocks of a first geometry set in step S12003. If the analyzed geometry is not equal to the predetermined value (N in S12002), the block is divided into a predetermined number of sub-blocks of another geometry set different from the first geometry set in step S12004.

[0465] The analyzed parameters may indicate the partitioning mode (eg, quad-tree / binary-tree / multi-tree partitioning, vertical / horizontal partitioning, symmetric / asymmetric partitioning, and block width / block height ratio of the sub-blocks).

[0466] For example, for a 24x32 block, as shown in (a1) of Figure 46A, the analyzed parameters may indicate that the division is a binary tree division, that the division is a vertical division, and that the ratio of the block widths of the two sub-blocks is 1:2. In this case, the 24x32 block is divided into an 8x32 sub-block and a 16x32 sub-block.

[0467] As another example, for a 24x32 block, as shown in (a2) of Figure 46A, the analyzed parameters may indicate that the partition is a binary tree partition, that the partition is a vertical partition, and that the ratio of the block widths of the two sub-blocks is 2:1. In this case, the 24x32 block is partitioned into a 16x32 sub-block and an 8x32 sub-block.

[0468] For example, for a 24x24 block, as shown in (b1) of Figure 46B, the analyzed parameters may indicate that the division is a quadtree division, that the upper left sub-block is the largest sub-block, and that the ratio of the block widths of the largest and smallest sub-blocks is 2:1. In this case, the 24x24 block is divided into 16x16 sub-blocks, 8x16 sub-blocks, 16x8 sub-blocks, and 8x8 sub-blocks.

[0469] As another example, for a 24x24 block, as shown in (b2) of Figure 46B, the analyzed parameters may indicate that the division is a quadtree division, that the bottom right sub-block is the largest sub-block, and that the ratio of block widths of the largest and smallest sub-blocks is 2:1. In this case, the 24x24 block is divided into 8x8 sub-blocks, 16x8 sub-blocks, 8x16 sub-blocks, and 16x16 sub-blocks.

[0470] For example, for a 32x32 block, as shown in (c1) of Figure 46C, the analyzed parameters may indicate that the partition is a ternary tree partition, that the partition is a vertical partition, and that the ratio of block widths of the sub-blocks is 1:1:2. In this case, the 32x32 block is partitioned into two 8x32 sub-blocks and one 16x32 sub-block.

[0471] As another example, for a 32x32 block, the analyzed parameters may indicate that the partition is a ternary tree partition, that the partition is a vertical partition, and that the ratio of block widths of the sub-blocks is 2:1:1, as shown in (c2) of Figure 46C. In this case, the 32x32 block is partitioned into a 16x32 sub-block and two 8x16 sub-blocks.

[0472] For example, for a 32x32 block, as shown in (d1) of Figure 46D, the analyzed parameters may indicate that the partition is a quadtree partition and that the partition includes both vertical and horizontal directions, in which case the 32x32 block is divided into four 16x16 sub-blocks.

[0473] As another example, for a 32x32 block, the analyzed parameters may indicate that the partition is a quadtree partition and that the partition includes only the vertical direction, as shown in (d2) of Figure 46D. In this case, the 32x32 block is divided into four 8x32 sub-blocks.

[0474] 46A to 46D, in this embodiment, at least one of the height and width of a sub-block is a power of 2. Note that the height and / or width of a sub-block does not have to be limited to a power of 2.

[0475] In step S12005, the sub-blocks are decoded by a decoding process. Here, this decoding process includes an inverse transform process and / or a prediction process. The inverse transform process is preferably performed for each block having a size approximately equal to that of the sub-block.

[0476] [Decryption device] The structure of the video / image coding device in this embodiment is the same as that of the second embodiment shown in FIG. 36, and therefore will not be illustrated or described again.

[0477] (Embodiment 8) [overview] The encoding device of 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 read the geometry of the block, determine whether the read geometry is equal to a predetermined geometry, and if the read geometry is equal to the predetermined geometry, divide the block into a first number of sub-blocks. If the read geometry is not equal to the predetermined geometry, divide the block into a number of sub-blocks unequal to the first number, and encode the sub-blocks using an encoding process that includes a transformation process and / or a prediction process.

[0478] This allows a block to be divided into a number of sub-blocks based on the geometry of the block. Therefore, the amount of code related to the block division information can be reduced, and compression efficiency can be improved. Furthermore, the number of sub-blocks can be made to depend on the geometry of the block. As a result, blocks can be divided more effectively, and compression efficiency can be improved.

[0479] For example, in the encoding device according to this embodiment, the geometry may indicate at least the shape, height, or width of the block.

[0480] This allows the shape and / or size of the blocks to be used as geometry.

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

[0482] This allows the blocks to be divided so that at least one of the height and width of the sub-blocks is a power of 2. This makes it possible to obtain sub-blocks of a size suitable for encoding, thereby improving compression efficiency.

[0483] The decoding device of 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 read the geometry of the block, determine whether the read geometry is equal to a predetermined geometry, and if the read geometry is equal to the predetermined geometry, divide the block into a first number of sub-blocks. If the read geometry is not equal to the predetermined geometry, divide the block into a number of sub-blocks that is not equal to the first number, and decode the sub-blocks using a decoding process that includes an inverse transform process and / or a prediction process.

[0484] This allows a block to be divided into a number of sub-blocks based on the geometry of the block. Therefore, the amount of code related to the block division information can be reduced, and compression efficiency can be improved. Furthermore, the number of sub-blocks can be made to depend on the geometry of the block. As a result, blocks can be divided more effectively, and compression efficiency can be improved.

[0485] For example, in the decoding device according to this embodiment, the geometry may indicate at least the shape, height, or width of the block.

[0486] This allows the shape and / or size of the blocks to be used as geometry.

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

[0488] This allows the blocks to be divided so that at least one of the height and width of the sub-blocks is a power of 2. This makes it possible to use sub-blocks of a size suitable for encoding, thereby improving compression efficiency.

[0489] These comprehensive or specific aspects may be realized as a system, a method, an integrated circuit, a computer program, or a computer-readable recording medium such as a CD-ROM, or may be realized as any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0490] Hereinafter, a method for encoding and a method for decoding video will be described according to an embodiment, as shown in FIGS. 23 and 24, respectively.

[0491] [Encoding process] FIG. 23 shows an example of a video encoding process according to the eighth embodiment.

[0492] In the first step S13001, the geometry of the block is read. Here, the geometry indicates at least the shape, height, or width of the block. As shown in Figure 44, if the geometry used is different, the shape, block height, or block width of the multiple sub-blocks resulting from the block division will also be different.

[0493] Next, in step S13002, it is determined whether the read geometry is equal to a predetermined geometry.

[0494] If the read geometry is equal to the predetermined geometry (Y in S13002), the block is divided into a first number of sub-blocks in step S13003. If the read geometry is not equal to the predetermined geometry (N in S13002), the block is divided into a number of sub-blocks not equal to the first number in step S13004.

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

[0496] As another example, as shown in (b1) of Figure 47B, if both the block width and block height of a block are powers of 2 and the block width is twice the block height, the block (e.g., 64 x 32) can be equally divided into eight equally sized sub-blocks (e.g., 16 x 16). On the other hand, as shown in (b2) of Figure 47B, if both the block width and block height of a block are powers of 2 and the block width is the same as the block height, the block (e.g., 32 x 32) can be equally divided into four equally sized sub-blocks (e.g., 16 x 16).

[0497] 47A and 47B, in this embodiment, at least one of the height and width of a sub-block is a power of 2. Note that the height and / or width of a sub-block does not have to be limited to a power of 2.

[0498] In step S13005, the sub-blocks are coded using a coding process that includes a transform process and / or a predictive process. The transform process is preferably performed for each block that is approximately the same size as the sub-block.

[0499] [Encoding device] The structure of the video / image coding device in this embodiment is the same as that in FIG. 35 of the second embodiment, and therefore will not be illustrated or described again.

[0500] [Decryption process] FIG. 24 shows an example of a video decoding process according to the eighth embodiment.

[0501] In the first step S14001, the geometry of the block is read. Here, the geometry indicates at least the shape, height, or width of the block. As shown in Figure 44, if the geometry used is different, the shape, block height, or block width of the multiple sub-blocks resulting from the block division will also be different.

[0502] Next, in step S14002, it is determined whether the read geometry is equal to a predetermined geometry.

[0503] If the read geometry is equal to the predetermined geometry (Y in S14002), the block is divided into a first number of sub-blocks in step S14003. If the read geometry is not equal to the predetermined geometry (N in S14002), the block is divided into a number of sub-blocks not equal to the first number in step S14004.

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

[0505] As another example, as shown in (b1) of Figure 47B, if both the block width and block height of a block are powers of 2 and the block width is twice the block height, the block (e.g., 64 x 32) can be equally divided into eight equally sized sub-blocks (e.g., 16 x 16). On the other hand, as shown in (b2) of Figure 47B, if both the block width and block height of a block are powers of 2 and the block width is the same as the block height, the block (e.g., 32 x 32) can be equally divided into four equally sized sub-blocks (e.g., 16 x 16).

[0506] 47A and 47B, in this embodiment, at least one of the height and width of a sub-block is a power of 2. Note that the height and / or width of a sub-block does not have to be limited to a power of 2.

[0507] In step S14005, the sub-blocks are decoded by a decoding process. Here, this decoding process includes an inverse transform process and / or a prediction process. The inverse transform process is preferably performed for each block having a size approximately equal to that of the sub-block.

[0508] [Decryption device] The structure of the video / image coding device in this embodiment is the same as that of the second embodiment shown in FIG. 36, and therefore will not be illustrated or described again.

[0509] (Embodiment 9) [overview] The encoding device of 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 write parameters to a bitstream, determine whether the written parameters are equal to a predetermined value, and if the written parameters are equal to the predetermined value, divide the block into a first number of sub-blocks, the first number being greater than two if the block is divided in a single direction, either vertically or horizontally, and greater than three if the block is not divided in a single direction, either vertically or horizontally. If the written parameters are not equal to the predetermined value, divide the block into a second number of sub-blocks not equal to the first number, the second number being greater than two if the block is divided in a single direction, either vertically or horizontally, and greater than three if the block is not divided in a single direction, either vertically or horizontally. The processor encodes the sub-blocks using an encoding process that includes a transform process and / or a predictive process.

[0510] This makes it possible to change the number of sub-blocks after division depending on whether the parameter is equal to a predetermined value.

[0511] The decoding device of 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 analyze parameters from a bitstream, determine whether the analyzed parameters are equal to a predetermined value, and if the analyzed parameters are equal to the predetermined value, divide the block into a first number of sub-blocks, the first number being greater than two if the block is divided in a single direction, either vertically or horizontally, and greater than three if the block is not divided in a single direction, either vertically or horizontally. If the analyzed parameters are not equal to the predetermined value, divide the block into a second number of sub-blocks not equal to the first number, the second number being greater than two if the block is divided in a single direction, either vertically or horizontally, and greater than three if the block is not divided in a single direction, either vertically or horizontally. The processor decodes the sub-blocks using a decoding process that includes an inverse transform process and / or a prediction process.

[0512] This makes it possible to change the number of sub-blocks after division depending on whether the parameter is equal to a predetermined value.

[0513] These comprehensive or specific aspects may be realized as a system, a method, an integrated circuit, a computer program, or a computer-readable recording medium such as a CD-ROM, or may be realized as any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0514] Hereinafter, a method for encoding and a method for decoding video will be described according to an embodiment, as shown in FIGS. 25 and 26, respectively.

[0515] [Encoding process] FIG. 25 shows an example of a video encoding process according to the ninth embodiment.

[0516] As the first step S15001, the parameters are written into the bitstream. Figure 37 shows the positions where the above parameters can be written in the compressed video bitstream.

[0517] Next, in step S15002, it is determined whether the written parameters are equal to predetermined values.

[0518] If the written parameter is equal to the predetermined value (Y in S15002), in step S15003, the block is divided into a first number of sub-blocks. Here, the first number is greater than 2 if the block is divided in one direction, either vertically or horizontally, and greater than 3 if the block is not divided in one direction, either vertically or horizontally. If the written parameter is not equal to the predetermined value (N 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, the second number is greater than 2 if the block is divided in one direction, either vertically or horizontally, and greater than 3 if the block is not divided in one direction, either vertically or horizontally.

[0519] For example, for a 32x32 block, the written parameters may indicate that the partition is a quadtree partition and that the partition includes only the vertical direction, as shown in (a1) of Figure 48A, in which case the 32x32 block is divided into four 8x32 sub-blocks.

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

[0521] For a 32x32 block, for example, as shown in (b1) of Figure 48B, the written parameters may indicate that the partition is a quadtree partition and that the partition includes only the horizontal direction, in which case the 32x32 block is divided into four 32x8 sub-blocks.

[0522] As another example, for a 32×32 block, as shown in (b2) of Figure 48B, the written parameters may indicate that the division is a ternary tree division, that the division is horizontal division, and that the ratio of 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.

[0523] For a 32x32 block, for example, as shown in (c1) of Figure 48C, the written parameters can indicate that the partition is a quadtree partition and that the partition includes both vertical and horizontal directions, in which case the 32x32 block is divided into four 16x16 sub-blocks.

[0524] As another example, for a 32x32 block, as shown in (c2) of Figure 48C, the written parameters may indicate that the partition is a multi-tree partition, that the partition includes both vertical and horizontal directions, and that the number of sub-blocks is 16. In this case, the 32x32 block is partitioned into 16 8x8 sub-blocks.

[0525] In step S15005, the sub-blocks are coded using a coding process that includes a transform process and / or a predictive process. The transform process is preferably performed for each block that is approximately the same size as the sub-block.

[0526] [Encoding device] The structure of the video / image coding device in this embodiment is the same as that in FIG. 35 of the second embodiment, and therefore will not be illustrated or described again.

[0527] [Decryption process] FIG. 26 shows an example of a video decoding process according to the ninth embodiment.

[0528] As a first step S16001, parameters are parsed from the bitstream. Figure 37 shows the parsable locations of the above parameters in a compressed video bitstream.

[0529] Next, in step S16002, it is determined whether the analyzed parameters are equal to a predetermined value.

[0530] If the analyzed parameter is equal to the predetermined value (Y in S16002), in step S16003, the block is divided into a first number of sub-blocks. Here, the first number is greater than 2 if the block is divided in one direction, either vertically or horizontally, and greater than 3 if the block is not divided in one direction, either vertically or horizontally. If the analyzed parameter is not equal to the predetermined value (N in S16002), in step S16004, the block is divided into a second number of sub-blocks not equal to the first number. Here, the second number is greater than 2 if the block is divided in one direction, either vertically or horizontally, and greater than 3 if the block is not divided in one direction, either vertically or horizontally.

[0531] For example, for a 32x32 block, as shown in (a1) of Figure 48A, the analyzed parameters may indicate that the partition is a quadtree partition and that the partition includes only the vertical direction, in which case the 32x32 block is divided into four 8x32 sub-blocks.

[0532] As another example, for a 32x32 block, as shown in (a2) of Figure 48A, the analyzed parameters may indicate that the partition is a ternary tree partition, that the partition is a vertical partition, and that the ratio of block widths of the sub-blocks is 1:2:1. In this case, the 32x32 block is partitioned into an 8x32 sub-block, a 16x32 sub-block, and an 8x32 sub-block.

[0533] For example, for a 32x32 block, as shown in (b1) of Figure 48B, the analyzed parameters may indicate that the partition is a quadtree partition and that the partition includes only the horizontal direction, in which case the 32x32 block is divided into four 32x8 sub-blocks.

[0534] As another example, for a 32x32 block, as shown in (b2) of Figure 48B, the analyzed parameters may indicate that the division is a ternary tree division, that the division is horizontal division, and that the ratio of block heights of the sub-blocks is 1:2:1. In this case, the 32x32 block is divided into a 32x8 sub-block and a 32x16 sub-block.

[0535] For example, for a 32x32 block, the analyzed parameters may indicate that the partition is a quadtree partition and that the partition includes both vertical and horizontal directions, as shown in (c1) of Figure 48C. In this case, the 32x32 block is divided into four 16x16 sub-blocks.

[0536] As another example, for a 32x32 block, as shown in (c2) of Figure 48C, the analyzed parameters may indicate that the partition is a multi-tree partition, that the partition includes both vertical and horizontal directions, and that the number of sub-blocks is 16. In this case, the 32x32 block is partitioned into 16 8x8 sub-blocks.

[0537] In step S16005, the sub-blocks are decoded by a decoding process. Here, this decoding process includes an inverse transform process and / or a prediction process. The inverse transform process is preferably performed for each block having a size approximately equal to that of the sub-block.

[0538] [Decryption device] The structure of the video / image coding device in this embodiment is the same as that of the second embodiment shown in FIG. 36, and therefore will not be illustrated or described again.

[0539] (Embodiment 10) [overview] The encoding device of 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 write partition candidate selection parameters to a bitstream, select a small set of block partition information from a predetermined large set of block partition information using the written partition candidate selection parameters, write partition selection parameters to the bitstream, and identify block partition information from only the selected small set of block partition information using the written partition selection parameters. If the identified block partition information is used, the block is divided into multiple sub-blocks of a geometry set, and if different block partition information is used, the block is divided into multiple sub-blocks of a different geometry set. The identified block partition information is used to divide the block into multiple sub-blocks, and the sub-blocks are encoded using an encoding process including a transformation process and / or a prediction process.

[0540] This allows for stepwise selection of block partition information from a set of predetermined block partition information using two parameters. Therefore, if the small set of block partition information is appropriately classified, effective selection becomes possible. As a result, the amount of code related to the block partition information can be reduced, improving compression efficiency.

[0541] For example, in the encoding device according to this embodiment, the geometry may indicate at least the shape, height, or width of the block.

[0542] This allows the shape and / or size of the blocks to be used as geometry.

[0543] The decoding device of 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 analyze partition candidate selection parameters from a bitstream, and uses the analyzed partition candidate selection parameters to select a small set of block partition information from a large set of predetermined block partition information. The processor analyzes partition selection parameters from the bitstream, and uses the analyzed partition selection parameters to identify block partition information from only the selected small set of block partition information. If the identified block partition information is used, the block is divided into multiple sub-blocks of a geometry set. If another block partition information is used, the block is divided into multiple sub-blocks of another geometry set. The identified block partition information is used to divide the block into multiple sub-blocks, and the sub-blocks are decoded using a decoding process that includes an inverse transform process and / or a prediction process.

[0544] This allows for stepwise selection of block partition information from a set of predetermined block partition information using two parameters. Therefore, if the small set of block partition information is appropriately classified, effective selection becomes possible. As a result, the amount of code related to the block partition information can be reduced, improving compression efficiency.

[0545] For example, in the decoding device according to this embodiment, the geometry may indicate at least the shape, height, or width of the block.

[0546] This allows the shape and / or size of the blocks to be used as geometry.

[0547] These comprehensive or specific aspects may be realized as a system, a method, an integrated circuit, a computer program, or a computer-readable recording medium such as a CD-ROM, or may be realized as any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0548] Hereinafter, a method for encoding and a method for decoding video will be described according to an embodiment, as shown in FIGS. 27 and 28, respectively.

[0549] [Encoding process] FIG. 27 shows an example of a video encoding process according to the tenth embodiment.

[0550] In the first step S17001, partition candidate selection parameters are written into the bitstream. Figure 37 shows positions in the compressed video bitstream where partition candidate selection parameters can be written.

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

[0552] The written partition candidate selection parameters may include, for example, an index for selecting a block division information set from two or more block division information sets.

[0553] The block partition information can be classified into different groups (sets) of block partition information depending on the partitioning method used (vertical partitioning, horizontal partitioning, quadtree partitioning, etc.). For example, as shown in FIG. 49A, there are three block partition information groups: a vertical partitioning group (first set), a horizontal partitioning group (second set), and a quadtree partitioning group (third set). The vertical partitioning group corresponds only to vertical partitioning, the horizontal partitioning group corresponds only to horizontal partitioning, and the quadtree partitioning group corresponds only to quadtree partitioning. If the index value is 0, the vertical partitioning group is selected. If the index value is 1, the horizontal partitioning group is selected. If the index value is 2, the quadtree partitioning group is selected.

[0554] The block partition information of coded blocks can also be classified into different block partition information groups depending on the image position. For example, the block partition information of the top-left block, top block, and top-right block can be classified as an top block partition group (first set). The block partition information of the bottom-left block and left block can be classified as a left block partition group (second set). The block partition information of the co-located block and motion compensation reference block can be classified as a temporal block partition group (third set). If the index value is 0, the top block partition group is selected. If the index value is 1, the left block partition group is selected. If the index value is 2, the temporal block partition group is selected.

[0555] As another example, the written partition candidate selection parameters may include parameters / indexes for selecting one or more selected block division information from the block division information set, as shown in FIG. 49B.

[0556] The block partition information may be a parameter set indicating whether to partition a block horizontally or vertically. The block partition information may be a parameter set including a predetermined block width and a predetermined block height of all sub-blocks within the block. The block partition information may also be a parameter set including an index for selecting one partition structure candidate from a predetermined block partition structure candidate list. In this case, the block partition structure visually presents the geometry of all sub-blocks within the block, as shown in Figure 38.

[0557] In step S17003, the partition selection parameters are written into the bitstream. Figure 37 shows where the partition selection parameters can be written in the compressed video bitstream.

[0558] Next, in step S17004, block division information is identified from only the set of selected block division information using the written partition selection parameters. Here, if the identified block division information is used, the block is divided into multiple sub-blocks of a geometry set, but if different block division information is used, the block is divided into multiple sub-blocks of a different geometry set.

[0559] The written partition selection parameters may include, for example, an index for selecting one piece of block partition information from the selected small set of block partition information.

[0560] For example, as shown in FIG. 49A, in step S17002, a vertically divided group (first set) is selected as a small set of block partition information. The vertically divided group has three different block partition structures corresponding to three different pieces of block partition information. If the index value is 0, the first block partition structure of the vertically divided group is identified. If the index value is 1, the second block partition structure of the vertically divided group is identified. If the index value is 2, the third block partition structure of the vertically divided group is identified.

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

[0562] As another example, the written partition selection parameters may include multiple split / merge flags for deriving block split information from the initial block split information.

[0563] Then, in step S17005, the block is divided into a plurality of sub-blocks using the identified block division information.

[0564] In step S17006, the sub-blocks are coded using a coding process that includes a transform process and / or a predictive process. The transform process is preferably performed for each block that is approximately the same size as the sub-block.

[0565] [Encoding device] The structure of the video / image coding device in this embodiment is the same as that in FIG. 35 of the second embodiment, and therefore will not be illustrated or described again.

[0566] [Decryption process] FIG. 28 shows an example of a video decoding process according to the tenth embodiment.

[0567] As a first step S18001, the partition candidate selection parameters are parsed from the bitstream. Figure 37 shows the parsable locations of the partition candidate selection parameters in the compressed video bitstream.

[0568] Next, in step S18002, a small set of block partition information is selected from the predetermined large set of block partition information using the analyzed partition candidate selection parameters.

[0569] The analyzed partition candidate selection parameters may include, for example, an index for selecting a block partition information set from two or more block partition information sets.

[0570] The block partition information can be classified into different groups (sets) of block partition information depending on the partitioning method used (vertical partitioning, horizontal partitioning, quadtree partitioning, etc.). For example, as shown in FIG. 49A, there are three block partition information groups: a vertical partitioning group (first set), a horizontal partitioning group (second set), and a quadtree partitioning group (third set). The vertical partitioning group corresponds only to vertical partitioning, the horizontal partitioning group corresponds only to horizontal partitioning, and the quadtree partitioning group corresponds only to quadtree partitioning. If the index value is 0, the vertical partitioning group is selected. If the index value is 1, the horizontal partitioning group is selected. If the index value is 2, the quadtree partitioning group is selected.

[0571] The block partition information of decoded blocks can also be classified into different block partition information groups depending on the image position. For example, the block partition information of the top left block, top block, and top right block can be classified as an top block partition group (first set). The block partition information of the bottom left block and left block can be classified as a left block partition group (second set). The block partition information of the co-located block and motion compensation reference block can be classified as a temporal block partition group (third set). If the index value is 0, the top block partition group is selected. If the index value is 1, the left block partition group is selected. If the index value is 2, the temporal block partition group is selected.

[0572] As another example, the analyzed partition candidate selection parameters may include parameters / indexes for selecting one or more selected block partition information from the block partition information set, as shown in FIG. 49B.

[0573] The block partition information may be a parameter set indicating whether to partition a block horizontally or vertically. The block partition information may be a parameter set including a predetermined block width and a predetermined block height of all sub-blocks within the block. The block partition information may also be a parameter set including an index for selecting one partition structure candidate from a predetermined block partition structure candidate list. In this case, the block partition structure visually presents the geometry of all sub-blocks within the block, as shown in Figure 38.

[0574] In step S18003, the partition selection parameters are parsed from the bitstream. Figure 37 shows the parsable locations of the partition selection parameters in a compressed video bitstream.

[0575] Next, in step S18004, block partition information is identified from only the selected small set of block partition information using the analyzed partition selection parameters, where if the identified block partition information is used, the block is divided into multiple sub-blocks of a geometry set, but if different block partition information is used, the block is divided into multiple sub-blocks of a different geometry set.

[0576] The parsed partition selection parameters may include, for example, an index for selecting one block partition information from the selected subset of block partition information.

[0577] For example, as shown in FIG. 49A, in step S18002, a vertically divided group (first set) is selected as a small set of block partition information. The vertically divided group has three different block partition structures corresponding to three different pieces of block partition information. If the index value is 0, the first block partition structure of the vertically divided group is identified. If the index value is 1, the second block partition structure of the vertically divided group is identified. If the index value is 2, the third block partition structure of the vertically divided group is identified.

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

[0579] As another example, the parsed partition selection parameters may include multiple split / merge flags for deriving block split information from the initial block split information.

[0580] Then, in step S18005, the block is divided into a plurality of sub-blocks using the identified block division information.

[0581] In step S18006, the sub-blocks are decoded by a decoding process. Here, this decoding process includes an inverse transform process and / or a prediction process. The inverse transform process is preferably performed for each block having a size approximately equal to that of the sub-block.

[0582] [Decryption device] The structure of the video / image coding device in this embodiment is the same as that of the second embodiment shown in FIG. 36, and therefore will not be illustrated or described again.

[0583] (Embodiment 11) [overview] The encoding device of this embodiment is an encoding device that encodes blocks of an image, and comprises a processor and a memory connected to the processor, wherein the processor uses the memory to write parameters to a bitstream, read block information from one or more encoded blocks, use the read block information to select a small set of block partition information from a predetermined large set of block partition information, use the written parameters to identify block partition information from only the selected small set of block partition information, and if the identified block partition information is used, the block is divided into multiple sub-blocks of a geometry set, and if another block partition information is used, the block is divided into multiple sub-blocks of another geometry set, and use the identified block partition information to divide the current block into multiple sub-blocks, and encode the sub-blocks using an encoding process including a transformation process and / or a prediction process.

[0584] This makes it possible to narrow down selectable block partition information from predetermined block partition information using the block information of the coded block, thereby reducing the amount of coding required for parameters for selecting block partition information, thereby improving compression efficiency.

[0585] For example, in the encoding device according to this embodiment, the geometry may indicate at least the shape, height, or width of the block.

[0586] This allows the shape and / or size of the blocks to be used as geometry.

[0587] For example, in the encoding device according to this embodiment, the current block and the one or more encoded blocks may be different blocks, 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.

[0588] This allows block information to be read from one or more different coded blocks, allowing a more appropriate small set of block division information to be selected, thereby reducing the amount of code related to the block division information and improving compression efficiency.

[0589] For example, in the encoding device according to this embodiment, the read block information may include at least one of information regarding 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.

[0590] This allows the use of information that is more suitable for selecting a small set of block division information as block information.

[0591] The decoding device of 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 analyze parameters from a bitstream, read block information from one or more decoded blocks, use the read block information to select a small set of block partition information from a predetermined large set of block partition information, use the analyzed parameters to identify block partition information from only the selected small set of block partition information, and if the identified block partition information is used, the block is divided into multiple sub-blocks of a geometry set, and if another block partition information is used, the block is divided into multiple sub-blocks of another geometry set, and uses the identified block partition information to divide the current block into multiple sub-blocks, and decodes the sub-blocks using a decoding process that includes an inverse transform process and / or a prediction process.

[0592] This makes it possible to narrow down selectable block partition information from predetermined block partition information using the block information of the decoded block, thereby reducing the amount of coding required for parameters for selecting block partition information, thereby improving compression efficiency.

[0593] For example, in the decoding device according to this embodiment, the geometry may indicate at least the shape, height, or width of the block.

[0594] This allows the shape and / or size of the blocks to be used as geometry.

[0595] For example, in a decoding device according to this embodiment, the current block and the one or more decoded blocks may be different blocks, 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.

[0596] This allows block information to be read from one or more different decoded blocks, allowing a more appropriate small set of block division information to be selected, thereby reducing the amount of code related to the block division information and improving compression efficiency.

[0597] For example, in the decoding device according to this embodiment, the read block information may include at least one of information regarding 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.

[0598] This allows the use of information that is more suitable for selecting a small set of block division information as block information.

[0599] These comprehensive or specific aspects may be realized as a system, a method, an integrated circuit, a computer program, or a computer-readable recording medium such as a CD-ROM, or may be realized as any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0600] A method for encoding and decoding video will be described according to the embodiment, as shown in FIG. 29 and FIG. 30, respectively.

[0601] [Encoding process] FIG. 29 shows an example of a video encoding process according to the eleventh embodiment.

[0602] As the first step S19001, parameters are written into the bitstream. Figure 37 shows the positions in the compressed video bitstream where parameters can be written.

[0603] 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 partition depth) is read from one or more coded blocks.

[0604] In step S19003, the read block information is used to select a small set of block division information from a predetermined large set of block division information.

[0605] For example, the read block information can be used to first derive predictive block partition information. Then, from a predetermined large set of block partition information, block partition information having a block partition structure similar to the predictive block partition information is selected and added to a small set of block partition information. In selecting this block partition information, for example, if the predictive block partition information indicates that only vertical partitioning is to be used, a block partition structure with only vertical partitioning is selected (first set in Figure 49A). In selecting this block partition information, for example, if the predictive block partition information indicates that only horizontal partitioning is to be used, a block partition structure with only horizontal partitioning is selected (second set in Figure 49A). As another example, in selecting this block partition information, as shown in Figure 50, a block partition structure having the same / similar geometry as the block partition structure according to the predictive block partition information is selected.

[0606] The block partition information may be a parameter set indicating whether to partition a block horizontally or vertically. Alternatively, the block partition information may be a parameter set including a predetermined block width and a predetermined block height for all sub-blocks within the block. Alternatively, the block partition information may be a parameter set including an index for selecting one partition structure candidate from a predetermined block partition structure candidate list. In this case, the block partition structure visually presents the geometry of all sub-blocks within the block, as shown in FIG. 38.

[0607] The block partition structure of the coded block can be used as it is as the predicted block partition structure of the current block.

[0608] A new block partition structure can also be derived as the predicted block partition structure of the current block by combining the block partition structures of two or more coded blocks (for example, as shown in FIG. 39, 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). One example of a method for selecting a coded block is to select a coded block in the same intra / inter prediction mode as the current block. Specifically, if the current block is an inter prediction block, one or more coded blocks coded using inter prediction are selected.

[0609] The block partition structure of the coded block may be modified (for example, by using a block partition structure with a shallower division depth as shown in Figure 40) and the new block partition structure may be derived as the predicted block partition structure of the current block.

[0610] The predicted block partition information may differ depending on the intra-prediction direction information of the coded block. For example, information on the intra-prediction direction at a specific neighboring block position may be used to predict whether the current block is divided vertically or horizontally into smaller blocks. For example, if the intra-prediction direction information of the upper neighboring block is determined to be vertical or close to vertical, block partition information including vertical partitioning can be predicted for the current block. Similarly, if the intra-prediction direction information of the left neighboring block is determined to be horizontal or close to horizontal, block partition information including horizontal partitioning can be predicted for the current block.

[0611] The block division information may be predicted according to the intra / inter prediction mode of the coded block. For example, if the prediction mode of the coded block is an intra prediction mode, predetermined block division information for dividing the block into a plurality of sub-blocks with a relatively small block size can be predicted. Also, for example, if the prediction mode of the coded block is an inter prediction mode, other predetermined block division information for dividing the block into a plurality of sub-blocks with a relatively large block size can be predicted.

[0612] The block division information may be predicted according to the motion vector of the coded block. For example, if the difference between the motion vector of the coded block and the motion vector of the current block is greater than a predetermined threshold, the block division information may be predicted to divide the block into a plurality of sub-blocks of a relatively small block size. On the other hand, if the difference between the motion vector of the coded block and the motion vector of the current block is equal to or smaller than a predetermined threshold, the block division information may be predicted to divide the block into a plurality of sub-blocks of a relatively large block size.

[0613] The block division information may be predicted according to a quantization parameter of the coded block. For example, if the value of the quantization parameter of the coded block is smaller than a predetermined value, predetermined block division information for dividing the block into a plurality of sub-blocks with a relatively small block size can be predicted. Alternatively, for example, if the value of the quantization parameter of the coded block is equal to or greater than a predetermined value, other predetermined block division information for dividing the block into a plurality of sub-blocks with a relatively large block size can be predicted.

[0614] The block partition information may be predicted according to the reference picture information of the coded block. For example, if the reference picture of the coded block is temporally close to the current picture or the reference pictures of the coded blocks are similar to each other, predetermined block partition information for dividing the block into multiple sub-blocks with a relatively large block size can be predicted. If the reference picture of the coded block is not temporally close to the current picture or the reference pictures of the coded blocks are dissimilar to each other, other predetermined block partition information for dividing the block into multiple sub-blocks with a relatively small block size can be predicted.

[0615] The block division information may be predicted according to the division depth of the coded block. For example, if the division depth of the coded block is greater than a predetermined value (e.g., 4), predetermined block division information for dividing the block into multiple sub-blocks of relatively small block sizes can be predicted. If the division depth of the coded block is equal to or less than a predetermined value (e.g., the division depth is equal to 2), other predetermined block division information for dividing the block into multiple sub-blocks of relatively large block sizes can be predicted.

[0616] The block partition information may be predicted according to partition information of a coded block in a frame different from the current frame. For example, the block partition information (including split information) for the current block or the split information of the current block can be predicted from a coded block in a coded frame different from the current frame (e.g., a collocated block, a last coded block, or a coded block identified by a motion vector, etc.).

[0617] The block partition information of coded blocks can also be classified into different block partition information groups depending on the image position. For example, the block partition information of the top-left block, top block, and top-right block can be classified as an top block partition group (first set). The block partition information of the bottom-left block and left block can be classified as a left block partition group (second set). The block partition information of the co-located block and motion compensation reference block can be classified as a temporal block partition group (third set). If the index value is 0, the top block partition group is selected. If the index value is 1, the left block partition group is selected. If the index value is 2, the temporal block partition group is selected.

[0618] Next, in step S19004, block division information is identified from only the selected small set of block division information using the written parameters. Here, if the identified block division information is used, the block is divided into multiple sub-blocks of a geometry set, but if different block division information is used, the block is divided into multiple sub-blocks of a different geometry set. The written parameters may include, for example, an index for selecting one piece of block division information from the selected small set of block division information.

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

[0620] As another example, the written parameters may include multiple split / merge flags for deriving block split information from the initial block split information.

[0621] Then, in step S19005, the block is divided into a plurality of sub-blocks using the identified block division information.

[0622] In step S19006, the sub-blocks are coded using a coding process that includes a transform process and / or a predictive process. The transform process is preferably performed for each block that is approximately the same size as the sub-block.

[0623] [Encoding device] The structure of the video / image coding device in this embodiment is the same as that in FIG. 35 of the second embodiment, and therefore will not be illustrated or described again.

[0624] [Decryption process] FIG. 30 shows an example of a video decoding process according to the eleventh embodiment.

[0625] As a first step S20001, parameters are parsed from the bitstream. Figure 37 shows the locations where parameters can be parsed in a compressed video bitstream.

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

[0627] In step S20003, the read block information is used to select a small set of block division information from a predetermined large set of block division information.

[0628] For example, the read block information can be used to first derive predictive block partition information. Then, from a predetermined large set of block partition information, block partition information having a block partition structure similar to the predictive block partition information is selected and added to a small set of block partition information. In selecting this block partition information, for example, if the predictive block partition information indicates that only vertical partitioning is to be used, a block partition structure with only vertical partitioning is selected (first set in Figure 49A). In selecting this block partition information, for example, if the predictive block partition information indicates that only horizontal partitioning is to be used, a block partition structure with only horizontal partitioning is selected (second set in Figure 49A). As another example, in selecting this block partition information, as shown in Figure 50, a block partition structure having the same / similar geometry as the block partition structure according to the predictive block partition information is selected.

[0629] The block partition information may be a parameter set indicating whether to partition a block horizontally or vertically. Alternatively, the block partition information may be a parameter set including a predetermined block width and a predetermined block height for all sub-blocks within the block. Alternatively, the block partition information may be a parameter set including an index for selecting one partition structure candidate from a predetermined block partition structure candidate list. In this case, the block partition structure visually presents the geometry of all sub-blocks within the block, as shown in FIG. 38.

[0630] The block partition structure of the decoded block can be used as it is as the predicted block partition structure of the current block.

[0631] A new block partition structure can also be derived as the predicted block partition structure of the current block by combining the block partition structures of two or more decoded blocks (for example, as shown in FIG. 39, 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). One example of a method for selecting a decoded block is to select a decoded block in 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.

[0632] The block partition structure of the decoded block may be modified (for example, by using a block partition structure with a shallower division depth as shown in Figure 40) and the new block partition structure may be derived as the predicted block partition structure of the current block.

[0633] The predicted block division information may differ depending on the intra-prediction direction information of the decoded block. For example, information on the intra-prediction direction at a specific neighboring block position may be used to predict whether the current block is divided vertically or horizontally into smaller blocks. For example, if the intra-prediction direction information of the upper neighboring block is determined to be vertical or close to vertical, block division information including vertical division can be predicted for the current block. Similarly, if the intra-prediction direction information of the left neighboring block is determined to be horizontal or close to horizontal, block division information including horizontal division can be predicted for the current block.

[0634] The block division information may be predicted according to the intra / inter prediction mode of the decoded block. For example, if the prediction mode of the decoded block is an intra prediction mode, predetermined block division information for dividing the block into a plurality of sub-blocks with a relatively small block size can be predicted. For example, if the prediction mode of the decoded block is an inter prediction mode, other predetermined block division information for dividing the block into a plurality of sub-blocks with a relatively large block size can be predicted.

[0635] The block division information may be predicted according to the motion vector of the decoded block. For example, if the difference between the motion vector of the decoded block and the motion vector of the current block is greater than a predetermined threshold, predetermined block division information for dividing the block into a plurality of sub-blocks of a relatively small block size can be predicted. On the other hand, if the difference between the motion vector of the decoded block and the motion vector of the current block is equal to or smaller than a predetermined threshold, other predetermined block division information for dividing the block into a plurality of sub-blocks of a relatively large block size can be predicted.

[0636] The block division information may be predicted according to a quantization parameter of the decoded block. For example, if the value of the quantization parameter of the decoded block is smaller than a predetermined value, predetermined block division information for dividing the block into a plurality of sub-blocks with a relatively small block size can be predicted. For example, if the value of the quantization parameter of the decoded block is equal to or greater than a predetermined value, other predetermined block division information for dividing the block into a plurality of sub-blocks with a relatively large block size can be predicted.

[0637] The block division information may be predicted according to the reference picture information of the decoded block. For example, if the reference picture of the decoded block is temporally close to the current picture or the reference pictures of the decoded blocks are similar to each other, predetermined block division information for dividing the block into multiple sub-blocks with a relatively large block size can be predicted. If the reference picture of the decoded block is not temporally close to the current picture or the reference pictures of the decoded blocks are dissimilar to each other, other predetermined block division information for dividing the block into multiple sub-blocks with a relatively small block size can be predicted.

[0638] The block division information may be predicted according to the division depth of the decoded block. For example, if the division depth of the decoded block is greater than a predetermined value (e.g., 4), predetermined block division information for dividing the block into multiple sub-blocks of a relatively small block size can be predicted. If the division depth of the decoded block is equal to or less than a predetermined value (e.g., the division depth is equal to 2), other predetermined block division information for dividing the block into multiple sub-blocks of a relatively large block size can be predicted.

[0639] The block division information may be predicted according to the division information of a decoded block of a frame different from the current frame. For example, the block division information (including split information) for the current block or the split information of the current block can be predicted from a decoded block of a decoded frame different from the current frame (e.g., a collocated block, a last decoded block, or a decoded block identified by a motion vector, etc.).

[0640] The block partition information of decoded blocks can also be classified into different block partition information groups depending on the image position. For example, the block partition information of the top left block, top block, and top right block can be classified as an top block partition group (first set). The block partition information of the bottom left block and left block can be classified as a left block partition group (second set). The block partition information of the co-located block and motion compensation reference block can be classified as a temporal block partition group (third set). If the index value is 0, the top block partition group is selected. If the index value is 1, the left block partition group is selected. If the index value is 2, the temporal block partition group is selected.

[0641] Next, in step S20004, block division information is identified from only the selected small set of block division information using the analyzed parameters, where if the identified block division information is used, the block is divided into multiple sub-blocks of a geometry set, but if different block division information is used, the block is divided into multiple sub-blocks of a different geometry set.

[0642] The parsed partition selection parameters may include, for example, an index for selecting one block partition information from the selected subset of block partition information.

[0643] For example, the block partition information of the top left block, the top block, and the top right block is classified as a small set of block partition information into the top block partition group selected in step S20003. If the index value is 0, the block partition structure of the top left block is identified. If the index value is 1, the block partition structure of the top block is identified. If the index value is 2, the block partition structure of the top right block is identified.

[0644] As another example, the parsed partition selection parameters may include multiple split / merge flags for deriving block split information from the initial block split information.

[0645] Then, in step S20005, the block is divided into a plurality of sub-blocks using the identified block division information.

[0646] In step S20006, the sub-blocks are decoded by a decoding process, which includes an inverse transform process and / or a prediction process. The inverse transform process is preferably performed for each block having a size approximately equal to that of the sub-block.

[0647] [Decryption device] The structure of the video / image coding device in this embodiment is the same as that of the second embodiment shown in FIG. 36, and therefore will not be illustrated or described again.

[0648] (Embodiment 12) [overview] The encoding device of 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 write list modification parameters to a bitstream, uses the written list modification parameters to modify a predetermined block partition information list into a modified block partition information list, writes partition selection parameters to the bitstream, and uses the written partition selection parameters to select block partition information from only the modified block partition information list that will divide the block into multiple sub-blocks, uses the selected block partition information to divide the block into multiple sub-blocks, and encodes the sub-blocks included in the multiple sub-blocks using an encoding process that includes a transformation process and / or a prediction process.

[0649] This allows the list of predetermined block division information to be modified using the list modification parameters in the bitstream, thereby reducing the amount of code related to the block division information and improving compression efficiency.

[0650] For example, in an encoding device according to this embodiment, when modifying the specified block partition information list, the specified block partition information list is rearranged to generate modified block partition information, and the partition selection parameter may be encoded using fewer bits for block partition information that is earlier in the list order than for block partition information that is later in the list order.

[0651] This allows the list of predetermined block division information to be rearranged using the list modification parameters in the bitstream, making it easier to arrange block division information that is more likely to be selected at the top of the list, thereby reducing the amount of code related to the block division information.

[0652] For example, in the encoding device according to this embodiment, the predetermined block division information list may be modified by inserting additional block division information into the predetermined block division information list to generate a longer block division information list.

[0653] This allows additional block division information to be inserted into the predetermined block division information list using the list modification parameters in the bitstream, making it easier to add block division information suitable for block division to the list, thereby improving compression efficiency.

[0654] The decoding device of 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 analyze list modification parameters from a bitstream, and uses the analyzed list modification parameters to modify a predetermined block partition information list into a modified block partition information list, analyzes partition selection parameters from the bitstream, and uses the analyzed partition selection parameters to select block partition information from only the modified block partition information list that will divide the block into multiple sub-blocks, and uses the selected block partition information to divide the block into multiple sub-blocks, and decodes the sub-blocks included in the multiple sub-blocks in a decoding process that includes an inverse transform process and / or a prediction process.

[0655] This allows the list of predetermined block division information to be modified using the list modification parameters in the bitstream, thereby reducing the amount of code related to the block division information and improving compression efficiency.

[0656] For example, in a decoding device according to this embodiment, when modifying the specified block partition information list, the specified block partition information list is rearranged to generate modified block partition information, and the partition selection parameter may be encoded with fewer bits for block partition information that is earlier in the list order than for block partition information that is later in the list order.

[0657] This allows the list of predetermined block division information to be rearranged using the list modification parameters in the bitstream, making it easier to arrange block division information that is more likely to be selected at the top of the list, thereby reducing the amount of code related to the block division information.

[0658] For example, in the decoding device according to this embodiment, the predetermined block division information list may be modified by inserting additional block division information into the predetermined block division information list to generate a longer block division information list.

[0659] This allows additional block division information to be inserted into the predetermined block division information list using the list modification parameters in the bitstream, making it easier to add block division information suitable for block division to the list, thereby improving compression efficiency.

[0660] These comprehensive or specific aspects may be realized as a system, a method, an integrated circuit, a computer program, or a computer-readable recording medium such as a CD-ROM, or may be realized as any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0661] Hereinafter, a method for encoding and a method for decoding video will be described according to an embodiment, as shown in FIGS. 31 and 32, respectively.

[0662] [Encoding process] FIG. 31 shows an example of a video encoding process according to the twelfth embodiment.

[0663] As a first step S21001, the list modification parameters are written into the bitstream. Figure 37 shows the locations where the parameters can be written in the compressed video bitstream.

[0664] Next, in step S21002, the specified block partition information list is modified to a modified block partition information list using the written list modification parameters. This modification may be, for example, a process of rearranging the specified block partition information list to generate a modified block partition information list. Here, the partition selection parameters are coded using fewer bits for block partition information that is earlier in the list order than for block partition information that is later in the list order. As a result of the rearrangement, the list order of the selected block partition information is moved up, as shown in Figure 51, and the coding bits of the partition selection parameters are reduced.

[0665] To rearrange the list, for example, the list may be classified into different block division information groups (e.g., vertical division groups, horizontal division groups, quadtree division groups, and all division groups 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 modification parameters may include a parameter indicating the order of each block division group in the modified block division information list.

[0666] By using the geometry of the current block, it is possible to implicitly restrict the block division information of each group. For example, it is possible to restrict the use of divisions only where the block width and block height are a power of 2. In the case of such block division information, if the sub-block width or sub-block height is not a power of 2, it will not be used in that group.

[0667] As another example, the modification may be a process of inserting additional block partition information into a predetermined list of block partition information to create a longer list of block partition information, where the most available block partition information is inserted at the beginning of the list, resulting in fewer coded bits for the partition selection parameters, such that the partition selection parameters are coded with fewer bits for block partition information earlier in the list than for block partition information later in the list.

[0668] As another example, the modification may be a process of creating a shorter list of block partition information by removing block partition information from a predetermined list of block partition information, where removing less available block partition information that precedes the most available block partition information results in fewer coded bits for the partition selection parameter, such that earlier block partition information in the list is coded with fewer bits than later block partition information in the list.

[0669] The reordering, inserting and deleting operations may be combined (reordering and inserting, or reordering and deleting, or inserting and deleting, or reordering, inserting and deleting, etc.).

[0670] By using the geometry of the current block, it is possible to implicitly restrict the block division information in the block division information list. For example, it is possible to restrict only divisions whose block width and block height are a power of 2. For these block division information, any sub-block width or sub-block height that is not a power of 2 will not be used in the list.

[0671] The list modification parameter may indicate, for example, that modification is not necessary. If modification is not necessary, step S21002 can be omitted. Therefore, the modified block division information list is the same as the predetermined block division information list before proceeding to step S21003.

[0672] In step S21003, the partition selection parameters are written into the bitstream. Figure 37 shows where the parameters can be written in the compressed video bitstream.

[0673] Next, in step S21004, block division information is selected only from the modified block division information list using the written partition selection parameters. The block is divided into multiple sub-blocks using the block division information selected here. The written partition selection parameters may include, for example, an index for selecting one piece of block division information from a predetermined block division information list. As another example, the written partition selection parameters may include multiple split / merge flags for deriving block division information from the initial block division information.

[0674] The coded bits of the partition selection parameter and their meanings differ depending on the selected block partition information. For example, if the selected block partition information results in only horizontal partitioning, there is no need to indicate whether the partitioning is horizontal or vertical, and simply dividing the block means that the block will be divided horizontally, as shown in Figure 53. On the other hand, if the selected block partition information results in only vertical partitioning, there is no need to indicate whether the partitioning is horizontal or vertical, and simply dividing the block means that the block will be divided vertically.

[0675] In step S21005, the block is divided into a plurality of sub-blocks using the selected block division information. The selected block division information may be, for example, final block division information used to divide the block into sub-blocks. As another example, the selected block division information may be predicted block division information or initial block division information. Based on the predicted block division information or the initial block division information, the final block division information for dividing the block into sub-blocks is derived.

[0676] In step S21006, sub-blocks included in the plurality of sub-blocks are coded by coding processing. Here, this coding processing includes a transform processing and / or a predictive processing. The transform processing is preferably performed for each block having a size approximately equal to that of the sub-block.

[0677] [Encoding device] The structure of the video / image coding device in this embodiment is the same as that in FIG. 35 of the second embodiment, and therefore will not be illustrated or described again.

[0678] [Decryption process] FIG. 32 shows an example of a video decoding process according to the twelfth embodiment.

[0679] As a first step S22001, the list modification parameters are parsed from the bitstream. Figure 37 shows the parsable locations of the parameters in a compressed video bitstream.

[0680] Next, in step S22002, the predetermined block partition information list is modified to a modified block partition information list using the analyzed list modification parameters. This modification may be, for example, a process of rearranging the predetermined block partition information list to generate a modified block partition information list. Here, the partition selection parameters are decoded using fewer bits for block partition information that is earlier in the list order than for block partition information that is later in the list order. By rearranging, the list order of the selected block partition information is advanced, as shown in Figure 51, and the decoded bits of the partition selection parameters are reduced.

[0681] To rearrange the list, for example, the list may be classified into different block division information groups (e.g., vertical division groups, horizontal division groups, quadtree division groups, and all division groups 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 modification parameters may include a parameter indicating the order of each block division group in the modified block division information list.

[0682] By using the geometry of the current block, it is possible to implicitly restrict the block division information of each group. For example, it is possible to restrict the use of divisions only where the block width and block height are a power of 2. In the case of such block division information, if the sub-block width or sub-block height is not a power of 2, it will not be used in that group.

[0683] As another example, the modification may be a process of inserting additional block partition information into a predetermined list of block partition information to create a longer list of block partition information, where inserting the most available block partition information at the beginning of the list results in fewer decoding bits for the partition selection parameter, where block partition information earlier in the list requires fewer bits to decode the partition selection parameter than block partition information later in the list.

[0684] As another example, the modification may be a process of creating a shorter list of block partition information by removing block partition information from a predetermined list of block partition information, where removing less available block partition information that precedes the most available block partition information results in fewer decoded bits for the partition selection parameter, where block partition information earlier in the list order requires fewer bits to decode the partition selection parameter than block partition information later in the list order.

[0685] The reordering, inserting and deleting operations may be combined (reordering and inserting, or reordering and deleting, or inserting and deleting, or reordering, inserting and deleting, etc.).

[0686] By using the geometry of the current block, it is possible to implicitly restrict the block division information in the block division information list. For example, it is possible to restrict only divisions whose block width and block height are a power of 2. For these block division information, any sub-block width or sub-block height that is not a power of 2 will not be used in the list.

[0687] The list modification parameter may indicate, for example, that modification is not necessary. If modification is not necessary, step S22002 can be omitted. Therefore, the modified block division information list is the same as the predetermined block division information list before proceeding to step S22003.

[0688] In step S22003, the partition selection parameters are parsed from the bitstream. Figure 37 shows the parsable locations of the parameters in a compressed video bitstream.

[0689] Next, in step S22004, block division information is selected only from the modified block division information list using the analyzed partition selection parameters. The block is divided into multiple sub-blocks using the selected block division information. The analyzed partition selection parameters may include, for example, an index for selecting one block division information from the predetermined block division information list. As another example, the analyzed partition selection parameters may include multiple split / merge flags for deriving block division information from the initial block division information.

[0690] The decoded bits of the partition selection parameter and their meanings differ depending on the selected block partition information. For example, if the selected block partition information results in only horizontal partitioning, there is no need to indicate whether the partitioning is horizontal or vertical, and simply dividing the block means that the block is divided horizontally, as shown in Figure 53. On the other hand, if the selected block partition information results in only vertical partitioning, there is no need to indicate whether the partitioning is horizontal or vertical, and simply dividing the block means that the block is divided vertically.

[0691] In step S22005, the block is divided into a plurality of sub-blocks using the selected block division information. The selected block division information may be, for example, final block division information used to divide the block into sub-blocks. As another example, the selected block division information may be predicted block division information or initial block division information. Based on the predicted block division information or the initial block division information, the final block division information for dividing the block into sub-blocks is derived.

[0692] In step S22006, sub-blocks included in the plurality of sub-blocks are decoded by a decoding process. Here, this decoding process includes an inverse transform process and / or a prediction process. The inverse transform process is preferably performed for each block having a size approximately equal to that of the sub-block.

[0693] [Decryption device] The structure of the video / image coding device in this embodiment is the same as that of the second embodiment shown in FIG. 36, and therefore will not be illustrated or described again.

[0694] (Embodiment 13) [overview] The encoding device of 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 read block information from one or more encoded blocks, uses the read block information to modify a predetermined block partition information list into a modified block partition information list, writes partition selection parameters to a bitstream, uses the written partition selection parameters to select block partition information from only the modified block partition information list that will divide the block into multiple sub-blocks, divides the current block into multiple sub-blocks using the selected block partition information, and encodes the sub-blocks included in the multiple sub-blocks using an encoding process that includes a transformation process and / or a prediction process.

[0695] This allows the block division information list to be modified using the block information read from the encoded block, thereby reducing the amount of code related to the block division information and improving compression efficiency.

[0696] For example, in an encoding device according to this embodiment, when modifying the specified block partition information list, the specified block partition information list is rearranged to generate modified block partition information, and the partition selection parameter may be encoded using fewer bits for block partition information that is earlier in the list order than for block partition information that is later in the list order.

[0697] This allows the list of predetermined block division information to be rearranged using the block information read from the encoded blocks, so that block division information that is more likely to be selected can be placed at the top of the list, thereby reducing the amount of code related to the block division information.

[0698] For example, in the encoding device according to this embodiment, the predetermined block division information list may be modified by inserting additional block division information into the predetermined block division information list to generate a longer block division information list.

[0699] This allows additional block division information to be inserted into the predetermined block division information list using the block information read from the encoded block, thereby enabling block division information suitable for block division to be added to the list, thereby improving compression efficiency.

[0700] For example, in the encoding device according to this embodiment, the current block and the one or more encoded blocks may be different blocks, 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.

[0701] This makes it possible to read block information from one or more different coded blocks, and to more appropriately correct the block division information list, thereby improving compression efficiency.

[0702] For example, in the encoding device according to this embodiment, the read block information may include at least one of information regarding 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.

[0703] This allows appropriate information to be used as block information, and makes it possible to correct the block division information list using more appropriate block information, thereby reducing the amount of code related to the block division information and improving compression efficiency.

[0704] The decoding device of 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 read block information from one or more decoded blocks, uses the read block information to modify a predetermined block partition information list into a modified block partition information list, analyzes a partition selection parameter from the bitstream, uses the analyzed partition selection parameter to select block partition information from only the modified block partition information list that will divide the block into multiple sub-blocks, divides the current block into multiple sub-blocks using the selected block partition information, and decodes the sub-blocks included in the multiple sub-blocks using a decoding process that includes an inverse transform process and / or a prediction process.

[0705] This allows the block division information list to be modified using the block information read from the decoded blocks, thereby reducing the amount of code related to the block division information and improving compression efficiency.

[0706] For example, in a decoding device according to this embodiment, when modifying the specified block partition information list, the specified block partition information list is rearranged to generate modified block partition information, and the partition selection parameter may be encoded with fewer bits for block partition information that is earlier in the list order than for block partition information that is later in the list order.

[0707] This allows the block division information list to be rearranged using the block information read from the decoded blocks, so that block division information that is more likely to be selected can be placed at the top of the list, thereby reducing the amount of code related to the block division information.

[0708] For example, in the decoding device according to this embodiment, the predetermined block division information list may be modified by inserting additional block division information into the predetermined block division information list to generate a longer block division information list.

[0709] This allows additional block division information to be inserted into the predetermined block division information list using the block information read from the decoded block, thereby enabling block division information suitable for block division to be added to the list, thereby improving compression efficiency.

[0710] For example, in a decoding device according to this embodiment, the current block and the one or more decoded blocks may be different blocks, 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.

[0711] This makes it possible to read block information from one or more different decoded blocks, and to more appropriately correct the block division information list, thereby improving compression efficiency.

[0712] For example, in the decoding device according to this embodiment, the read block information may include at least one of information regarding 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.

[0713] This allows appropriate information to be used as block information, and makes it possible to correct the block division information list using more appropriate block information, thereby reducing the amount of code related to the block division information and improving compression efficiency.

[0714] These comprehensive or specific aspects may be realized as a system, a method, an integrated circuit, a computer program, or a computer-readable recording medium such as a CD-ROM, or may be realized as any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0715] Hereinafter, a method for encoding and a method for decoding video will be described according to an embodiment, as shown in FIGS. 33 and 34, respectively.

[0716] [Encoding process] FIG. 33 shows an example of a video encoding process according to the thirteenth embodiment.

[0717] In a first step S23001, block information (eg, block partition structure, intra prediction mode or inter prediction mode, intra prediction direction, motion vector, reference picture, quantization parameter, and partition depth) is read from one or more coded blocks.

[0718] Next, in step S23002, the predetermined block partition information list is modified to a modified block partition information list using the read block information. This modification may be, for example, a process of rearranging the predetermined block partition information list to generate a modified block partition information list. Here, the partition selection parameters are coded using fewer bits for block partition information that is listed earlier than for block partition information that is listed later. By rearranging, the list order of the selected block partition information is advanced, as shown in Figure 51, and the coding bits of the partition selection parameters are reduced.

[0719] To rearrange the list, for example, the list may be classified into different block division information groups (e.g., vertical division groups, horizontal division groups, quadtree division groups, and all division groups 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 modification parameters may include a parameter indicating the order of each block division group in the modified block division information list.

[0720] By using the geometry of the current block, it is possible to implicitly restrict the block division information of each group. For example, it is possible to restrict the use of divisions only where the block width and block height are a power of 2. In the case of such block division information, if the sub-block width or sub-block height is not a power of 2, it will not be used in that group.

[0721] As another example, the modification may be a process of inserting additional block partition information into a predetermined list of block partition information to create a longer list of block partition information, where the most available block partition information is inserted at the beginning of the list, resulting in fewer coded bits for the partition selection parameters, such that the partition selection parameters are coded with fewer bits for block partition information earlier in the list than for block partition information later in the list.

[0722] As another example, the modification may be a process of creating a shorter list of block partition information by removing block partition information from a predetermined list of block partition information, where removing less available block partition information that precedes the most available block partition information results in fewer coded bits for the partition selection parameter, such that earlier block partition information in the list is coded with fewer bits than later block partition information in the list.

[0723] The reordering, inserting and deleting operations may be combined (reordering and inserting, or reordering and deleting, or inserting and deleting, or reordering, inserting and deleting, etc.).

[0724] By using the geometry of the current block, it is possible to implicitly restrict the block division information in the block division information list. For example, it is possible to restrict only divisions whose block width and block height are a power of 2. For these block division information, any sub-block width or sub-block height that is not a power of 2 will not be used in the list.

[0725] To use the read block information to modify the predetermined block partition information list, it is advisable to first derive the predicted block partition information. For example, in the predetermined block partition information list, block partition information having the same / similar block partition structure as the predicted block partition information is moved to the front of the list. If the predicted block partition structure includes only horizontal partitioning, for example, group 1 shown in Figure 52 (before rearrangement) is moved to the top of the list as shown in Figure 52 (after rearrangement).

[0726] The block partition information may be a parameter set indicating whether to partition a block horizontally or vertically. Alternatively, the block partition information may be a parameter set including a predetermined block width and a predetermined block height for all sub-blocks within the block. Alternatively, the block partition information may be a parameter set including an index for selecting one partition structure candidate from a predetermined block partition structure candidate list. In this case, the block partition structure visually presents the geometry of all sub-blocks within the block, as shown in FIG. 38.

[0727] The block partition structure of the coded block can be used as it is as the predicted block partition structure of the current block.

[0728] A new block partition structure can also be derived as the predicted block partition structure of the current block by combining the block partition structures of two or more coded blocks (for example, as shown in FIG. 39, 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). One example of a method for selecting a coded block is to select a coded block in the same intra / inter prediction mode as the current block. Specifically, if the current block is an inter prediction block, one or more coded blocks coded using inter prediction are selected.

[0729] The block partition structure of the coded block may be modified (for example, by using a block partition structure with a shallower division depth as shown in Figure 40) and the new block partition structure may be derived as the predicted block partition structure of the current block.

[0730] The predicted block partition information may differ depending on the intra-prediction direction information of the coded block. For example, information on the intra-prediction direction at a specific neighboring block position may be used to predict whether the current block is divided vertically or horizontally into smaller blocks. For example, if the intra-prediction direction information of the upper neighboring block is determined to be vertical or close to vertical, block partition information including vertical partitioning can be predicted for the current block. Similarly, if the intra-prediction direction information of the left neighboring block is determined to be horizontal or close to horizontal, block partition information including horizontal partitioning can be predicted for the current block.

[0731] The block division information may be predicted according to the intra / inter prediction mode of the coded block. For example, if the prediction mode of the coded block is an intra prediction mode, predetermined block division information for dividing the block into a plurality of sub-blocks with a relatively small block siz...

Claims

1. The circuit and a memory connected to the circuit; In operation, the circuit Write parameters to the bitstream, If the parameter has a first value consisting of at least a division direction and a division number, divide the block of the picture into four sub-blocks having a first geometry set along a first direction based on the first value; when the parameter has a second value different from the first value and including at least a division direction and a division number, dividing the block of the picture into three sub-blocks having a second geometry set different from the first geometry set along the first direction in a ratio of 1:2:1 based on the second value; transmitting a bitstream including the parameters regarding the division of the block into the sub-blocks; Bitstream transmitter.

2. Write parameters to the bitstream, If the parameter has a first value consisting of at least a division direction and a division number, divide the block of the picture into four sub-blocks having a first geometry set along a first direction based on the first value; when the parameter has a second value different from the first value and including at least a division direction and a division number, dividing the block of the picture into three sub-blocks having a second geometry set different from the first geometry set along the first direction in a ratio of 1:2:1 based on the second value; transmitting a bitstream including the parameters regarding the division of the block into the sub-blocks; Bitstream transmission method.