Image encoding / decoding method and device, and recording medium storing bit stream

By partitioning image blocks and applying weight-based prediction in mixed areas, the method improves inter-frame prediction accuracy and encoding efficiency, addressing the challenge of high-resolution image data volume and costs.

CN119137941APending Publication Date: 2024-12-13HYUNDAI MOTOR CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380038337.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-06-20
Filing Date
2023-06-19
Publication Date
2024-12-13

AI Technical Summary

Technical Problem

The increasing demand for high-resolution, high-quality images leads to a significant increase in data volume, resulting in higher transmission and storage costs, and existing image encoding/decoding technologies lack efficiency in handling mixed areas of partition boundaries.

Method used

An image encoding/decoding method that partitions a current block into two partitions, determines a mixed area surrounding the partition boundary, and calculates a final prediction block using specific weights based on the mixed area's width, allowing for improved prediction accuracy and efficiency.

Benefits of technology

The method enhances inter-frame prediction accuracy, leading to improved overall encoding efficiency and reduced data transmission and storage costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119137941A_ABST
    Figure CN119137941A_ABST
Patent Text Reader

Abstract

Provided in the present invention is an image decoding method comprising the steps of: partitioning a current block into a first partition and a second partition according to a partition boundary; determining a first prediction block for the first partition and a second prediction block for the second partition; determining the width of a mixing region surrounding the partition boundary; based on the width of the mixed region, determining a first weighted value and a second weighted value of a final prediction sample for determining the mixed region; and determining a final prediction block from the first prediction block and the second prediction block based on the first weighting value and the second weighting value.
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 and apparatus and a recording medium storing a bit stream. More specifically, the present invention relates to an image encoding / decoding method and apparatus using an inter-frame prediction method and a recording medium storing a bit stream. Background Art

[0002] Recently, in various application fields, the demand for high-resolution, high-quality images such as ultra-high definition (UHD) images is increasing. As image data becomes higher in resolution and quality, the amount of data increases relatively compared to existing image data. Therefore, when image data is transmitted using a medium such as existing wired and wireless broadband lines or stored using existing storage media, transmission and storage costs increase. In order to solve these problems that arise as image data becomes higher in resolution and quality, efficient image encoding / decoding technology for images with higher resolution and quality is required.

[0003] In inter prediction, a method of partitioning a codec unit block into partitions having various shapes and performing prediction according to different motion information for each partition has been discussed. At this time, various methods for accurately predicting a mixed area of ​​a partition boundary of a partition have been discussed. Summary of the invention

[0004] Technical issues

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

[0006] Another object of the present invention is to provide a recording medium storing a bit stream generated by the image decoding method or apparatus provided by the present invention.

[0007] Technical Solution

[0008] An image decoding method according to an embodiment of the present invention may include: partitioning a current block into a first partition and a second partition according to a partition boundary; determining a first prediction block for the first partition and a second prediction block for the second partition; determining a width of a mixed area surrounding the partition boundary; determining a first weight and a second weight for determining a final prediction sample of the mixed area based on the width of the mixed area; and determining a final prediction block from the first prediction block and the second prediction block based on the first weight and the second weight.

[0009] According to an embodiment, in the step of determining the width of the mixed area, the width of the mixed area may be determined based on the size value of the current block.

[0010] According to an embodiment, the width of the mixed area may be determined according to a size interval including a size value of the current block.

[0011] According to an embodiment, the width of the mixed area may be selected from a plurality of width candidates corresponding to a size interval including a size value of the current block.

[0012] According to an embodiment, the size value of the current block may be determined by at least one of the width of the current block, the height of the current block, the larger value of the width and height of the current block, the smaller value of the width and height of the current block, or the ratio of the width and height of the current block.

[0013] According to an embodiment, the width of the mixed region may be selected from a plurality of width candidates based on mixed region width information indicating the width of the mixed region parsed from a bitstream.

[0014] According to an embodiment, the width of the mixed area may be determined according to whether the current picture or the current slice including the current block is a screen content image.

[0015] According to an embodiment, when a current picture or a current slice including a current block is a screen content image, the width of the mixed area may be determined to be 0 or 1 / 4.

[0016] According to an embodiment, determining the first weight and the second weight may include determining a maximum value of the first weight and the second weight based on a width of the mixed region, and determining the first weight and the second weight based on the maximum value.

[0017] According to an embodiment, in the step of determining the maximum value of the first weight and the second weight, the maximum value of the first weight and the second weight may be set to increase as the width of the mixed region increases.

[0018] According to an embodiment, determining the first weight and the second weight may include determining a maximum value of the first weight and the second weight based on width candidates of the mixed area applied to the current block, and determining the first weight and the second weight based on the maximum value.

[0019] According to an embodiment, determining the maximum value of the first weight and the second weight may include determining the maximum value of the first weight and the second weight based on a maximum width candidate or a minimum width candidate among width candidates of the mixed area.

[0020] According to an embodiment, in determining the first weight and the second weight, the first weight and the second weight may be determined based on the location of the sample of the mixed region and the distance from the partition boundary.

[0021] According to an embodiment, the first weight and the second weight may be determined based on a non-linear function that receives as input the location of the sample of the mixed region and the distance of the partition boundary.

[0022] According to an embodiment, the nonlinear function may be composed of at least one of a higher-order function such as a quadratic function or higher, an exponential function, or a logarithmic function.

[0023] An image encoding method according to an embodiment of the present invention may include: partitioning a current block into a first partition and a second partition according to a partition boundary; determining a first prediction block for the first partition and a second prediction block for the second partition; determining a width of a mixed area surrounding the partition boundary; determining a first weight and a second weight for determining a final prediction sample of the mixed area based on the width of the mixed area; and determining a final prediction block from the first prediction block and the second prediction block based on the first weight and the second weight.

[0024] A non-transitory computer-readable recording medium according to an embodiment of the present invention may store a bit stream generated by an image encoding method.

[0025] A transmission method according to an embodiment of the present invention transmits a bit stream generated by an image encoding method.

[0026] The features briefly summarized above with respect to the present invention are merely exemplary aspects of the following detailed description of the invention and do not limit the scope of the invention.

[0027] Beneficial Effects

[0028] The present invention proposes various implementations of a method for adaptively determining the width of a mixed region in a geometric partitioning mode to improve the prediction accuracy of inter-frame prediction.

[0029] In addition, the present invention proposes various implementations of a method for determining a weight required for mixed region prediction in a geometric partitioning mode to improve the prediction accuracy of inter-frame prediction.

[0030] In the present invention, as the accuracy of inter-frame prediction is improved, the overall encoding efficiency can be improved. BRIEF DESCRIPTION OF THE DRAWINGS

[0031] Figure 1 is a block diagram showing the configuration of an encoding device according to an embodiment of the present invention.

[0032] Figure 2 is a block diagram showing the configuration of a decoding device according to an embodiment of the present invention.

[0033] Figure 3 FIG. 1 is a schematic diagram schematically showing a video coding system to which the present invention can be applied.

[0034] Figure 4 A method for generating a prediction signal for a mixed area around a partition boundary in a geometric partitioning mode is shown.

[0035] Figure 5 A graph showing the weight of the prediction signal for the first partition according to Equation 2 is shown.

[0036] Figure 6 The weights for various widths of the blended regions are shown.

[0037] Figure 7 The maximum value of the weight which is determined variably as a function of the width of the mixing region is shown.

[0038] Figure 8 An example of a graph of the weights of the prediction signal of the first partition with non-linearity is shown.

[0039] Fig. 9 Another example of a graph of the weights of the prediction signal of the first partition with non-linearity is shown.

[0040] Fig.10 An implementation of a prediction method according to a geometric partitioning pattern according to the present invention is shown.

[0041] Fig.11 A content streaming system to which an embodiment according to the present invention can be applied is exemplarily shown. DETAILED DESCRIPTION

[0042] Best Mode for Carrying Out the Invention

