Image Encoding / Decoding Method, Apparatus, and Recording Medium Storing a Bitstream

The method improves image encoding/decoding efficiency by using function-based in-picture prediction, addressing the challenges of high-resolution image compression and reducing associated costs.

JP7682984B2Active Publication Date: 2025-05-26RES & BUSINESS FOUNDATION SUNG KYUNG KWAN UNIV
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023211230
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2016-11-29
Filing Date
2023-12-14
Publication Date
2025-05-26
Estimated Expiration
2037-11-27

AI Technical Summary

Technical Problem

Existing image encoding/decoding technologies face challenges in achieving high compression efficiency for high-resolution and high-quality images, leading to increased transmission and storage costs.

Method used

The proposed method includes an image decoding process that decodes a prediction mode index, determines if it indicates function-based in-picture prediction, derives variables for generating a function, generates the function, and performs in-picture prediction using the generated function.

Benefits of technology

This approach enhances compression efficiency and enables effective in-picture prediction using a function, thereby reducing the costs associated with transmitting and storing high-resolution image data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007682984000010
    Figure 0007682984000010
  • Figure 0007682984000011
    Figure 0007682984000011
  • Figure 0007682984000012
    Figure 0007682984000012
Patent Text Reader

Abstract

To provide an image encoding / decoding method and device with an improved compression efficiency.SOLUTION: An image decoding method according to the present invention includes the steps of: decoding a prediction mode index; determining whether the prediction mode index indicates function-based intra-screen prediction; when the prediction mode index indicates the function-based intra-screen prediction, inducing a variable for generating a function; and performing intra-screen prediction by using the generated function.SELECTED DRAWING: Figure 7
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an image encoding / decoding method, apparatus, and recording medium storing a bit stream. Specifically, the present invention relates to an image encoding / decoding method that performs in-picture prediction using a function, an apparatus, and a recording medium storing a bit stream generated by the image encoding method or apparatus of the present invention.

Background Art

[0002] Recently, the demand for high-resolution and high-quality images, such as HD (High Definition) images and UHD (Ultra High Definition) images, has been increasing in various application fields. As the image data becomes higher in resolution and quality, the data volume relatively increases compared to conventional image data. Therefore, when transmitting image data using media such as conventional wired / wireless broadband lines or storing it using conventional storage media, the transmission cost and storage cost will increase. In order to solve the problems arising from such high-resolution and high-quality image data, a high-efficiency image encoding / decoding technology for images with higher resolution and image quality is required.

[0003] As image compression technologies, an inter-picture prediction technology that predicts pixel values included in the current picture from pictures before or after the current picture, and an intra-picture prediction technology that predicts pixel values included in the current picture using pixel information within the current picture are currently available. There are also conversion and quantization technologies for compressing the energy of the residual signal, and techniques that assign short codes to frequently occurring values. ​​​​​​​Entropy coding techniques that assign symbols and assign long codes to low-frequency values, etc. There are various techniques such as , and these image compression techniques can be used to effectively compress image data for transmission or storage.

Summary of the Invention

Problems to be Solved by the Invention

[0004] An object of the present invention is to provide an image encoding / decoding method and apparatus with improved compression efficiency and.

[0005] Another object of the present invention is to provide an image encoding / decoding method and apparatus that perform in-screen prediction using a function and.

[0006] Another object of the present invention is to provide a recording medium storing a bitstream generated by the image encoding method or apparatus of the present invention.

Means for Solving the Problems

[0007] The image decoding method according to the present invention includes a step of decoding a prediction mode index, a step of determining whether the prediction mode index indicates function-based in-screen prediction , a step of deriving variables for generating a function when the prediction mode index indicates function-based in-screen prediction, a step of generating a function based on the derived variables , and a step of performing in-screen prediction using the generated function. and can include.

Effects of the Invention

Effects of the Invention

[0008] According to the present invention, it is possible to provide an image encoding / decoding method and apparatus with improved compression efficiency and.

[0009] In addition, according to the present invention, an image encoding / decoding method and apparatus for performing in-screen prediction using a function can be provided.

[0010] In addition, according to the present invention, a recording medium storing a bitstream generated by the image encoding method or apparatus of the present invention can be provided.

Brief Description of the Drawings

[0011]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Embodiments for Carrying Out the Invention

[0012] Since the present invention can be modified in various ways and can have various embodiments, , specific embodiments are illustrated in the drawings and will be described in detail in the detailed description. However, this does not limit the present invention to specific embodiments, and it should be understood that it includes all modifications, equivalents or alternatives included in the spirit and technical scope of the present invention. In the drawings, similar reference numerals refer to the same or similar functions across various aspects. The shapes and sizes of elements in the drawings may be exaggerated for clearer explanation. The detailed description of the exemplary embodiments hereinafter refers to the accompanying drawings showing specific embodiments as examples. These embodiments are described in sufficient detail for those skilled in the art to implement the embodiments. It should be understood that the various embodiments are different from each other but do not necessarily exclude each other. For example, the specific shapes, structures and characteristics described herein can be realized in various embodiments without departing from the spirit and scope of the present invention in relation to one embodiment. Also, it should be understood that the position or arrangement of individual components within each disclosed embodiment can be changed without departing from the spirit and scope of the embodiment. Therefore, the detailed description hereinafter should not be taken in a limiting sense, and the scope of the exemplary embodiments, if appropriately described, is limited only by all scopes equivalent to those claimed by their claims and the appended claims. In the present invention, terms such as "first", "second", etc. can be used to describe various components, but these components should not be limited by the above terms. These terms are only used for the purpose of distinguishing one component from another. For example, unless departing from the scope of the rights of the present invention, the first component can be named the second component, and similarly, the second component can be named the first component. In the present invention, the terms "first", "second", etc. can be used to describe various components, but these components should not be limited by the above terms. These terms are only used for the purpose of distinguishing one component from another. For example, unless departing from the scope of the rights of the present invention, the first component can be named the second component, and similarly, the second component can be named the first component. In the present invention, the terms "first", "second", etc. can be used to describe various components, but these components should not be limited by the above terms. These terms are only used for the purpose of distinguishing one component from another. For example, unless departing from the scope of the rights of the present invention, the first component can be named the second component, and similarly, the second component can be named the first component. In the present invention, the terms "first", "second", etc. can be used to describe various components, but these components should not be limited by the above terms. These terms are only used for the purpose of distinguishing one component from another. For example, unless departing from the scope of the rights of the present invention, the first component can be named the second component, and similarly, the second component can be named the first component. In the present invention, the terms "first", "second", etc. can be used to describe various components, but these components should not be limited by the above terms. These terms are only used for the purpose of distinguishing one component from another. For example, unless departing from the scope of the rights of the present invention, the first component can be named the second component, and similarly, the second component can be named the first component. In the present invention, the terms "first", "second", etc. can be used to describe various components, but these components should not be limited by the above terms. These terms are only used for the purpose of distinguishing one component from another. For example, unless departing from the scope of the rights of the present invention, the first component can be named the second component, and similarly, the second component

[0013] In the present invention, the terms "first", "second", etc. can be used to describe various components, but these components should not be limited by the above terms. These terms are only used for the purpose of distinguishing one component from another. For example, unless departing from the scope of the rights of the present invention, the first component can be named the second component, and similarly, the second component should not be limited by the above terms. These terms are only used for the purpose of distinguishing one component from another. For example, unless departing from the scope of the rights of the present invention, the first component can be named the second component, and similarly, the second component should not be limited by the above terms. These terms are only used for the purpose of distinguishing one component from another. For example, unless departing from the scope of the rights of the present invention, the first component can be named the second component, and similarly, the second component can be named the first component. The element can also be named the first component. The term "and / or" includes a combination of a plurality of related descriptions or any one of a plurality of related description items.

[0014] When a certain component of the present invention is "connected" or "connected" to another component it may be directly connected or connected to the other component, but it should be understood that another component may be interposed therebetween. In this regard in contrast, when a certain component is "directly connected" or "directly connected" to another component it should be understood that no other component is interposed therebetween.

[0015] The components shown in the embodiments of the present invention are independently illustrated to show different characteristic functions from each other and it does not mean that each component consists of separate hardware or one software configuration unit. That is, each component is included by listing each component for convenience of explanation, and at least two of the components are combined to form one component, or one component can be divided into a plurality of components to perform functions, and such integrated embodiments and separated embodiments of each component are also included in the scope of the present invention as long as they do not depart from the essence of the present invention.

[0016] The terms used in the present invention are merely used to explain specific embodiments and do not limit the present invention. Singular expressions include plural expressions unless the context clearly indicates a different meaning. In the present invention, terms such as "including" or "having" mean that the features, numbers, steps, operations, components, parts described in the specification or combinations thereof exist ​ which specifies to do, and does not preclude in advance the presence or possibility of addition of one or more other features, numbers, steps, operations, components, parts or combinations thereof. That is to say, in the present invention, the content describing a specific configuration as "including" does not exclude configurations other than the corresponding configuration, but means that additional configurations may be included in the implementation of the present invention or within the scope of the technical concept of the present invention.

[0017] Some components of the present invention are not essential components that perform essential functions in the present invention, and may be merely optional components for improving performance. The present invention can be implemented by including only the essential components that are indispensable for realizing the essence of the present invention, excluding the components used merely for improving performance, and a structure including only the essential components, excluding the optional components used merely for improving performance, is also included in the scope of the rights of the present invention.

[0018] Hereinafter, embodiments of the present invention will be specifically described with reference to the drawings. When it is determined that a specific description of related known configurations or functions may obscure the gist of this specification, the detailed description thereof will be omitted, the same reference numerals will be used for the same components on the drawings, and duplicate descriptions of the same components will be omitted.

[0019] Also, hereinafter, an image may indicate one picture constituting a video, or may indicate the video itself. For example, "encoding and / or decoding of an image" can mean "encoding and / or decoding of a video", and "an image constituting a video" ​​​​​​​​It can also mean "encoding and / or decoding of one of the images". Here, a pixel can have the same meaning as an image. A pixel can have the same meaning as an image.

[0020] Term Explanation Encoder: It means a device that performs encoding. Decoder: It means a device that performs decoding.

