Method and apparatus for encoding and decoding a video by using prediction

By dividing an image patch into two parts and performing predictions in different directions, the problem of large intra-frame prediction errors is solved, and more efficient image compression is achieved.

CN115460409BActive Publication Date: 2025-11-18ELECTRONICS & TELECOMM RES INST +1
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202211136906.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2017-01-25
Filing Date
2017-01-26
Publication Date
2025-11-18
Estimated Expiration
2037-01-26

AI Technical Summary

Technical Problem

In existing technologies for encoding/decoding high-resolution and high-definition images, the prediction error caused by intra-frame prediction is still relatively large, especially when the prediction mode orientation is incorrect, and spatial repetition has not been sufficiently reduced.

Method used

The method involves dividing the current block into two parts and performing a first prediction and a second prediction separately. The first prediction covers the entire block, while the second prediction covers a part of the block. The direction of the second prediction is different from that of the first prediction. Errors are reduced by merging the prediction signals.

Benefits of technology

It effectively reduces prediction errors, improves image compression, and enhances coding efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115460409B_ABST
    Figure CN115460409B_ABST
Patent Text Reader

Abstract

A method and apparatus for encoding and decoding a video by using prediction are disclosed. In encoding a current block, a residual signal of the current block is generated based on the current block, a first prediction and a second prediction. Also, information about the encoded residual signal is generated by encoding the residual signal. The second prediction is a prediction for a portion of the current block. In decoding the current block, a reconstructed residual signal for the current block is generated. A reconstructed block for the current block is generated based on the reconstructed residual signal, the second prediction and the first prediction. The second prediction is a prediction for a portion of the current block.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the patent application with application number "201780008673.3" and titled "Method and apparatus for encoding and decoding a video by using prediction" filed on January 26, 2017. TECHNICAL FIELD

[0002] The following embodiments relate generally to a video decoding method and apparatus and a video encoding method and apparatus, and more particularly, to a method and apparatus for performing encoding and decoding of a video based on prediction of a target block. BACKGROUND

[0003] With the continuous development of the information and communication industry, broadcast services with high definition (HD) resolution have been popularized throughout the world. Through this popularization, a large number of users have become accustomed to high resolution and high definition images and / or videos.

[0004] In order to meet the demand of users for high definition, a large number of institutions have accelerated the development of next-generation imaging devices. In addition to the increased interest of users in high definition TV (HDTV) and full high definition (FHD) TV, there has also been an increased interest in ultra high definition (UHD) TV, which has a resolution that is more than four times the resolution of full high definition (FUD) TV. With this increased interest, there is a need for image encoding / decoding technology for images with higher resolution and higher definition.

[0005] Image encoding / decoding apparatuses and methods can use inter prediction techniques, intra prediction techniques, entropy encoding techniques, etc., in order to perform encoding / decoding of high resolution and high definition images. The inter prediction technique can be a technique for predicting the value of a pixel included in a current picture using a picture that is temporally in front and / or a picture that is temporally behind. The intra prediction technique can be a technique for predicting the value of a pixel included in a current picture using information about the pixel in the current picture. The entropy encoding technique can be a technique for assigning a short code to a more frequently occurring symbol and a long code to a less frequently occurring symbol.

[0006] In the image encoding and decoding process, prediction can mean generating a prediction signal that is similar to an original signal. Prediction can be mainly classified into prediction that refers to a spatially reconstructed picture, prediction that refers to a temporally reconstructed picture, and prediction that refers to other symbols. In other words, temporal reference can mean that a temporally reconstructed picture is referred to, and spatial reference can mean that a spatially reconstructed picture is referred to.

[0007] The current block can be a block that is a target to be currently encoded or decoded. The current block can be referred to as a "target block" or a "target unit". In an encoding process, the current block can be referred to as an "encoding target block" or an "encoding target unit". In a decoding process, the current block can be referred to as a "decoding target block" or a "decoding target unit".

[0008] Inter prediction can be a technique for predicting a current block using temporal and spatial references. Intra prediction can be a technique for predicting a current block using only spatial references.

[0009] When intra prediction is performed to reduce spatial redundancy, an image encoding / decoding technique encodes a current block using any one of a plurality of prediction modes. For example, in High Efficiency Video Coding (HEVC), 35 intra prediction modes are used.

[0010] An encoding device generates a prediction block of a current block using all available prediction modes among a plurality of prediction modes, and selects one prediction mode that shows the best result among the all available prediction modes as a prediction mode for encoding the current block. However, even though the prediction mode that shows the best result is used, there is an error between an original block and the prediction block. Such an error is represented as a residual block.

[0011] For some pixels, there is a large error between the original block and the prediction block. Due to this large error, spatial redundancy can not be sufficiently reduced even after a transform and / or quantization is applied to the residual block.

[0012] Since intra prediction is prediction of an entire block in one direction, a large error can occur in a part of the block. SUMMARY

[0013] TECHNICAL PROBLEM

[0014] Embodiments aim to provide a method and apparatus that reduce prediction errors of a prediction unit that occur due to prediction.

[0015] Embodiments aim to provide a method and apparatus that reduce prediction errors that occur due to a prediction direction of a prediction mode.

[0016] Embodiments aim to provide a method and apparatus that perform a selective second prediction on a prediction error corresponding to a first prediction in a direction of a first prediction mode.

[0017] Embodiments aim to provide a method and apparatus that partition a current block into two parts having the same number of pixels and perform a second prediction on the two parts.

[0018] Embodiments aim to provide a method and apparatus that uses a second prediction for a part of a plurality of parts of a current block in which a prediction error caused by a first prediction is large.

[0019] Embodiments aim to provide a method and apparatus that reduces a prediction error in a current block by using a second prediction.

[0020] Embodiments aim to provide a method and apparatus that provides a higher compression effect for a current block by using a second prediction.

[0021] Solution

[0022] According to an aspect, there is provided an encoding method, comprising: generating a residual signal of a current block based on the current block, a first prediction and a second prediction; generating information on the encoded residual signal by performing encoding on the residual signal, wherein the second prediction is a prediction for a part of the current block.

[0023] There is provided a decoding apparatus, comprising: a reconstructed residual signal generating unit configured to generate a reconstructed residual signal for a current block; a reconstructed block generating unit configured to generate a reconstructed block for the current block based on the reconstructed residual signal, a second prediction and a first prediction, wherein the second prediction is a prediction for a part of the current block.

[0024] There is provided a decoding method, comprising: generating a reconstructed residual signal for a current block; generating a reconstructed block for the current block based on the reconstructed residual signal, a second prediction and a first prediction, wherein the second prediction is a prediction for a part of the current block.

[0025] The first prediction and the second prediction can each be an intra prediction.

[0026] The part can have a non-square shape.

[0027] The part can be determined based on a prediction mode of the first prediction.

[0028] The part can be determined based on a straight line passing through a center of the current block along a prediction direction of the first prediction.

[0029] The first prediction and the second prediction can have different prediction directions.

[0030] The part can be one of two parts generated by partitioning the current block.

[0031] The two parts can have the same number of pixels.

[0032] Each of the two parts can have a non-square shape.

[0033] The two portions can be determined based on a straight line passing through a center of the current block in a prediction direction of the first prediction.

[0034] The one portion can be selected based on selected portion information indicating one of the two portions being selected.

[0035] The second prediction can not be used when a prediction mode of the first prediction is a non-directional mode.

[0036] The second prediction can not be used when second prediction usage information indicating whether the second prediction will be used for encoding the current block indicates that the second prediction will not be used.

[0037] The first prediction can be a prediction of the entire current block when the second prediction is not used.

[0038] A second prediction signal generated via the second prediction for the one portion can be added to the reconstructed residual signal.

[0039] The first prediction can be a prediction for a remaining portion of the current block other than the one portion.

[0040] A first prediction signal generated via the first prediction for the remaining portion can be added to the reconstructed residual signal.

[0041] The reconstructed block can be generated based on a second prediction signal generated via the second prediction for the one portion and a first prediction signal generated via the first prediction for the remaining portion.

[0042] Advantageous effects

[0043] A method and apparatus of reducing prediction errors of a prediction unit due to a prediction are provided.

[0044] A method and apparatus of reducing prediction errors due to a prediction direction of a prediction mode are provided.

[0045] A method and apparatus of performing a selective second prediction on a prediction error corresponding to a first prediction in a direction of a first prediction mode are provided.

[0046] A method and apparatus of partitioning a current block into two portions having the same number of pixels and performing a second prediction on the two portions are provided.

[0047] A method and apparatus of using a second prediction on one portion of a plurality of portions of a current block having a greater prediction error caused by a first prediction are provided.

[0048] Embodiments aiming to provide a method and apparatus of reducing prediction errors in a current block by using a second prediction are provided.

[0049] A method and apparatus for providing a higher compression effect for a current block by using a second prediction are provided. BRIEF DESCRIPTION OF DRAWINGS

[0050] Figure 1 is a block diagram showing a configuration of an embodiment of an encoding apparatus to which the present application is applied;

[0051] Figure 2 is a block diagram showing a configuration of an embodiment of a decoding apparatus to which the present application is applied;

[0052] Figure 3 is a diagram schematically showing a partition structure of an image when the image is encoded and decoded;

[0053] Figure 4 is a diagram showing shapes of prediction units (PUs) that a coding unit (CU) can include;

[0054] Figure 5 is a diagram showing shapes of transform units (TUs) that can be included in a CU;

[0055] Figure 6 is a diagram for explaining an embodiment of an intra prediction process;

[0056] Figure 7 is a diagram for explaining positions of reference samples used in the intra prediction process;

[0057] Figure 8 is a diagram for explaining an embodiment of an inter prediction process;

[0058] Figure 9 is a diagram showing a prediction error when an original image is predicted in a vertical direction according to an embodiment;

[0059] Figure 10 is a configuration diagram of an encoding apparatus according to an embodiment;

[0060] Figure 11 is a flowchart of an encoding method according to an embodiment;

[0061] Figure 12 is a diagram showing a first prediction and a second prediction using intra prediction according to an embodiment;

[0062] Figure 13 is a flowchart of a residual block generation method according to an embodiment;

[0063] Figure 14 is a flowchart of a reconstructed block generation method according to an embodiment;

[0064] Figure 15 is a diagram showing an encoding process according to an embodiment;

[0065] Figure 16 is a configuration diagram of a decoding device according to an embodiment;

[0066] Figure 17 is a flowchart of a decoding method according to an embodiment.

[0067] Best Mode for Carrying Out the Invention

[0068] The following exemplary embodiments will be described with reference to the accompanying drawings, which show specific embodiments. These embodiments are described in such a way that a person of ordinary skill in the art to which the present disclosure pertains can easily practice the embodiments. It should be noted that various embodiments differ from each other but need not be mutually exclusive. For example, the specific shapes, structures, and characteristics described herein can be implemented as other embodiments without departing from the spirit and scope of the embodiments related to one embodiment. In addition, it should be understood that the position or arrangement of each component in each disclosed embodiment can be changed without departing from the spirit and scope of the embodiments. Therefore, the accompanying detailed description is not intended to limit the scope of the present disclosure, and the scope of the exemplary embodiments is only limited by the appended claims and their equivalents as long as they are properly described.

[0069] In the drawings, like reference numerals are used to designate the same or similar functions throughout the aspects. The shape, size, etc. of components in the drawings can be exaggerated so that the description is clear.

[0070] It will be understood that when a component is referred to as being "connected" or "coupled" to another component, the component can be directly connected or coupled to the other component, or intervening components can be present. Further, it should be noted that in the exemplary embodiments, the expression used to describe that a component "includes" a specific component means that another component can be included in the scope or technical spirit of the exemplary embodiments, but does not exclude the presence of the specific component.

[0071] Terms such as "first" and "second" can be used to describe various components, but the components are not limited by the terms. The terms are used only to distinguish one component from another component. For example, without departing from the scope of the present specification, a first component can be referred to as a second component. Similarly, a second component can be referred to as a first component.

[0072] Also, components described in the embodiments are independently shown to represent different characteristic functions, but this does not mean that each component is formed of one single hardware or software. That is, a plurality of components are independently arranged and included for convenience of description. For example, at least two components of the plurality of components can be integrated into a single component. Conversely, one component can be divided into a plurality of components. Embodiments in which a plurality of components are integrated or embodiments in which one component is divided are included in the scope of the present specification so long as the essence of the present specification is not deviated.

[0073] Also, some components are not essential components for performing essential functions, but can be optional components for improving performance only. Embodiments can be implemented using only essential components for implementing the essence of the embodiments. For example, a structure including only essential components while excluding optional components for improving performance only is also included in the scope of the embodiments.

[0074] Hereinafter, the embodiments will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art to which the embodiments pertain can easily practice the embodiments. In the following description of the embodiments, detailed descriptions of functions or configurations which are regarded as being known to those of ordinary skill in the art can be omitted.

[0075] Hereinafter, "image" can represent a single picture constituting a part of a video, or can represent a video itself. For example, "encoding and / or decoding of an image" can represent "encoding and / or decoding of a video", and can also represent "encoding and / or decoding of any one of a plurality of images constituting a video".

[0076] Hereinafter, the terms "video" and "moving picture" can be used with the same meaning and can be interchangeable with each other.

[0077] Hereinafter, the terms "image", "picture", "frame", and "screen" can be used with the same meaning and can be interchangeable with each other.

[0078] In the following embodiments, specific information, data, flags, elements, and attributes can have their respective values. Value 0 corresponding to each of the information, data, flags, elements, and attributes can indicate a logical false or a first predefined value. In other words, the value "0" (logical false) and the first predefined value can be interchangeable with each other. Value "1" corresponding to each of the information, data, flags, elements, and attributes can indicate a logical true or a second predefined value. In other words, the value "1" (logical true) and the second predefined value can be interchangeable with each other.

[0079] When a variable such as i or j is used to indicate a row, a column, or an index, the value i can be an integer 0 or an integer greater than 0, or can be an integer 1 or an integer greater than 1. In other words, in embodiments, each of the rows, columns, and indexes can be counted starting from 0, or can be counted starting from 1.

[0080] Hereinafter, terms to be used in embodiments will be described.

[0081] Unit: "Unit" can mean a unit of image encoding and decoding. The meanings of the terms "unit" and "block" can be the same as each other. In addition, the terms "unit" and "block" can be interchangeable with each other.

[0082] - A unit (or a block) can be an M x N matrix of samples. M and N can be positive integers, respectively. The term "unit" can generally mean an array of two-dimensional (2D) samples. The term "sample" can be a pixel or a pixel value.

[0083] - The terms "pixel" and "sample" can be used to have the same meaning and can be interchangeable with each other.

[0084] - In the encoding and decoding processes of an image, a "unit" can be an area generated by partitioning one image. A single image can be partitioned into a plurality of units. In encoding and decoding an image, a processing predefined for each unit can be performed according to the type of the unit. The type of the unit can be classified into a macro unit, a coding unit (CU), a prediction unit (PU), and a transform unit (TU) according to a function. A single unit can also be further partitioned into a plurality of lower layer units having a size smaller than that of the unit.

[0085] - Unit partition information can include information on the depth of a unit. The depth information can mean the number and / or degree of times a unit is partitioned.

[0086] - A single unit can be hierarchically partitioned into a plurality of lower layer units, while the plurality of lower layer units have depth information based on a tree structure. In other words, a unit and lower layer units generated by partitioning the unit can correspond to a node and child nodes of the node, respectively. Each of the partitioned lower layer units can have depth information. The depth information of a unit means the number and / or degree of times the unit is partitioned, and thus, the partition information of a lower layer unit can include information on the size of the lower layer unit.