[0043] An image decoding method according to an embodiment of the present invention may include: partitioning a current block into a first partition and a second partition according to a partition boundary, determining a first prediction block for the first partition and a second prediction block for the second partition, determining a width of a mixed area surrounding the partition boundary, determining a first weight and a second weight for determining a final prediction sample of the mixed area based on the width of the mixed area, and determining a final prediction block from the first prediction block and the second prediction block based on the first weight and the second weight.

[0044] Modes for Carrying Out the Invention

[0045] The present invention may have various modifications and embodiments, and specific embodiments are shown in the drawings and described in detail in the detailed specification. However, this is not intended to limit the present invention to specific embodiments, but should be understood to include all modifications, equivalents or alternatives contained in the spirit and technical scope of the present invention. The same figure marks in the drawings indicate the same or similar functions in various aspects. For a clearer description, the shapes and sizes of the elements in the drawings can be provided by way of example. The detailed description of the exemplary embodiments described below refers to the drawings, which show specific embodiments by way of example. These embodiments are described in full detail to enable those skilled in the art to practice the embodiments. It should be understood that various embodiments are different from each other, but not necessarily mutually exclusive. For example, without departing from the spirit and scope of the present invention with reference to an embodiment, the specific shapes, structures and features described herein can be implemented in other embodiments. It should also be understood that without departing from the spirit and scope of the embodiment, the position or arrangement of each component in each disclosed embodiment can be changed. Accordingly, the detailed description set forth below is not intended to be restrictive, and the scope of the exemplary embodiments is limited only by the full range of equivalent forms assigned by the attached claims and these claims (if appropriately described).

[0046] In the present invention, the terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are only used for the purpose of distinguishing one component from another component. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component. The terms and / or include a combination of multiple related descriptive items or any item in multiple related descriptive items.

[0047] The components shown in the embodiments of the present invention are depicted independently to indicate different characteristic functions, and do not represent that each component is formed as a separate hardware or software configuration unit. That is, for ease of explanation, each component is listed and included as a separate component, and at least two of the components can be combined to form a single component, or one component can be divided into multiple components to perform functions, as long as it does not depart from the essence of the present invention, the embodiment in which the components are integrated and the embodiment in which each component is divided are also included in the scope of the present invention.

[0048] The terms used in the present invention are only used to describe specific embodiments and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In addition, some components of the present invention are not necessary components for performing necessary functions in the present invention, and can be optional components that are only used to improve performance. The present invention can be realized by only including necessary components for realizing the gist of the present invention and not including components that are only used to improve performance, and the structure that only includes necessary components and does not include optional components that are only used to improve performance is also included in the scope of the present invention.

[0049] In an embodiment, the term "at least one" may refer to one of a number greater than or equal to 1, such as 1, 2, 3, and 4. In an embodiment, the term "plurality" may refer to one of a number greater than or equal to 2, such as 2, 3, and 4.

[0050] Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. When describing the embodiments of the present specification, if it is determined that the detailed description of the related known configuration or function will obscure the subject of the present specification, the detailed description will be omitted, the same figure numerals will be used for the same components in the drawings, and the repeated description of the same components will be omitted.

[0051] Description of terms

[0052] Hereinafter, "image" may refer to a picture constituting a video, and may also refer to the video itself. For example, "encoding and / or decoding of an image" may refer to "encoding and / or decoding of a video", and may also refer to "encoding and / or decoding of one of the images constituting the video".

[0053] Hereinafter, "motion picture" and "video" may be used with the same meaning and may be used interchangeably. In addition, the target image may be an encoding target image as a target of encoding and / or a decoding target image as a target of decoding. In addition, the target image may be an input image input to an encoding device, and may be an input image input to a decoding device. Here, the target image may have the same meaning as the current image.

[0054] Hereinafter, “image”, “picture”, “frame” and “screen” may be used with the same meaning and may be used interchangeably.

[0055] Hereinafter, a "target block" may be an encoding target block as a target of encoding and / or a decoding target block as a target of decoding. In addition, a target block may be a current block as a target of current encoding and / or decoding. For example, "target block" and "current block" may be used with the same meaning and may be used interchangeably.

[0056] In the following, "block" and "unit" may be used with the same meaning and may be used interchangeably. In addition, a "unit" may be represented as including a luma component block and a chroma component block corresponding thereto, so as to distinguish it from a block. For example, a coding tree unit (CTU) may consist of a luma component (Y) coding tree block (CTB) and two chroma component (Cb, Cr) coding tree blocks associated therewith.

[0057] Hereinafter, "sample", "picture element", and "pixel" may be used with the same meaning and may be used interchangeably. Herein, a sample may represent a basic unit constituting a block.

[0058] Hereinafter, “inter-frame” and “inter-screen” may be used with the same meaning and may be used interchangeably.

[0059] Hereinafter, “intra-frame” and “intra-screen” may be used with the same meaning and may be used interchangeably.

[0060] Figure 1 is a block diagram showing the configuration of an encoding device according to an embodiment of the present invention.

[0061] 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 sequentially encode one or more images.

[0062] refer to Figure 1 The encoding device 100 may include: an image partitioning unit 110, an intra-frame prediction unit 120, a motion prediction unit 121, a motion compensation unit 122, a switch 115, a subtractor 113, a transform unit 130, a quantization unit 140, an entropy encoding unit 150, an inverse quantization unit 160, an inverse transform unit 170, an adder 117, a filtering unit 180 and a reference picture buffer 190.

[0063] In addition, the encoding device 100 may generate a bitstream including information encoded by encoding the input image, and output the generated bitstream. The generated bitstream may be stored in a computer-readable recording medium, or may be streamed through a wired / wireless transmission medium.

[0064] The image partitioning unit 110 can partition the input image into various forms to improve the efficiency of video encoding / decoding. That is, the input video consists of multiple pictures, and for compression efficiency, parallel processing, etc., a picture can be hierarchically partitioned and processed. For example, a picture can be partitioned into one or more tiles or slices, and then partitioned into multiple codec tree units (CTUs) again. Alternatively, a picture can first be partitioned into multiple sub-pictures defined as rectangular slice groups, and each sub-picture can be partitioned into tiles / slices. Here, sub-pictures can be used to support the function of partially independently encoding / decoding and transmitting pictures. Since multiple sub-pictures can be reconstructed separately, this has the advantage of easy editing in applications where multi-channel inputs are configured as one picture. In addition, tiles can be divided horizontally to generate bricks. Here, bricks can be used as basic units for parallel processing within a picture. In addition, a CTU can be recursively partitioned into a quad tree (quad tree, QT), and the terminal node of the partition can be defined as a coding unit (Coding Unit, CU). The CU can be partitioned into a PU (Prediction Unit) as a prediction unit and a TU (Transform Unit) as a transform unit to perform prediction and partitioning. On the other hand, the CU can be used as a prediction unit and / or a transform unit itself. Here, for flexible partitioning, each CTU can be recursively partitioned into multi-type trees (MTT) and quadtrees (QT). Partitioning the CTU into multi-type trees can start from the terminal node of the QT, and the MTT can be composed of a binary tree (BT) and a triple tree (TT). For example, the MTT structure can be classified into a vertical binary split mode (SPLIT_BT_VER), a horizontal binary split mode (SPLIT_BT_HOR), a vertical ternary split mode (SPLIT_TT_VER), and a horizontal ternary split mode (SPLIT_TT_HOR). In addition, during partitioning, the minimum block size (MinQTSize) of the quadtree of the luminance block can be set to 16×16, the maximum block size (MaxBtSize) of the binary tree can be set to 128×128, and the maximum block size (MaxTtSize) of the ternary tree can be set to 64×64. In addition, the minimum block size (MinBtSize) of the binary tree and the minimum block size (MinTtSize) of the ternary tree can be specified as 4×4, and the maximum depth (MaxMttDepth) of the multi-type tree can be specified as 4. In addition, in order to improve the coding efficiency of the I slice, a dual tree of the CTU partition structure that uses luminance components and chrominance components differently can be applied. The above-mentioned quadtree structure may include a rectangular quadtree structure and a triangular quadtree structure that apply geometric partitioning.And the above-mentioned ternary tree structure may include a rectangular ternary tree structure and an asymmetric ternary tree structure applying geometric partitioning. The above-mentioned binary tree structure may include a rectangular binary tree structure and a geometric binary tree structure applying geometric partitioning. On the other hand, in P slices and B slices, the brightness and chrominance coding tree blocks (Coding Tree Block, CTB) within the CTU can be partitioned into a single tree sharing the coding tree structure.