[0021] Block: It is an M×N array of samples. Here, M and N mean positive integer values, and a block generally can mean a two-dimensional sample array. A block can mean a unit. Currently, a block can be an encoding target block that is the target of encoding during encoding, a decoding target block that is the target of decoding during decoding. It can also be at least one of an encoding block, a prediction block, a residual block, and a transform block.

[0022] Sample: It is the basic unit that constitutes a block. It can be represented by values from 0 to 2 -1 according to the bit depth (B d ). In the present invention, a sample can be used with the same meaning as a pixel or a picture element. Bd

[0023] Unit: It means the unit of image encoding and decoding. In image encoding and decoding, a unit can be a region obtained by dividing one image. Also, when one image is divided into subdivided units for encoding or decoding, the divided unit can be meant. In image encoding and decoding, for each unit, A predefined process can be performed. One unit can be further divided into sub-units that are smaller in size than the unit. According to the function, the unit can mean a block, a macroblock, a coding tree unit, a coding tree block, a coding unit, a coding block, a prediction unit, a prediction block, a residual unit, a residual block, a transform unit, a transform block, etc. In addition, in order to indicate the unit separately from the block, it can mean a luminance (Luma) component block, a corresponding chroma component block, and syntax elements for each block. The unit can have various sizes and shapes. In particular, the shape of the unit can include geometric figures that can be two-dimensionally represented, such as not only rectangles but also squares, trapezoids, triangles, pentagons, etc. Also, the unit information can include at least one of the type of the unit indicating a coding unit, a prediction unit, a residual unit, a transform unit, etc., the size of the unit, the depth of the unit, the coding and decoding order of the unit, etc. Coding Tree Unit: One luminance component (Y) Two chroma component (Cb, Cr) coding tree blocks related to the coding tree block

[0024] ​ It is composed of. Also, it means including the block and the syntax elements for each block It can also be done. Each coding tree unit can be divided using one or more division methods such as a quad tree or a binary tree in order to constitute sub-units such as a coding unit, a prediction unit, and a transform unit etc. It can be used as a term for indicating a pixel block that becomes a processing unit in the decoding / encoding process of an image in the same way as the division of an input image etc. It can be used as a term for indicating a pixel block that becomes a processing unit in the decoding / encoding process of an image in the same way as the division of an input image etc. It can be used as a term for indicating a pixel block that becomes a processing unit in the decoding / encoding process of an image in the same way as the division of an input image etc. It can be used as a term for indicating a pixel block that becomes a processing unit in the decoding / encoding process of an image in the same way as the division of an input image

[0025] Coding Tree Block: It can be used as a term for indicating any one of a Y coding tree block, a Cb coding tree block, and a Cr coding tree block etc. It can be used as a term for indicating any one of a Y coding tree block, a Cb coding tree block, and a Cr coding tree block etc. It can be used as a term for indicating any one of a Y coding tree block, a Cb coding tree block, and a Cr coding tree block

[0026] Neighbor block: It means a block adjacent to the current block etc. The block adjacent to the current block can mean a block whose boundary is in contact with the current block, or a block located within a predetermined distance from the current block. The neighbor block can mean a block adjacent to the vertex of the current block. Here etc. The block adjacent to the vertex of the current block can mean a block adjacent horizontally and vertically to the current block, or a block adjacent vertically and horizontally to the current block. The neighbor block may also mean a restored neighbor block etc. The block adjacent to the vertex of the current block can mean a block adjacent horizontally and vertically to the current block, or a block adjacent vertically and horizontally to the current block. The neighbor block may also mean a restored neighbor block etc. The block adjacent to the vertex of the current block can mean a block adjacent horizontally and vertically to the current block, or a block adjacent vertically and horizontally to the current block. The neighbor block may also mean a restored neighbor block etc. The block adjacent to the vertex of the current block can mean a block adjacent horizontally and vertically to the current block, or a block adjacent vertically and horizontally to the current block. The neighbor block may also mean a restored neighbor block etc. The block adjacent to the vertex of the current block can mean a block adjacent horizontally and vertically to the current block, or a block adjacent vertically and horizontally to the current block. The neighbor block may also mean a restored neighbor block etc. The block adjacent to the vertex of the current block can mean a block adjacent horizontally and vertically to the current block, or a block adjacent vertically and horizontally to the current block. The neighbor block may also mean a restored neighbor block

[0027] Reconstructed Neighbor Block: It means a block that is spatially / temporally adjacent to the periphery of the current block etc. It means a block that is spatially / temporally adjacent to the periphery of the current block Refers to a peripheral block that has already been encoded or decoded. At this time, the restored peripheral block can mean a restored peripheral unit. The restored spatial peripheral block is a block within the current picture that has already been restored through encoding and / or decoding while being a block within the current picture. The restored temporal peripheral block can be a restored block at the same position as the current block of the current picture in the reference picture or its peripheral block .

[0028] Unit Depth: Refers to the degree to which a unit is divided. In a tree structure ( Tree Structure), it can be said that the root node has the shallowest depth and the leaf node has the deepest depth. Also, the level at which a unit exists when the unit is represented in a tree structure can mean the unit depth.

[0029] Bitstream: Refers to a sequence of bits containing encoded image information.

[0030] Parameter Set: Corresponds to the header information among the structures within the bitstream. At least one of the video parameter set, sequence parameter set, picture parameter set, and adaptation parameter set can be included in the parameter set. Also, the parameter set is a slice ( ​​​​​​​​​​It can also include a slice header and tile header information.

[0031] Parsing: Entropy decoding a bitstream to determine the values of syntax elements (Syntax Element), or it can mean entropy decoding itself.

[0032] Symbol: It can mean at least one of the syntax elements of the unit to be encoded / decoded, coding parameters, values of transform coefficients, etc. Also, a symbol can mean the object of entropy encoding or the result of entropy decoding. icient), etc.

[0033] Prediction Unit: It means the basic unit when performing predictions such as inter - picture prediction, intra - picture prediction, inter - picture compensation, intra - picture compensation, motion compensation, etc. One prediction unit may be divided into a plurality of smaller - sized partitions or sub - prediction units.

[0034] Prediction Unit Partition : It means the shape into which the prediction unit is divided. Transform Unit: It means the basic unit when performing residual signal encoding / decoding such as transformation, inverse transformation, quantization, inverse quantization, transform coefficient encoding / decoding. One transform unit can be divided into a plurality of smaller - sized transform units.

[0035]

[0035]

[0035] Scaling: It means the process of multiplying a factor to the transform coefficient level. A transform coefficient can be generated as a result of scaling the transform coefficient level. Scaling can also be called dequantization.

[0036] Quantization Parameter: It can mean a value used to generate a transform coefficient level for a transform coefficient in quantization. Or, it can also mean a value used to scale the transform coefficient level to generate a transform coefficient in inverse quantization. The quantization parameter can be a value mapped to the quantization step size.

[0037] Delta Quantization Parameter: It means the difference value between the predicted quantization parameter and the quantization parameter of the unit to be encoded / decoded.

[0038] Scan: It means a method of sorting the order of coefficients within a block or matrix. For example, sorting a two-dimensional array into a one-dimensional array is called a scan. Or, sorting a one-dimensional array into a two-dimensional array can also be called a scan or an inverse scan.

[0039] Transform Coefficient: It means the coefficient value generated after performing a transform in an encoder. In a decoder, it is one of entropy decoding and inverse quantization. It can also mean the coefficient value generated after performing at least one. The conversion coefficient or the residue The quantized level or the quantization transform coefficient level (trans form coefficient level) to which quantization is applied to the prediction signal can also be included in the meaning of the transform coefficient.

[0040] Quantized Level: It means the value generated by quantizing the transform coefficient or the residue signal in the encoder. Or it can also mean the value to be inverse-quantized before the decoder performs inverse quantization. Similarly, the quantization transform coefficient level, which is the result of transformation and quantization, can also be included in the meaning of the quantized level.

[0041] Non-zero Transform Coefficient : It means the transform coefficient whose value magnitude is not 0, or the transform coefficient level whose value magnitude is not 0.

[0042] Quantization Matrix: It means the matrix used in the quantization or inverse quantization process to improve the subjective or objective image quality of the image. The quantization matrix can also be called a scaling list.

[0043] Quantization Matrix Coefficient : It means each element in the quantization matrix. The quantization matrix coefficient can also be called a matrix coefficient Default Matrix: It means a predetermined quantization matrix defined in advance in the encoder and the decoder.

[0044] ​​​​​​Non-default Matrix: A quantization matrix that is not predefined in the symbolizer and decoder and is signaled by the user. It means a quantization matrix that is not predefined in the symbolizer and decoder and is signaled by the user.

[0045] FIG. 1 is a block diagram showing a configuration according to an embodiment of an encoding apparatus to which the present invention is applied. It is.

[0046] The encoding apparatus 100 can be an encoder, a video encoding apparatus, or an image encoding apparatus. The video can include one or more images. The encoding apparatus 100 can sequentially encode one or more images. It can be encoded.

[0047] Referring to FIG. 1, the encoding apparatus 100 includes a motion prediction unit 111, a motion compensation unit 112, an intra prediction unit 120, a switch 115, a subtractor 125, a conversion unit 130, a quantization unit 140, an entropy encoding unit 150, an inverse quantization unit 160, an inverse conversion unit 170, an adder 175, a filter unit 180, and a reference picture buffer 190. It can include. It can include an entropy encoding unit 150, an inverse quantization unit 160, an inverse conversion unit 170, an adder 175, a filter unit 180, and a reference picture buffer 190. It can include.