[0087] - In a tree structure, a top node can correspond to an initial node before being partitioned. The top node can be referred to as a "root node". In addition, the root node can have a minimum depth value. Here, the depth of the top node can be level "0".

[0088] - A node of depth level "1" can represent a unit resulting from partitioning an initial unit once. A node of depth level "2" can represent a unit resulting from partitioning an initial unit twice.

[0089] - A leaf node of depth level "n" can represent a unit resulting from partitioning an initial unit n times.

[0090] - A leaf node can be a bottom node that cannot be further partitioned. The depth of a leaf node can be a maximum level. For example, a predefined value for the maximum level can be 3.

[0091] - Transform Unit (TU): A TU can be a basic unit of residual signal encoding and / or residual signal decoding, such as transform, inverse transform, quantization, inverse quantization, transform coefficient encoding, and transform coefficient decoding. A single TU can be partitioned into multiple TUs, where each of the multiple TUs has a smaller size.

[0092] - Prediction Unit (PU): A PU can be a basic unit in the execution of prediction or compensation. A PU can be partitioned into multiple partitions by performing partitioning. The multiple partitions can also be basic units in the execution of prediction or compensation. A partition resulting from partitioning a PU can also be a prediction unit.

[0093] - Reconstructed neighboring unit: A reconstructed neighboring unit can be a unit that has been previously encoded or decoded and reconstructed in the vicinity of an encoding target unit or a decoding target unit. A reconstructed neighboring unit can be a unit that is spatially neighboring a target unit, or a unit that is temporally neighboring a target unit.

[0094] - Prediction unit partition: A prediction unit partition can represent a shape in which a PU is partitioned.

[0095] - Parameter set: A parameter set can correspond to information of a header regarding a structure of a bitstream. For example, a parameter set can include a sequence parameter set, a picture parameter set, an adaptation parameter set, and the like.

[0096] - Rate-distortion optimization: An encoding device can use rate-distortion optimization in order to provide higher encoding efficiency by exploiting a combination of a size of a CU, a prediction mode, a size of a prediction unit, motion information, and a size of a TU.

[0097] - Rate-distortion optimization scheme: The scheme can calculate rate-distortion costs of respective combinations to select an optimal combination from among the combinations. The rate-distortion cost can be calculated using Equation 1 below. In general, a combination that minimizes the rate-distortion cost can be selected as an optimal combination under a rate-distortion optimization method.

[0098] [Equation 1]

[0099] D + λ * R

[0100] Here, D can denote distortion. D can be an average of squares of differences between original transform coefficients and reconstructed transform coefficients in a transform block (mean squared error).

[0101] R denotes a code rate, which can represent a bit rate using relevant context information.

[0102] λ denotes a Lagrange multiplier. R can include not only coding parameter information such as a prediction mode, motion information, and a coding block flag, but also bits generated due to encoding of transform coefficients.

[0103] The encoding apparatus performs processes such as inter prediction and / or intra prediction, transform, quantization, entropy encoding, dequantization, and inverse transform in order to calculate accurate D and R, but these processes can greatly increase complexity of the encoding apparatus.

[0104] - reference picture: A reference picture can be an image used for inter prediction or motion compensation. A reference picture can be a picture including a reference unit referred to by a target unit to perform inter prediction or motion compensation. The terms "picture" and "image" can have the same meaning. Accordingly, the terms "picture" and "image" can be interchangeable with each other.

[0105] - reference picture list: A reference picture list can be a list including reference pictures used for inter prediction or motion compensation. A type of the reference picture list can be a merge list (LC), a list 0 (L0), a list 1 (L1), etc.

[0106] - motion vector (MV): An MV can be a 2D vector used for inter prediction. For example, the MV can be expressed in the form of (mv x , mv y ). mv x may indicate a horizontal component, and mv y may indicate a vertical component.

[0107] - An MV can represent an offset between a target picture and a reference picture.

[0108] - search range: A search range can be a 2D region in which a search for an MV is performed during inter prediction. For example, a size of the search range can be MxN. M and N can be positive integers, respectively.

[0109] Figure 1 is a block diagram showing a configuration of an embodiment to which the encoding apparatus of the present application is applied.

[0110] The encoding apparatus 100 can be a video encoding apparatus or an image encoding apparatus. A video can include one or more images (pictures). The encoding apparatus 100 can encode one or more images of a video in a time sequence.

[0111] Referring to Figure 1 The encoding apparatus 100 includes an inter prediction unit 110, an intra prediction unit 120, a switch 115, a subtractor 125, a transform unit 130, a quantization unit 140, an entropy encoding unit 150, a dequantization unit 160, an inverse transform unit 170, an adder 175, a filter unit 180, and a reference picture buffer 190.

[0112] The encoding apparatus 100 can perform encoding on an input image in an intra mode and / or an inter mode. The input image can be referred to as a "current image" as a target to be currently encoded.

[0113] Further, the encoding apparatus 100 can generate a bitstream including information on encoding by encoding the input image, and can output the generated bitstream.

[0114] When the intra mode is used, the switch 115 can be switched to the intra mode. When the inter mode is used, the switch 115 can be switched to the inter mode.

[0115] The encoding apparatus 100 can generate a prediction block for an input block in an input image. Further, after the prediction block is generated, the encoding apparatus 100 can encode a residual between the input block and the prediction block. The input block can be referred to as a "current block" as a target to be currently encoded.

[0116] When the prediction mode is the intra mode, the intra prediction unit 120 can use pixel values of previously encoded neighboring blocks around the current block as reference pixels. The intra prediction unit 120 can perform spatial prediction on the current block using the reference pixels, and generate prediction samples for the current block via the spatial prediction.

[0117] The inter prediction unit 110 can include a motion prediction unit and a motion compensation unit.

[0118] When the prediction mode is the inter mode, the motion prediction unit can search for a region that best matches the current block in a reference image in a motion prediction process, and can derive a motion vector for the current block and the found region. The reference image can be stored in the reference picture buffer 190. More specifically, the reference image can be stored in the reference picture buffer 190 when encoding and / or decoding of the reference image is processed.

[0119] The motion compensation unit can generate a prediction block by performing motion compensation using a motion vector. Here, the motion vector can be a two-dimensional (2D) vector used for inter prediction. Also, the motion vector can represent an offset between a current picture and a reference picture.

[0120] The subtractor 125 can generate a residual block, where the residual block is a residual between the input block and the prediction block. The residual block is also referred to as a "residual signal."

[0121] The transform unit 130 can generate transform coefficients by performing a transform on the residual block, and can output the generated transform coefficients. Here, the transform coefficients can be coefficient values generated by performing a transform on the residual block. When the transform skip mode is used, the transform unit 130 can omit the operation of performing a transform on the residual block.

[0122] By performing quantization on the transform coefficients, quantized transform coefficient levels can be generated. Here, in an embodiment, the quantized transform coefficient levels can also be referred to as "transform coefficients."

[0123] The quantization unit 140 can generate quantized transform coefficient levels by quantizing the transform coefficients according to a quantization parameter. The quantization unit 140 can output the quantized transform coefficient levels. In this case, the quantization unit 140 can quantize the transform coefficients using a quantization matrix.

[0124] The entropy encoding unit 150 can generate a bitstream by performing probability distribution-based entropy encoding based on values calculated by the quantization unit 140 and / or encoding parameter values calculated in the encoding process. The entropy encoding unit 150 can output the generated bitstream.

[0125] In addition to pixel information of an image, the entropy encoding unit 150 can perform entropy encoding with respect to information required to decode the image. For example, the information required to decode the image can include syntax elements, etc.

[0126] An encoding parameter can be information required to encode and / or decode. The encoding parameter can include information encoded by an encoding apparatus and transmitted to a decoding apparatus, and can also include information derived in the encoding or decoding process. For example, the information transmitted to the decoding apparatus can include syntax elements.

[0127] For example, the encoding apparatus can include values or statistical information such as a prediction mode, a motion vector, a reference picture index, an encoded block pattern, presence or absence of a residual signal, a transform coefficient, a quantized transform coefficient, a quantization parameter, a block size, and block partition information. The prediction mode can be an intra prediction mode or an inter prediction mode.

[0128] The residual signal can represent a difference between the original signal and the prediction signal. Alternatively, the residual signal can be a signal generated by transforming a difference between the original signal and the prediction signal. Alternatively, the residual signal can be a signal generated by transforming and quantizing a difference between the original signal and the prediction signal. The residual block can be a block-based residual signal.

[0129] When entropy encoding is applied, less bits can be allocated to a symbol that occurs more frequently, and more bits can be allocated to a symbol that occurs less frequently. As a symbol is represented by the allocation, a size of a bit string for a target symbol to be encoded can be reduced. Accordingly, a compression performance of video encoding can be improved by entropy encoding.

[0130] Further, to perform entropy encoding, a coding method such as exponential Golomb, context adaptive variable length coding (CAVLC), or context adaptive binary arithmetic coding (CABAC) can be used. For example, the entropy encoding unit 150 can perform entropy encoding using a variable length coding / code (VLC) table. For example, the entropy encoding unit 150 can derive a binarization method for a target symbol. Further, the entropy encoding unit 150 can derive a probability model for a target symbol / bin. The entropy encoding unit 150 can perform entropy encoding using the derived binarization method or probability model.

[0131] As the encoding apparatus 100 performs encoding via inter prediction, the encoded current picture can be used as a reference picture for another picture to be processed subsequently. Accordingly, the encoding apparatus 100 can decode the encoded current picture and store the decoded picture as a reference picture. For decoding, inverse quantization and inverse transformation of the encoded current picture can be performed.

[0132] The quantized coefficients can be inverse quantized by the inverse quantization unit 160 and can be inverse transformed by the inverse transformation unit 170. The coefficients that have been inverse quantized and inverse transformed can be added to the prediction block by the adder 175. The inverse quantized and inverse transformed coefficients and the prediction block are added, and then a reconstructed block can be generated.

[0133] The reconstructed block can be filtered by the filtering unit 180. The filtering unit 180 can apply one or more of a deblocking filter, a sample adaptive offset (SAO) filter, and an adaptive loop filter (ALF) to the reconstructed block or reconstructed picture. The filtering unit 180 can also be referred to as an "adaptive in-loop filter."

[0134] A deblocking filter can remove blocking distortion occurring at boundaries of blocks. An SAO filter can add an appropriate offset value to pixel values in order to compensate for encoding errors. An ALF can perform filtering based on a comparison result between a reconstructed block and an original block. A reconstructed block that has been filtered by the filtering unit 180 can be stored in the reference picture buffer 190.

[0135] Figure 2 FIG. 1 is a block diagram illustrating a configuration of an embodiment of a decoding apparatus to which the present disclosure is applied.

[0136] The decoding apparatus 200 can be a video decoding apparatus or an image decoding apparatus.

[0137] Referring to Figure 2 , the decoding apparatus 200 can include an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, an intra prediction unit 240, an inter prediction unit 250, a summer 255, a filtering unit 260, and a reference picture buffer 270.

[0138] The decoding apparatus 200 can receive a bitstream output from the encoding apparatus 100. The decoding apparatus 200 can perform decoding on the bitstream in an intra mode and / or an inter mode. Furthermore, the decoding apparatus 200 can generate a reconstructed image via decoding, and can output the reconstructed image.

[0139] For example, the operation of switching to the intra mode or the inter mode based on a prediction mode for decoding can be performed by a switch. When the prediction mode for decoding is the intra mode, the switch can be operated to switch to the intra mode. When the prediction mode for decoding is the inter mode, the switch can be operated to switch to the inter mode.

[0140] The decoding apparatus 200 can acquire a reconstructed residual block from the input bitstream, and can generate a prediction block. When the reconstructed residual block and the prediction block are acquired, the decoding apparatus 200 can generate a reconstructed block by adding the reconstructed residual block to the prediction block.

[0141] The entropy decoding unit 210 can generate a symbol by performing entropy decoding on the bitstream based on a probability distribution. The generated symbol can include a quantized coefficient format symbol. Here, the entropy decoding method can be similar to the entropy encoding method described above. That is, the entropy decoding method can be an inverse process of the entropy encoding method described above.

[0142] The quantized coefficient can be inverse quantized by the inverse quantization unit 220. Furthermore, the inverse quantized coefficient can be inverse transformed by the inverse transform unit 230. As a result of inverse quantizing and inverse transforming the quantized coefficient, a reconstructed residual block can be generated. Here, the inverse quantization unit 220 can apply a quantization matrix to the quantized coefficient.

[0143] When intra mode is used, the intra prediction unit 240 can generate a prediction block by performing spatial prediction using pixel values of previously coded neighboring blocks around the current block.

[0144] The inter prediction unit 250 can include a motion compensation unit. When inter mode is used, the motion compensation unit can generate a prediction block by performing motion compensation using a motion vector and a reference image. The reference image can be stored in the reference picture buffer 270.

[0145] The reconstructed residual block and the prediction block can be added to each other by the adder 255. The adder 255 can generate a reconstructed block by adding the reconstructed residual block and the prediction block.

[0146] The reconstructed block can be filtered by the filter unit 260. The filter unit 260 can apply one or more of a deblocking filter, an SAO filter, and an ALF to the reconstructed block or the reconstructed picture. The filter unit 260 can output a reconstructed image (picture). The reconstructed image can be stored in the reference picture buffer 270 and then can be used for inter prediction.

[0147] Figure 3 FIG. 3 is a diagram schematically illustrating a picture partitioning structure when a picture is encoded and decoded.

[0148] To efficiently partition a picture, a coding unit (CU) can be used in encoding and decoding. The term "unit" can be used to collectively designate 1) a block including picture samples and 2) syntax elements. For example, "partitioning of a unit" can mean "partitioning of a block corresponding to the unit."

[0149] Referring to Figure 3 , a picture 300 is sequentially partitioned into units corresponding to largest coding units (LCUs), and a partitioning structure of the picture 300 can be determined according to the LCU. Here, the LCU can be used to have the same meaning as a coding tree unit (CTU).

[0150] The partitioning structure can represent a distribution of coding units (CUs) in the LCU 310 for efficient encoding of a picture. Such a distribution can be determined according to whether a single CU is to be partitioned into four CUs. The horizontal size and the vertical size of each CU resulting from the partitioning can be half of the horizontal size and the vertical size of the CU before being partitioned. Each partitioned CU can be recursively partitioned into four CUs, and in the same manner, the horizontal size and the vertical size of the four CUs are halved.

[0151] Here, the partitioning of the CU can be recursively performed until a pre-defined depth. The depth information can be information indicating the size of the CU. The depth information can be stored for each CU. For example, the depth of the LCU can be 0, and the depth of the smallest coding unit (SCU) can be a pre-defined maximum depth. Here, as described above, the LCU can be a CU having a maximum coding unit size, and the SCU can be a CU having a minimum coding unit size.

[0152] The partitioning is performed starting from the LCU 310, and the depth of the CU can be increased by "1" each time the horizontal size and the vertical size of the CU are halved by the partitioning. For each depth, a CU that is not partitioned can have a size of 2N×2N. Further, in the case where the CU is partitioned, a CU having a size of 2N×2N can be partitioned into four CUs each having a size of N×N. The size N can be halved each time the depth is increased by 1.

[0153] Referring to Figure 3 , the LCU having a depth of 0 can have 64×64 pixels. 0 can be the minimum depth. The SCU having a depth of 3 can have 8×8 pixels. 3 can be the maximum depth. Here, the CU having 64×64 pixels as the LCU can be represented with a depth of 0. The CU having 32×32 pixels can be represented with a depth of 1. The CU having 16×16 pixels can be represented with a depth of 2. The CU having 8×8 pixels as the SCU can be represented with a depth of 3.

