Image encoding / decoding method, device, and recording medium with bitstream stored therein
The image encoding/decoding method enhances compression efficiency by performing intra-frame prediction using a function, addressing the challenges of high-resolution and high-quality image data management.
Patent Information
- Application Number
- JP2025081125
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2016-11-29
- Filing Date
- 2025-05-14
- Publication Date
- 2025-08-05
- Estimated Expiration
- 2037-11-27
AI Technical Summary
Conventional image encoding/decoding methods struggle with efficient compression of high-resolution and high-quality images, leading to increased data loss and storage costs due to the large amount of data involved.
An image encoding/decoding method that performs intra-frame prediction using a function, involving decoding a prediction mode index, generating variables for the function, and applying the function for intra-frame prediction.
Improves compression efficiency and reduces data loss in high-resolution and high-quality images, thereby lowering storage costs.
Smart Images

Figure 2025114814000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to an image encoding / decoding method, an image encoding / decoding device, and a recording medium storing a bitstream. Specifically, the present invention relates to an image encoding / decoding method that performs intra-frame prediction using a function. and a bitstream generated by the image coding method or device of the present invention. Regarding the recording medium on which the data is stored. [Background technology]
[0002] Recently, high-resolution, high-quality images, such as HD (High Definition) images, have become increasingly common. And the demand for UHD (Ultra High Definition) images is increasing for various applications. The higher the resolution and quality of image data, the greater the risk of data loss compared to conventional image data. As the amount of data increases relatively, the conventional media such as wired and wireless broadband lines will When transmitting image data using a conventional storage medium or storing it using a conventional storage medium, As the resolution and quality of image data increases, the cost of storing the data will increase. To solve the problems caused by this, high resolution and quality images are Efficient image encoding / decoding techniques are required.
[0003] As an image compression technique, the image data included in the current picture is extracted from pictures before or after the current picture. Inter-picture prediction technology that predicts the pixel values contained in the current picture. Intra prediction technology that predicts pixel values contained in the current picture using Transformation and quantization techniques are used to compress the energy of the residual signal, reducing the number of frequently occurring values to a short value. Entropy coding techniques, such as assigning codes to values with longer codes for less frequently occurring values. There are various image compression technologies available, and these can be used to effectively compress image data. It can be transmitted or stored. Summary of the Invention [Problem to be solved by the invention]
[0004] The present invention aims to provide an image encoding / decoding method and apparatus with improved compression efficiency. Let's say.
[0005] The present invention also provides an image encoding / decoding method and apparatus for performing intra-frame prediction using a function. The purpose is to provide
[0006] The present invention also relates to a bitstream generated by the image coding method or apparatus of the present invention. The purpose of this invention is to provide a recording medium on which the program is stored. [Means for solving the problem]
[0007] The image decoding method according to the present invention includes the steps of decoding a prediction mode index and determining whether the prediction mode index indicates function-based intra prediction; and if the prediction mode index indicates function-based intra prediction, generate a function a step of inducing variables for the function; and a step of generating a function based on the induced variables. and performing intra-frame prediction using the generated function. [Effects of the Invention]
[0008] According to the present invention, an image encoding / decoding method and apparatus with improved compression efficiency are provided. can be done.
[0009] Furthermore, according to the present invention, there is provided an image encoding / decoding method and apparatus for performing intra-frame prediction using a function. Locations can be provided.
[0010] Furthermore, according to the present invention, a bitstream generated by the image coding method or apparatus of the present invention is A recording medium on which the stream is stored can be provided. [Brief explanation of the drawings]
[0011] [Figure 1] 1 is a block diagram showing a configuration of an embodiment of an encoding device to which the present invention is applied. [Figure 2] 1 is a block diagram showing a configuration of an embodiment of a decoding device to which the present invention is applied. [Figure 3] FIG. 2 is a schematic diagram showing a division structure of an image when encoding and decoding the image. [Figure 4] FIG. 10 is a diagram for explaining an embodiment of an intra-frame prediction process. [Figure 5] FIG. 10 is a diagram illustrating an embodiment in which an index is assigned to a mode used for intra prediction. [Figure 6] FIG. 10 is a diagram showing an embodiment of index information of intra-screen prediction modes in the case of motion category 2. [Figure 7] FIG. 10 is a diagram for explaining an embodiment of the operation of a decoder that performs operation classification 2. [Figure 8] FIG. 10 is a diagram for explaining another embodiment of the operation of the decoder that performs operation classification 2. [Figure 9] FIG. 10 is a diagram for explaining an embodiment of the operation of a decoder that performs operation classification 3. [Figure 10] 10 is a diagram illustrating an example of surrounding reconstructed sample lines that can be used for intra-frame prediction of a current block. DETAILED DESCRIPTION OF THE INVENTION
[0012] The present invention can be modified in various ways and can have various embodiments. Specific embodiments are illustrated in the drawings and are described in detail in the detailed description. It is not intended to limit the disclosure to any particular embodiment, but rather to encompass any particular application within the spirit and scope of the present invention. It should be understood that the present invention includes all modifications, equivalents, or alternatives that are within the scope of the present invention. Like reference numbers indicate the same or similar features across the various aspects. The shapes and sizes of the elements may be exaggerated for clarity. The detailed description of exemplary embodiments refers to the accompanying drawings, which show, by way of illustration, specific embodiments. These embodiments are described in sufficient detail to enable those skilled in the art to practice the embodiments. It is understood that the various embodiments, although different from one another, are not necessarily mutually exclusive. For example, the specific shapes, structures, and characteristics described herein are merely examples. The present invention can be implemented in various embodiments without departing from the spirit and scope of the present invention. Furthermore, the location or arrangement of individual components within each disclosed embodiment does not necessarily imply the accuracy of the embodiment. It should be understood that variations may be made without departing from the spirit and scope of the present invention. The following detailed description is not to be taken in a limiting sense, but rather as an example of exemplary embodiments. The range, if properly interpreted, includes all ranges and equivalents claimed by those claims. It is limited only by the appended claims.
[0013] In the present invention, the terms "first," "second," etc. may be used to describe various components. However, these components should not be limited by the above terms. It is used only to distinguish one component from another. For example, Unless otherwise specified, a first component may be named a second component, and similarly, a second component may be named a An element may also be named a first element. The term "and / or" refers to multiple related items. It includes any combination of items or multiple related listed items.
[0014] Certain components of the present invention are "coupled" or "connected" to other components. When a component is connected to a device, it may be directly connected to or connected to other components. However, it should be understood that there may be other components intervening between them. In contrast, a component is "directly connected" or "directly connected" to another component. When such a component is included, it should be understood that there is no other intervening component between them.
[0015] The components shown in the embodiments of the present invention are illustrated independently to show different characteristic functions. Each component is made up of separate hardware or a single software unit. That is, for the sake of convenience, each component is listed as a separate component. At least two of the components are combined to form one component. Or each component can be divided into multiple components to perform the function, The integrated and separated embodiments of each of these components are also within the scope of the present invention. Unless otherwise specified, the invention is within the scope of the present invention.
[0016] The terms used in the present invention are merely used to describe specific embodiments, The singular expression "a" or "an" is used unless the context clearly indicates otherwise. In the present invention, terms such as "include" or "have" are used in the specification. The presence of any stated features, numbers, steps, operations, components, parts or combinations thereof It specifies one or more other features, numbers, steps, actions, It is understood that the presence or possibility of adding components, parts, or combinations thereof is not precluded. In other words, in the present invention, the content described as "including" a specific configuration It is not intended to exclude configurations other than the present configuration, and additional configurations may be used to implement the present invention or to incorporate the technology of the present invention. This means that it can be included within the scope of theoretical thought.
[0017] Some components of the present invention are not essential components that perform essential functions in the present invention. The present invention is not limited to the above-mentioned embodiments, but may be merely an optional component for improving performance. It includes only the components essential to realizing the essence of the present invention, excluding components used for Only essential components are included, excluding optional components that can be realized by simply using the The scope of the present invention also includes structures including:
[0018] Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In describing the embodiments, specific descriptions of related known structures or functions are provided in the present specification. If it is determined that the detailed description may obscure the gist of the document, the detailed description may be omitted and the drawings may be used instead. The same reference numerals are used for the same components, and duplicate explanations of the same components are given. The literal meaning is omitted.
[0019] In the following, an image refers to one picture that makes up a video. For example, "encoding and / or decoding of images" can be "encoding and / or decoding of video" can mean "the images that make up a video" It can also mean "encoding and / or decoding of one of the images." Cha can have the same meaning as an image.
[0020] Terminology Encoder: A device that performs encoding. Decoder: A device that performs decoding.
[0021] Block: An MxN array of samples, where M and N means a positive integer value, and a block generally means a two-dimensional sample array. A block can mean a unit. Currently, a block is a The target block to be coded is the block to be coded, and the target block to be decoded is the block to be decoded. Also, the current block can refer to the coding block, the predicted block, and the residual block. The block may be at least one of a block and a transform block.
[0022] Sample: The basic unit that makes up a block. depth, B d ) from 0 to 2 depending on Bd It can be expressed as a value up to -1. , sample can be used interchangeably with picture element or pixel.
[0023] Unit: A unit of image coding and decoding. In encoding, a unit can be an area into which an image is divided. When an image is divided into small units for encoding or decoding, the division In image encoding and decoding, for each unit, A predefined process can be performed. One unit is smaller than the other unit. Depending on the function, the units can be divided into blocks (Bl block, macroblock, coding tree unit ng Tree Unit, Coding Tree Block ck), Coding Unit, Coding Block Block), Prediction Unit, Prediction Block ediction Block, Residual Unit, Residual Residual Block, Transform Unit It can mean a Transform Block, etc. In addition, the unit is divided into blocks and designated by the luminance (Luma) component block. blocks, their corresponding chroma component blocks, and the syntax elements for each block. Units can have a variety of sizes and shapes. In particular, the shape of the unit is not only rectangular, but also square, trapezoid, triangle, pentagon, etc. It can contain geometric figures that can be expressed two-dimensionally. Also, the unit information can be coded The type of unit, which indicates the unit, predicted unit, residual unit, conversion unit, etc. , the size of the unit, the depth of the unit, the encoding and decoding order of the unit, etc. It may contain at least one.
[0024] Coding Tree Unit: One luminance component (Y) Two chrominance components (Cb, Cr) associated with the coding tree block are coded as follows: It also means that it includes the blocks and syntax elements for each block. Each coding tree unit can be a coding unit, a prediction unit, a transform unit, To construct subunits such as quad trees and binary trees, The input image can be segmented using one or more segmentation methods, such as a binary tree. It is used to indicate pixel blocks that are the processing units in the image decoding / encoding process. Can be used as a word.
[0025] Coding Tree Block: Y coding tree block indicates one of the following: Cb coding tree block, Cb coding tree block, and Cr coding tree block. It can be used as a term for
[0026] Neighbor block: The block adjacent to the current block. The adjacent blocks of the current block are the blocks that share a border with the current block. It can refer to blocks located within a certain distance from the current block. The edge block may refer to a block adjacent to a vertex of the current block. The block adjacent to the vertex of the current block is the adjacent block next to the current block. The block that is vertically adjacent to the current block, or the block that is vertically adjacent to the current block and the block that is horizontally adjacent to the current block. The surrounding blocks may also refer to the reconstructed surrounding blocks. .
[0027] Reconstructed Neighbor Blocks k): Spatial / Temporal around the current block It means a neighboring block that has already been coded or decoded. A block can refer to a restored peripheral unit. A block is a block in the current picture that has already been restored through encoding and / or decoding. The reconstructed temporal neighboring blocks may be blocks located in the reference picture that are adjacent to the current pixel. It can be a restored block at the same position as the current block of the image or its neighboring blocks. .
[0028] Unit depth: The degree to which a unit is divided. In the tree structure, the root node is The shallowest node is the leaf node, and the deepest node is the leaf node. When the unit is expressed in a tree structure, the level at which the unit exists is the unit. It can mean depth.
[0029] Bitstream: A string of bits containing coded image information. means.
[0030] Parameter Set: A structure within a bitstream. The header information of the video parameter set is set), sequence parameter set et), picture parameter set, Of the adaptation parameter sets At least one parameter set may be included in the slice ( It may also include slice header and tile header information.
[0031] Parsing: Entropy decoding the bitstream to extract syntax elements (Syntax Element) or entropy - can mean the decoding itself.
[0032] Symbol: Syntax element of the unit to be coded / decoded, coding parameter Coding parameters, Transform Coeff It can mean at least one of the following values: A rule can refer to the target of entropy coding or the result of entropy decoding. do.
[0033] Prediction Unit: Inter-frame prediction, Intra-frame prediction, Inter-frame prediction It means the basic unit when performing prediction such as compensation, intra-frame compensation, and motion compensation. The measurement unit is divided into multiple partitions or sub-predictions of small size. The measurement unit may be divided into several measurement units.
[0034] Prediction Unit Partition ): This means the shape into which the prediction unit is divided. Transform Unit: Transform, Inverse Transform, Quantize, Inverse Quantize, Transform Residual signal coding / decoding, such as transform coefficient coding / decoding A conversion unit is a basic unit of size It can be divided into smaller transformation units.
[0035] Scaling: refers to the process of multiplying the conversion coefficient level by a factor. The transform coefficients can be generated as a result of scaling to the transform coefficient levels. This process can also be called dequantization.
[0036] Quantization Parameter: In quantization Transform coefficient level (transform coefficient l It can refer to the value used to generate the level (or level) during dequantization. Used to generate transform coefficients by scaling the transform coefficient levels. The quantization parameter can also mean a value that determines the quantization step size (step It can be a value mapped to a
[0037] Delta Quantization Parameter r): The predicted quantization parameter and the quantization parameter of the unit to be coded / decoded. This means the difference value.
[0038] Scan: A method for sorting the order of coefficients in a block or matrix. For example, sorting a two-dimensional array into a one-dimensional array is called scanning. You can also sort an array into a two-dimensional array by scanning or inverse scanning (Inverse S can be called
[0039] Transform Coefficient: The transform coefficient is calculated by the encoder. The coefficient values generated by the decoder are the entropy decoding and inverse quantization. It can also mean a coefficient value generated after performing at least one of the following. Quantization is applied to the pre-signal to obtain the quantized levels or quantized transform coefficient levels (trans The conversion coefficient (form coefficient level) may also be included in the meaning of the conversion coefficient.
[0040] Quantized Level: The transform coefficient or residual in the encoder. It means the value generated by quantizing the residual signal, or before inverse quantization in the decoder. It can also mean a value that is the target of inverse quantization. The quantized transform coefficient levels may also be included in the meaning of quantized levels.
[0041] Non-zero Transform Coefficient ): A conversion coefficient whose magnitude is not 0, or a conversion coefficient level whose magnitude is not 0 means.
[0042] Quantization Matrix: The subjective quality or It refers to a matrix used in the quantization or dequantization process to improve the visual image quality. The scaling matrix can also be called a scaling list.
[0043] Quantization Matrix Coefficient ): means each element in the quantization matrix. The quantization matrix coefficient is expressed as a matrix coefficient ( It can also be called the matrix coefficient. Default Matrix: Predefined in the encoder and decoder. It means a predetermined quantization matrix.
[0044] Non-default Matrix: A matrix that is predetermined by the encoder and decoder. It is not defined as a quantization matrix, but refers to a quantization matrix signaled by the user.
[0045] FIG. 1 is a block diagram showing the configuration of an embodiment of an encoding device to which the present invention is applied. do.
[0046] The encoding device 100 may be an encoder, a video encoding device, or an image encoding device. A video may include one or more images. The encoding device 100 may encode one or more images. It can be coded sequentially.
[0047] Referring to FIG. 1, the encoding device 100 includes a motion prediction unit 111, a motion compensation unit 112, an image processing unit 113, an image processing unit 114, an image processing unit 115, and an image processing unit 116. a predictor 120, a switch 115, a subtractor 125, a transformer 130, a quantizer 140, An entropy coding unit 150, an inverse quantization unit 160, an inverse transform unit 170, an adder 175, a filter The image processing unit 100 may include a data buffer 180, and a reference picture buffer 190.
[0048] The encoding device 100 encodes an input image in intra mode and / or inter mode. Furthermore, the encoding device 100 can perform encoding of the input image. It can generate a bitstream and output the generated bitstream. The generated bitstream can be stored on a computer-readable recording medium or It can be streamed via wired or wireless transmission media. If a different mode is used, the switch 115 can switch to intra and set the prediction mode to intra. When the mode is used, the switch 115 can be switched to inter mode. Mode can refer to intra prediction mode, and Inter mode refers to inter prediction mode. The encoding device 100 generates a prediction block for an input block of an input image. After the prediction block is generated, the encoding device 100 The residual of the input block and the predicted block can be coded. The input image may also be referred to as the current image currently being coded. It may also be called a current block that is currently being coded or a block to be coded.
[0049] When the prediction mode is the intra mode, the intra prediction unit 120 The pixel values of blocks that have already been coded / decoded on the edges can be used as reference pixels. The intra prediction unit 120 can perform spatial prediction using reference pixels. Here, the input block can be predicted by the input signal. The intra prediction may refer to an intra prediction.
[0050] When the prediction mode is the inter mode, the motion prediction unit 111 It is possible to search for the area that best matches the input block in the reference image, and the searched area The reference image is stored in the reference picture buffer 19. It can be saved to 0.
[0051] The motion compensation unit 112 performs motion compensation using a motion vector to obtain a prediction block. Here, inter prediction means inter-frame prediction or motion compensation. It is possible.
[0052] The motion prediction unit 111 and the motion compensation unit 112 perform the following when the value of the motion vector does not have an integer value. In this case, an interpolation filter is applied to a part of the reference image. Inter prediction or motion compensation can be applied to generate the predicted block. To do this, the prediction unit included in the coding unit is used as a reference. The motion prediction and motion compensation methods are Skip Mode and Merge Mode. (Merge mode), Improved Motion Vector Prediction (Advanced Motion n Vector Prediction (AMVP) mode and current picture reference mode It is possible to determine which of the following modes is used, and the inter-screen preview function is available depending on the mode. Motion estimation or motion compensation can be performed.
[0053] The subtractor 125 uses the difference between the input block and the predicted block to obtain a residual block (res The residual block is also called the residual signal. The residual signal can represent the difference between the original signal and the predicted signal. Or the residual signal can be transformed to represent the difference between the original signal and the predicted signal. , quantization, or a signal generated by transforming and quantizing. The lock can be a block-wise residual signal.
[0054] The transform unit 130 performs a transform on the residual block to generate transform coefficients (transform coefficient) can be generated, and the transformation coefficient can be output. Here, the transform coefficients can be obtained by performing a transform on the residual block. It can be a generated coefficient value. Transform skip mode is applied. If so, the transform unit 130 may omit transforming the residual block.
[0055] By applying quantization to the transform coefficients or residual signal, the quantized levels (quan In the following embodiments, the quantized level is also changed. It is sometimes called the conversion factor.
[0056] The quantization unit 140 quantizes the transform coefficients or the residual signal based on the quantization parameter. By this, quantized levels can be generated, and the quantized levels can be output. At this time, the quantization unit 140 quantizes the transform coefficients using a quantization matrix. It is possible.
[0057] The entropy coding unit 150 uses the value calculated by the quantization unit 140 or the value calculated during the coding process. Probability distribution for the coding parameter values etc. By performing entropy coding using a bitstream ) and output a bitstream. The encoder 150 encodes information about pixels of an image and information for decoding the image. For example, the information for decoding an image can be coded using syntax elements (s syntax element).
[0058] When entropy coding is applied, symbols with high occurrence probability are ) are assigned fewer bits, and symbols with lower occurrence probabilities are assigned more bits. are assigned to represent the symbols, and the bits for the symbol to be encoded are The size of the column can be reduced. Exponential Golomb, CAVLC (Context- Adaptive Variable Length Coding), CABAC(C ontext-Adaptive Binary Arithmetic Coding For example, the entropy coding unit 150 may use a coding method such as Variable Length Coding (VLC) Entropy coding can be performed using the entropy coding unit 1. 50 is a method for binarizing a target symbol and a target symbol / binarization method. After deriving the probability model for the bin, The binarization method, probability model, and context model are It can also be used to perform arithmetic coding.
[0059] The entropy coding unit 150 performs a transform coefficient scan to code the transform coefficient levels. Through the Transform Coefficient Scanning method This allows us to change the two-dimensional block shape coefficients into one-dimensional vectors.
[0060] Coding parameters are coded like syntax elements. Only the information (flags, indexes, etc.) that is encoded by the decoder and signaled to the decoder It can also include information derived from the encoding or decoding process, and can be used to encode or decode an image. It can mean the information required for decoding, e.g., unit / block size Size, unit / block depth, unit / block division information, unit / block division structure Structure, whether it is a quadtree division, whether it is a binary tree division, the direction of the binary tree division (horizontal or vertical), Binary tree partitioning type (symmetric or asymmetric), intra-frame prediction mode / direction, reference sample Predicted block filtering method, predicted block filtering method, predicted block filter tap , prediction block filter coefficient, inter-frame prediction mode, motion information, motion vector, reference image index, inter-picture prediction direction, inter-picture prediction indicator, reference picture list, reference picture, motion motion vector prediction candidate, motion vector candidate list, merge mode use / non-use, merge candidate, Merge candidate list, whether to use skip mode, type of interpolation filter, interpolation Filter taps, interpolation filter coefficients, motion vector size, precision of motion vector representation, Conversion type, conversion size, whether primary conversion is used, whether secondary conversion is used, primary conversion index, secondary transform index, residual signal presence / absence information, coding block pattern (Co coded Block Pattern, coded block flag k Flag), quantization parameter, quantization matrix, whether to apply intra-screen loop filter, In-screen loop filter coefficient, in-screen loop filter tap, in-screen loop filter shape / Form, whether to apply deblocking filter, deblocking filter coefficient, deblocking King filter taps, deblocking filter strength, deblocking filter shape / Form, whether adaptive sample offset is applied, adaptive sample offset value, adaptive Sample offset categories, adaptive sample offset types, adaptive loop fills Whether to apply a filter, adaptive in-loop filter coefficients, adaptive in-loop filter taps, Adaptive loop filter shape / form, binarization / de-binarization method, context model determination method method, context model update method, whether regular mode is executed, whether bypass mode is executed Execution status, context bin, bypass bin, conversion coefficient, conversion coefficient level, conversion coefficient Level scanning method, image display / output order, slice identification information, slice Type, slice division information, tile identification information, tile type, tile division information, picture At least one value of the type, bit depth, information for the luminance signal or the color difference signal Or a combination may be included in the coding parameters.
[0061] Here, the flag or index is called signaling. The encoder uses the corresponding flag or index as an entropy code. It means to include it in the bitstream by using py encoding. The decoder can extract the flag or index from the bitstream. This can mean entropy decoding. Cut.
[0062] When the encoding device 100 performs encoding using inter prediction, the encoded current image is , can be used as a reference image for other images that will be processed later. 0 can further restore or decode the current coded image, and the restored or decoded The resulting image can be saved as a reference image.
[0063] The quantized levels are dequantized in the dequantization unit 160. ) and can be inverse transformed by the inverse transform unit 170. The transformed and / or inverse transformed coefficients may be combined with the prediction block via adder 175. The reconstruction is performed by combining the inverse quantized and / or inverse transformed coefficients with the prediction block. A reconstructed block can be generated. Here, the dequantization and / or the inverse transformed coefficients have been inverse quantized and / or inverse transformed. It can refer to a coefficient or to a reconstructed residual block.
[0064] The reconstructed block may be passed through a filter unit 180. The filter unit 180 performs deblocking. Deblocking filter, sample adaptive offset ( Sample Adaptive Offset (SAO), adaptive loop filter (A At least one restoration block, such as an Adaptive Loop Filter (ALF), is used. The filter unit 180 is an in-loop filter (in It is also called a .times.-loop filter. The deblocking filter can remove block noise that occurs at the boundaries between blocks. To determine whether to perform deblocking filtering, the Apply deblocking filters to the current block based on the pixels contained in some columns or rows. You can decide whether to apply a deblocking filter to a block. When applied, different filters are used depending on the required deblocking filtering strength. The data can be applied.
[0065] To compensate for coding errors using sample adaptive offsets, the pixel values are appropriately adjusted. An offset value can be added. The sample adaptive offset is Correcting the offset between the blocked image and the original image on a pixel-by-pixel basis After dividing the pixels in the image into a certain number of regions, an offset is applied. A method to determine the area to be scanned and apply an offset to that area, or to use edge information for each pixel A method can be used to apply an offset taking into account the information. The adaptive loop filter performs filtering based on the value obtained by comparing the restored image with the original image. After dividing the pixels contained in the image into predetermined groups, Determines which filters should be applied to which groups and filters differently for each group. The information related to whether or not to apply an adaptive loop filter can be stored in the coding unit. It can be signaled by each coding unit (CU) and responds to each block. Depending on the input signal, the shape and filter coefficients of the adaptive loop filter applied may vary.
[0066] The reconstructed block or image that has passed through the filter unit 180 is stored in the reference picture buffer 190. FIG. 2 is a block diagram showing the configuration of one embodiment of a decoding device to which the present invention is applied. This is a diagram.
[0067] The decoding device 200 may be a decoder, a video decoding device or an image decoding device.
[0068] Referring to FIG. 2, the decoding device 200 includes an entropy decoding unit 210, an inverse quantization unit 220, and an inverse quantization unit 230. 20, an inverse transform unit 230, an intra prediction unit 240, a motion compensation unit 250, an adder 255, a filter The image processing unit 200 may include a filter unit 260, and a reference picture buffer 270.
[0069] The decoding device 200 receives the bitstream output from the encoding device 100. The decoding device 200 can decode a bitstream stored in a computer-readable recording medium. Receives a stream or a bit stream streamed over a wired or wireless transmission medium. The decoding device 200 can receive an intra-frame for the bitstream. The decoding device 200 can perform decoding in either the single mode or inter mode. A restored image or a decoded image can be generated through the encoding. The image or the decoded image can be output.
[0070] If the prediction mode used for decoding is intra mode, the switch is changed to intra. If the prediction mode used for decoding is inter mode, the switch is It can be converted into a tar.
[0071] The decoding device 200 decodes the input bitstream and generates a reconstructed residual block. You can get the reconstructed residual block. The reconstructed residual block and the predicted block are Once obtained, the decoding device 200 adds the reconstructed residual block and the predicted block. By this, it is possible to generate a reconstructed block to be decoded. The block is sometimes called a block.
[0072] The entropy decoding unit 210 performs entropy decoding based on a probability distribution for the bitstream. By performing peak decoding, symbols can be generated. The generated symbols are , can contain symbols in quantized level form, where entropy decoding The method may be the inverse of the entropy coding method described above.
[0073] The entropy decoding unit 210 performs entropy decoding of the transform coefficients to decode the transform coefficient levels. Converting one-dimensional vector view factors into two-dimensional block view factors by scanning method can be done.
[0074] The quantized levels can be inversely quantized by the inverse quantization unit 220 and inversely transformed by the inverse transform unit 230. The quantized levels are the result of inverse quantization and / or inverse transformation and can be reconstructed. In this case, the inverse quantization unit 220 generates the quantized residual block. A quantization matrix can be applied to the bell.
[0075] When the intra mode is used, the intra prediction unit 240 predicts the area around the block to be decoded. Prediction is performed by performing spatial prediction using pixel values of already decoded blocks of You can create blocks.
[0076] When inter mode is used, the motion compensation unit 250 calculates the motion vectors and the reference picture. By performing motion compensation using the reference image stored in the image buffer 270, the predicted block is The motion compensation unit 250 generates a block when the value of the motion vector is an integer value. If the reference image does not have a fixed pixel size, an interpolation filter is applied to a part of the reference image to generate a predicted block. To perform motion compensation, the corresponding coding unit is generated based on the coding unit. The motion compensation method of the prediction unit included in the unit is skip mode, merge mode, A It is possible to determine whether the mode is MVP mode or current picture reference mode. This allows motion compensation to be performed according to each mode.
[0077] The adder 225 adds the reconstructed residual block and the predicted block to generate a reconstructed block. The filter unit 260 can generate a deblocking filter, a sample adaptive filter, At least one of the offset and adaptive loop filter is applied to the reconstruction block or reconstruction image. The filter unit 260 can be applied to the image. The filter unit 260 can output the restored image. The blocks or reconstructed images are stored in the reference picture buffer 270 and used for inter prediction. can.
[0078] FIG. 3 is a schematic diagram showing the division structure of an image when encoding and decoding the image. 1 illustrates schematically an embodiment in which one unit is divided into multiple sub-units.
[0079] To efficiently divide an image, the coding unit (Cod) is used for encoding and decoding. A coding unit (CU) can be used as the basic unit for image coding / decoding. In addition, when encoding / decoding images, both intra-frame and inter-frame modes can be used. The coding unit can be used as a unit in which the prediction, Used for transform, quantization, inverse transform, inverse quantization, or encoding / decoding processes of transform coefficients It can be a basic unit.
[0080] Referring to FIG. 3, an image 300 is divided into the largest coding units (Largest Coding Units). The data is divided into LCUs (Legacy Units), and the division structure is determined for each LCU. LCU is a coding tree unit (CTU) The terms can be used interchangeably. Division of a unit means division of the block corresponding to the unit. The block division information includes information about the depth of the unit. The depth information may indicate how many times and / or to what extent the unit is divided. Each unit is based on a tree structure and stores depth information. Each divided subunit has depth information. The depth information indicates the size of a CU and can be saved for each CU.
[0081] The division structure is a coding unit (CU) division structure within the LCU 310. This distribution can mean a distribution of one CU in multiples (2, 4, 8, 16, etc.). This can be determined by whether or not to divide the CU into CUs (a positive integer of 2 or more, including CUs). The width and height of the CU generated by division are half the width and height of the CU before division, respectively. or the width and height of the CU before division are smaller than the width and height of the CU before division depending on the number of divisions. It can have a size smaller than its width. A CU can be recursively divided into multiple CUs. The division of U can be done recursively to a predefined depth or to a predefined size. For example, the depth of the LCU is 0, which is the smallest coding unit (SCM). The depth of the LCU (Large Scale Unit; SCU) can be a predefined maximum depth. As mentioned above, SCU is the coding unit with the maximum coding unit size. , may be a coding unit having the minimum coding unit size. When division begins, the depth of the CU is increased by 1 each time the width and / or height of the CU is reduced by the division. increases by one.
[0082] Also, information on whether a CU is divided can be expressed through CU division information. The partition information can be 1 bit of information. All CUs except SCU contain the partition information. For example, if the value of the division information is the first value, the CU does not need to be divided. If the value of the division information is the second value, the CU may be divided.
[0083] Referring to Figure 3, a depth 0 LCU can be a 64x64 block. 0 is the minimum depth. Yes, a depth 3 SCU can be 8x8 blocks. 3 is the maximum depth possible. 32 CUs of 32 and 16x16 blocks can be expressed with depth 1 and depth 2, respectively. .
[0084] For example, if one coding unit is divided into four coding units, the divided The width and height of the four coding units are the width and height of the coding unit before division. For example, a 32x32 size If a coding unit is divided into four coding units, the four divided coding units Each unit can have a size of 16x16. One coding unit has four When the coding unit is divided into quad-trees, the coding unit is It can be said that it was divided into
[0085] For example, if one coding unit is split into two coding units, the split The width or height of the two coding units is the same as the width or height of the coding unit before division. It can have half the size compared to the vertical width. For example, a 32x32 size code If a coding unit is vertically divided into two coding units, the two divided coding units Each coding unit can have a size of 16x32. When divided into coding units, the coding units are represented as binary trees. The LCU 320 in Figure 3 applies both quad-tree and binary-tree partitioning. This is an example of an LCU.
[0086] FIG. 4 is a diagram for explaining an embodiment of the intra-frame prediction process.
[0087] The intra prediction mode can be a non-directional mode or a directional mode. , DC mode or Planar mode. A dimensional mode may be a prediction mode with a specific direction or angle. The prediction mode is at least one of a mode number, a mode value, a mode number, and a mode angle. The number of intra prediction modes can be one or more including the non-directional and directional modes. There can be M of them.
[0088] The number of intra-frame prediction modes can be fixed to N regardless of the block size. The number of intra prediction modes depends on the size of the block and / or the color components. For example, the larger the block size, the larger the The number of intra prediction modes can be large. Alternatively, the number of intra prediction modes for the luma component block can be This number may be greater than the number of intra-frame prediction modes for the chrominance component block.
[0089] To predict the current block intra-frame, the samples in the reconstructed neighboring blocks are , a step of checking whether the current block is available 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 selected. applying 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 predicted block for the current block, the predicted target size is used. Depending on the position of the sample in the predicted block, the reference samples above and to the left 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 of the current block. can generate a predicted 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. Entropy coding / decoding can be performed by predicting the prediction mode. If the intra-frame prediction modes of the surrounding blocks are the same, the current block is selected using predetermined flag information. Signaling information that the intra prediction modes of the block and the surrounding blocks are the same In addition, among the intra-frame prediction modes of multiple surrounding blocks, the intra-frame prediction mode of the current block can be selected. Indicator information for the same intra prediction mode as the prediction mode may be signaled. If the intra prediction modes of the current block and the surrounding blocks are different, By performing entropy coding / decoding based on the intra-frame prediction mode of the current block, The intra-frame prediction mode information of the block can be entropy coded / decoded. Hereinafter, a method for reducing an error in intra-frame prediction by performing function-based intra-frame prediction and The device will now be described.
[0093] Intra-frame prediction, which is used for image compression, generally produces larger prediction errors than inter-frame prediction. In particular, the target sample for intra-frame prediction is The further away from the reference sample used, the larger the prediction error. In this case, the outer boundary of the block to be predicted is determined based on the direction of the selected intra prediction mode. Generate a predicted sample using extrapolation from a reference sample. Therefore, the samples in the block to be predicted have a different characteristic from the direction of the selected prediction mode. If the
[0094] The functions that can be used in the present invention are the normal function, the Laplacian function, ian function, cosine function, beta function, exponential function Conential function, Lognormal function, Gamma function Function, Pareto function, uniform function, triangular -(Triangular) function and logistic function There must be at least one function, and the type of function is not limited to this. The parameter may be defined as a function of the variance of the reference sample, or may be defined via a parameter obtained using a reference sample. Alternatively, an approximated function may be defined using one or more reference samples.
[0095] According to the present invention, a predicted sample for the current block is calculated by using a predetermined function. For example, the intra prediction according to the present invention can generate a normal function of Equation 1. This can be done.
number
[0096] The above equation 1 is a function of a univariate normal distribution that can be generated using a reference sample. In the above formula 1, x is the position information of the reference sample, and a is the mean of the normal distribution function. is the value, and is the position information of the peak value of the normal distribution. b is the standard deviation in the normal distribution The value indicates the degree of spread of the normal distribution. tude).
[0097] The univariate normal distribution of Equation 1 is approximated by each reference sample, and the approximation process is performed by Equation 3. This is as shown in equation 6.
[0098] Equation 2 is an integral equation that uses the integration of the normal distribution. The two integral terms of the integral equation can be approximated by the recurrence formulas of Equation 3 and Equation 4, respectively. can.
number
[0099] When we find the equation that minimizes the error based on the recurrence formula of Equation 3 and Equation 4, A and B are It can be expressed as in Equation 5.
[0100]
number
number
number
[0101] The operation of function-based intra prediction can be explained in three cases. When defining action categories 1, 2, and 3, action category 1 is a function-based screen. This is the case when only intra prediction is used for intra prediction coding. The operations of operation category 1 are as follows: be.
[0102] The intra prediction unit 120 of FIG. 1 generates one or more functions to perform function-based The encoder can predict the One way to select a function is to use the rate-distortion cost function. We can select the function that minimizes the rate-distortion cost. The variables required to define a function can be determined for each type of function. A reference sample can be used to determine the image to be coded. Or it is possible to use all or part of an area of an already coded image. can.
[0103] FIG. 5 is a diagram showing an embodiment in which an index is assigned to a mode used in intra-frame prediction. is.
[0104] To indicate the selected prediction mode for intra prediction, the index shown in FIG. In this case, the index indicating the selected prediction mode is , various methods for transmitting syntax elements of the bitstream. For example, the index may be encoded and / or transmitted in a number of steps. SPS (Sequence Parameter Set), VPS (Video Pa CU(Coding Unit), CTU(Coding Unit) Tree Unit), TU(Transform Unit), PU(Predict ion Unit), Slice, GOP (Group Of Pictures) units The transmission can be performed through at least one of the following stages: The encoder encodes an index indicating a selected prediction mode for intra prediction. The encoder can then encode the variables that define the function. It transmits information that can be received and decoded by a decoder.
[0105] The variables that define the functions can be classified into two groups. The variables are references that have already been received internally by the decoder, even if the encoder does not transmit them to the decoder. Using the sample or the image data already received or already restored, the corresponding variable value is calculated by itself. Therefore, the decoder can obtain an index indicating the prediction mode. When receiving the data, it automatically estimates (induces) the variables corresponding to variable group 1 and performs in-screen prediction. can be used for.
[0106] Variables in variable group 2 are characterized in that the encoder transmits their values to the decoder. Alternatively, depending on the implementation, the decoder may calculate the function indicated by the index with a given precision. After estimating (inducing) it, the function is determined more precisely using the values of the variables belonging to variable group 2. In this case, the decoder may use an index indicating the intra prediction mode. When receiving the frame, variables corresponding to variable group 2 are received and used for intra-frame prediction. can.
[0107] In addition to function-based intra prediction, motion classification 2 also supports other intra prediction modes (e.g., directional Select one of the following modes: Of course, in this case too, the rate-distortion cost The prediction mode with the lowest prediction cost can be selected. The error prediction unit 120 selects prediction modes such as DC, Planar, and directional prediction, and function-based prediction. Measurement modes compete together to achieve the rate-distortion cost In this case, the function-based prediction mode can be selected. A code can use only one function or multiple functions.
[0108] FIG. 6 is a diagram showing an embodiment of index information of intra-frame prediction modes in the case of motion classification 2. is.
[0109] For operation type 2, the encoder performs a rate-distortion cost n cost) can be selected. To find the distortion cost, we calculate the rate-distortion cost for multiple intra prediction modes. For function-based forecasting, the function can be calculated by the type of function available. The variables that define the image can be estimated (induced) using reference samples or input images. When the mode with the smallest cost is determined, the index value as shown in FIG. In this case, the index is SPS, VPS, CU, CTU, TU. Through at least one of various stages such as PU, Slice, GOP unit, etc. As mentioned above, the variable group 1 that corresponds to the function-based mode can be transmitted. The explanation for variable group 2 is the same as that for action category 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 the bitstream input and performs entropy decoding. The prediction error signal can be restored through inverse transform, inverse quantization, etc. The error signal is combined with the predicted samples to obtain the reconstructed image. A prediction mode index indicating an intra prediction method is transmitted to generate a sample. The data can be received from the encoder via a bitstream and decoded (S710). In step S720, the prediction mode index indicates a function-based intra prediction. It can be determined whether or not
[0111] If the prediction mode index indicates a function-based intra prediction (i.e. If the answer is Yes in S720, the variables for the corresponding mode can be derived (S730). If variable group 1 exists in the prediction mode indicated by the prediction mode index, The variable group 1 can be derived using edge reference samples, etc. If variable group 2 exists in the forecast mode indicated by the box, The corresponding variable values are derived by parsing (decoding) them from the received bitstream. Variables derived based on surrounding reference samples (variable group 1) ) and variables derived by parsing the bitstream (variable group 2) A function is generated based on at least one of the above (S740), and a prediction is performed using the generated function. A measurement sample can be generated (S750). If the prediction mode index does not indicate function-based intra prediction (i.e. , S720 No), DC, Planar and Angular prediction modes A predicted sample can be generated by performing intra-frame prediction based on one of these. Cut (S750).
[0112] In the case of operation category 2, as mentioned above, DC, Planar, directional prediction, and function prediction are used. A prediction mode index indicating one of the prediction modes to be used for decoding is used. However, it is not limited to this and may be possible to grasp the intra-prediction mode. By signaling the information (e.g., FBIP_flag), one function or can use multiple functions. FBIP_flag(Function Base The function-based Intra Prediction Flag (IFF) is a It may be information indicating whether intra prediction is performed.
[0113] The encoder encodes the FBIP_flag and transmits it to the decoder via the bitstream. The decoder can receive the FBIP_flag from the bitstream.
[0114] FIG. 8 is a diagram for explaining another embodiment of the operation of the decoder that performs operation classification 2. In FIG.
[0115] In step S810, the FBIP_flag can be decoded from the bitstream. In step S820, the FBIP_flag value can be checked. If the g value is the first value, the decoder uses prediction mode information such as DC, Planar, and directional prediction. The function-based prediction mode information and related information (e.g., For example, information about the variable values that fall under variable group 2) is decoded from the bitstream. In addition, the decoder can perform the variable grouping by using surrounding reference samples, etc. Induce the variables corresponding to loop 1 and use them based on additional parsed information from the bitstream. Based on this, the variables corresponding to variable group 2 can be derived (S840). A function is generated using the variables corresponding to the variable group 1 and variable group 2 (S85 0), a predicted sample can be generated using the generated function (S870).
[0116] If the FBIP_flag value is the second value, the decoder uses the DC, Planar, and Direction The prediction mode information such as the sex prediction is parsed (S860), and the parsed prediction mode is Intra-screen prediction can be performed using one of the methods specified by the IEEE 802.11a: DC, Planar, or directional prediction. The second value may be, for example, 0 (S870).
[0117] For motion category 3, it is generated by prediction modes such as DC, Planar, and directional prediction. The predicted samples are complemented with additional information obtained through a function-based prediction mode. The intra prediction unit 120 of FIG. 1 can perform DC, planar, directional prediction, etc. The prediction mode is complemented with additional information obtained through function-based intra-frame prediction. The above-mentioned interpolation can be realized by a weighted sum or a weighted product. The source intra prediction can use only one function or multiple functions.
[0118] The encoder of operation category 3 has a rate-distortion cost The intra prediction mode that minimizes the DC and Planar , predicted samples generated through prediction modes such as directional prediction and function-based imputation. Using the generated prediction samples, the rate-distortion cost can be calculated. If function-based prediction is used as the imputation mode, set FBIP_flag to the first value (e.g. For example, it can be determined to be 1) and transmitted. If the function-based completion mode is not used, In this case, FBIP_flag may be determined to be a second value (for example, 0) and transmitted.
[0119] FBIP has the lowest cost when function-based prediction is used as the imputation mode. _flag can be determined to be 1 and coded. In this case, the index shown in Figure 5 is transmitted. In this case, the index can be SPS, VPS, CU, CTU, TU, PU, Sl It can be transmitted through at least one of multiple stages such as ice, GOP unit, etc. The reason is as mentioned above. The explanation for group 2 is the same as that for action category 1.
[0120] FIG. 9 is a diagram for explaining an embodiment of the operation of a decoder that performs operation classification 3. A decoder that performs operation classification 3 receives a bitstream as input, performs entropy decoding, inverse decoding, and The prediction error signal can be restored through transformation, inverse quantization, etc. The difference signal can be combined with the prediction samples to obtain the reconstructed image.
[0121] The decoder generates prediction samples based on the prediction mode, such as DC, Planar, or directional prediction. Then, FBIP_flag can be used to generate the bitstream (S910). If the FBIP_flag is a second value (for example, 0), If step S930 is No, the generated prediction sample is used as the final prediction sample without any additional process. It can be determined as a sample (S970).
[0122] FBIP_flag is a first value (for example, 1) (Yes in step S930), and the selected If a variable group 1 exists that corresponds to the selected function-based forecasting mode, the marginal reference sample is Using a pull or other method, it is possible to induce the variable values that correspond to variable group 1. If there is a variable group 2 that corresponds to the selected function-based forecasting mode, The variable value corresponding to 2 can be decoded from the bitstream (S940). Variables obtained from the reference sample (variable group 1) and further parsed from the bitstream Generate a function based on at least one of the variables (variable group 2) derived from the (S950), and a predicted sample can be generated using the generated function (S960). ).
[0123] Finally, the prediction samples generated using prediction modes such as DC, Planar, and directional prediction are Using the sample (the prediction sample generated in step S910) and the function-based prediction mode The weighted sum of the predicted samples generated in step S960 Alternatively, the final predicted sample can be generated by multiplying the weights (S970).
[0124] Or, generated via at least one of the variable group 1 or variable group 2 You can also generate offset samples using the functions provided. For prediction samples generated through a prediction mode such as directional prediction, the offset Samples can also be added or subtracted to generate the final predicted sample. All predicted samples and offset samples generated via the function-based prediction mode are can also be used to generate the final predicted samples.
[0125] The method for calculating the weighted sum based on the motion classification 3 can be performed based on the following Equation 8: .
number
[0126] The method of multiplying the weight according to the action category 3 can be performed based on the following Equation 9.
number
[0127] In Equation 9, P' is a predicted sample generated by multiplying the weight, P is a DC, and Pla is a nar, the predicted samples generated by directional prediction, etc., and α is the function-based weight. That is, the weight multiplication method can be DC, Planar, Directional A method that multiplies predicted samples generated by prediction modes such as gender prediction with function-based weights. At this time, for example, when calculating the weight based on the normal distribution function, the amplitude (ampl c in Equation 6, which indicates the
number
[0128] Using the surrounding reference samples of the current block (e.g., PU), we calculate the function (e.g., normal distribution) Function-based prediction allows predicting the variables of samples by referring to the original signal of the current block. By comparing the variances of the function-based prediction samples, the variables of the current block can be predicted. To generate the samples, the function-based prediction samples are used, which are already defined in the encoder / decoder. Instead of the N predefined intra prediction modes (e.g., 35 intra prediction modes), It can be used.
[0129] When performing intra prediction on the current block, the extrapolated intra prediction mode (e.g. For example, the N intra prediction modes already defined in the encoder / decoder are added to the function-based Adding intra prediction mode reduces the rate-distortion cost t) to compete with each other to use a better prediction mode. Intra prediction mode with extrapolation (e.g., N predefined values already in the encoder / decoder) The predicted sample is calculated by weighting the intra-frame prediction mode of the The predicted samples of the current block can be sent to the encoder / decoder as When generating based on the defined N intra-frame prediction modes, the prediction is performed so as to follow the distribution of the function. It is also possible to realize a function-based in-screen prediction technique depending on the attributes of the current block. Here, the attribute determines whether to apply the modulus. ,shape (e.g., square or not, non-square in horizontal / vertical direction, etc.), depth (e.g., , division depth), existence of transform coefficients, existence of transform skip, linear or quadratic transform, luminance component The function-based intra prediction may refer to at least one of the chrominance and color difference components. The technique can be applied only to a particular component (eg, the luminance component).
[0130] Whether to apply function-based intra prediction to the current block depends on the The neighboring blocks are adjacent to a predetermined position of the current block. At least one of the lower left, left, upper left, upper and upper right blocks It could also be one.
[0131] FIG. 10 shows an example of the surrounding reconstructed sample lines available for intra-frame prediction of the current block. FIG.
[0132] As shown in FIG. 10, one or more reconstructed sample lines adjacent to the current block are used to , a reference sample can be constructed.
[0133] For example, select one of the multiple restored sample lines shown in FIG. 10, The selected reconstructed sample line can be used to construct the reference sample. The restored sample line is fixed to a specific line from multiple restored sample lines. Alternatively, the selected restoration sample line may be a plurality of restoration sample lines. A specific line can be adaptively selected from the following. An indicator for this can be signaled.
[0134] For example, one or more of the reconstructed samples in the multiple reconstructed sample lines shown in FIG. A combination of lines can be used to construct a reference sample. A sample can consist of a weighted sum (or weighted average) of one or more reconstructed samples. The weights used in the weighted sum can be assigned based on the distance from the current block. The closer to the current block, the greater the weight can be assigned. For example, the following formula 10 can be used: Cut.
number
[0135] Alternatively, the prediction mode may be determined based on at least one of the distance from the current block and the intra-frame prediction mode. In this case, at least one of the mean, maximum, minimum, median, and mode of multiple restored samples is used. A single value can be used to construct a reference sample.
[0136] Alternatively, a reference sample can be calculated based on the change in the values of consecutive restored samples. For example, if the values of two consecutive reconstructed samples differ by more than a threshold, whether the values of consecutive reconstructed samples change continuously or discontinuously. The reference sample can be constructed based on at least one of the following: If c[-1, -1] and rec[-2, -1] differ by more than a threshold, then ref[-1, - 1] is determined as rec[-1,-1] or rec[-1,-1] is given a predetermined weight. For example, the values of several consecutive reconstructed samples may be determined as the current value. If the reference sample ref[-1, -1]=rec changes by n as it approaches the current block, It can be determined as [-1, -1]-n.
[0137] The number, position, and construction method of the restored sample lines used to construct the reference sample At least one of them has the upper or left boundary of the current block as a picture, slice, or tag. If it corresponds to at least one boundary of the file or coding tree block (CTB), Therefore, they can be determined differently.
[0138] For example, when constructing a reference sample using restored sample lines 1 and 2, If the upper boundary of the current block is the CTB boundary, the upper side is the restored sample line. 1 can be used for the left side and reconstruction sample lines 1 and 2 can be used for the right side. For example, when constructing a reference sample using the restored sample lines 1 to 4, If the upper boundary of the current block is the CTB boundary, the upper side is the restored sample line. 1 and 2, and for the left side we can use reconstructed sample lines 1 to 4.
[0139] For example, when constructing a reference sample using the restored sample line 2, If the upper boundary of the block is the CTB boundary, use the restored sample line 1 for the upper side. For the left side, the reconstruction sample line 2 can be used.
[0140] The reference sample lines constructed through the above process may be one or more. The method of constructing the reference samples on the upper side of the current block is different from the method of constructing the reference samples on the left side of the current block. It could be.
[0141] Encode information indicating that the reference sample was constructed using at least one of the above methods. For example, it can indicate whether multiple reconstruction sample lines were used. It can encode / decode information.
[0142] As mentioned above, one or more reference lines derived from multiple reference sample lines The sample can be used as a reference sample in the present invention.
[0143] These embodiments may be implemented in a similar manner in the encoder and decoder. The order of applying the above embodiments may be different between the encoder and the decoder. The decoder and the decoder may be the same.
[0144] The above embodiment can be performed for each of the luminance and color difference signals. The above embodiment for can be carried out in the same manner.
[0145] The shape of the block to which the embodiment of the present invention is applied may be square or non-square. It can have a non-square shape.
[0146] The embodiments of the present invention include coding blocks, prediction blocks, transformation blocks, blocks, Current block, coding unit, prediction unit, transform unit, unit and current unit The size of the above embodiment can be applied according to at least one of the sizes of the above embodiment. The minimum and / or maximum size may be defined for the condition to apply, The embodiment may be defined as a fixed size to which the embodiment is applied. In the size, the first embodiment may be applied, and in the second size, the second embodiment is applied. That is, the above-described embodiment can be applied in a composite manner depending on the size. The above embodiment may be applied only when the size is greater than or equal to the minimum size and less than or equal to the maximum size. That is, the above embodiment is applicable only when the block size is within a certain range. This may also be done.
[0147] For example, the above embodiment is applicable only when the size of the current block is 8x8 or more. For example, the above embodiment can be applied only when the size of the current block is 4x4. For example, the above embodiment can be implemented only if the size of the current block is 16x16 or less. For example, if the current block size is 16x16 or more and 64x64 or less, The above embodiment is applicable only when
[0148] The embodiments of the present invention can be applied according to the temporal layer. In order to identify the temporal layer to which the above embodiment is applicable, a separate identifier (identifier) is used. ifier) is signaled and the previous time is assigned to the temporal hierarchy specified by the identifier. The identifier here is the lowest hierarchy to which the embodiment can be applied and and / or the top layer, indicating the specific layer to which the embodiment applies. In addition, a fixed temporal hierarchy to which the embodiment is applied may be defined. This may be done.
[0149] For example, the above embodiment is applicable only when the temporal hierarchy of the current image is the lowest hierarchy. For example, the above embodiment can be implemented only if the temporal layer identifier of the current image is equal to or greater than 1. For example, the above embodiment can be applied only when the temporal hierarchy of the current image is the highest hierarchy. The state can be applied.
[0150] A slice type to which an embodiment of the present invention is applied is defined, The above-described embodiments of the present invention can be applied depending on the type of slice.
[0151] In the above-described embodiments, the methods are flow-charted in a series of steps or units. Although the present invention is described based on the chart, it is not limited to the order of these steps. Rather, certain steps may be performed in a different order or simultaneously with different steps than those described above. In addition, a person having ordinary skill in the art can easily understand that The steps shown in the flow chart are not exclusive and include other steps or One or more steps in the chart may be deleted without affecting the scope of the invention. You will be able to understand that.
[0152] The above-described embodiments include examples of various aspects. Although it is not possible to describe the possible combinations, a person having ordinary skill in the art It will be appreciated that other combinations are possible. , and all various alternatives, modifications and variations that fall within the scope of the following claims.
[0153] The above-described embodiments of the present invention can be implemented via various computer components. The program instructions may be stored on a computer-readable recording medium. The computer-readable media may contain, alone or in combination with, program instructions, data files, data structures, and the like. The computer-readable recording medium may include a program recorded thereon. The instructions may be those specially designed and constructed for the purposes of the invention, or computer software. Examples of computer-readable recording media include those known and available to those skilled in the art. Magnetic media such as hard disks, floppy disks, and magnetic tapes, CD-ROMs, Optical recording media such as DVDs, floptical disks, etc. magneto-optical media, ROM, RAM hardware specially configured to store and execute program instructions, such as flash memory Examples of program instructions include machine language generated by a compiler. Not just code, but also high-level language that can be executed by a computer using an interpreter, etc. The hardware device may include one or more processors for carrying out the processing of the present invention. can be configured to operate as a software module of the
[0154] As described above, the present invention has been described with reference to specific details such as specific components, limited embodiments, and drawings. which is provided to facilitate a more general understanding of the present invention. The present invention is not limited to the above-described embodiments. Those skilled in the art will be able to make various modifications and variations from such descriptions. This can be done.
[0155] Therefore, the concept of the present invention should not be limited to the above-described embodiment, but should be understood to be within the scope of the following description. Not only the scope of the claims, but also all modifications equivalent to or equivalent to the scope of the claims. It can be said that the above-mentioned items fall within the scope of the concept of the present invention. [Industrial Applicability]
[0156] The present invention can be used for encoding / decoding images.
Claims
[Claim 1] decoding a prediction mode index; determining whether the prediction mode index indicates function-based intra prediction; Pu and, If the prediction mode index indicates function-based intra prediction, deriving variables for generating a function based on the induced variables; and performing intra-frame prediction using the generated function.