[0048] The encoding apparatus 100 can perform encoding on the input image in the intra mode and / or the inter mode. Also, the encoding apparatus 100 can generate a bitstream through encoding of the input image and output the generated bitstream. The generated bitstream can be stored in a computer-readable recording medium or streamed via a wired / wireless transmission medium. When the intra mode is used as the prediction mode, the switch 115 can be switched to intra, and when the inter mode is used as the prediction mode, the switch 115 can be switched to inter. Here, when the intra mode is used as the prediction mode, the switch 115 can be switched to intra, and when the inter mode is used as the prediction mode, the switch 115 can be switched to inter. It can generate a bitstream and output the generated bitstream. The generated bitstream can be stored in a computer-readable recording medium or streamed via a wired / wireless transmission medium. When the intra mode is used as the prediction mode, the switch 115 can be switched to intra, and when the inter mode is used as the prediction mode, the switch 115 can be switched to inter. When the intra mode is used as the prediction mode, the switch 115 can be switched to intra, and when the inter mode is used as the prediction mode, the switch 115 can be switched to inter. When the intra mode is used as the prediction mode, the switch 115 can be switched to intra, and when the inter mode is used as the prediction mode, the switch 115 can be switched to inter. When the inter mode is used as the prediction mode, the switch 115 can be switched to inter. Here, when the intra mode is used as the prediction mode, the switch 115 can be switched to intra, and when the inter mode is used as the prediction mode, the switch 115 can be switched to inter. Intra mode can mean an intra-picture prediction mode, and Inter mode can mean an inter-picture prediction mode. The encoding apparatus 100 can generate a prediction block for an input block of an input image. Also, after the prediction block is generated, the encoding apparatus 100 can encode the difference (residual) between the input block and the prediction block. The input image may also be referred to as the current image that is currently being encoded. The input block may also be referred to as the current block or the block to be encoded that is currently being encoded. When the prediction mode is Intra mode, the Intra prediction unit 120 can use the pixel values of the blocks that have already been encoded / decoded on the sides of the current block as reference pixels. The Intra prediction unit 120 can perform spatial prediction using the reference pixels, and can generate prediction samples for the input block through the spatial prediction. Here, Intra prediction can mean intra-picture prediction.

[0049] When the prediction mode is Inter mode, the motion prediction unit 111 can search for the region in the reference image that best matches the input block during the motion prediction process, and can derive a motion vector using the searched region. The reference image can be stored in the reference picture buffer 190. The motion compensation unit 112 can generate a prediction block by performing motion compensation using the motion vector. Here, Inter prediction can mean inter-picture prediction or motion compensation. The Intra prediction unit 120 can perform spatial prediction using the reference pixels, and can generate prediction samples for the input block through the spatial prediction. Here, Intra prediction can mean intra-picture prediction. Here, Intra prediction can mean intra-picture prediction. When the prediction mode is Intra mode, the Intra prediction unit 120 can use the pixel values of the blocks that have already been encoded / decoded on the sides of the current block as reference pixels.

[0050] When the prediction mode is Inter mode, the motion prediction unit 111 can search for the region in the reference image that best matches the input block during the motion prediction process, and can derive a motion vector using the searched region. The reference image can be stored in the reference picture buffer 190. The motion compensation unit 112 can generate a prediction block by performing motion compensation using the motion vector. Here, Inter prediction can mean inter-picture prediction or motion compensation.

[0051] The motion compensation unit 112 can generate a prediction block by performing motion compensation using the motion vector. Here, Inter prediction can mean inter-picture prediction or motion compensation. Here, Inter prediction can mean inter-picture prediction or motion compensation.

[0052] The motion prediction unit 111 and the motion compensation unit 112 can generate a prediction block by applying an interpolation filter to a partial region in a reference image when the value of the motion vector does not have an integer value. For performing inter-picture prediction or motion compensation, based on the coding unit, it is possible to determine which method among the skip mode, merge mode, advanced motion vector prediction (AMVP) mode, and current picture reference mode is used for the motion prediction and motion compensation method of the prediction unit included in the corresponding coding unit, and inter-picture prediction or motion compensation can be performed according to each mode. In the case, an interpolation filter can be applied to a partial region in the reference image to generate a prediction block. For inter-picture prediction or motion compensation, based on the coding unit, it is possible to determine which method among the skip mode, merge mode, advanced motion vector prediction (AMVP) mode, and current picture reference mode is used for the motion prediction and motion compensation method of the prediction unit included in the corresponding coding unit, and inter-picture prediction or motion compensation can be performed according to each mode. For performing inter-picture prediction or motion compensation, based on the coding unit, it is possible to determine which method among the skip mode, merge mode, advanced motion vector prediction (AMVP) mode, and current picture reference mode is used for the motion prediction and motion compensation method of the prediction unit included in the corresponding coding unit, and inter-picture prediction or motion compensation can be performed according to each mode. The motion prediction and motion compensation method of the prediction unit included in the corresponding coding unit can be determined as one of the skip mode, merge mode, advanced motion vector prediction (AMVP) mode, and current picture reference mode, and inter-picture prediction or motion compensation can be performed according to each mode. (Merge mode), advanced motion vector prediction (AMVP) mode, and current picture reference mode, and inter-picture prediction or motion compensation can be performed according to each mode. n Vector Prediction, AMVP) mode, and current picture reference mode, and inter-picture prediction or motion compensation can be performed according to each mode. It can be determined which method among the skip mode, merge mode, advanced motion vector prediction (AMVP) mode, and current picture reference mode is used for the motion prediction and motion compensation method of the prediction unit included in the corresponding coding unit, and inter-picture prediction or motion compensation can be performed according to each mode. It can be determined which method among the skip mode, merge mode, advanced motion vector prediction (AMVP) mode, and current picture reference mode is used for the motion prediction and motion compensation method of the prediction unit included in the corresponding coding unit, and inter-picture prediction or motion compensation can be performed according to each mode.

[0053] The subtractor 125 can generate a residual block using the difference between the input block and the prediction block. The residual block can also be referred to as a residual signal. The residual signal can mean the difference between the original signal and the prediction signal. Or, the residual signal can be a signal generated by transforming, quantizing, or transforming and quantizing the difference between the original signal and the prediction signal. The residual block can be a residual signal in block units. The residual block can also be referred to as a residual signal. The residual signal can mean the difference between the original signal and the prediction signal. Or, the residual signal can be a signal generated by transforming, quantizing, or transforming and quantizing the difference between the original signal and the prediction signal. The residual block can be a residual signal in block units. The residual block can be a residual signal in block units.

[0054] The transform unit 130 can perform a transform on the residual block to generate a transform coefficient and output the transform coefficient. Here, the transform coefficient is obtained by performing a transform on the residual block. (transform coefficient) and output the transform coefficient. The transform coefficient can be obtained by performing a transform on the residual block. It can be the generated coefficient value. When the transform skip mode is applied the conversion unit 130 can also omit the conversion for the residual block.

[0055] By applying quantization to the conversion coefficient or the residual signal, a quantized level can be generated. Hereinafter, in the embodiments, the quantized level may also be referred to as a conversion coefficient.

[0056] The quantization unit 140 can generate a quantized level by quantizing the conversion coefficient or the residual signal based on quantization parameters and can output the quantized level. At this time, in the quantization unit 140, the conversion coefficient can be quantized using a quantization matrix.

[0057] The entropy encoding unit 150 can perform entropy encoding based on probability distribution on the value calculated by the quantization unit 140, or the coding parameter value calculated in the encoding process etc., to generate a bitstream and can output the bitstream. The entropy encoding unit 150 can perform entropy encoding on information regarding pixels of the image and information for decoding the image. For example, the information for decoding the image can include syntax elements etc.

[0058] When entropy encoding is applied, a small number of bits are assigned to symbols having a high occurrence probability and a large number of bits are assigned to symbols having a low occurrence probability. ​​​​​​By being assigned and the symbol being expressed, bits for the symbol to be encoded The size of the column can be reduced. The entropy encoding unit 150 performs entropy encoding using methods such as exponential Golomb, CAVLC (Context- Adaptive Variable Length Coding), CABAC (C ontext-Adaptive Binary Arithmetic Coding ). For example, the entropy encoding unit 150 can perform entropy encoding using a variable length coding (VLC) table. Also, the entropy encoding unit 1 50 can derive a binarization method for the target symbol and a probability model for the target symbol / bin and then perform arithmetic coding using the derived binarization method, probability model, and context model. After that, the entropy encoding unit 150 can perform arithmetic coding using the derived binarization method, probability model, and context model. The entropy encoding unit 150 can change two-dimensional block shape coefficients into a one-dimensional vector through a transform coefficient scanning method in order to encode the transform coefficient levels. Coding parameters can include not only information (flags, indexes, etc.) that is encoded by an encoder like a syntax element and signaled to a decoder, but also information induced in the encoding or decoding process, and can be used to encode or

[0059] decode an image. The entropy encoding unit 150 can change two-dimensional block shape coefficients into a one-dimensional vector through a transform coefficient scanning method in order to encode the transform coefficient levels. The entropy encoding unit 150 can change two-dimensional block shape coefficients into a one-dimensional vector through a transform coefficient scanning method in order to encode the transform coefficient levels.

[0060] Coding parameters can include not only information (flags, indexes, etc.) that is encoded by an encoder like a syntax element and signaled to a decoder, but also information induced in the encoding or decoding process, and can be used to encode or decode an image. decode an image. It can mean the information necessary when decrypting. For example, unit / block size, unit / block depth, unit / block division information, unit / block division structure, whether it is a quadtree division or not, whether it is a binary tree division or not, the direction of the binary tree division (horizontal or vertical), the form of the binary tree division (symmetric division or asymmetric division), in-screen prediction mode / direction, reference sample filtering method, prediction block filtering method, prediction block filter taps, prediction block filter coefficients, inter-screen prediction mode, motion information, motion vectors, reference image index, inter-screen prediction direction, inter-screen prediction indicator, reference image list, reference image, motion vector prediction candidates, motion vector candidate list, whether to use the merge mode, merge candidates, merge candidate list, whether to use the skip mode, type of interpolation filter, interpolation filter taps, interpolation filter coefficients, size of motion vectors, accuracy of motion vector representation, type of transformation, transformation size, information on whether to use the first-order transformation, information on whether to use the second-order transformation, first-order transformation index, second-order transformation index, information on whether there is a residual prediction signal, coded block pattern (Co ded Block Pattern), coded block flag (Coded Bloc k Flag), quantization parameter, quantization matrix, whether to apply the in-screen loop filter, in-screen loop filter coefficients, in-screen loop filter taps, shape / form of the in-screen loop filter, whether to apply the deblocking filter, deblocking filter coefficients, deblocking filter taps, strength of the deblocking filter, shape / form of the deblocking filter, whether to apply the adaptive sample offset, adaptive sample offset value, adaptive sample offset category, type of adaptive sample offset, in-loop adaptive f ilter, etc. ilter, etc. Whether or not to apply the filter, the adaptive loop filter coefficient, the adaptive loop filter tap, the shape / form of the adaptive loop filter, the binarization / inverse binarization method, the context model determination method, the context model update method, whether to execute the regular mode, whether to execute the bypass mode, the context bin, the bypass bin, the conversion coefficient, the conversion coefficient level, the scanning method of the conversion coefficient level, the image display / output order, the slice identification information, the slice type, the slice division information, the tile identification information, the tile type, the tile division information, the picture type, the bit depth, at least one value or combination form of the information for the luminance signal or the chrominance