[0154] Further, information on whether the corresponding CU is partitioned can be represented with partition information of the CU. The partition information can be 1-bit information. All CUs except the SCU can include the partition information. For example, when the CU is not partitioned, the value of the partition information of the CU can be 0. When the CU is partitioned, the value of the partition information of the CU can be 1.

[0155] Figure 4 is a diagram illustrating shapes of prediction units (PUs) that a coding unit (CU) can include.

[0156] Among the CUs partitioned from the LCU, a CU that is not further partitioned can be divided into one or more prediction units (PUs). Such division can also be referred to as "partitioning".

[0157] The PU can be a basic unit for prediction. The PU can be encoded and decoded in any one of a skip mode, an inter mode, and an intra mode. The PU can be partitioned into various shapes according to the respective modes.

[0158] In the skip mode, there can be no partitioning in the CU. In the skip mode, a 2N×2N mode 410 in which the size of the PU and the size of the CU are the same as each other can be supported without partitioning.

[0159] In inter mode, there can be 8 types of partition shapes in a CU. For example, in inter mode, a 2Nx2N mode 410, a 2NxN mode 415, a Nx2N mode 420, a NxN mode 425, a 2NxnU mode 430, a 2NxnD mode 435, a nLx2N mode 440, and a nRx2N mode 445 can be supported.

[0160] In intra mode, a 2Nx2N mode 410 and a NxN mode 425 can be supported.

[0161] In the 2Nx2N mode 410, a PU with a size of 2Nx2N can be encoded. The PU with a size of 2Nx2N can represent a PU with a size same as a size of a CU. For example, the PU with a size of 2Nx2N can have a size of 64x64, 32x32, 16x16, or 8x8.

[0162] In the NxN mode 425, a PU with a size of NxN can be encoded.

[0163] For example, in intra prediction, when a size of a PU is 8x8, four partitioned PUs can be encoded. A size of each partitioned PU can be 4x4.

[0164] When a PU is encoded in intra mode, the PU can be encoded using any one of a plurality of intra prediction modes. For example, HEVC techniques can provide 35 intra prediction modes, and a PU can be encoded in any one of the 35 intra prediction modes.

[0165] Which one of the 2Nx2N mode 410 and the NxN mode 425 is to be used to encode a PU can be determined based on a rate-distortion cost.

[0166] The encoding device 100 can perform an encoding operation on a PU with a size of 2Nx2N. Here, the encoding operation can be an operation of encoding the PU in each of a plurality of intra prediction modes that can be used by the encoding device 100. Through the encoding operation, a best intra prediction mode for the PU with a size of 2Nx2N can be obtained. The best intra prediction mode can be an intra prediction mode that results in a minimum rate-distortion cost when encoding the PU with a size of 2Nx2N among the plurality of intra prediction modes that can be used by the encoding device 100.

[0167] Further, the encoding apparatus 100 can sequentially perform an encoding operation on each PU obtained by performing the NxN partitioning. Here, the encoding operation can be an operation of encoding the PU in each of a plurality of intra prediction modes that can be used by the encoding apparatus 100. Through the encoding operation, an optimal intra prediction mode for the PU of the size NxN can be obtained. The optimal intra prediction mode can be an intra prediction mode that results in a minimum rate-distortion cost when the PU of the size NxN is encoded among the plurality of intra prediction modes that can be used by the encoding apparatus 100.

[0168] The encoding apparatus 100 can determine which one of the PU of the size 2Nx2N and the PU of the size NxN will be encoded based on a comparison result between the rate-distortion cost of the PU of the size 2Nx2N and the rate-distortion cost of the PU of the size NxN.

[0169] Figure 5 is a diagram illustrating a shape of a transform unit (TU) that can be included in a CU.

[0170] A transform unit (TU) can be a basic unit used in a process such as a transform, quantization, inverse transform, dequantization, entropy encoding, and entropy decoding in a CU. The TU can have a square or rectangular shape.

[0171] In a CU partitioned out from an LCU, the CU that is no longer partitioned into a CU can be partitioned into one or more TUs. Here, a partitioning structure of the TU can be a quad-tree structure. For example, as shown in Figure 5 In the CU partitioned out from the LCU, the CU that is no longer partitioned into a CU can be partitioned into one or more TUs. Here, a partitioning structure of the TU can be a quad-tree structure. For example, as shown in

[0172] In the encoding apparatus 100, a coding tree unit (CTU) of the size 64x64 can be partitioned into a plurality of smaller CUs using a recursive tree structure. A single CU can be partitioned into four CUs having the same size. Each CU can be recursively partitioned and can have a quad-tree structure.

[0173] A CU can have a given depth. When the CU is partitioned, a CU resulting from the partitioning operation can have a depth that is increased by 1 from the depth of the partitioned CU.

[0174] For example, the depth of the CU can have a value ranging from 0 to 3. According to the depth of the CU, the size of the CU can range from the size 64x64 to the size 8x8.

[0175] Through the recursive partitioning of the CU, an optimal partitioning method that results in a minimum rate-distortion cost can be selected.

[0176] Figure 6is a diagram for explaining an embodiment of an intra prediction process.

[0177] The arrows extending radially from the center of the diagram in Figure 6 The arrows extending radially from the center of the diagram in

[0178] Intra coding and / or decoding can be performed using reference samples of units neighboring a target unit. The neighboring units can be neighboring reconstructed units. For example, intra coding and / or decoding can be performed using values of reference samples included in each of the neighboring reconstructed units or coding parameters of the neighboring reconstructed units.

[0179] The encoding apparatus 100 and / or the decoding apparatus 200 can generate a prediction block by performing intra prediction on a target unit based on information about samples in a current picture. When the intra prediction is performed, the encoding apparatus 100 and / or the decoding apparatus 200 can generate a prediction block for the target unit by performing intra prediction based on information about samples in a current picture. When the intra prediction is performed, the encoding apparatus 100 and / or the decoding apparatus 200 can perform directional prediction and / or non-directional prediction based on at least one reconstructed reference sample.

[0180] A prediction block can denote a block generated as a result of performing intra prediction. The prediction block can correspond to at least one of a CU, a PU, and a TU.

[0181] A unit of the prediction block can have a size corresponding to at least one of a CU, a PU, and a TU. The prediction block can have a square shape with a size of 2N×2N or N×N. The size N×N can include sizes 4×4, 8×8, 16×16, 32×32, 64×64, etc.

[0182] Alternatively, the prediction block can be a square block with a size of 2×2, 4×4, 16×16, 32×32, 64×64, etc. or a rectangular block with a size of 2×8, 4×8, 2×16, 4×16, 8×16, etc.

[0183] Intra prediction can be performed according to an intra prediction mode for a target unit. The number of intra prediction modes that the target unit can have can be a pre-defined fixed value, and can be a value determined differently according to properties of a prediction block. For example, the properties of the prediction block can include a size of the prediction block, a type of the prediction block, etc.

[0184] For example, the number of intra prediction modes can be fixed to 35 regardless of a size of a prediction unit. Alternatively, the number of intra prediction modes can be, for example, 3, 5, 9, 17, 34, 35, or 36.

[0185] As shown in Figure 6 The intra prediction modes can include two non-directional modes and 33 directional modes. The two non-directional modes can include a DC mode and a planar mode.

[0186] For example, in a vertical mode with a mode value of 26, a prediction can be performed in a vertical direction based on pixel values of reference samples. For example, in a horizontal mode with a mode value of 10, a prediction can be performed in a horizontal direction based on pixel values of reference samples. For example, in a vertical mode with a mode value of 26, a prediction can be performed in a vertical direction based on pixel values of reference samples.

[0187] Even in directional modes other than the above-described modes, the encoding apparatus 100 and the decoding apparatus 200 can perform intra prediction on a target unit using reference samples depending on an angle corresponding to the directional mode.

[0188] Intra prediction modes located to the right of the vertical mode can be referred to as "vertical-right modes". Intra prediction modes located below the horizontal mode can be referred to as "horizontal-down modes". For example, in Figure 6 In the vertical-right modes, the mode value is one of 27, 28, 29, 30, 31, 32, 33, and 34. In the horizontal-down modes, the mode value is one of 2, 3, 4, 5, 6, 7, 8, and 9.

[0189] The non-directional modes can include a DC mode and a planar mode. For example, the mode value of the DC mode can be 1. The mode value of the planar mode can be 0.

[0190] The directional modes can include angular modes. Modes other than the DC mode and the planar mode among the plurality of intra prediction modes can be the directional modes.

[0191] In the DC mode, a prediction block can be generated based on an average of pixel values of a plurality of reference samples. For example, pixel values of the prediction block can be determined based on the average of the pixel values of the plurality of reference samples.

[0192] The number of the intra prediction modes described above and the mode values of the respective intra prediction modes are merely exemplary. The number of the intra prediction modes described above and the mode values of the respective intra prediction modes can be defined differently according to embodiments, implementations, and / or requirements.

[0193] The number of the intra prediction modes can be different according to a type of a color component. For example, the number of the prediction modes can be different according to whether a color component is a luma signal or a chroma signal.

[0194] Figure 7 is a diagram for explaining positions of reference samples used in an intra prediction process.

[0195] Figure 7 The positions of the reference samples used for intra-prediction of a target unit are shown. Referring to FIG. 7A, reconstructed reference samples for intra-prediction of a current block can include, for example, a left-bottom reference sample 731, a left-side reference sample 733, a left-top corner reference sample 735, an above reference sample 737, and a right-top corner reference sample 739. Figure 7

[0196] For example, the left-side reference sample 733 can represent a reconstructed reference sample that is adjacent to a left side of the target unit. The above reference sample 737 can represent a reconstructed reference sample that is adjacent to a top of the target unit. The left-top corner reference sample 735 can represent a reconstructed reference sample that is located at a left-top corner of the target unit. The left-bottom reference sample 731 can represent a reference sample that is located below a left-side sample line consisting of the left-side reference sample 733, among samples that are located on a same line as the left-side sample line. The right-top corner reference sample 739 can represent a reference sample that is located to a right of an above sample line consisting of the above reference sample 737, among samples that are located on a same line as the above sample line.

[0197] When a size of the target unit is NxN, the number of the left-bottom reference sample 731, the left-side reference sample 733, the above reference sample 737, and the right-top corner reference sample 739 can each be N.

[0198] By performing intra-prediction on the target unit, a prediction block can be generated. The process of generating the prediction block can include determining values of pixels in the prediction block. The target unit and the prediction block can have the same size.

[0199] The reference samples used for intra-prediction of a target unit can vary depending on an intra-prediction mode of the target unit. A direction of the intra-prediction mode can represent a dependency between the reference samples and the pixels of the prediction block. For example, a value of a specified reference sample can be used as a value of one or more specified pixels in the prediction block. In this case, the specified reference sample and the one or more specified pixels in the prediction block can be samples and pixels that are located on a straight line in a direction of the intra-prediction mode. In other words, the value of the specified reference sample can be copied as a value of a pixel that is located in a direction opposite to the direction of the intra-prediction mode. Alternatively, a value of a pixel in the prediction block can be a value of a reference sample that is located in a direction of the intra-prediction mode with respect to a position of the pixel.

[0200] ​For example, when the intra prediction mode of the target unit is the vertical mode with the mode value of 26, the above reference samples 737 can be used for the intra prediction. When the intra prediction mode is the vertical mode, the value of a pixel in the prediction block can be the value of the reference pixel vertically located above the position of the pixel. Thus, the above reference samples 737 adjacent to the top of the target unit can be used for the intra prediction. Further, the value of a pixel in a row of the prediction block can be the same as the value of the pixel of the above reference samples 737.

[0201] For example, when the intra prediction mode of the current block is the horizontal mode with the mode value of 10, the left reference samples 733 can be used for the intra prediction. When the intra prediction mode is the horizontal mode, the value of a pixel in the prediction block can be the value of the reference pixel horizontally located to the left of the position of the pixel. Thus, the left reference samples 733 adjacent to the left side of the target unit can be used for the intra prediction. Further, the value of a pixel in a column of the prediction block can be the same as the value of the pixel of the left reference samples 733.

[0202] For example, when the mode value of the intra prediction mode of the current block is 18, at least some of the left reference samples 733, the top-left corner reference sample 735, and at least some of the above reference samples 737 can be used for the intra prediction. When the mode value of the intra prediction mode is 18, the value of a pixel in the prediction block can be the value of the reference pixel diagonally located at the top-left corner of the position of the pixel.

[0203] Further, when the intra prediction mode with the mode value corresponding to 27, 28, 29, 30, 31, 32, 33, or 34 is used, at least some of the top-right corner reference samples 739 can be used for the intra prediction.

[0204] Further, when the intra prediction mode with the mode value corresponding to 2, 3, 4, 5, 6, 7, 8, or 9 is used, at least some of the bottom-left corner reference samples 731 can be used for the intra prediction.

[0205] Further, when the intra prediction mode with the mode value corresponding to any one of 11 to 25 is used, the top-left corner reference sample 735 can be used for the intra prediction.

[0206] The number of the reference samples used to determine the pixel value of one pixel in the prediction block can be 1 or 2 or more.

[0207] As described above, the pixel value of a pixel in the prediction block can be determined according to the position of the pixel and the position of the reference sample indicated by the direction of the intra prediction mode. When the position of the pixel and the position of the reference sample indicated by the direction of the intra prediction mode are integer positions, the value of one reference sample indicated by the integer position can be used to determine the pixel value of the pixel in the prediction block.

[0208] When the position of the pixel and the position of the reference sample indicated by the direction of the intra prediction mode are not integer positions, an interpolated reference sample based on the two reference samples closest to the position of the reference sample can be generated. The value of the interpolated reference sample can be used to determine the pixel value of the pixel in the prediction block. In other words, when the position of the pixel in the prediction block and the position of the reference sample indicated by the direction of the intra prediction mode indicate a position between two reference samples, an interpolated value based on the values of the two samples can be generated.

[0209] The prediction block generated via the prediction can be different from the original target unit. In other words, there can be a prediction error, which is the difference between the target unit and the prediction unit, and there can also be a prediction error between the pixels of the target unit and the pixels of the prediction block. For example, in the case of directional intra prediction, the longer the distance between the pixels of the prediction block and the reference samples, the greater the prediction error that can occur. Such a prediction error can result in discontinuities between the generated prediction block and neighboring blocks.

[0210] To reduce the prediction error, a filtering operation for the prediction block can be used. The filtering operation can be configured to adaptively apply a filter to the area of the prediction block that is considered to have a greater prediction error. For example, the area that is considered to have a greater prediction error can be the boundary of the prediction block. In addition, the area of the prediction block that is considered to have a greater prediction error can differ according to the intra prediction mode, and the characteristics of the filter can also differ according to the intra prediction mode.

[0211] Figure 8 is a diagram for explaining embodiments of an intra prediction process.

[0212] Figure 8 The rectangles shown in the middle can represent images (or pictures). In addition, in the middle Figure 8 In the middle, the arrows can represent the prediction direction. That is, each image can be encoded and / or decoded according to the prediction direction.

[0213] The images (or pictures) can be classified into intra pictures (I pictures), uni-prediction pictures or predictive coding pictures (P pictures), and bi-prediction pictures or bi-prediction coding pictures (B pictures) according to the encoding type. Each picture can be encoded according to the encoding type of each picture.

[0214] When the picture that is the target to be coded is an I picture, the picture itself can be coded without inter prediction. When the picture that is the target to be coded is a P picture, the picture can be coded via inter prediction using only a reference picture in a forward direction. When the picture that is the target to be coded is a B picture, the picture can be coded via inter prediction using reference pictures in both forward and backward directions, and can also be coded via inter prediction using a reference picture in one of the forward and backward directions.