[0065] The encoding device 100 may perform encoding on the input image in intra mode and / or inter mode. Alternatively, the encoding device 100 may perform encoding on the input image in a third mode other than intra mode and inter mode (e.g., IBC mode, palette mode, etc.). However, if the third mode has functional characteristics similar to those of the intra mode or inter mode, it may be classified as the intra mode or inter mode for ease of explanation. In the present invention, the third mode is classified and described separately only when a specific description of the third mode is required.

[0066] When the intra mode is used as the prediction mode, the switch 115 can switch to the intra mode, and when the inter mode is used as the prediction mode, the switch 115 can switch to the inter mode. Here, the intra mode can represent the intra prediction mode, and the inter mode can represent the inter prediction mode. The encoding device 100 can generate a prediction block for an input block of an input image. In addition, the encoding device 100 can encode a residual block using the residual of the input block and the prediction block after generating the prediction block. The input image can be referred to as the current image as the current encoding target. The input block can be referred to as the current block or the encoding target block as the current encoding target.

[0067] When the prediction mode is intra mode, the intra prediction unit 120 may use samples of the already encoded / decoded blocks around the current block as reference samples. The intra prediction unit 120 may perform spatial prediction of the current block by utilizing the reference samples, or generate prediction samples of the input block by spatial prediction. In this article, intra prediction may refer to intra-picture prediction.

[0068] As the intra prediction method, non-directional prediction modes such as DC mode and planar mode and directional prediction modes (for example, 65 directions) may be applied. Here, the intra prediction method may be expressed as an intra prediction mode or an intra-screen prediction mode.

[0069] When the prediction mode is the inter mode, the motion prediction unit 121 can retrieve the area that best matches the input block from the reference image in the motion prediction process, and derive the motion vector by using the retrieved area. In this case, the search area can be used as the area. The reference image can be stored in the reference picture buffer 190. Here, when encoding / decoding of the reference image is performed, it can be stored in the reference picture buffer 190.

[0070] The motion compensation unit 122 may generate a prediction block of the current block by performing motion compensation using a motion vector. Herein, inter prediction may mean inter-picture prediction or motion compensation.

[0071] When the value of the motion vector is not an integer, the motion prediction unit 121 and the motion compensation unit 122 may generate a prediction block by applying an interpolation filter to a partial area of ​​the reference picture. In order to perform inter-frame prediction or motion compensation, it may be determined based on the codec unit whether the motion prediction and motion compensation mode of the prediction unit included in the codec unit is one of the skip mode, merge mode, advanced motion vector prediction (AMVP) mode, and intra block copy (IBC) mode, and inter-frame prediction or motion compensation may be performed according to each mode.

[0072] In addition, based on the above-mentioned inter-frame prediction method, the affine (AFFINE) mode based on sub-PU prediction, the sub-block-based temporal motion vector prediction (SbTMVP) mode, the PU-based prediction and MVD merge (Merge with MVD, MMVD) mode and the geometric partitioning mode (Geometric Partitioning Mode, GPM) mode can be applied. In addition, in order to improve the performance of each mode, history based MVP (HMVP), paired average MVP (PAMVP), combined intra / inter prediction (CIIP), adaptive motion vector resolution (AMVR), bi-directional optical flow (BDOF), bi-predictive with CU Weights (BCW), local illumination compensation (LIC), template matching (TM), overlapped block motion compensation (OBMC), etc. can be applied.

[0073] The subtractor 113 may generate a residual block by utilizing the difference between the input block and the prediction block. The residual block may be referred to as a residual signal. The residual signal may represent the difference between the original signal and the prediction signal. Alternatively, the residual signal may be a signal generated by transforming or quantizing, or transforming and quantizing the difference between the original signal and the prediction signal. The residual block may be a residual signal of a block unit.

[0074] The transform unit 130 may generate a transform coefficient by performing a transform on the residual block, and output the generated transform coefficient. Herein, the transform coefficient may be a coefficient value generated by performing a transform on the residual block. When the transform skip mode is applied, the transform unit 130 may skip the transform of the residual block.

[0075] The quantization level may be generated by applying quantization to a transform coefficient or a residual signal. Hereinafter, the quantization level may also be referred to as a transform coefficient in an embodiment.

[0076] For example, a 4×4 luminance residual block generated by intra prediction is transformed using a base vector based on a discrete sine transform (DST), and the remaining residual block can be transformed using a base vector based on a discrete cosine transform (DCT). In addition, the transform block is partitioned into a quadtree shape of a block using a residual quad tree (RQT) technique, and after transforming and quantizing each transform block partitioned by the RQT, a coded block flag (cbf) can be transmitted when all coefficients become 0 to improve coding efficiency.

[0077] As another alternative, a Multiple Transform Selection (MTS) technique that selectively uses multiple transform bases to perform transforms can be applied. That is, instead of partitioning the CU into TUs through RQT, a function similar to TU partitioning can be performed through a sub-block transform (SBT) technique. Specifically, SBT is only applied to inter-prediction blocks, and unlike RQT, the current block can be partitioned into a size of 1 / 2 or 1 / 4 in the vertical or horizontal direction, and then the transform can be performed only on one of the blocks. For example, if the current block is partitioned vertically, the transform can be performed on the leftmost or rightmost block, and if the current block is partitioned horizontally, the transform can be performed on the topmost or bottommost block.

[0078] In addition, a low frequency non-separable transform (LFNST) can be applied, which is a secondary transform technique that additionally transforms the transformed residual signal into the frequency domain by DCT or DST. LFNST additionally performs a transform on a 4×4 or 8×8 low frequency region on the upper left side so that the residual coefficients can be concentrated on the upper left side.

[0079] The quantization unit 140 may generate a quantization level by quantizing the transform coefficient or the residual signal according to a quantization parameter (QP), and output the generated quantization level. Herein, the quantization unit 140 may quantize the transform coefficient by using a quantization matrix.

[0080] For example, a quantizer using a QP value of 0 to 51 may be used. Alternatively, if the image size is large and high coding efficiency is required, a QP of 0 to 63 may be used. In addition, a dependent quantization (DQ) method using two quantizers instead of one quantizer may be applied. DQ performs quantization using two quantizers (e.g., Q0 and Q1), but even if there is no signaling information about the use of a specific quantizer, the quantizer used for the next transform coefficient may be selected based on the current state through a state transition model.

[0081] The entropy encoding unit 150 may generate a bit stream by performing entropy encoding on the value calculated by the quantization unit 140 or the encoding parameter value calculated when encoding is performed according to the probability distribution, and output the bit stream. The entropy encoding unit 150 may perform entropy encoding on information about samples of an image and information for decoding an image. For example, the information for decoding an image may include a syntax element.

[0082] When entropy coding is applied, the symbol is represented so that a smaller number of bits are assigned to symbols with a high probability of occurrence and a larger number of bits are assigned to symbols with a low probability of occurrence, so the size of the bit stream for the symbol to be encoded can be reduced. The entropy coding unit 150 can use coding methods such as exponential Golomb, context-adaptive variable length coding (context-adaptive variable length coding, CAVLC), context-adaptive binary arithmetic coding (context-adaptive binary arithmetic coding, CABAC) for entropy coding. For example, the entropy coding unit 150 can perform entropy coding by using a variable length coding / code (variable length coding / code, VLC) table. In addition, the entropy coding unit 150 can derive a binarization method of the target symbol and a probability model of the target symbol / binary, and perform arithmetic coding and decoding by using the derived binarization method and context model.