[0061] signal may be included in the encoding parameters. Here, "signaling a flag or an index" means that in the encoder, the corresponding flag or index is entropy encoded and included in the bitstream, and in the decoder, it means that the flag or index is entropy decoded from the bitstream.

[0062] When the encoding device 100 performs encoding using inter prediction, the encoded current image can be used as a reference image for other images to be processed later. Therefore, the encoding device 10 0 can further restore or decode the encoded current image, and can save the restored or decoded image as a reference image.

[0063] ​​The quantized levels can be dequantized by the dequantization unit 160 and can be inverse-transformed by the inverse transform unit 170. The dequantized and / or inverse-transformed coefficients can be combined with the prediction block via the adder 175. By combining the dequantized and / or inverse-transformed coefficients with the prediction block, a reconstructed block can be generated. Here, the dequantized and / or inverse-transformed coefficients mean the coefficients for which at least one of dequantization and inverse transformation has been performed, and can mean the restored residual block. The reconstructed block can pass through the filter unit 180. The filter unit 180 can apply at least one of a deblocking filter, a Sample Adaptive Offset (SAO), an Adaptive Loop Filter (ALF), etc. to the reconstructed block or the reconstructed image. The filter unit 180 is also referred to as an in-loop filter. The deblocking filter can remove the block distortion that occurs at the boundary between blocks. To determine whether to perform the deblocking filter, it can be determined whether to apply the deblocking filter to the current block based on the pixels included in several columns or rows included in the block. When applying the deblocking filter to the block, different filters can be applied according to the required deblocking filtering strength.

[0064]

[0065] To compensate for the encoding error using the sample adaptive offset, an appropriate offset value can be added to the pixel value. The sample adaptive offset can correct the offset from the original image in pixel units for the image with blocking. After dividing the pixels included in the image into a certain number of regions, a method of determining the region to which the offset should be applied and applying the offset to the corresponding region, or a method of applying the offset in consideration of the edge information of each pixel can be used. The adaptive loop filter can perform filtering based on the value obtained by comparing the restored image and the original image. After dividing the pixels included in the image into predetermined groups, the filter to be applied to the group can be determined and differential filtering can be performed for each group. Information related to whether

[0066] to apply the adaptive loop filter can be signaled for each coding unit (CU), and the shape and filter coefficients of the adaptive loop filter to be applied can be different according to each block.

[0067] The decoding device 200 can be a decoder, a video decoding device, or an

[0068] image decoding device. Referring to FIG. 2, the decoding device 200 includes an entropy decoding unit 210, an inverse quantization unit 220, an inverse It can include a luma section 260 and a reference picture buffer 270.

[0069] The decoding device 200 receives the bit stream output from the encoding device 100. It can also receive the bit stream stored in a computer-readable recording medium, or receive the bit stream streamed via a wired / wireless transmission medium. The decoding device 200 can perform decoding on the bit stream in intra mode or inter mode. Also, the decoding device 200 can generate a restored image or a decoded image through decoding, and output the restored image or the decoded image. When the prediction mode used for decoding is intra mode, the switch can be switched to intra. When the prediction mode used for decoding is inter mode, the switch can be switched to inter.

[0070]

[0071] The decoding device 200 decodes the input bit stream and can obtain a reconstructed residual block, and can generate a prediction block. When the reconstructed residual block and the prediction block are obtained, the decoding device 200 can generate a restored block to be decoded by adding the reconstructed residual block and the prediction block. The block to be decoded may also be referred to as the current block.

[0072] The entropy decoding unit 210 is based on the probability distribution for the bit stream. By performing entropy decoding, symbols can be generated. The generated symbols can include symbols in a quantized level form. Here, the entropy decoding method can be the reverse process of the entropy encoding method described above.

[0073] The entropy decoding unit 210 can change the one-dimensional vector form coefficients into a two-dimensional block form by a scanning method in order to decode the transform coefficient levels. It can be done.

[0074] The quantized levels can be inverse quantized by the inverse quantization unit 220 and inverse transformed by the inverse transform unit 230. The quantized levels are the result of inverse quantization and / or inverse transformation and can be generated as the restored residual blocks. At this time, the inverse quantization unit 220 can apply a quantization matrix to the quantized levels. It can be done.

[0075] When the intra mode is used, the intra prediction unit 240 can perform spatial prediction using the pixel values of the already decoded blocks around the block to be decoded, thereby generating a prediction block. It can be done.

[0076] When the inter mode is used, the motion compensation unit 250 can perform motion compensation using the motion vector and the reference picture stored in the reference picture buffer 270, thereby generating a prediction block. When the value of the motion vector does not have an integer value, the motion compensation unit 250 can apply an interpolation filter to a partial region in the reference picture to generate a prediction block. In order to perform motion compensation, based on the encoding unit, the corresponding encoding unit It can be done. ​​​​​​​The motion compensation method of the prediction unit included in the knit can be determined as any of the skip mode, merge mode, A MVP mode, and the current picture reference mode, and motion compensation can be performed according to each mode. The adder 225 can add the restored residual block and the prediction block to generate a restored block. The filter unit 260 can apply at least one of a deblocking filter, a sample adaptive

[0077] offset, and an adaptive loop filter to the restored block or the restored image. The filter unit 260 can output the restored image. The restored block or the restored image can be stored in the reference picture buffer 270 and used for inter prediction. The restored block or the restored image can be stored in the reference picture buffer 270 and used for inter prediction. The filter unit 260 can output the restored image. The restored block or the restored image can be stored in the reference picture buffer 270 and used for inter prediction. It can be used.

[0078] FIG. 3 is a schematic diagram showing a division structure of an image when encoding and decoding an image. FIG. 3 schematically shows an embodiment in which one unit is divided into a plurality of sub-units. In order to efficiently divide an image, in encoding and decoding, a coding unit (CU) can be used. The coding unit can be used as a basic unit for image encoding / decoding. Also, when encoding / decoding an image, the coding unit can be used in units divided into an intra mode and an inter mode. The coding unit can be a basic unit used for processes such as prediction,

[0079] transformation, quantization, inverse transformation, inverse quantization, or encoding / decoding of transform coefficients. Referring to FIG. 3, the image 300 is a largest coding unit (Largest Codin Referring to FIG. 3, the image 300 is a largest coding unit (Largest Coding Unit; CU). Referring to FIG. 3, the image 300 is a largest coding unit (Largest Coding Unit; CU). Referring to FIG. 3, the image 300 is a largest coding unit (Largest Coding Unit; CU). Referring to FIG. 3, the image 300 is a largest coding unit (Largest Coding Unit; CU).

[0080] Referring to FIG. 3, the image 300 is a largest coding unit (Largest Coding Unit; CU). g Unit; LCU) units, and the segmentation structure is determined in LCU units. Here where LCU can be used in the same sense as Coding Tree Unit; CTU. The segmentation of a unit can mean the segmentation of the block corresponding to the unit. The block segmentation information may include information regarding the depth of the unit. The depth information can indicate the number of times and / or the degree to which the unit is segmented. One unit can be hierarchically segmented with depth information based on a tree structure. Each segmented sub-unit can have depth information. The depth information is information indicating the size of the CU and can be saved for each CU.

[0081] The segmentation structure can mean the distribution of Coding Units; CUs within the LCU310. Such a distribution can be determined by whether to divide one CU into a plurality (two or more positive integers including 4, 8, 16, etc.) of CUs. The horizontal and vertical widths of the CUs generated by the segmentation are each half of the horizontal width and half of the vertical width of the CU before segmentation, or can have sizes smaller than the horizontal width and smaller than the vertical width of the CU before segmentation depending on the number of segments. A CU can be recursively divided into a plurality of CUs. The division of the CU can be recursively performed up to a predefined depth or a predefined size. For example, the depth of the LCU is 0, and the depth of the Smallest Coding Unit; SCU can be a predefined maximum depth. Here, the LCU is a coding unit having the size of the largest It can be a coding unit having the size of the smallest coding unit. The division starts from the LCU310, and every time the horizontal width and / or vertical height of the CU decreases due to the division, the depth of the CU increases by 1. each time.

[0082] Also, the information on whether the CU is divided or not can be expressed through the division information of the CU. The division information can be 1-bit information. All CUs except the SCU can include the division information. For example, if the value of the division information is the first value, the CU may not be divided, and if the value of the division information is the second value, the CU may be divided.

[0083] Referring to FIG. 3, the LCU with a depth of 0 can be a 64×64 block. 0 can be the minimum depth. The SCU with a depth of 3 can be an 8×8 block. 3 can be the maximum depth. The CUs of 32×32 blocks and 16×16 blocks can be represented by a depth of 1 and a depth of 2 respectively.

[0084] For example, when one coding unit is divided into four coding units, the horizontal width and vertical height of the four divided coding units can each have half the size compared to the horizontal width and vertical height of the coding unit before division. As an example, when a coding unit of 32×32 size is divided into four coding units, the four divided coding units can each have a size of 16×16. When one coding unit is divided into four coding units, it can be said that the coding unit is divided in a quad-tree shape.