[0215] P pictures and B pictures that are coded and / or decoded using reference pictures can be regarded as pictures using inter prediction.

[0216] Hereinafter, inter prediction in an inter mode according to an embodiment will be described in detail.

[0217] In the inter mode, the encoding apparatus 100 and the decoding apparatus 200 can perform prediction and / or motion compensation on a coding target unit and a decoding target unit. For example, the encoding apparatus 100 or the decoding apparatus 200 can perform prediction and / or motion compensation by using motion information of a neighboring reconstructed block as motion information of the coding target unit or the decoding target unit. Here, the coding target unit or the decoding target unit can represent a prediction unit and / or a prediction unit partition.

[0218] Inter prediction can be performed using a reference picture and motion information. Further, the inter prediction can use the skip mode described above.

[0219] The reference picture can be at least one of a picture before or after a current picture. Here, the inter prediction can perform prediction on a block in the current picture based on the reference picture. Here, the reference picture can represent a picture used to predict the block.

[0220] Here, a region in the reference picture can be specified by using a reference picture index refIdx indicating the reference picture and a motion vector, which will be described later.

[0221] The inter prediction can select a reference picture and a reference block in the reference picture corresponding to a current block, and can generate a prediction block for the current block using the selected reference block. The current block can be a block that is a target to be currently coded or decoded among blocks in a current picture.

[0222] Motion information can be derived by each of the encoding apparatus 100 and the decoding apparatus 200 during inter prediction. Further, the derived motion information can be used to perform inter prediction.

[0223] Here, the encoding apparatus 100 and the decoding apparatus 200 can improve encoding efficiency and / or decoding efficiency by using motion information of a neighboring reconstructed block and / or motion information of a collocated block (col block). The col block can be a block corresponding to the current block in a collocated picture (col picture) that has been reconstructed previously.

[0224] The neighboring reconstructed block can be a block existing in the current picture, and can be a block that has been reconstructed previously via encoding and / or decoding. The reconstructed block can be a neighboring block adjacent to the current block and / or a block located at an outer corner of the current block. Here, the "block located at an outer corner of the current block" can mean a block vertically adjacent to a neighboring block horizontally adjacent to the current block, or a block horizontally adjacent to a neighboring block vertically adjacent to the current block.

[0225] For example, the neighboring reconstructed unit (block) can be a unit located to the left of the target unit, a unit located above the target unit, a unit located at the lower left corner of the target unit, a unit located at the upper right corner of the target unit, or a unit located at the upper left corner of the target unit.

[0226] Each of the encoding apparatus 100 and the decoding apparatus 200 can determine a block existing in a col picture at a position corresponding to the current block in space, and can determine a predefined relative position based on the determined block. The predefined relative position can be an inner and / or outer position of the block existing at the position corresponding to the current block in space. In addition, each of the encoding apparatus 100 and the decoding apparatus 200 can derive a col block based on the predefined relative position that has been determined. Here, the col picture can be any one of one or more reference pictures included in a reference picture list.

[0227] The block in the reference picture can exist at a position corresponding to the position of the current block in space in the reconstructed reference picture. In other words, the position of the current block in the current picture and the position of the block in the reference picture can correspond to each other. Hereinafter, the motion information of the block included in the reference picture can be referred to as "temporal motion information".

[0228] The method for deriving the motion information can vary according to the prediction mode of the current block. For example, as the prediction mode applied to inter prediction, there can be an advanced motion vector predictor (AMVP) mode, a merge mode, etc.

[0229] For example, when the AMVP mode is used as the prediction mode, each of the encoding apparatus 100 and the decoding apparatus 200 can generate a prediction motion vector candidate list using a motion vector of a neighboring reconstructed block and / or a motion vector of a col block. The motion vector of the neighboring reconstructed block and / or the motion vector of the col block can be used as a prediction motion vector candidate.

[0230] The bitstream generated by the encoding apparatus 100 can include a prediction motion vector index. The prediction motion vector index can indicate a best prediction motion vector selected from the prediction motion vector candidates included in the prediction motion vector candidate list. The prediction motion vector index can be transmitted from the encoding apparatus 100 to the decoding apparatus 200 through the bitstream.

[0231] The decoding apparatus 200 can select a prediction motion vector of a current block from the prediction motion vector candidates included in the prediction motion vector candidate list using the prediction motion vector index.

[0232] The encoding apparatus 100 can calculate a motion vector difference (MVD) between a motion vector of the current block and the prediction motion vector, and can encode the MVD. The bitstream can include the encoded MVD. The MVD can be transmitted from the encoding apparatus 100 to the decoding apparatus 200 through the bitstream. Here, the decoding apparatus 200 can decode the received MVD. The decoding apparatus 200 can derive the motion vector of the current block using a sum of the decoded MVD and the prediction motion vector.

[0233] The bitstream can include a reference picture index, etc. indicating a reference picture. The reference picture index can be transmitted from the encoding apparatus 100 to the decoding apparatus 200 through the bitstream. The decoding apparatus 200 can predict a motion vector of a current block using motion information of a neighboring reconstructed block, and can derive the motion vector of the current block using a difference (MVD) between the predicted motion vector and the motion vector. The decoding apparatus 200 can generate a prediction block for the current block based on the derived motion vector and the reference picture index information.

[0234] Since the motion information of the neighboring reconstructed blocks can be used for encoding the target unit and decoding the target unit, the encoding apparatus 100 can not separately encode the motion information of the target unit in a certain inter prediction mode. If the motion information of the target unit is not encoded, the number of bits transmitted to the decoding apparatus 200 can be reduced, and the encoding efficiency can be improved. For example, there can be a skip mode and / or a merge mode as the inter prediction mode in which the motion information of the target unit is not encoded. Here, each of the encoding apparatus 100 and the decoding apparatus 200 can use an identifier and / or an index indicating one of the plurality of neighboring reconstructed blocks, motion information of which is to be used as the motion information of the target unit.

[0235] There is a merge method as another example of a method of deriving motion information. The term "merge" can mean a merge of motion of a plurality of blocks. The term "merge" can mean that motion information of one block is also applied to other blocks. When merge is applied, each of the encoding apparatus 100 and the decoding apparatus 200 can generate a merge candidate list using motion information of a col block and / or motion information of a neighboring reconstructed block. The motion information can include at least one of 1) a motion vector, 2) an index of a reference picture, and 3) a prediction direction. The prediction direction can be uni-directional or bi-directional.

[0236] Here, merge can be applied on a CU basis or on a PU basis. When merge is performed on a CU basis or on a PU basis, the encoding apparatus 100 can transmit predefined information to the decoding apparatus 200 through a bitstream. The bitstream can include the predefined information. The predefined information can include 1) information on whether merge is performed for each block partition, and 2) information on a neighboring block to be used to perform merge among a plurality of neighboring blocks adjacent to a current block. For example, the neighboring blocks of the current block can include a left neighboring block of the current block, an above neighboring block of the current block, a temporally neighboring block of the current block, etc.

[0237] The merge candidate list can mean a list in which a plurality of pieces of motion information are stored. Also, the merge candidate list can be generated before merge is performed. The motion information stored in the merge candidate list can be 1) motion information of a neighboring block adjacent to a current block and 2) motion information of a col block corresponding to the current block in a reference picture. Also, the motion information stored in the merge candidate list can be new motion information generated by combining a plurality of pieces of motion information previously existing in the merge candidate list.

[0238] The skip mode can be a mode in which information on a neighboring block is applied to a current block without change. The skip mode can be one of a plurality of modes for inter prediction. When the skip mode is used, the encoding apparatus 100 can transmit only information on a block whose motion information is to be used as motion information of a current block to the decoding apparatus 200 through a bitstream. The encoding apparatus 100 can not transmit other information to the decoding apparatus 200. For example, the other information can be syntax information. The syntax information can include motion vector difference (MVD) information.

[0239] Figure 9 A second prediction of a partition of a current block according to an embodiment is shown.

[0240] Figure 9 The current block shown in FIG. 10 can be a PU.

[0241] When optimal intra prediction is performed on the current block, prediction is performed on the entire current block in only one direction, and thus a large prediction error can occur on a part of the current block.

[0242] A scheme for partitioning the current block in a non-square shape can be applied to the part where a large prediction error occurs.

[0243] In other words, if second prediction in another prediction mode is performed on one part having a large prediction error after first prediction has been performed on a square prediction unit, prediction error in the current block can be reduced.

[0244] For example, both the first prediction mode and the second prediction mode can be intra prediction modes.

[0245] In Figure 9 , the current block can have a square shape. A prediction direction of first prediction performed on the entire current block is shown. For example, a prediction mode of the first prediction can be a vertical mode with a mode value of 26.

[0246] The current block can be partitioned into a first part and a second part. Each of the first part and the second part can have a non-square shape.

[0247] In Figure 9 , a prediction direction of second prediction for the first part is shown, and a prediction direction of second prediction for the second part is shown. For example, a prediction mode of the second prediction for the first part can be a horizontal mode with a mode value of 10. A prediction mode of the second prediction for the second part can be a lowest diagonal mode with a mode value of 34.

[0248] A shape of the part having a large prediction error can correspond to a direction of an optimal prediction mode for the current block. In the following embodiments, a method and apparatus for improving prediction performance and reducing prediction error by effectively utilizing a tendency of a shape of a part having a large prediction error to correspond to a direction of an optimal prediction mode for the current block can be described.

[0249] Figure 10 is a configuration diagram of an encoding apparatus according to an embodiment.

[0250] The encoding apparatus 1000 can be a general-purpose computer system that performs encoding.

[0251] As Figure 10As illustrated in the middle, the encoding apparatus 1000 can include at least one processor 1010, a memory 1030, a user interface (UI) input device 1050, a UI output device 1060, and a storage 1040, which communicate with each other via a bus 1090. The encoding apparatus 1000 can further include a communication unit 1020 connected to a network 1099. The processor 1010 can be a central processing unit (CPU) or a semiconductor device for executing processing instructions stored in the memory 1030 or the storage 1040. Each of the memory 1010 and the storage 1040 can be any one of various types of volatile or non-volatile storage media. For example, the memory can include at least one of read-only memory (ROM) 1031 and random access memory (RAM) 1032.

[0252] The processor 1010 can include an inter prediction unit 110, an intra prediction unit 120, a switch 115, a subtractor 125, a transform unit 130, a quantization unit 140, an entropy encoding unit 150, a dequantization unit 160, an inverse transform unit 170, an adder 175, a filter unit 180, and a reference picture buffer 190 of the encoding apparatus 100.

[0253] The storage medium can store at least one module for operations of the encoding apparatus 1000. The memory 1030 can be configured to store at least one module and allow the module to be executable by the at least one processor 1010.

[0254] According to an embodiment, at least some of the inter prediction unit 110, the intra prediction unit 120, the switch 115, the subtractor 125, the transform unit 130, the quantization unit 140, the entropy encoding unit 150, the dequantization unit 160, the inverse transform unit 170, the adder 175, the filter unit 180, and the reference picture buffer 190 of the encoding apparatus 1000 can be program modules and can communicate with an external device or system. The program modules can be included in the encoding apparatus 1000 in the form of an operating system, an application program module, and other program modules.

[0255] The program modules can be physically stored in various types of well-known storage devices. In addition, at least some of the program modules can also be stored in a remote storage device capable of communicating with the encoding apparatus 1000.

[0256] The program modules can include, but are not limited to, routines, sub-routines, programs, objects, components, and data structures for performing functions or operations according to an embodiment or for implementing abstract data types according to an embodiment.

[0257] The program modules can be implemented using instructions or codes executed by the processor 1010.

[0258] The communication related to the data or information of the encoding apparatus 1000 can be performed by the communication unit 1020.

[0259] Figure 11 is a flowchart of an encoding method according to an embodiment.

[0260] The encoding method according to an embodiment can be performed by the encoding apparatus 100 or the encoding apparatus 1000.

[0261] At step 1110, the prediction section can generate a residual signal of the current block based on the current block, the first prediction, and the second prediction.

[0262] The prediction section can include an inter prediction unit 110, an intra prediction unit 120, and a subtractor 125.

[0263] For example, the residual signal can represent a residual block.

[0264] For example, the residual block can be a difference between the current block and the prediction block. Alternatively, the residual block can be generated based on the difference between the current block and the prediction block.

[0265] For example, the prediction block can be a sum of the first prediction block and the second prediction block. The residual block can be obtained by subtracting the sum of the first prediction block and the second prediction block from the current block.

[0266] The first prediction block can be a block generated via the first prediction. The second prediction block can be a block generated via the second prediction. When the second prediction is not used, the second prediction block can be a null block. The null block can be a block in which all pixels have a value of 0.

[0267] The prediction section can generate the residual block for the current block by performing the inter prediction or the intra prediction.

[0268] In an embodiment, the prediction section can generate the second prediction block based on the current block and / or the first prediction block.

[0269] In an embodiment, the prediction section can generate the residual signal of the current block by performing the first prediction on the current block and performing the second prediction on a first prediction error that is a result of the first prediction. Here, the first prediction error can be a difference between the current block and the first prediction signal. The residual signal can be a difference between the first prediction error and the second prediction signal.

[0270] In an embodiment, the first prediction and the second prediction can be different types of prediction.

[0271] In an embodiment, the first prediction and the second prediction can be the same type of prediction. For example, the first prediction and the second prediction can both be intra prediction. When the first prediction is intra prediction, the second prediction can also be set to intra prediction.

[0272] In an embodiment, the prediction direction of the first prediction and the prediction direction of the second prediction can be the same as each other. The prediction direction of the second prediction can be set to be the same prediction direction as the first prediction.

[0273] For example, in an embodiment, the first prediction and the second prediction can each be inter prediction.

[0274] In an embodiment, the block targeted by the first prediction and the block targeted by the second prediction can be different from each other. Here, what is represented by the expression "block targeted by prediction" can be different. Here, the expression "block targeted by prediction" can mean a block from which a predicted block will be generated via "prediction".

[0275] For example, the type of the block targeted by the first prediction and the type of the block targeted by the second prediction can be different from each other. The type of the block can include an original block, a luma block, a chroma block, a depth block, a residual block, etc.

[0276] For example, the block targeted by the first prediction can be a current block or an original block.

[0277] For example, the first prediction error generated via the first prediction can represent a first prediction error block. The first prediction error can be a first residual signal. Also, the first residual signal can represent a first residual block. The block targeted by the second prediction can be the first prediction error block or the first residual block. In this case, the first residual signal can be generated via the first prediction, and a second prediction error can be generated via the second prediction. The second prediction error can be a second residual signal. The second residual signal can represent a second residual block.

[0278] A reference block can be used for prediction. In an embodiment, a first reference block used for the first prediction and a second reference block used for the second prediction can be different from each other. The reference block can differ in terms of the type and / or position of the reference block.

[0279] In an embodiment, the position of the first reference block used for the first prediction and the position of the second reference block used for the second prediction can be different from each other. Here, the position of the first reference block can be a position relative to the position of the block targeted by the first prediction. The position of the second reference block can be a position relative to the position of the block targeted by the second prediction.

[0280] In an embodiment, the first reference block used for the first prediction can include a plurality of reference blocks. The second reference block used for the second prediction can include a plurality of reference blocks. At least some of the plurality of first reference blocks used for the first prediction and the plurality of second reference blocks used for the second prediction can be different from each other.

[0281] The locations of at least some of the plurality of first reference blocks for the first prediction and the plurality of second reference blocks for the second prediction can be included only in one of the locations of the plurality of first reference blocks and the locations of the plurality of second reference blocks.