[0083] In this regard, when CABAC is applied, in order to reduce the size of the probability table stored in the decoding device, the table probability update method can be changed to a table update method using a simple equation and applied. In addition, two different probability models can be used to obtain more accurate symbol probability values.

[0084] In order to encode the transformation coefficient level (quantization level), the entropy encoding unit 150 may change the coefficients in a two-dimensional block form into a one-dimensional vector form through a transformation coefficient scanning method.

[0085] The coding and decoding parameters may include information (flags, indexes, etc.) encoded in the encoding device 100 and signaled to the decoding device 200, such as syntax elements, and information derived during the encoding or decoding process, and may represent information required when encoding or decoding an image.

[0086] Herein, signaling a flag or an index may mean that in an encoder, the corresponding flag or index is entropy encoded and included in a bitstream, and may mean that in a decoder, the corresponding flag or index is entropy decoded from the bitstream.

[0087] The encoded current image can be used as a reference image for another image to be processed later. Therefore, the encoding device 100 can reconstruct or decode the encoded current image again and store the reconstructed or decoded image in the reference picture buffer 190 as a reference image.

[0088] The quantization level may be dequantized in the dequantization unit 160 or may be inversely transformed in the inverse transform unit 170. The dequantized and / or inversely transformed coefficients may be added to the prediction block by the adder 117. Herein, the dequantized and / or inversely transformed coefficients may represent coefficients on which at least one of dequantization and inverse transformation is performed, and may represent a reconstructed residual block. The dequantization unit 160 and the inverse transform unit 170 may be performed as inverse processes of the quantization unit 140 and the transform unit 130.

[0089] The reconstructed block may pass through the filtering unit 180. The filtering unit 180 may apply a deblocking filter, a sample adaptive offset (SAO) filter, an adaptive loop filter (ALF), a bilateral filter (BIF), a luma mapping with chroma scaling (LMCS) filter, etc. to the reconstructed sample, the reconstructed block, or the reconstructed image using all or some filtering techniques. The filtering unit 180 may be referred to as an in-loop filter. In this case, the in-loop filter may also be used as a name that does not include LMCS.

[0090] The deblocking filter can remove block distortion generated in the boundary between blocks. In order to determine whether to apply the deblocking filter, it can be determined whether to apply the deblocking filter to the current block based on samples included in several rows or columns included in the block. When the deblocking filter is applied to the block, different filters can be applied according to the required deblocking filter strength.

[0091] In order to compensate for the coding error using sample adaptive offset, an appropriate offset value may be added to the sample value. Sample adaptive offset can correct the offset from the original image in sample units for the deblocked image. A method of partitioning the samples included in the image into a predetermined number of regions, determining the region to which the offset is applied, and applying the offset to the determined region, or a method of applying the offset in consideration of edge information about each sample may be used.

[0092] The bilateral filter (BIF) can also correct the deviation from the original image on a sample-by-sample basis for the image on which deblocking has been performed.

[0093] The adaptive loop filter may perform filtering based on the comparison result of the reconstructed image with the original image. The samples included in the image may be partitioned into predetermined groups, the filter to be applied to each group may be determined, and differential filtering may be performed on each group. Information on whether the ALF is applied may be signaled by a codec unit (CU), and the form and coefficients of the adaptive loop filter to be applied to each block may vary.

[0094] In luma mapping with chroma scaling (LMCS), luma mapping (LM) means remapping luma values ​​by a piecewise linear model, and chroma scaling (CS) means a technique for scaling the residual values ​​of chroma components according to the average luma value of a prediction signal. In particular, LMCS can be used as an HDR correction technique that reflects the characteristics of a High Dynamic Range (HDR) image.

[0095] The reconstructed block or the reconstructed image that has passed through the filtering unit 180 may be stored in the reference picture buffer 190. The reconstructed block that has passed through the filtering unit 180 may be part of the reference image. That is, the reference image is a reconstructed image composed of the reconstructed block that has passed through the filtering unit 180. The stored reference image may be used for inter-frame prediction or motion compensation later.

[0096] Figure 2 is a block diagram showing the configuration of a decoding device according to an embodiment of the present invention.

[0097] The decoding device 200 may be a decoder, a video decoding device, or an image decoding device.

[0098] refer to Figure 2The decoding device 200 may include: an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, an intra-frame prediction unit 240, a motion compensation unit 250, an adder 201, a switch 203, a filtering unit 260 and a reference picture buffer 270.

[0099] The decoding device 200 may receive a bit stream output from the encoding device 100. The decoding device 200 may receive a bit stream stored in a computer-readable recording medium, or may receive a bit stream streamed through a wired / wireless transmission medium. The decoding device 200 may decode the bit stream in an intra-frame mode or an inter-frame mode. In addition, the decoding device 200 may generate a reconstructed image or a decoded image generated by decoding, and output the reconstructed image or the decoded image.

[0100] When the prediction mode for decoding is the intra mode, the switch 203 may switch to the intra mode. Alternatively, when the prediction mode for decoding is the inter mode, the switch 203 may switch to the inter mode.

[0101] The decoding device 200 can obtain a reconstructed residual block by decoding the input bit stream and generate a prediction block. When the reconstructed residual block and the prediction block are obtained, the decoding device 200 can generate a reconstructed block that becomes a decoding target by adding the reconstructed residual block and the prediction block. The decoding target block can be called a current block.

[0102] The entropy decoding unit 210 may generate symbols by entropy decoding the bit stream according to the probability distribution. The generated symbols may include symbols in the form of quantization levels. In this article, the entropy decoding method may be an inverse process of the above entropy encoding method.

[0103] The entropy decoding unit 210 may change the coefficients of the one-dimensional vector shape into coefficients of the two-dimensional block shape through a transform coefficient scanning method to decode the transform coefficient level (quantization level).

[0104] The quantization level may be inversely quantized in the inverse quantization unit 220 or inversely transformed in the inverse transform unit 230. The quantization level may be a result of inverse quantization and / or inverse transformation and may be generated as a reconstructed residual block. Herein, the inverse quantization unit 220 may apply a quantization matrix to the quantization level. The inverse quantization unit 220 and the inverse transform unit 230 applied to the decoding device may apply the same technology as the inverse quantization unit 160 and the inverse transform unit 170 applied to the aforementioned encoding device.

[0105] When the intra mode is used, the intra prediction unit 240 can generate a prediction block by performing spatial prediction on the current block, which uses sample values ​​of blocks that have been decoded around the decoding target block. The intra prediction unit 240 applied to the decoding device can apply the same technology as the intra prediction unit 120 applied to the aforementioned encoding device.

[0106] When the inter-frame mode is used, the motion compensation unit 250 can generate a prediction block by performing motion compensation using a motion vector and a reference image stored in the reference picture buffer 270 on the current block. When the value of the motion vector is not an integer value, the motion compensation unit 250 can generate a prediction block by applying an interpolation filter to a partial area within the reference image. In order to perform motion compensation, it can be determined based on the codec unit whether the motion compensation mode of the prediction unit included in the corresponding codec unit is a skip mode, a merge mode, an AMVP mode, or a current picture reference mode, and motion compensation can be performed according to each mode. The motion compensation unit 250 applied to the decoding device can apply the same technology as the motion compensation unit 122 applied to the above-mentioned encoding device.

[0107] The adder 201 may generate a reconstructed block by adding the reconstructed residual block and the prediction block. The filtering unit 260 may apply at least one of an inverse LMCS, a deblocking filter, a sample adaptive offset, and an adaptive loop filter to the reconstructed block or the reconstructed image. The filtering unit 260 applied to the decoding device may apply the same filtering technique as the filtering unit 180 applied to the aforementioned encoding device.