[0085] For example, when one coding unit is divided into two coding units, the divided ​​​​​​​​​​​​The horizontal or vertical width of the two encoding units can be half the size of the horizontal or vertical width of the encoding unit before splitting. As an example, when a 32×32-sized encoding unit is vertically split into two encoding units, the two split encoding units can each have a size of 16×32. When one encoding unit is split into two encoding units, it can be said that the encoding unit is split in a binary-tree shape. The LCU320 in Figure 3 is an example of an LCU to which both quadtree splitting and binary-tree splitting are applied. Figure 4 is a diagram for explaining an embodiment of the in-picture prediction process. The in-picture prediction mode can be a non-directional mode or a directional mode. The non-directional mode can be a DC mode or a Planar mode. The angular mode can be a prediction mode with a specific direction or angle. The in-picture prediction mode can be represented by at least one of a mode number, a mode value, a mode count, and a mode angle. The number of in-picture prediction modes can be one or more M including the non-directional and directional modes. The number of in-picture prediction modes can be fixed at N regardless of the block size. Or, the number of in-picture prediction modes can vary according to the block size and / or the type of color component. For example, as the block size increases, the number of in-picture prediction modes can increase. Or, the number of in-picture prediction modes for the luma component block may be more than the number of in-picture prediction modes for the chrominance component block. When one encoding unit is split into two encoding units, the encoding unit can be said to be split in a binary-tree shape. The LCU320 in Figure 3 is an example of an LCU to which both quadtree splitting and binary-tree splitting are applied.

[0086] Figure 4 is a diagram for explaining an embodiment of the in-picture prediction process.

[0087] The in-picture prediction mode can be a non-directional mode or a directional mode. The non-directional mode can be a DC mode or a Planar mode. The angular mode can be a prediction mode with a specific direction or angle. The in-picture prediction mode can be represented by at least one of a mode number, a mode value, a mode count, and a mode angle. The number of in-picture prediction modes can be one or more M including the non-directional and directional modes. The number of in-picture prediction modes can be fixed at N regardless of the block size.

[0088] Or, the number of in-picture prediction modes can vary according to the block size and / or the type of color component. For example, as the block size increases, the number of in-picture prediction modes can increase. Or, the number of in-picture prediction modes for the luma component block may be more than the number of in-picture prediction modes for the chrominance component block. ​​​​

[0089] To predict the current block intra-screen, the samples in the reconstructed neighboring blocks are , a step of checking whether the current block can be used as a reference sample is performed. If there is a sample that cannot be used as a reference sample for the current block, At least one sample value of the samples included in the neighboring blocks is copied. - and / or interpolated values ​​for samples not available as reference samples After replacing it with a value, it can be used as a reference sample for the current block.

[0090] In the case of intra prediction, at least one of an intra prediction mode and a size of a current block is Apply a filter to at least one of the reference sample or the predicted sample based on the It is possible.

[0091] In planner mode, when generating a prediction block for the current block, the prediction target size is Depending on the position of the sample in the predicted block, the upper and left reference samples of the current sample, The weighted sum of the upper right and lower left reference samples of the current block is used to predict the In DC mode, the sample value of the current block can be generated. When generating a lock, use the average value of the upper and left reference samples of the current block. In directional mode, you can also move to the top, left, top right, and / or bottom left of the current block. can generate a prediction block using the lower left reference sample. For generation, real unit interpolation can also be performed.

[0092] The intra-frame prediction mode of the current block is the same as that of the blocks surrounding the current block. It is possible to perform entropy encoding / decoding by prediction from the prediction mode. If the intra-prediction mode of the current block and the surrounding blocks is the same, information indicating that the intra-prediction mode of the current block and the surrounding blocks is the same can be signaled using predetermined flag information. In addition, among the intra-prediction modes of a plurality of surrounding blocks, indicator information for the intra-prediction mode that is the same as the intra-prediction mode of the current block can be signaled. When the intra-prediction modes of the current block and the surrounding blocks are different from each other, by performing entropy encoding / decoding based on the intra-prediction mode of the surrounding blocks, the intra-prediction mode information of the current block can be entropy encoded / decoded. Hereinafter, a method and an apparatus that can perform intra-prediction based on a function to reduce the error of intra-prediction will be described. The intra-prediction used for image compression generally has a problem of generating a large prediction error and being inferior in compression effect compared to inter-prediction. In particular, the farther the target sample of intra-prediction is from the reference sample used for prediction, the larger the prediction error becomes. In the case of intra-prediction, since prediction samples are generated by using extrapolation from the outline reference sample of the block to be predicted based on the direction of the selected intra-prediction mode, if the samples within the prediction target block have properties different from the direction of the selected prediction mode, the accuracy of the prediction may decrease.

[0093] The functions that can be used in the present invention include a Normal function, a Laplacian function, a Cosine function, a Beta function, an Exp function, etc. In particular, the farther the target sample of intra-prediction is from the reference sample used for prediction, the larger the prediction error becomes. In the case of intra-prediction, since prediction samples are generated by using extrapolation from the outline reference sample of the block to be predicted based on the direction of the selected intra-prediction mode, if the samples within the prediction target block have properties different from the direction of the selected prediction mode, the accuracy of the prediction may decrease. In the case of intra-prediction, since prediction samples are generated by using extrapolation from the outline reference sample of the block to be predicted based on the direction of the selected intra-prediction mode, if the samples within the prediction target block have properties different from the direction of the selected prediction mode, the accuracy of the prediction may decrease.

[0094] The functions that can be used in the present invention include a Normal function, a Laplacian function, a Cosine function, a Beta function, an Exp function, etc. Exponential function, lognormal function, gamma function, Pareto function, uniform function, triangular - (Triangular) function, and logistic function, and at least one of them, and the type of the function is not limited thereto. Further, the function may be defined via the original image, or may be defined via a variable obtained using a reference sample. Alternatively, a function approximated using one or more reference samples may be defined.

[0095] According to the present invention, by using a predetermined function, a prediction sample for the current block can be generated. For example, the in-screen prediction according to the present invention can be performed using the normal function of Equation 1.

Equation

[0096] Equation 1 is a function of a one-variable normal distribution that can be generated using a reference sample. In Equation 1, x is the position information of the reference sample, a is the average value of the normal distribution function, which is the position information where the peak value of the normal distribution is located. b means the standard deviation value in the normal distribution, which is information indicating the degree of spread of the normal distribution. c means the amplitude of the normal distribution.

[0097] The one-variable normal distribution of Equation 1 is approximated by each reference sample, and the approximation process is as shown in Equations 3 to 6.

[0098] Equation 2 is an integral equation using the integration rearrangement of the normal distribution. ​This is possible by approximating the two integral terms of the integral equation with the recurrence formulas of Formula 3 and Formula 4 respectively. It can be done.

Number

[0099] When obtaining an equation in which the error is minimized based on the recurrence formulas of Formula 3 and Formula 4, A and B can be expressed as in Formula 5. It can be expressed as shown in Formula 5.

[0100]

Number

Number

Number

[0101] The operation of function-based intra prediction can be explained by dividing it into three cases. When these are defined as operation classification 1, operation classification 2, and operation classification 3 respectively, operation classification 1 is the case where only function-based intra prediction is used for intra prediction coding. The operation of operation classification 1 is as follows. There is.

[0102] The intra prediction unit 120 in FIG. 1 can generate one function or a plurality of functions to perform function-based prediction. At this time, the encoder can select any one of the plurality of available functions. As a method for selecting one function, the rate-distortion cost (rate-distortion cost) can be selected as the function that minimizes the cost. Variables necessary for defining functions can be determined according to the type of function. When determining the above variables, reference samples can be used. Alternatively, the image to be encoded can be used. Alternatively, all or a part of the area of an already encoded image can be used. When determining the above variables, reference samples can be used. Or, the image to be encoded can be used. Or, all or a part of the area of an already encoded image can be used. When determining the above variables, reference samples can be used. Or, the image to be encoded can be used. Or, all or a part of the area of an already encoded image can be used. can be done.

[0103] FIG. 5 shows an embodiment in which indexes are assigned to the modes used for intra prediction. is.

[0104] In order to indicate the prediction mode selected for intra prediction, the indexes shown in FIG. 5 can be used. At this time, the index indicating the selected prediction mode is encoded and / or transmitted through various stages for transmitting the syntax element of the bitstream. For example, the index is encoded and / or transmitted through various stages for transmitting the syntax element of the bitstream. For example, the index is encoded and / or transmitted through various stages for transmitting the syntax element of the bitstream. For example, the index is SPS (Sequence Parameter Set), VPS (Video Parameter Set), CU (Coding Unit), CTU (Coding Tree Unit), TU (Transform Unit), PU (Prediction Unit), Slice, GOP (Group Of Pictures) unit, etc., can be transmitted through at least one of the stages. The encoder can encode an index indicating the prediction mode selected for intra prediction and can encode variables for defining the function. The encoder can transmit the encoded information, and the decoder can receive and decode this. Variables for defining the function can be classified into two groups. Variables belonging to variable group 1 can be inherently grasped using reference samples already received inside the decoder or image data already received or already restored, even without the encoder transmitting them to the decoder. Therefore, when the decoder receives the index indicating the prediction mode, it can inherently estimate (derive) the variables belonging to variable group 1 and use them for intra prediction. Variables belonging to variable group 2 are characterized in that their values are transmitted by the encoder to the decoder. Or, depending on the implementation, after the decoder estimates (derives) the function indicated by the index with a predetermined accuracy, the function can be more accurately determined using the variable values belonging to variable group 2. In this case, when the decoder receives the index indicating the intra prediction mode, it can receive the variables belonging to variable group 2 and use them for intra prediction. It can be transmitted through at least one of the stages such as SPS (Sequence Parameter Set), VPS (Video Parameter Set), CU (Coding Unit), CTU (Coding Tree Unit), TU (Transform Unit), PU (Prediction Unit), Slice, GOP (Group Of Pictures) unit. The encoder can encode an index indicating the prediction mode selected for intra prediction and can encode variables for defining the function. The encoder can transmit the encoded information, and the decoder can receive and decode this. The encoder can encode an index indicating the prediction mode selected for intra prediction and can encode variables for defining the function. The encoder can transmit the encoded information, and the decoder can receive and decode this. The encoder can encode an index indicating the prediction mode selected for intra prediction and can encode variables for defining the function. The encoder can transmit the encoded information, and the decoder can receive and decode this.