[0282] In an embodiment, a type of the first reference block for the first prediction and a type of the second reference block for the second prediction can be different from each other. The type of the block can include a reconstructed block, a reconstructed luma block, a reconstructed chroma block, a reconstructed depth block, a reconstructed first residual block, and a reconstructed second residual block.

[0283] For example, the first reference block for the first prediction can be a reconstructed block. The second reference block for the second prediction can be a reconstructed first residual block. The first reference sample for the first prediction can be a pixel in the reconstructed block. The second reference sample for the second prediction can be a pixel in the reconstructed first residual block.

[0284] For example, the first reference block for the first prediction can be a neighboring reconstructed block adjacent to the current block. The second reference block for the second prediction can be a reconstructed first residual block adjacent to the current block.

[0285] The neighboring reconstructed residual block adjacent to the current block can be obtained by adding the second prediction block of the neighboring reconstructed block to the reconstructed residual block for the neighboring reconstructed block. Alternatively, the neighboring reconstructed residual block adjacent to the current block can be a difference between the neighboring reconstructed block and the first prediction block of the neighboring reconstructed block.

[0286] For example, when the first prediction is targeted for the current block, a neighboring reconstructed block of the current block can be used as a reference block in order to perform the prediction of the current block. When the second prediction is targeted for the first residual block, a neighboring reconstructed residual block of the current block or the first residual block can be used as a second reference block in order to perform the prediction of the first residual block.

[0287] In an embodiment, a region of the first prediction and a region of the second prediction can be different from each other. Here, the "region of prediction" can mean a region in which a predicted value is generated in a block targeted for prediction. Alternatively, the "region of prediction" can mean a region in which a predicted value generated via prediction is assigned among prediction blocks corresponding to the block targeted for prediction.

[0288] In an embodiment, the second prediction can be a prediction for a portion of the current block. The first prediction can be a prediction for the entire current block. Alternatively, the first prediction can be a prediction for a remaining portion of the current block except for the portion predicted via the second prediction.

[0289] For example, the region of the second prediction can be a portion of the current block. The region of the first prediction can be the entire current block. Alternatively, the region of the first prediction can be a remaining portion of the current block except for the portion of the second prediction.

[0290] For example, the second predicted region can be a non-square portion of the current block. The first predicted region can be the entire current block. Alternatively, the first predicted region can be a remaining non-square region in the current block other than the second predicted non-square region.

[0291] For example, the prediction value determined via the first prediction can be assigned only to pixels in the block targeted by the first prediction that fall within the first predicted region. The prediction value determined via the first prediction can not be assigned to pixels in the block targeted by the first prediction that fall outside the first predicted region. Alternatively, a predefined value can be assigned to pixels in the block targeted by the first prediction that fall outside the first predicted region. The predefined value can be 0, for example.

[0292] For example, the prediction value determined via the second prediction can be assigned only to pixels in the block targeted by the second prediction that fall within the second predicted region. The prediction value determined via the second prediction can not be assigned to pixels in the block targeted by the second prediction that fall outside the second predicted region. Alternatively, a predefined value can be assigned to pixels in the block targeted by the second prediction that fall outside the second predicted region. The predefined value can be 0, for example.

[0293] In an embodiment, the first predicted region can be determined based on a type of the first prediction. For example, the first predicted region can be determined based on whether the first prediction is an inter prediction. Alternatively, the first predicted region can be determined based on whether the first prediction is an intra prediction. Alternatively, the first predicted region can be determined based on a prediction direction of the first prediction.

[0294] In an embodiment, the second predicted region can be determined based on a type of the second prediction. For example, the second predicted region can be determined based on whether the second prediction is an inter prediction. Alternatively, the second predicted region can be determined based on whether the second prediction is an intra prediction. Alternatively, the second predicted region can be determined based on a prediction direction of the second prediction.

[0295] At step 1120, the encoding section can perform encoding on the residual signal. The encoding section can generate information on the encoded residual signal by performing encoding on the residual signal.

[0296] The encoding section can include a transform unit 130, a quantization unit 140, and an entropy encoding unit 150.

[0297] Step 1120 can include steps 1121, 1122, and 1123.

[0298] At step 1121, the transform unit 130 can generate transform coefficients for the residual signal.

[0299] At step 1122, the quantization unit 1140 can generate quantized transform coefficients by performing quantization on the transform coefficients.

[0300] At step 1123, the entropy encoding unit 150 can generate information on the encoded residual signal by performing entropy encoding on the quantized transform coefficients.

[0301] At step 1130, the entropy encoding unit 150 can generate a bitstream of the information on the encoded residual signal.

[0302] The bitstream can include the information on the encoded residual signal, and can further include prediction-related information.

[0303] The entropy encoding unit 150 can include the prediction-related information in the bitstream. The prediction-related information can be entropy encoded.

[0304] For example, the prediction-related information can include prediction scheme information indicating a scheme used for encoding the current block.

[0305] For example, the prediction scheme information can indicate which one of intra prediction and inter prediction is used for encoding the current block. Alternatively, the prediction scheme information can indicate whether the current block has been encoded via intra prediction. Alternatively, the prediction scheme information can indicate whether the current block has been encoded via inter prediction.

[0306] For example, the prediction-related information can include intra prediction mode information indicating a prediction mode of the intra prediction.

[0307] For example, the prediction-related information can include second prediction usage information indicating whether the second prediction is to be used for encoding the current block.

[0308] For example, the prediction-related information can include first prediction mode information indicating a prediction mode of the first prediction and second prediction mode information indicating a prediction mode of the second prediction.

[0309] For example, the prediction-related information can include selected portion information indicating a selected portion to which the second prediction is to be applied, wherein the selected portion is one of two portions generated by partitioning the current block.

[0310] For example, the prediction-related information can include current block type information indicating a type of the current block, first prediction block type information indicating a type of the first prediction block, second prediction block type information indicating a type of the second prediction block, first reference block type information indicating a type of the first reference block, second reference block type information indicating a type of the second reference block, first reference sample type information indicating a type of the first reference sample, and second reference sample type information indicating a type of the second reference sample.

[0311] For example, the prediction-related information can include first prediction region information indicating a region of the first prediction and / or second prediction region information indicating a region of the second prediction.

[0312] The prediction-related information can include information for the predictions that have been described in the embodiments. The entropy encoding unit 150 can include the pieces of prediction-related information in the bitstream according to the order described in the embodiments or the order generated in the embodiments.

[0313] At step 1140, the communication unit 1020 can transmit the bitstream to the decoding device 200 or the decoding device 1500.

[0314] At step 1150, the reconstructed residual signal generating unit can generate a reconstructed residual signal based on the information about the residual signal.

[0315] The reconstructed residual signal generating unit can include the inverse quantization unit 160 and the inverse transform unit 170.

[0316] Step 1150 can include step 1151 and step 1152.

[0317] At step 1151, the inverse quantization unit 160 can generate reconstructed transform coefficients by performing inverse quantization on the quantized transform coefficients.

[0318] At step 1152, the transform unit 130 can generate the reconstructed residual signal by performing inverse transform on the reconstructed transform coefficients.

[0319] At step 1160, the reconstructed block generating unit can generate a reconstructed block based on the reconstructed residual signal, the first prediction, and the second prediction.

[0320] The reconstructed block generating unit can include the adder 175.

[0321] In an example, the sum of the reconstructed residual signal and the prediction signal can represent the reconstructed block. Alternatively, the reconstructed block can be generated based on the sum of the reconstructed residual signal and the prediction signal.

[0322] In an example, the reconstructed block can be the sum of the reconstructed residual block and the prediction block. The prediction block can be the sum of the first prediction block and the second prediction block. The second prediction signal can be a signal generated by performing the second prediction on the portion of the current block. The first prediction signal can be a signal generated by performing the first prediction on the current block or a signal generated by performing the first prediction on the remaining portion of the current block except for the portion on which the second prediction is performed.

[0323] Alternatively, the reconstructed block can be generated based on the sum of the reconstructed residual block and the prediction block.

[0324] For example, the reconstructed block can be a block generated based on the reconstructed residual signal, the first prediction block, and the second prediction block. The reconstructed block generating unit can generate the reconstructed first residual signal by adding the reconstructed residual signal to the second prediction signal. The reconstructed block generating unit can generate the reconstructed block by adding the reconstructed first residual signal to the first prediction signal.

[0325] Alternatively, the reconstructed block generating unit can generate the reconstructed first residual block by adding the reconstructed residual block to the second prediction block. The reconstructed block generating unit can generate the reconstructed block by adding the reconstructed first residual block to the first prediction block.

[0326] The reconstructed block and the reconstructed first residual signal can be used as a reference block for encoding other blocks.

[0327] Figure 12 A partitioning operation on a current block according to an embodiment is shown.

[0328] In Figure 12 , a current block having a size of NxN is shown.

[0329] The current block can be partitioned into two portions. The two portions can be determined based on a straight line passing through the center of the current block in a prediction direction of the first prediction. In Figure 12 , the prediction direction of the first prediction can be a prediction direction of a prediction mode having a mode value of 3.

[0330] The first prediction can be a prediction using a first best prediction mode obtained by performing intra prediction on the current block.

[0331] The current block can be partitioned into two portions (split regions) using a prediction mode of the first prediction such that the two portions have the same number of pixels.

[0332] Here, the reason why the current block is partitioned in the prediction direction of the first prediction is that when prediction of the current block is performed using intra prediction, there can be a tendency that a large prediction error occurs in a portion specified by the prediction direction.

[0333] In Figure 12 , the two portions are indicated by S1 and S2, respectively. Among points having an x-coordinate value of i, a point having a y-coordinate value of j2 can be included in S1. Among points having an x-coordinate value of i, a point having a y-coordinate value of j1 can be included in S2.

[0334] The prediction direction of the prediction mode can be calculated using Equations 2, 3, 4, 5, and 6 below and Table 1 below.

[0335] Since the prediction mode having a mode value of 0 or 1 is a non-directional prediction mode, the prediction mode can be excluded from the partitioning.

[0336] [Equation 2]

[0337]

[0338] "predMode" can denote a number of a prediction mode. "Vertical" can denote that the prediction mode is a vertical mode. "Horizontal" can denote that the prediction mode is a horizontal mode.

[0339] [Equation 3]

[0340] absAngle = | predAngle |

[0341] [Equation 4]

[0342]

[0343] [Equation 5]

[0344]

[0345] [Equation 6]

[0346] Tan = TanSign x TanValue

[0347] The value of absAngle can be defined by Table 1 below.

[0348] Table 1

[0349] absAngle 0 1 2 3 4 5 6 7 8 value 0 2 5 9 13 17 21 26 32

[0350] When the value of Tan for the prediction mode is calculated, a pixel located at coordinates (i, j) in the current block can be included in at least one of the partial S0 and the partial S1 by Equation 7 below:

[0351] [Equation 7]

[0352]

[0353] When the mode value of the prediction mode predMode is 3, 18, or 34, the value of Tan can be -1 or +1. In this case, a pixel on a straight line that partitions the current block can be included in each of the two partial S0 and S1.

[0354] In other words, when the current block is partitioned into two partials along a straight line passing through the center of the current block, a pixel located on the straight line in the current block can be included in each of the two partials.

[0355] Figure 13 is a flowchart of a residual block generation method according to an embodiment.

[0356] The above is described with reference toFigure 11 The described step 1110 can include steps 1310, 1320, 1330, 1335, 1340, 1345, 1350, 1355, 1360, 1370, and 1380.

[0357] In an embodiment, the block targeted as the first prediction can be a current block. The first prediction can be an intra prediction.

[0358] In step 1310, the prediction section can generate a first prediction signal by performing the first prediction on the current block.

[0359] The first prediction signal can represent a first predicted block.

[0360] The prediction section can perform the first prediction in each of a plurality of prediction modes in order to find a best prediction mode for the first prediction to encode the current block. That is, step 1310 can be performed in each of the plurality of prediction modes.

[0361] The plurality of prediction modes can correspond to different prediction directions.

[0362] The prediction section can generate a first prediction error based on the current block and the first prediction signal.

[0363] The first prediction error can represent a first residual block.

[0364] The first residual block can represent a difference (residual) between the current block and the first predicted block. That is, the prediction section can generate the first prediction error by subtracting the first predicted block represented by the first prediction signal from the current block.

[0365] The prediction section can calculate a rate-distortion cost for the first prediction using the first prediction error.

[0366] The prediction section can store the calculated first prediction error and / or the calculated rate-distortion cost for the first prediction in the memory 1030, the storage 1040, or the buffer.

[0367] The prediction section can perform the first prediction in each of a plurality of prediction modes in order to find a best prediction mode for the first prediction to encode the current block. The prediction section can calculate a plurality of rate-distortion costs for the plurality of prediction modes using the first prediction error in the plurality of prediction modes. The prediction section can store a minimum rate-distortion cost among the calculated plurality of rate-distortion costs as a minimum first rate-distortion cost RDcost_1. For example, RDcost_1 can be a rate-distortion cost of a mode having a minimum rate-distortion cost in a main intra prediction.

[0368] The prediction section can store RDcost_1 and a first prediction error corresponding to RDcost_1.

[0369] At step 1320, the prediction unit can determine a first prediction mode of the first prediction. The first prediction mode can indicate a prediction direction of the first prediction.

[0370] The prediction unit can determine a prediction mode having a smallest rate-distortion cost among the plurality of prediction modes as the first prediction mode. Hereinafter, the prediction mode of the first prediction can be the prediction mode having the smallest rate-distortion cost among the plurality of prediction modes. The prediction direction of the first prediction can be the prediction direction of the prediction mode of the first prediction.

[0371] At step 1330, it can be determined whether to perform the second prediction on the current block.

[0372] In an embodiment, the determination at step 1330 can not be a final decision on whether to encode the current block using the second prediction. At step 1130, the prediction unit can determine whether the second prediction can be performed on the current block.

[0373] For example, if it is determined not to perform the second prediction, the current block can be encoded without using the second prediction. If it is determined to perform the second prediction, a second prediction signal and a second prediction error can be generated via the second prediction, but it can be determined whether to encode the current block using the second prediction by comparing rate-distortion costs at step 1360.

[0374] If it is determined not to perform the second prediction, a residual block for the current block can be a block represented by the first prediction error. In other words, the first prediction error can be provided as the residual block.

[0375] If it is determined to perform the second prediction, a residual block for the current block can be a block represented by the second prediction error, which will be described later. In other words, the second prediction error can be provided as the residual block.

[0376] The prediction unit can determine whether to perform the second prediction based on a predefined condition.

[0377] In an embodiment, the prediction unit can determine whether to perform the second prediction based on the prediction mode of the first prediction.

[0378] For example, when the prediction mode of the first prediction is a non-directional mode, the prediction unit can not perform the second prediction. Alternatively, when the prediction mode of the first prediction is a directional mode, the prediction unit can perform the second prediction.

[0379] When the prediction mode of the first prediction is a non-directional mode among the plurality of prediction modes, since there is no direction of the prediction mode, the current block can not be partitioned in the prediction direction.

[0380] If it is determined to perform the second prediction, step 1335 can be performed.

[0381] If it is determined not to perform the second prediction, step 1370 or step 1120 can be performed. When step 1120 is performed, the residual signal at step 1120 can be the first prediction error. That is, when only the first prediction is performed without performing the second prediction, the first prediction error generated via the first prediction can be used as the residual signal for the current block.

[0382] At step 1335, the prediction unit can partition the current block based on the first prediction mode. The prediction unit can generate two portions by partitioning the current block based on the first prediction mode.

[0383] In an embodiment, the prediction unit can generate two non-square portions by partitioning the current block with a straight line passing through the center of the current block along the prediction direction of the first prediction. Hereinafter, the two non-square portions can be designated as a "first portion" and a "second portion".

