Image encoding / decoding method and apparatus, and recording medium for storing bit stream
By segmenting image patches into multiple partitions using the AMVP-merging geometric segmentation mode, and deriving prediction samples using AMVP and the merging mode and then weighting and summing them, the problem of low encoding/decoding efficiency for high-resolution images is solved, and more efficient image data transmission and storage are achieved.
Patent Information
- Application Number
- CN202480025102.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-06-19
- Filing Date
- 2024-06-13
- Publication Date
- 2025-11-14
Smart Images

Figure CN120958799A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to an image encoding / decoding method, apparatus, and recording medium for storing bitstreams. Specifically, this invention relates to an image encoding / decoding method, apparatus, and recording medium for storing bitstreams employing an AMVP-merge geometric segmentation pattern. Background Technology
[0002] In recent years, the demand for high-resolution, high-quality images (such as ultra-high-definition (UHD) images) has been increasing across various application fields. As image data resolution and quality improve, the data volume also increases relative to existing image data. Therefore, both transmission and storage costs increase when using existing wired and wireless broadband media to transmit image data or when storing such image data using existing storage media. To address these issues arising from improved image data resolution and quality, efficient image encoding / decoding technologies are needed for images with higher resolution and image quality.
[0003] Geometric segmentation mode (GPM) prediction is a technique that divides the current block into two regions by a straight segmentation boundary, generates prediction signals for the two regions by performing intra-frame or inter-frame prediction independently, and generates the prediction block for the current block by weighted summation of the prediction signals. Summary of the Invention
[0004] Technical issues One object of the present invention is to provide an image encoding / decoding method and apparatus that has improved encoding / decoding efficiency.
[0005] Another object of the present invention is to provide a recording medium for storing a bitstream generated by an image decoding method or apparatus according to the present invention.
[0006] Another objective of this invention is to provide an AMVP-merged geometric segmentation pattern.
[0007] Technical solution An image decoding method according to an embodiment of the present invention includes: segmenting a current block into a first partition and a second partition along a segmentation boundary; deriving a prediction sample of the first partition based on an Advanced Motion Vector Prediction (AMVP) mode; deriving a prediction sample of the second partition based on a merging mode; and deriving a prediction sample of the current block by weighted summation of the prediction samples of the first partition and the prediction samples of the second partition.
[0008] In this image decoding method, the predicted sample of the first partition can be derived based on the AMVP motion information obtained from the bitstream.
[0009] In this image decoding method, the AMVP motion information may include motion vector difference information and reference image information.
[0010] In this image decoding method, the predicted sample of the second partition can be derived based on the motion information of the merge candidates selected from multiple merge candidates.
[0011] In this image decoding method, the selected merging candidate can be determined based on the distortion between the predicted samples of the first partition and the candidate predicted samples of the second partition based on the motion information of each of the multiple merging candidates.
[0012] In this image decoding method, distortion can be calculated based on bilateral matching.
[0013] In this image decoding method, distortion can be calculated based on template matching.
[0014] In this image decoding method, template matching can use an L-shaped template.
[0015] In this image decoding method, template matching can use either the top template or the left template.
[0016] In this image decoding method, template matching can use a template determined based on the segmentation boundaries.
[0017] In this image decoding method, the reference images of AMVP mode and the reference images of merge mode can have different orientations.
[0018] The method for encoding an image according to an embodiment of the present invention includes: segmenting a current block into a first partition and a second partition along a segmentation boundary; deriving a prediction sample of the first partition based on an Advanced Motion Vector Prediction (AMVP) mode; deriving a prediction sample of the second partition based on a merging mode; and deriving a prediction sample of the current block by weighted summation of the prediction samples of the first partition and the prediction samples of the second partition.
[0019] According to an embodiment of the present invention, a non-transitory computer-readable recording medium can store a bitstream generated by an image encoding method, the image encoding method comprising: dividing a current block into a first partition and a second partition along a segmentation boundary; deriving a prediction sample of the first partition based on an Advanced Motion Vector Prediction (AMVP) mode; deriving a prediction sample of the second partition based on a merging mode; and deriving a prediction sample of the current block by weighted summation of the prediction samples of the first partition and the prediction samples of the second partition.
[0020] A method for transmitting a bitstream generated by an image coding method according to an embodiment of the present invention includes transmitting the bitstream. The image coding method includes: segmenting a current block into a first partition and a second partition along a segmentation boundary; deriving a prediction sample for the first partition based on an Advanced Motion Vector Prediction (AMVP) pattern; deriving a prediction sample for the second partition based on a merging pattern; and deriving a prediction sample for the current block by weighted summation of the prediction samples for the first partition and the prediction samples for the second partition.
[0021] The features briefly outlined above in relation to this disclosure are provided as examples only to illustrate the detailed description and do not constitute a limitation on the scope of this disclosure.
[0022] Beneficial effects According to the present invention, an image encoding / decoding method and apparatus for image decoding can be provided, which has improved encoding / decoding efficiency.
[0023] Furthermore, according to the present invention, an AMVP-merged geometric segmentation pattern can be provided.
[0024] Furthermore, according to the present invention, merge index or AMVP motion vector prediction information can be exported in the decoder without transmission / parsing via bitstream, thereby improving encoding efficiency.
[0025] Furthermore, according to the present invention, prediction accuracy can be improved.
[0026] The effects achievable by this disclosure are not limited to those described above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description. Attached Figure Description
[0027] Figure 1 This is a block diagram illustrating the configuration of an encoding apparatus according to an embodiment of the present invention.
[0028] Figure 2 This is a block diagram illustrating the configuration of a decoding apparatus according to an embodiment of the present invention.
[0029] Figure 3 This is a schematic diagram illustrating the video encoding system to which the present invention is applicable.
[0030] Figure 4 This illustrates the possible combinations of intra-frame prediction and inter-frame prediction under geometric segmentation mode.
[0031] Figure 5 This is a diagram used to describe a method for generating a prediction signal for a geometrically segmented pattern through inter-frame prediction.
[0032] Figure 6 This is a diagram used to describe the AMVP-merging geometric segmentation pattern according to an embodiment of the present invention.
[0033] Figure 7 This is a diagram illustrating a method for deriving a merge index in an AMVP-merge geometric segmentation pattern based on template matching to calculate distortion according to an embodiment of the present invention.
[0034] Figure 8 This is a segmentation angle diagram according to an embodiment of the present invention.
[0035] Figure 9 This is a diagram showing the template shape of the first partition and the template shape of the second partition when the segmentation angle is 0.
[0036] Figure 10 This is a diagram showing the template shape of the first partition and the template shape of the second partition when the segmentation angle is 8.
[0037] Figure 11 This is a diagram showing the template shape of the first partition and the template shape of the second partition when the segmentation angle is 20°.
[0038] Figure 12 This is a diagram showing the template shape of the first partition and the template shape of the second partition when the segmentation angle is 28°.
[0039] Figure 13 This is a flowchart illustrating an image decoding method according to an embodiment of the present invention.
[0040] Figure 14 This is a diagram illustrating a content streaming system applicable to embodiments of the present invention. Detailed Implementation
[0041] This invention can have various modifications and implementations, which are illustrated in the accompanying drawings and described in detail in the specification. However, this does not mean that the invention is limited to the specific implementations, but should be understood to include all modifications, equivalents, or substitutions within the spirit and technical scope of the invention. Similar reference numerals in the drawings indicate the same or similar functions in various aspects. For clarity of description, the shapes and dimensions of elements in the drawings may be provided by way of example. The detailed description of exemplary embodiments described below refers to the accompanying drawings, which illustrate specific embodiments by way of example. These embodiments are described in sufficient detail to enable those skilled in the art to practice them. It should be understood that the various embodiments differ from one another, but are not necessarily mutually exclusive. For example, the specific shapes, structures, and features described herein may be implemented in other embodiments without departing from the spirit and scope of the embodiments of the invention. It should also be understood that the position or arrangement of the various components in each disclosed embodiment may be changed without departing from the spirit and scope of the embodiments. Therefore, the detailed description described below is not intended to be limiting, and the scope of the exemplary embodiments is defined only by the full scope of the appended claims and the equivalents conferred by such claims (if properly described).
[0042] In this invention, the terms "first," "second," etc., may be used to describe various components, but the components should not be limited by these terms. These terms are only used to distinguish one component from another. For example, without departing from the scope of this invention, a first component may be referred to as a second component, and similarly, a second component may be referred to as a first component. The term is and / or includes a combination of multiple related descriptive items or any item from multiple related descriptive items.
[0043] The components shown in the embodiments of the present invention are depicted independently to indicate different functional characteristics, which does not mean that each component constitutes a separate hardware or software configuration unit. That is, for ease of explanation, each component is listed and treated as a separate component, and at least two components can be combined to form a single component, or a component can be broken down into multiple components to perform functions. Furthermore, implementations of component integration and implementations of each component being broken down are also included within the scope of the present invention, as long as they do not depart from the essence of the present invention.
[0044] The terminology used in this invention is for descriptive purposes only and is not intended to limit the invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. Furthermore, some components of this invention are not essential for performing the basic functions of the invention, but may be optional components used only to improve performance. This invention can be implemented by excluding components used only to improve performance and including only the essential components for implementing the essence of the invention, and structures that include only the essential components and exclude optional components used only to improve performance are also included within the scope of this invention.
[0045] In implementations, the term "at least one" may refer to a numerical value greater than or equal to 1, such as 1, 2, 3, and 4. In implementations, the term "a plurality of" may refer to a numerical value greater than or equal to 2, such as 2, 3, and 4.
[0046] The embodiments of the present invention will be described in detail below with reference to the accompanying drawings. In describing the embodiments of this specification, if it is determined that a detailed description of a related known configuration or function would obscure the subject matter of this specification, such a detailed description will be omitted, and the same reference numerals will be used for the same components in the drawings, and repeated descriptions of the same components will be omitted.
[0047] Terminology Explanation In the following text, "image" can refer to a single frame that makes up a video, or it can refer to the video itself. For example, "encoding and / or decoding of an image" can refer to "encoding and / or decoding of a video," or it can refer to "encoding and / or decoding of one of the images that make up a video."
[0048] In the following text, "moving image" and "video" have the same meaning and can be used interchangeably. Furthermore, the target image can be an encoded target image that serves as the encoding target and / or a decoded target image that serves as the decoding target. Additionally, the target image can be an input image input to the encoding device or an input image input to the decoding device. Here, the meaning of target image can be the same as the current image.
[0049] In the following text, "encoder" and "image encoding device" have the same meaning and can be used interchangeably.
[0050] In the following text, "decoder" and "image decoding device" have the same meaning and can be used interchangeably.
[0051] In the following text, "image," "picture," "frame," and "screen" have the same meaning and can be used interchangeably.
[0052] In the following text, "target block" can refer to an encoding target block that is the target of encoding and / or a decoding target block that is the target of decoding. Furthermore, a target block can be the current block, i.e., the target block for the current encoding and / or decoding. For example, "target block" and "current block" have the same meaning and can be used interchangeably.
[0053] In the following text, "block" and "unit" have the same meaning and can be used interchangeably. Furthermore, "unit" can refer to a block containing one luma component block and one corresponding chroma component block, in order to distinguish it from a block. For example, a coding tree unit (CTU) can consist of one luma component (Y) coding tree block (CTB) and two associated chroma component (Cb, Cr) coding tree blocks.
[0054] In the following text, "sample," "image element," and "pixel" have the same meaning and can be used interchangeably. Here, a sample can represent the basic unit that makes up a block.
[0055] In the following text, "inter-frame" and "inter-screen" have the same meaning and can be used interchangeably.
[0056] In the following text, "intra-frame" and "intra-screen" have the same meaning and can be used interchangeably.
[0057] Figure 1 This is a block diagram illustrating the configuration of an encoding apparatus according to an embodiment of the present invention.
[0058] The encoding device 100 can be an encoder, a video encoding device, or an image encoding device. The video can include one or more images. The encoding device 100 can encode one or more images sequentially.
[0059] refer to Figure 1 The encoding device 100 may include an image segmentation 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 coding unit 150, an inverse quantization unit 160, an inverse transform unit 170, an adder 117, a filtering unit 180, and a reference image buffer 190.
[0060] Furthermore, the encoding device 100 can generate a bitstream containing information encoded by encoding the input image and output the generated bitstream. The generated bitstream can be stored in a computer-readable recording medium or streamed via a wired / wireless transmission medium.
[0061] Image segmentation unit 110 can segment the input image into various forms to improve the efficiency of video encoding / decoding. That is, the input video consists of multiple images, and individual images can be segmented and processed hierarchically to improve compression efficiency, achieve parallel processing, etc. For example, a single image can be segmented into one or more tiles or slices, and then further segmented into multiple CTUs (Coding Tree Units). Alternatively, a single image can first be segmented into multiple sub-images defined as groups of rectangular slices, and then each sub-image can be segmented into tiles / slices. In this case, the sub-images can be used to support partially independent encoding / decoding and transmission of images. Since multiple sub-images can be reconstructed individually, it has the advantage of ease of editing in applications that configure multi-channel input as a single image. Furthermore, tiles can be horizontally segmented into blocks. In this case, blocks can be used as the basic unit for parallel processing within an image. Additionally, a CTU can be recursively segmented into a quadtree (QT), and the segmented terminal node can be defined as a coding unit (CU). A CU can be segmented into prediction units (PUs) and transform units (TUs) to perform prediction and segmentation. Simultaneously, the CU can be used as the prediction unit and / or the transform unit itself. Here, for flexible segmentation, each CTU can be recursively segmented into a multi-type tree (MTT) and a quadtree (QT). Segmenting a CTU into a multi-type tree can start from the terminal node of the QT. The MTT can consist of a binary tree (BT) and a ternary tree (TT). For example, the MTT structure can be divided into a vertical binary segmentation mode (SPLIT_BT_VER), a horizontal binary segmentation mode (SPLIT_BT_HOR), a vertical ternary segmentation mode (SPLIT_TT_VER), and a horizontal ternary segmentation mode (SPLIT_TT_HOR). Furthermore, during segmentation, the minimum block size (MinQTSize) of the quadtree for the luma block can be set to 16x16, the maximum block size (MaxBtSize) of the binary tree can be set to 128x128, and the maximum block size (MaxTtSize) of the ternary tree can be set to 64x64. Furthermore, the minimum block size (MinBtSize) of the binary tree and the minimum block size (MinTtSize) of the ternary tree can be specified as 4x4, and the maximum depth (MaxMttDepth) of the multi-type tree can be specified as 4. Additionally, to improve the coding efficiency of I-slices, a dual-tree approach can be adopted, which uses a CTU partitioning structure for both luma and chroma components. On the other hand, in P-slices and B-slices, the luma and chroma CTBs (coding tree blocks) within the CTU can be partitioned into single trees sharing a coding tree structure.
[0062] The encoding device 100 can encode the input image in intra-frame mode and / or inter-frame mode. Alternatively, the encoding device 100 can encode the input image in a third mode other than intra-frame mode and inter-frame mode (e.g., IBC mode, palette mode, etc.). However, if the third mode has similar functional characteristics to the intra-frame mode or inter-frame mode, it can be classified as an intra-frame mode or inter-frame mode for ease of explanation. In this invention, the third mode will only be classified and described separately when it is necessary to specifically describe it.
[0063] When using intra-frame mode as the prediction mode, switch 115 can switch to intra-frame mode; when using inter-frame mode as the prediction mode, switch 115 can switch to inter-frame mode. Here, intra-frame mode can refer to intra-frame prediction mode, and inter-frame mode can refer to inter-frame prediction mode. The encoding device 100 can generate prediction blocks for input blocks of the input image. Furthermore, after generating prediction blocks, the encoding device 100 can encode residual blocks using the residuals between the input blocks and the prediction blocks. The input image can be called the current image, i.e., the current encoding target. The input block can be called the current block, i.e., the current encoding target or encoding target block.
[0064] When the prediction mode is intra-frame mode, the intra-frame prediction unit 120 can use samples from encoded / decoded blocks surrounding the current block as reference samples. The intra-frame prediction unit 120 can use the reference samples to perform spatial prediction on the current block, or generate prediction samples for the input block through spatial prediction. Here, intra-frame prediction can refer to in-screen prediction.
[0065] Intra-frame prediction methods can apply non-directional prediction modes (such as DC mode and planar mode) as well as directional prediction modes (such as 65 directions). Here, intra-frame prediction methods can be represented as intra-frame prediction modes or in-screen prediction modes.
[0066] When the prediction mode is inter-frame mode, the motion prediction unit 121 can retrieve the region in the reference image that best matches the input block during motion prediction and derive the motion vector using the retrieved region. In this case, the search region can be used as the region. The reference image can be stored in the reference image buffer 190. Here, it can be stored in the reference image buffer 190 when encoding / decoding the reference image.
[0067] The motion compensation unit 122 can generate a prediction block for the current block by using motion vectors for motion compensation. Here, inter-frame prediction can refer to inter-screen prediction or motion compensation.
[0068] When the value of the motion vector is not an integer, the motion prediction unit 121 and the motion compensation unit 122 can generate prediction blocks by applying interpolation filters to a portion of the reference image. To perform inter-frame prediction or motion compensation, the motion prediction and motion compensation modes of the prediction units included in the coding unit can be determined based on the coding unit, such as skip mode, merge mode, advanced motion vector prediction (AMVP) mode, or intra-block copy (IBC) mode, and inter-frame prediction or motion compensation can be performed according to each mode.
[0069] Furthermore, based on the aforementioned inter-frame prediction methods, other modes can be applied, including AFFINE mode based on sub-PU prediction, SbTMVP (sub-block temporal motion vector prediction), MMVD (merged with MVD) mode based on PU prediction, and Geometric Partitioning (GPM). Additionally, to improve the performance of each mode, other modes can be applied, such as HMVP (history-based MVP), PAMVP (pairwise average MVP), CIIP (intra-frame / inter-frame combined prediction), AMVR (adaptive motion vector resolution), BDOF (bidirectional optical flow), BCW (bidirectional prediction with CU weights), LIC (local illumination compensation), TM (template matching), and OBMC (overlapping block motion compensation).
[0070] AFFINE mode is a technique used in both AMVP and MERGE modes and boasts high coding efficiency. In existing video coding standards, motion compensation (MC) only considers parallel motion of blocks, thus failing to accurately compensate for actual motion events such as zooming in / out and rotation. To compensate for this, a four-parameter affine motion model using two control point motion vectors (CPMV) and a six-parameter affine motion model using three control point motion vectors can be applied to inter-frame prediction. Here, CPMV is a vector representing one of the affine motion models of the current block's top-left, top-right, and bottom-left positions.
[0071] Subtractor 113 can generate a residual block using the difference between the input block and the prediction block. The residual block can be called a residual signal. The residual signal can represent the difference between the original signal and the prediction signal. Alternatively, the residual signal can be a signal generated by transforming or quantizing the difference between the original signal and the prediction signal, or a signal generated by transforming and quantizing the difference between the original signal and the prediction signal. The residual block can be a residual signal on a block-by-block basis.
[0072] Transform unit 130 can generate transform coefficients by transforming the residual block and output the generated transform coefficients. Here, the transform coefficients can be coefficient values generated by transforming the residual block. When a transform skip mode is applied, transform unit 130 can skip the transformation of the residual block.
[0073] Quantization levels can be generated by applying quantization to the transform coefficients or residual signals. In the following implementation, quantization levels may also be referred to as transform coefficients.
[0074] For example, a 4x4 lumen residual block generated by intra-frame prediction is transformed using DST (Discrete Sine Transform)-based basis vectors, and then the remaining residual blocks are transformed using DCT (Discrete Cosine Transform)-based basis vectors. Furthermore, RQT (Residual Quadtree) technology is used to partition the transformed blocks into quadtree shapes. After transforming and quantizing each transformed block partitioned by RQT, a Coded Block Flag (CBF) can be sent when all coefficients become 0 to improve coding efficiency.
[0075] Another alternative is to apply the Multiple Transform Selection (MTS) technique, which selectively uses multiple transform bases for transformation. That is, instead of segmenting the CU into TUs using RQT, a function similar to TU segmentation can be performed using Sub-Block Transform (SBT). Specifically, SBT applies only to inter-frame prediction blocks. Unlike RQT, the current block can be segmented into 1 / 2 or 1 / 4 blocks vertically or horizontally, and then the transformation is performed on only one of these blocks. For example, in a vertical segmentation, the transformation can be performed on the leftmost or rightmost block; in a horizontal segmentation, the transformation can be performed on the topmost or bottommost block.
[0076] In addition, LFNST (Low Frequency Non-Separable Transform) can be applied. This is a secondary transform technique that performs an additional transform on the residual signal transformed to the frequency domain by DCT or DST. LFNST also performs an additional transform on the 4x4 or 8x8 low-frequency region in the upper left corner, thereby concentrating the residual coefficients in the upper left corner.
[0077] The quantization unit 140 can quantize the transform coefficients or residual signal according to the quantization parameters (QP) to generate a quantization level and output the generated quantization level. Here, the quantization unit 140 can use a quantization matrix to quantize the transform coefficients.
[0078] For example, quantizers with QP values from 0 to 51 can be used. Alternatively, if the image size is large and high coding efficiency is required, QP values from 0 to 63 can be used. Furthermore, the DQ (correlated quantization) method, which uses two quantizers (instead of one), can also be employed. DQ uses two quantizers (e.g., Q0 and Q1) for quantization, but even without conveying information about using a specific quantizer, the quantizer used for the next transform coefficient can be selected based on the current state through a state transition model.
[0079] The entropy coding unit 150 can generate a bitstream by entropy coding based on the value calculated by the quantization unit 140 or the probability distribution of the coding parameter values calculated during encoding, and then output the bitstream. The entropy coding unit 150 can entropy code image sample information and information used for decoding the image. For example, the information used for decoding the image may include syntax elements.
[0080] When applying entropy coding, symbols are represented by allocating fewer bits to symbols with high occurrence probabilities and more bits to symbols with low occurrence probabilities, thereby reducing the size of the bitstream to be encoded. The entropy coding unit 150 can perform entropy coding using methods such as exponential Golomb coding, context-adaptive variable-length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC). For example, the entropy coding unit 150 can perform entropy coding using a variable-length coding (VLC) table. Furthermore, the entropy coding unit 150 can derive a binarization method for the target symbol and a probability model for the target symbol / bit, and perform arithmetic coding using the derived binarization method and context model.
[0081] Relatedly, when applying CABAC, 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 simple equations. Furthermore, two different probability models can be used to obtain more accurate symbol probability values.
[0082] In order to encode the transform coefficient levels (quantization levels), the entropy coding unit 150 can convert the two-dimensional block form coefficients into a one-dimensional vector form by the transform coefficient scanning method.
[0083] The encoding parameters may include information (flags, indexes, etc.) encoded in the encoding device 100 and transmitted to the decoding device 200 via signals, such as syntax elements, as well as information derived during the encoding or decoding process, and may represent the information required when encoding or decoding an image.
[0084] In this paper, sending a signal flag or index can indicate that the corresponding flag or index is entropy encoded in the encoder and included in the bitstream, or it can indicate that the corresponding flag or index is entropy decoded from the bitstream in the decoder.
[0085] 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 as a reference image in the reference image buffer 190.
[0086] The quantization level can be dequantized in dequantization unit 160 or inverse transformed in inverse transform unit 170. The coefficients after dequantization and / or inverse transform can be added to the prediction block via adder 117. Here, the coefficients after dequantization and / or inverse transform can refer to the coefficients of at least one of the dequantization and / or inverse transform operations, or they can refer to the reconstructed residual block. Dequantization unit 160 and inverse transform unit 170 can be performed as the inverse process of quantization unit 140 and transform unit 130.
[0087] The reconstructed block can be processed by filtering unit 180. Filtering unit 180 can apply all or some filtering techniques, such as deblocking filters, sample adaptive offset (SAO), adaptive loop filters (ALF), bilateral filters (BIF), luma mapping and chroma scaling (LMCS), to the reconstructed sample, reconstructed block, or reconstructed image. Filtering unit 180 may be referred to as a loop filter. In this case, loop filter is also used as a name, but LMCS is not included.
[0088] Deblocking filters can eliminate block distortion generated at the boundaries between blocks. To determine whether to apply a deblocking filter, samples from several rows or columns contained in the current block can be used. When applying a deblocking filter to a block, different filters can be applied depending on the desired deblocking intensity.
[0089] To compensate for coding errors using sample-adaptive offsets, an appropriate offset value can be added to the sample values. Sample-adaptive offsets can correct the offset between the deblocked image and the original image on a sample-by-sample basis. This can be achieved by: segmenting the samples in the image into a predetermined number of regions, determining the regions to which the offset will be applied, and then applying the offset to the determined regions; or by considering the edge information of each sample when applying the offset.
[0090] For images that have undergone deblocking, the bilateral filter (BIF) can also correct the offset from the original image sample by sample.
[0091] Adaptive loop filters (ALFs) can perform filtering based on a comparison between the reconstructed image and the original image. The samples contained in the image can be divided into predetermined groups, the filter to be applied to each group can be determined, and differential filtering can be performed on each group. Information regarding whether to apply the ALF can be signaled by the coding unit (CU), and the form and coefficients of the adaptive loop filter applied to each block can vary.
[0092] In LMCS (Luminosity Mapping and Chromaticity Scaling), Luminosity Mapping (LM) refers to remapping luminance values using a piecewise linear model, while Chromaticity Scaling (CS) refers to scaling the residual chrominance components based on the average luminance value of the predicted signal. Specifically, LMCS can be used as an HDR correction technique to reflect the characteristics of HDR (High Dynamic Range) images.
[0093] The reconstructed blocks or reconstructed image processed by filtering unit 180 can be stored in reference image buffer 190. The reconstructed blocks processed by filtering unit 180 can be a portion of the reference image. That is, the reference image is a reconstructed image composed of the reconstructed blocks processed by filtering unit 180. The stored reference image can later be used for inter-frame prediction or motion compensation.
[0094] Figure 2 This is a block diagram illustrating the configuration of a decoding apparatus according to an embodiment of the present invention.
[0095] The decoding device 200 can be a decoder, a video decoding device, or an image decoding device.
[0096] refer to Figure 2 The 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 image buffer 270.
[0097] The decoding device 200 can receive a bitstream output from the encoding device 100. The decoding device 200 can receive a bitstream stored in a computer-readable recording medium, or it can receive a bitstream streamed via a wired / wireless transmission medium. The decoding device 200 can decode the bitstream in intra-frame mode or inter-frame mode. Furthermore, the decoding device 200 can generate a reconstructed image or a decoded image through decoding, and output the reconstructed image or the decoded image.
[0098] When the prediction mode used for decoding is intra-frame mode, switch 203 can switch to intra-frame mode. Alternatively, when the prediction mode used for decoding is inter-frame mode, switch 203 can switch to inter-frame mode.
[0099] Decoding device 200 can obtain a reconstructed residual block and generate a prediction block by decoding the input bitstream. When the reconstructed residual block and prediction block are obtained, decoding device 200 can generate a reconstructed block by adding the reconstructed residual block and prediction block; this reconstructed block serves as the decoding target. The decoding target block can be referred to as the current block.
[0100] Entropy decoding unit 210 can generate symbols by performing entropy decoding on the bitstream according to the probability distribution. The generated symbols may include symbols in the form of quantization levels. Here, the entropy decoding method can be the inverse process of the entropy encoding method described above.
[0101] The entropy decoding unit 210 can convert one-dimensional vector coefficients into two-dimensional block coefficients by the transform coefficient scanning method to decode the transform coefficient level (quantization level).
[0102] The quantization level can be dequantized in the dequantization unit 220 or inverse transformed in the inverse transform unit 230. The quantization level can be the result of dequantization and / or inverse transform, and can be generated as a reconstruction residual block. Here, the dequantization unit 220 can apply the quantization matrix to the quantization level. The dequantization unit 220 and inverse transform unit 230 applied to the decoding device can employ the same techniques as the dequantization unit 160 and inverse transform unit 170 applied to the encoding device described above.
[0103] When using intra-frame mode, intra-frame prediction unit 240 can generate a prediction block by performing spatial prediction on the current block, which uses sample values from decoded blocks surrounding the target block. Intra-frame prediction unit 240 applied to the decoding apparatus can employ the same techniques as intra-frame prediction unit 120 applied to the encoding apparatus described above.
[0104] When using inter-frame mode, motion compensation unit 250 can generate a prediction block by performing motion compensation on the current block, using motion vectors and a reference image stored in reference image buffer 270. When the value of the motion vector is not an integer, motion compensation unit 250 can generate a prediction block by applying an interpolation filter to a portion of the reference image. To perform motion compensation, the motion compensation method of the prediction unit included in the corresponding coding unit can be determined based on the coding unit: skip mode, merge mode, AMVP mode, or current image reference mode, and motion compensation can be performed according to each mode. The motion compensation unit 250 applied to the decoding device can employ the same technique as the motion compensation unit 122 applied to the coding device described above.
[0105] Adder 201 generates a reconstructed block by adding the reconstructed residual block and the predicted block. Filtering unit 260 can apply at least one of inverse LMCS, deblocking filter, sample adaptive offset, and adaptive loop filter to the reconstructed block or reconstructed image. Filtering unit 260 applied to the decoding device can employ the same filtering technique as that used by filtering unit 180 applied to the encoding device described above.
[0106] The filtering unit 260 can output a reconstructed image. The reconstructed blocks or reconstructed image can be stored in the reference image buffer 270 and used for inter-frame prediction. The reconstructed blocks processed by the filtering unit 260 can be used as part of the reference image. That is, the reference image can be a reconstructed image composed of the reconstructed blocks processed by the filtering unit 260. The stored reference image can later be used for inter-frame prediction or motion compensation.
[0107] Figure 3 This is a schematic diagram illustrating the video encoding system to which the present invention is applicable.
[0108] According to one embodiment, a video encoding system may include an encoding device 10 and a decoding device 20. The encoding device 10 may transmit encoded video and / or image information or data to the decoding device 20 in the form of a file or stream via a digital storage medium or network.
[0109] The encoding apparatus 10 according to the embodiments may include a video source generation unit 11, an encoding unit 12, and a transmission unit 13. The decoding apparatus 20 according to the embodiments 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 transmission 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.
[0110] The video source generation unit 11 can acquire video / images through a process of capturing, synthesizing, or generating video / images. 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 containing previously captured video / images, etc. The video / image generation device may include, for example, a computer, tablet computer, and smartphone, etc., and can generate video / images (electronically). For example, virtual video / images can be generated by a computer, etc., in which case the video / image capture process can be replaced by a process of generating related data.
[0111] Encoding unit 12 can encode the input video / image. Encoding unit 12 can perform a series of processes, such as prediction, transformation, and quantization, to improve compression and encoding efficiency. Encoding unit 12 can output encoded data (encoded video / image information) in the form of a bitstream. Detailed configuration of encoding unit 12 can also be as described above. Figure 1 The encoding device 100 is configured in the same way.
[0112] The transmitting unit 13 can output encoded video / image information or data as a bitstream, and transmit it to the receiving unit 21 of the decoding device 20 in the form of a file or stream via a digital storage medium or network. The digital storage medium can include various storage media, such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitting unit 13 can include elements for generating media files according to a predetermined file format, and can also include elements for transmission via a broadcast / communication network. The receiving unit 21 can extract / receive the bitstream from the storage medium or network and send it to the decoding unit 22.
[0113] Decoding unit 22 can decode video / images by performing a series of steps (e.g., dequantization, inverse transform, and prediction) corresponding to the operations of encoding unit 12. The detailed configuration of decoding unit 22 can also be as described above. Figure 2 The decoding device 200 is configured in the same way.
[0114] Rendering unit 23 can render the decoded video / image. The rendered video / image can be displayed through the display unit.
[0115] The following will refer to Figures 4 to 12 This paper describes a geometric segmentation pattern (GPM) using an advanced motion vector prediction (AMVP)-merge pattern according to an embodiment of the present invention. The geometric segmentation pattern using the AMVP-merge pattern will be referred to below as the AMVP-merged geometric segmentation pattern.
[0116] Geometric Partitioning (GPM) is a technique that divides a coding unit (CU) into two partitions by partition boundaries, independently determines the prediction signals corresponding to these two partitions, and then generates the final prediction block by weighted summation of the generated prediction signals.
[0117] In geometric segmentation mode, the current block is divided into two partitions by a straight line segmentation boundary. Furthermore, for each partition, a prediction block is generated based on inter-frame / intra-frame prediction, intra-frame / intra-frame prediction, or intra-frame / inter-frame prediction, respectively. Additionally, the prediction block for the current block can be generated by weighted summing of the prediction signals from the two prediction blocks.
[0118] Figure 4 This illustrates the possible combinations of intra-frame prediction and inter-frame prediction under geometric segmentation mode.
[0119] According to the implementation method, the two partitions separated according to the geometric segmentation pattern can be predicted independently by intra-frame prediction or inter-frame prediction, respectively.
[0120] right Figure 4Block 402 in the model applies an inter-frame prediction combination. Based on this prediction combination, the two partitions can make independent predictions using different information. Specifically, unidirectional motion compensation is performed for each partition.
[0121] right Figure 4 Blocks 404 and 406 in the model apply an intra-frame / inter-frame prediction combination. According to this prediction combination, one partition of the two partitions is predicted based on intra-frame prediction, and the other partition is predicted based on inter-frame prediction. Specifically, for the partition using inter-frame prediction, unidirectional motion compensation is performed, while for the partition using intra-frame prediction, prediction is based on the intra-frame prediction mode.
[0122] right Figure 4 Block 408 in the model uses an inter-frame prediction combination. Based on this prediction combination, two partitions are predicted independently using different intra-frame prediction modes.
[0123] Figure 5 It shows that by... Figure 4 A diagram illustrating an implementation of a method for generating a prediction signal for a geometric segmentation pattern by performing inter-frame prediction on block 402. Specifically, Figure 5 An implementation of a geometric segmentation mode for inter-frame prediction using a merging mode is shown.
[0124] refer to Figure 5 The current block 501 can be segmented into a first partition (partition 1) 502 and a second partition (partition 2) 503 by the segmentation boundary. Furthermore, a first merged reference block 1 511 in the reference image 510 of list L0 can be derived based on the first partition 502 and the first motion vector MV1 512, and a second merged reference block 2 521 in the reference image 520 of list L1 can be derived based on the second partition 503 and the second motion vector MV2 522. Here, the first motion vector 512 and the second motion vector 522 can be derived from the merge candidate list of the geometric segmentation pattern (GMP merge candidate list), which only includes unidirectional motion information from the regular merge candidate list. Furthermore, the prediction block of the final geometric segmentation pattern can be generated by weighted summing of the prediction signals of the derived first merged reference block 511 and the derived second merged reference block 521.
[0125] Here, the number of merge candidates in the GPM merge candidate list can be set to N. Here, N is any positive integer equal to or greater than 2. In addition, the reference image 510 in list L0 can represent the past reference image of the current image 500 in the decoding order, and the reference image 510 in list L1 can represent the future reference image of the current image 500 in the decoding order.
[0126] Figure 5Inter-frame prediction in the geometric segmentation mode derives motion information by sending (transmitting / parsing) the corresponding merge index in the GPM merge candidate list for each partition. Therefore, this can potentially use a large number of coded bits. Furthermore, since the motion information is derived from and used from the GPM merge candidate list using pre-determined motion information, rather than by performing a motion information search process to determine the motion information, the accuracy of the motion information may be limited.
[0127] Figure 6 This is a diagram used to describe the AMVP-merging geometric segmentation pattern according to an embodiment of the present invention.
[0128] exist Figure 6 In the above, the reference images in list L0 610 and list L1 620 represent the past reference images of the current image 600 in decoding order and the future reference images of the current image 600 in decoding order, respectively. Furthermore, AMVP reference block 611 and merge reference block 621 represent the prediction block of the first partition (partition 1) 602 indicated by the motion vector MVAMVP 612 of the first partition 602 selected by the AMVP mode, and the prediction block of the second partition 603 indicated by the motion vector MVMerge 622 of the second partition (partition 2) 603 selected by the merge mode. Additionally, merge candidate 0 (Merge cand 0) 630, merge candidate 1 (Merge cand 1) 631, merge candidate 2 (Merge cand 2) 632, merge candidate 3 (Merge cand 3) 633, and merge candidate 4 (Merge cand 4) 634 represent the merge candidate blocks indicated by the motion vectors of each merge candidate in the GPM merge candidate list.
[0129] exist Figure 6 In the implementation of the AMVP-merge geometric segmentation mode, the first partition 602 is predicted in AMVP mode and the second partition 603 is predicted in merge mode. However, this is just an example. The first partition 602 and the second partition 603 can be predicted by arbitrarily selecting AMVP mode and merge mode respectively.
[0130] Meanwhile, the AMVP-merging geometric segmentation mode is a bidirectional prediction mode, meaning the reference images for the AMVP mode and the merging mode should be reference images with opposite orientations. That is, when the reference image for the AMVP mode is in the L0 direction, the reference image for the merging mode should be in the L1 direction. Conversely, when the reference image for the AMVP mode is in the L1 direction, the reference image for the merging mode should be in the L0 direction.
[0131] As another implementation, in the AMVP-merge geometric segmentation mode, the reference orientations of the reference image in the AMVP mode and the reference image in the merge mode do not have to be opposite to each other. That is, the reference image in the AMVP mode and the reference image in the merge mode can have the same reference orientation or different reference orientations.
[0132] In the AMVP-merge geometry segmentation mode, the current block can be segmented into a first partition and a second partition by a straight segmentation boundary, and the motion vectors of the AMVP mode (MVAMVP) and the merge mode (MVMerge) are derived to minimize the distortion between the predicted signal (or predicted sample) of the first partition derived from the motion signal of the AMVP mode and the predicted signal (or predicted sample) of the second partition derived from the motion information of each merge candidate in the GPM merge candidate list. Here, the distortion between the two signals can be calculated by performing bilateral matching (BM) or template matching (TM). In addition, various distortion measurement methods (such as sum of absolute differences (SAD) or sum of squared errors (SSE)) can be used to calculate the distortion value.
[0133] AMVP mode motion information may include reference image information (e.g., reference index) indicating a reference image, motion vector prediction information (e.g., motion vector prediction (MVP) index), and motion vector difference information (e.g., motion vector difference (MVD)). In AMVP-merge geometry segmentation mode, the reference image information and motion vector difference information in the AMVP mode motion information can be transmitted via a bitstream signal. When the motion vectors in the AMVP mode are derived through template matching, the motion vector prediction information in the AMVP mode motion information can also be derived through template matching; otherwise, the motion vector prediction information can be transmitted via a bitstream signal.
[0134] The merging mode motion information may include a merging index, which indicates a merging candidate in the GPM merging candidate list whose motion information will be referenced. The merging index can be determined for merging candidates that minimize the distortion between the predicted signal derived from the AMVP mode and the predicted signal derived from each merging candidate in the GPM merging candidate list. In other words, the merging index can be derived from the distortion between the two signals without transmitting the signal via a bitstream.
[0135] As mentioned above, coding efficiency can be improved by deriving motion vector prediction information or merging index information instead of sending signals.
[0136] The following sections describe distortion calculation methods based on bilateral matching and template matching, which are used to derive the merge index in the AMVP-merge geometry partitioning pattern.
[0137] When the current block is in AMVP-merge geometry segmentation mode, the encoder can calculate the distortion between the predicted signal derived from the AMVP mode and the predicted signal derived from each merge candidate in the GPM merge candidate list, and can determine the AMVP mode motion information and merge mode motion information that minimize the distortion. Furthermore, the encoder can encode the AMVP mode motion information and include it in the bitstream.
[0138] When the current block is in geometric segmentation mode, the decoder can obtain the AMVP mode motion information by parsing and can deduce the merge index of the merge mode by performing the same process as the encoder's bilateral matching.
[0139] Simultaneously, the merge index can be determined as the index indicating the best merge candidate among the merge candidates in the reference image list of AMVP mode that have a reference direction L1-X (X is 0 or 1) opposite to the reference direction LX. Figure 6 In the AMVP mode, since the motion vector MVAMVP 612 represents motion information in the L0 direction, the motion vector MVMerge 622 of the merging mode can be selected from merging candidates 1 631, merging candidate 2 632, or merging candidate 4 634 in the GPM merging candidate list, which contain motion information in the L1 direction. Figure 6 Conversely, when the motion vector MVAMVP in the AMVP mode is motion information in the L1 direction, the motion vector MVMerge in the merge mode can be selected from the merge candidates in the GPM merge candidate list that have motion information in the L0 direction. That is, when the motion vector in the AMVP mode is motion information in the LX direction (X is 0 or 1), the motion vector in the merge mode can be motion information in the L1-X direction.
[0140] Meanwhile, when there is no merging candidate in the GMP merging candidate list with a reference direction opposite to that of the reference image list in the AMVP mode, the distortion calculation method based on bilateral matching can be omitted.
[0141] As another implementation, the distortion calculation method based on bilateral matching can select and determine the best merging candidate from all merging candidates in the GPM merging candidate list, regardless of the reference orientation of the reference image list in the AMVP mode.
[0142] Figure 7 This is a diagram illustrating a method for deriving a merge index in an AMVP-merge geometric segmentation pattern based on template matching to calculate distortion according to an embodiment of the present invention.
[0143] exist Figure 7In the diagram, the reference images in list L0 710 and list L1 720 represent the past reference images of the current image 700 in decoding order and the future reference images of the current image 700 in decoding order, respectively. Furthermore, AMVP reference block 711 represents the prediction block of the first partition (partition 1) 702, indicated by the motion vector MVAMVP 712 of the first partition 702 selected by the AMVP mode; merge reference block 712 represents the prediction block of the second partition (partition 2) 703, indicated by the motion vector MVMerge 722 of the second partition 703 selected by the merge mode. Additionally, merge candidate 0 730, merge candidate 1 731, merge candidate 2 732, merge candidate 3 733, and merge candidate 4 734 represent the merge candidate blocks indicated by the motion vectors of each merge candidate in the GPM merge candidate list.
[0144] refer to Figure 7 When the current block 701 is in the AMVP-merge geometric segmentation mode, the encoder can determine the AMVP mode motion information and the merge mode motion information to minimize the distortion between the reference templates of the AMVP-merge mode. This reference template is generated by a weighted summation of the current template 704 generated from the neighboring reference samples of the current block 701, the neighboring L-shaped reference templates (AMVP reference templates) 713 of the predicted block (AMVP reference block) 711 derived from the AMVP mode, and the neighboring L-shaped reference templates (merge cand M reference templates) 740 to 744 (M∈{0, 1, 2, 3, 4}) of the predicted blocks (merge cand M) 730 to 734 (M∈{0, 1, 2, 3, 4}) derived from the merge mode. Furthermore, the encoder can encode the AMVP mode motion information and include it in the bitstream.
[0145] When the current block is in AMVP-merge geometry segmentation mode, the decoder can obtain the AMVP mode motion information by parsing and can deduce the merge index of the merge mode by performing the same process as the encoder's template matching.
[0146] As another implementation, when the current block is in AMVP-merge geometric segmentation mode, the decoder can derive the AMVP motion vector prediction information and the merge index of the merge mode from the GPM merge candidate list by performing the same process as the encoder's template matching. In this case, the reference image information and motion vector difference information in the AMVP mode motion information can be obtained from the bitstream.
[0147] Simultaneously, the merge index can be determined as an index indicating the best merge candidate among the merge candidates in the AMVP mode's reference image list that have a reference direction L1-X (X is 0 or 1) opposite to the reference direction LX. Figure 7 In this context, since the motion vector MVAMVP 712 of the AMVP mode is motion information in the L0 direction, the motion vector MVMerge 722 of the merging mode can be selected from the merging candidates 1731, 2732, or 4734 in the GPM merging candidate list, which have motion information in the L1 direction. That is, when the motion vector of the AMVP mode is motion information in the LX direction (X is 0 or 1), the motion vector of the merging mode can be motion information in the L1-X direction.
[0148] Meanwhile, when the merge candidates in the GMP merge candidate list do not have a reference direction opposite to the reference direction of the reference image list in the AMVP mode, the distortion calculation method based on template matching may not be able to be executed.
[0149] As another implementation, the template matching-based distortion calculation method can select and determine the best merging candidate from all merging candidates in the GPM merging candidate list, regardless of the reference orientation of the reference image list in the AMVP mode.
[0150] Meanwhile, the size and shape of the reference template used in the template matching-based distortion calculation method can be arbitrarily determined. Although Figure 7 The text describes an L-shaped template, but the template can be constructed using only the left reference sample, or only the top reference sample.
[0151] As another implementation, the template shapes of the first and second partitions of the geometric segmentation pattern can be determined based on the segmentation angle. Based on the determined template shapes, a distortion calculation method based on template matching can be performed.
[0152] Table 1 shows the template shape for each partition according to the geometric segmentation pattern based on 20 segmentation angles. Figure 8 This is a diagram showing the segmentation angles in Table 1.
[0153] Table 1 Figure 9 This is a diagram showing the template shape of the first partition and the template shape of the second partition when the segmentation angle is 0.
[0154] refer to Figure 9When the segmentation angle is 0, the template of the first partition can be the upper template formed by the upper adjacent reference sample, and the template of the second partition can be the L-shaped template formed by the upper and left adjacent reference samples.
[0155] Figure 10 This is a diagram showing the template shape of the first partition and the template shape of the second partition when the division angle is 8.
[0156] refer to Figure 10 When the segmentation angle is 8, the template of the first partition can be an L-shaped template formed by the upper and left adjacent reference samples, and the template of the second partition can be a left template formed by the left adjacent reference samples.
[0157] Figure 11 This is a diagram showing the template shape of the first partition and the template shape of the second partition when the division angle is 20°.
[0158] like Figure 11 As shown, when the segmentation angle is 20°, the template of the first partition can be the upper template composed of the upper adjacent reference samples, and the template of the second partition can be the left template composed of the left adjacent reference samples.
[0159] Figure 12 This is a diagram showing the template shape of the first partition and the template shape of the second partition when the segmentation angle is 28°.
[0160] like Figure 12 As shown, when the segmentation angle is 28°, the templates for the first and second partitions are both L-shaped templates that can be formed by the adjacent reference samples above and to the left.
[0161] Table 1 shows only one example; for K segmentation angles, L templates of various sizes and shapes can be used. Here, K and L are arbitrary positive integers.
[0162] In the AMVP-merging geometric segmentation model, the predicted signals of the AMVP model and the merged model can be derived separately using the motion information of the AMVP model and the merged model, respectively. The motion information of the AMVP model and the merged model is derived using either a distortion calculation method based on lateral matching or a distortion calculation method based on template matching. The final predicted signal of the AMVP-merging geometric segmentation model can be generated by weighted summing of the derived AMVP model predicted signal and the derived merged model predicted signal. The weights for the weighted summation can be determined based on the segmentation boundaries.
[0163] Figure 13 This is a flowchart illustrating an image decoding method according to an embodiment of the present invention. Figure 13 The image decoding method shown can be executed by an image decoding device.
[0164] The image decoding device can divide the current block into a first partition and a second partition along the segmentation boundary (S1310).
[0165] Furthermore, the image decoding device can derive the prediction sample of the first partition based on the Advanced Motion Vector Prediction (AMVP) mode (S1320). Specifically, the prediction sample of the first partition can be derived based on the AMVP motion information obtained from the bitstream. The AMVP motion information may include motion vector difference information and reference image information.
[0166] Meanwhile, in AMVP motion information, motion vector prediction information can be derived through template matching or obtained from the bitstream.
[0167] Furthermore, the image decoding device can derive the predicted samples of the second partition based on the merging pattern (S1330). Specifically, the predicted samples of the second partition can be derived based on the motion information of the merging candidates selected from multiple merging candidates. Here, the selected merging candidate is determined based on the motion information of each merging candidate among the multiple merging candidates, according to the distortion of the predicted samples of the first partition and the candidate predicted samples of the second partition. The distortion can be calculated based on bilateral matching.
[0168] Meanwhile, distortion can be calculated based on template matching. In this case, an L-shaped template can be used for template matching.
[0169] In addition, template matching can use either the template above or the template on the left.
[0170] In addition, template matching can use templates determined based on the segmentation boundaries.
[0171] Furthermore, the image decoding device can derive the prediction sample of the current block by performing a weighted summation of the prediction samples of the first partition and the prediction samples of the second partition (S1340).
[0172] at the same time, Figure 13 The steps described herein can be performed in the same manner in image encoding methods. Furthermore, this can be achieved by including... Figure 13 The image encoding method described in the figure generates a bitstream. This bitstream can be stored in a non-transitory computer-readable recording medium or transmitted (or streamed).
[0173] Figure 14 This is a diagram illustrating a content streaming system applicable to embodiments of the present invention.
[0174] like Figure 14As shown, the content streaming media system according to the embodiments of the present invention mainly includes an encoding server, a streaming media server, a web server, a media storage device, a user device, and a multimedia input device.
[0175] An encoding server can compress content from multimedia input devices such as smartphones, cameras, and CCTV into digital data to generate a bitstream, and then send it to a streaming media server. Alternatively, if the multimedia input devices such as smartphones, cameras, and CCTV generate their own bitstreams, the encoding server can be omitted.
[0176] The bitstream can be generated by applying an image encoding method and / or image encoding device according to an embodiment of the present invention, and the streaming media server can temporarily store the bitstream during the transmission or reception of the bitstream.
[0177] The streaming media server transmits multimedia data to the user's device via a network server based on the user's request. The network server acts as an intermediary, informing the user of available services. When a user requests a service from the network server, the network server forwards the request to the streaming media server, which then transmits the multimedia data to the user. In this case, the content streaming media system may include a separate control server, which controls the commands / responses between devices within the system.
[0178] A streaming media server can receive content from media storage and / or encoding servers. For example, when a streaming media server receives content from an encoding server, it can transmit the content in real time. In this case, to provide a smooth streaming service, the streaming media server can store the bitstream for a predetermined period of time.
[0179] Examples of user devices may include mobile phones, smartphones, laptops, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation devices, board PCs, tablets, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, head-mounted displays (HMDs)), digital TVs, desktop computers, digital signage, etc.
[0180] Each server in the aforementioned content streaming system can operate as a distributed server, in which case data received from each server can be distributed and processed.
[0181] The above embodiments can be performed in the same or corresponding manner in the encoding and decoding devices. Furthermore, at least one or a combination of at least one of the above embodiments can be used to encode / decode images.
[0182] The order in which the above embodiments are applied in the encoding and decoding devices may be different. Alternatively, the order in which the above embodiments are applied in the encoding and decoding devices may be the same.
[0183] The above implementation methods can be performed separately for luminance signals and chrominance signals. Alternatively, the above implementation methods for luminance signals and chrominance signals can also be performed in the same way.
[0184] In the above embodiments, the method is described based on a flowchart containing a series of steps or units. However, the present invention is not limited to the order of the steps; on the contrary, some steps may be performed simultaneously or in a different order than other steps. Furthermore, those skilled in the art should understand that the steps in the flowchart are not mutually exclusive, and other steps can be added to or some steps can be deleted from the flowchart without affecting the scope of the present invention.
[0185] These implementations 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 individual program instructions, data files, data structures, etc., or combinations of such program instructions, data files, data structures, etc. The program instructions recorded in the computer-readable recording medium may be specifically designed and constructed for this invention, or may be well known to those skilled in the art of computer software.
[0186] The bitstream generated by the encoding method according to the above embodiments can be stored in a non-transitory computer-readable recording medium. Furthermore, the bitstream stored in the non-transitory computer-readable recording medium can be decoded by the decoding method according to the above embodiments.
[0187] 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; magnetically optimized media, such as optical-magnetic floppy disks; and hardware devices specifically designed for storing and executing program instructions, such as read-only memory (ROM), random access memory (RAM), flash memory, etc. Examples of program instructions include not only machine language code formatted by a compiler but also high-level language code executable by a computer using an interpreter. The hardware device can be configured to operate by one or more software modules, and vice versa, to execute the processes according to the invention.
[0188] Although the present invention has been described with reference to specific items (e.g., detailed elements) and limited embodiments and drawings, these descriptions are provided only to help to more fully understand the invention, which is not limited to the embodiments described above. Those skilled in the art will understand that various modifications and changes can be made based on the above description.
[0189] Therefore, the spirit of this invention should not be limited to the above-described embodiments, and the entire scope of the appended claims and their equivalents should fall within the scope and spirit of this invention.
[0190] Industrial applicability This invention can be used in apparatuses for encoding / decoding images and in recording media for storing bit streams.
Claims
1. An image decoding method, the method comprising the following steps: Divide the current block into a first partition and a second partition along the partition boundary; The predicted samples for the first partition are derived based on the Advanced Motion Vector Prediction (AMVP) model. The predicted samples for the second partition are derived based on the merging pattern; as well as The prediction sample for the current block is derived by weighted summation of the prediction samples from the first partition and the second partition.
2. The method according to claim 1, wherein, The predicted samples for the first partition are derived based on the AMVP motion information obtained from the bitstream.
3. The method according to claim 2, wherein, The AMVP motion information includes motion vector difference information and reference image information.
4. The method according to claim 1, wherein, The predicted samples for the second partition are derived based on the motion information of the merge candidates selected from multiple merge candidates.
5. The method according to claim 4, wherein, The selected merging candidate is determined based on the distortion between the predicted samples of the first partition and the candidate predicted samples of the second partition based on the motion information of each of the plurality of merging candidates.
6. The method according to claim 5, wherein, The distortion is calculated based on bilateral matching.
7. The method according to claim 5, wherein, The distortion is calculated based on template matching.
8. The method according to claim 7, wherein, The template matching uses an L-shaped template.
9. The method according to claim 7, wherein, The template matching uses either the template above or the template on the left.
10. The method according to claim 7, wherein, The template matching uses a template determined based on the segmentation boundaries.
11. The method according to claim 1, wherein, The reference images for the AMVP mode and the merging mode have different orientations.
12. An image encoding method, the method comprising the following steps: Divide the current block into a first partition and a second partition along the partition boundary; The predicted samples for the first partition are derived based on the Advanced Motion Vector Prediction (AMVP) model. The predicted samples for the second partition are derived based on the merging pattern; as well as The prediction sample for the current block is derived by weighted summation of the prediction samples from the first partition and the second partition.
13. A non-transitory computer-readable recording medium for storing a bitstream, said bitstream being generated by an image encoding method. in, The image encoding method includes the following steps: Divide the current block into a first partition and a second partition along the partition boundary; The predicted samples for the first partition are derived based on the Advanced Motion Vector Prediction (AMVP) model. The predicted samples for the second partition are derived based on the merging pattern; and The prediction sample for the current block is derived by weighted summation of the prediction samples from the first partition and the second partition.
14. A method for transmitting a bit stream, the bit stream being generated by an image encoding method. in, The method of transmitting the bit stream includes transmitting the bit stream, and The image encoding method includes the following steps: Divide the current block into a first partition and a second partition along the partition boundary; The predicted samples for the first partition are derived based on the Advanced Motion Vector Prediction (AMVP) model. The predicted samples for the second partition are derived based on the merging pattern; and The prediction sample for the current block is derived by weighted summation of the prediction samples from the first partition and the second partition.