[0105] Variables for defining the function can be classified into two groups. Variables belonging to variable group 1 can be inherently grasped using reference samples already received inside the decoder or image data already received or already restored, even without the encoder transmitting them to the decoder. Therefore, when the decoder receives the index indicating the prediction mode, it can inherently estimate (derive) the variables belonging to variable group 1 and use them for intra prediction. Variables belonging to variable group 1 can be inherently grasped using reference samples already received inside the decoder or image data already received or already restored, even without the encoder transmitting them to the decoder. Therefore, when the decoder receives the index indicating the prediction mode, it can inherently estimate (derive) the variables belonging to variable group 1 and use them for intra prediction. Variables belonging to variable group 1 can be inherently grasped using reference samples already received inside the decoder or image data already received or already restored, even without the encoder transmitting them to the decoder. Therefore, when the decoder receives the index indicating the prediction mode, it can inherently estimate (derive) the variables belonging to variable group 1 and use them for intra prediction.

[0106] Variables belonging to variable group 2 are characterized in that their values are transmitted by the encoder to the decoder. Or, depending on the implementation, after the decoder estimates (derives) the function indicated by the index with a predetermined accuracy, the function can be more accurately determined using the variable values belonging to variable group 2. In this case, when the decoder receives the index indicating the intra prediction mode, it can receive the variables belonging to variable group 2 and use them for intra prediction. Variables belonging to variable group 2 are characterized in that their values are transmitted by the encoder to the decoder. Or, depending on the implementation, after the decoder estimates (derives) the function indicated by the index with a predetermined accuracy, the function can be more accurately determined using the variable values belonging to variable group 2. In this case, when the decoder receives the index indicating the intra prediction mode, it can receive the variables belonging to variable group 2 and use them for intra prediction. It is possible.

[0107] In addition to function-based intra prediction, operation classification 2 can select any one of other intra prediction modes (for example, directionality prediction, DC and / or Planar prediction mode, etc.). Of course, in this case as well, the prediction mode that minimizes the rate-distortion cost can be selected. In the intra prediction unit 120 of FIG. 1, prediction modes such as DC, Planar, directionality prediction, etc. and function-based prediction modes compete together, and the mode that minimizes the rate-distortion cost can be selected. At this time, for the function-based prediction mode, only one function or a plurality of functions can be used. It is possible to select. Of course, in this case as well, the prediction mode that minimizes the rate-distortion cost can be selected. ortion cost) can be selected. In the intra prediction unit 120 of FIG. 1, prediction modes such as DC, Planar, directionality prediction, etc. and function-based prediction modes compete together, and the mode that minimizes the rate-distortion cost can be selected. At this time, for the function-based prediction mode, only one function or a plurality of functions can be used. prediction modes such as DC, Planar, directionality prediction, etc. and function-based prediction modes compete together, and the mode that minimizes the rate-distortion cost can be selected. ost) can be selected. At this time, for the function-based prediction mode, only one function or a plurality of functions can be used. mode, only one function or a plurality of functions can be used.

[0108] FIG. 6 shows an embodiment of the index information of the intra prediction mode in the case of operation classification 2. It is.

[0109] In the case of operation classification 2, the encoder can select the intra prediction mode that minimizes the rate-distortion cost. In order to find the minimum rate-distortion cost, the rate-distortion cost for a plurality of intra prediction modes can be calculated. In the case of function-based prediction, for each type of available function, the variable that defines the function can be estimated (derived) using the reference sample or the input image. At this time, when the mode with the minimum cost is determined, the index value as shown in FIG. 6 can be encoded (transmitted). At this time, the index can be transmitted through at least one of various stages such as SPS, VPS, CU, CTU, TU, PU, Slice, GOP unit, etc. It is possible to select the intra prediction mode that minimizes the rate-distortion cost. To find the minimum rate-distortion cost, the rate-distortion cost for a plurality of intra prediction modes can be calculated. In the case of function-based prediction, for each type of available function, the variable that defines the function can be estimated (derived) using the reference sample or the input image. At this time, when the mode with the minimum cost is determined, the index value as shown in FIG. 6 can be encoded (transmitted). At this time, when the mode with the minimum cost is determined, the index value as shown in FIG. 6 can be encoded (transmitted). encoded (transmitted). At this time, the index can be transmitted through at least one of various stages such as SPS, VPS, CU, CTU, TU, PU, Slice, GOP unit, etc. through at least one of various stages such as SPS, VPS, CU, CTU, TU, PU, Slice, GOP unit, etc. As described above, it can be transmitted. The variable group 1 corresponding to the function-based mode or the description of the variable group 2 is as described for the operation classification 1.

[0110] FIG. 7 is a diagram for explaining an embodiment of the operation of a decoder that performs operation classification 2. The decoder that performs operation classification 2 receives an input of a bit stream and can restore a prediction error signal through entropy decoding, inverse transformation, inverse quantization process, etc. The restored prediction error signal can be combined with the prediction sample to obtain a restored image. At this time, in order to generate the prediction sample, the transmission of the prediction mode index indicating the in-screen prediction method can be received from the encoder via the bit stream and decoded (S710). In step S720, it can be determined whether the prediction mode index indicates function-based in-screen prediction or not.

[0111] When the prediction mode index indicates function-based in-screen prediction (that is , Yes in S720), variables for the corresponding mode can be induced (S730). Specifically speaking, if the variable group 1 exists in the prediction mode indicated by the prediction mode index, the variable group 1 can be induced using peripheral reference samples, etc. If the variable group 2 exists in the prediction mode indicated by the prediction mode index, it can be induced by parsing (decoding) the received bit stream for the variable values corresponding to the variable group 2. Variables (variable group 1 ) induced based on peripheral reference samples, etc., and variables (variable group 2) induced by parsing from the bit stream ​​​Generate a function based on at least one of them (S740), and use the generated function to generate a prediction sample (S750). When the prediction mode index does not indicate function-based intra-prediction (i.e., in S720, No), it is possible to generate a prediction sample by performing intra-prediction based on any one of DC, Planar, and directional (Angular) prediction modes (S750). When the prediction mode index does not indicate function-based intra-prediction (i.e., in S720, No), it is possible to generate a prediction sample by performing intra-prediction based on any one of DC, Planar, and directional (Angular) prediction modes (S750). When the prediction mode index does not indicate function-based intra-prediction (i.e., in S720, No), it is possible to generate a prediction sample by performing intra-prediction based on any one of DC, Planar, and directional (Angular) prediction modes (S750).

[0112] In the case of operation classification 2, as described above, the intra-prediction mode used for decoding can be grasped using a prediction mode index that indicates one of DC, Planar, directional prediction, etc., and function prediction modes. However, it is not necessarily limited to this, and by signaling predetermined information (e.g., FBIP_flag), one function or a plurality of functions can also be used. FBIP_flag (Function Bas ed Intra Prediction Flag) can be information indicating whether function-based intra-prediction according to the present invention is performed. a plurality of functions can also be used. FBIP_flag (Function Bas ed Intra Prediction Flag) can be information indicating whether function-based intra-prediction according to the present invention is performed. ed Intra Prediction Flag) can be information indicating whether function-based intra-prediction according to the present invention is performed. ed Intra Prediction Flag) can be information indicating whether function-based intra-prediction according to the present invention is performed.

[0113] The encoder encodes the FBIP_flag and transmits it to the decoder via a bitstream, and the decoder can receive the FBIP_flag from the bitstream. The encoder encodes the FBIP_flag and transmits it to the decoder via a bitstream, and the decoder can receive the FBIP_flag from the bitstream.

[0114] FIG. 8 is a diagram for explaining another embodiment of the operation of a decoder that performs operation classification 2.

[0115] In step S810, it is possible to decode the FBIP_flag from the bitstream. In step S820, the FBIP_flag value can be checked. FBIP_fla In step S810, it is possible to decode the FBIP_flag from the bitstream. In step S820, the FBIP_flag value can be checked. FBIP_fla If the g value is the first value, the decoder can decode function-based prediction mode information and related information (for example, information regarding variable values corresponding to variable group 2) from the bit stream without parsing prediction mode information such as DC, Planar, and directional prediction (S830). Further, the decoder can derive variables corresponding to variable group 1 using peripheral reference samples or the like, and can derive variables corresponding to variable group 2 based on information additionally parsed from the bit stream (S840). A function is generated using the derived variables corresponding to variable group 1 and variable group 2 (S850), and a prediction sample can be generated using the generated function (S870). If the FBIP_flag value is the second value, the decoder parses prediction mode information such as DC, Planar, and directional prediction (S860), and can perform in-picture prediction by one method such as DC, Planar, and directional prediction indicated by the parsed prediction mode (S870). The second value can be, for example, 0. In the case of operation classification 3, prediction samples generated by prediction modes such as DC, Planar, and directional prediction can be complemented using additional information obtained through a function-based prediction mode. Complementation can be performed in the intra prediction unit 120 of FIG. 1 using additional information obtained through function-based in-picture prediction for prediction modes such as DC, Planar, and directional prediction. The complementation can be realized by a weighted sum or a product of weights. At this time, function-based in-picture prediction can use only one function or a plurality of functions.

[0116]

[0117]

[0118] ​​​​​​​​​​​​​​​ The encoder for operation classification 3 can select an intra prediction mode that minimizes the rate-distortion cost. The prediction samples generated through prediction modes such as DC, Planar, and directional prediction, and the prediction samples generated through function-based compensation can be used to calculate the rate-distortion cost. When function-based prediction is used as a compensation mode, the FBIP_flag can be determined to be the first value (for example, 1) and transmitted. When the function-based compensation mode is not used, the FBIP_flag can be determined to be the second value (for example, 0) and transmitted. If the function-based prediction has the minimum cost when used as a compensation mode, the FBIP_flag can be determined to be 1 and encoded. In this case, the index shown in FIG. 5 can be transmitted. At this time, the index can be transmitted through at least one of multiple stages such as SPS, VPS, CU, CTU, TU, PU, slice, and GOP units, as described above. The description of variable group 1 or variable group 2 corresponding to the function-based mode is as described for operation classification 1. FIG. 9 is a diagram for explaining an embodiment of the operation of a decoder that performs operation classification 3. The decoder that performs operation classification 3 can receive the input of the bitstream and restore the prediction error signal through processes such as entropy decoding, inverse transformation, and inverse quantization. The restored prediction error signal can be combined with the prediction samples to obtain the restored image.

[0119]

[0120]