[0384] When the current block is partitioned, the second prediction can be performed on each portion generated from the partitioning operation.

[0385] At step 1340, the prediction unit can generate a second prediction signal for the first portion by performing the second prediction on the first portion.

[0386] The second prediction signal for the first portion can represent a second prediction block for the first portion.

[0387] The second prediction for the first portion can be an intra prediction.

[0388] The prediction unit can perform the second prediction in each of a plurality of prediction modes in order to find a best prediction mode to encode the first portion. In other words, step 1340 can be performed in each of a plurality of prediction modes.

[0389] The plurality of prediction modes can correspond to different prediction directions.

[0390] The prediction unit can generate a second prediction error for the first portion based on the first portion and the second prediction signal.

[0391] The second prediction error for the first portion can represent a second residual block for the first portion.

[0392] The second residual block for the first portion can represent a difference (residual) between the first portion and the second prediction block. That is, the prediction unit can generate the second prediction error for the first portion by subtracting the second prediction block for the first portion from the first portion, wherein the second prediction block for the first portion is represented by the second prediction signal for the first portion.

[0393] The prediction unit can calculate a rate-distortion cost of the second prediction for the first portion using the second prediction error for the first portion.

[0394] The prediction unit can store the calculated second prediction error for the first portion and / or the calculated rate-distortion cost of the second prediction for the first portion in the memory 1030, the storage 1040, or the buffer.

[0395] The prediction unit can perform the second prediction in each of a plurality of prediction modes in order to find a best prediction mode of the second prediction for the first portion to encode the first portion. The prediction unit can calculate a plurality of rate-distortion costs of the plurality of prediction modes using a plurality of second prediction errors of the plurality of prediction modes. The prediction unit can store a minimum rate-distortion cost among the calculated plurality of rate-distortion costs as a minimum second rate-distortion cost RDcost_2 for the first portion. For example, RDcost_2 can be a rate-distortion cost of a mode having a minimum rate-distortion cost among the secondary intra-prediction for the first portion.

[0396] The prediction unit can store the RDcost_2 for the first portion and the second prediction error for the first portion corresponding to the RDcost_2 for the first portion.

[0397] At step 1345, the prediction unit can determine a second prediction mode of the second prediction for the first portion. The second prediction mode for the first portion can indicate a prediction direction of the second prediction for the first portion.

[0398] The prediction unit can determine a prediction mode having a minimum rate-distortion cost among the plurality of prediction modes as the second prediction mode for the first portion. Hereinafter, the prediction mode of the second prediction for the first portion can be the prediction mode having the minimum rate-distortion cost among the plurality of prediction modes. The prediction direction of the second prediction for the first portion can be a prediction direction of the prediction mode of the second prediction for the first portion.

[0399] At step 1350, the prediction unit can generate a second prediction signal for the second portion by performing the second prediction on the second portion.

[0400] The second prediction signal for the second portion can represent a second prediction block for the second portion.

[0401] The second prediction for the second portion can be intra-prediction.

[0402] The prediction unit can perform the second prediction in each of a plurality of prediction modes in order to find a best prediction mode to encode the second portion. In other words, step 1340 can be performed in each of the plurality of prediction modes.

[0403] The plurality of prediction modes can correspond to different prediction directions.

[0404] The prediction unit can generate a second prediction error for the second portion based on the second portion and the second prediction signal.

[0405] The second prediction error for the second portion can represent a second residual block for the second portion.

[0406] The second residual block for the second portion can represent a difference (residual) between the second portion and a second prediction block for the second portion. That is, the prediction unit can generate the second prediction error for the second portion by subtracting the second prediction block for the second portion from the second portion, wherein the second prediction block for the second portion is represented by the second prediction signal for the second portion.

[0407] The prediction unit can calculate a rate-distortion cost of the second prediction for the second portion using the second prediction error for the second portion.

[0408] The prediction unit can store the calculated second prediction error for the second portion and / or the calculated rate-distortion cost of the second prediction for the second portion in the memory 1030, the storage 1040, or the buffer.

[0409] The prediction unit can perform the second prediction in each of a plurality of prediction modes in order to find a best prediction mode of the second prediction for the second portion to encode the second portion. The prediction unit can calculate a plurality of rate-distortion costs of the plurality of prediction modes using a plurality of second prediction errors of the plurality of prediction modes. The prediction unit can store a minimum rate-distortion cost among the calculated plurality of rate-distortion costs as a minimum second rate-distortion cost RDcost_2 of the second portion. For example, RDcost_2 can be a rate-distortion cost of a mode having a minimum rate-distortion cost in the secondary intra prediction of the second portion.

[0410] The prediction unit can store the RDcost_2 of the second portion and the second prediction error of the second portion corresponding to the RDcost_2 of the second portion.

[0411] The prediction unit can determine a second prediction mode of the second prediction for the second portion at step 1355. The second prediction mode of the second portion can indicate a prediction direction of the second prediction for the second portion.

[0412] The prediction unit can determine a prediction mode having a minimum rate-distortion cost among the plurality of prediction modes as the second prediction mode of the second portion. Hereinafter, the prediction mode of the second prediction for the second portion can be the prediction mode having the minimum rate-distortion cost among the plurality of prediction modes. The prediction direction of the second prediction for the second portion can be a prediction direction of the prediction mode of the second prediction for the second portion.

[0413] The prediction unit can determine whether to encode the current block using the second prediction based on a predefined condition.

[0414] The prediction unit can determine whether to encode the current block using the second prediction based on a predefined condition.

[0415] For example, the prediction unit can determine to use the second prediction when the rate-distortion cost is further reduced by using the second prediction. The prediction unit can determine not to use the second prediction when the rate-distortion cost is not further reduced even though the second prediction is used.

[0416] For example, the prediction unit can determine to use the second prediction when the minimum rate-distortion cost calculated when the second prediction is used is less than the minimum rate-distortion cost calculated when the second prediction is not used.

[0417] In an embodiment, the prediction unit can determine whether to use the second prediction based on a comparison result between the rate-distortion cost of the prediction mode of the first prediction, the rate-distortion cost of the prediction mode of the second prediction for the first part, and the rate-distortion cost of the prediction mode of the second prediction for the second part.

[0418] In an embodiment, the prediction unit can select one part to be encoded from between the first part and the second part. The prediction unit can select one part to be encoded from between the first part and the second part based on a comparison result between the rate-distortion cost of the second prediction mode for the first part and the rate-distortion cost of the second prediction mode for the second part.

[0419] For example, the prediction unit can select one part having a higher rate-distortion cost from between the first part and the second part. When the rate-distortion cost of the second prediction mode for the first part is higher than the rate-distortion cost of the second prediction mode for the second part, the prediction unit can select the first part. When the rate-distortion cost of the second prediction mode for the first part is lower than the rate-distortion cost of the second prediction mode for the second part, the prediction unit can select the second part.

[0420] For example, when the rate-distortion cost of the second prediction mode for the first part is the same as the rate-distortion cost of the second prediction mode for the second part, if the second prediction mode of the first part is different from the first prediction mode, the prediction unit can select the first part, and if the second prediction mode of the second part is different from the first prediction mode, the prediction unit can select the second part. In other words, the prediction unit can select one part from between the first part and the second part using the rate-distortion cost as a primary criterion and the prediction mode as a secondary criterion.

[0421] Hereinafter, the portion of the first and second portions selected by the prediction unit is referred to as a "selected portion". In addition, the "second prediction" indicates the second prediction for the selected portion among the second prediction for the first portion and the second prediction for the second portion. The portion of the first and second portions not selected by the prediction unit is referred to as a "remaining portion".

[0422] In an embodiment, the prediction unit can determine whether to use the second prediction based on the second prediction mode of the selected portion and the first prediction mode of the current block.

[0423] For example, when the second prediction mode of the selected portion is the same as the first prediction mode of the current block, the result obtained when the second prediction is used can be the same as the result obtained when the second prediction is not used. Thus, in this case, the effect obtained by using the second prediction can not exist. If the second prediction mode of the selected portion is the same as the first prediction mode of the current block, the prediction unit can determine not to use the second prediction for the selected portion.

[0424] In an embodiment, if the rate-distortion cost of the prediction for the current block is reduced by the second prediction for the selected portion, the prediction unit can determine to use the second prediction for the selected portion. If the rate-distortion cost of the prediction for the current block is not reduced by the second prediction for the selected portion, the prediction unit can determine not to use the second prediction for the selected portion.

[0425] In an example, when the rate-distortion cost of the second prediction for the selected portion is RDcost_SS, the rate-distortion cost of the first prediction for the remaining portion is RDcost_SNS, and the rate-distortion cost of the first prediction for the current block is RDcost, if the sum of RDcost_SS and RDcost_SNS is less than RDcost, the prediction unit can determine to use the second prediction for the selected portion. In addition, if the sum of RDcost_SS and RDcost_SNS is equal to or greater than RDcost, the prediction unit can determine not to use the second prediction for the selected portion.

[0426] In an example, if the rate-distortion cost of the second prediction for the selected portion is less than the rate-distortion cost of the first prediction for the selected portion, it is determined not to use the second prediction for the selected portion. In addition, if the rate-distortion cost of the second prediction for the selected portion is equal to or greater than the rate-distortion cost of the first prediction for the selected portion, it is determined not to use the second prediction for the selected portion.

[0427] If it is determined not to use the second prediction to encode the current block, step 1370 can be performed.

[0428] If it is determined to use the second prediction to encode the current block, step 1380 can be performed.

[0429] At step 1370, the prediction unit can perform a setting indicating that the second prediction is not to be used.

[0430] The prediction unit can set a value of the second prediction usage information such that the second prediction usage information indicates that the second prediction is not to be used. For example, the second prediction usage information can be an additional secondary intra prediction (ASIP) flag.

[0431] For example, when the value of the second prediction usage information is 0, the second prediction usage information can indicate that the second prediction is not to be used.

[0432] The prediction unit can set first prediction mode information for a prediction mode of the first prediction.

[0433] When step 1370 is performed, the residual signal of step 1120 can be a residual signal of the current block. The residual signal of the current block can be a first prediction error. In other words, when the second prediction is not performed on the current block, the first prediction error generated based on the first prediction can be used as the residual signal of the current block.

[0434] At step 1380, the prediction unit can perform a setting indicating that the second prediction is to be used.

[0435] In an embodiment, the prediction unit can set a value of the second prediction usage information such that the second prediction usage information indicates that the second prediction is to be used.

[0436] In an embodiment, when the value of the second prediction usage information is, for example, 1, the second prediction usage information can indicate that the second prediction is to be used.

[0437] The prediction unit can set a value of the selected portion information such that the selected portion information indicates a selected portion to which the second prediction is applied. For example, the selected portion information can be a selected portion flag (SSF).

[0438] For example, the prediction unit can set a value of the selected portion information such that the selected portion information indicates one of two portions generated by partitioning the current block. When the selected portion is portion S1 described above with reference to Figure 11 to FIG. 6, the prediction unit can set the value of the selected portion information to 0. When the selected portion is portion S2 described above with reference to Figure 11 to FIG. 6, the prediction unit can set the value of the selected portion information to 1.

[0439] The prediction unit can set first prediction mode information for a prediction mode of the first prediction. The prediction unit can set second prediction mode information for a prediction mode of the second prediction.

[0440] When step 1370 is performed, the residual signal of step 1120 can be a residual signal of the current block. The residual signal of the current block can be a signal corresponding to a difference between the current block and a prediction block. The prediction block can be a sum of a prediction block generated via the second prediction for the selected portion and a prediction block generated via the first prediction for the remaining portion.

[0441] In other words, when the second prediction is performed for the current block, a prediction error generated based on the first prediction and the second prediction can be used as the residual signal.

[0442] Alternatively, when step 1370 is performed, the residual signal of step 1120 can be a residual signal for the selected portion and a residual signal for the remaining portion. The residual signal for the selected portion can be a signal corresponding to a difference between the selected portion and a second prediction block generated via the second prediction for the selected portion. The residual signal for the remaining portion can be a signal corresponding to a difference between the remaining portion and a third prediction block generated via the first prediction for the remaining portion.

[0443] Figure 14 is a flowchart of a reconstructed block generation method according to an embodiment.

[0444] The above-described step 1160 can include the following steps 1410, 1420, and 1430. Figure 11

[0445] In step 1410, the reconstructed block generation unit can determine whether the second prediction has been used to encode the current block.

[0446] If it is determined that the second prediction has been used to encode the current block, step 1420 can be performed.

[0447] If it is determined that the second prediction has not been used to encode the current block, step 1430 can be performed.

[0448] In step 1420, the reconstructed block generation unit can add the second prediction signal for the selected portion to the reconstructed residual signal.

[0449] The second prediction signal can be a signal generated via the second prediction for the selected portion.

[0450] In step 1430, the reconstructed block generation unit can generate the reconstructed block by adding the first prediction signal for the current block or the remaining portion to the reconstructed residual signal.

[0451] In an embodiment, when the second prediction is not used, the reconstructed block generation unit can generate the reconstructed block by adding the first prediction signal for the current block to the reconstructed residual signal. The first prediction signal can be a signal generated via the first prediction for the current block.​

[0452] In an embodiment, when the second prediction is not used, the reconstruction block generation unit can generate a reconstruction block by adding the first prediction signal for the remaining portion to the reconstruction residual signal. The first prediction signal may be a signal generated via the first prediction for the remaining portion.

[0453] For example, when the second prediction is used, the signal indicating the reconstructed block can be the sum of the reconstructed residual signal, the second prediction signal for the selected portion, and the first prediction signal for the remaining portion. As described above with reference to steps 1420 and 1430, when the second prediction is used, the second prediction signal for the selected portion and the first prediction signal for the remaining portion can be added to the reconstructed residual signal. Alternatively, when the second prediction is used, the reconstructed block can be generated based on the reconstructed residual signal, the second prediction signal for the selected portion, and the first prediction signal for the remaining portion.

[0454] For example, when the second prediction is not used, the signal indicating the reconstructed block can be the sum of the reconstructed residual signal and the first prediction signal for the current block. Alternatively, when the second prediction is not used, the reconstructed block can be generated based on the reconstructed residual signal and the first prediction signal for the current block.

[0455] Figure 15 This is a configuration diagram of a decoding device according to an embodiment.

[0456] The decoding device 1500 can be a general-purpose computer system that performs the decoding.

[0457] like Figure 15 As shown, the decoding device 1500 may include at least one processor 1510, a memory 1530, a user interface (UI) input device 1550, a UI output device 1560, and a storage device 1540, all communicating with each other via a bus 1590. The decoding device 1500 may also include a communication unit 1520 connected to a network 1599. The processor 1510 may be a CPU or a semiconductor device for executing processing instructions stored in the memory 1530 or the storage device 1540. Each of the memory 1530 and the storage device 1540 may be any of a variety of volatile or non-volatile storage media. For example, the memory may include at least one of ROM 1531 and RAM 1532.

[0458] The processor 1510 may include an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, an intra-frame prediction unit 240, an inter-frame prediction unit 250, an adder 255, a filtering unit 260, and a reference frame buffer 270 of the decoding device 200.

[0459] The storage medium can store at least one module for an operation of the decoding apparatus 1500. The memory 1530 can be configured to store at least one module and allow the at least one module to be executed by the at least one processor 1510.

[0460] According to an embodiment, at least some of the entropy decoding unit 210, the inverse quantization unit 220, the inverse transform unit 230, the intra prediction unit 240, the inter prediction unit 250, the adder 255, the filtering unit 260, and the reference picture buffer 270 of the decoding apparatus 1500 can be program modules and can communicate with external devices or systems. The program modules can be included in the decoding apparatus 1500 in the form of operating systems, application modules, and other program modules.

