Encoding / decoding method and method for transmitting data
Through the intra prediction (MIP) technology that adaptively selects and flexibly configures matrix references during intra prediction, the problem of low compression and transmission efficiency of high-resolution image/video data is solved, achieving more efficient coding and better coding visual quality.
Patent Information
- Application Number
- CN202411394947.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-08-22
- Filing Date
- 2020-08-24
- Publication Date
- 2025-02-11
AI Technical Summary
The prior art is difficult to effectively compress and transmit high-resolution, high-quality image/video data, especially in the case of increasing demand for supporting immersive media such as virtual reality, artificial reality and holograms.
The image/video encoding efficiency is improved by adaptively selecting whether to apply the matrix reference intra prediction (MIP) during the intra prediction process, and flexibly selecting the number of MIP modes according to the type of the current block.
Improve image/video compression efficiency, enhance subjective/objective visual quality, and simplify signaling, reducing hardware implementation complexity.
Smart Images

Figure CN119420933A_ABST
Abstract
Description
[0001] This application is a divisional application of the original invention patent application with application number 202080072351.7 (International application number: PCT / KR2020 / 011239, application date: August 24, 2020, invention name: Intra-frame prediction device and method). Technical Field
[0002] This document relates to intra-frame prediction devices and methods. Background Art
[0003] Recently, there has been an increasing demand for high-resolution, high-quality images / videos, such as 4K or 8K or higher ultra-high-definition (UHD) images / videos, in various fields. As image / video data has high resolution and high quality, the amount of information or bits to be transmitted increases relative to existing image / video data. Therefore, transmitting image data using a medium such as an existing wired / wireless broadband line or an existing storage medium or storing image / video data using an existing storage medium increases transmission costs and storage costs.
[0004] In addition, interest in and demand for immersive media such as virtual reality (VR) and artificial reality (AR) content and holograms are growing, and broadcasting of images / videos having characteristics different from real images (such as game images) is also increasing.
[0005] Therefore, highly efficient image / video compression technology is required to effectively compress, transmit, store or reproduce information of high-resolution, high-quality images / videos having various characteristics as described above.
[0006] Furthermore, in order to improve compression efficiency and enhance subjective / objective visual quality, a scheme for improving data transmission efficiency in the matrix-based intra prediction (MIP) process is discussed. Summary of the Invention
[0007] Technical Solution
[0008] According to the embodiments of this document, a method and apparatus for improving image / video encoding efficiency are provided.
[0009] According to the embodiments of this document, an efficient intra-frame prediction method and apparatus are provided.
[0010] According to the implementation of this document, an efficient MIP application method and apparatus are provided.
[0011] According to the embodiments of this document, whether to apply MIP can be adaptively selected according to the type of the current block.
[0012] According to an embodiment of this document, MIP processing can be performed without limiting conditions related to the type of the current block.
[0013] According to an embodiment of this document, the number of MIP modes can be adaptively selected according to the type of the current block.
[0014] According to an embodiment of this document, MIP processing may not be performed on a block with relatively low MIP prediction efficiency.
[0015] According to the embodiments of this document, a smaller number of MIP modes may be used for blocks where the MIP prediction efficiency is relatively low.
[0016] According to an embodiment of this document, a video / image decoding method performed by a decoding device is provided.
[0017] According to an embodiment of this document, there is provided a decoding device for performing video / image decoding.
[0018] According to an embodiment of this document, a video / image encoding method performed by an encoding device is provided.
[0019] According to an embodiment of this document, there is provided an encoding device for performing video / image encoding.
[0020] According to one embodiment of this document, a computer-readable digital storage medium is provided, in which encoded video / image information generated according to the video / image encoding method disclosed in at least one embodiment of the embodiments of this document is stored.
[0021] According to an embodiment of the present document, a computer-readable digital storage medium is provided, in which encoded information or encoded video / image information is stored for enabling a decoding device to perform a video / image decoding method disclosed in at least one embodiment of the present document.
[0022] Beneficial effects
[0023] According to the implementation of this document, the overall image / video compression efficiency can be improved.
[0024] According to the embodiments of this document, subjective / objective visual quality can be enhanced through efficient intra prediction.
[0025] According to the embodiments of this document, MIP processing for image / video encoding can be efficiently performed.
[0026] According to the embodiments of this document, MIP processing may not be performed on a block with relatively low MIP prediction efficiency, thereby improving MIP prediction efficiency.
[0027] According to the embodiments of this document, since a smaller number of MIP modes are used for blocks with relatively low MIP prediction efficiency, the amount of transmission data for the MIP modes can be reduced and the MIP prediction efficiency can be improved.
[0028] According to the embodiments of this document, since MIP processing is performed without limiting conditions related to the type of the current block, signaling can be simplified and there is an advantage in hardware implementation. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] Figure 1 An example of a video / image coding system that can be applied to the embodiments of this document is schematically illustrated.
[0030] Figure 2 is a diagram schematically illustrating a configuration of a video / image encoding device that can be applied to an embodiment of this document.
[0031] Figure 3 is a diagram schematically illustrating a configuration of a video / image decoding device that can be applied to an embodiment of this document.
[0032] Figure 4 An example of an intra-frame prediction-based image encoding method to which embodiments of this document are applicable is schematically illustrated.
[0033] Figure 5 An example of an intra-frame prediction-based image decoding method to which embodiments of this document are applicable is schematically illustrated.
[0034] Figure 6 An example of an intra prediction mode to which embodiments of this document are applicable is illustrated.
[0035] Figure 7 is a diagram illustrating a process of generating MIP-based prediction samples according to an embodiment.
[0036] Figure 8 、 Figure 9 and Figure 10 is a flowchart illustrating MIP processing according to an embodiment of this document.
[0037] Figure 11 and Figure 12 An example of a video / image encoding method and related components according to an embodiment of this document is schematically illustrated.
[0038] Figure 13 and Figure 14 An example of a video / image decoding method and related components according to an embodiment of this document is schematically illustrated.
[0039] Figure 15An example of a content streaming system to which the embodiments disclosed in this document are applicable is illustrated. DETAILED DESCRIPTION
[0040] This document may be modified in various forms, and specific embodiments thereof are described and shown in the accompanying drawings. However, the embodiments are not intended to limit this document. The terms used in the following description are only used to describe specific embodiments and are not intended to limit this document. Singular expressions include plural expressions as long as they can be clearly understood differently. Words such as "including" and "having" are intended to indicate the presence of features, quantities, steps, operations, elements, components, or combinations thereof used in the following description, so it should be understood that the possibility of the presence or addition of one or more different features, quantities, steps, operations, elements, components, or combinations thereof is not excluded.
[0041] In addition, each configuration in the drawings described in this document is shown independently to facilitate the description of different feature functions, and does not mean that each configuration is implemented as separate hardware or separate software. For example, two or more components in each component can be combined to form a component, or a component can be divided into multiple components. Implementations in which each component is integrated and / or separated are also included in the disclosure scope of this document.
[0042] This document relates to video / image coding. For example, the methods / implementations disclosed in this document can be applied to methods disclosed in the Versatile Video Coding (VVC) standard, the Essential Video Coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the second-generation Audio Video Coding standard (AVS2), or next-generation video / image coding standards (e.g., H.267, H.268, etc.).
[0043] This document proposes various embodiments of video / image coding, and unless otherwise stated, the above embodiments may also be performed in combination with each other.
[0044] In this document, video may refer to a series of images over a period of time. A picture generally refers to a unit representing an image at a specific time frame, and a slice / tile refers to a unit that constitutes a part of a picture in terms of coding. A slice / tile may include one or more coding tree units (CTUs). A picture may consist of one or more slices / tiles. A picture may consist of one or more tile groups. A tile group may include one or more tiles. A tile may represent a rectangular area of a CTU row within a tile in a picture. A tile may be divided into multiple tiles, each of which may consist of one or more CTU rows within a tile. A tile that is not divided into multiple tiles may also be referred to as a tile. Tile scanning may represent a specific sequential ordering of CTUs that partition a picture, wherein CTUs may be sorted in a CTU raster scan within a tile, and tiles within a tile may be sorted continuously in a raster scan of tiles of a tile, and tiles in a picture may be sorted continuously in a raster scan of tiles of a tile. A tile is a rectangular region of CTUs within a specific tile column and a specific tile row in a picture. A tile column is a rectangular region of CTUs whose height is equal to the height of the picture and whose width is specified by the syntax elements in the picture parameter set. A tile row is a rectangular region of CTUs whose height is specified by the syntax elements in the picture parameter set and whose width is equal to the width of the picture. Tile scan is a specific sequential ordering of the CTUs that partition a picture, where the CTUs are ordered consecutively in the raster scan of the CTUs in the tile, and the tiles in the picture are ordered consecutively in the raster scan of the picture tiles. A slice consists of an integer number of tiles of a picture that can be exclusively contained in a single NAL unit. A slice can consist of multiple complete tiles or just a consecutive sequence of complete tiles of a tile. In this document, tile group and slice can be used instead of each other. For example, in this document, a tile group / tile group header can be referred to as a slice / slice header.
[0045] In addition, a picture can be divided into two or more sub-pictures. A sub-picture can be a rectangular area of one or more slices within a picture.
[0046] A pixel or picture element (pel) may refer to the smallest unit constituting a picture (or image). In addition, "sample" may be used as a term corresponding to a pixel. A sample may generally represent a pixel or a pixel value, and may represent a pixel / pixel value of only a luminance component or a pixel / pixel value of only a chrominance component.
[0047] A unit may represent a basic unit of image processing. A unit may include at least one of a specific area of a picture and information related to the area. A unit may include a luminance block and two chrominance (e.g., cb, cr) blocks. In some cases, a unit may be used interchangeably with terms such as block or area. In general, an M×N block may include M columns and N rows of samples (or sample arrays) or a set (or array) of transform coefficients. Alternatively, a sample may refer to a pixel value in the spatial domain, and when such a pixel value is transformed into the frequency domain, it may refer to a transform coefficient in the frequency domain.
[0048] In this document, "A or B" can mean "only A", "only B", or "A and B". In other words, "A or B" in this document can be interpreted as "A and / or B". For example, in this document, "A, B, or C (A, B, or C)" means "only A", "only B", "only C", or "any combination of A, B, and C".
[0049] As used in this document, a slash ( / ) or a comma can mean "and / or." For example, "A / B" can mean "A and / or B." Thus, "A / B" can mean "only A," "only B," or "A and B." For example, "A, B, C" can mean "A, B, or C."
[0050] In this document, “at least one of A and B” may mean “only A”, “only B”, or “both A and B”. In addition, in this document, the expression “at least one of A or B” or “at least one of A and / or B” may be interpreted as the same as “at least one of A and B”.
[0051] In addition, in this document, "at least one of A, B, and C" means "only A", "only B", "only C", or "any combination of A, B, and C". In addition, "at least one of A, B, or C" or "at least one of A, B, and / or C" may mean "at least one of A, B, and C".
[0052] In addition, brackets used in this document may mean "for example." Specifically, when "prediction (intra-frame prediction)" is indicated, "intra-frame prediction" may be provided as an example of "prediction." In other words, "prediction" in this document is not limited to "intra-frame prediction," but "intra-frame prediction" may be provided as an example of "prediction." Furthermore, even when "prediction (i.e., intra-frame prediction)" is indicated, "intra-frame prediction" may be provided as an example of "prediction."
[0053] Technical features described separately in one drawing of this document can be implemented separately or simultaneously.
[0054] Hereinafter, examples of the present embodiment will be described in detail with reference to the accompanying drawings. In addition, in all drawings, the same reference numerals are used to indicate the same elements, and the same description of the same elements is omitted.
[0055] Figure 1 An example of a video / image coding system to which embodiments of this document can be applied is illustrated.
[0056] Reference Figure 1 The video / image coding system may include a first device (source device) and a second device (receiving device). The source device may send the coded video / image information or data in the form of a file or stream to the receiving device via a digital storage medium or a network.
[0057] 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.
[0058] The video source can obtain the video / image through a process of capturing, synthesizing, or generating the video / image. The video source may include a video / image capture device and / or a video / image generation device. For example, the video / image capture device may include one or more cameras, a video / image archive including previously captured videos / images, etc. For example, the video / image generation device may include a computer, a tablet computer, and a smartphone, and may generate the video / image (electronically). For example, a virtual video / image may be generated by a computer, etc. In this case, the video / image capture process may be replaced by a process of generating relevant data.
[0059] The encoding device can encode the input video / image. For compression and coding efficiency, the encoding device can perform a series of processes such as prediction, transformation, and quantization. The encoded data (encoded video / image information) can be output in the form of a bitstream.
[0060] The transmitter can transmit the encoded image / image information or data, output as a bitstream, in the form of a file or stream to a receiver of a receiving device via a digital storage medium or network. Digital storage media can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitter can include components for generating a media file in a predetermined file format and can also include components for transmission via a broadcast / communication network. The receiver can receive / extract the bitstream and transmit the received bitstream to a decoding device.
[0061] The decoding device may decode a video / image by performing a series of processes such as dequantization, inverse transformation, and prediction corresponding to the operations of the encoding device.
[0062] The renderer may render the decoded video / image, and the rendered video / image may be displayed on a display.
[0063] Figure 2 This figure schematically illustrates the configuration of a video / image encoding device to which embodiments of this document can be applied. Hereinafter, a video encoding device may include an image encoding device. Furthermore, an image encoding method / device may include a video encoding method / device. Alternatively, a video encoding method / device may include an image encoding method / device.
[0064] Reference Figure 2 , the encoding device 200 includes an image segmenter 210, a predictor 220, a residual processor 230 and 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 transformer 232, a quantizer 233, a dequantizer 234 and an inverse transformer 235. The residual processor 230 may also include a subtractor 231. The adder 250 may be referred to as a reconstructor or a reconstructed block generator. According to an embodiment, the image segmenter 210, the predictor 220, the residual processor 230, the entropy encoder 240, the adder 250 and the filter 260 may be configured by at least one hardware component (e.g., an encoder chipset or processor). In addition, the memory 270 may include a decoded picture buffer (DPB) or may be configured by a digital storage medium. The hardware components may also include the memory 270 as an internal / external component.
[0065] The image splitter 210 can split the input image (or picture or frame) input to the encoding device 200 into one or more processors. For example, the processor can be referred to as a coding unit (CU). In this case, the coding unit can be recursively split from the coding tree unit (CTU) or the largest coding unit (LCU) according to the quadtree binary tree ternary tree (QTBTTT) structure. For example, a coding unit can be split into multiple coding units of a deeper depth based on a quadtree structure, a binary tree structure, and / or a ternary tree structure. In this case, for example, the quadtree structure can be applied first, and / or the binary tree structure and / or ternary tree structure can be applied later. Alternatively, the binary tree structure can be applied first. The encoding process according to the present disclosure can be performed based on the final coding unit that is no longer split. In this case, based on the encoding efficiency according to the image characteristics, the maximum coding unit can be used as the final coding unit, or, if necessary, the coding unit can be recursively split into coding units of a deeper depth, and the coding unit with the optimal size can be used as the final coding unit. Here, the encoding process may include the prediction, transformation, and reconstruction processes described later. As another example, the processor may further include a prediction unit (PU) or a transform unit (TU). In this case, the prediction unit and the transform unit may be partitioned or split from the aforementioned final coding unit. The prediction unit may be a unit for sample prediction, and the transform unit may be a unit for deriving transform coefficients and / or a unit for deriving a residual signal from the transform coefficients.
[0066] In some cases, the term "unit" can be used interchangeably with terms such as "block" or "region." In general, an M×N block can represent a set of samples or transform coefficients consisting of M columns and N rows. A sample can generally represent a pixel or pixel value, and can represent only the pixel / pixel value of the luma component or only the pixel / pixel value of the chroma component. A sample can be used as a term corresponding to a pixel or picture element of a picture (or image).
[0067] In the encoding device 200, the prediction signal (prediction block, prediction sample array) output from the inter predictor 221 or the intra predictor 222 is subtracted from the input image signal (original block, original sample array) to generate a residual signal (residual block, residual sample array), and the generated residual signal is sent to the transformer 232. In this case, as shown in the figure, 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 a subtractor 231. The predictor can perform prediction on a block to be processed (hereinafter referred to as the current block) and generate a prediction block including prediction samples for the current block. The predictor can determine whether to apply intra prediction or inter prediction based on the current block or CU. As described later in the description of each prediction mode, the predictor can generate various types of information related to the prediction (such as prediction mode information) and send the generated information to the entropy encoder 240. The information about the prediction can be encoded in the entropy encoder 240 and output in the form of a bitstream.
[0068] The intra-frame predictor 222 can predict the current block by referring to samples in the current picture. Depending on the prediction mode, the referenced samples can be located near the current block or can be spaced apart. In intra-frame prediction, the prediction mode can include multiple non-directional modes and multiple directional modes. For example, the non-directional mode can include a DC mode and a planar mode. For example, depending on the level of detail of the prediction direction, the directional mode can include 33 directional prediction modes or 65 directional prediction modes. However, this is only an example, and more or fewer directional prediction modes can be used depending on the settings. The intra-frame predictor 222 can determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring blocks.
[0069] The inter-frame predictor 221 can derive a prediction block for the current block based on a reference block (reference sample array) specified by a motion vector in a reference picture. To reduce the amount of motion information transmitted in inter-frame prediction mode, motion information can be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between neighboring blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can also include information about the inter-frame prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter-frame prediction, neighboring blocks can include spatially neighboring blocks in the current picture and temporally neighboring blocks in the reference picture. The reference picture including the reference block and the reference picture including the temporally neighboring block can be the same or different. Temporally neighboring blocks can be referred to as collocated reference blocks, collocated CUs (colCUs), etc., and the reference picture including temporally neighboring blocks can be referred to as collocated pictures (colPics). For example, the inter-frame predictor 221 can configure a motion information candidate list based on the neighboring blocks and generate information indicating which candidate is used to derive the motion vector and / or reference picture index for the current block. Inter-frame prediction can be performed based on various prediction modes. For example, in the case of skip mode and merge mode, the inter-frame predictor 221 can use the motion information of the neighboring block as the motion information of the current block. In skip mode, unlike merge mode, a residual signal may not be transmitted. In the case of motion vector prediction (MVP) mode, the motion vector of the neighboring block can be used as a motion vector predictor, and the motion vector of the current block can be indicated by signaling the motion vector difference.
[0070] The predictor 220 can generate a prediction signal based on various prediction methods described below. For example, the predictor can apply not only intra prediction or inter prediction to predict a block, but also both intra prediction and inter prediction at the same time. This can be referred to as combined inter and intra prediction (CIIP). In addition, the predictor can predict 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 coding (e.g., screen content coding (SCC)) for games, etc. IBC basically performs prediction in the current picture, but can be performed similarly to inter prediction so that a reference block is derived in the current picture. That is, IBC can use at least one inter prediction technique described in this disclosure. The palette mode can be considered an example of intra coding or intra prediction. When the palette mode is applied, the sample values within the picture can be signaled based on information about the palette table and the palette index.
[0071] The prediction signal generated by the predictor (including the inter-frame predictor 221 and / or the intra-frame predictor 222) can be used to generate a reconstruction signal or to generate a residual signal. The transformer 232 can generate transform coefficients by applying a transform technique to the residual signal. For example, the transform technique may include at least one of a discrete cosine transform (DCT), a discrete sine transform (DST), a Karhunen-Loève transform (KLT), a graph-based transform (GBT), or a conditional nonlinear transform (CNT). Here, when the relationship information between pixels is represented by a graph, GBT means a transform obtained from the graph. CNT refers to a transform generated based on a prediction signal generated using all previously reconstructed pixels. In addition, the transform process can be applied to square pixel blocks of the same size or can be applied to blocks of variable sizes other than square.
[0072] The quantizer 233 may quantize the transform coefficients and send them to the entropy encoder 240, which may encode the quantized signal (information about the quantized transform coefficients) and output a bitstream. The information about the quantized transform coefficients may be referred to as residual information. The quantizer 233 may rearrange the block-type quantized transform coefficients into a one-dimensional vector form based on the coefficient scanning order, and generate information about the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form. Information about the transform coefficients may be generated. The entropy encoder 240 may perform various encoding methods (e.g., exponential Golomb, context-adaptive variable length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), etc.). The entropy encoder 240 may encode information required for video / image reconstruction (e.g., syntax element values, etc.) in addition to the quantized transform coefficients, together or separately. The encoded information (e.g., encoded video / image information) may be transmitted or stored in units of NALs (Network Abstraction Layers) in the form of a bitstream. The video / image information may also include information about various parameter sets such as an adaptive parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may also include general constraint information. In the present disclosure, information and / or syntax elements sent / signaled from the encoding device to the decoding device may be included in the video / image information. The video / image information may be encoded by the above-mentioned encoding process and included in the bitstream. The bitstream may be sent over a network or may be stored in a digital storage medium. The network may include a broadcast network and / or a communication network, 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 transmits the signal output from the entropy encoder 240 and / or a storage unit (not shown) that stores the signal may be included as an internal / external element of the encoding device 200, and alternatively, the transmitter may be included in the entropy encoder 240.
[0073] The quantized transform coefficients output from the quantizer 233 can be used to generate a prediction signal. For example, a residual signal (residual block or residual sample) can be reconstructed by applying dequantization and inverse transformation to the quantized transform coefficients via the dequantizer 234 and the inverse transformer 235. The adder 250 adds the reconstructed residual signal to the prediction signal output from the inter-frame predictor 221 or the intra-frame predictor 222 to generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array). If there is no residual for the block to be processed (such as when skip mode is applied), the prediction block can be used as a reconstructed block. The adder 250 can be referred to as a reconstructor or a reconstructed block generator. As described below, the generated reconstructed signal can be used for intra-frame prediction of the next block to be processed in the current picture and can be used for inter-frame prediction of the next picture through filtering.
[0074] Furthermore, luma mapping and chroma scaling (LMCS) may be applied during picture encoding and / or reconstruction.
[0075] The filter 260 can improve the subjective / objective image quality by applying filtering to the reconstructed signal. For example, the filter 260 can generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture and store the modified reconstructed picture in the memory 270 (specifically, the DPB of the memory 270). For example, various filtering methods may include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc. The filter 260 can generate various types of information related to filtering and send the generated information to the entropy encoder 240, as described later in the description of each filtering method. The information related to filtering can be encoded by the entropy encoder 240 and output in the form of a bit stream.
[0076] The modified reconstructed picture transmitted to the memory 270 may be used as a reference picture in the inter predictor 221. When inter prediction is applied by the encoding apparatus, prediction mismatch between the encoding apparatus 200 and the decoding apparatus 300 may be avoided and encoding efficiency may be improved.
[0077] The DPB of the memory 270 DPB can store a modified reconstructed picture used as a reference picture in the inter-frame predictor 221. The memory 270 can store motion information of a block from which motion information in the current picture is derived (or encoded) and / or motion information of a reconstructed block in the picture. The stored motion information can be sent to the inter-frame predictor 221 and used as motion information of a spatially adjacent block or motion information of a temporally adjacent block. The memory 270 can store reconstructed samples of a reconstructed block in the current picture and can transmit the reconstructed samples to the intra-frame predictor 222.
[0078] Figure 31 is a schematic diagram illustrating a configuration of a video / image decoding device to which embodiments of the present disclosure may be applied. Furthermore, the image decoding method / device may include a video decoding method / device. Alternatively, the video decoding method / device may include an image decoding method / device.
[0079] Reference Figure 3 , the 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 a dequantizer 321 and an inverse transformer 322. According to an embodiment, the entropy decoder 310, the residual processor 320, the predictor 330, the adder 340, and the filter 350 may be configured by a hardware component (e.g., a decoder chipset or processor). In addition, the memory 360 may include a decoded picture buffer (DPB) or may be configured by a digital storage medium. The hardware component may also include the memory 360 as an internal / external component.
[0080] When a bit stream including video / image information is input, the decoding device 300 can reconstruct the same Figure 2 The image corresponding to the processing of the video / image information in the encoding device. For example, the decoding device 300 can derive the unit / block based on the block segmentation related information obtained from the bit stream. The decoding device 300 can perform decoding using a processor applied in the encoding device. Therefore, the decoding processor can be, for example, a coding unit, and the coding unit can be divided from the coding tree unit or the maximum coding unit according to a quadtree structure, a binary tree structure and / or a ternary tree structure. One or more transform units can be derived from the coding unit. The reconstructed image signal decoded and output by the decoding device 300 can be reproduced by a reproduction device.
[0081] The decoding device 300 may receive Figure 2The signal is output by the encoding device in the form of a bitstream, and the received signal can be decoded by the entropy decoder 310. For example, the entropy decoder 310 can parse the bitstream to derive information required for image reconstruction (or picture reconstruction) (e.g., video / image information). The video / image information may also include information about various parameter sets such as an adaptive parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may also include general constraint information. The decoding device can also decode the picture based on the information about the parameter set and / or the general constraint information. The signaled / received information and / or syntax elements described later in this disclosure can be decoded through a decoding process and can be obtained from the bitstream. For example, the entropy decoder 310 decodes the information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and outputs syntax elements required for image reconstruction and quantized values of transform coefficients for the residual. More specifically, the CABAC entropy decoding method can: receive bins corresponding to each syntax element in the bitstream; use the decoding target syntax element information, the decoding target block decoding information, or the symbol / bin information decoded at the previous stage to determine the context model; and according to the determined context model, arithmetically decode the bin by predicting the probability of occurrence of the bin and generate a symbol corresponding to the value of each syntax element. In this case, after determining the context model, the CABAC entropy decoding method can update the context model by using the decoded symbol / bin information for the context model of the next symbol / bin. The information related to prediction among the information decoded by the entropy decoder 310 can be provided to the predictor (inter-frame predictor 332 and intra-frame predictor 331), and the residual value (i.e., quantized transform coefficients and related parameter information) on which entropy decoding is performed in the entropy decoder 310 can be input to the residual processor 320. The residual processor 320 can derive a residual signal (residual block, residual sample, residual sample array). In addition, information about filtering among the information decoded by the entropy decoder 310 can be provided to the filter 350. In addition, a receiver (not shown) for receiving a signal output from the encoding device may be further configured as an internal element / external element of the decoding device 300, or the receiver may be a component of the entropy decoder 310. In addition, the decoding device according to the present disclosure may be referred to as a video / image / picture decoding device, and the decoding device may be classified 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.
[0082] The dequantizer 321 may dequantize the quantized transform coefficients and output the transform coefficients. The dequantizer 321 may rearrange the quantized transform coefficients in the form of two-dimensional blocks. In this case, the rearrangement may be performed based on the coefficient scanning order performed in the encoding device. The dequantizer 321 may dequantize the quantized transform coefficients using quantization parameters (e.g., quantization step size information) and obtain the transform coefficients.
[0083] The inverse transformer 322 performs an inverse transform on the transform coefficients to obtain a residual signal (residual block, residual sample array).
[0084] The predictor may perform prediction on the current block and generate a prediction block including prediction samples for the current block. The predictor may determine whether to apply intra prediction or inter prediction to the current block based on the information on prediction output from the entropy decoder 310 and may determine a specific intra / inter prediction mode.
[0085] The predictor 330 can generate a prediction signal based on various prediction methods described below. For example, the predictor can apply not only intra prediction or inter prediction to predict a block, but also both intra prediction and inter prediction simultaneously. This can be referred to as combined inter and intra prediction (CIIP). In addition, the predictor can predict 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 coding (e.g., screen content coding (SCC)) for games, etc. IBC basically performs prediction in the current picture, but can be performed similarly to inter prediction so that a reference block is derived in the current picture. That is, IBC can use at least one inter prediction technique described in this disclosure. The palette mode can be considered an example of intra coding or intra prediction. When the palette mode is applied, the sample values within the picture can be signaled based on information about the palette table and the palette index.
[0086] The intra-frame predictor 331 can predict the current block by referencing samples in the current picture. Depending on the prediction mode, the referenced samples may be located near the current block or spaced apart. In intra-frame prediction, the prediction mode may include multiple non-directional modes and multiple directional modes. The intra-frame predictor 331 may determine the prediction mode to be applied to the current block by using the prediction modes applied to the neighboring blocks.
[0087] The inter-frame predictor 332 can derive a prediction block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. In this case, to reduce the amount of motion information transmitted in inter-frame prediction mode, motion information can be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between neighboring blocks and the current block. Motion information can include a motion vector and a reference picture index. Motion information can also include information on the inter-frame prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter-frame prediction, neighboring blocks can include spatial neighboring blocks in the current picture and temporal neighboring blocks in the reference picture. For example, the inter-frame predictor 332 can configure a motion information candidate list based on neighboring blocks and derive the motion vector and / or reference picture index of the current block based on the received candidate selection information. Inter-frame prediction can be performed based on various prediction modes, and information about the prediction can include information indicating the inter-frame prediction mode of the current block.
[0088] The adder 340 can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the obtained residual signal to the prediction signal (prediction block, prediction sample array) output from the predictor (including the inter-frame predictor 332 and / or the intra-frame predictor 331). If there is no residual in the block to be processed, for example, when skip mode is applied, the prediction block can be used as the reconstructed block.
[0089] The adder 340 may be referred to as a reconstructor or a reconstructed block generator. The generated reconstructed signal may be used for intra prediction of the next block to be processed in the current picture, may be output through filtering as described below, or may be used for inter prediction of the next picture.
[0090] In addition, luma mapping and chroma scaling (LMCS) can be applied in the picture decoding process.
[0091] The filter 350 can improve the subjective / objective image quality by applying filtering to the reconstructed signal. For example, the filter 350 can generate a modified reconstructed image by applying various filtering methods to the reconstructed image and store the modified reconstructed image in the memory 360 (specifically, the DPB of the memory 360). For example, the various filtering methods may include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.
[0092] The (modified) reconstructed picture stored in the DPB of the memory 360 can be used as a reference picture in the inter-frame predictor 332. The memory 360 can store the motion information of the block from which the motion information in the current picture is derived (or decoded) and / or the motion information of the reconstructed block in the picture. The stored motion information can be sent to the inter-frame predictor 332 to be used as the motion information of the spatially adjacent block or the motion information of the temporally adjacent block. The memory 360 can store the reconstructed samples of the reconstructed block in the current picture and transmit the reconstructed samples to the intra-frame predictor 331.
[0093] In this document, the embodiments described in the filter 260, the inter-frame predictor 221, and the intra-frame predictor 222 of the encoding device 200 may be the same as or respectively correspond to the filter 350, the inter-frame predictor 332, and the intra-frame predictor 331 of the decoding device 300. This also applies to the inter-frame predictor 332 and the intra-frame predictor 331.
[0094] As described above, in video encoding, prediction is performed to improve compression efficiency. Through this operation, a prediction block including prediction samples for the current block (i.e., the block to be encoded) can be generated. Here, the prediction block includes prediction samples in the spatial domain (or pixel domain). The prediction block is derived identically from the encoding device and the decoding device, and the encoding device decodes information (residual information) about the residual between the original block and the prediction block (rather than the original sample values of the original block themselves). Image coding efficiency can be improved by notifying the device with a signal. 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 and the prediction block, and generate a reconstructed picture including the reconstructed block.
[0095] Residual information can be generated through transformation and quantization. For example, the encoding device can derive a residual block between the original block and the prediction block, perform transformation processing on the residual samples (residual sample array) included in the residual block to derive the transformation coefficient, and then derive the quantized transformation coefficient by performing quantization processing on the transformation coefficient to signal the residual related information (via the bitstream) to the decoding device. Here, the residual information may include value information, position information, transformation technology, transformation core and quantization parameter of the quantized transformation coefficient. The decoding device can perform dequantization / inverse transformation processing based on the residual information and derive residual samples (or residual blocks). The decoding device can generate a reconstructed picture based on the prediction block and the residual block. The encoding device can also dequantize / inverse transform the quantized transformation coefficient for inter-frame prediction reference of the subsequent picture to derive the residual block, and generate a reconstructed picture based on this.
[0096] In this document, at least one of quantization / dequantization and / or transform / inverse transform may be omitted. When quantization / dequantization is omitted, the quantized transform coefficient may be referred to as a transform coefficient. When transform / inverse transform is omitted, the transform coefficient may be referred to as a coefficient or a residual coefficient, or may still be referred to as a transform coefficient for the sake of uniformity of expression.
[0097] In this document, quantized transform coefficients and transform coefficients may be referred to as transform coefficients and scaled transform coefficients, respectively. In this case, the residual information may include information about the transform coefficients, and the information about the transform coefficients may be signaled through residual coding syntax. The transform coefficients may be derived based on the residual information (or information about the transform coefficients), and the scaled transform coefficients may be derived by inversely transforming (scaling) the transform coefficients. Residual samples may be derived based on the inverse transform (transform) of the scaled transform coefficients. This may also be applied / expressed in other parts of this document.
[0098] The predictor of the encoding device / decoding device can derive prediction samples by performing inter-frame prediction on a block-by-block basis. Inter-frame prediction can be a prediction derived in a manner that depends on data elements (e.g., sample values or motion information) of a picture other than the current picture. When inter-frame prediction is applied to the current block, a prediction block (prediction sample array) for the current block can be derived based on a reference block (reference sample array) specified by a motion vector on a reference picture indicated by a reference picture index. Here, to reduce the amount of motion information transmitted in inter-frame prediction mode, the motion information of the current block can be predicted on a block, sub-block, or sample basis based on the correlation of motion information between neighboring blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can also include information on the inter-frame prediction type (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter-frame prediction, neighboring blocks can include spatially neighboring blocks in the current picture and temporally neighboring blocks in a reference picture. The reference picture including the reference block and the reference picture including the temporally neighboring blocks can be the same or different. Temporally neighboring blocks may be referred to as collocated reference blocks, collocated CUs (colCUs), etc., and a reference picture including temporally neighboring blocks may be referred to as collocated pictures (colPic). For example, a motion information candidate list may be configured based on neighboring blocks of the current block, and a flag or index information indicating which candidate is selected (used) may be signaled to derive the motion vector and / or reference picture index of the current block. Inter-frame prediction may be performed based on various prediction modes. For example, in skip mode and merge mode, the motion information of the current block may be the same as the motion information of the neighboring blocks. In skip mode, unlike merge mode, a residual signal may not be sent. In motion vector prediction (MVP) mode, the motion vector of the selected neighboring block may be used as a motion vector predictor, and the motion vector of the current block may be signaled. In this case, the motion vector of the current block may be derived using the sum of the motion vector predictor and the motion vector difference.
[0099] Depending on the inter-frame prediction type (L0 prediction, L1 prediction, Bi prediction, etc.), the motion information may include L0 motion information and / or L1 motion information. A motion vector in the L0 direction may be referred to as an L0 motion vector or MVL0, and a motion vector in the L1 direction may be referred to as an L1 motion vector or MVL1. Prediction based on the L0 motion vector may be referred to as L0 prediction, prediction based on the L1 motion vector may be referred to as L1 prediction, and prediction based on both the L0 motion vector and the L1 motion vector may be referred to as bidirectional prediction. Here, the L0 motion vector may indicate a motion vector associated with reference picture list L0 (L0), and the L1 motion vector may indicate a motion vector associated with reference picture list L1 (L1). Reference picture list L0 may include pictures that are earlier in output order than the current picture as reference pictures, and reference picture list L1 may include pictures that are later in output order than the current picture. The preceding picture may be referred to as a forward (reference) picture, and the subsequent picture may be referred to as a backward (reference) picture. Reference picture list L0 may also include pictures that are later in output order than the current picture as reference pictures. In this case, the previous picture may be indexed first in reference picture list L0, and the subsequent picture may be indexed later. Reference picture list L1 may also include pictures earlier in output order than the current picture as reference pictures. In this case, the subsequent picture may be indexed first in reference picture list 1, and the previous picture may be indexed later. The output order may correspond to the picture order count (POC) order.
[0100] In addition, when performing intra-frame prediction, 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 above-mentioned transformation and quantization can be applied to the residual, and spatial redundancy can be removed. Hereinafter, the encoding method and decoding method using intra-frame prediction will be described in detail.
[0101] Intra-frame prediction means generating a prediction of a prediction sample for a current block based on reference samples outside the current block in a picture including the current block (hereinafter referred to as the current picture). Here, reference samples outside the current block may be referred to as samples located around the current block. When intra-frame prediction is applied to the current block, neighboring reference samples to be used for intra-frame prediction of the current block may be derived.
[0102] For example, when the size (width×height) of the current block is nW×nH, the neighboring reference samples of the current block may include samples adjacent to the left boundary of the current block and totaling 2×nH lower left neighboring samples, samples adjacent to the upper boundary of the current block and totaling 2×nW upper right neighboring samples, and one upper left neighboring sample of the current block. In addition, the neighboring reference samples of the current block may include multiple column top neighboring samples and multiple row left neighboring samples. In addition, the neighboring reference samples of the current block may include a total of nH samples with a size of nW×nH adjacent to the right boundary of the current block, a total of nW samples adjacent to the bottom boundary of the current block, and one lower right neighboring sample of the current block.
[0103] However, some neighboring reference samples of the current block may not have been decoded yet or may not be available. In this case, the decoding device can configure neighboring reference samples for prediction by replacing unavailable samples with available samples. In addition, the decoding device can configure neighboring reference samples for prediction by interpolating available samples.
[0104] When deriving neighboring reference samples, (i) the prediction sample can be derived based on the average or interpolation of neighboring reference samples of the current block, or (ii) the prediction sample can be derived based on reference samples existing in a specific (prediction) direction relative to the prediction sample among the neighboring reference samples of the current block. The case of (i) can be applied to the case where the intra-frame prediction mode is a non-directional mode or a non-angular mode, and the case of (ii) can be applied to the case where the intra-frame prediction mode is a directional mode or an angular mode.
[0105] In addition, based on the prediction samples of the current block among the neighboring reference samples, the prediction samples can be generated by interpolating between the first neighboring sample located in the prediction direction of the intra prediction mode of the current block and the second neighboring sample located in the direction opposite to the prediction direction. The above situation can be called linear interpolation intra prediction (LIP). In addition, the chroma prediction samples can be generated based on the luma samples using a linear model. This situation can be called LM mode.
[0106] In addition, the prediction sample of the current block can be derived by deriving the temporary prediction sample of the current block based on the filtered neighboring reference samples and performing a weighted summation of the temporary prediction sample and at least one reference sample derived according to the intra prediction mode among the existing neighboring reference samples (i.e., the unfiltered neighboring reference samples). The above situation can be called position-dependent intra prediction (PDPC).
[0107] In addition, intra-frame prediction encoding can be performed in the following method, which derives prediction samples using reference samples located in the prediction direction in the reference sample line with the highest prediction accuracy by selecting a corresponding line among multiple reference sample lines adjacent to the current block, and indicates (signals) the reference sample line used at that time to the decoding device. The above situation can be called multi-reference line (MRL) intra-frame prediction or MRL-based intra-frame prediction.
[0108] In addition, when intra prediction is performed based on the same intra prediction mode by dividing the current block into vertical or horizontal sub-partitions, neighboring reference samples can be derived and used in units of sub-partitions. That is, the intra prediction mode for the current block can be equally applied to the sub-partitions, and in this case, since the neighboring reference samples are derived and used in units of sub-partitions, the intra prediction performance can be enhanced in some cases. This prediction method can be called intra sub-partitioning (ISP) or ISP-based intra prediction.
[0109] Unlike the intra-frame prediction mode, the above-mentioned intra-frame prediction method can be referred to as an intra-frame prediction type. The intra-frame prediction type can be referred to as various terms such as intra-frame prediction technology or additional intra-frame prediction mode. For example, the intra-frame prediction type (or additional intra-frame prediction mode) may include at least one of LIP, PDPC, MRL and ISP as described above. General intra-frame prediction methods other than specific intra-frame prediction types such as LIP, PDPC, MRL or ISP can be referred to as normal intra-frame prediction types. In the case where the above-mentioned specific intra-frame prediction type is not applied, the normal intra-frame prediction type can generally be applied, and prediction can be performed based on the above-mentioned intra-frame prediction mode. In addition, the derived prediction samples can be post-filtered as needed.
[0110] In addition to the above intra prediction types, matrix-based intra prediction (hereinafter referred to as MIP) can be used as a method for intra prediction. MIP can be called affine linear weighted intra prediction (ALWIP) or matrix weighted intra prediction (NWIP).
[0111] When MIP is applied to the current block, i) neighboring reference samples on which averaging processing has been performed are used, ii) matrix-vector multiplication processing may be performed, and iii) as needed, prediction samples for the current block may be derived by further performing horizontal / vertical interpolation processing. The intra-frame prediction mode used for MIP may be the above-mentioned LIP, PDPC, MRL, or ISP intra-frame prediction, but may also be configured differently from the intra-frame prediction mode used in normal intra-frame prediction.
[0112] The intra prediction mode for MIP may be referred to as "affine linear weighted intra prediction mode" or matrix-based intra prediction mode. For example, depending on the intra prediction mode for MIP, the matrix and offset used in the matrix-vector multiplication may be configured differently. Here, the matrix may be referred to as an (affine) weight matrix, and the offset may be referred to as an (affine) offset vector or an (affine) bias vector. In this document, the intra prediction mode for MIP may be referred to as MIP intra prediction mode, linear weighted intra prediction mode, matrix weighted intra prediction mode, or matrix-based intra prediction mode. The detailed MIP method will be described later.
[0113] The following drawings are prepared to explain the detailed examples of this document. Since the names of the detailed devices, detailed terms or names (for example, grammatical names) described in the drawings are presented for example, the technical features of this document are not limited to the detailed names used in the following drawings.
[0114] Figure 4 An example of an intra-frame prediction-based image encoding method to which embodiments of this document are applicable is schematically illustrated.
[0115] Reference Figure 4 , S400 may be performed by the intra-frame predictor 222 of the encoding device, and S410 may be performed by the residual processor 230 of the encoding device. Specifically, S410 may be performed by the subtractor 231 of the encoding device. In S420, prediction information may be derived by the intra-frame predictor 222 and encoded by the entropy encoder 240. In S420, residual information may be derived by the residual processor 230 and encoded by the entropy encoder 240. The residual information indicates information about the residual sample. The residual information may include information about the quantized transform coefficient for the residual sample. As described above, the residual sample may be derived through the transform coefficient by the transformer of the encoding device, and the transform coefficient may be derived through the quantized transform coefficient by the quantizer. The information about the quantized transform coefficient may be encoded by the entropy encoder 240 through a residual encoding process.
[0116] The encoding device performs intra prediction for the current block (S400). The encoding device may derive an intra prediction mode / type for the current block, derive neighboring reference samples for the current block, and generate prediction samples for the current block based on the intra prediction mode / type and the neighboring reference samples. Here, the processes of determining the intra prediction mode / type, deriving neighboring reference samples, and generating prediction samples may be performed simultaneously, and any one process may be performed earlier than the other.
[0117] The encoding device may also perform prediction sample filtering. Prediction sample filtering may be referred to as post-filtering. Some or all prediction samples may be filtered by the prediction sample filtering process. In some cases, the prediction sample filtering process may be omitted.
[0118] The encoding apparatus generates residual samples for the current block based on the (filtered) prediction samples (S410). The encoding apparatus may derive the residual samples by comparing the prediction samples with the original samples of the current block based on phase.
[0119] The encoding device may encode image information including information about intra prediction (prediction information) and residual information about residual samples (S420). The prediction information may include intra prediction mode information and intra prediction type information. The residual information may include residual coding syntax. The encoding device may derive quantized transform coefficients by performing transform / quantization on the residual samples. The residual information may include information about the quantized transform coefficients.
[0120] The encoding device can output the encoded image information in the form of a bit stream. The output bit stream can be transmitted to the decoding device via a storage medium or a network.
[0121] As described above, the encoding device can generate a reconstructed picture (including reconstructed samples and reconstructed blocks). To this end, the encoding device can derive (modified) residual samples by performing dequantization / inverse transformation of the quantized transform coefficients again. The reason why the residual samples are dequantized / inverse transformed again after being transformed / quantized is to derive residual samples that are the same as the residual samples derived by the decoding device as described above. The encoding device can generate a reconstructed block including reconstructed samples for the current block based on the predicted samples and the (modified) residual samples. Based on the reconstructed block, a reconstructed picture for the current picture can be generated. As described above, the loop filtering process can be further applied to the reconstructed picture.
[0122] Figure 5 An example of an intra-frame prediction-based image decoding method to which embodiments of this document are applicable is schematically illustrated.
[0123] Reference Figure 5, the decoding device may perform operations corresponding to the operations performed by the encoding device described above. S500 to S520 may be performed by the intra-frame predictor 331 of the decoding device, and the prediction information in S500 and the residual information in S530 may be obtained from the bitstream by the entropy decoder 310 of the decoding device. The residual processor 320 of the decoding device may derive residual samples for the current block based on the residual information. Specifically, the dequantizer 321 of the residual processor 320 may derive transform coefficients by performing dequantization based on quantized transform coefficients derived based on the residual information, and the inverse transformer 322 of the residual processor may derive residual samples for the current block by inversely transforming the transform coefficients. S540 may be performed by the adder 340 or the reconstructor of the decoding device.
[0124] The decoding device may derive an intra-frame prediction mode / type for the current block based on the received prediction information (intra-frame prediction mode / type information) (S500). The decoding device may derive neighboring reference samples for the current block (S510). The decoding device generates prediction samples in the current block based on the intra-frame prediction mode / type and the neighboring reference samples (S520). In this case, the decoding device may perform prediction sample filtering. Prediction sample filtering may be referred to as post-filtering. Some or all prediction samples may be filtered through the prediction sample filtering process. In some cases, the prediction sample filtering process may be omitted.
[0125] The decoding device generates residual samples for the current block based on the received residual information (S530). The decoding device may generate reconstructed samples for the current block based on the predicted samples and the residual samples, and derive a reconstructed block including the reconstructed samples (S540). A reconstructed picture for the current picture may be generated based on the reconstructed block. As described above, loop filtering processing, etc. may be further applied to the reconstructed picture.
[0126] For example, the intra-frame prediction mode information may include, for example, flag information (e.g., intra_luma_mpm_flag), which indicates whether the most probable mode (MPM) is applied to the current block or whether the residual mode is applied to the current block. At this time, if the MPM is applied to the current block, the prediction mode information may further include index information (e.g., intra_luma_mpm_idx) indicating one of the intra-frame prediction mode candidates (MPM candidates). The intra-frame prediction mode candidate (MPM candidate) may be composed of an MPM candidate list or an MPM list. In addition, if the MPM is not applied to the current block, the intra-frame prediction mode information may further include residual mode information (e.g., intra_luma_mpm_remainder) indicating one of the remaining intra-frame prediction modes other than the intra-frame prediction mode candidate (MPM candidate). The decoding device may determine the intra-frame prediction mode of the current block based on the intra-frame prediction mode information.
[0127] In addition, the intra-frame prediction type information can be implemented in various forms. As an example, the intra-frame prediction type information may include intra-frame prediction type index information indicating one of the intra-frame prediction types. As another example, the intra-frame prediction type information may include at least one of the following items: reference sample line information indicating whether MRL is applied to the current block and which reference sample line is used if MRL is applied (e.g., intra_luma_ref_idx), ISP flag information indicating whether ISP is applied to the current block (e.g., intra_subpartitions_mode_flag), ISP type information indicating the split type of the sub-partition when ISP is applied (e.g., intra_subpartitions_split_flag), flag information indicating whether PDCP is applied, or flag information indicating whether LIP is applied. In addition, the intra-frame prediction type information may include a MIP flag indicating whether MIP is applied to the current block.
[0128] The intra-frame prediction mode information and / or the intra-frame prediction type information may be encoded / decoded using the encoding method described in this document. For example, the intra-frame prediction mode information and / or the intra-frame prediction type information may be encoded / decoded using entropy coding based on truncated (Rice) binary code (e.g., CABAC, CAVLC).
[0129] In addition, when intra prediction is applied, the intra prediction mode of the neighboring blocks can be used to determine the intra prediction mode applied to the current block. For example, the decoding device can select one of the mpm candidates from an mpm list derived based on the intra prediction modes of neighboring blocks (e.g., left and / or top neighboring blocks) of the current block and additional candidate modes based on the received most probable mode (mpm) index, or can select one of the remaining intra prediction modes not included in the mpm candidates (and planar mode) based on the remaining intra prediction mode information. The mpm list can be constructed to include or exclude planar mode as a candidate. For example, if the mpm list includes planar mode as a candidate, the mpm list can have 6 candidates, while if the mpm list does not include planar mode as a candidate, the mpm list can have 5 candidates. If the mpm list does not include planar mode as a candidate, a non-planar flag (e.g., intra_luma_not_planar_flag) indicating whether the intra prediction mode of the current block is not a planar mode can be signaled. For example, the mpm flag can be signaled first, and when the value of the mpm flag is 1, the mpm index and non-planar flag can be signaled. In addition, the mpm index can be signaled when the value of the non-planar flag is 1. Here, constructing the mpm list that does not include the planar mode as a candidate first identifies whether the intra prediction mode is the planar mode by first signaling a flag (non-planar flag), because the planar mode is always considered to be an mpm rather than a planar mode that is not an mpm.
[0130] For example, whether the intra prediction mode applied to the current block is in the mpm candidate (and planar mode) or in the residual mode can be indicated based on the mpm flag (e.g., intra_luma_mpm_flag). An mpm flag value of 1 can indicate that the intra prediction mode for the current block is in the mpm candidate (and planar mode), and an mpm flag value of 0 can indicate that the intra prediction mode for the current block is not in the mpm candidate (and planar mode). A non-planar flag (e.g., intra_luma_not_planar_flag) value of 0 can indicate that the intra prediction mode for the current block is planar mode, and a non-planar flag value of 1 can indicate that the intra prediction mode for the current block is not planar mode. The mpm index can be signaled in the form of an mpm_idx or intra_luma_mpm_idx syntax element, and the remaining intra prediction mode information can be signaled in the form of a rem_intra_luma_pred_mode or intra_luma_mpm_remainder syntax element. For example, the remaining intra prediction mode information may index the remaining intra prediction modes that are not included in the mpm candidates (and planar modes) among the entire intra prediction modes in the order of their prediction mode numbers, and may indicate one of them. The intra prediction mode may be an intra prediction mode for a luminance component (sample). Hereinafter, the intra prediction mode information may include at least one of an mpm flag (e.g., intra_luma_mpm_flag), a non-planar flag (e.g., intra_luma_not_planar_flag), an mpm index (e.g., mpm_idx or intra_luma_mpm_idx), and remaining intra prediction mode information (rem_intra_luma_pred_mode or intra_luma_mpm_remainder). In this document, the mpm list may be referred to by various terms such as an mpm candidate list, a candidate mode list (candModelList), and a candidate intra prediction mode list.
[0131] Typically, when blocks of an image are segmented, the current block to be encoded and the neighboring blocks have similar image properties. Therefore, the current block and the neighboring blocks are likely to have the same or similar intra-frame prediction modes. Therefore, the encoder can use the intra-frame prediction mode of the neighboring block to encode the intra-frame prediction mode of the current block. For example, the encoder / decoder can construct a most probable mode (MPM) list for the current block. The MPM list can also be called an MPM candidate list. Here, MPM can mean a mode used to improve coding efficiency by taking into account the similarity between the current block and the neighboring blocks when encoding the intra-frame prediction mode.
[0132] Figure 6An example of an intra prediction mode to which embodiments of this document are applicable is illustrated.
[0133] Reference Figure 6 , around the intra prediction mode No. 34 with the upper left diagonal prediction direction, the modes can be divided into intra prediction modes with horizontal directivity and intra prediction modes with vertical directivity. Figure 6 In [ ], H and V mean horizontal and vertical directionality, respectively. Each of the numbers -32 to 32 indicates a displacement of 1 / 32 units on the sample grid position. Intra-frame prediction modes No. 2 to No. 33 have horizontal directionality, and Intra-frame prediction modes No. 34 to No. 66 have vertical directionality. Intra-frame prediction mode No. 18 and Intra-frame prediction mode No. 50 indicate a horizontal intra-frame prediction mode and a vertical intra-frame prediction mode, respectively. Intra-frame prediction mode No. 2 may be referred to as a lower-left diagonal intra-frame prediction mode, Intra-frame prediction mode No. 34 may be referred to as an upper-left diagonal intra-frame prediction mode, and Intra-frame prediction mode No. 66 may be referred to as an upper-right diagonal intra-frame prediction mode.
[0134] In addition, the intra-frame prediction mode used in the above-mentioned MIP is not an existing directional mode, but can indicate the matrix and offset used for intra-frame prediction. That is, the matrix and offset for intra-frame prediction can be derived by the intra-frame mode for the MIP. In this case, when deriving the intra-frame mode for generating the above-mentioned typical intra-frame prediction or MPM list, the intra-frame prediction mode of the block predicted by the MIP can be configured as a pre-configured mode (for example, planar mode or DC mode). In addition, according to another example, the intra-frame mode of the MIP can be mapped to a planar mode, DC mode, or directional intra-frame mode based on the block size.
[0135] Hereinafter, as one method for intra prediction, matrix-based intra prediction (hereinafter, MIP) will be described.
[0136] As described above, matrix-based intra prediction can be referred to as affine linear weighted intra prediction (ALWIP) or matrix weighted intra prediction (MWIP). To predict samples of a rectangular block having a width W and a height H, MIP uses one H line among the reconstructed adjacent left boundary samples of the block and one W line among the reconstructed adjacent top boundary samples of the block as input values. If reconstructed samples are not available, reference samples can be generated using the interpolation method already used in typical intra prediction.
[0137] Figure 7 FIG is a diagram illustrating a process of generating MIP-based prediction samples according to an embodiment. Figure 7 , the MIP processing will be described as follows.
[0138] 1. Averaging
[0139] Through the averaging process, 4 boundary samples can be extracted in the case of W=H=4, and 8 boundary samples can be extracted in other cases.
[0140] 2. Matrix-vector multiplication processing
[0141] By performing a matrix-vector multiplication with the input of the average sample and then adding the offset, we can derive the reduced prediction samples for the subsampled set of samples in the original block.
[0142] 3. (Linear) interpolation processing
[0143] The prediction samples for the remaining positions are generated from the prediction samples of the subsampled sample set by linear interpolation with a single step size in each direction.
[0144] The matrices and offset vectors required to generate a prediction block or prediction sample may be selected from three sets S0, S1, and S2 for matrices.
[0145] The set S0 can be composed of 18 matrices A0 i ,i∈{0,…,17} and 18 offset vectors b0 i ,i∈{0,…,17}. For example, each matrix A0 i ,i∈{0,…,17} can have 16 rows and 4 columns. In the example, each offset vector b0 i , i∈{0,…,17} can be of size 16. The matrices and offset vectors of set S0 can be used for blocks of size 4×4.
[0146] The set S1 can be composed of 10 matrices A1 i ,i∈{0,…,9} and 10 offset vectors b1 i ,i∈{0,…,9}. For example, each matrix A1 i ,i∈{0,…,9} can have 16 rows and 8 columns. In the example, each offset vector b1 i , i∈{0,…,9} can be of size 16. The matrices and offset vectors of set S1 can be used for blocks of size 4×8, 8×4, and 8×8.
[0147] Finally, the set S2 can be composed of 6 matrices A2 i ,i∈{0,…,5} and 6 offset vectors b2 i ,i∈{0,…,5}. For example, each matrix A2 i ,i∈{0,…,5} can have 64 rows and 8 columns. In the example, each offset vector b2 i, the size of i∈{0,…,5} may be 64. The matrices and offset vectors of set S2 or some of them may be used for all other block types of sizes to which sets S0 and S1 are not applicable.
[0148] The total number of multiplications required to compute the matrix-vector product may always be equal to or less than 4 × W × H. For example, in MIP mode, up to four multiplications may be required per sample.
[0149] Regarding the implementation of averaging adjacent samples, outside the boundary samples, in the case of W=H=4, four samples can be extracted by averaging, and 8 samples can be extracted by averaging. left and bdry top Can be reduced to a smaller boundary by averaging neighboring boundary samples according to a predefined rule that depends on the block size and
[0150] Since the two reduction boundaries and Connected to the reduced boundary vector bdry red , so in the case of 4×4 type blocks, bdry red The size of is 4 and in case of all other blocks its size is 8.
[0151] In the case where the “mode” is referred to as MIP mode, the reduction boundary vector bdry red The range of MIP mode values (mode) can be defined in the following formula.
[0152] [Formula 1]
[0153]
[0154] Regarding the implementation of matrix-vector multiplication, the matrix-vector multiplication can be performed using the average sample as input. red One of them generates a reduced prediction signal pred red The prediction samples are for width W red And the height is H red For example, W red and H red It can be defined in the following formula.
[0155] [Formula 2]
[0156]
[0157] Reduced prediction sample pred redIt can be calculated by adding the offset after performing the matrix-vector multiplication and can be derived as follows.
[0158] [Formula 3]
[0159] pred red =A·bdry red +b
[0160] Here, A represents the red ×H red A matrix of rows and 4 columns in the case where W and H are 4 (W=H=4), or 8 columns in all other cases, and b represents the size W red ×H red vector.
[0161] The matrix A and the offset vector b may be selected from the sets S0, S1, and S2. For example, the index idx=idx(W,H) may be defined as follows.
[0162] [Formula 4]
[0163]
[0164] If idx is equal to or less than 1 (idx≤1) or idx is 2, and the smaller value between W and H is greater than 4 (min(W,H)>4), then set A to And set b to If idx is 2, the smaller value between W and H is 4 (min(W,H)=4), and W is 4, then A becomes the value corresponding to the odd x coordinate in the downsampled block. The rows of A are removed. In addition, if H is 4, A becomes the matrix corresponding to the odd y coordinates in the downsampled block. The matrix with the columns removed.
[0165] Since A consists of 4 columns and 16 rows when W=H=4, the calculation of pred red The number of multiplications required is 4. In all other cases, since A consists of 8 columns and W red ×H red It is composed of rows, so it can be confirmed that each sample requires at most four multiplications to calculate pred red .
[0166] The interpolation process may be referred to as linear interpolation or bilinear interpolation. As shown in the figure, the interpolation process may include two steps: 1) vertical interpolation and 2) horizontal interpolation.
[0167] In the case where W ≥ H, vertical linear interpolation can be applied first, and then horizontal interpolation can be applied. In the case where W < H, horizontal linear interpolation can be applied first, and then vertical linear interpolation can be applied. In the case of a 4×4 block, the interpolation process can be omitted.
[0168] In the case of a W×H block where max(W,H) ≥ 8, from the reduced prediction samples pred red ×H red on, the predicted samples are derived. Depending on the block type, linear interpolation is performed vertically, horizontally, or in both directions. In the case of applying linear interpolation in both directions, in the case where W < H, linear interpolation is applied first in the horizontal direction, otherwise linear interpolation is applied first in the vertical direction.
[0169] In the case of a W×H block where max(W,H) ≥ 8 and W ≥ H, it can be considered that there is no general loss. In this case, one-dimensional linear interpolation is performed as follows. If there is no general loss, the linear interpolation in the vertical direction can be fully explained.
[0170] First, the reduced prediction samples are extended to the top by the boundary signal. The vertical upsampling coefficient U ver = H / H red can be defined, and if configured as then the extended reduced prediction samples can be configured as in the following equation.
[0171] For each coding unit (CU) in the intra mode, a flag indicates whether the MIP mode is applied to the corresponding current block. If the MIP mode is applied, the MPM flag can be signaled, and it can be indicated whether the prediction mode is one of the MPM modes. For example, three modes can be considered for MPM. In the example, the MPM modes can be context-encoded by truncated binary. Non-MPM modes can be encoded as a fixed-length code (FLC). By performing mode mapping between the normal intra prediction mode and the MIP intra prediction mode based on a predefined mapping table depending on the block size (i.e., idx(W,H) ∈ {0,1,2}), the derivation of this MPM can be combined with the normal intra prediction mode. The following equation can represent the forward (from the normal mode to the MIP mode) and / or reverse (from the MIP mode to the normal mode) mode mapping table.
[0172] [Equation 5]
[0173] predmode ALWIP = map_angular_to_alwip idx [predmode Angular
[0174] [Equation 6]
[0175]
[0176] In an example, 35 modes are available for a block (e.g., max(W,H)<=8 &&W*H<32). In another example, 19 modes are available for a block (e.g., max(W,H)=8). 11 modes are available for a block (e.g., max(W,H)>8). In addition, to reduce memory consumption, two modes can share the same matrix and / or offset vector, as shown in the following equation.
[0177] [Formula 7]
[0178]
[0179] Hereinafter, a method for maximizing performance while reducing the complexity of the MIP technique will be described. The embodiments to be described later may be performed individually or in combination.
[0180] According to embodiments of this document, whether to apply MIP can be adaptively selected (determined) based on the type of the current (luminance) block in MIP processing. In existing embodiments, if the difference between the width and height of the luminance block exceeds four times (for example, 32×4, 64×8, 64×4, 4×32, 8×64, 4×64, 128×4, 128×8, 128×16, 4×128, 8×128, and 16×128), MIP is not performed and / or a flag indicating whether to apply MIP is not sent. In this embodiment, a method for improving encoding and decoding efficiency by extending or removing MIP when MIP is applied is provided.
[0181] In one of the examples of this embodiment, MIP may not be applied when the width of the current (luminance) block is 4 and its height is equal to or greater than 16, or when the height of the current (luminance) block is 4 and the width is equal to or greater than 16. Some coding unit syntaxes according to this example may be the same as the following table.
[0182] [Table 1]
[0183]
[0184] In the above example, MIP is not applied to 4×16 and 16×4 blocks where MIP efficiency is low, so the MIP efficiency can be improved.
[0185] In another example of the examples of this embodiment, MIP may not be applied when the width of the current (luminance) block is 4 and its height is equal to or greater than 32, and MIP may not be applied when the height of the current (luminance) block is 4 and its width is equal to or greater than 32. Some coding unit syntaxes according to this example may be as shown in the following table.
[0186] [Table 2]
[0187]
[0188] Through the above examples, MIP can be applied to 8×64 and 64×8 blocks to which MIP can be applied efficiently and easily, and thus MIP efficiency can be improved.
[0189] According to another example of this embodiment, the block type restriction for MIP can be removed. For example, in this example, MIP can always be applied to all (encoded) blocks. When the MIP flag is signaled (parsed), the conditional determination of the width and / or height of the current (luminance) block can be removed. Therefore, the MIP parsing conditions can be simplified, and the complexity of software and hardware implementation can be reduced. Some coding unit syntax according to this example can be shown in the following table.
[0190] [Table 3]
[0191]
[0192] The test results of this example can be shown in the following table.
[0193] [Table 4]
[0194]
[0195] Referring to the table above, the results for all intra frames (AI) and random access (RA) in the above test are given. As shown in the table above, it is confirmed that there is no performance degradation in this embodiment. In other words, in the case of the proposed method 3, since the signaling (parsing) burden can be simplified by relaxing the MIP flag signaling (parsing) conditions, it has advantages in hardware implementation and does not cause encoding and decoding performance degradation.
[0196] According to this embodiment, Figure 4 In S400 and / or S410, it may be determined whether to apply MIP to the current block. In this case, as described above, whether to apply MIP may be adaptively determined according to the type of the current (luminance) block. In this case, in S420, the encoding device may adaptively encode intra_mip_flag.
[0197] In the embodiments of this document, the number of MIP modes can be adaptively determined (selected) according to the type of the current (luminance) block in the MIP process. In the existing embodiment, 35 MIP modes can be used for a 4×4 luminance block (MipSizeId 0), 19 MIP modes can be used for a 4×4, 8×4, or 8×8 luminance block (MipSizeId 1), and 11 MIP modes can be used for other luminance blocks (MipSizeId 2).
[0198] In this embodiment, a smaller number of MIP modes can be used for block types with low MIP efficiency. Through this embodiment, the amount of transmission data of information on MIP modes can be reduced.
[0199] Figure 8 、 Figure 9 and Figure 10 is a flowchart illustrating MIP processing according to an embodiment of this document.
[0200] Reference Figure 8 , in with Figure 8 In a related embodiment, if the difference between the width and the height of the current (luminance) block exceeds four times the width or height of the current (luminance) block (if the height of the current block is greater than four times the width of the current block or if the width of the current block is greater than four times the height of the current block), MIP modes with fewer than 11 basic modes (MipSizeId 2) may be used, and information related to the MIP mode may be sent.
[0201] Reference Figure 9 , in with Figure 9 In a related embodiment, if the width of the current (luminance) block is 4 and its height is equal to or greater than 16, a number of MIP modes less than 11 basic modes (MipSizeId 2) may be used, and information related to the MIP mode may be transmitted. In addition, if the height of the current (luminance) block is 4 and its width is equal to or greater than 16, a number of MIP modes less than 11 basic modes (MipSizeId 2) may be used, and information related to the MIP mode may be transmitted.
[0202] Reference Figure 10 , in with Figure 10In a related embodiment, if the width of the current (luminance) block is 4 and its height is equal to or greater than 32, then a number of MIP modes less than 11 basic modes (MipSizeId 2) may be used, and information related to the MIP mode may be transmitted. In addition, if the height of the current (luminance) block is 4 and its width is equal to or greater than 32, then a number of MIP modes less than 11 basic modes (MipSizeId 2) may be used, and information related to the MIP mode may be transmitted.
[0203] By following Figures 8 to 10 In an implementation method, by using a smaller number of MIP modes for blocks with low MIP prediction efficiency (block types with a large difference between width and height), the amount of transmitted data for the MIP mode can be reduced. Through this operation, the MIP prediction efficiency can be improved.
[0204] In addition, in reference Figures 8 to 10 In the illustrated embodiment, only some of the 11 MIP modes may be used, which improves MIP efficiency through data reduction. In an example, only one of the 11 MIP modes may be used, and in this case, no MIP mode data may be sent. In another example, only two of the 11 MIP modes may be used, and in this case, one bit of MIP mode data may be sent. In yet another example, only four of the 11 MIP modes may be used, and in this case, two bits of MIP mode data may be sent. One, two, or four of the 11 modes may be selected according to the order of the MIP kernel in the existing embodiment, or may be selected according to the order of the MIP kernel as described above. Figures 8 to 10 As in the method described above, the selection is performed in the order of MIP selection mode probability in a block format.
[0205] Figure 11 and Figure 12 An example of a video / image encoding method and related components according to an embodiment of this document is schematically illustrated.
[0206] Figure 11 The method disclosed in Figure 2 or Figure 12 Specifically, for example, Figure 11 The S1100 and S1110 can be made by Figure 12 The predictor 220 of the encoding device performs, Figure 11 S1120 to S1140 can be made by Figure 12 The residual processor 230 of the encoding device performs, and Figure 11 The S1150 can be made by Figure 12 The encoding is performed by the entropy encoder 240 of the encoding device. Figure 11The methods disclosed in may include the above-mentioned embodiments in this document.
[0207] Reference Figure 11 , the encoding device may determine whether to apply matrix-based intra prediction (MIP) to the current block (S1100). If MIP is applied to the current block, the encoding device may generate intra-MIP flag information indicating that MIP is applied to the current block. If MIP is not applied to the current block, the encoding device may generate intra-MIP flag information (e.g., intra_mip_flag) indicating that MIP is not applied to the current block. The encoding device may output image information including the intra-MIP flag information as a bitstream.
[0208] The encoding apparatus may generate a prediction sample for the current block ( S1110 ).The encoding apparatus may generate the prediction sample based on determining to apply the MIP to the current block.
[0209] The encoding device may generate prediction-related information (S1120). The encoding device may generate prediction-related information based on determining to apply a MIP to the current block. For example, the prediction-related information may include intra-MIP flag information (e.g., intra_mip_flag). In addition, the prediction-related information may also include intra-MIP mode information (e.g., intra_mip_mode).
[0210] The encoding device may generate residual samples for the current block (S1130). The encoding device may generate the residual samples based on the intra-frame prediction samples. The encoding device may generate the residual samples based on the difference between the original samples and the intra-frame prediction samples for the current block.
[0211] The encoding device may derive (quantized) transform coefficients (S1140). The encoding device may derive the transform coefficients based on a transform process performed on the residual samples. For example, the transform process may include at least one of DCT, DST, GBT, or CNT. The encoding device may derive the quantized transform coefficients. The encoding device may derive the quantized transform coefficients based on a quantization process performed on the transform coefficients. The quantized transform coefficients may have a one-dimensional vector form based on a coefficient scanning order.
[0212] The encoding apparatus may generate residual information (S1150). The encoding apparatus may generate residual information representing the quantized transform coefficient. The residual information may be generated by various encoding methods such as exponential Golomb, CAVLC, and CABAC.
[0213] The encoding device may encode image information including prediction-related information and residual information (S1160). The prediction-related information may include information about the MIP. The information about the MIP may include intra-frame MIP flag information related to whether the MIP is applied to the current block. The intra-frame MIP flag information may be related to whether the intra-frame prediction mode type for the current block is MIP. In addition, the information about the MIP may include intra-frame MIP mode information related to whether the MIP is applied to the current block.
[0214] The encoded video / image information can be output in the form of a bitstream, which can be sent to a decoding device via a network or storage medium.
[0215] The image / video information may include various information according to the embodiments of this document. For example, the image / video information may include the information disclosed in at least one of Tables 1 to 3 described above.
[0216] In an embodiment, a MIP matrix (MIP weight matrix) for a MIP may be derived based on the width and / or height of the current block.
[0217] In an embodiment, MIP samples for the current block may be generated based on a MIP matrix.
[0218] In an embodiment, prediction samples for the current block may be generated based on the MIP samples.
[0219] In an embodiment, the image information may include MIP mode information, and an MIP matrix may be derived based on the MIP mode information.
[0220] In an embodiment, the syntax element bin string for the MIP mode information may be binarized using a truncation binarization method.
[0221] In an embodiment, the image information may include a sequence parameter set (SPS). The SPS may include MIP available flag information (eg, sps_mip_enabled_flag) related to whether the MIP is available.
[0222] In an embodiment, the reduced boundary samples may be derived by downsampling reference samples (boundary samples) adjacent to the current block. The MIP samples may be generated based on the product between the reduced boundary samples and a matrix.
[0223] In an embodiment, the encoding device may perform upsampling of MIP samples and may generate prediction samples based on the upsampled MIP samples. That is, the prediction samples may be generated based on the upsampled MIP samples.
[0224] In an embodiment, the height of the current block may be greater than four times the width of the current block.
[0225] In an embodiment, the width of the current block may be greater than four times the height of the current block.
[0226] In an embodiment, the size of the current block is 32×4, 4×32, 64×8, 8×64, 64×4, 4×64, 128×4, 128×8, 128×16, 4×128, 8×128, or 16×128.
[0227] In an embodiment, the MIP matrix may be derived based on three matrix sets classified according to the size of the current block, and / or each of the three matrix sets may include a plurality of matrices.
[0228] Figure 13 and Figure 14 An example of a video / image decoding method and related components according to an embodiment of this document is schematically illustrated.
[0229] Figure 13 The method disclosed in Figure 3 or Figure 14 Specifically, for example, Figure 13 The S1300 can be made by Figure 14 The entropy decoder 310 of the decoding device performs, Figure 13 S1310 and S1320 may be performed by the residual processor 320 of the decoding device. Figure 13 The S1330 and S1340 can be made by Figure 14 The predictor 330 of the decoding device performs, and Figure 13 The S1350 can be made by Figure 14 The decoding device is executed by the adder 340. Figure 13 The methods disclosed in may include the above-mentioned embodiments in this document.
[0230] Reference Figure 13 , the decoding device can obtain (receive) image information including residual information and prediction related information through the bitstream (S1300). The prediction related information may include information about MIP. For example, the decoding device can obtain intra-frame MIP flag information by parsing or decoding the bitstream. Here, the bitstream can be referred to as coded (image) information.
[0231] According to an embodiment of this document, the image / video information may include various information. For example, the image / video information may include the information disclosed in at least one of Tables 1 to 3 described above.
[0232] The decoding device may derive transform coefficients (S1310). Specifically, the decoding device may derive quantized transform coefficients based on residual information. The quantized transform coefficients may have a one-dimensional vector form based on a coefficient scanning order. The decoding device may derive the transform coefficients based on a dequantization process for the quantized transform coefficients.
[0233] The decoding device may generate residual samples (S1320). The decoding device may derive the residual samples based on the transform coefficients. The decoding device may generate the residual samples based on an inverse transform process on the transform coefficients.
[0234] The decoding apparatus may derive an intra prediction mode for the current block (S1330).The decoding apparatus may derive the intra prediction mode based on prediction mode information among prediction related information included in the image information.
[0235] The decoding device may generate prediction samples for the current block (S1340). The decoding device may generate intra prediction samples based on an intra prediction mode. The decoding device may generate prediction samples based on neighboring reference samples in a current picture including the current block.
[0236] The decoding device may generate a reconstructed sample for the current block (S1350). The reconstructed sample may be generated based on the predicted sample and the residual sample. The decoding device may directly use the predicted sample as the reconstructed sample according to the prediction mode, or may generate the reconstructed sample by adding the residual sample to the predicted sample.
[0237] In an embodiment, a MIP matrix (MIP weight matrix) for a MIP may be derived based on the width and / or height of the current block.
[0238] In an embodiment, MIP samples for the current block may be generated based on a MIP matrix.
[0239] In an embodiment, prediction samples for the current block may be generated based on the MIP samples.
[0240] In an embodiment, the image information may include MIP mode information, and an MIP matrix may be derived based on the MIP mode information.
[0241] In an embodiment, the syntax element bin string for the MIP mode information may be binarized using a truncation binarization method.
[0242] In an embodiment, the image information may include a sequence parameter set (SPS). The SPS may include MIP available flag information (eg, sps_mip_enabled_flag) related to whether the MIP is available.
[0243] In an embodiment, the reduced boundary samples may be derived by downsampling reference samples (boundary samples) adjacent to the current block. The MIP samples may be generated based on the product between the reduced boundary samples and a matrix.
[0244] In an embodiment, the decoding device may perform upsampling of the MIP samples. The prediction samples may be generated based on the upsampled MIP samples. In other words, the prediction samples may be generated based on the upsampled MIP samples.
[0245] In an embodiment, the height of the current block may be greater than four times the width of the current block.
[0246] In an embodiment, the width of the current block may be greater than four times the height of the current block.
[0247] In an embodiment, the size of the current block is 32×4, 4×32, 64×8, 8×64, 64×4, 4×64, 128×4, 128×8, 128×16, 4×128, 8×128, or 16×128.
[0248] In an embodiment, the MIP matrix may be derived based on three matrix sets classified according to the size of the current block, and / or each of the three matrix sets may include a plurality of matrices.
[0249] In the case where there are residual samples for the current block, the decoding device may receive information about the residual for the current block. The information about the residual may include transform coefficients for the residual samples. The decoding device may derive residual samples (or residual sample arrays) for the current block based on the residual information. Specifically, the decoding device may derive quantized transform coefficients based on the residual information. The quantized transform coefficients may have a one-dimensional vector form based on a coefficient scanning order. The decoding device may derive the transform coefficients based on a dequantization process for the quantized transform coefficients. The decoding device may derive the residual samples based on the transform coefficients.
[0250] The decoding device may generate reconstructed samples based on the (intra-frame) prediction samples and the residual samples, and may derive a reconstructed block or a reconstructed picture based on the reconstructed samples. Specifically, the decoding device may generate reconstructed samples based on the sum of the (intra-frame) prediction samples and the residual samples. Thereafter, as described above, if necessary, the decoding device may apply loop filtering processing (e.g., deblocking filtering and / or SAO processing) to the reconstructed picture to improve subjective / objective picture quality.
[0251] For example, the decoding device can obtain image information including all or some of the above information (or syntax elements) by decoding the bit stream or the encoded information. In addition, the bit stream or the encoded information can be stored in a computer-readable storage medium, or the above decoding method can be executed.
[0252] In the above-described embodiments, the methods are described based on a flow chart having a series of steps or boxes. The present disclosure is not limited to the order of the above-described steps or boxes. Some steps or boxes may occur simultaneously with other steps or boxes as described above or in an order different from that of other steps or boxes as described above. In addition, it will be understood by those skilled in the art that the steps shown in the above-described flow chart are not exclusive and may include additional steps or may delete one or more steps in the flow chart without affecting the scope of this document.
[0253] The method according to the above-mentioned embodiment of this document can be implemented in the form of software, and the encoding device and / or decoding device according to this document can be included in an image processing device such as a TV, a computer, a smart phone, a set-top box, and a display device.
[0254] When the embodiments in this document are implemented in software, the above methods can be implemented as modules (processing, functions, etc.) that perform the above functions. The modules can be stored in a memory and executed by a processor. The memory can be inside or outside the processor and can be connected to the processor by various well-known means. The processor may include an application-specific integrated circuit (ASIC), other chipsets, logic circuits, and / or data processing devices. The memory may include a read-only memory (ROM), a random access memory (RAM), flash memory, a memory card, a storage medium, and / or other storage devices. In other words, the embodiments described in this document can be implemented and executed on a processor, a microprocessor, a controller, or a chip. For example, the functional units shown in each of the accompanying drawings can be implemented and executed on a computer, a processor, a microprocessor, a controller, or a chip. In this case, information about instructions or algorithms for the implementation can be stored in a digital storage medium.
[0255] In addition, the decoding device and encoding device to which this document is applied may be included in multimedia broadcast transmission / reception devices, mobile communication terminals, home theater video devices, digital theater video devices, surveillance cameras, video chat devices, real-time communication devices such as video communication, mobile streaming devices, storage media, cameras, VoD service providing devices, over-the-top (OTT) video devices, Internet streaming service providing devices, three-dimensional (3D) video devices, teleconferencing video devices, transportation user devices (i.e., vehicle-mounted user devices, aircraft user devices, ship user devices, etc.), and medical video devices, and may be used to process video signals and data signals. For example, over-the-top (OTT) video devices may include game consoles, Blu-ray players, Internet-accessible televisions, home theater systems, smart phones, tablet computers, digital video recorders (DVRs), etc.
[0256] In addition, the processing method of applying this document can be generated in the form of a program executed by a computer and can be stored in a computer-readable recording medium. Multimedia data having a data structure according to the present disclosure can also be stored in a computer-readable recording medium. Computer-readable recording media include all kinds of storage devices that store data readable by a computer system. For example, computer-readable recording media may include BD, universal serial bus (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, magnetic tape, floppy disk and optical data storage device. In addition, computer-readable recording media include media implemented in the form of carrier waves (i.e., transmission over the Internet). In addition, the bit stream generated by the encoding method can be stored in a computer-readable recording medium or can be sent through a wired or wireless communication network.
[0257] In addition, the embodiments of this document can be implemented using a computer program product according to the program code, and the program code can be executed in a computer according to the embodiments of this document. The program code can be stored on a computer-readable carrier.
[0258] Figure 15 An example of a content streaming system to which the embodiments disclosed in this document can be applied is shown.
[0259] Reference Figure 15 A content streaming system to which embodiments of this document are applied may generally include an encoding server, a streaming server, a web server, a media storage device, a user device, and a multimedia input device.
[0260] The encoding server compresses the content input from the multimedia input device (e.g., a smartphone, a camera, a camcorder, etc.) into digital data to generate a bitstream, and transmits the bitstream to the streaming server. As another example, when the multimedia input device such as a smartphone, a camera, a camcorder, etc. directly generates the bitstream, the encoding server can be omitted.
[0261] A bitstream may be generated by applying the encoding method or the bitstream generating method of the embodiment of the present disclosure, and the streaming server may temporarily store the bitstream in a process of transmitting or receiving the bitstream.
[0262] The streaming server sends multimedia data to user devices via a web server based on user requests. The web server acts as a medium for notifying users of services. When a user requests a desired service from the web server, the web server passes the request to the streaming server, and the streaming server sends the multimedia data to the user. In this case, the content streaming system may include a separate control server. In this case, the control server is used to control commands and responses between devices in the content streaming system.
[0263] The streaming server can receive content from a media storage device and / or an encoding server. For example, when receiving content from the encoding server, the content can be received in real time. In this case, in order to provide a smooth streaming service, the streaming server can store the bitstream for a predetermined time.
[0264] Examples of user devices may include mobile phones, smart phones, laptop computers, digital broadcast terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation devices, tablet PCs, tablet PCs, ultrabooks, wearable devices (e.g., smart watches, smart glasses, head-mounted displays), digital TVs, desktop computers, digital signage, etc. Each server in the content streaming system may be operated as a distributed server, and in this case, data received from each server may be distributed.
[0265] Each server in the content streaming system may be operated as a distributed server, and in this case, data received from each server may be processed in a distributed manner.
[0266] The claims described herein may be combined in various ways. For example, the technical features of the method claims of this document may be combined and implemented as a device, and the technical features of the device claims of this document may be combined and implemented as a method. Furthermore, the technical features of the method claims of this document and the technical features of the device claims of this document may be combined to implement a device, and the technical features of the method claims of this document and the technical features of the device claims of this document may be combined to implement a method.
Claims
1. A decoding method, the decoding method comprising the following steps: Obtaining image information including residual information and prediction related information through a bit stream; generating residual samples for a current block based on the residual information; generating a prediction sample for the current block based on the prediction related information; as well as generating a reconstructed sample for the current block based on the predicted sample and the residual sample, The image information includes flag information related to whether the intra prediction mode type for the current block is a matrix-based intra prediction MIP, wherein for the current block having a size equal to 64×8, the flag information related to whether the intra prediction mode type for the current block is the MIP is included in the image information, wherein, based on the flag information, the intra prediction mode type for the current block is determined as the MIP, The value of the flag information being equal to 1 is associated with indicating that the intra-frame prediction mode type for the current block is the MIP, and the value of the flag information being equal to 0 is associated with indicating that the intra-frame prediction mode type for the current block is not the MIP, wherein, based on the value of the flag information being equal to 1, the image information includes MIP mode information, wherein the MIP mode information is related to a MIP mode applied to the current block and the MIP mode is used to derive a MIP matrix for the current block, wherein the MIP matrix is derived based on (i) the width and height of the current block for the MIP and (ii) the MIP mode information, and Wherein, the MIP samples for the current block are generated based on the MIP matrix.
2. A coding method, the coding method comprising the following steps: determining whether to apply a matrix-based intra prediction MIP to a current block; generating a prediction sample for the current block based on determining to apply the MIP to the current block; generating prediction related information based on determining to apply the MIP to the current block; generating residual samples for a current block based on the prediction samples; generating residual information based on the residual samples; as well as encoding the image information including the prediction related information and the residual information, wherein the prediction related information includes flag information, wherein the flag information is related to whether the intra prediction mode type for the current block is the MIP, wherein for the current block having a size equal to 64×8, the flag information related to whether the intra prediction mode type for the current block is the MIP is included in the image information, Wherein, determining whether the intra prediction mode type for the current block is the MIP based on the flag information, The value of the flag information being equal to 1 is associated with indicating that the intra-frame prediction mode type for the current block is the MIP, and the value of the flag information being equal to 0 is associated with indicating that the intra-frame prediction mode type for the current block is not the MIP, wherein, based on the value of the flag information being equal to 1, the image information includes MIP mode information, wherein the MIP mode information is related to a MIP mode applied to the current block and the MIP mode is used to derive a MIP matrix for the current block, wherein the MIP matrix is derived based on (i) the width and height of the current block and (ii) the MIP mode information, and Wherein, the MIP samples for the current block are generated based on the MIP matrix.
3. A method for transmitting data for an image, the method comprising the following steps: Obtaining a bitstream for an image, wherein the bitstream is generated based on the following operations: determining whether to apply a matrix-based intra prediction MIP to a current block, generating a prediction sample for the current block based on determining to apply the MIP to the current block, generating prediction related information based on determining to apply the MIP to the current block, generating a residual sample for the current block based on the prediction sample, generating residual information based on the residual sample, and encoding image information including the prediction related information and the residual information; and sending data comprising said bit stream, wherein the prediction related information includes flag information, wherein the flag information is related to whether the intra prediction mode type for the current block is the MIP, wherein for the current block having a size equal to 64×8, the flag information related to whether the intra prediction mode type for the current block is the MIP is included in the image information, Wherein, determining whether the intra prediction mode type for the current block is the MIP based on the flag information, The value of the flag information being equal to 1 is associated with indicating that the intra-frame prediction mode type for the current block is the MIP, and the value of the flag information being equal to 0 is associated with indicating that the intra-frame prediction mode type for the current block is not the MIP, wherein, based on the value of the flag information being equal to 1, the image information includes MIP mode information, wherein the MIP mode information is related to a MIP mode applied to the current block and the MIP mode is used to derive a MIP matrix for the current block, wherein the MIP matrix is derived based on (i) the width and height of the current block for the MIP and (ii) the MIP mode information, and Wherein, the MIP samples for the current block are generated based on the MIP matrix.