[0121] The decoder can generate prediction samples based on prediction modes such as DC, Planar, and directional prediction (S910). Then, it decodes the FBIP_flag from the bitstream (S920). If the FBIP_flag is the second value (e.g., 0) (No in step S930), the generated prediction sample can be determined as the final prediction sample without an additional process (S970). If the FBIP_flag is the first value (e.g., 1) (Yes in step S930) and there is a variable group 1 corresponding to the selected function-based prediction mode, variable values corresponding to variable group 1 can be derived using peripheral reference samples, etc. Also, if there is a variable group 2 corresponding to the selected function-based prediction mode, the variable values corresponding to variable group 2 can be decoded from the bitstream (S940). Based on at least one of the variable (variable group 1) obtained from the peripheral reference samples and the variable (variable group 2) derived by parsing from the bitstream, a function is generated (S950), and the generated function can be used to generate a prediction sample (S960). Finally, the final prediction sample can be generated by weighted sum or product of weights of the prediction sample generated using prediction modes such as DC, Planar, and directional prediction (the prediction sample generated in step S910) and the prediction sample generated using the function-based prediction mode (the prediction sample generated in step S960) (S970).

[0122]

[0123]

[0124] ​​​​​​​​​​​​​​​Alternatively, offset samples can also be generated using a function generated through at least one of the variable group 1 or the variable group 2. For the prediction samples generated through prediction modes such as DC, Planar, directional prediction, etc., the offset samples can be added or subtracted to generate the final prediction samples. Or, using all the prediction samples and offset samples generated through the aforementioned function-based prediction mode, the final prediction samples can also be generated.

[0125] The method for calculating the weighted sum based on operation classification 3 can be performed based on the following mathematical formula 8.

Equation

[0126] The method for multiplying weights according to operation classification 3 can be performed based on the following mathematical formula 9.

Equation

[0127] In the mathematical formula 9, P´ is the prediction sample generated by multiplying weights, P is the prediction sample generated by DC, Pla nar, directional prediction, etc., and α can each represent the function-based weight. That is, the method for multiplying weights is to multiply the function-based weights to the prediction samples generated by prediction modes such as DC, Planar, directional prediction. It is in the form. At this time, for example, when obtaining weights based on a normal distribution function, c in Equation 6 indicating the amplitude can be used as follows. itude

Number

[0128] Using the surrounding reference samples of the current block (e.g., PU), variables of the function (e.g., normal distribution function)-based prediction samples can be predicted. With reference to the original signal of the current block, variables of the function-based prediction samples can be predicted. To generate the prediction samples of the current block, the function-based prediction samples can be used instead of the N in-frame prediction modes (e.g., 35 in-frame prediction modes) already defined in the encoder / decoder. When performing in-frame prediction on the current block, a function-based in-frame prediction mode can be added to the in-frame prediction mode using extrapolation (e.g., the N in-frame prediction modes already defined in the encoder / decoder) to compete the rate-distortion cost and use a better prediction mode. The in-frame prediction mode using extrapolation (e.g., the N in-frame prediction modes already defined in the encoder / decoder) and the function-based in-frame prediction mode for the current block can be weighted and summed to be used as prediction samples. When generating the prediction samples of the current block based on the N in-frame prediction modes already defined in the encoder / decoder, a predictor can also be realized to follow the distribution of the function. According to the attributes of the current block, a function-based in-frame prediction technique With reference to the original signal of the current block, variables of the function-based prediction samples can be predicted. To generate the prediction samples of the current block, the function-based prediction samples can be used instead of the N in-frame prediction modes (e.g., 35 in-frame prediction modes) already defined in the encoder / decoder. Using the surrounding reference samples of the current block (e.g., PU), variables of the function (e.g., normal distribution function)-based prediction samples can be predicted. When performing in-frame prediction on the current block, a function-based in-frame prediction mode can be added to the in-frame prediction mode using extrapolation (e.g., the N in-frame prediction modes already defined in the encoder / decoder) to compete the rate-distortion cost and use a better prediction mode. The in-frame prediction mode using extrapolation (e.g., the N in-frame prediction modes already defined in the encoder / decoder) and the function-based in-frame prediction mode for the current block can be weighted and summed to be used as prediction samples. When generating the prediction samples of the current block based on the N in-frame prediction modes already defined in the encoder / decoder, a predictor can also be realized to follow the distribution of the function. According to the attributes of the current block, a function-based in-frame prediction technique and used.

[0129] When performing in-frame prediction on the current block, a function-based in-frame prediction mode can be added to the in-frame prediction mode using extrapolation (e.g., the N in-frame prediction modes already defined in the encoder / decoder) to compete the rate-distortion cost and use a better prediction mode. For example, the function-based in-frame prediction mode can be added to the N in-frame prediction modes (e.g., 35 in-frame prediction modes) already defined in the encoder / decoder for the in-frame prediction mode using extrapolation for the current block. t) can be competed to use a better prediction mode. The in-frame prediction mode using extrapolation (e.g., the N in-frame prediction modes already defined in the encoder / decoder) and the function-based in-frame prediction mode for the current block can be weighted and summed to be used as prediction samples. When generating the prediction samples of the current block based on the N in-frame prediction modes already defined in the encoder / decoder, a predictor can also be realized to follow the distribution of the function. According to the attributes of the current block, a function-based in-frame prediction technique For example, the function-based in-frame prediction mode can be added to the N in-frame prediction modes (e.g., 35 in-frame prediction modes) already defined in the encoder / decoder for the in-frame prediction mode using extrapolation for the current block. When performing in-frame prediction on the current block, a function-based in-frame prediction mode can be added to the in-frame prediction mode using extrapolation (e.g., the N in-frame prediction modes already defined in the encoder / decoder) to compete the rate-distortion cost and use a better prediction mode. For example, the function-based in-frame prediction mode can be added to the N in-frame prediction modes (e.g., 35 in-frame prediction modes) already defined in the encoder / decoder for the in-frame prediction mode using extrapolation for the current block. The in-frame prediction mode using extrapolation (e.g., the N in-frame prediction modes already defined in the encoder / decoder) and the function-based in-frame prediction mode for the current block can be weighted and summed to be used as prediction samples. When generating the prediction samples of the current block based on the N in-frame prediction modes already defined in the encoder / decoder, a predictor can also be realized to follow the distribution of the function. According to the attributes of the current block, a function-based in-frame prediction technique When generating the prediction samples of the current block based on the N in-frame prediction modes already defined in the encoder / decoder, a predictor can also be realized to follow the distribution of the function. According to the attributes of the current block, a function-based in-frame prediction technique It is possible to determine whether to apply the method. Here, the attributes can mean, for example, the size of the current block , shape (e.g., whether it is square, non-square in the horizontal / vertical direction, etc.), depth (e.g , division depth), the presence or absence of a conversion coefficient, the presence or absence of conversion skip, whether it is a first-order conversion or a second-order conversion, at least one of the luminance component or the color difference component. The function-based in-screen prediction technique can only be applied to specific component elements (e.g., the luminance component).

[0130] Whether to apply the function-based in-screen prediction to the current block can be derived from the surrounding blocks of the current block . The surrounding blocks are blocks adjacent to a predetermined position of the current block , and can be at least one of the lower left, left, upper left, upper, and upper right blocks .

[0131] FIG. 10 exemplarily shows the surrounding restored sample lines available for in-screen prediction of the current block .

[0132] As shown in FIG. 10, reference samples can be constructed using one or more restored sample lines adjacent to the current block .

[0133] For example, any one of the plurality of restored sample lines shown in FIG. 10 can be selected, and the reference sample can be constructed using the selected restored sample line. The selected restored sample line can be fixedly selected to a specific line from among the plurality of restored sample lines . Or, the selected restored sample line can be adaptively selected to a specific line from among the plurality of restored sample lines . At this time, an indicator for the selected restored sample line can be signaled.

[0134] For example, one or more of the restored sample lines shown in FIG. 10 can be used to construct a reference sample. As an example, the reference sample can be composed of a weighted sum (or weighted average) of one or more restored samples. The weights used for the weighted sum can be assigned based on the distance from the current block. At this time , the closer to the current block, the larger the weight can be assigned. For example, the following Equation 10 can be used .

Equation

[0135] Alternatively, based on at least one of the distance from the current block or the in-screen prediction mode , a reference sample can be constructed using at least one value among the average value, maximum value, minimum value, median value, and mode value of the plurality of restored samples.

[0136] Alternatively, a reference sample can be constructed based on the change (change amount) in the values of a plurality of consecutive restored samples. For example, whether the values of two consecutive restored samples differ by a threshold value or more, whether the values of a plurality of consecutive restored samples change continuously or discontinuously , etc. Based on at least one of these, a reference sample can be constructed. For example, when rec[-1, -1] and rec[-2, -1] differ by a threshold value or more, ref[-1, - 1] can be determined as rec[-1, -1], or can be determined as a value obtained by applying a weighted average with a predetermined weight to rec[-1, -1]. For example, when the values of a plurality of consecutive restored samples change by n as they approach the current block, the reference sample ref[-1, -1] = rec [-1, -1] - n can be determined. [-1, -1] [-1, -1] [-1, -1]​​​​

[0137] The number, position, and configuration method of the restoration sample lines used in the configuration of the reference sample At least one of which can be determined to be different when the upper or left boundary of the current block corresponds to the boundary of at least one of a picture, slice, tile, and coded tree block (CTB). Thus, it can be determined to be different.

[0138] For example, when constructing a reference sample using restoration sample lines 1 and 2, if the upper boundary of the current block corresponds to the CTB boundary, restoration sample line 1 can be used for the upper side, and restoration sample lines 1 and 2 can be used for the left side. For example, when constructing a reference sample using restoration sample lines 1 to 4, if the upper boundary of the current block corresponds to the CTB boundary, restoration sample lines 1 and 2 can be used for the upper side, and restoration sample lines 1 to 4 can be used for the left side.

[0139] For example, when constructing a reference sample using restoration sample line 2, if the upper boundary of the current block corresponds to the CTB boundary, restoration sample line 1 can be used for the upper side, and restoration sample line 2 can be used for the left side.

[0140] The lines of the reference sample configured through the above process can be one or more. The method for configuring the reference sample on the upper side of the current block and the method for configuring the reference sample on the left side can be different.

