Decoding device, encoding device, storage medium, and data transmitting device
Patent Information
- Application Number
- CN202311517017.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-10-09
- Filing Date
- 2019-10-04
- Publication Date
- 2026-09-11
- Estimated Expiration
- 2039-10-04
AI Technical Summary
因此,如果使用诸如现有有线或无线宽带线这样的介质来传输图像数据或者使用现有存储介质来存储图像和视频数据,则传输成本和存储成本增加
Smart Images

Figure CN117294862B_ABST
Abstract
Description
[0001] This application is a divisional application of the original invention patent application No. 201980006033.8 (International Application No.: PCT / KR2019 / 013072, Application Date: October 4, 2019, Invention Title: Video Coding Method and Apparatus Based on Intra-Frame Prediction Using MPM List). Technical Field
[0002] This document relates to image coding techniques, and more specifically, to video coding methods and devices that use intra-frame prediction based on MPM lists. Background Technology
[0003] There has been a growing demand for high-resolution, high-quality images and videos, such as ultra-high-definition (HUD) images and 4K or 8K or higher video, across various fields. As image and video data becomes higher resolution and higher quality, the relative amount of information or bits transmitted increases compared to existing image and video data. Therefore, transmission and storage costs increase if media such as existing wired or wireless broadband lines are used to transmit image data or if existing storage media are used to store image and video data.
[0004] Furthermore, there has been a growing interest in and demand for immersive media such as virtual reality (VR), artificial reality (AR) content, or holograms. The broadcasting of images and videos, such as game graphics, whose image characteristics differ from those of real-world images, is also on the rise.
[0005] Therefore, in order to effectively compress and transmit or store and play back information of high-resolution and high-quality images and videos with such various characteristics, efficient image and video compression technologies are needed. Summary of the Invention
[0006] Technical issues
[0007] This document provides methods and devices for improving image coding efficiency.
[0008] This document provides efficient intra-frame prediction methods and devices.
[0009] This document provides video coding methods and devices for exporting a list of MPMs for efficient intra-frame prediction.
[0010] This document provides image coding methods and devices that can reduce signaling overhead by efficiently encoding information related to intra-frame prediction.
[0011] Technical solution
[0012] In one aspect, a video decoding method performed by a decoding device is provided. The method includes the following steps: constructing an MPM list by deriving most probable mode (MPM) candidates for the current block based on neighboring blocks adjacent to the current block; deriving an intra-prediction mode for the current block based on the MPM list; generating prediction samples by performing prediction on the current block based on the intra-prediction mode; and generating a reconstructed image for the current block based on the prediction samples. The step of deriving the intra-prediction mode for the current block includes the following steps: obtaining MPM flag information related to whether the intra-prediction mode for the current block is included among the MPM candidates in the MPM list; when it is determined based on the MPM flag information that the intra-prediction mode for the current block is not included among the MPM candidates in the MPM list; obtaining remaining mode information indicating the remaining intra-prediction modes for the current block among the remaining intra-prediction modes other than the MPM candidates; and deriving the intra-prediction mode for the current block based on the remaining mode information. The remaining mode information is obtained based on binarization processing.
[0013] On the other hand, a video coding method performed by an encoding device is provided. The method includes the following steps: constructing an MPM list by deriving most probable mode (MPM) candidates for the current block based on neighboring blocks adjacent to the current block; determining an intra-prediction mode for the current block; generating prediction samples by performing prediction on the current block based on the intra-prediction mode; and encoding image information including intra-prediction mode information for the current block. The step of determining the intra-prediction mode for the current block includes the following steps: generating MPM flag information based on whether the intra-prediction mode for the current block is included in the MPM candidates in the MPM list; and when it is determined based on the MPM flag information that the intra-prediction mode for the current block is not included in the MPM candidates in the MPM list, generating remaining mode information indicating the intra-prediction mode for the current block among the remaining intra-prediction modes other than the MPM candidates. The MPM flag information and the remaining mode information are included in the intra-prediction mode information and are encoded. The remaining mode information is encoded based on binarization processing.
[0014] Beneficial effects
[0015] According to this document, the overall image and video compression efficiency can be improved.
[0016] According to the document, efficient intra-frame prediction can reduce computational complexity and improve overall coding efficiency.
[0017] According to this document, the MPM list can be constructed efficiently by considering an increase in the number of intra-prediction modes. Furthermore, the accuracy of the MPM list used to indicate the intra-prediction mode of the current block can be improved, thus enhancing overall coding efficiency.
[0018] According to the document, signaling overhead can be reduced because information related to intra-frame prediction modes can be encoded efficiently. Attached Figure Description
[0019] Figure 1 Examples of video / image coding systems to which this document can be applied are illustrated.
[0020] Figure 2 This is a schematic diagram illustrating the configuration of a video / image encoding device to which the implementation of this document can be applied.
[0021] Figure 3 This is a schematic diagram illustrating the configuration of a video / image decoding device to which the implementation of this document can be applied.
[0022] Figure 4 An example of a video encoding method performed by a video encoding device is shown.
[0023] Figure 5 An example of a video decoding method performed by a decoding device is shown.
[0024] Figure 6 An example of a video coding method based on intra-frame prediction is given, and Figure 7 An intra-frame predictor within a coding device is illustrated schematically.
[0025] Figure 8 An example of a video decoding method based on intra-frame prediction is given, and Figure 9 An intra-frame predictor within a decoding device is illustrated schematically.
[0026] Figure 10 Sixty-five directional intra-frame prediction modes are illustrated.
[0027] Figure 11 This example shows the neighboring blocks of the current block.
[0028] Figure 12 and Figure 13 This is a flowchart that schematically illustrates a method for configuring an MPM list for the current block.
[0029] Figure 14 This is a flowchart illustrating an implementation of a method for configuring an MPM list for the current block.
[0030] Figure 15This is a flowchart illustrating, schematically, an encoding method that can be executed by an encoding device according to an implementation of this document.
[0031] Figure 16 This is a flowchart illustrating a decoding method that can be executed by a decoding device according to an implementation of this document.
[0032] Figure 17 Examples of content streaming systems to which the implementation methods disclosed in this document can be applied are illustrated. Detailed Implementation
[0033] This document can be modified in various ways and can have various implementations, and specific implementations will be illustrated and described in detail in the accompanying drawings. However, this is not intended to limit the document to a particular implementation. The terminology generally used in this specification is used to describe specific implementations and not to limit the technical spirit of the document. Unless otherwise expressly indicated in the context, singular expressions include plural expressions. Terms such as “comprising” or “having” in this specification should be understood to indicate the presence of the features, numbers, steps, operations, elements, components or combinations thereof described in this specification, without excluding the possibility of the presence or addition of one or more features, numbers, steps, operations, elements, components or combinations thereof.
[0034] Furthermore, for ease of description in relation to different features and functions, the elements in the accompanying drawings described in this document are illustrated independently. This does not imply that each element is implemented as a separate piece of hardware or separate piece of software. For example, at least two elements may be combined to form a single element, or a single element may be divided into multiple elements. Embodiments in which elements are combined and / or separated are also included within the scope of the claims of this document, unless they depart from the spirit of this document.
[0035] Hereinafter, preferred embodiments of the document will be described in more detail with reference to the accompanying drawings. In the drawings, the same reference numerals will be used for the same elements, and redundant descriptions of the same elements may be omitted.
[0036] Figure 1 Examples of video / image coding systems to which this document can be applied are illustrated.
[0037] Reference Figure 1 A video / image encoding system may include a first device (source device) and a second device (receiving device). The source device may transmit encoded video / image information or data to the receiving device via a digital storage medium or network in the form of a file or stream.
[0038] The source device may include a video source, an encoding device, and a transmitter. The receiving device may include a receiver, a decoding device, and a renderer. The encoding device may be referred to as a video / image encoding device, and the decoding device may be referred to as a video / image decoding device. The transmitter may be included in the encoding device. The receiver may be included in the decoding device. The renderer may include a display, and the display may be configured as a separate device or an external component.
[0039] Video sources can be obtained through processes that capture, synthesize, or generate video / images. Video sources may include video / image capture devices and / or video / image generation devices. Video / image capture devices may include, for example, one or more cameras, video / image archives including previously captured video / images, etc. Video / image generation devices may include, for example, computers, tablets, and smartphones, and can generate video / images (electronically). For example, virtual video / images can be generated by computers, etc. In this case, the video / image capture process can be replaced by a process that generates related data.
[0040] Encoding devices can encode input video / images. They can perform a series of processes such as prediction, transformation, and quantization for compression and coding efficiency. The encoded data (encoded video / image information) can be output as a bitstream.
[0041] A transmitter can send encoded video / image information or data, output as a bitstream, to a receiver in a receiving device via a digital storage medium or network, either as a file or a stream. The digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitter can include elements for generating media files according to a predetermined file format and may include elements for transmission over a broadcast / communication network. The receiver can receive / extract the bitstream and send the received / extracted bitstream to a decoding device.
[0042] Decoding devices can decode video / images by performing a series of processes such as inverse quantization, inverse transform, and prediction, which correspond to the operations of encoding devices.
[0043] The renderer can render decoded video / images. The rendered video / images can then be displayed on a monitor.
[0044] This document relates to video / image coding. For example, the methods / implementations disclosed in this document can be applied to methods disclosed in the Universal Video Coding (VVC) standard, the Basic Video Coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the second-generation Audio Video Coding (AVS2) standard, or the next-generation video / image coding standard (e.g., H.267 or H.268).
[0045] This document provides various implementations related to video / image encoding, and these implementations may be combined and performed together unless otherwise specified.
[0046] In this document, video can refer to a collection of images over time. Generally, an image refers to a unit representing an image within a specific time period, and a tile is a unit that constitutes a part of an image. A tile can include one or more Coded Tree Units (CTUs). An image can consist of one or more tiles. An image can consist of one or more groups of tiles. A group of tiles can include one or more tiles. A brick can represent a rectangular area of CTU rows within a tile in an image. A tile can be divided into multiple bricks, each brick consisting of one or more CTU rows within the tile. A tile that is not divided into multiple bricks can also be called a brick. Brick scanning can be a specific order of CTUs in the image segmentation, such as sequentially sorting CTUs by CTU raster scan within a brick, sequentially sorting bricks within a tile by raster scan of the bricks of a tile, and sequentially sorting tiles in an image by raster scan of the tiles of the image. A tile is a rectangular region of CTUs within a specific tile column and a specific tile row in an image. A tile column is a rectangular region where the height of a CTU is equal to the height of the image and the width is specified by a syntax element in the image parameter set. A tile row is a rectangular region where the height of a CTU is specified by a syntax element in the image parameter set and the width is equal to the width of the image. A tile scan can be a specific order of CTUs that divide the image: CTUs can be ordered consecutively by CTU raster scan within a tile, or tiles in an image can be ordered consecutively by raster scan of the image's tiles. A slice comprises an integer number of tile portions of an image that can be exclusively contained within a single NAL unit. A slice can consist of multiple complete tiles or only a consecutive sequence of complete tile portions. In this document, tile groups and slices can be used interchangeably. For example, in this document, a tile group / tile group header can be referred to as a slice / slice header.
[0047] A pixel, or pel, can refer to the smallest unit that makes up a picture (or image). Additionally, "sample" can be used as the term corresponding to a pixel. A sample can typically represent a pixel or a pixel value, and can represent only the pixel / pixel value of the luminance component, or only the pixel / pixel value of the chrominance component.
[0048] A unit can represent a basic unit of image processing. A unit may include a specific region and at least one of the information associated with that region. A unit may include a luminance block and two chrominance (e.g., cb, cr) blocks. Depending on the context, units and terms such as blocks and regions may be used interchangeably. Typically, an M×N block may include a set (or array) of samples (or sample arrays) or transform coefficients consisting of M columns and N rows.
[0049] In this document, the terms “ / ” and “,” should be interpreted as indicating “and / or”. For example, the expression “A / B” can mean “A and / or B”. Additionally, “A, B” can mean “A and / or B”. Furthermore, “A / B / C” can mean “at least one of A, B, and / or C”. Additionally, “A / B / C” can mean “at least one of A, B, and / or C”.
[0050] Additionally, in this document, the term "or" should be interpreted as indicating "and / or". For example, the expression "A or B" can include 1) "A only", 2) "B only", and / or 3) both "A and B". In other words, the term "or" in this document should be interpreted as indicating "alternatively or alternatively".
[0051] Figure 2 This is a schematic diagram illustrating the configuration of a video / image encoding device to which this document can be applied. In the following text, the term "video encoding device" may include an image encoding device.
[0052] Reference Figure 2The encoding device 200 may include an image segmenter 210, a predictor 220, a residual processor 230, an entropy encoder 240, an adder 250, a filter 260, and a memory 270. The predictor 220 may include an inter-frame predictor 221 and an intra-frame predictor 222. The residual processor 230 may include a transform 232, a quantizer 233, an inverse quantizer 234, and an inverse transform 235. The residual processor 230 may also include a subtractor 231. The adder 250 may be referred to as a reconstructor or a reconstruction block generator. According to embodiments, the image segmenter 210, predictor 220, residual processor 230, entropy encoder 240, adder 250, and filter 260 described above may be constituted by one or more hardware components (e.g., an encoder chipset or processor). Additionally, the memory 270 may include a decoded image buffer (DPB) and may be constituted by a digital storage medium. The hardware components may also include the memory 270 as an internal / external component.
[0053] Image segmenter 210 segments an input image (or picture or frame) input to encoding device 200 into one or more processing units. As an example, a processing unit may be referred to as a coding unit (CU). In this case, starting from a coding tree unit (CTU) or a maximum coding unit (LCU), the coding unit can be recursively segmented according to a quadtree-binary-tritree (QTBTTT) structure. For example, a coding unit can be divided into multiple deeper coding units based on a quadtree structure, a binary tree structure, and / or a ternary tree structure. In this case, for example, a quadtree structure can be applied first, followed by a binary tree structure and / or a ternary tree structure. Alternatively, a binary tree structure can be applied first. The encoding process according to this document can be performed based on the final coding unit that has not been further segmented. In this case, based on the encoding efficiency according to image characteristics, the maximum coding unit can be directly used as the final coding unit. Alternatively, the coding unit can be recursively segmented into even deeper coding units as needed, such that the optimally sized coding unit can be used as the final coding unit. Here, the encoding process may include processes such as prediction, transformation, and reconstruction, which will be described later. As another example, the processing unit may also include a prediction unit (PU) or a transformation unit (TU). In this case, the prediction unit and the transformation unit can be divided or segmented from the final encoding unit described above. The prediction unit may be a unit for predicting samples, and the transformation unit may be a unit for deriving the transformation coefficients and / or a unit for deriving the residual signal from the transformation coefficients.
[0054] Depending on the context, units and terms such as blocks and regions can be used interchangeably. Typically, an M×N block can represent a set of samples or transform coefficients consisting of M columns and N rows. Samples can usually represent pixels or pixel values, and can represent pixel / pixel values only for the luminance component, or pixel / pixel values only for the chrominance component. Samples can be used as a term corresponding to pixels or pels of a picture (or image).
[0055] In the encoding device 200, a residual signal (residual block, residual sample array) is generated by subtracting the prediction signal (prediction block, prediction sample array) output from the inter-frame predictor 221 or the intra-frame predictor 222 from the input image signal (original block, original sample array), and the generated residual signal is sent to the converter 232. In this case, as shown, the unit in the encoding device 200 that subtracts the prediction signal (prediction block, prediction sample array) from the input image signal (original block, original sample array) can be referred to as subtractor 231. The predictor can perform prediction on the processing target block (hereinafter referred to as "current block") and can generate a prediction block including prediction samples for the current block. The predictor can determine whether to apply intra-frame prediction or inter-frame prediction based on the current block or CU. As discussed later in the description of each prediction mode, the predictor can generate various prediction-related information such as prediction mode information and send the generated information to the entropy encoder 240. The prediction information can be encoded in the entropy encoder 240 and output as a bitstream.
[0056] Intra-predictor 222 can predict the current block by referencing samples in the current image. Depending on the prediction mode, the reference samples can be located near or separate from the current block. In intra-prediction, the prediction mode can include multiple non-directional modes and multiple directional modes. Non-directional modes can include, for example, DC mode and planar mode. Depending on the level of detail in the prediction direction, the directional modes can include, for example, 33 or 65 directional prediction modes. However, this is just an example, and more or fewer directional prediction modes can be used depending on the settings. Intra-predictor 222 can determine the prediction mode to be applied to the current block by using the prediction modes applied to neighboring blocks.
[0057] Inter-frame predictor 221 can derive a predicted block for the current block based on a reference block (reference sample array) specified by motion vectors on a reference image. In this case, to reduce the amount of motion information transmitted in inter-frame prediction mode, motion information can be predicted based on the correlation between motion information of neighboring blocks and the current block, on a block, sub-block, or sample basis. Motion information may include motion vectors and reference image indices. Motion information may also include inter-frame prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter-frame prediction, neighboring blocks may include spatially neighboring blocks existing in the current image and temporally neighboring blocks existing in the reference image. The reference image including the reference block and the reference image including the temporally neighboring block may be the same as or different from each other. The temporally neighboring block may be referred to as a juxtaposed reference block, juxtaposed CU (colCU), etc., and the reference image including the temporally neighboring block may be referred to as a juxtaposed image (colPic). For example, inter-frame predictor 221 can configure a motion information candidate list based on neighboring blocks and generate information indicating which candidate is used to derive the motion vector and / or reference image index of the current block. Inter-frame prediction can be performed based on various prediction modes. For example, in jump mode and merge mode, the inter-frame predictor 221 can use motion information of neighboring blocks as motion information of the current block. In jump mode, unlike merge mode, residual signals cannot be sent. In motion information prediction (motion vector prediction, MVP) mode, motion vectors of neighboring blocks can be used as motion vector prediction terms, and the motion vector of the current block can be indicated by signaling the motion vector difference.
[0058] Predictor 220 can generate prediction signals based on various prediction methods. For example, the predictor can apply intra-frame prediction or inter-frame prediction to the prediction of a block, and can also apply intra-frame prediction and inter-frame prediction simultaneously. This can be referred to as combined intra-frame and inter-frame prediction (CIIP). Alternatively, the predictor can perform prediction on a block based on an intra-block copy (IBC) prediction mode or a palette mode. The IBC prediction mode or palette mode can be used for content image / video encoding such as games, etc. Although IBC essentially performs prediction in the current image, its execution is similar to inter-frame prediction in that it derives a reference block in the current image. That is, IBC can use at least one of the inter-frame prediction techniques described in this document. The palette mode can be considered as an example of intra-frame coding or intra-frame prediction. When applying a palette mode, sample values in the image can be signaled based on information about the palette index and palette table.
[0059] The predicted signal generated by the predictor (including inter-frame predictor 221 and / or intra-frame predictor 222) can be used to generate a reconstructed signal or a residual signal. Transformer 232 can generate transform coefficients by applying transform techniques to the residual signal. For example, the transform technique can include at least one of Discrete Cosine Transform (DCT), Discrete Sine Transform (DST), Karhunen-Loève Transform (KLT), Graph-Based Transform (GBT), or Conditional Nonlinear Transform (CNT). Here, GBT refers to a transform obtained from a graph when the relationship information between pixels is represented as a graph. CNT refers to a transform obtained based on the predicted signal generated using all previously reconstructed pixels. Furthermore, the transform processing can be applied to square pixel blocks of the same size, or to blocks of variable size that are not square.
[0060] Quantizer 233 quantizes the transform coefficients and sends them to entropy encoder 240, which encodes the quantized signal (information about the quantized transform coefficients) and outputs the encoded signal in a bitstream. The information about the quantized transform coefficients can be referred to as residual information. Quantizer 233 can rearrange the block-type quantized transform coefficients into a one-dimensional vector based on the coefficient scan order, and generate information about the quantized transform coefficients based on the one-dimensional vector form. Entropy encoder 240 can perform various encoding methods such as exponential Golomb, context-adaptive variable-length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC). Entropy encoder 240 can encode information required for video / image reconstruction, other than the quantized transform coefficients (e.g., values of syntax elements), either together or separately. The encoded information (e.g., encoded video / image information) can be transmitted or stored in bitstream form at the unit level of the Network Abstraction Layer (NAL). The video / image information may also include information about various parameter sets such as Adaptive Parameter Set (APS), Picture Parameter Set (PPS), Sequence Parameter Set (SPS), and Video Parameter Set (VPS). Additionally, the video / image information may include general constraint information. In this document, information and / or syntax elements sent from the encoding device to / signaled to the decoding device may be included in the video / image information. The video / image information can be encoded using the encoding process described above and included in the bitstream. The bitstream can be transmitted over a network or stored in a digital storage medium. Here, the network may include broadcast networks, communication networks, and / or the like, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmitter (not shown) that sends the signal output from the entropy encoder 240 or a memory (not shown) that stores it may be configured as an internal / external element of the encoding device 200, or the transmitter may be included in the entropy encoder 240.
[0061] The quantized transform coefficients output from quantizer 233 can be used to generate a prediction signal. For example, by applying inverse quantization and inverse transform to the vectorized transform coefficients using inverse quantizer 234 and inverse transformer 235, the residual signal (residual block or residual sample) can be reconstructed. Adder 155 adds the reconstructed residual signal to the prediction signal output from inter-frame predictor 221 or intra-frame predictor 222, thereby generating a reconstructed signal (reconstructed image, reconstructed block, reconstructed sample array). When there is no residual for the processing target block, as in the case of applying a jump mode, the prediction block can be used as the reconstructed block. Adder 250 can be referred to as a reconstructor or reconstructed block generator. The generated reconstructed signal can be used for intra-frame prediction of the next processing target block in the current image, and, as described later, for inter-frame prediction of the next image by filtering.
[0062] In addition, luminance mapping with chroma scaling (LMCS) can be applied in image encoding and / or reconstruction processing.
[0063] Filter 260 can improve subjective / objective video quality by applying filtering to the reconstructed signal. For example, filter 260 can generate a modified reconstructed image by applying various filtering methods to the reconstructed image, and the modified reconstructed image can be stored in memory 270, specifically in the DPB of memory 270. Various filtering methods can include, for example, deblocking filtering, sample adaptive offset, adaptive ring filter, bilateral filter, etc. As discussed later in the description of each filtering method, filter 260 can generate various filtering-related information and send the generated information to entropy encoder 240. The filtering information can be encoded in entropy encoder 240 and output as a bitstream.
[0064] The modified reconstructed image sent to memory 270 can be used as a reference image in inter-frame predictor 221. Accordingly, the encoding device can avoid prediction mismatch in the encoding device 100 and the decoding device when applying inter-frame prediction, and can also improve encoding efficiency.
[0065] The memory 270DPB can store modified reconstructed images for use as reference images in the inter-frame predictor 221. The memory 270 can store motion information of blocks in the current image from which motion information has been derived (or encoded) and / or motion information of blocks in reconstructed images. The stored motion information can be sent to the inter-frame predictor 221 to be used as motion information for neighboring blocks or temporally neighboring blocks. The memory 270 can store reconstructed samples of reconstructed blocks in the current image and send them to the intra-frame predictor 222.
[0066] Figure 3This is a diagram that schematically illustrates the configuration of a video / image decoding device to which this document can be applied.
[0067] Reference Figure 3 The video decoding device 300 may include an entropy decoder 310, a residual processor 320, a predictor 330, an adder 340, a filter 350, and a memory 360. The predictor 330 may include an inter-frame predictor 332 and an intra-frame predictor 331. The residual processor 320 may include an inverse quantizer 321 and an inverse transformer 322. According to embodiments, the entropy decoder 310, residual processor 320, predictor 330, adder 340, and filter 350 described above may be constituted by one or more hardware components (e.g., a decoder chipset or processor). Additionally, the memory 360 may include a decoded picture buffer (DPB) and may be constituted by a digital storage medium. The hardware components may also include the memory 360 as an internal / external component.
[0068] When the input includes a bitstream containing video / image information, the decoding device 300 can interact with data already prepared therein. Figure 2 The processing of video / image information in the encoding device correspondingly reconstructs the image. For example, the decoding device 300 can derive units / blocks based on information related to block segmentation obtained from the bitstream. The decoding device 300 can perform decoding by using processing units applied in the encoding device. Therefore, the decoding processing unit can be, for example, an encoding unit, which can be segmented along a quadtree, binary tree, and / or ternary tree structure using encoding tree units or maximum encoding units. One or more transform units can be derived from the encoding units. And, the reconstructed image signal decoded and output by the decoding device 300 can be reproduced by a reproducer.
[0069] Decoding device 300 can receive data from... in the form of a bitstream. Figure 2The signal output by the encoding device can be decoded by the entropy decoder 310. For example, the entropy decoder 310 can parse the bitstream to derive information (e.g., video / image information) required for image reconstruction (or picture reconstruction). The video / image information may also include information about various parameter sets such as Adaptive Parameter Set (APS), Picture Parameter Set (PPS), Sequence Parameter Set (SPS), Video Parameter Set (VPS), etc. In addition, the video / image information may also include general constraint information. The decoding device can further decode the picture based on the information about the parameter sets and / or general constraint information. In this document, the signaling / receiving information and / or syntax elements, which will be described later, can be decoded and obtained from the bitstream through the decoding process. For example, the entropy decoder 310 can decode the information in the bitstream based on encoding methods such as Exponential Golomb coding, CAVLC, CABAC, etc., and can output the values of the syntax elements required for image reconstruction and the quantized values of the transform coefficients of the residuals. More specifically, the CABAC entropy decoding method can receive bins corresponding to each syntax element in the bitstream, determine a context model using information about the target syntax element and the decoding information of neighboring and target blocks, or information about symbols / bins decoded in previous steps, predict the bin generation probability based on the determined context model, and perform arithmetic decoding on the bins to generate symbols corresponding to each syntax element value. Here, the CABAC entropy decoding method can update the context model after determining it using information about symbols / bins decoded for the context model of the next symbol / bin. Prediction information from the information decoded in the entropy decoder 310 can be provided to the predictors (inter-frame predictor 332 and intra-frame predictor 331), and the residual values (i.e., quantized transform coefficients) and associated parameter information that have undergone entropy decoding in the entropy decoder 310 can be input to the residual processor 320. The residual processor 320 can derive residual signals (residual blocks, residual samples, residual sample arrays). Additionally, filtering information from the information decoded in the entropy decoder 310 can be provided to the filter 350. Furthermore, a receiver (not shown) that receives the signal output from the encoding device can also configure the decoding device 300 as an internal / external component, and the receiver can be a component of the entropy decoder 310. Additionally, the decoding device according to this document can be referred to as a video / image / picture decoding device, and the decoding device can be divided into an information decoder (video / image / picture information decoder) and a sample decoder (video / image / picture sample decoder). The information decoder may include the entropy decoder 310, and the sample decoder may include at least one of a dequantizer 321, an inverse transformer 322, an adder 340, a filter 350, a memory 360, an inter-frame predictor 332, and an intra-frame predictor 331.
[0070] The dequantizer 321 can output transform coefficients by dequantizing the quantized transform coefficients. The dequantizer 321 can rearrange the quantized transform coefficients into two-dimensional blocks. In this case, the rearrangement can be performed based on the order of coefficient scans already performed in the encoding device. The dequantizer 321 can perform dequantization on the quantized transform coefficients using quantization parameters (e.g., quantization step size information) and obtain the transform coefficients.
[0071] The inverse converter 322 obtains the residual signal (residual block, residual sample array) by performing an inverse transformation on the transformation coefficients.
[0072] The predictor can perform predictions on the current block and generate a prediction block that includes prediction samples for the current block. The predictor can determine whether to apply intra-frame prediction or inter-frame prediction to the current block based on information about the prediction output from the entropy decoder 310, and specifically, can determine the intra-frame / inter-frame prediction mode.
[0073] Predictor 330 can generate prediction signals based on various prediction methods. For example, the predictor can apply intra-frame prediction or inter-frame prediction to the prediction of a block, and can also apply intra-frame prediction and inter-frame prediction simultaneously. This can be referred to as combined intra-frame and inter-frame prediction (CIIP). Additionally, the predictor can perform prediction on blocks based on an intra-block copy (IBC) prediction mode or a palette mode. The IBC prediction mode or palette mode can be used for content image / video encoding such as games with screen content coding (SCC). Although IBC essentially performs prediction within the current frame, its execution is similar to inter-frame prediction in that it derives a reference block in the current frame. That is, IBC can use at least one of the inter-frame prediction techniques described in this document. The palette mode can be considered an example of intra-frame coding or intra-frame prediction. When a palette mode is applied, information about the palette table and palette index can be included in the video / image information and signaled.
[0074] The intra-predictor 331 can predict the current block by referencing samples in the current image. Depending on the prediction mode, the reference samples can be located near or separate from the current block. In intra-prediction, the prediction mode can include multiple non-directional modes and multiple directional modes. The intra-predictor 331 can determine the prediction mode applied to the current block by using the prediction modes applied to neighboring blocks.
[0075] Inter-frame predictor 332 can derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference image. In this case, to reduce the amount of motion information transmitted in inter-frame prediction mode, motion information can be predicted based on the correlation between motion information of neighboring blocks and the current block, at the block, sub-block, or sample level. Motion information may include motion vectors and a reference image index. Motion information may also include inter-frame prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter-frame prediction, neighboring blocks may include spatially neighboring blocks existing in the current image and temporally neighboring blocks existing in the reference image. For example, inter-frame predictor 332 can configure a motion information candidate list based on neighboring blocks and derive the motion vector and / or reference image index for the current block based on the received candidate selection information. Inter-frame prediction can be performed based on various prediction modes, and the information about the prediction may include information indicating the mode of inter-frame prediction for the current block.
[0076] Adder 340 adds the obtained residual signal to the prediction signal (prediction block, prediction sample array) output from the predictor (inter-frame predictor 332 or intra-frame predictor 331) to generate a reconstruction signal (reconstructed image, reconstruction block, reconstruction sample array). When there is no residual for processing the target block, as in the case of applying a jump mode, the prediction block can be used as the reconstruction block.
[0077] Adder 340 can be referred to as a reconstructor or reconstructed block generator. The generated reconstructed signal can be used for intra-frame prediction of the next block to be processed in the current image, and can be output by filtering as described below, or it can be used for inter-frame prediction of the next image.
[0078] In addition, Luminance Mapping with Chroma Scaling (LMCS) can be applied to image decoding processing.
[0079] Filter 350 can improve subjective / objective image quality by applying filtering to the reconstructed signal. For example, filter 350 can generate a modified reconstructed image by applying various filtering methods to the reconstructed image and store the modified reconstructed image in memory 360, specifically in the DPB of memory 360. Various filtering methods may include, for example, deblocking filtering, adaptive sample shifting, adaptive loop filtering, bilateral filtering, etc.
[0080] The (modified) reconstructed image stored in the DPB of memory 360 can be used as a reference image in inter-frame predictor 332. Memory 360 can store motion information of blocks from which motion information in the current image is derived (or decoded) and / or motion information of blocks in reconstructed images. The stored motion information can be sent to inter-frame predictor 332 to be used as motion information for spatially or temporally neighboring blocks. Memory 360 can store reconstructed samples of reconstructed blocks in the current image and transmit the reconstructed samples to intra-frame predictor 331.
[0081] In this disclosure, the embodiments described in the filter 260, inter-frame predictor 221, and intra-frame predictor 222 of the encoding device 200 can be the same as or applied to the filter 350, inter-frame predictor 332, and intra-frame predictor 331 of the decoding device 300, respectively. The same applies to unit 332 and intra-frame predictor 331.
[0082] As described above, during video encoding, prediction is performed to improve compression efficiency. A prediction block, i.e., a target coding block, can be generated by prediction, which includes prediction samples of the current block. In this case, the prediction block includes prediction samples in the spatial domain (or pixel domain). The prediction block is derived similarly in both the encoding and decoding devices. The encoding device can improve image coding efficiency by signaling to the decoding device information about the residuals (residual information) between the original block (not the original block) and the prediction block. The decoding device can derive a residual block including residual samples based on the residual information, generate a reconstructed block including reconstructed samples by adding the residual block to the prediction block, and generate a reconstructed image including the reconstructed block.
[0083] Residual information can be generated through transformation and quantization processes. For example, the encoding device can derive a residual block between the original block and the prediction block, derive transform coefficients by performing a transform process on the residual samples (residual sample array) included in the residual block, derive quantized transform coefficients by performing a quantization process on the transform coefficients, and signal the relevant residual information to the decoding device (via a bitstream). In this case, the residual information can include information such as value information, position information, transform scheme, transform kernel, and quantization parameters of the quantized transform coefficients. The decoding device can perform inverse quantization / inverse transform processes based on the residual information and derive residual samples (or residual blocks). The decoding device can generate a reconstructed image based on the prediction block and the residual block. Furthermore, the encoding device can derive residual blocks by performing inverse quantization / inverse transform on the quantized transform coefficients for inter-frame prediction reference in subsequent images and can generate a reconstructed image.
[0084] Figure 4 An example of a video encoding method performed by a video encoding device is shown.
[0085] Reference Figure 4 Video coding methods can include block segmentation, intra / inter-frame prediction, transform, quantization, and entropy coding. For example, the current image can be segmented into multiple blocks. A prediction block for the current block can be generated through intra / inter-frame prediction. The residual block for the current block can be generated by subtracting the prediction block from the input block of the current block. Subsequently, a coefficient block, i.e., the transform coefficients of the current block, can be generated by transforming the residual block. The transform coefficients can be quantized and entropy-coded and stored in the bitstream.
[0086] Figure 5 An example of a video encoding method performed by a decoding device is shown.
[0087] Reference Figure 5 Image coding methods can include entropy decoding, dequantization, inverse transform, and intra / inter-frame prediction processing. For example, a decoding device can perform the reverse processing of the coding methods mentioned above. Specifically, quantized transform coefficients can be obtained by entropy decoding of the bitstream. The coefficient block of the current block, i.e., the transform coefficients, can be obtained by dequantizing the quantized transform coefficients. The residual block of the current block can be derived by performing an inverse transform on the transform coefficients. The reconstructed block of the current block can be derived by adding the predicted block of the current block derived through intra / inter-frame prediction to the residual block.
[0088] Furthermore, if intra-frame prediction is performed, the correlation between samples can be used, and the difference between the original block and the predicted block, i.e., the residual, can be obtained. The transformations and quantizations mentioned above can be applied to the residual. Therefore, spatial redundancy can be reduced. The coding and decoding methods using intra-frame prediction are described in detail below.
[0089] Intra-frame prediction refers to generating a prediction sample for the current block based on reference samples located outside the current block within the image including the current block (hereinafter, the current image). In this case, the reference sample located outside the current block can refer to a sample adjacent to the current block. If intra-frame prediction is applied to the current block, the neighboring reference samples to be used for intra-frame prediction of the current block can be derived.
[0090] For example, when the size (width × height) of the current block is nW × nH, the neighbor reference samples of the current block can include samples near the left boundary and a total of 2 × nH samples near the bottom left of the current block, samples near the top boundary and a total of 2 × nW samples near the top right of the current block, and one sample near the top left of the current block. Alternatively, the neighbor reference samples of the current block can also include multiple column-level top neighbor samples and multiple row-level left neighbor samples. In addition, the neighbor reference samples of the current block can also include a total of nH samples near the right boundary of the current block of size nW × nH, a total of nW samples near the bottom boundary of the current block, and one sample near the bottom right of the current block.
[0091] In this scenario, some of the neighboring reference samples of the current block may not have been decoded or may be unavailable. In this case, the decoding device can configure the neighboring reference samples to be used for prediction by replacing the unavailable samples with available ones. Alternatively, the neighboring reference samples to be used for prediction can be constructed by interpolation of the available samples.
[0092] If deriving neighboring reference samples, then (i) the predicted sample can be derived based on the average or interpolation of the neighboring reference samples of the current block, and (ii) the predicted sample can be derived based on a reference sample present in a specific (prediction) direction for the predicted sample among the neighboring reference samples of the current block. (i) can be applied when the intra-frame prediction mode is non-directional or non-angular. (ii) can be applied when the intra-frame prediction mode is directional or angular.
[0093] Furthermore, prediction samples can be generated based on the prediction samples of the current block in the neighboring reference samples by interpolating between a first neighboring sample located in the prediction direction of the intra-prediction mode of the current block and a second neighboring sample corresponding to the first neighboring sample. The second neighboring sample can be a sample located in the opposite direction to the prediction direction of the intra-prediction mode of the current block. This case can be referred to as Linear Interpolation Intra-Prediction (LIP). Additionally, temporary prediction samples for the current block can be derived based on filtered neighboring reference samples. Prediction samples for the current block can be derived by weighted summing of at least one reference sample derived based on the intra-prediction mode and a temporary prediction sample (i.e., an unfiltered neighboring reference sample) among the existing neighboring reference samples. This case can be referred to as Position-Related Intra-Prediction (PDCP). Furthermore, if necessary, post-filtering can be performed on the derived prediction samples.
[0094] Specifically, the intra-frame prediction process may include an intra-frame prediction mode determination step, a neighboring reference sample derivation step, and a prediction sample derivation step based on the intra-frame prediction mode. Furthermore, if necessary, a post-filtering step may be performed on the derived prediction samples.
[0095] Figure 6 An example of a video coding method based on intra-frame prediction is given, and Figure 7 An intra-frame predictor within a coding device is illustrated schematically. Figure 7 The intra-frame predictor within the coding device can be applied equivalently or in a corresponding manner. Figure 2 The intra-frame predictor 222 of the coding device 200.
[0096] Reference Figure 6 and Figure 7 S600 can be executed by the intra-frame predictor 222 of the encoding device. S610 can be executed by the residual processor 230 of the encoding device. Specifically, S610 can be executed by the subtractor 231 of the encoding device. In S620, the intra-frame predictor 222 can derive prediction information, and the entropy encoder 240 can encode the prediction information. In S620, the residual processor 230 can derive residual information, and the entropy encoder 240 can encode the residual information. The residual information is information related to the residual samples. The residual information may include information related to the transform coefficients after quantization of the residual samples. As described above, the residual samples can be derived into transform coefficients by the transformer 232 of the encoding device. The transform coefficients can be derived into quantized transform coefficients by the quantizer 233. The entropy encoder 240 can encode the information related to the quantized transform coefficients through the residual encoding process.
[0097] The encoding device can perform intra-prediction on the current block (S600). The encoding device can derive the intra-prediction mode of the current block, derive the neighboring reference samples of the current block, and generate prediction samples within the current block based on the intra-prediction mode and the neighboring reference samples. In this case, the intra-prediction mode determination, neighboring reference sample derivation, and prediction sample generation processes can be performed, or any one of these processes can be performed before the other.
[0098] In one implementation, the intra-predictor 222 of the coding apparatus may include a prediction mode determiner 223, a reference sample deriver 224, and a prediction sample deriver 225. The prediction mode determiner 223 determines the intra-prediction mode for the current block. The reference sample deriver 224 derives neighboring reference samples for the current block. The prediction sample deriver 225 derives prediction samples for the current block. Furthermore, although not illustrated, the intra-predictor 222 may also include a prediction sample filtering unit (not illustrated) if the prediction sample filtering process, which will be described subsequently, is performed. The coding apparatus can determine the mode applicable to the current block from among a variety of intra-prediction modes. The coding apparatus can compare the RD costs for the intra-prediction modes and determine the optimal intra-prediction mode for the current block.
[0099] As described above, the encoding device can perform a prediction sample filtering process. Prediction sample filtering can also be called post-filtering. Some or all of the prediction samples can be filtered through the prediction sample filtering process. The prediction sample filtering process can be omitted depending on the situation.
[0100] The encoding device can generate residual samples for the current block based on the (filtered) prediction samples (S610). The encoding device can encode image information including prediction mode information indicating the intra-frame prediction mode and residual information related to the residual samples (S620). The encoded image information can be output in the form of a bitstream. The output bitstream can be sent to the decoding device via a network through a storage medium.
[0101] As described above, the encoding device can generate a reconstructed image (including reconstructed samples and reconstructed blocks) based on the predicted samples and residual samples. This is to ensure that the encoding device derives the same prediction result as that performed in the decoding device. The reason for this is to improve encoding efficiency. Furthermore, as mentioned above, an in-loop filtering process can also be applied to the reconstructed image.
[0102] Figure 8 An example of a video coding method based on intra-frame prediction is given, and Figure 9 An intra-frame predictor within a decoding device is illustrated schematically. Figure 9 The intra-frame predictor within the decoding device can be applied equivalently or in a corresponding manner. Figure 3 The intra-frame predictor 331 of the decoding device 300.
[0103] Reference Figure 8 and Figure 9 The decoding device can perform operations corresponding to those performed in the encoding device. The decoding device can perform predictions on the current block and derive prediction samples based on the received prediction information.
[0104] S800 to S820 can be executed by the intra-frame predictor 331 of the decoding device. In S830, residual information can be obtained from the bitstream by the entropy decoder 310 of the decoding device. The residual processor 320 of the decoding device can derive residual samples of the current block based on the residual information. Specifically, the inverse quantizer 321 of the residual processor can derive the transform coefficients by performing inverse quantization based on the quantized transform coefficients derived from the residual information. The inverse transformer 322 of the residual processor 320 can derive the residual samples of the current block by performing an inverse transform on the transform coefficients. S840 can be executed by the adder 340 or the reconstructor of the decoding device.
[0105] The decoding device can derive the intra-prediction mode for the current block based on the received prediction mode information (S800). The decoding device can derive neighboring reference samples for the current block (S810). The decoding device can generate prediction samples within the current block based on the intra-prediction mode and the neighboring reference samples (S820). In this case, the decoding device can perform a prediction sample filtering process. Prediction sample filtering can be referred to as post-filtering. Some or all of the prediction samples can be filtered through the prediction sample filtering process. The prediction sample filtering process can be omitted depending on the situation.
[0106] The decoding device can generate residual samples for the current block based on the received residual information (S830). The decoding device can generate reconstruction samples for the current block based on the (filtered) prediction samples and residual samples, and can generate a reconstruction image based on the reconstruction samples (S840).
[0107] In one embodiment, the intra-predictor 331 of the decoding device may include a prediction mode determiner 333, a reference sample deriver 334, and a prediction sample deriver 335. The prediction mode determiner 333 may determine the intra-prediction mode for the current block based on prediction mode information received from the prediction mode determiner 223 of the encoding device. The reference sample deriver 334 may derive neighboring reference samples for the current block. The prediction sample deriver 335 may derive prediction samples for the current block. Furthermore, although not illustrated, the intra-predictor 331 may also include a prediction sample filtering unit (not illustrated) if a prediction sample filtering process is performed.
[0108] Furthermore, during intra-frame prediction, prediction mode information can be determined based on whether the most probable mode (MPM) is applied to the current block. For example, prediction mode information may include flag information (e.g., `prev_intra_luma_pred_flag`) indicating whether the most probable mode (MPM) is applied to the current block or other modes are applied. If the MPM is applied to the current block, the prediction mode information may also include index information (e.g., `mpm_idx`) indicating one of the intra-frame prediction mode candidates (MPM candidates). In this case, the intra-frame prediction mode candidates (MPM candidates) can be constructed as an MPM candidate list or an MPM list. Furthermore, if the MPM is not applied to the current block, the prediction mode information may also include other mode information (e.g., `rem_intra_luma_pred_mode`) indicating one of the remaining intra-frame prediction modes besides the intra-frame prediction mode candidates (MPM candidates). The decoding device can determine the intra-frame prediction mode of the current block based on the prediction mode information. In this case, the prediction mode information can be encoded / decoded using the encoding method described later. For example, prediction pattern information can be encoded / decoded based on truncated (Rice) binary code using entropy coding (e.g., CABAC, CAVLC).
[0109] Furthermore, if intra-prediction is applied, the intra-prediction modes of neighboring blocks can be used to determine the intra-prediction mode to be applied to the current block when determining the prediction mode information. For example, the decoding device can derive the most probable mode (MPM) candidates based on the intra-prediction modes of the left block and the previous block, and can select one of the MPM candidates based on the MPM index (e.g., mpm_idx). Alternatively, the decoding device can select one of the remaining intra-prediction modes not included in the MPM candidates based on the remaining intra-prediction mode information (e.g., rem_intra_luma_pred_mode). The MPM index can be signaled in the form of the mpm_idx syntax element. The remaining intra-prediction mode information can be signaled in the form of the rem_intra_luma_pred_mode syntax element. For example, the remaining intra-prediction mode information can indicate one of the remaining intra-prediction modes not included in the MPM candidates and indexed in order of prediction mode number.
[0110] Intra-prediction modes can include non-directional (or non-angular) intra-prediction modes and directional (or angular) intra-prediction modes. For example, the HEVC standard uses intra-prediction modes including 2 non-directional prediction modes and 33 directional prediction modes. Non-directional prediction modes can include planar intra-prediction modes (i.e., mode 0) and DC intra-prediction modes (i.e., mode 1). Directional prediction modes can include intra-prediction modes 2 through 34. Planar intra-prediction modes can be referred to as planar modes, and DC intra-prediction modes can be referred to as DC modes.
[0111] Alternatively, in order to obtain a given edge orientation proposed in a natural video, such as Figure 10 Similar to the previous example, directional intra-prediction modes can be expanded from the existing 33 modes to 65 modes. In this case, the intra-prediction modes can include 2 non-directional intra-prediction modes and 65 directional intra-prediction modes. Non-directional intra-prediction modes can include planar intra-prediction mode (i.e., mode 0) and DC intra-prediction mode (i.e., mode 1). Directional intra-prediction modes can include intra-prediction modes 2 through 66. The expanded directional intra-prediction modes can be applied to blocks of all sizes and can be applied to both the luma and chroma components. However, this is just an example, and the implementation of this document can be applied to cases with different numbers of intra-prediction modes. Intra-prediction mode 67 can also be used, depending on the situation. Intra-prediction mode 67 can indicate a linear model (LM) mode.
[0112] Figure 10 Sixty-five directional intra-frame prediction modes are illustrated.
[0113] Reference Figure 10 Based on intra-prediction mode 34, which has a top-left diagonal prediction direction, the mode can be divided into intra-prediction modes with horizontal directionality and intra-prediction modes with vertical directionality. Figure 10 In the diagram, H and V represent horizontal and vertical orientations, respectively. Each of the numbers -32 to 32 indicates the displacement of 1 / 32 cell at the sample grid location. Intra-prediction modes 2 to 33 are horizontally oriented, and intra-prediction modes 34 to 66 are vertically oriented. Intra-prediction modes 18 and 50 indicate the horizontal and vertical intra-prediction modes, respectively. Intra-prediction mode 2 can be referred to as the lower-left diagonal intra-prediction mode, mode 34 as the upper-left diagonal intra-prediction mode, and mode 66 as the upper-right diagonal intra-prediction mode.
[0114] As mentioned above, typically, if block segmentation is performed on an image, the current block and its neighboring blocks to be encoded have similar image characteristics. Therefore, it is highly likely that the current block and its neighboring blocks will have the same or similar intra-prediction modes. Based on these image characteristics, the intra-prediction mode of the current block can be derived using the intra-prediction modes of the neighboring blocks. This can be called the most probable mode (MPM). That is, MPM can refer to a mode used to improve coding efficiency by considering the similarity between the current block and its neighboring blocks when performing intra-prediction mode encoding.
[0115] For example, the encoding / decoding device can configure a Most Probable Mode (MPM) list for the current block. The MPM list can be designated as an MPM candidate list. In this case, the MPM list including a given MPM candidate can be constructed by considering the complexity of generating the MPM list. For example, the MPM list can include 3, 5, or 6 MPM candidates. In one implementation, the MPM list can include MPM candidates derived based on intra-prediction modes of neighboring blocks, derived intra-prediction modes, and / or a default intra-prediction mode. In this case, when deriving MPM candidates based on neighboring blocks, the encoding / decoding device can derive the intra-prediction modes of neighboring blocks by searching for neighboring blocks of the current block in a specific order, and can use the intra-prediction modes of neighboring blocks as MPM candidates based on the derived order. For example, neighboring blocks can include at least one of the left neighboring block, top neighboring block, bottom-left neighboring block, top-right neighboring block, and top-left neighboring block of the current block. If the intra-prediction mode of the current block is not included among the MPM candidates in the MPM list, the remaining modes can be used. In this scenario, the remaining modes are the intra-prediction modes that use all intra-prediction modes except for the MPM candidate, and the remaining intra-prediction mode information can be encoded and signaled. The remaining intra-prediction mode information can be information indicating the intra-prediction mode that should be used for the current block among the remaining intra-prediction modes excluding the MPM candidate. For example, if 67 intra-prediction modes are used, the remaining intra-prediction mode information can include 6-bit syntax elements (e.g., the rem_intra_luma_pred_mode syntax element).
[0116] As mentioned above, the HEVC standard uses 35 intra-prediction modes when performing intra-prediction. In this case, an MPM list including three MPM candidates is constructed. In this scenario, the three MPM candidates can be derived based on the intra-prediction modes of neighboring blocks F and G. The neighboring blocks of the current block, including neighboring blocks F and G, can be the same as those mentioned above.
[0117] Figure 11 This example shows the neighboring blocks of the current block.
[0118] Reference Figure 11 The neighboring blocks of the current block can include neighboring block A, neighboring block B, neighboring block C, neighboring block D, neighboring block E, neighboring block F and / or neighboring block G.
[0119] In this scenario, neighboring block A can indicate the neighboring block to the upper left of the current block's upper-left sample position. Neighboring block B can indicate the neighboring block above the current block's upper-right sample position. Neighboring block C can indicate the neighboring block to the upper right of the current block's upper-right sample position. Neighboring block D can indicate the neighboring block to the left of the current block's lower-left sample position. Neighboring block E can indicate the neighboring block to the lower left of the current block's lower-left sample position. Neighboring block G can indicate the neighboring block above the current block's upper-left sample position. Neighboring block F can indicate the neighboring block to the left of the current block's upper-left sample position.
[0120] For example, if the size of the current block is W×H, and the x and y components of the top-left sample position of the current block are 0, then neighboring block A can be a block that includes the sample at coordinates (-1, -1), neighboring block B can be a block that includes the sample at coordinates (W-1, -1), neighboring block C can be a block that includes the sample at coordinates (W, -1), neighboring block D can be a block that includes the sample at coordinates (-1, H-1), neighboring block E can be a block that includes the sample at coordinates (-1, H), neighboring block F can be a block that includes the sample at coordinates (-1, 0), and neighboring block G can be a block that includes the sample at coordinates (0, -1).
[0121] According to the HEVC standard, three MPM candidates can be derived based on the intra prediction modes of neighboring block F and neighboring block G. For example, the intra prediction modes of neighboring block F and neighboring block G can be derived. Furthermore, in the following cases, the intra prediction modes of neighboring block F or neighboring block G can be derived as DC intra prediction modes.
[0122] 1) If neighboring block F or neighboring block G is unavailable
[0123] 2) If neighboring block F or neighboring block G is not encoded in intra-predictive mode (i.e., if neighboring block F or neighboring block G is not an intra-coded block)
[0124] 3) If neighboring block F or neighboring block G is outside the current coding tree unit (CTU)
[0125] If the intra-prediction mode of neighboring block F or the intra-prediction mode of neighboring block G is determined as described above, then three MPM candidates can be derived as shown in Table 1.
[0126] [Table 1]
[0127]
[0128] Table 1 illustrates a schematic algorithm (i.e., pseudocode) for configuring the MPM list. Referring to Table 1, it can be determined whether the intra-prediction mode of neighboring block F is equal to the intra-prediction mode of neighboring block G.
[0129] If the intra-prediction mode of neighboring block F is equal to the intra-prediction mode of neighboring block G, and the mode number of the intra-prediction mode of neighboring block F is less than 2, then the MPM list for the current block can be exported as MPM list 1. That is, if the intra-prediction mode of neighboring block F is equal to the intra-prediction mode of neighboring block G, and the intra-prediction mode of neighboring block F is intra-prediction mode 0 or intra-prediction mode 1, then the MPM list for the current block can be exported as MPM list 1. In this case, MPM list 1 can indicate an MPM list configured with MPM candidates {F, F-1, F+1}. F can indicate the intra-prediction mode of neighboring block F. F-1 can indicate the intra-prediction mode whose value is the mode number obtained by subtracting 1 from the mode number of the intra-prediction mode of neighboring block F. F+1 can indicate the intra-prediction mode whose value is the mode number obtained by adding 1 to the mode number of the intra-prediction mode of neighboring block F. For example, if the intra prediction mode of the neighboring block F is intra prediction mode N, then MPM list 1 can be configured with an MPM list that includes intra prediction mode N, intra prediction mode N-1, and intra prediction mode N+1 as MPM candidates.
[0130] Furthermore, if the intra-prediction mode of neighboring block F is equal to the intra-prediction mode of neighboring block G and the mode number of the intra-prediction mode of neighboring block F is not less than 2, then the MPM list for the current block can be exported as MPM list 2 (MPMlist2).
[0131] Furthermore, if the intra-prediction mode of neighboring block F is not equal to the intra-prediction mode of neighboring block G, and the intra-prediction modes of neighboring block F and neighboring block G are not planar intra-prediction modes, then the MPM list for the current block can be exported as MPM list 3.
[0132] Furthermore, if the intra-prediction mode of neighboring block F is not equal to the intra-prediction mode of neighboring block G, and the sum of the mode number of the intra-prediction mode of neighboring block F and the mode number of the intra-prediction mode of neighboring block G is less than 2, then the MPM list for the current block can be exported as MPM list 4.
[0133] Furthermore, if the intra-prediction mode of neighboring block F is not equal to the intra-prediction mode of neighboring block G, and at least one of the intra-prediction modes of neighboring block F and neighboring block G is a planar intra-prediction mode, and the sum of the mode number of the intra-prediction mode of neighboring block F and the mode number of the intra-prediction mode of neighboring block G is not less than 2, then the MPM list for the current block can be exported as MPM list 5.
[0134] Furthermore, as the number of intra-prediction modes increases, the number of MPM candidates needs to increase. Therefore, the number of MPM candidates can vary depending on the number of intra-prediction modes. Generally, the number of MPM candidates can increase as the number of intra-prediction modes increases. However, the number of MPM candidates does not always increase with the number of intra-prediction modes. For example, if there are 35 or 67 intra-prediction modes, then depending on the design, there can be various numbers of MPM candidates, such as 3, 4, 5, and 6.
[0135] For example, a 6-MPM list configuration can be implemented. That is, an MPM list including 6 MPM candidates can be constructed. For example, in a 6-MPM list configuration, processing such as searching for the locations of various neighboring blocks and consistent pruning checks to exclude those with the same intra-frame prediction mode can be performed. For example, the order in which the 6 MPM candidates are constructed can be as follows:
[0136] Neighboring block D, neighboring block B, planar intra-prediction mode, DC intra-prediction mode, neighboring block E, neighboring block C, and neighboring block A.
[0137] That is, neighboring blocks can be derived as MPM candidates in the following order: intra-prediction mode of neighboring block D, intra-prediction mode of neighboring block B, planar intra-prediction mode, DC intra-prediction mode, intra-prediction mode of neighboring block E, intra-prediction mode of neighboring block C, and intra-prediction mode of neighboring block A. If the prediction mode is the same as the already derived intra-prediction mode, it does not need to be derived as an MPM candidate.
[0138] Furthermore, if the MPM list does not include the MPM candidate with the largest number of candidates—that is, when the number of derived MPM candidates is less than the maximum number of candidates—the directional intra-prediction modes of neighboring derived MPM candidates and the predefined default intra-prediction mode can be considered as MPM candidates, and pruning checks can be performed. In this case, the directional intra-prediction modes of neighboring MPM candidates can indicate intra-prediction modes whose mode numbers are adjacent to the mode numbers of the MPM candidates. Neighbor block search and consistent pruning checks have advantages in reducing bit transmission rate, but increase the number of hardware operation cycles for configuring the MPM list for each block. In the worst case, a 3840×2160 4K image can be divided into 4×4 blocks for intra-prediction. In this case, the increase in hardware operation cycles for each of the 4×4 blocks can be considered significantly in terms of throughput. Additionally, if the intra-prediction mode of a neighboring block is known through inter-frame prediction coding, that neighboring block's intra-prediction mode can be used for MPM list configuration.
[0139] As described above, when configuring the MPM list, the encoding device can determine the optimal intra-prediction mode by simultaneously optimizing bit rate and distortion, and can encode the determined optimal intra-prediction mode into a bitstream. The decoding device can parse (decode) the intra-prediction modes included in the bitstream and can perform intra-prediction based on the parsed intra-prediction modes. However, in order to minimize signaling overhead as the number of intra-prediction modes increases, efficient intra-prediction mode encoding must be performed. Both the encoding and decoding devices use the neighboring intra-prediction modes of the coded blocks to configure the MPM list. In this case, when the optimal intra-prediction mode is one of the candidates in the MPM list, overhead can be minimized by signaling the MPM index. Depending on the algorithm, the length of the MPM list and the method of configuring the MPM list may differ.
[0140] In this scenario, if 67 intra-prediction modes are used for intra-prediction, the MPM list, including the existing three MPM candidates, may be insufficient to represent the diversity of various intra-prediction modes. Furthermore, a 6-MPM list configuration scheme, including neighbor block search and pruning checks, may impact throughput due to its excessive complexity. Therefore, the implementation in this document proposes an efficient MPM list configuration method that strikes a proper balance between complexity and coding efficiency.
[0141] Figure 12 and Figure 13 This is a flowchart that schematically illustrates a method for configuring an MPM list for the current block.
[0142] Reference Figure 12 and Figure 13This allows us to construct an MPM list for the current block, containing k MPM candidates. In this case, k can indicate the length of the MPM list, i.e., the number of MPM candidates included in the list. According to... Figure 12 and Figure 13 The disclosed implementation allows for the construction of five efficient MPM lists (MPM list 1 to MPM list 5) based on five conditions. That is, based on these five conditions, one of these five MPM lists can be derived as an MPM list for the current block. The MPM list can be as follows: Figure 12 The independent list shown in the example, and can be as follows: Figure 13 The example shows a list with partially shared parts. If using, for example... Figure 13 By sharing a partial list, repetitive processes can be avoided. Condition 5 can be modeled so that the sum of the probabilities of all conditions becomes 1.
[0143] Figure 14 This is a flowchart illustrating an implementation of a method for configuring an MPM list for the current block.
[0144] Figure 14 This example illustrates a method for efficiently configuring a list of k MPM candidates for the current block based on neighboring blocks adjacent to the current block. For instance, k can be 6, and five conditions can be used to configure the MPM list for the current block from five efficient lists. Figure 14 In the middle, L can indicate Figure 11 The intra-prediction mode of neighboring block B is illustrated in the example, and A can indicate... Figure 11 The intra-prediction mode of neighboring block D is illustrated in the example. Alternatively, conversely, L can indicate... Figure 11 The intra-prediction mode of neighboring block D is illustrated in the example, and A can indicate... Figure 11 The intra-prediction mode of neighboring block B is illustrated in the example. Figure 14 In English, the symbol "!" is the negative logical operator, and it can refer to the "NOT" operator, which converts a non-true value to a true value and a true value to a non-true value. For example, !7 can indicate the value 0, and !0 can indicate the value 1.
[0145] Reference Figure 14 The encoding / decoding device can check condition 1 (S1400) used to determine whether L and A are equal. That is, the encoding / decoding device can determine whether L and A are the same intra-frame prediction mode. Condition 1 can be a condition used to determine whether "L == A".
[0146] If L and A are the same intra-prediction mode (i.e., when condition 1 is met), the encoding / decoding device can check condition 2 (S1405) used to determine whether L (or A) is a directional intra-prediction mode. That is, the encoding / decoding device can determine whether L and A are the same and whether the mode number of L (or A) is greater than the mode number of the DC mode. Condition 2 can be a condition used to determine whether "L>DC_idx".
[0147] When condition 2 is met, the encoding / decoding device can export MPM list 1 as an MPM list for the current block (S1410). When condition 2 is not met, the encoding / decoding device can export MPM list 2 as an MPM list for the current block (S1415).
[0148] In this case, MPM list 1 can be constructed in the same way as Table 2, and MPM list 2 can be constructed in the same way as Table 3.
[0149] [Table 2]
[0150] mpm[2] = Planar_idx mpm[3]=DC_idx mpm[3]=L-1 mpm[4]=L+1 mpm[5]=L-2
[0151] [Table 3]
[0152] mpm[1] = ! L mpm[2] = Vertical_idx mpm[3] = Horizontal_idx mpm[4] = Vertical_idx - 4 mpm[5] = Vertical_idx + 4
[0153] Referring to Tables 2 and 3, as in Table 2, MPM list 1 may include the first MPM candidate (mpm[0]) to the sixth MPM candidate (mpm[5]). As in Table 3, MPM list 2 may include the first MPM candidate (mpm[0]) to the sixth MPM candidate (mpm[5]). In this case, the first MPM candidate to the sixth MPM candidate may indicate the intra-prediction mode (i.e., mode number) indicated by the corresponding MPM index values 0 to 5. For example, the first MPM candidate indicates the intra-prediction mode assigned to mpm[0] and may be indicated by the value 0 of the MPM index.
[0154] If L and A are not the same intra-prediction mode (i.e., when condition 1 is not met), the encoding / decoding device can derive a partially shared MPM list 1 (S1420).
[0155] In this case, a partially shared MPM list 1 can be constructed as shown in Table 4.
[0156] [Table 4]
[0157]
[0158] Referring to Table 4, the partially shared MPM list 1 may include a first MPM candidate (mpm[0]) indicating L and a second MPM candidate (mpm[1]) indicating A. That is, if L and A are not equal, the encoding / decoding device may add L and A to the MPM list first. Therefore, as in Table 4, MPM lists 3, 4 and 5, which will be described later, may be constructed to partially include the first MPM candidate (mpm[0]) and the second MPM candidate (mpm[1]). In this case, when deriving the first MPM candidate (mpm[0]) and the second MPM candidate (mpm[1]), the MPM index order can be determined by comparing the size of the mode numbers of L and A. For example, referring to Table 4, when L has a mode number greater than A, the max_idx value indicating L can be set to 0, and the min_idx value indicating A can be set to 1. When L has a mode number less than A, the max_idx value and the min_idx value can be set in reverse.
[0159] Next, the encoding / decoding device can check condition 3 (S1425) used to determine whether L and A are both directional intra-prediction modes. That is, the encoding / decoding device can determine whether L and A are equal and whether the mode number of each of L and A is greater than the DC mode number. Condition 3 can be a condition used to determine whether "L>DC_idx and A>DC_idx".
[0160] If each of L and A has a mode number greater than that of DC mode (i.e., when condition 3 is satisfied), then the encoding / decoding device can derive a partially shared MPM list 2 (S1440).
[0161] In this case, a partially shared MPM list 2 can be constructed as shown in Table 5.
[0162] [Table 5]
[0163] mpm[3]=DC_idx diff=mpm[max_idx]-mpm[min_idx]
[0164] Referring to Table 5, the partially shared MPM list 2 may include a third MPM candidate (mpm[2]) indicating a planar mode and a fourth MPM candidate (mpm[3]) indicating a DC mode. That is, if condition 3 is satisfied, this means that both L and A are directional intra-prediction modes. Therefore, the encoding / decoding device may add the planar mode and the DC mode (i.e., non-directional intra-prediction modes) as the third MPM candidate (mpm[2]) and the fourth MPM candidate (mpm[3]) after the first MPM candidate (mpm[0] = L) and the second MPM candidate (mpm[1] = A) included in the partially shared MPM list 1 described in Table 4. Therefore, the MPM lists 4 and 5 described thereafter may be constructed to partially include the third MPM candidate (mpm[2]) and the fourth MPM candidate (mpm[3]) in Table 5 together with the first MPM candidate (mpm[0]) and the second MPM candidate (mpm[1]) in Table 4.
[0165] Next, the encoding / decoding device can check whether the difference between the mode number of L and the mode number of A is not 64 and not 1, according to condition 4 (S1445). Condition 4 can be a condition used to determine whether "diff != 64 and diff != 1".
[0166] For example, the difference (diff) between the pattern number of L and the pattern number of A can be calculated as illustrated in Table 5. In this case, the diff can be obtained by subtracting the smaller value from the larger value of the pattern number of L and the pattern number of A.
[0167] In this case, when condition 4 is met, the encoding / decoding device can export MPM list 5 as an MPM list for the current block (S1455). When condition 4 is not met, the encoding / decoding device can export MPM list 4 as an MPM list for the current block (S1450).
[0168] In this case, MPM list 4 can be constructed as in Table 6, and MPM list 5 can be constructed as in Table 7.
[0169] [Table 6]
[0170] mpm[5] = mpm[max_idx] + 2
[0171] [Table 7]
[0172] mpm[5] = mpm[max_idx] + 1
[0173] Each of the MPM lists 4 in Table 6 and MPM lists 5 in Table 7 can be constructed to include the fifth MPM candidate (mpm[4]) and the sixth MPM candidate (mpm[5]) together with the first to fourth MPM candidates (mpm[0] to mpm[3]) described in Tables 4 and 5.
[0174] Furthermore, if at least one of L and A is a non-directional intra-prediction mode in step S1425 (i.e., when condition 3 is not met), the encoding / decoding device can check condition 5 (S1430) used to determine whether only one of L and A is a non-directional intra-prediction mode. That is, the encoding / decoding device can determine whether at least one of L and A has a DC mode number or smaller and whether the sum of the mode number of L and the mode number of A is 2 or greater. Condition 5 can be a condition used to determine whether "L+A>=2".
[0175] When the sum of the mode number of L and the mode number of A is 2 or greater (i.e., when condition 5 is met), the encoding / decoding device can export MPM list 3 as an MPM list for the current block (S1435).
[0176] In this case, MPM list 3 can be constructed as shown in Table 8.
[0177] [Table 8]
[0178] mpm[3] = mpm[max_idx] - 1 mpm[4] = mpm[max_idx] + 1 mpm[5] = mpm[max_idx] - 2
[0179] Referring to Table 8, MPM list 3 can be constructed to include the third to sixth MPM candidates (mpm[2] to mpm[5]) together with the first MPM candidate (mpm[0]) and the second MPM candidate (mpm[1]) described in Table 4. In this case, satisfying condition 5 can mean that either L or A is a directional prediction mode and the other is a non-directional prediction mode. Therefore, MPM list 3 can include a non-directional prediction mode as the third MPM candidate (mpm[2]) after the first and second MPM candidates. For example, if one of L and A with a non-directional mode is a planar mode, then the third MPM candidate (mpm[2]) can be derived as a DC mode. For example, if one of L and A with a non-directional mode is a DC mode, then the third MPM candidate (mpm[2]) can be derived as a planar mode.
[0180] When the sum of the mode number of L and the mode number of A is not 2 or greater (i.e., when condition 5 is not met), the encoding / decoding device can derive MPM list 2 as the MPM list of the current block (S1415). In this case, both L and A can be non-directional prediction modes.
[0181] In this case, MPM list 2 can be the same as Table 3. Referring to Table 3, since both L and A are non-directional prediction modes, the planar mode and DC mode can be derived as the first MPM candidate (mpm[0]) and the second MPM candidate (mpm[1]) respectively in MPM list 2. The remaining third to sixth MPM candidates (mpm[2] to mpm[5]) can be derived as illustrated in Table 3.
[0182] In Tables 2 through 8, values can be added or subtracted arithmetically in (Directional Intra-Prediction Mode + 1), (Directional Intra-Prediction Mode - 1), (Directional Intra-Prediction Mode + 2), (Directional Intra-Prediction Mode - 2), etc. However, in some cases, simple arithmetic calculations are not possible. For example, in non-directional intra-prediction modes, the consistency of neighboring intra-prediction modes cannot be maintained by subtracting or adding directional intra-prediction modes, or it may exceed the maximum available intra-prediction mode index. For example, the value obtained by subtracting 1 from a directional intra-prediction mode can be derived as intra-mode 1 (DC mode) indicating the DC index. By adding 1 to directional intra-prediction mode 66, 67 is obtained, thus exceeding the maximum available intra-prediction mode index 66. Therefore, modulo operations (indicated by %) can be used to limit the addition or subtraction of modes as follows. That is, it can prevent the derivation of values indicating inconsistent non-directional intra-prediction modes or values exceeding the maximum available intra-prediction mode index. For example, modulo operations can be used to add or subtract modes as shown in Table 9.
[0183] [Table 9]
[0184]
[0185] The method for configuring the MPM list described in the above-mentioned embodiments can be executed in the encoding / decoding device. In this case, when configuring the MPM list, the encoding device can derive the optimal intra-prediction mode to be applied to the current block and determine whether the derived optimal intra-prediction mode belongs to an MPM list that includes MPM candidates constructed using methods such as those described in the above-mentioned embodiments. If the intra-prediction mode of the current block belongs to an MPM list that includes MPM candidates, the encoding device can encode the MPM flag and the MPM index. In this case, the MPM flag can indicate whether the intra-prediction mode of the current block belongs to the MPM list (i.e., an MPM candidate). The MPM index can indicate which MPM mode among the MPM candidates included in the MPM list is applied as the intra-prediction mode of the current block. Conversely, if the intra-prediction mode of the current block does not belong to an MPM list that includes MPM candidates, the encoding device encodes the intra-prediction mode of the current block.
[0186] The decoding device can configure the MPM list by applying the same method as the encoding device in the embodiments described above. Furthermore, the decoding device can receive an MPM flag from the encoding device and use the MPM flag to identify whether the intra-prediction mode for the current block is included in the MPM list (i.e., MPM candidates). If the intra-prediction mode for the current block is included in the MPM list (i.e., MPM candidates), the decoding device can derive the intra-prediction mode for the current block using the MPM index received from the encoding device. Conversely, if the intra-prediction mode for the current block is not included in the MPM list (i.e., MPM candidates), the decoding device can derive the intra-prediction mode for the current block using a prediction mode index (or other prediction mode indexes; other mode information) indicating a specific prediction mode among the remaining prediction modes besides the MPM candidates.
[0187] The following describes a method for configuring an expanded MPM list with similar complexity by comparing it with an MPM list containing three MPM candidates. An expanded MPM list refers to an MPM list containing three or more MPM candidates, such as three, four, five, or six. In the proposed method described below, an implementation is described where two neighboring intra-prediction modes (left neighboring intra-prediction mode and top neighboring intra-prediction mode) are used to generate an MPM list containing six MPM candidates. In this case, the left neighboring intra-prediction mode (LEFT) can indicate... Figure 11 The intra-prediction mode of the neighboring block D in the frame, and the upper neighbor intra-prediction mode (ABOVE) can indicate Figure 11 Intra-prediction mode of neighboring block B in the frame.
[0188] The reason for using three MPM candidates when configuring the expanded MPM list is its advantage in terms of simplicity and throughput. However, existing methods using six MPM candidates increase complexity due to the processing of searching for the positions of neighboring blocks, continuous pruning, steps for generating the MPM list, line buffer requirements, and resolution dependencies. Therefore, a method that achieves advantages in complexity and throughput even when using six MPM candidates is proposed, as described in the method using three MPM candidates.
[0189] In one implementation, the MPM list can be constructed based on an algorithm (i.e., pseudocode) such as Table 10.
[0190] [Table 10]
[0191] Set MPM to MPM_ordering_0 If (LEFT == ABOVE) If (LEFT >= DC_idx), then set MPM to MPM_ordering_1. Otherwise, if (LEFT > DC_idx and ABOVE > DC_idx), then set MPM to MPM_ordering_2. Otherwise, if (LEFT+ABOVE>DC_idx), then set MPM to MPM_ordering_3.
[0192] Referring to Table 10, the MPM list for the current block can be generated based on LEFT and ABOVE (i.e., neighboring intra-prediction modes). In this case, LEFT can indicate... Figure 11 The intra-prediction mode of neighboring block D in the frame, and ABOVE can indicate Figure 11 The intra-prediction mode of neighboring block B in the current block. Furthermore, neighboring block D can indicate the bottom left neighboring block among the left neighboring blocks to the left of the current block. Neighboring block B can indicate the rightmost upper neighboring block among the neighboring blocks above the current block.
[0193] Specifically, the intra-prediction modes for LEFT and ABOVE can be derived. Furthermore, the MPM list (i.e., MPM candidates) for the current block can be set to MPM_ordering_0 based on the intra-prediction modes for LEFT and ABOVE. In this case, if LEFT and ABOVE are equal and the mode number of LEFT is greater than or equal to the DC mode, then the MPM list (i.e., MPM candidates) for the current block can be set to MPM_ordering_1. Alternatively, if LEFT and ABOVE are not equal, and the mode number of LEFT is greater than the mode number of the DC mode and the mode number of ABOVE is greater than the mode number of the DC mode, then the MPM list (i.e., MPM candidates) for the current block can be set to MPM_ordering_2. Alternatively, if LEFT and ABOVE are not equal, at least one of the mode number of LEFT and the mode number of ABOVE is not greater than the mode number of DC mode, and the sum of the mode number of LEFT and the mode number of ABOVE is greater than the mode number of DC mode, then the MPM list (i.e., MPM candidates) of the current block can be set to MPM_ordering_3.
[0194] In this case, MPM_ordering_0, MPM_ordering_1, MPM_ordering_2, or MPM_ordering_3 may have been constructed to include, according to, such as Figures 12 to 14 The MPM candidates are in a predetermined order as described in the text.
[0195] Furthermore, if one of the remaining intra-prediction modes besides the derived MPM candidates is the intra-prediction mode that should be applied to the current block as described above, then MPM encoding of the current block can be performed based on the remaining mode information. This remaining mode information can be encoded / decoded by applying truncated binary (TB) encoding.
[0196] In another implementation, the MPM list can be constructed based on an algorithm (i.e., spec) such as Table 11.
[0197] [Table 11]
[0198]
[0199]
[0200]
[0201] Referring to Table 11, candidate intra-prediction modes can be derived based on neighboring blocks of the current block. An MPM list for the current block can be constructed based on these candidate intra-prediction modes. Candidate intra-prediction modes can include candidate intra-prediction mode A and candidate intra-prediction mode B.
[0202] For example, candidate intra-prediction mode A can be set to planar intra-prediction mode when at least one of the conditions to be described subsequently is true (i.e., when at least one of the conditions to be described subsequently is satisfied).
[0203] - Neighboring block A is unavailable
[0204] - Intra-prediction was not applied to neighboring block A.
[0205] In this case, neighboring block A can be the left neighboring block of the current block. The left neighboring block can be the bottommost left neighboring block among the left neighboring blocks of the current block. For example, if the size of the current block is cbWidth × cbHeight and the x and y components at the top-left sample position of the current block are xCb and yCb, then neighboring block A can be the block that includes the sample at coordinates (xCb-1, yCb + cbHeight-1). Furthermore, neighboring block A can indicate... Figure 11 The neighboring block D.
[0206] When not all conditions are true (i.e., when not all conditions are met), candidate intra-prediction mode A can be set to the intra-prediction mode of neighboring block A.
[0207] Furthermore, for example, candidate intra-prediction mode B can be set to planar intra-prediction mode when at least one of the conditions to be described subsequently is true (i.e., when at least one of the conditions to be described subsequently is satisfied).
[0208] - Neighboring block B is unavailable
[0209] - Intra-prediction was not applied to neighboring block B.
[0210] -yCb-1 is less than ((yCb>>CtbLog2SizeY)< <CtbLog2SizeY)
[0211] In this case, the neighboring block B may be an upper neighboring block of the current block. The upper neighboring block may be the rightmost upper neighboring block among the upper neighboring blocks adjacent to the current block. For example, if the size of the current block is cbWidth×cbHeight and the x component and y component at the upper-left sample position of the current block are xCb and yCb, then the neighboring block B may be the block including the sample at the coordinate (xCb+cbWidth-1, yCb-1). In addition, CtbLog2SizeY may indicate the size of the current CTU, and ((yCb>>CtbLog2SizeY)<<CtbLog2SizeY) may indicate the coordinate at the upper boundary of the current CTU. That is, the case where yCb-1 is less than ((yCb>>CtbLog2SizeY)<<CtbLog2SizeY) may indicate the case where the neighboring block B is beyond the range of the current CTU. That is, the above-mentioned condition may indicate the case where the neighboring block B is beyond the range of the current CTU.
[0212] When not all conditions are true (that is, when not all conditions are satisfied), the candidate intra prediction mode B can be set to the intra prediction mode of the neighboring block B.
[0213] If the candidate intra prediction mode has been derived, the MPM list of the current block can be constructed in the same way as the first MPM list. The first MPM list may be configured with a first MPM candidate indicating the candidate intra prediction mode A, a second MPM candidate indicating an intra prediction mode of a value obtained by performing an operation on the candidate intra prediction mode A using a negative logic operator, a third MPM candidate indicating the intra prediction mode No. 50, a fourth MPM candidate indicating the intra prediction mode No. 18, a fifth MPM candidate indicating the intra prediction mode No. 46, and a sixth MPM candidate indicating the intra prediction mode No. 54.
[0214] Thereafter, it can be determined whether the candidate intra prediction mode B and the candidate intra prediction mode A are equal.
[0215] In this case, if candidate intra-prediction mode B and candidate intra-prediction mode A are equal, it can be determined whether candidate intra-prediction mode A is greater than 1. When candidate intra-prediction mode A is greater than 1, the MPM list of the current block can be configured in the same way as the second MPM list. The second MPM list can be configured with a first MPM candidate indicating candidate intra-prediction mode A, a second MPM candidate indicating planar mode intra-prediction mode, a third MPM candidate indicating DC intra-prediction mode, a fourth MPM candidate indicating intra-prediction mode derived as 2 + ((candIntraPredModeA + 62) % 65), a fifth MPM candidate indicating intra-prediction mode derived as 2 + ((candIntraPredModeA - 1) % 65), and a sixth MPM candidate indicating intra-prediction mode derived as 2 + ((candIntraPredModeA + 61) % 65).
[0216] Otherwise, if candidate intra-prediction mode B is not equal to candidate intra-prediction mode A, the first and second MPM candidates for the current block can be derived first. The first MPM candidate can be derived as candidate intra-prediction mode A, and the second MPM candidate can be derived as candidate intra-prediction mode B. Furthermore, `biggerIdx` can be set. When the first MPM candidate is greater than the second MPM candidate, `biggerIdx` can be derived as 0. When the first MPM candidate is not greater than the second MPM candidate, `biggerIdx` can be derived as 1.
[0217] Next, it can be determined whether candidate intra-prediction mode A and candidate intra-prediction mode B are greater than 1 (i.e., it can be determined whether the mode number of candidate intra-prediction mode A and the mode number of candidate intra-prediction mode B are greater than 1). In this case, when candidate intra-prediction mode A and candidate intra-prediction mode B are greater than 1, the third MPM candidate and the fourth MPM candidate of the current block can be derived. The third MPM candidate can be derived as a planar mode intra-prediction mode, and the fourth MPM candidate can be derived as a DC intra-prediction mode.
[0218] Next, it can be determined whether the difference (diff) between the MPM candidate indicated by the MPM index with the value of biggerIdx and the MPM candidate indicated by the MPM index with the value obtained by performing an operation on biggerIdx using the negative logical operator (i.e., !biggerIdx) is neither 64 nor 1.
[0219] When the difference is neither 64 nor 1, the fifth and sixth MPM candidates for the current block can be derived. The fifth MPM candidate can be derived as an intra-prediction mode of 2 + ((candModeList[biggerIdx] + 62) % 65). The sixth MPM candidate can be derived as an intra-prediction mode of 2 + ((candModeList[biggerIdx] – 1) % 65).
[0220] Otherwise, if the difference is 64 or 1, the fifth and sixth MPM candidates for the current block can be derived. The fifth MPM candidate can be derived as an intra-prediction mode of 2 + ((candModeList[biggerIdx] + 61) % 65). The sixth MPM candidate can be derived as an intra-prediction mode of 2 + ((candModeList[biggerIdx]) % 65).
[0221] Furthermore, when the sum of candidate intra-prediction mode A and candidate intra-prediction mode B is greater than or equal to 2, the third, fourth, fifth, and sixth MPM candidates for the current block can be derived. The third MPM candidate can be derived as an intra-prediction mode whose value is obtained by performing an operation on the MPM candidate indicated by the MPM index (i.e., !biggerIdx) using the negative logical operator. The fourth MPM candidate can be derived as an intra-prediction mode of 2 + ((candModeList[biggerIdx] + 62) % 65). The fifth MPM candidate can be derived as an intra-prediction mode of 2 + ((candModeList[biggerIdx] - 1) % 65). The sixth MPM candidate can be derived as an intra-prediction mode of 2 + ((candModeList[biggerIdx] + 61) % 65).
[0222] As described above, an intra-prediction mode for the current block can be derived based on an MPM list including the derived MPM candidates. Prediction samples can be generated by performing predictions on the current block based on the derived intra-prediction mode.
[0223] In this scenario, when exporting the intra-prediction mode for the current block, if the MPM flag (e.g., intra_luma_mpm_flag in Table 11) is 1, as described above, the MPM candidate indicated by the MPM index (e.g., intra_luma_mpm_idx in Table 11) among the exported MPM candidates can be exported as the intra-prediction mode for the current block. Alternatively, if the MPM flag (e.g., intra_luma_mpm_flag in Table 11) is 0, as described above, the remaining modes (e.g., intra_luma_mpm_remainder in Table 11) indicating one of the remaining intra-prediction modes besides the exported MPM candidates can be exported as the intra-prediction mode for the current block.
[0224] As described above, the intra-prediction mode information for the current block can be encoded and signaled as the value of a syntax element. In this case, the intra-prediction mode information is the information required for intra-prediction of the current block and may include the MPM flag, MPM index, and other modes mentioned above. When encoding the intra-prediction mode information, various binarization processes can be applied based on each syntax element.
[0225] In this context, binarization can refer to a set of bin strings representing all possible values of a syntax element. Furthermore, binarization processing can refer to the process of uniquely mapping all possible values of a syntax element to a set of bin strings. A bin can refer to a single-bit binary value. For example, "0" or "1" can be referred to as a single bin. A bin string can refer to a sequence of binary values configured with bins; for example, a bin string can be a series of consecutive binary values such as "01".
[0226] In one implementation, the intra-frame prediction mode information and the corresponding binarized syntax elements can be the same as those in Table 12.
[0227] [Table 12]
[0228]
[0229]
[0230] Referring to Table 12, the "intra_luma_mpm_flag" syntax element representing the MPM flag can be encoded / decoded by applying fixed-length (FL) binarization to the "intra_luma_mpm_flag" syntax element. The "intra_luma_mpm_idx" syntax element representing the MPM index can be encoded / decoded by applying truncated Rice (TF) binarization to the "intra_luma_mpm_idx" syntax element. The "intra_luma_mpm_remainder" syntax element representing the remaining modes can be encoded / decoded by applying truncated binary (TB) binarization to the "ntra_luma_mpm_remainder" syntax element.
[0231] According to the implementation of this document, as described above, the existing 35 intra-prediction modes can be extended, thus allowing the use of 67 intra-prediction modes. In this case, when encoding the intra-prediction mode information, the syntax elements representing the remaining modes may require 6 bits. However, the number of bits representing the syntax elements of the remaining modes can be reduced depending on the encoding method (i.e., the binarization method). That is, as shown in Table 12, when encoding the syntax elements representing the remaining modes, performing truncated binary (TB) binarization can reduce the number of bits and improve encoding efficiency.
[0232] In one implementation, truncated binary (TB) binarization, such as that shown in Table 13, can be performed on the syntax elements representing the remaining patterns.
[0233] [Table 13]
[0234]
[0235] Referring to Table 13, when the input represents a syntax element (intra_luma_mpm_remainder) for other modes, the TB binarized value of the syntax element (intra_luma_mpm_remainder) can be output based on truncated binary (TB) encoding. First, the range of possible values for the syntax element (intra_luma_mpm_remainder) can be determined. The range of the syntax element (intra_luma_mpm_remainder) can be between 0 and cMax. cMax indicates the maximum value of the syntax element (intra_luma_mpm_remainder) and can have a value greater than or equal to 1. The TB binarized value (TB bin string) of the syntax element (intra_luma_mpm_remainder) can be derived based on the algorithm in Table 13. For example, in Table 14, in the case of representing a syntax element (intra_luma_mpm_remainder) for other modes, cMax is 60. Therefore, 6 bits can be used to represent the syntax element (intra_luma_mpm_remainder). However, if the value of the syntax element (intra_luma_mpm_remainder) representing the remaining patterns is binarized based on TB encoding such as the algorithm in Table 13, binarization encoding can be performed using fewer than 6 bits based on the value of the syntax element (intra_luma_mpm_remainder). For example, the syntax element (intra_luma_mpm_remainder) representing the remaining patterns can be used to variably generate bits from 1 to 5 based on the value of the syntax element, and can be encoded using TB encoding.
[0236] Figure 15 This is a flowchart illustrating, schematically, an encoding method that can be executed by an encoding device according to an implementation of this document.
[0237] It can be by Figure 2 The publicly disclosed encoding device 200 performs Figure 15 The method disclosed in the document. Specifically, it can be... Figure 2 The predictor 220 and intra-frame predictor 222 disclosed in the document are used to perform the operation. Figure 15 Steps S1500 to S1520 in the process. This can be achieved by... Figure 2 The publicly disclosed entropy encoder 240 executes Figure 15 Step S1530 in the process. Furthermore, Figure 15 The methods disclosed herein may include the embodiments disclosed in this specification. Therefore, in Figure 15 In this document, detailed descriptions of content that overlaps with the above-mentioned implementation methods are omitted, or these content is briefly described.
[0238] Reference Figure 15 The encoding device can configure the MPM list by deriving the most probable mode (MPM) candidate for the current block based on the neighboring blocks adjacent to the current block (S1500).
[0239] In this case, neighboring blocks can include Figure 11 The neighboring blocks A, B, C, D, E, F and / or G are illustrated in the example.
[0240] In one implementation, two neighboring blocks can be used when configuring the MPM list. For example, neighboring block D and neighboring block B can be used. Neighboring block D can indicate the bottom left neighboring block among the left neighboring blocks to the left of the current block. Neighboring block B can indicate the rightmost top neighboring block among the top neighboring blocks above the current block.
[0241] The encoding device can derive a first MPM candidate based on a first neighboring block (neighboring block D) and can derive a second MPM candidate based on a second neighboring block (neighboring block B).
[0242] For example, if the first neighboring block is available and intra-prediction has been applied to the first neighboring block, the first MPM candidate can be derived as the intra-prediction mode of the first neighboring block. If the first neighboring block is unavailable or intra-prediction has not been applied to the first neighboring block, the first MPM candidate can be derived as a planar intra-prediction mode.
[0243] Furthermore, for example, if the second neighboring block is available, intra-prediction has been applied to the second neighboring block, and the second neighboring block is included in the current CTU, the second MPM candidate can be derived as the intra-prediction mode of the second neighboring block. If the second neighboring block is unavailable, or intra-prediction has not been applied to the second neighboring block, or the second neighboring block is not included in the current CTU, the second MPM candidate can be derived as the planar intra-prediction mode.
[0244] The encoding device can configure the MPM list based on the first and second MPM candidates derived as described above. In this case, depending on the number of candidates in the MPM list, the remaining MPM candidates, including the first and second MPM candidates, can be derived. As mentioned above, the number of candidates included in the MPM list can vary depending on the algorithm, and can be, for example, 3, 4, 5, or 6. Furthermore, as described above, MPM candidates can be further derived based on the first MPM candidates derived from the first neighboring block and the second MPM candidates derived from the second neighboring block, according to predetermined conditions.
[0245] For example, the encoding device can determine whether a first MPM candidate and a second MPM candidate are the same, and can determine whether the mode number of either the first or second MPM candidate is greater than the mode number of the DC mode. In this case, when the first MPM candidate and the second MPM candidate are not the same, the encoding device can determine whether each of the first and second MPM candidates has a mode number greater than the DC mode, or whether either of the first or second MPM candidates has a mode number greater than the DC mode. Furthermore, when each of the first and second MPM candidates has a mode number greater than the DC mode, the encoding device can determine this based on the difference between the mode numbers of the first and second MPM candidates (e.g., whether the difference between the mode numbers of the two candidates is 1 or 2, or greater than or equal to 62). As described above, the encoding device can configure the MPM list differently based on whether the first and second MPM candidates meet this condition. For example, the MPM list can include 6 MPM candidates. In this case, the encoding device can derive 6 MPM candidates, including the first and second MPM candidates, based on whether this condition is met. In this case, the 6 MPM candidates can be mapped to the corresponding Each index value can be used to indicate a candidate MPM within the MPM list. Therefore, the encoding device can indicate any MPM candidate within the MPM list by signaling the index information.
[0246] The above-mentioned process of generating an MPM list by deriving MPM candidates based on neighboring blocks of the current block is merely an example. Various methods can be used to construct the MPM list, taking coding efficiency into consideration. Furthermore, various implementations for configuring the MPM list described in this document can be applied to the process of generating the MPM list. (See also...) Figures 12 to 14 Tables 1 to 13 provide a detailed description of this, but the description is omitted in this embodiment.
[0247] The encoding device can determine the intra-prediction mode for the current block (S1510).
[0248] In one implementation, the coding device can derive an intra-prediction mode with optimal rate distortion (RD) cost by performing various intra-prediction modes on the current block, and can determine this intra-prediction mode as the intra-prediction mode for the current block. In this case, the coding device can derive the optimal intra-prediction mode for the current block based on intra-prediction modes including 2 non-directional intra-prediction modes and 65 directional intra-prediction modes. (67 intra-prediction modes are referenced above.) Figure 10 The described intra-frame prediction modes are the same.
[0249] In addition, the encoding device can generate information related to the intra-prediction mode of the current block. This information indicates the intra-prediction mode of the current block and may include MPM flag information, MPM index information, and other mode information.
[0250] In one implementation, the encoding device can determine whether the determined intra-prediction mode of the current block is included in the MPM candidates in the MPM list, and can generate MPM flag information based on the determination result. For example, if the intra-prediction mode of the current block is included in the MPM candidates in the MPM list, the encoding device can set the MPM flag information to 1. Alternatively, if the intra-prediction mode of the current block is not included in the MPM candidates in the MPM list, the encoding device can set the MPM flag information to 0.
[0251] Furthermore, if the intra-prediction mode of the current block is included in the MPM candidates within the MPM list, the encoding device can generate MPM index information indicating the intra-prediction mode of the current block among the MPM candidates. For example, if the MPM list is configured with 6 MPM candidates, the MPM index information can be 0 to 5 index values.
[0252] If the intra-prediction mode of the current block is not included in the MPM candidates in the MPM list, the encoding device can generate remaining mode information indicating the intra-prediction mode of the current block among the remaining intra-prediction modes other than the MPM candidates. For example, as described above, if 67 intra-prediction modes are used and the MPM list is constructed to include 6 MPM candidates, the remaining intra-prediction modes can include 61 modes obtained by subtracting the number of MPM candidates from the total number of intra-prediction predictions. Therefore, the remaining mode information can indicate index values from 0 to 60.
[0253] The encoding device can generate prediction samples for the current block by performing intra-prediction based on the determined intra-prediction mode of the current block (S1520).
[0254] In one implementation, the encoding device can derive at least one of the neighboring samples of the current block based on an intra-frame prediction mode, and can generate prediction samples based on the neighboring samples. In this case, the neighboring samples can include the top-left neighboring sample, the top neighboring sample, and the left neighboring sample of the current block. For example, if the size of the current block is W×H and the x and y components at the top-left sample position of the current block are xN and yN, then the left neighboring sample can be p[xN-1][yN] to p[xN-1][2H+yN-1], the top-left neighboring sample can be p[xN-1][yN-1], and the top neighboring sample can be p[xN][yN-1] to p[2W+xN-1][yN-1].
[0255] The encoding device can encode image information including information related to the intra-prediction mode of the current block (S1530).
[0256] That is, the encoding device can generate information related to the intra-prediction mode (including at least one of the MPM flag information, MPM index information and other mode information mentioned above), and can encode the information related to the intra-prediction mode.
[0257] Because the number of intra-prediction modes is extended to 67 as described above, a certain number of bits are also necessary to indicate the remaining mode information. Therefore, to improve coding efficiency, truncated binary (TB) binarization can be used to encode the remaining mode information.
[0258] In one implementation, the encoding device can encode the aforementioned MPM flag information, MPM index information, or other pattern information based on binarization processing. In this case, binarization processing can be performed on the MPM flag information, MPM index information, or other pattern information based on predetermined binarization type information. This can be the same as in Table 12. According to Table 12, the other pattern information has been predefined as truncated binary (TB) binarization type.
[0259] As described above, MPM candidates can be derived from 67 intra-prediction modes, including 2 non-directional intra-prediction modes and 65 directional intra-prediction modes. Therefore, the remaining mode information can be represented as the values of syntax elements indicating the intra-prediction modes derived from the remaining intra-prediction modes among the 67 intra-prediction modes, excluding the number of MPM candidates (e.g., 6). For example, the values of syntax elements indicating the remaining mode information can be represented as index values (e.g., values from 0 to 60) used to indicate the 61 intra-prediction modes.
[0260] In one implementation, the value of the syntax element indicating the remaining mode information can be derived by performing truncated binary (TB) binarization based on the algorithm in Table 13. As described above, the remaining mode information is represented as the value of the syntax element. As described in Table 12, the maximum range of values for the syntax element representing the remaining mode information, cMax, can be 60. Therefore, according to the algorithm in Table 13, when the value of the syntax element representing the remaining mode information is less than a specific value derived based on the number of intra-prediction modes other than the MPM candidate (i.e., cMax), the value of the syntax element representing the remaining mode information can be a value derived using a variable number of bits from 1 to 5 bits based on the truncated binary (TB) binarization. Conversely, the value of the syntax element representing the remaining mode information can be derived as a 6-bit value based on the truncated binary (TB) binarization. The number of bits can be reduced based on the value of the syntax element by applying truncated binary (TB) binarization to the remaining mode information as shown in Table 13.
[0261] Furthermore, although not illustrated, the encoding device can derive residual samples for the current block based on the original samples and predicted samples of the current block, and can generate residual-related information for the current block based on the residual samples. Additionally, the encoding device can encode image information including residual-related information and can output the image information as a bitstream.
[0262] The bitstream can be sent to the decoding device via a network or via (digital) storage media. In this case, the network can include broadcast networks and / or communication networks. Digital storage media can include a variety of storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD.
[0263] It can be done Figure 2 The subtractor 231 of the disclosed encoding device 200 performs the process of deriving the residual samples of the current block. This can be achieved by... Figure 2 The converter 232 of the disclosed encoding device 200 performs processing to generate information related to the residual. This can be achieved by... Figure 2 The entropy encoder 240 of the disclosed encoding device 200 performs processing to encode image information including information related to residuals.
[0264] Figure 16 This is a flowchart illustrating a decoding method that can be executed by a decoding device according to an implementation of this document.
[0265] It can be by Figure 3 The publicly disclosed decoding device 300 performs Figure 16 The method disclosed in the document. Specifically, it can be... Figure 3 The predictor 330 and intra-frame predictor 331 disclosed herein perform [the following actions]. Figure 16 Steps S1600 to S1620 in the process. This can be achieved by... Figure 3 The adder 340 disclosed in the article performs... Figure 16 Step S1630 in the process. Furthermore, it can be achieved by... Figure 3 The publicly disclosed entropy decoder 310 executes Figure 16 Step S1610 in the process. Furthermore, Figure 16 The methods disclosed herein may include the embodiments disclosed in this specification. Therefore, in Figure 16 In this document, detailed descriptions of content that overlaps with the above-mentioned implementation methods are omitted, or these content is briefly described.
[0266] Reference Figure 16 The decoding device can configure the MPM list by deriving the most probable mode (MPM) candidate for the current block based on the neighboring blocks adjacent to the current block (S1600).
[0267] In this case, neighboring blocks can include Figure 11 The neighboring blocks A, B, C, D, E, F and / or G are illustrated in the example.
[0268] In one implementation, two neighboring blocks can be used when configuring the MPM list. For example, neighboring block D and neighboring block B can be used. Neighboring block D can indicate the bottom left neighboring block among the left neighboring blocks to the left of the current block. Neighboring block B can indicate the rightmost top neighboring block among the top neighboring blocks above the current block.
[0269] The decoding device can derive a first MPM candidate based on a first neighboring block (neighboring block D) and can derive a second MPM candidate based on a second neighboring block (neighboring block B).
[0270] For example, if the first neighboring block is available and intra-prediction has been applied to the first neighboring block, the first MPM candidate can be derived as the intra-prediction mode of the first neighboring block. If the first neighboring block is unavailable or intra-prediction has not been applied to the first neighboring block, the first MPM candidate can be derived as a planar intra-prediction mode.
[0271] Furthermore, for example, if the second neighboring block is available, intra-prediction has been applied to the second neighboring block, and the second neighboring block is included in the current CTU, the second MPM candidate can be derived as the intra-prediction mode of the second neighboring block. If the second neighboring block is unavailable, or intra-prediction has not been applied to the second neighboring block, or the second neighboring block is not included in the current CTU, the second MPM candidate can be derived as the planar intra-prediction mode.
[0272] The decoding device can configure the MPM list based on the first and second MPM candidates derived as described above. In this case, depending on the number of candidates in the MPM list, the remaining MPM candidates, including the first and second MPM candidates, can be derived. As mentioned above, the number of candidates included in the MPM list can vary depending on the algorithm, and can be, for example, 3, 4, 5, or 6. Furthermore, as mentioned above, MPM candidates can be further derived based on the first MPM candidates derived from the first neighboring block and the second MPM candidates derived from the second neighboring block, according to predetermined conditions.
[0273] For example, the decoding device can determine whether the first MPM candidate and the second MPM candidate are the same, and can determine whether the mode number of the first MPM candidate or the second MPM candidate is greater than the mode number of the DC mode. In this case, when the first MPM candidate and the second MPM candidate are not the same, the decoding device can determine whether each of the first MPM candidate and the second MPM candidate has a mode number greater than the DC mode, or whether either of the first MPM candidate and the second MPM candidate has a mode number greater than the DC mode. Furthermore, when each of the first MPM candidate and the second MPM candidate has a mode number greater than the DC mode, the decoding device can determine this based on the difference between the mode numbers of the first MPM candidate and the second MPM candidate (e.g., whether the difference between the mode numbers of the two candidates is 1 or 2, or greater than or equal to 62). As described above, the decoding device can configure the MPM list differently based on whether the first MPM candidate and the second MPM candidate meet this condition. For example, the MPM list can include 6 MPM candidates. In this case, the decoding device can derive 6 MPM candidates, including the first MPM candidate and the second MPM candidate, based on whether this condition is met. In this case, the 6 MPM candidates can be mapped to the corresponding Each index value can be used to indicate which MPM candidate in the MPM list is being referred to. Therefore, the decoding device can determine which MPM candidate in the MPM list is being referred to based on the index information signaled by the encoding device.
[0274] The above-mentioned process of generating an MPM list by deriving MPM candidates based on neighboring blocks of the current block is merely an example. Various methods can be used to construct the MPM list, taking coding efficiency into consideration. Furthermore, various implementations for configuring the MPM list described in this document can be applied to the process of generating the MPM list. (See also...) Figures 12 to 14 Tables 1 to 13 provide a detailed description of this, but the description is omitted in this embodiment.
[0275] The decoding device can determine the intra-prediction mode of the current block based on the MPM list (S1610).
[0276] In one implementation, the decoding device can generate information related to the intra-prediction mode of the current block based on the bitstream. This information, related to the intra-prediction mode, indicates the intra-prediction mode of the current block and may include MPM flag information, MPM index information, and other mode information.
[0277] First, the decoding device can obtain MPM flag information indicating whether the intra-prediction mode of the current block is included in the MPM candidate list. Furthermore, the decoding device can obtain MPM index information or other mode information based on the MPM flag information.
[0278] For example, when the MPM flag information indicates 1, the decoding device can determine that the intra-prediction mode of the current block is included in the MPM candidates within the MPM list. In this case, the decoding device can obtain the MPM index information indicating the intra-prediction mode of the current block among the MPM candidates. The decoding device can then derive the MPM candidate indicated by the MPM index information in the MPM list as the intra-prediction mode of the current block.
[0279] When the MPM flag information indicates 0, the decoding device can determine that the intra-prediction mode of the current block is not included in the MPM candidates in the MPM list. In this case, the decoding device can obtain the remaining mode information indicating the intra-prediction mode of the current block among the remaining intra-prediction modes other than the MPM candidates. The decoding device can derive the intra-prediction mode indicated by the remaining mode information as the intra-prediction mode of the current block.
[0280] Because the number of intra-prediction modes is extended to 67 as described above, a certain number of bits are also necessary to indicate the remaining mode information. Therefore, to improve coding efficiency, the remaining mode information can be obtained by decoding it using a truncated binary (TB) binarization method.
[0281] In one implementation, the decoding device can decode the MPM flag information, MPM index information, or other mode information mentioned above based on binarization processing. In this case, binarization processing can be performed on the MPM flag information, MPM index information, or other mode information based on predetermined binarization type information. This can be the same as in Table 12. According to Table 12, the other mode information has been predefined as truncated binary (TB) binarization type.
[0282] As described above, MPM candidates can be derived from 67 intra-prediction modes, including 2 non-directional intra-prediction modes and 65 directional intra-prediction modes. Therefore, the remaining mode information can be represented as the values of syntax elements indicating the intra-prediction modes derived from the remaining intra-prediction modes among the 67 intra-prediction modes, excluding the number of MPM candidates (e.g., 6). For example, the values of syntax elements indicating the remaining mode information can be represented as index values (e.g., values from 0 to 60) used to indicate the 61 intra-prediction modes.
[0283] In one implementation, the value of the syntax element indicating the remaining mode information can be derived by performing truncated binary (TB) binarization based on the algorithm in Table 13. As described above, the remaining mode information is represented as the value of the syntax element. As described in Table 12, the maximum range of values for the syntax element representing the remaining mode information, cMax, can be 60. Therefore, according to the algorithm in Table 13, when the value of the syntax element representing the remaining mode information is less than a specific value derived based on the number of intra-prediction modes other than the MPM candidate (i.e., cMax), the value of the syntax element representing the remaining mode information can be a value derived using a variable number of bits from 1 to 5 bits based on the truncated binary (TB) binarization. Conversely, the value of the syntax element representing the remaining mode information can be derived as a 6-bit value based on the truncated binary (TB) binarization. The number of bits can be reduced based on the value of the syntax element by applying truncated binary (TB) binarization to the remaining mode information as shown in Table 13.
[0284] The decoding device can generate a prediction sample for the current block by performing intra-prediction on the current block based on the derived intra-prediction mode (S1620).
[0285] In one implementation, the decoding device can derive at least one of the neighboring samples of the current block based on an intra-frame prediction mode, and can generate prediction samples based on the neighboring samples. In this case, the neighboring samples can include the top-left neighboring sample, the top neighboring sample, and the left neighboring sample of the current block. For example, if the size of the current block is W×H and the x and y components at the top-left sample position of the current block are xN and yN, then the left neighboring sample can be p[xN-1][yN] to p[xN-1][2H+yN-1], the top-left neighboring sample can be p[xN-1][yN-1], and the top neighboring sample can be p[xN][yN-1] to p[2W+xN-1][yN-1].
[0286] The decoding device can generate a reconstructed image for the current block based on the predicted samples (S1630).
[0287] In one implementation, the decoding device can directly use the predicted samples as reconstructed samples based on the prediction pattern, or it can generate reconstructed samples by adding the residual samples to the predicted samples.
[0288] If residual samples for the current block exist, the decoding device can receive information related to the residuals of the current block. This residual-related information may include transform coefficients associated with the residual samples. The decoding device can derive residual samples (or an array of residual samples) for the current block based on the residual information. The decoding device can generate reconstructed samples based on the predicted samples and residual samples, and can derive reconstructed blocks or reconstructed images based on these reconstructed samples. Subsequently, as described above, the decoding device can apply in-loop filtering processes such as unblocking filtering and / or SAO processes to the reconstructed image to enhance subjective / objective image quality.
[0289] In the embodiments described above, although these methods have been described based on flowcharts in the form of a series of steps or units, the implementation of this document is not limited to the order of these steps, and some of these steps may be performed in a different order than the others or may be performed simultaneously with the others. Furthermore, those skilled in the art will understand that the steps shown in the flowcharts are not exclusive, and without affecting the scope of the claims of this document, these steps may include additional steps or one or more steps in the flowchart may be deleted.
[0290] The methods mentioned above according to this document can be implemented in software, and the encoding and / or decoding devices according to this document can be included in devices for performing image processing, such as TVs, computers, smartphones, set-top boxes, or display devices.
[0291] In this document, when the implementation is carried out in software form, the methods mentioned above can be implemented as modules (programs, functions, etc.) for performing the functions mentioned above. Modules can be stored in memory and executed by a processor. The memory can be located internally or externally to the processor and connected to the processor by various known means. The processor may include application-specific integrated circuits (ASICs), other chipsets, logic circuits, and / or data processing devices. The memory may include read-only memory (ROM), random access memory (RAM), flash memory, memory cards, storage media, and / or other storage devices. That is, the implementations described in this document can be implemented and executed on a processor, microprocessor, controller, or chip. For example, the functional units illustrated in the figures can be implemented and executed on a computer, processor, microprocessor, controller, or chip. In this case, information (e.g., information about instructions) or algorithms used for such implementation can be stored in a digital storage medium.
[0292] Furthermore, the decoding and encoding devices using this document can be included in multimedia broadcasting transmitting and receiving devices, mobile communication terminals, home theater video devices, digital cinema video devices, surveillance cameras, video chat devices, real-time communication devices such as video communication, mobile streaming devices, storage media, cameras, video-on-demand (VoD) service providers, over-the-top (OTT) video devices, internet streaming service providers, three-dimensional (3D) video devices, virtual reality (VR) devices, augmented reality (AR) devices, video telephony devices, transportation terminals (e.g., vehicle (including autonomous vehicle) terminals, aircraft terminals, and ship terminals), and medical video devices, and can be used to process video signals or data signals. For example, over-the-top (OTT) video devices can include game consoles, Blu-ray players, internet access TVs, home theater systems, smartphones, tablet PCs, and digital video recorders (DVRs).
[0293] Furthermore, the processing method using this document can be generated in the form of a computer-executable program and can be stored in a computer-readable recording medium. Multimedia data with a data structure based on this document can also be stored in a computer-readable recording medium. Computer-readable recording media include all types of storage devices storing computer-readable data. Computer-readable recording media can include, for example, Blu-ray discs (BD), Universal Serial Bus (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, magnetic tape, floppy disks, and optical data storage devices. Furthermore, computer-readable recording media include media implemented in the form of a carrier wave (e.g., transmitted via the Internet). Additionally, bitstreams generated using encoding methods can be stored in computer-readable recording media or transmitted via wired and wireless communication networks.
[0294] Furthermore, the implementation of this document can be implemented as a computer program product using program code. The program code can be executed by a computer according to the implementation of this document. The program code can be stored on a carrier wave that can be read by a computer.
[0295] Figure 17 Examples of content streaming systems to which the implementation methods disclosed in this document can be applied are illustrated.
[0296] Reference Figure 17 The content streaming system implemented using the methods described in this document may mainly include an encoding server, a streaming server, a network server, a media storage device, a user device, and a multimedia input device.
[0297] An encoding server compresses content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data to generate a bitstream, and then transmits this bitstream to a streaming server. As another example, when multimedia input devices such as smartphones, cameras, and camcorders directly generate bitstreams, the encoding server can be omitted.
[0298] Bitstreams can be generated using the encoding method or bitstream generation method described in this document, and the streaming server can temporarily store the bitstreams during the sending or receiving of bitstreams.
[0299] A streaming server sends multimedia data to a user's device via a web server based on a user's request, and the web server acts as a medium for informing the user of services. When a user requests a desired service from the web server, the web server forwards it to the streaming server, which then sends the multimedia data to the user. In this scenario, the content streaming system may include a separate control server. In this case, the control server controls the commands / responses between devices within the content streaming system.
[0300] A streaming server can receive content from media storage and / or encoding servers. For example, when receiving content from an encoding server, the content can be received in real time. In this case, to provide a smooth streaming service, the streaming server can store the bitstream for a predetermined period of time.
[0301] Examples of user devices may include mobile phones, smartphones, laptop computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigators, touchscreen PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, head-mounted displays), digital TVs, desktop computers, digital signage, etc.
[0302] In a content streaming system, each server can operate as a distributed server, in which case the data received from each server can be distributed.
Claims
1. A decoding device for video decoding, the decoding device comprising: Memory; as well as At least one processor, connected to the memory, is configured to: An MPM list is constructed by deriving the most likely pattern MPM candidates for the current block based on neighboring blocks adjacent to the current block. Based on the MPM list, derive the intra-prediction mode for the current block; Prediction samples are generated by performing prediction on the current block based on the intra-frame prediction mode; and Based on the predicted samples, a reconstructed image for the current block is generated. Specifically, for deriving the intra-prediction mode for the current block, the at least one processor is further configured to: Obtain MPM flag information related to whether the intra-prediction mode for the current block is included in the MPM candidates; Based on the MPM flag information indicating that the intra-prediction mode for the current block is not included in the MPM candidates, information on the remaining intra-prediction modes for the current block, excluding the MPM candidates, is obtained; and Based on the remaining mode information, the intra-prediction mode for the current block is derived. The remaining mode information is obtained based on truncated binary TB binarization processing; The MPM candidates are derived based on 67 intra-frame prediction modes, including 2 non-directional intra-frame prediction modes and 65 directional intra-frame prediction modes. The remaining mode information is represented as the value of a syntax element, which is the indication information of the intra prediction mode derived from the remaining intra prediction modes among the 67 intra prediction modes excluding the number of candidate modes. Wherein, when the value of the syntax element representing the remaining mode information is less than a specific value derived based on the number of the remaining intra-predictive modes, the value of the syntax element representing the remaining mode information is a value derived based on the truncated binary TB binarization process using a variable number of bits from 1 to 5.
2. The decoding device according to claim 1, wherein, The neighboring blocks include the bottom left neighboring block among the neighboring blocks adjacent to the left boundary of the current block and the rightmost top neighboring block among the neighboring blocks adjacent to the top boundary of the current block.
3. An encoding device for video encoding, the encoding device comprising: Memory; as well as At least one processor, connected to the memory, is configured to: An MPM list is constructed by deriving the most likely pattern MPM candidates for the current block based on neighboring blocks adjacent to the current block. Determine the intra-prediction mode for the current block; Prediction samples are generated by performing prediction on the current block based on the intra-frame prediction mode; and Image information, including intra-frame prediction mode information for the current block, is encoded. Specifically, for determining the intra-prediction mode for the current block, the at least one processor is further configured to: MPM flag information is generated based on whether the intra-prediction mode for the current block is included in the MPM candidates; and Based on the MPM flag information indicating that the intra-prediction mode for the current block is not included in the MPM candidates, additional mode information is generated to indicate the remaining intra-prediction modes for the current block among the other intra-prediction modes besides the MPM candidates. The MPM flag information and the remaining mode information are included and encoded in the intra-frame prediction mode information, and The remaining pattern information is encoded based on truncated binary TB binarization processing; The candidate modes are derived from 67 intra-frame prediction modes, including 2 non-directional intra-frame prediction modes and 65 directional intra-frame prediction modes. The remaining mode information is represented as the value of a syntax element, which is the indication information of the intra prediction mode derived from the remaining intra prediction modes among the 67 intra prediction modes other than the number of candidate modes. The value of the syntax element representing the remaining mode information is a specific value derived from the number of the remaining intra-prediction modes, and the value of the syntax element representing the remaining mode information is a value derived from the truncated binary TB binarization process using a variable number of bits from 1 to 5.
4. The encoding device according to claim 3, wherein, The neighboring blocks include the bottom left neighboring block among the neighboring blocks adjacent to the left boundary of the current block and the rightmost top neighboring block among the neighboring blocks adjacent to the top boundary of the current block.
5. A computer-readable storage medium storing a computer program and a bit stream thereon, characterized in that, When executed by a processor, the computer program implements the encoding device for video encoding as described in claim 3 to generate the bitstream.
6. An apparatus for transmitting data for image information, the apparatus comprising: At least one processor, configured to obtain a bitstream of image information including intra-prediction mode information, wherein the processor generates the bitstream based on: constructing an MPM list by deriving the most probable mode MPM candidates for the current block based on neighboring blocks adjacent to the current block; determining an intra-prediction mode for the current block; generating prediction samples by performing prediction on the current block based on the intra-prediction mode; and encoding the image information including the intra-prediction mode information for the current block; and A transmitter configured to transmit the data comprising the bitstream of image information including the intra-frame prediction mode information. Specifically, for determining the intra-prediction mode for the current block, the at least one processor is further configured to: MPM flag information is generated based on whether the intra-prediction mode for the current block is included in the MPM candidates; and Based on the MPM flag information indicating that the intra-prediction mode for the current block is not included in the MPM candidates, additional mode information is generated to indicate the remaining intra-prediction modes for the current block among the other intra-prediction modes besides the MPM candidates. The MPM flag information and the remaining mode information are included and encoded in the intra-frame prediction mode information, and The remaining pattern information is encoded based on truncated binary TB binarization processing; The MPM candidates are derived based on 67 intra-frame prediction modes, including 2 non-directional intra-frame prediction modes and 65 directional intra-frame prediction modes. The remaining mode information is represented as the value of a syntax element, which is the indication information of the intra prediction mode derived from the remaining intra prediction modes among the 67 intra prediction modes excluding the number of candidate modes. Wherein, when the value of the syntax element representing the remaining mode information is less than a specific value derived based on the number of the remaining intra-predictive modes, the value of the syntax element representing the remaining mode information is a value derived based on the truncated binary TB binarization process using a variable number of bits from 1 to 5.
Citation Information
Patent Citations
Method for encoding / decoding of intra prediction mode and apparatus thereof
KR1020170131329A
Method and apparatus for intra chroma coding in image and video coding
WO2018064956A1