[0108] The filtering unit 260 may output a reconstructed image. The reconstructed block or the reconstructed image may be stored in the reference picture buffer 270 and used for inter-frame prediction. The reconstructed block that has passed through the filtering unit 260 may be part of the reference image. That is, the reference image may be a reconstructed image composed of the reconstructed blocks that have passed through the filtering unit 260. The stored reference image may be used for inter-frame prediction or motion compensation later.

[0109] Figure 3 FIG. 1 is a schematic diagram schematically showing a video coding system to which the present invention can be applied.

[0110] The video coding system according to the embodiment may include an encoding device 10 and a decoding device 20. The encoding device 10 may transmit the encoded video and / or image information or data to the decoding device 20 in the form of a file or streaming through a digital storage medium or a network.

[0111] The encoding device 10 according to the embodiment may include a video source generating unit 11, an encoding unit 12, and a transmitting unit 13. The decoding device 20 according to the embodiment may include a receiving unit 21, a decoding unit 22, and a rendering unit 23. The encoding unit 12 may be referred to as a video / image encoding unit, and the decoding unit 22 may be referred to as a video / image decoding unit. The transmitting unit 13 may be included in the encoding unit 12. The receiving unit 21 may be included in the decoding unit 22. The rendering unit 23 may include a display unit, and the display unit may be configured as a separate device or an external component.

[0112] The video source generation unit 11 can obtain the video / image by capturing, synthesizing or generating the video / image process. The video source generation unit 11 may include a video / image capture device and / or a video / image generation device. The video / image capture device may include, for example, one or more cameras, a video / image archive including previously captured videos / images, etc. The video / image generation device may include, for example, a computer, a tablet computer, a smart phone, etc., and may (electronically) generate the video / image. For example, a virtual video / image may be generated by a computer, etc., in which case the video / image capture process may be replaced by a process for generating relevant data.

[0113] The encoding unit 12 may encode the input video / image. For compression and encoding efficiency, the encoding unit 12 may perform a series of processes such as prediction, transformation, and quantization. The encoding unit 12 may output the encoded data (encoded video / image information) in the form of a bit stream. The detailed configuration of the encoding unit 12 may also be the same as described above. Figure 1 The encoding device 100 is configured in the same manner.

[0114] The sending unit 13 may send the encoded video / image information or data output in the form of a bit stream to the receiving unit 21 of the decoding device 20 through a digital storage medium or a network in the form of a file or streaming. The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The sending unit 13 may include an element for generating a media file in a predetermined file format, and may include an element for transmission through a broadcast / communication network. The receiving unit 21 may extract / receive a bit stream from a storage medium or a network and send it to the decoding unit 22.

[0115] The decoding unit 22 can decode the video / image by performing a series of processes such as inverse quantization, inverse transformation, and prediction corresponding to the operations of the encoding unit 12. The detailed configuration of the decoding unit 22 can also be similar to Figure 2 The above-mentioned decoding device 200 is configured in the same manner.

[0116] The rendering unit 23 may render the decoded video / image. The rendered video / image may be displayed by the display unit.

[0117] In the present invention, a method for variably adjusting the width and weight of a mixing area in a geometric partitioning mode is provided.

[0118] The geometric partitioning mode (GPM) is a technique for partitioning a codec unit (CU) into two partitions by a partition boundary, independently determining prediction signals corresponding to the two partitions, and then generating a final prediction block by a weighted sum of the generated prediction signals. In the present invention, a method for generating a prediction signal of a mixed area around a partition boundary distinguishing between two partitions in the geometric partitioning mode is proposed.

[0119] Figure 4 A method for generating a prediction signal for a mixed area around a partition boundary in a geometric partitioning mode is shown.

[0120] exist Figure 4 In FIG. 4 , a coding unit (CU) block 400 having a size of 32×16 is partitioned into a first partition 402 and a second partition 404 by a partition boundary 410 . Figure 4 The region indicated by the dotted line in FIG is a mixed region 412, which means a region separated from -τ to τ from the partition boundary 410. Prediction signals for the first partition 402 and the second partition 404 distinguished by the partition boundary 410 are independently generated. Equation 1 shows a method of determining a final prediction signal using the prediction signals for the first partition 402 and the second partition 404.

[0121] [Equation 1]

[0122] P GPM =(W 0 ×P 0 +(WW 0 )×P 1 +M)>>N

[0123] In Equation 1, P 0 represents the prediction signal of the first partition 402, and P 1 represents the prediction signal of the second partition 404. In addition, in Equation 1, W 0 represents the prediction signal P applied to the first partition 402 0 The weight of P 0 and P 1 The weights of can be set to all integers greater than 0. Accordingly, W 0It can be determined as a range from 0 to W. Here, W can be determined as a value of an exponent of 2, such as 2, 4, 8, 16, 32, etc. In addition, according to the value of N, a shift operation can be applied to P 0 and P 1 Here, N may be the logarithmic value of W with base 2. In addition, M is determined to be half the value of W. Accordingly, if W is 8, N is determined to be 3, and M is determined to be 4.

[0124] According to an embodiment, if the position of the predicted pixel belongs to the mixed area (-τ to τ), a value in the range of 0 to W is used. If the position of the predicted pixel does not belong to the mixed area, a value of 0 or W is used. Equation 2 shows the weight W determined according to the position of the predicted pixel 0 method.

[0125] [Equation 2]

[0126]

[0127] In Equation 2, d(x, y) represents the displacement from the partition boundary to the pixel at position (x, y), as Figure 4 In addition, the threshold τ represents the distance from the partition boundary to the end of the mixed region. In Equation 2, the weight W 0 is defined by a ramp function with a displacement and two thresholds - τ and τ.

[0128] Figure 5 A graph showing the weight of the prediction signal of the first partition 402 according to Equation 2 is shown.

[0129] The threshold τ represents the distance from the partition boundary to the end of the mixed region. Therefore, the width of the mixed region is determined according to the threshold τ. In the present invention, the width of the mixed region is actually determined according to the threshold τ, so the threshold τ can be interpreted as the width of the mixed region, and vice versa.

[0130] exist Figure 5 , the value of τ is fixed to a predetermined value A. For example, the predetermined value may be determined as 1, 2, 3, 4, etc. In addition, according to the embodiment, the width of the mixed area is not fixed, but is adaptively determined according to predetermined conditions, so that the video encoding efficiency can be improved. For example, a mixed area with a wider width is suitable for encoding a video image with a large movement or focus blur of an object in the image. On the other hand, a mixed area with a narrower width is suitable for a video image or a picture content image without focus blur. Therefore, a method of variably determining the width of a mixed area will be discussed below.

[0131] Hereinafter, a method for variably determining the width of a mixed region based on the size of a current codec unit (CU) block will be described. At this time, the size of the codec unit block may be defined as the width, height, aspect ratio (width / height or height / width), min (width, height) or max (width, height) of the codec unit block. Here, min (width, height) and max (width, height) represent the smaller and larger values ​​of the width and height, respectively.

[0132] Equation 3 shows an implementation of variably determining the width of the mixed area based on the size information of the coding unit block.

[0133] [Equation 3]

[0134]

[0135] In Equation 3, S 1 and S 2 represents any different positive integer (S 1 2 ). In equation 3, S 2 It can be set to be smaller than the maximum width of the codec unit block or the maximum height of the codec unit block.

[0136] In equation 3, according to S 1 and S 2 The three size intervals distinguished are used to determine the value of τ representing the width of the mixed region. Different from Equation 3, two size intervals or four or more size intervals may be set.

[0137] exist Figure 5 In Equation 3, the value of τ is fixed to 1, but according to Equation 3, the value of τ can be determined differently according to the size of the block. Specifically, the value of A in Equation 3 is an arbitrary positive integer. The value of τ can be determined as a multiple of A for each size interval. For example, the value of τ corresponding to a specific size interval can be determined as 0, A / 4, A / 2, A, 2A, 4A, 8A, etc. In addition, according to the embodiment, any width value such as 3A or 5A can be used as a width candidate for the mixed area. Here, non-mixed (τ=0) means that the final prediction block for the geometric partition mode is generated by independent combination, without generating a mixed prediction using weighted values ​​based on partition boundaries.