[0141] Information indicating that the reference sample is configured by at least one of the above methods can be encoded / decoded. For example, it can indicate whether a plurality of restoration sample lines are used. ​​​​​​​​​ It is possible to encode / decode information.

[0142] As described above, one or more lines of reference samples derived from a plurality of reference sample lines can be used as the reference samples of the present invention.

[0143] These embodiments can be performed in a similar manner in an encoder and a decoder. The order of applying the embodiments may be different between the encoder and the decoder, and the encoding may be the same between the encoder and the decoder.

[0144] The embodiments can be performed for each of the luminance and color difference signals, and the embodiments for the luminance and color difference signals can be performed in the same manner.

[0145] The shape of the block to which the embodiment of the present invention is applied can have a square shape or a non- square shape.

[0146] The embodiments of the present invention can be applied according to the size of at least one of an encoding block, a prediction block, a transform block, a block, a current block, an encoding unit, a prediction unit, a transform unit, a unit, and a current unit Here, the size may be defined as a minimum size and / or a maximum size for applying the embodiment, and the embodiment may be defined as a fixed size to which the embodiment is applied. Further, the embodiment may be the first embodiment applied at the first size, and the second embodiment applied at the second size. That is, the embodiment can be applied in a composite manner according to the size. Also, the embodiments of the present invention may be applied only when the size is equal to or greater than the minimum size and equal to or less than the maximum size. ​That is, the above-described embodiment may be applied only when the block size is within a certain range. It may be applied.

[0147] For example, the above-described embodiment can be applied only when the current block size is 8×8 or more. For example, the above-described embodiment can be applied only when the current block size is 4×4. For example, the above-described embodiment can be applied only when the current block size is 16×16 or less. For example, the above-described embodiment can be applied only when the current block size is 16×16 or more and 64×64 or less. It can be applied.

[0148] The embodiments of the present invention can be applied according to the temporal layer. To identify the temporal layer to which the above-described embodiment is applicable, a separate identifier is signaled, and the above-described embodiment can be applied to the temporal layer specified by the identifier. Here, the identifier may be defined as the lowest layer and / or the highest layer to which the above-described embodiment is applicable, or may be defined as an indicator of a specific layer to which the above-described embodiment is applied. Also, a fixed temporal layer to which the above-described embodiment is applied may be defined. For example, the above-described embodiment can be applied only when the temporal layer of the current image is the lowest layer. For example, the above-described embodiment can be applied only when the temporal layer identifier of the current image is 1 or more. For example, the above-described embodiment can be applied only when the temporal layer of the current image is the highest layer.

[0149] It can be applied. For example, the above-described embodiment can be applied only when the temporal layer identifier of the current image is 1 or more. For example, the above-described embodiment can be applied only when the temporal layer of the current image is the highest layer. It can be applied.

[0150] The type of slice to which the embodiments of the present invention are applied is defined. The above-described embodiments of the present invention can be applied according to the type of the slice.

[0151] In the above-described embodiments, these methods are described based on a series of steps or units in a flowchart, but the present invention is not limited to the order of these steps. Rather, a certain step can occur in a different order or simultaneously with steps different from those described above. Also, those having ordinary knowledge in the relevant technical field will understand that the steps shown in the flowchart are not exclusive, and other steps may be included, or one or more steps of the flowchart can be deleted without affecting the scope of the present invention. The above-described embodiments include examples of various aspects. Although it is not possible to describe all possible combinations for showing various aspects, those having ordinary knowledge in the relevant technical field will be able to recognize that other combinations are possible. Therefore, it can be said that the present invention includes all various alternatives, modifications, and changes within the scope of the following claims.

[0152] The embodiments of the present invention described above can be realized in the form of program instructions executable via various computer components and can be recorded on a computer-readable recording medium. The computer-readable recording medium can include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the computer-readable recording medium are those specially designed and configured for the present invention or those known and usable by those skilled in the computer software field. Examples of the computer-readable recording medium include

[0153] The embodiments of the present invention described above can be executed via various computer components and can be realized in the form of program instructions that can be recorded on a computer-readable recording medium. The computer-readable recording medium can include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the computer-readable recording medium are those specially designed and configured for the present invention or those known and usable by those skilled in the computer software field. Examples of the computer-readable recording medium include and those that are known and usable by those skilled in the computer software field. Examples of the computer-readable recording medium include Magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and hardware devices specially configured to store and execute program instructions such as ROMs, RAMs, and flash memories are included. Examples of program instructions include not only machine language code generated by a compiler but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device can be configured to operate as one or more software modules for performing the processing according to the present invention, and vice versa. Optical recording media such as DVDs, and magneto-optical media such as floptical disks are included. Examples of program instructions include not only machine language code generated by a compiler but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device can be configured to operate as one or more software modules for performing the processing according to the present invention, and vice versa. ware devices specially configured to store and execute program instructions such as ROMs, RAMs, and flash memories are included. Examples of program instructions include not only machine language code generated by a compiler but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device can be configured to operate as one or more software modules for performing the processing according to the present invention, and vice versa. are included. Examples of program instructions include not only machine language code generated by a compiler but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device can be configured to operate as one or more software modules for performing the processing according to the present invention, and vice versa. are included. Examples of program instructions include not only machine language code generated by a compiler but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device can be configured to operate as one or more software modules for performing the processing according to the present invention, and vice versa. The hardware device can be configured to operate as one or more software modules for performing the processing according to the present invention, and vice versa. The hardware device can be configured to operate as one or more software modules for performing the processing according to the present invention, and vice versa.

[0154] As described above, the present invention has been described with specific matters such as specific components, limited embodiments, and drawings, but this is only provided to assist a more general understanding of the present invention, and the present invention is not limited to the above embodiments. Those having ordinary knowledge in the technical field to which the present invention pertains can make various modifications and variations from such descriptions. As described above, the present invention has been described with specific matters such as specific components, limited embodiments, and drawings, but this is only provided to assist a more general understanding of the present invention, and the present invention is not limited to the above embodiments. Those having ordinary knowledge in the technical field to which the present invention pertains can make various modifications and variations from such descriptions. As described above, the present invention has been described with specific matters such as specific components, limited embodiments, and drawings, but this is only provided to assist a more general understanding of the present invention, and the present invention is not limited to the above embodiments. Those having ordinary knowledge in the technical field to which the present invention pertains can make various modifications and variations from such descriptions. As described above, the present invention has been described with specific matters such as specific components, limited embodiments, and drawings, but this is only provided to assist a more general understanding of the present invention, and the present invention is not limited to the above embodiments. Those having ordinary knowledge in the technical field to which the present invention pertains can make various modifications and variations from such descriptions. As described above, the present invention has been described with specific matters such as specific components, limited embodiments, and drawings, but this is only provided to assist a more general understanding of the present invention, and the present invention is not limited to the above embodiments. Those having ordinary knowledge in the technical field to which the present invention pertains can make various modifications and variations from such descriptions.

[0155] Therefore, the idea of the present invention should not be defined as being limited to the above-described embodiments, and not only the scope of the claims described below but also all those modified equivalently or equivalently to this scope of the claims belong to the scope of the idea of the present invention. Therefore, the idea of the present invention should not be defined as being limited to the above-described embodiments, and not only the scope of the claims described below but also all those modified equivalently or equivalently to this scope of the claims belong to the scope of the idea of the present invention. Therefore, the idea of the present invention should not be defined as being limited to the above-described embodiments, and not only the scope of the claims described below but also all those modified equivalently or equivalently to this scope of the claims belong to the scope of the idea of the present invention.

Industrial Applicability

[0156] The present invention can be used for image encoding / decoding.

Claims

1. Decoding a prediction mode index of a current block from a bitstream; Determining whether to perform function-based intra prediction of the current block based on the prediction mode index; Performing intra prediction of the current block, including: The step of determining whether to perform function-based intra prediction of the current block is further performed based on whether the shape of the current block is a non-square shape in the horizontal direction; When performing function-based intra prediction of the current block, the step of performing intra prediction includes: Decoding function-based intra prediction mode information from the bitstream; Deriving a variable for generating a function based on the function-based intra prediction mode information; Performing intra prediction using the function based on the derived variable, including: The variable is derived using at least one of a maximum sample value and a minimum sample value of previously reconstructed reference samples adjacent to the current block. An image decoding method.

2. Determining whether to perform function-based intra prediction of the current block; Performing intra prediction of the current block, including: The step of determining whether to perform function-based intra prediction of the current block is further performed based on whether the shape of the current block is a non-square shape in the horizontal direction; When performing function-based intra prediction of the current block, the step of performing intra prediction includes: Determining a function-based intra prediction mode; Deriving a variable for generating a function based on the determined function-based intra prediction mode; Performing intra prediction using the function based on the derived variable; Encoding a prediction mode index indicating the function-based intra prediction mode information based on the determined function-based intra prediction mode and instructing to perform function-based intra prediction of the current block into the bitstream, including: The variable is derived using at least one of a maximum sample value and a minimum sample value of previously reconstructed reference samples adjacent to the current block. An image encoding method.

3. A method for transmitting a bitstream, the method comprising: A step of determining whether to perform function-based intra prediction of the current block; A step of performing intra prediction of the current block to generate the bitstream; A step of transmitting the bitstream, including: The step of determining whether to perform function-based intra prediction of the current block is further performed based on whether the shape of the current block is a non-square shape in the horizontal direction; When performing the function-based intra prediction of the current block, the step of performing intra prediction includes: A step of determining a function-based intra prediction mode; A step of deriving variables for generating a function based on the determined function-based intra prediction mode; A step of performing intra prediction using the function based on the derived variables; Encoding, in the bitstream, a prediction mode index that indicates function-based intra prediction mode information based on the determined function-based intra prediction mode and instructs to perform the function-based intra prediction of the current block; A method of transmitting a bitstream, wherein the variable is derived using at least one of a maximum sample value and a minimum sample value of previously reconstructed reference samples adjacent to the current block.

Citation Information

Patent Citations

  • Image processing device and image processing method

    JP2013034163A

  • Image processing apparatus and image processing method

    JP2013141187A

  • Image decoding method, image encoding method, and recording medium

    JP2020533822A