[0461] The program modules can be physically stored in various types of well-known storage devices. Also, at least some of the program modules can be stored in a remote storage device capable of communicating with the decoding apparatus 1500.

[0462] The program modules can include, but are not limited to, routines, sub-routines, programs, objects, components, and data structures for performing functions or operations according to an embodiment or for implementing abstract data types according to an embodiment.

[0463] The program modules can be implemented using instructions or codes run by the processor 1510.

[0464] The communication related to the communication of data or information of the decoding apparatus 1500 can be performed by the communication unit 1520.

[0465] Figure 16 is a flowchart of a decoding method according to an embodiment.

[0466] The decoding method according to an embodiment can be performed by the decoding apparatus 200 or the decoding apparatus 1500.

[0467] In step 1610, the communication unit 1520 can receive a bitstream from the encoding apparatus 100 or the encoding apparatus 1000.

[0468] The bitstream can include information on an encoded residual signal, and can further include prediction-related information.

[0469] The information on the encoded residual signal can include quantized transform coefficients that have been entropy-encoded.

[0470] The prediction-related information can be entropy-encoded.

[0471] In step 1620, the entropy decoding unit 210 can generate quantized transform coefficients by performing entropy decoding on the bitstream. Also, the entropy decoding unit 210 can generate prediction-related information by performing entropy decoding on the bitstream.

[0472] In an example, the prediction-related information can comprise prediction scheme information indicating a scheme used for encoding the current block.

[0473] In an example, the prediction scheme information can indicate which one of intra prediction and inter prediction is used for encoding the current block. Alternatively, the prediction scheme information can indicate whether the current block has been encoded via intra prediction. Alternatively, the prediction scheme information can indicate whether the current block has been encoded via inter prediction.

[0474] In an example, the prediction-related information can comprise intra prediction mode information indicating a prediction mode of the intra prediction.

[0475] In an example, the prediction-related information can comprise second prediction usage information, wherein the second prediction usage information indicates whether the second prediction is to be used for encoding the current block.

[0476] In an example, the prediction-related information can comprise first prediction mode information indicating a prediction mode of the first prediction and second prediction mode information indicating a prediction mode of the second prediction.

[0477] In an example, the prediction-related information can comprise selected portion information indicating a selected portion to which the second prediction is to be applied, wherein the selected portion is one of two portions resulting from partitioning the current block.

[0478] In an example, the prediction-related information can comprise current block type information indicating a type of the current block, first prediction block type information indicating a type of the first prediction block, second prediction block type information indicating a type of the second prediction block, first reference block type information indicating a type of the first reference block, second reference block type information indicating a type of the second reference block, first reference sample type information indicating a type of the first reference sample, and second reference sample type information indicating a type of the second reference sample.

[0479] In an example, the prediction-related information can comprise first prediction region information indicating a region of the first prediction and / or second prediction region information indicating a region of the second prediction.

[0480] Further, the prediction-related information can comprise information for the prediction described in embodiments. The plurality of pieces of prediction-related information can be included in the bitstream according to the order described in embodiments or the order resulting from embodiments. The reconstructed residual signal generation unit can acquire the plurality of pieces of prediction-related information from the bitstream according to the order described in embodiments or the order resulting from embodiments.

[0481] In step 1630, the reconstructed residual signal generation unit can generate a reconstructed residual signal for the current block based on the quantized transform coefficients.

[0482] The reconstructed residual signal generating unit can include a dequantization unit 220 and an inverse transform unit 230.

[0483] Step 1630 can include step 1631 and step 1632.

[0484] In step 1631, the dequantization unit 220 can generate a reconstructed transform coefficient by performing dequantization on the quantized transform coefficient.

[0485] In step 1632, the inverse transform unit 230 can generate a reconstructed residual signal by performing inverse transform on the dequantized transform coefficient.

[0486] In steps 1610, 1720, and 1730, a reconstructed residual signal for the current block can be generated.

[0487] In step 1640, the reconstructed block generating unit can generate a reconstructed block based on the reconstructed residual signal, the second prediction, and the first prediction.

[0488] The reconstructed block generating unit can include an adder 225, an intra prediction unit 240, an inter prediction unit 250, a filter unit 260, and a reference picture buffer 270.

[0489] The reconstructed residual signal can be a reconstructed residual block.

[0490] In an example, the reconstructed block can be a sum of the reconstructed residual block and a prediction block. Optionally, the reconstructed block can be generated based on the sum of the reconstructed residual signal and the prediction block.

[0491] In an example, the prediction block can be a sum of the first prediction block and the second prediction block. Optionally, the prediction signal can be a sum of the first prediction signal and the second prediction signal. The second prediction signal can be a signal generated via the second prediction for the selected portion of the current block. The first prediction signal can be a signal generated via the first prediction for the current block or the remaining portion of the current block.

[0492] Optionally, the reconstructed block can be generated based on the sum of the reconstructed residual block and the prediction block.

[0493] For example, the reconstructed block can be a block generated based on the reconstructed residual signal, the first prediction block, and the second prediction block. The reconstructed block generating unit can generate a reconstructed first residual signal by adding the reconstructed residual signal and the second prediction signal. The reconstructed block generating unit can generate the reconstructed block by adding the reconstructed first residual signal and the first prediction signal.

[0494] Optionally, the reconstructed block generating unit can generate the reconstructed first residual block by adding the reconstructed residual block and the second prediction block. The reconstructed block generating unit can generate the reconstructed block by adding the reconstructed first residual block and the first prediction block.

[0495] In an embodiment, when the second prediction is not used, the second prediction signal can be a null signal, or the second prediction block can be a null block. The null block can be a block in which all pixels have a value of 0.

[0496] The reconstructed block generating unit can generate the reconstructed block by performing inter prediction or intra prediction.

[0497] In an embodiment, the first prediction and the second prediction can be different types of prediction.

[0498] In an embodiment, the first prediction and the second prediction can be the same type of prediction. For example, the first prediction and the second prediction can both be intra prediction. When the first prediction is intra prediction, the second prediction can also be set to intra prediction.

[0499] In an embodiment, a prediction direction of the first prediction and a prediction direction of the second prediction can be the same as each other. The prediction direction of the second prediction can be set to the same prediction direction as the first prediction.

[0500] For example, in an embodiment, the first prediction and the second prediction can both be inter prediction.

[0501] In an embodiment, a block targeted by the first prediction and a block targeted by the second prediction can be different from each other. Here, what is represented by the expression "a block targeted by a prediction" can be different. Here, the expression "a block targeted by a prediction" can mean a block from which a prediction block will be generated via "prediction".

[0502] For example, a type of the block targeted by the first prediction and a type of the block targeted by the second prediction can be different from each other. The type of the block can include an original block, a luma block, a chroma block, a depth block, a residual block, etc.

[0503] For example, the block targeted by the first prediction can be a reconstructed block.

[0504] A reference block can be used for prediction. In an embodiment, a first reference block used for the first prediction and a second reference block used for the second prediction can be different from each other. The reference block can be different in terms of a type and / or a location of the reference block.

[0505] In an embodiment, a position of a first reference block for the first prediction and a position of a second reference block for the second prediction can be different from each other. Here, the position of the first reference block can be a position relative to a position of a block that is a target of the first prediction. The position of the second reference block can be a position relative to a position of a block that is a target of the second prediction.

[0506] In an embodiment, the first reference block for the first prediction can include a plurality of reference blocks. The second reference block for the second prediction can include a plurality of reference blocks. At least some of the plurality of first reference blocks for the first prediction and the plurality of second reference blocks for the second prediction can be different from each other.

[0507] The position of at least one of the plurality of first reference blocks for the first prediction and the plurality of second reference blocks for the second prediction can be included only in one of the positions of the plurality of first reference blocks and the positions of the plurality of second reference blocks.

[0508] In an embodiment, a type of the first reference block for the first prediction and a type of the second reference block for the second prediction can be different from each other. The type of the block can include a reconstructed block, a reconstructed luma block, a reconstructed chroma block, a reconstructed depth block, a reconstructed first residual block, and a reconstructed second residual block.

[0509] For example, the first reference block for the first prediction can be a reconstructed block. The second reference block for the second prediction can be a reconstructed first residual block. The first reference sample for the first prediction can be a pixel in the reconstructed block. The second reference sample for the second prediction can be a pixel in the reconstructed first residual block.

[0510] For example, the first reference block for the first prediction can be a neighboring reconstructed block adjacent to the current block. The second reference block for the second prediction can be a reconstructed first residual block adjacent to the current block.

[0511] The neighboring reconstructed residual block adjacent to the current block can be obtained by adding the second predicted block of the neighboring reconstructed block to the reconstructed residual block for the neighboring reconstructed block. Alternatively, the neighboring reconstructed residual block adjacent to the current block can be a difference between the neighboring reconstructed block and the first predicted block of the neighboring reconstructed block.

[0512] For example, when the target of the first prediction is the current block, a neighboring reconstructed block of the current block can be used as the reference block in order to perform the prediction of the current block. When the target of the second prediction is the first residual block, a neighboring reconstructed residual block of the current block or the first residual block can be used as the second reference block in order to perform the prediction of the first residual block.

[0513] In an embodiment, the first predicted region and the second predicted region can be different from each other. Here, the "predicted region" can mean a region in which a prediction value is generated in a block that is a target of prediction. Alternatively, the "predicted region" can mean a region in which a prediction value generated via prediction is assigned in a prediction block corresponding to the block that is the target of prediction.

[0514] In an embodiment, the second prediction can be a prediction for a selected portion of the current block. The first prediction can be a prediction for the entire current block. Alternatively, the first prediction can be a prediction for a remaining portion of the current block except for the selected portion for the second prediction.

[0515] In an example, the second predicted region can be a selected portion of the current block. The first predicted region can be the entire current block. Alternatively, the first predicted region can be a remaining portion of the current block except for the selected portion for the second prediction.

[0516] In an example, the second predicted region can be a non-square portion of the current block. The first predicted region can be the entire current block. Alternatively, the first predicted region can be a remaining non-square region of the current block except for the non-square region for the second prediction.

[0517] In an example, the prediction value determined via the first prediction can be assigned only to pixels falling within the first predicted region in the block that is the target of the first prediction. The prediction value determined via the first prediction can not be assigned to pixels falling outside the first predicted region in the block that is the target of the first prediction. Alternatively, a predefined value can be assigned to pixels falling outside the first predicted region in the block that is the target of the first prediction. The predefined value can be, for example, 0.

[0518] In an example, the prediction value determined via the second prediction can be assigned only to pixels falling within the second predicted region in the block that is the target of the second prediction. The prediction value determined via the second prediction can not be assigned to pixels falling outside the second predicted region in the block that is the target of the second prediction. Alternatively, a predefined value can be assigned to pixels falling outside the second predicted region in the block that is the target of the second prediction. The predefined value can be, for example, 0.

[0519] In an embodiment, the first predicted region can be determined based on a type of the first prediction. For example, the first predicted region can be determined based on whether the first prediction is an inter prediction or not. Alternatively, the first predicted region can be determined based on whether the first prediction is an intra prediction or not. Alternatively, the first predicted region can be determined based on a prediction direction of the first prediction.

[0520] In an embodiment, the region of the second prediction can be determined based on the type of the second prediction. For example, the region of the second prediction can be determined based on whether the second prediction is an inter-frame prediction. Optionally, the region of the second prediction can be determined based on whether the second prediction is an intra-frame prediction. Optionally, the region of the second prediction can be determined based on the prediction direction of the second prediction.

[0521] Figure 17 This is a flowchart of a reconstruction block generation method according to an embodiment.

[0522] Reference above Figure 16 The described step 1640 may include the following steps 1710, 1710, 1730, 1740 and 1750.

[0523] A second prediction can be selectively performed based on predefined conditions.

[0524] In step 1710, the reconstruction block generation unit may determine whether to use the second prediction to generate reconstruction blocks.

[0525] The reconstruction block generation unit can determine whether to use a second prediction to generate reconstruction blocks based on predetermined conditions.

[0526] In an embodiment, the reconstruction block generation unit may determine whether to use a second prediction based on the prediction pattern of the first prediction.

[0527] For example, the reconstructed block generation unit can obtain first prediction mode information from the bitstream that indicates the prediction mode of the first prediction. When the prediction mode of the first prediction is a non-directional mode, the reconstructed block generation unit may not use the second prediction.

[0528] In an embodiment, after determining whether to use the second prediction using the prediction mode, the position of the current block, and / or the number of neighboring reconstructed blocks, the reconstructed block generation unit may determine whether to use the second prediction based on whether the second prediction has been used to encode the current block.

[0529] For example, the reconstructed block generation unit can obtain second prediction usage information from the bitstream. When the second prediction usage information indicates that the second prediction will be used, the reconstructed block generation unit can use the second prediction. When the second prediction usage information indicates that the second prediction will not be used, the reconstructed block generation unit can choose not to use the second prediction.

[0530] When the second prediction is to be used to encode the current block, step 1720 can be executed.

[0531] When the second prediction will not be used to encode the current block, step 1740 can be executed.

[0532] In step 1720, the reconstruction block generation unit can generate a second prediction signal by performing a second prediction.

[0533] The reconstructed block generating unit can generate the second prediction signal by performing the second prediction on the selected portion.

[0534] The second prediction can correspond to the second prediction for the selected portion in the process of encoding the current block described above with reference to Figure 11 and Figure 13 The second prediction signal can correspond to the second prediction for the selected portion described above with reference to Figure 11 and Figure 13 The second prediction signal can correspond to the second prediction for the selected portion described above with reference to

[0535] The second prediction signal can represent a second prediction block.

[0536] The first prediction and the second prediction can both be intra prediction, and a second prediction mode of the second prediction can be different from a first prediction mode of the first prediction. Alternatively, a prediction direction of the second prediction can be different from the second prediction direction.

[0537] The reference block for the first prediction and the reference block for the second prediction can be a reconstructed neighboring block adjacent to the current block.

[0538] In an embodiment, the selected portion on which the second prediction is performed can be one of two portions generated by partitioning the current block.

[0539] In an embodiment, each of the two portions can have a non-square shape. The selected portion can have a non-square shape.

[0540] The selected portion on which the second prediction is performed can be determined based on a prediction direction of a prediction mode of the first prediction.

[0541] In an embodiment, according to the scheme described above with reference to Figure 12 the partitioning of the current block can be performed along the prediction direction. The two portions can be determined based on a straight line passing through a center of the current block in the prediction direction of the first prediction. Each of the two portions can be one of two regions generated by partitioning the current block along the straight line passing through the center of the current block in the prediction direction of the first prediction.

[0542] In an embodiment, the two portions generated by the partitioning can have equal sizes. Alternatively, the two portions can have the same number of pixels.

[0543] In an embodiment, each of the two portions generated by the partitioning can have a non-square shape.

[0544] In an embodiment, a selected portion of the two portions to which the second prediction is to be applied can be selected based on selected portion information. The reconstruction block generating unit can obtain the selected portion information from the bitstream. The selected portion can be selected according to the selected portion information indicating one of the two portions. The portion of the two portions not indicated by the selected portion information can be the remaining portion.

[0545] For example, a value of the selected portion information can indicate one of the two portions to which the second prediction is to be applied. When the value of the selected portion information is 0, the selected portion can be the portion described above with reference to S1. Figure 11 When the value of the selected portion information is 1, the selected portion can be the portion described above with reference to S2. Figure 11

[0546] At step 1730, the reconstruction block generating unit can add the second prediction signal for the selected portion to the reconstructed residual signal.