[0138] ​According to the embodiment, when the min(width, height) of the block is 4, the value of τ can be selected as A / 2. In addition, when the min(width, height) of the block is 8, the value of τ can be selected as A. In addition, when the min(width, height) of the block is 16, the value of τ can be selected as 2A. In addition, when the min(width, height) of the block is 32, the value of τ can be selected as 4A. That is, the value of τ can increase in proportion to the magnitude of the min(width, height). Here, A is an arbitrary positive integer corresponding to an exponent of 2.

[0139] According to an embodiment, the width of the mixed region for the current coding unit block can be selected from N width candidates, where N is an integer greater than or equal to 2. If two width candidates are used in determining the width of the mixed region, two width candidates can be selected from various width candidates such as 0, A / 4, A / 2, A, 2A, 4A, and 8A according to the size of the current coding unit block. In addition, one of the two selected width candidates can be selected for prediction of the current coding unit block. The width candidates may include any width such as 3A or 5A.

[0140] For example, when 0 and A are used as width candidates for the mixed area, the width of the mixed area of ​​the current codec unit block can be determined based on the mixed area width information indicating one of the two width candidates. The mixed area width information can be parsed from the bitstream. Alternatively, the mixed area width information can be determined from the current codec unit block or the current picture to which the current codec unit block belongs. For example, in determining the mixed area width information, whether the reference picture referenced by each partition of the current codec unit block is the same, the slice type of the current picture, whether the image of the current picture is the picture content, the quantization parameter of the current codec unit block, etc. can be considered.

[0141] According to an embodiment, the width of the mixed area for the current codec unit block may be selected from M width candidates determined relative to the size of the current codec unit block. Here, M is an integer greater than or equal to 2. If two width candidates are used in determining the width of the mixed area, two width candidates may be selected from various width candidates such as 0, A / 4, A / 2, A, 2A, 4A, and 8A according to the size of the current codec unit block. In addition, one of the two selected width candidates may be selected for prediction of the current codec unit block.

[0142] At this time, the size of the codec unit block can be defined as the width, height, aspect ratio (width / height or height / width), min(width, height) or max(width, height) of the codec unit block. Here, min(width, height) and max(width, height) represent the smaller and larger values ​​of the width and height, respectively.

[0143] For example, if 0 and A are selected as width candidates of the mixed region according to the size of the current coding unit block, the width of the mixed region of the current coding unit block may be determined based on the mixed region width information indicating one of the two selected width candidates. The mixed region width information may be determined from the current coding unit block or a picture to which the current coding unit block belongs. Alternatively, the mixed region width information may be parsed from a bitstream.

[0144] Equation 4 shows a method of selecting two width candidates according to the size of the coding unit block. In the present invention, the width candidate basically represents a candidate for the value of τ.

[0145] [Equation 4]

[0146]

[0147] In Equation 4, S 1 and S 2 represents any different positive integer (S 1 2 ). In equation 4, S 2 It can be set to be smaller than the maximum width of the codec unit block or the maximum height of the codec unit block. According to Equation 4, based on the value of the size determined by the width and height of the codec unit block and the two variables S 1 and S 2 To determine two width candidates for the mixed region. In addition, the width of the mixed region of the current coding unit block in the two width candidates can be determined based on the mixed region width information.

[0148] For example, if the derived value of size is greater than S 1 and less than S 2 , then A and 4A are selected as two width candidates. Then, the optimal mixed area is determined from A and 4A. In equation 4, (0, A), (A, 4A) and (4A, 8A) are used as the width candidate pairs for each size condition. However, according to the embodiment, different width candidate pairs can be applied to each size condition.

[0149] In Equation 4, only two width candidates are defined for each size condition, but according to an embodiment, three or more width candidates may be defined for each size condition.

[0150] The final prediction signal for the geometric partition mode is generated by the weighted sum of the prediction signals of the two independent predictions. At this time, the weighted sum can be calculated based on a ramp function defined by the width of the mixed area (-τ and τ) and the maximum value W of the weight, as Figure 5 As shown. τ can be one of 0, A / 4, A / 2, A, 2A, 4A, 8A, etc.

[0151] ​According to an embodiment, the maximum value W of the weight may be fixed to 8. According to Equation 1, if the maximum value W of the weight increases, the accuracy of the weight applied to the weighted sum operation increases. Therefore, when the width of the mixed region increases and the accuracy of the weight needs to be increased, the prediction accuracy can be improved by increasing the maximum value W of the weight.

[0152] Therefore, in an embodiment in which the width of the mixed region is variably adjusted, the fixed maximum value W of the weight may not always be optimal. Therefore, when the width of the mixed region is variably determined, it may be effective to also variably determine the maximum value W of the weight. Therefore, hereinafter, an embodiment in which the maximum value of the weight is variably determined by considering the width of the mixed region will be described. If the maximum value W of the weight increases, the precision of the weight of the mixed region increases, thereby improving the prediction accuracy.

[0153] Figure 6 The weights for various widths of the blended regions are shown.

[0154] according to Figure 6 , regardless of the width of the mixed region (0, A / 4, A, 4A), P 0 The weight W 0 The maximum value of is determined as W. At this time, the weight W 0 The maximum value W of can be determined as any positive integer. For example, the weight W 0 The maximum value W of can be determined as 2, 4, 8, 16, 32, 64, etc. At this time, when W increases, the accuracy of the weight is improved, thereby being able to improve the prediction accuracy in the mixed area. Figure 6 0, A / 4, A, and 4A are indicated as the width of the mixed region, but the width of the mixed region may be determined as other values.

[0155] When a fixed width of the mixed region is applied, the method of variably adjusting the precision of the weight does not make much sense. However, when the width of the mixed region is adaptively determined based on the size of the codec unit block, the weight W can be adjusted according to the weight W. 0 The maximum value W of adjusts the precision of the weight to improve the prediction accuracy of the final prediction block.

[0156] exist Figure 6 In the embodiment of the invention, the maximum value W of the weight for various widths of the mixed region can be variably determined. However, the maximum value W of the weight is not determined by considering the width of each mixed region. That is, since the maximum value W of the weight is fixed regardless of the width of the mixed region, there may be limitations in determining the optimal weight for each different width of the mixed region.

[0157] Figure 7 The maximum value of the weight which is determined variably as a function of the width of the mixing region is shown.

[0158] according to Figure 7 , if the value of τ in the mixed region is A / 4, the maximum value of the weight can be determined as W A / 4 If the value of τ in the mixed region is A, the maximum value of the weight can be determined as W A In addition, if the value of τ in the mixed region is 4A, the maximum value of the weight can be determined as W A / 4 In this embodiment, W is used as the maximum value of the weight. A / 4 , W A and W 4A are any positive integer values.

[0159] Moreover, in Figure 7 In FIG. 1 , although A / 4, A, and 4A are used as examples of the value of τ in the mixed region, the value of τ can be determined arbitrarily. Figure 7 The order of size is determined by the width of the mixed region as W A / 4 ≤W A ≤W 4A However, according to the implementation scheme, it is possible to Figure 7 Set W differently A / 4 , W A and W 4A The order of size.

[0160] Regarding the size of the codec unit block, even if one of N width candidates with different magnitudes is used instead of one fixed width of the mixed region, it can be applied Figure 7 Here, N is an integer of N≥2.

[0161] According to an embodiment, the maximum value of the corresponding weight may be determined based on the maximum width candidate among the N width candidates of the mixed region. For example, if A and 4A are used as width candidates for the mixed region, the maximum value of the weight may be the weight W corresponding to 4A. 4A , which is a larger width candidate among the width candidates of the mixed area.

[0162] On the contrary, the maximum value of the weight may be determined based on the minimum width candidate among the N width candidates of the mixed region. For example, if A and 4A are used as the width candidates of the mixed region, the maximum value of the weight may be the weight W corresponding to A. A , which is the minimum width candidate among the width candidates of the mixed area.

[0163] Alternatively, the maximum value of the weight may be determined based on the selected width candidate among the N width candidates of the mixed region. For example, if A is selected among the width candidates A and 4A of the mixed region, the maximum value of the weight may be the weight W corresponding to A. A , which is the selected width candidate.

[0164] exist Figures 5 to 7 In the example, the final prediction value in the boundary region is linearly determined based on the displacement from the partition boundary of the sample. Specifically, the weight of the current pixel is determined by considering the displacement from the partition boundary to the current pixel position based on the ramp function and the width of the mixed region.

[0165] For example, according to Figure 5 , the ramp function is a linear function with a constant slope from -A to A. Therefore, the weight is assigned in proportion to the displacement of the pixel from -A to A within the mixed area. This weight assignment method tends to be suitable for encoding video images with uniform motion. However, it may not be suitable for encoding video images with accelerated motion or general natural content. Therefore, the weight W is determined based on a nonlinear function 0 It may be more effective to solve this problem.

[0166] Figure 8 An example of a graph of the weights of the prediction signal of the first partition 402 with non-linearity is shown.

[0167] exist Figure 8 In , the value of τ representing the distance from the partition boundary to the end of the mixed region is determined as A. Figure 8 In , W also means the maximum value of the weight and can be set to any positive integer value. Figure 8 The nonlinear function of τ can be used to calculate the weight W at each predicted pixel position based on the value of τ and the value of W, as shown in Equation 5. 0 .according to Figure 8 and Equation 5, as d, which represents the distance of the sample from the partition boundary, increases, the slope of the graph increases. In the following Equation 5,

[0168] [Equation 5]

[0169]

[0170] Fig. 9 Another example of a graph of the weights of the prediction signal of the first partition 402 with non-linearity is shown.

[0171] and Figure 8 Similar, in Fig. 9 The value of τ representing the distance from the partition boundary to the end of the mixed region is determined as A. In addition, W means the maximum value of the weight and can be set to any positive integer value. Fig. 9 The nonlinear function of τ can be used to calculate the weight W at each predicted pixel position based on the value of τ and the value of W, as shown in Equation 6. 0 .and Figure 8 Contrary to Equation 5, according to Fig. 9and Equation 6, as d increases, the slope of the graph decreases.

[0172] [Equation 6]

[0173]

[0174] In Equation 5 and Equation 6, d(x, y) represents the displacement from the partition boundary to the pixel at position (x, y). Figure 8 The quadratic function shown is used to express the weight W of Equation 5 0 Alternatively, you can use Fig. 9 The weight W of Equation 6 is expressed as a quadratic function shown in 0 .

[0175] In Equation 5 and Equation 6, a quadratic function is used as the nonlinear function. However, according to the embodiment, various nonlinear functions such as a high-order function (such as a cubic function or higher), an exponential function, or a logarithmic function may be used.

[0176] Fig.10 An implementation of a prediction method according to a geometric partitioning pattern according to the present invention is shown.

[0177] In step 1002, the current block is partitioned into a first partition and a second partition according to a partition boundary. The partition boundary can be defined by a partition direction and a partition position. In addition, the partition position can be defined as the distance from the center point of the block or the starting point of the partition boundary on the edge of the block, etc.

[0178] In step 1004, a first prediction block for a first partition and a second prediction block for a second partition are determined. The first prediction block and the second prediction block have the same size as the current block. However, when the first prediction block and the second prediction block are combined to determine the final prediction block, the samples of the first partition are determined by the samples of the first prediction block, and the samples of the second partition are determined by the samples of the second prediction block. However, the samples of the mixed area surrounding the partition boundary of the first partition and the second partition can be determined by the weighted sum of the samples of the first prediction block and the samples of the second prediction block. Therefore, in steps 1006 and 1008, the mixed area and the weighted value to be used in the mixed area are determined.

[0179] At step 1006, the width of the blending region around the partition boundary is determined.

[0180] According to an embodiment, the width of the mixed area may be determined based on the size value of the current block.

[0181] According to an embodiment, the width of the mixed area may be determined based on a size interval including a size value of the current block.

[0182] According to an embodiment, the width of the mixed region may be selected from a plurality of width candidates corresponding to a size interval including a size value of the current block. The width of the mixed region may be selected from a plurality of width candidates based on mixed region width information indicating a width of the mixed region parsed from a bitstream.

[0183] Alternatively, the width of the mixed region may be determined based on mixed region width information indicating a width candidate of the mixed region among the determined plurality of width candidates regardless of the size of the current block.

[0184] According to an embodiment, the size value of the current block may be determined by at least one of the width of the current block, the height of the current block, the larger value of the width and height of the current block, the smaller value of the width and height of the current block, or the ratio of the width and height of the current block.

[0185] According to the embodiment, the width of the mixed area can be determined according to whether the current picture or the current slice including the current block is a screen content image. If the current picture or the current slice is a screen content image, the width of the mixed area can be determined to be 0 regardless of the size of the current block. Alternatively, under the above conditions, the width of the mixed area can be determined to be A / 4 regardless of the size of the current block.

[0186] At step 1008, based on the width of the mixed region, a first weight and a second weight for determining a final prediction sample of the mixed region are determined.

[0187] According to an embodiment, step 1008 may include: a step of determining a maximum value of the first weight and the second weight based on the width of the mixed area, and a step of determining the first weight and the second weight based on the maximum value. In addition, the maximum values ​​of the first weight and the second weight may be set to increase as the width of the mixed area increases. Depending on the width of the mixed area, the maximum values ​​of the first weight and the second weight may be determined to be one of 2, 4, 8, 16, 32, 64, and 128.

[0188] According to an embodiment, step 1008 may include: a step of determining a maximum value of the first weight and the second weight based on the width candidates of the mixed area applied to the current block, and a step of determining the first weight and the second weight based on the maximum value. The maximum value of the first weight and the second weight may be determined based on the maximum width candidate or the minimum width candidate among the width candidates of the mixed area. Based on at least one of the plurality of width candidates of the mixed area, the maximum value of the first weight and the second weight may be determined to be one of 2, 4, 8, 16, 32, 64, and 128.

[0189] According to an embodiment, regardless of the width of the mixed region, the maximum value of the first weight and the second weight may be fixed. For example, the maximum value of the first weight and the second weight may be fixed to one of 2, 4, 8, 16, 32, 64, and 128.

[0190] According to an embodiment, the first weight and the second weight may be determined based on the location of the sample of the mixed region and the distance from the partition boundary.

[0191] According to an embodiment, the first weight and the second weight may be determined based on a nonlinear function that receives as input the position of the sample of the mixed region and the distance of the partition boundary. The nonlinear function may be composed of at least one of a high-order function such as a quadratic function or higher, an exponential function, and a logarithmic function.

[0192] At step 1010, a final prediction block is determined from the first prediction block and the second prediction block based on the first weight and the second weight. In the final prediction block, samples of the first partition are derived from samples of the first prediction block, and samples of the second partition are derived from samples of the second prediction block. In addition, samples of a mixed area around a partition boundary of the first partition and the second partition are determined by a weighted sum of samples of the first prediction block and samples of the second prediction block.

[0193] The final prediction block of the current block determined in steps 1002 to 1010 may be used for encoding and decoding the current block.

[0194] Fig.11 A content streaming system to which an embodiment according to the present invention can be applied is exemplarily shown.

[0195] like Fig.11 As shown, the content streaming system to which the embodiment of the present invention is applied may mainly include an encoding server, a streaming server, a network server, a media storage device, a user device and a multimedia input device.

[0196] The encoding server compresses the content received from the multimedia input device such as a smartphone, a camera, a CCTV, etc. into digital data to generate a bit stream and transmits it to the streaming server. As another example, if the multimedia input device such as a smartphone, a camera, a CCTV, etc. directly generates a bit stream, the encoding server can be omitted.