[0547] The second prediction signal can be a signal generated via the second prediction for the selected portion.

[0548] At step 1740, the reconstruction block generating unit can generate a first prediction signal for the current block or the remaining portion of the current block.

[0549] The reconstruction block generating unit can generate the first prediction signal by performing the first prediction on the current block or the remaining portion.

[0550] The first prediction signal can represent a first prediction block.

[0551] In the first prediction, reconstructed neighboring blocks of the current block can be used as reference blocks. In addition, forms in the reconstructed neighboring blocks of the current block can be used as reference samples.

[0552] In an embodiment, when the second prediction is not used, the first prediction signal for the current block can be generated by performing the first prediction on the current block. The first prediction signal can be a signal generated via the first prediction of the current block. When the second prediction is not used for decoding the current block, the first prediction can be a prediction of the entire current block.

[0553] In an embodiment, when the second prediction is not used, the first prediction signal for the remaining portion is generated by performing the first prediction on the remaining portion. The first prediction signal can be a signal generated via the first prediction for the remaining portion. When the second prediction is used for decoding the current block, the first prediction can be a prediction for the remaining portion of the current block other than the selected portion used for the second prediction.

[0554] ​At step 1750, the reconstructed block generating unit can generate the reconstructed block by adding the first prediction signal for the current block or the remaining portion to the reconstructed residual signal.

[0555] In an embodiment, when the second prediction is not used, the reconstructed block generating unit can generate the reconstructed block by adding the first prediction signal for the current block to the reconstructed residual signal. The first prediction signal can be a signal generated via the first prediction for the current block.

[0556] In an embodiment, when the second prediction is not used, the reconstructed block generating unit can generate the reconstructed block by adding the first prediction signal for the remaining portion to the reconstructed residual signal. The first prediction signal can be a signal generated via the first prediction for the remaining portion.

[0557] According to the above-described steps 1710, 1720, 1730, 1740 and 1750, when the second prediction is used, the signal representing the reconstructed block can be a sum of the reconstructed residual signal, the second prediction signal for the selected portion, and the first prediction signal for the remaining portion. As described above with reference to steps 1730 and 1750, when the second prediction is used, the second prediction signal for the selected portion and the first prediction signal for the remaining portion can be added to the reconstructed residual signal. Alternatively, when the second prediction is used, the reconstructed block can be generated based on the reconstructed residual signal, the second prediction signal for the selected portion, and the first prediction signal for the remaining portion.

[0558] According to the above-described steps 1710, 1720, 1730, 1740 and 1750, when the second prediction is not used, the signal representing the reconstructed block can be a sum of the reconstructed residual signal and the first prediction signal for the current block. Alternatively, when the second prediction is not used, the reconstructed block can be generated based on the reconstructed residual signal and the first prediction signal for the current block.

[0559] The reconstructed block can be used as a reference block for decoding other blocks.

[0560] According to the above-described embodiments, when the second prediction is used, the selected portion to which the first prediction is applied and the remaining portion to which the second prediction is applied can be separated.

[0561] In an embodiment, when the second prediction is used, the first prediction can be applied to the entire current block. In this case, the reconstructed block for the selected portion to which the second prediction is applied can be generated based on a sum of the reconstructed reference signal, the second prediction signal generated via the second prediction, and the first prediction signal generated via the first prediction. Further, the reconstructed block for the remaining portion to which the second prediction is not applied can be generated based on a sum of the reconstructed residual block and the first prediction signal generated via the first prediction.

[0562] In this case, the second prediction can be a prediction of the residual. The second prediction can be a prediction of a first residual signal, where the first residual signal is a difference between the current block and the first prediction signal. The reference block for the second prediction can be the reconstructed residual block, and the reference pixels for the second prediction can be the pixels in the reconstructed residual block. In other words, a second residual signal, which is a difference between the first residual signal and a second prediction signal, can be generated via the second prediction of the first residual signal, and the coding information of the current block can be generated using the second residual signal.

[0563] Optionally, in this case, the reconstructed block for the selected portion to which the second prediction is applied can be a weighted sum of the reconstructed residual block, the second prediction signal, and the first prediction signal. The prediction-related information can include a first weight for the reconstructed residual signal, a second weight for the second prediction signal, and a third weight for the first prediction signal. It can be considered that not using the second prediction means that the second weight for the second prediction signal is set to 0. Optionally, it can be considered that for the remaining portion to which the second prediction is not applied, the second weight for the second prediction is set to 0.

[0564] The above-described description of the encoding of the current block can also be applied to the decoding of the current block. Repetitive description is omitted. In addition, the above-described description of the decoding of the current block can also be applied to the encoding of the current block. Repetitive description will be omitted.

[0565] In the above-described embodiments, although the methods have been described based on flowcharts as a series of steps or units, the present application is not limited to the order of the steps, and some steps can be performed in an order different from the order of the steps that have been described or simultaneously with other steps. In addition, those skilled in the art will understand that the steps shown in the flowcharts are not exclusive, and other steps can also be included, or one or more steps in the flowcharts can be deleted without departing from the scope of the present application.

[0566] The embodiments of the present application described above can be implemented as programs capable of being executed by various computer devices, and can be recorded on computer-readable storage media. The computer-readable storage media can include program instructions, data files, and data structures, alone or in combination. The program instructions recorded on the storage media can be designed or configured specifically for the present application, or can be known or available to those skilled in the computer software field. Examples of the computer storage media can include all types of hardware devices specially configured to record and operate program instructions, such as magnetic media (such as a hard disk, a floppy disk, and a magnetic tape), optical media (such as a compact disc (CD)-ROM and a digital versatile disc (DVD)), and magneto-optical media (such as a floptical disk, ROM, RAM, and flash memory). Examples of the program instructions include machine code created by a compiler, and high-level language code executable by a computer using an interpreter. The hardware devices can be configured to operate as one or more software modules to perform the operations of the present application, and vice versa.

[0567] As described above, although the present application has been described based on specific details such as detailed components and a limited number of embodiments and drawings, the specific details are provided only for easy understanding of the present application, the present application is not limited to the embodiments, and those skilled in the art will practice various changes and modifications according to the above description.

[0568] Therefore, it should be understood that the spirit of the present embodiments is not limited to the above-described embodiments, and the appended claims and their equivalents and modifications thereof fall within the scope of the present application.

Claims

1. A video decoding method, comprising: Perform the first prediction on the current block to generate the first prediction block; Perform a second prediction on the current block to generate a second prediction block; Reconstructed blocks are generated based on the first and second prediction blocks. The first prediction is inter-frame prediction. The second prediction is intra-frame prediction. Obtain the second prediction usage information from the bitstream. The second prediction uses information to indicate whether intra-frame prediction of the second prediction has been performed. After determining whether the inter-frame prediction of the first prediction has been performed, it is then determined whether the intra-frame prediction of the second prediction has been performed. The reconstruction block is generated based on a weighted sum of the first and second prediction blocks, assuming that intra-frame prediction of the second prediction is performed.

2. The video decoding method as described in claim 1, wherein, The second prediction is used only if the prediction pattern of the first prediction is a predefined pattern.

3. The video decoding method as described in claim 1, wherein, The first prediction is the prediction whose value is applied to the first part of the current block. The second prediction is the prediction whose value is applied to the second part of the current block.

4. The video decoding method as described in claim 1, wherein, If it is determined that the second prediction will not be used, the first prediction is performed for the entire current block. If it is determined that a second prediction will be used, the second prediction will be performed on a portion of the current block.

5. The video decoding method as described in claim 1, wherein, The first reference block of the first prediction reference is the reconstructed brightness block. The second reference block, which is the second prediction reference, is the reconstructed chroma block.

6. A video encoding method, comprising: Perform the first prediction on the current block to generate the first prediction block; Perform a second prediction on the current block to generate a second prediction block; Reconstructed blocks are generated based on the first and second prediction blocks. The first prediction is inter-frame prediction. The second prediction is intra-frame prediction. After determining whether the inter-frame prediction of the first prediction has been performed, it is then determined whether the intra-frame prediction of the second prediction has been performed. Generate a bitstream that includes information used in the second prediction. The second prediction uses information to indicate whether intra-frame prediction of the second prediction has been performed. The reconstruction block is generated based on a weighted sum of the first and second prediction blocks, assuming that intra-frame prediction of the second prediction is performed.

7. The video encoding method as described in claim 6, wherein, The second prediction is used only if the prediction pattern of the first prediction is a predefined pattern.

8. The video encoding method as described in claim 6, wherein, The first prediction is the prediction whose value is applied to the first part of the current block. The second prediction is the prediction whose value is applied to the second part of the current block.

9. The video encoding method as described in claim 6, wherein, If it is determined that the second prediction will not be used, the first prediction is performed for the entire current block. If it is determined that a second prediction will be used, the second prediction will be performed on a portion of the current block.

10. The video encoding method as described in claim 6, wherein, The first reference block of the first prediction reference is the reconstructed brightness block. The second reference block, which is the second prediction reference, is the reconstructed chroma block.

11. A computer-readable recording medium for storing a bitstream generated by a computer program, said computer program, when executed by a processor, causing a video encoding device to perform the following steps: Based on the prediction pattern, perform the first prediction for the current block to generate the first prediction block; Based on the prediction mode, a second prediction is performed on the current block to generate a second prediction block; and Generate a bitstream that includes prediction pattern information and second prediction usage information; in, The prediction pattern information indicates that the prediction pattern is used for the current block. The first prediction is inter-frame prediction. The second prediction is intra-frame prediction. After determining whether the inter-frame prediction of the first prediction has been performed, it is then determined whether the intra-frame prediction of the second prediction has been performed. The second prediction uses information to indicate whether intra-frame prediction of the second prediction has been performed. The reconstruction block used for the current block is generated based on a weighted sum of the first and second prediction blocks.

12. A computer-readable recording medium configured to store a bit stream generated by a computer program, wherein, When the computer program is executed by the processor, it causes the video decoding device to perform the following steps: Determine the prediction model based on prediction model information; Based on the prediction mode, a first prediction is performed on the current block to generate a first prediction block; Perform a second prediction on the current block to produce a second prediction block; Reconstructed blocks are generated based on the first and second prediction blocks. in, The first prediction is an inter-frame prediction performed on the entire current block. The second prediction is intra-frame prediction. After determining whether the inter-frame prediction of the first prediction has been performed, it is then determined whether the intra-frame prediction of the second prediction has been performed. The bitstream includes second prediction usage information. The second prediction uses information to indicate whether intra-frame prediction of the second prediction has been performed. The reconstruction block is generated based on a weighted sum of the first and second prediction blocks, assuming that intra-frame prediction of the second prediction is performed.

13. The computer-readable recording medium of claim 12, wherein, The second prediction is used only if the prediction pattern of the first prediction is a predefined pattern.

14. The computer-readable recording medium of claim 12, wherein, The first prediction is the prediction whose value is applied to the first part of the current block. The second prediction is the prediction whose value is applied to the second part of the current block.

15. The computer-readable recording medium of claim 12, wherein, Determine whether the second prediction is applied to the current block. If it is determined that the second prediction will not be used, the first prediction is performed for the entire current block. If it is determined that a second prediction will be used, the second prediction will be performed on a portion of the current block.

16. The computer-readable recording medium of claim 12, wherein, The first reference block of the first prediction reference is the reconstructed brightness block. The second reference block, which is the second prediction reference, is the reconstructed chroma block.

17. A method for transmitting a bit stream, the method comprising: Send bit stream, The bitstream includes prediction mode information and second prediction usage information for the current block. The prediction mode information is used to determine the prediction mode for the current block. The prediction mode indicates that a first prediction for the current block is performed to generate a first prediction block. The prediction mode indicates that a second prediction for the current block is performed to generate a second prediction block. The first and second prediction blocks are used to generate the reconstruction blocks. The first prediction is inter-frame prediction. The second prediction is intra-frame prediction. Specifically, after determining that the inter-frame prediction of the first prediction has been performed, it is then determined whether the intra-frame prediction of the second prediction has been performed. The second prediction uses information to indicate whether intra-frame prediction of the second prediction has been performed. The reconstruction block is generated based on a weighted sum of the first and second prediction blocks, assuming that intra-frame prediction of the second prediction is performed.

18. A video decoding apparatus, comprising: A prediction unit is used to perform a prediction on the current block to generate a prediction block; The reconstruction block generation unit is used to generate reconstruction blocks based on the prediction blocks. The predictions include a first prediction and a second prediction. The first prediction signal generated by the first prediction is applied to the first part of the current block. The second prediction signal generated by the second prediction is applied to the second part of the current block. Each of the first and second predictions is an inter-frame prediction. The reconstructed block is generated based on a weighted sum of a first value of a first prediction signal and a second value of a second prediction signal.

19. A video encoding apparatus, comprising: A prediction unit is used to perform a prediction on the current block to generate a prediction block; The reconstruction block generation unit is used to generate reconstruction blocks based on the prediction blocks. The predictions include a first prediction and a second prediction. The first prediction signal generated by the first prediction is applied to the first part of the current block. The second prediction signal generated by the second prediction is applied to the second part of the current block. Each of the first and second predictions is an inter-frame prediction. The reconstructed block is generated based on a weighted sum of a first value of a first prediction signal and a second value of a second prediction signal.

20. A computer-readable recording medium for storing a bitstream generated by a computer program, said computer program, when executed by a processor, causing a video encoding device to perform the following steps: Based on the prediction pattern, perform a prediction on the current block to generate a prediction block; and Generate a bitstream that includes prediction pattern information; in, The prediction pattern information indicates that the prediction pattern is used for the current block. The predictions include a first prediction and a second prediction. The first prediction signal generated by the first prediction is applied to the first part of the current block. The second prediction signal generated by the second prediction is applied to the second part of the current block. Each of the first and second predictions is an inter-frame prediction. The reconstructed block for the current block is generated based on a weighted sum of a first value using a first prediction signal and a second value using a second prediction signal.

21. A computer-readable recording medium configured to store a bit stream generated by a computer program, wherein, When the computer program is executed by the processor, it causes the video decoding device to perform the following steps: The prediction pattern for the current block is determined based on the prediction pattern information. A prediction block is generated by performing the prediction; A reconstruction block is generated based on the predicted block. The current block refers to a specific area within the current frame. The predictions include a first prediction and a second prediction. The first prediction signal generated by the first prediction is applied to the first part of the current block. The second prediction signal generated by the second prediction is applied to the second part of the current block. Each of the first and second predictions is an inter-frame prediction. The first and second regions are determined using the values ​​of the indicated angles. Pixels on the line determined by the angle are included in the first part region and also included in the second part region. The reconstructed block is generated based on a weighted sum of a first value of a first prediction signal and a second value of a second prediction signal.

22. A method for transmitting a bit stream, the method comprising: Send bit stream, The bitstream includes prediction mode information for the current block. The prediction mode information is information used to determine the prediction mode for the current block. The prediction mode indicates that the prediction is performed to generate a prediction block. The prediction block is used to generate the reconstruction block. The predictions include a first prediction and a second prediction. The first prediction signal generated by the first prediction is applied to the first part of the current block. The second prediction signal generated by the second prediction is applied to the second part of the current block. Each of the first and second predictions is an inter-frame prediction. The reconstructed block is generated based on a weighted sum of a first value of a first prediction signal and a second value of a second prediction signal.

Citation Information

Patent Citations

  • Method and apparatus for encoding and decoding of video

    CN1984340A

  • Method for encoding image information and method for decoding same

    US20140133559A1

  • High efficiency video coding (HEVC) intra prediction encoding apparatus and method

    US20150063452A1

  • Method and device for processing multi-view video signal

    WO2016003209A1