[0197] A bitstream may be generated by the image encoding method and / or the image encoding device to which the embodiments of the present invention are applied, and a streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.

[0198] The streaming server sends multimedia data to the user device based on a user request via the network server, and the network server can act as an intermediary to notify the user of any available services. When the user requests a desired service from the network server, the network server sends it to the streaming server, and the streaming server can send the multimedia data to the user. At this time, the content streaming system may include a separate control server, and in this case, the control server can control the command / response between the devices within the content streaming system.

[0199] The streaming server can receive content from a media storage device and / or an encoding server. For example, when receiving content from an encoding server, the content can be received in real time. In this case, in order to provide a stable streaming service, the streaming server can store the bitstream for a period of time.

[0200] Examples of user devices may include mobile phones, smart phones, laptop computers, digital broadcast terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation devices, tablet PCs, tablet PCs, ultrabooks, wearable devices (e.g., smart watches, smart glasses, HMDs), digital televisions, desktop computers, digital signage, etc.

[0201] Each server in the above-described content streaming system may operate as a distributed server, in which case data received from each server may be distributed and processed.

[0202] The above-mentioned embodiments may be performed in the same or corresponding manner in the encoding device and the decoding device. In addition, an image may be encoded / decoded using at least one or a combination of at least one of the above-mentioned embodiments.

[0203] The order of applying the above-described embodiments may be different in the encoding device and the decoding device. Alternatively, the order of applying the above-described embodiments may be the same in the encoding device and the decoding device.

[0204] The above-described embodiments may be performed on each of the luminance signal and the chrominance signal. Alternatively, the above-described embodiments of the luminance signal and the chrominance signal may be performed identically.

[0205] In the above-mentioned embodiment, the method is described based on a flow chart with a series of steps or units, but the present invention is not limited to the order of the steps, on the contrary, some steps can be performed simultaneously with other steps or in different orders. In addition, it should be understood by those of ordinary skill in the art that the steps in the flow chart are not mutually exclusive, and other steps can be added to the flow chart or some steps can be deleted from the flow chart without affecting the scope of the present invention.

[0206] The embodiments can be implemented in the form of program instructions, which can be executed by various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include independent program instructions, data files, data structures, etc., or a combination thereof. The program instructions recorded in the computer-readable recording medium may be specially designed and constructed for the present invention, or are well known to those of ordinary skill in the field of computer software technology.

[0207] The bit stream generated by the encoding method according to the above-mentioned embodiment can be stored in a non-volatile computer-readable recording medium. In addition, the bit stream stored in the non-volatile computer-readable recording medium can be decoded by the decoding method according to the above-mentioned embodiment.

[0208] Examples of computer-readable recording media include: magnetic recording media such as hard disks, floppy disks, and magnetic tapes; optical data storage media such as CD-ROMs or DVD-ROMs; magneto-optical media such as floppy disks; and hardware devices such as read-only memory (ROM), random access memory (RAM), flash memory, etc., which are specially configured to store and execute program instructions. Examples of program instructions include not only machine language codes formatted by a compiler, but also high-level language codes that can be implemented by a computer using an interpreter. The hardware device can be configured to be operated by one or more software modules or vice versa to perform the process according to the present invention.

[0209] Although the present invention has been described in terms of specific items such as detailed elements and limited embodiments and drawings, they are provided only to help a more comprehensive understanding of the present invention, and the present invention is not limited to the above embodiments. It will be appreciated by those skilled in the art that various modifications and changes can be made based on the above description.

[0210] Therefore, the spirit of the present invention should not be limited to the above-described embodiments, and the full scope of the appended claims and their equivalents will fall within the scope and spirit of the present invention.

[0211] Industrial Applicability

[0212] The present invention can be used in an apparatus for encoding / decoding an image and a recording medium for storing a bit stream.

Claims

1. An image decoding method, include: Partition the current block into a first partition and a second partition according to a partition boundary; determining a first prediction block for a first partition and a second prediction block for a second partition; Determine the width of the blending zone around the partition boundary; determining a first weight and a second weight for determining a final prediction sample for the mixed region based on a width of the mixed region; as well as A final prediction block is determined from the first prediction block and the second prediction block based on the first weight and the second weight.

2. The image decoding method according to claim 1, in, In the step of determining the width of the mixed area, the width of the mixed area is determined based on the size value of the current block.

3. The image decoding method according to claim 2, in, The width of the blending region is determined according to a size interval including the size value of the current block.

4. The image decoding method according to claim 3, in, The width of the mixed area is selected from a plurality of width candidates corresponding to a size interval including a size value of the current block.

5. The image decoding method according to claim 2, in, The size value of the current block is determined by at least one of the width of the current block, the height of the current block, the larger value of the width and height of the current block, the smaller value of the width and height of the current block, or the ratio of the width and height of the current block.

6. The image decoding method according to claim 1, in, The width of the mixed region is selected from a plurality of width candidates based on mixed region width information indicating the width of the mixed region parsed from the bitstream.

7. The image decoding method according to claim 1, in, The width of the mixed area is determined according to whether the current picture or the current slice including the current block is a screen content image.

8. The image decoding method according to claim 7, in, When the current picture or the current slice including the current block is a screen content image, the width of the mixed area is determined to be 0 or 1 / 4.

9. The image decoding method according to claim 1, in, Determining the first weight and the second weight includes: determining a maximum value of the first weight and the second weight based on a width of the mixed region; and The first weight and the second weight are determined based on the maximum value.

10. The image decoding method according to claim 9, in, In the step of determining the maximum value of the first weight and the second weight, the maximum value of the first weight and the second weight is set to increase as the width of the mixed area increases.

11. The image decoding method according to claim 1, in, Determining the first weight and the second weight includes: determining a maximum value of the first weight and the second weight based on width candidates of the mixed area applied to the current block; and The first weight and the second weight are determined based on the maximum value.

12. The image decoding method according to claim 11, in, Determining the maximum value of the first weight and the second weight includes determining the maximum value of the first weight and the second weight based on a maximum width candidate or a minimum width candidate among the width candidates of the mixed area.

13. The image decoding method according to claim 1, in, In the step of determining the first weight and the second weight, the first weight and the second weight are determined based on the distance between the position of the sample of the mixed region and the partition boundary.

14. The image decoding method according to claim 13, in, The first weight and the second weight are determined based on a non-linear function that receives as input the location of the sample of the mixed region and the distance of the partition boundary.

15. The image decoding method according to claim 14, in, The nonlinear function is composed of at least one of a higher-order function such as a quadratic function or a higher-order function, an exponential function, or a logarithmic function.

16. A method for encoding an image, include: Partition the current block into a first partition and a second partition according to a partition boundary; determining a first prediction block for a first partition and a second prediction block for a second partition; Determine the width of the blending zone around the partition boundary; determining a first weight and a second weight for determining a final prediction sample for the mixed region based on a width of the mixed region; as well as A final prediction block is determined from the first prediction block and the second prediction block based on the first weight and the second weight.

17. A computer-readable recording medium storing a bit stream generated by an image encoding method, the image encoding method include: Partition the current block into a first partition and a second partition according to a partition boundary; determining a first prediction block for a first partition and a second prediction block for a second partition; Determine the width of the blending zone around the partition boundary; determining a first weight and a second weight for determining a final prediction sample for the mixed region based on a width of the mixed region; as well as A final prediction block is determined from the first prediction block and the second prediction block based on the first weight and the second weight.

18. A method for transmitting a bit stream generated by an image encoding method, the method include: encoding the image based on the image coding method; as well as Transmits a bitstream consisting of an encoded image, Wherein, the image encoding method comprises: Partition the current block into a first partition and a second partition according to a partition boundary; determining a first prediction block for a first partition and a second prediction block for a second partition; Determine the width of the blending zone around the partition boundary; determining a first weight and a second weight for determining a final prediction sample for the mixed region based on a width of the mixed region; and A final prediction block is determined from the first prediction block and the second prediction block based on the first weight and the second weight.