Image encoding / decoding method and device performing intra prediction, and method for transmitting bitstream
By using intra prediction technology in image encoding/decoding methods and equipment, the intra prediction mode is derived for staining blocks, and the problem of difficult to effectively compress high-resolution and high-quality images is solved, and more efficient image encoding and decoding is achieved.
Patent Information
- Application Number
- JP2023215983
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-03-14
- Filing Date
- 2023-12-21
- Publication Date
- 2025-05-12
- Estimated Expiration
- 2040-03-13
AI Technical Summary
The prior art is difficult to effectively compress high-resolution, high-quality images, resulting in increased transmission and storage costs.
By using intra prediction technology in image encoding/decoding methods and devices, especially deriveing the intra prediction mode for stained blocks, deriving based on the intra prediction mode or the default intra prediction mode of the corresponding gray block, and generating the prediction block of the stained block.
Improve image encoding/decoding efficiency, reduce transmission and storage costs, while ensuring high resolution and high-quality images transmission and storage.
Smart Images

Figure 0007675166000005 
Figure 0007675166000006 
Figure 0007675166000007
Abstract
Description
[Technical field]
[0001] The present disclosure relates to an image encoding / decoding method and apparatus, and more particularly to a method and apparatus for encoding / decoding an image using intra prediction, and a method for transmitting a bitstream generated by the image encoding method / apparatus of the present disclosure. [Background technology]
[0002] Recently, the demand for high-resolution, high-quality images, for example, HD (High Definition) images and UHD (Ultra High Definition) images, is increasing in various fields. As the resolution and quality of image data increases, the amount of information or bits transmitted increases relatively compared to conventional image data. The increase in the amount of information or bits transmitted leads to an increase in transmission costs (expenses) and storage costs (storage).
[0003] This calls for highly efficient image compression techniques for effectively transmitting, storing, and reproducing high-resolution, high-quality image information. Summary of the Invention [Problem to be solved by the invention]
[0004] An object of the present disclosure is to provide an image encoding / decoding method and apparatus with improved encoding / decoding efficiency.
[0005] Another object of the present disclosure is to provide a method and apparatus for encoding / decoding an image using intra prediction.
[0006] The present disclosure also aims to provide an image encoding / decoding method and apparatus that derives the intra prediction mode of a chroma block based on the intra prediction mode of a corresponding luma block or a default intra prediction mode, and then performs intra prediction on the chroma block.
[0007] Another object of the present disclosure is to provide a method for transmitting a bitstream generated by the image encoding method or apparatus according to the present disclosure.
[0008] Another object of the present disclosure is to provide a recording medium storing a bitstream generated by the image coding method or apparatus according to the present disclosure.
[0009] Another object of the present disclosure is to provide a recording medium storing a bitstream that is received by the image decoding device according to the present disclosure, decoded, and used to restore an image.
[0010] The technical problems to be solved by the present disclosure are not limited to the above-mentioned technical problems, and other technical problems not described above will be clearly understood by a person having ordinary skill in the art to which the present disclosure pertains from the following description. [Means for solving the problem]
[0011] An image decoding method according to one aspect of the present disclosure includes a step of determining whether intra prediction is applied to a current chroma block based on information regarding prediction of the current chroma block; if intra prediction is applied to the current chroma block, a step of deriving an intra prediction mode of the current chroma block based on an intra prediction mode of a corresponding luma block corresponding to the current chroma block and intra chroma prediction mode information of the current chroma block; and a step of generating a predictive block for the current chroma block by performing intra prediction based on the intra prediction mode of the current chroma block. If there is no intra prediction mode of the corresponding luma block, the intra prediction mode of the current chroma block can be derived based on a default intra prediction mode.
[0012] In the image decoding method according to the present disclosure, deriving an intra prediction mode for a current chroma block may comprise determining a prediction method for a given position of a corresponding luma block.
[0013] In the image decoding method according to the present disclosure, if the prediction method for a predetermined position of the corresponding luma block is intra prediction, the intra prediction mode of the current chroma block is derived based on the intra prediction mode of the predetermined position of the corresponding luma block, and if the prediction method for the predetermined position of the corresponding luma block is not intra prediction, the intra prediction mode of the current chroma block can be derived based on a default intra prediction mode.
[0014] In the image decoding method according to the present disclosure, when the prediction method for a given position of a corresponding luma block is Intra Block Copy (IBC) prediction, the intra prediction mode of a current chroma block can be derived based on a default intra prediction mode.
[0015] In the image decoding method according to the present disclosure, the predetermined position can be the center position of the corresponding luma block.
[0016] In the image decoding method according to the present disclosure, the default intra prediction mode can be the Planar mode or the DC mode.
[0017] In the image decoding method according to the present disclosure, the tree structure of the current chroma block may be a dual tree (DUAL_TREE) structure.
[0018] In the image decoding method according to the present disclosure, if the intra prediction mode information of the current chroma block indicates DM (Direct Mode) mode and an intra prediction mode of the corresponding luma block exists, the intra prediction mode of the current chroma block is derived from the intra prediction mode of the corresponding luma block, and if the intra prediction mode information of the current chroma block indicates DM mode and an intra prediction mode of the corresponding luma block does not exist, the intra prediction mode of the current chroma block can be derived from the default intra prediction mode.
[0019] An image decoding device according to another aspect of the present disclosure has a memory and at least one processor, where the at least one processor determines whether intra prediction is applied to a current chroma block based on information regarding prediction of the current chroma block, and if intra prediction is applied to the current chroma block, derives an intra prediction mode for the current chroma block based on an intra prediction mode of a corresponding luma block corresponding to the current chroma block and intra chroma prediction mode information of the current chroma block, and generates a prediction block for the current chroma block by performing intra prediction based on the intra prediction mode of the current chroma block, and if there is no intra prediction mode for the corresponding luma block, the intra prediction mode of the current chroma block can be derived based on a default intra prediction mode.
[0020] An image encoding method according to another aspect of the present disclosure includes a step of determining whether intra prediction is applied to a current chroma block; if intra prediction is applied to the current chroma block, a step of deriving an intra prediction mode of the current chroma block based on an intra prediction mode of a corresponding luma block corresponding to the current chroma block; a step of generating a predictive block for the current chroma block by performing intra prediction based on the intra prediction mode of the current chroma block; and a step of encoding the intra prediction mode of the current chroma block based on the intra prediction mode of the corresponding luma block, where if there is no intra prediction mode of the corresponding luma block, the intra prediction mode of the current chroma block can be derived based on a default intra prediction mode.
[0021] In the image coding method according to the present disclosure, deriving an intra prediction mode for a current chroma block may comprise determining a prediction method for a given position of a corresponding luma block.
[0022] In the image encoding method according to the present disclosure, if the prediction method for a predetermined position of the corresponding luma block is intra prediction, the intra prediction mode of the current chroma block is derived based on the intra prediction mode of the predetermined position of the corresponding luma block, and if the prediction method for the predetermined position of the corresponding luma block is not intra prediction, the intra prediction mode of the current chroma block can be derived based on a default intra prediction mode.
[0023] In the image encoding method according to the present disclosure, the predetermined position can be the center position of the corresponding luma block.
[0024] In the image encoding method according to the present disclosure, the default intra prediction mode can be the Planar mode or the DC mode.
[0025] A transmission method according to another aspect of the present disclosure can transmit a bitstream generated by the image encoding device or image encoding method of the present disclosure.
[0026] A computer-readable recording medium according to another aspect of the present disclosure can store a bitstream generated by the image encoding method or image encoding device of the present disclosure.
[0027] The features described above in the brief summary of the present disclosure are merely exemplary embodiments of the detailed description of the present disclosure that follows and are not intended to limit the scope of the present disclosure. Effect of the Invention
[0028] According to the present disclosure, an image encoding / decoding method and device with improved encoding / decoding efficiency can be provided.
[0029] Furthermore, according to the present disclosure, a method and apparatus for encoding / decoding an image using intra prediction can be provided.
[0030] In addition, according to the present disclosure, an image encoding / decoding method and apparatus can be provided that derives an intra prediction mode of a chroma block based on the intra prediction mode of a corresponding luma block or a default intra prediction mode, and then performs intra prediction on the chroma block.
[0031] According to the present disclosure, there may also be provided a method for transmitting a bitstream generated by the image encoding method or apparatus according to the present disclosure.
[0032] Furthermore, according to the present disclosure, a recording medium can be provided that stores a bitstream generated by the image encoding method or apparatus according to the present disclosure.
[0033] Furthermore, according to the present disclosure, it is possible to provide a recording medium that stores a bitstream that is received by the image decoding device according to the present disclosure, decoded, and used to restore an image.
[0034] The effects obtained by the present disclosure are not limited to the effects described above, and other effects not described above will be clearly understood by those having ordinary skill in the art to which the present disclosure pertains from the following description. [Brief description of the drawings]
[0035] [Figure 1] FIG. 1 is a diagram illustrating a schematic diagram of a video coding system to which embodiments according to the present disclosure can be applied. [Diagram 2] 1 is a diagram illustrating an image encoding device to which an embodiment according to the present disclosure can be applied; [Diagram 3] 1 is a diagram illustrating an image decoding device to which an embodiment of the present disclosure can be applied. [Figure 4] FIG. 13 is a diagram showing block division types according to a multi-type tree structure. [Diagram 5]FIG. 1 illustrates an exemplary signaling mechanism for partitioning information of a quadtree with nested multi-type tree structure according to the present disclosure. [Figure 6] 1 is a flowchart illustrating an intra-prediction based video / image coding method. [Figure 7] 13 is a diagram illustrating an example configuration of an intra prediction unit 185 according to the present disclosure. [Figure 8] 1 is a flowchart illustrating an intra-prediction based video / image decoding method. [Figure 9] 13 is a diagram illustrating an example configuration of an intra prediction unit 265 according to the present disclosure. [Figure 10] 13 is a flowchart showing an intra-prediction mode signaling procedure in an image encoding device. [Figure 11] 13 is a flowchart showing an intra-prediction mode determination procedure in an image decoding device. [Figure 12] 13 is a flowchart illustrating an intra-prediction mode derivation procedure in more detail. [Figure 13] FIG. 2 is a diagram illustrating intra-prediction directions according to one embodiment of the present disclosure. [Figure 14] FIG. 13 is a diagram illustrating intra-prediction directions according to another embodiment of the present disclosure. [Figure 15] FIG. 13 illustrates predetermined positions for deriving the intra prediction mode of the current chroma block for DM mode. [Figure 16] 1 is a flowchart illustrating a conventional method for deriving an intra-prediction mode for a chroma block based on a corresponding luma block. [Figure 17] 11 is a flow chart illustrating one embodiment of the present disclosure for deriving an intra-prediction mode for a chroma block based on a corresponding luma block. [Figure 18] 11 is a flow chart illustrating another embodiment of the present disclosure for deriving an intra-prediction mode for a chroma block based on a corresponding luma block. [Figure 19]11 is a flow chart illustrating another embodiment of the present disclosure for deriving an intra-prediction mode for a chroma block based on a corresponding luma block. [Figure 20] 11 is a flowchart illustrating one embodiment of the present disclosure for deriving an intra-prediction mode for a current block based on a corresponding block. [Figure 21] 11 is a flowchart illustrating another embodiment of the present disclosure for deriving an intra-prediction mode for a chroma block based on a corresponding luma block and encoding the chroma block. [Figure 22] FIG. 1 illustrates a content streaming system that can be applied to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0036] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The present disclosure will be described in detail below with reference to the accompanying drawings so that those skilled in the art can easily implement the present disclosure. However, the present disclosure may be embodied in various different forms and is not limited to the embodiments described herein.
[0037] In describing the embodiments of the present disclosure, if it is determined that a specific description of a known configuration or function may make the gist of the present disclosure unclear, the detailed description thereof will be omitted. In addition, in the drawings, parts that are not related to the description of the present disclosure are omitted, and similar parts are denoted by similar reference numerals.
[0038] In the present disclosure, when a certain component is "connected," "coupled," or "connected" to another component, this includes not only a direct connection relationship, but also an indirect connection relationship in which another component exists between them. Furthermore, when a certain component is described as "including" or "having" another component, this does not exclude another component, but means that it can further include another component, unless otherwise specified to the contrary.
[0039] In this disclosure, terms such as "first" and "second" are used only for the purpose of distinguishing one component from another component, and do not limit the order or importance of the components unless otherwise specified. Therefore, within the scope of this disclosure, a first component in one embodiment may be called a second component in another embodiment, and similarly, a second component in one embodiment may be called a first component in another embodiment.
[0040] In this disclosure, components that are distinguished from one another are used to clearly describe the characteristics of each component, and do not necessarily mean that the components are separate. In other words, multiple components may be integrated and configured as a single hardware or software unit, or one component may be distributed and configured as multiple hardware or software units. Thus, even if not otherwise stated, such integrated or distributed embodiments are also included in the scope of the present disclosure.
[0041] In the present disclosure, the components described in the various embodiments are not necessarily essential components, and some may be optional components. Therefore, an embodiment consisting of a subset of the components described in one embodiment is also included in the scope of the present disclosure. In addition, an embodiment including other components in addition to the components described in the various embodiments is also included in the scope of the present disclosure.
[0042] The present disclosure relates to encoding and decoding of images, and terms used in this disclosure may have ordinary meanings in the technical field to which the present disclosure belongs, unless they are newly defined in this disclosure.
[0043] In this disclosure, a "picture" generally means a unit indicating any one image in a particular time period, a slice / tile is a coding unit constituting a part of a picture, and one picture can be composed of one or more slices / tiles. Also, a slice / tile can include one or more coding tree units (CTUs).
[0044] In this disclosure, a "pixel" or a "pel" may refer to the smallest unit constituting one picture (or image). Also, a "sample" may be used as a term corresponding to a pixel. A sample may generally indicate a pixel or a pixel value, may indicate only a pixel / pixel value of a luma component, or may indicate only a pixel / pixel value of a chroma component.
[0045] In this disclosure, a "unit" may refer to a basic unit of image processing. A unit may include at least one of a specific region of a picture and information related to the region. A unit may be mixed with terms such as a "sample array," a "block," or an "area," depending on the case. In a general case, an M×N block may include a set (or array) of samples (or sample arrays) or transform coefficients (transform coefficients) consisting of M columns and N rows.
[0046] In this disclosure, a "current block" may refer to any one of a "current coding block," a "current coding unit," a "block to be coded," a "block to be decoded," or a "block to be processed." If prediction is performed, a "current block" may refer to a "current predicted block" or a "block to be predicted." If transformation (inverse transformation) / quantization (inverse quantization) is performed, a "current block" may refer to a "current transformed block" or a "block to be transformed." If filtering is performed, a "current block" may refer to a "block to be filtered."
[0047] Also, in this disclosure, a "current block" can mean a block including all luma component blocks and chroma component blocks or a "luma block of a current block," unless explicitly stated as a chroma block. A chroma block of a current block can be explicitly expressed by including an explicit statement of a chroma block, such as a "chroma block" or a "current chroma block."
[0048] In the present disclosure, " / " and "," can be interpreted as "and / or." For example, "A / B" and "A, B" can be interpreted as "A and / or B." Also, "A / B / C" and "A, B, C" can mean "at least one of A, B, and / or C."
[0049] In this disclosure, "or" can be interpreted as "and / or." For example, "A or B" can mean 1) only "A," 2) only "B," or 3) "A and B." Alternatively, in this disclosure, "or" can mean "additionally or alternatively."
[0050] Video Coding System Overview
[0051] FIG. 1 is a diagram illustrating a video coding system in accordance with this disclosure.
[0052] A video coding system according to an embodiment may include an encoding device 10 and a decoding device 20. The encoding device 10 may transmit encoded video and / or image information or data to the decoding device 20 in a file or streaming format via a digital storage medium or a network.
[0053] The encoding device 10 according to an embodiment may include a video source generating unit 11, an encoding unit 12, and a transmitting unit 13. The decoding device 20 according to an embodiment may include a receiving unit 21, a decoding unit 22, and a rendering unit 23. The encoding unit 12 may be referred to as a video / image encoding unit, and the decoding unit 22 may be referred to as a video / image decoding unit. The transmitting unit 13 may be included in the encoding unit 12. The receiving unit 21 may be included in the decoding unit 22. The rendering unit 23 may also include a display unit, which may be configured as a separate device or an external component.
[0054] The video source generating unit 11 can obtain the video / images through a video / image capture, synthesis or generation process, etc. The video source generating unit 11 can include a video / image capture device and / or a video / image generation device. The video / image capture device can include, for example, one or more cameras, a video / image archive containing previously captured videos / images, etc. The video / image generation device can include, for example, a computer, a tablet, a smartphone, etc., and can (electronically) generate the video / images. For example, a virtual video / image can be generated through a computer, etc., in which case the video / image capture process can be replaced by a process in which the associated data is generated.
[0055] The encoding unit 12 can encode the input video / image. The encoding unit 12 can perform a series of steps such as prediction, transformation, quantization, etc. for compression and encoding efficiency. The encoding unit 12 can output the encoded data (encoded video / image information) in a bitstream format.
[0056] The transmitting unit 13 may transmit the encoded video / image information or data output in a bitstream format to the receiving unit 21 of the decoding device 20 via a digital storage medium or a network in a file or streaming format. The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitting unit 13 may include elements for generating a media file through a predetermined file format and may include elements for transmitting via a broadcasting / communication network. The receiving unit 21 may extract / receive the bitstream from the storage medium or network and transmit it to the decoding unit 22.
[0057] The decoding unit 22 can decode the video / image by performing a series of steps such as inverse quantization, inverse transformation, and prediction corresponding to the operations of the encoding unit 12.
[0058] The rendering unit 23 can render the decoded video / images. The rendered video / images can be displayed via a display unit.
[0059] Overview of the image encoding device
[0060] FIG. 2 is a diagram illustrating an image encoding device to which the embodiments of the present disclosure can be applied.
[0061] As shown in Fig. 2, the image encoding device 100 may include an image division unit 110, a subtraction unit 115, a transformation unit 120, a quantization unit 130, an inverse quantization unit 140, an inverse transformation unit 150, an addition unit 155, a filtering unit 160, a memory 170, an inter prediction unit 180, an intra prediction unit 185, and an entropy encoding unit 190. The inter prediction unit 180 and the intra prediction unit 185 may be collectively referred to as a "prediction unit." The transformation unit 120, the quantization unit 130, the inverse quantization unit 140, and the inverse transformation unit 150 may be included in a residual processing unit. The residual processing unit may further include a subtraction unit 115.
[0062] All or at least some of the components constituting the image encoding device 100 may be realized by a single hardware component (e.g., an encoder or a processor) depending on the embodiment. Also, the memory 170 may include a DPB (Decoded Picture Buffer) and may be realized by a digital storage medium.
[0063] The image division unit 110 may divide an input image (or picture, frame) input to the image encoding device 100 into one or more processing units. As an example, the processing unit may be called a coding unit (CU). The coding units may be obtained by recursively dividing a coding tree unit (CTU) or a largest coding unit (LCU) according to a quad-tree / binary-tree / ternary-tree (QT / BT / TT) structure. For example, one coding unit may be divided into a plurality of coding units of a deeper depth based on a quad-tree structure, a binary tree structure, and / or a ternary tree structure. For dividing the coding units, a quad-tree structure may be applied first, and a binary tree structure and / or a ternary tree structure may be applied later. An encoding procedure according to the present disclosure may be performed based on a final coding unit that is not further divided. The maximum coding unit may be used as the final coding unit, and a coding unit of a lower depth obtained by dividing the maximum coding unit may be used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and / or restoration, which will be described later. As another example, a processing unit of the coding procedure may be a prediction unit (PU) or a transform unit (TU). The prediction unit and the transform unit may be divided or partitioned from the final coding unit, respectively. The prediction unit may be a unit of sample prediction, and the transform unit may be a unit for deriving (inducing) transform coefficients and / or a unit for deriving a residual signal from the transform coefficients.
[0064] The prediction unit (inter prediction unit 180 or intra prediction unit 185) may perform prediction on a block to be processed (current block) and generate a predicted block including prediction samples for the current block. The prediction unit may determine whether intra prediction or inter prediction is applied in units of the current block or CU. The prediction unit may generate various information related to prediction of the current block and transmit it to the entropy encoding unit 190. The information related to the prediction may be encoded by the entropy encoding unit 190 and output in a bitstream format.
[0065] The intra prediction unit 185 may predict the current block by referring to samples in the current picture. The referenced samples may be located in the neighborhood of the current block or may be located away from the current block according to the intra prediction mode and / or intra prediction technique. The intra prediction mode may include a plurality of non-directional modes and a plurality of directional modes. The non-directional mode may include, for example, a DC mode and a planar mode. The directional mode may include, for example, 33 directional prediction modes or 65 directional prediction modes depending on the degree of fineness of the prediction direction. However, this is merely an example, and more or less directional prediction modes may be used based on the settings. The intra prediction unit 185 may also determine the prediction mode to be applied to the current block using the prediction modes applied to the neighboring blocks.
[0066] The inter prediction unit 180 may derive a predicted block for the current block based on a reference block (reference sample array) identified by a motion vector on a reference picture. In this case, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between a neighboring block and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring block may include a spatial neighboring block present in the current picture and a temporal neighboring block present in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different from each other. The temporal neighboring block may be called a collocated reference block, a collocated CU (colCU), or the like. The reference picture including the temporal neighboring block may be called a collocated picture (colPic). For example, the inter prediction unit 180 may generate information indicating which candidate is used to construct a motion information candidate list based on neighboring blocks and derive a motion vector and / or a reference picture index of the current block. Inter prediction may be performed based on various prediction modes, and for example, in the case of skip mode and merge mode, the inter prediction unit 180 may use the motion information of the neighboring blocks as the motion information of the current block. In the case of skip mode, unlike the merge mode, a residual signal may not be transmitted.In the case of a Motion Vector Prediction (MVP) mode, the motion vector of the current block can be signaled by using the motion vector of the neighboring block as a motion vector predictor and encoding a motion vector difference and an indicator for the motion vector predictor. The motion vector difference can mean the difference between the motion vector of the current block and the motion vector predictor.
[0067] The prediction unit may generate a prediction signal based on various prediction methods and / or prediction techniques, which will be described later. For example, the prediction unit may apply intra prediction or inter prediction for prediction of the current block, and may simultaneously apply intra prediction and inter prediction. A prediction method that simultaneously applies intra prediction and inter prediction for prediction of the current block may be called CIIP (Combined Inter and Intra Prediction). The prediction unit may also perform intra block copy (IBC) for prediction of the current block. Intra block copy can be used for content image / video coding such as games, for example, as SCC (Screen Content Coding). IBC is a method of predicting a current block using an already restored reference block in a current picture that is located a predetermined distance away from the current block. When IBC is applied, the position of the reference block in the current picture may be coded as a vector (block vector) corresponding to the predetermined distance. IBC is basically performed in the current picture, but may be performed similarly to inter prediction in that a reference block is derived in the current picture. That is, the IBC may use at least one of the inter prediction techniques described in this disclosure.
[0068] The prediction signal generated by the prediction unit may be used to generate a restored signal or may be used to generate a residual signal. The subtraction unit 115 may subtract the prediction signal (predicted block, prediction sample array) output from the prediction unit from the input image signal (original block, original sample array) to generate a residual signal (residual block, residual sample array). The generated residual signal may be transmitted to the conversion unit 120.
[0069] The transform unit 120 may 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-Loeve transform (KLT), a graph-based transform (GBT), and a conditionally non-linear transform (CNT). Here, the GBT refers to a transform obtained from a graph when the relationship information between pixels is expressed as a graph. The CNT refers to a transform obtained based on a predicted signal generated using all previously reconstructed pixels. The transform process may be applied to pixel blocks having the same square size, or may be applied to blocks of variable size that are not square.
[0070] The quantization unit 130 may quantize the transform coefficients and transmit the quantized transform coefficients to the entropy coding unit 190. The entropy coding unit 190 may code the quantized signal (information on the quantized transform coefficients) and output the coded signal in a bitstream format. The information on the quantized transform coefficients may be called residual information. The quantization unit 130 may rearrange the quantized transform coefficients in a block format in a one-dimensional vector format based on a coefficient scan order, and may generate information on the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector format.
[0071] The entropy coding unit 190 may perform various coding methods, such as exponential Golomb, CAVLC (Context-Adaptive Variable Length Coding), and CABAC (Context-Adaptive Binary Arithmetic Coding). The entropy coding unit 190 may also code information required for video / image restoration (e.g., values of syntax elements, etc.) together or separately in addition to the quantized transform coefficients. The coded information (e.g., coded video / image information) may be transmitted or stored in a network abstraction layer (NAL) unit unit in a bitstream format. The video / image information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). The video / image information may further include general constraint information. The signaling information, transmitted information and / or syntax elements referred to in this disclosure may be encoded via the above-mentioned encoding procedures and included in the bitstream.
[0072] The bitstream may be transmitted via a network or may be stored in a digital storage medium. Here, the network may include a broadcast network and / or a communication network, and the digital storage medium may include various storage media such as a USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmission unit (not shown) for transmitting the signal output from the entropy encoding unit 190 and / or a storage unit (not shown) for storing the signal may be provided as an internal / external element of the image encoding device 100, or the transmission unit may be provided as a component of the entropy encoding unit 190.
[0073] The quantized transform coefficients output from the quantizer 130 may be used to generate a residual signal. For example, the quantized transform coefficients may be subjected to inverse quantization and inverse transformation via the inverse quantizer 140 and the inverse transformer 150 to reconstruct the residual signal (residual blocks or samples).
[0074] The adder 155 may generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the reconstructed residual signal to a prediction signal output from the inter prediction unit 180 or the intra prediction unit 185. When there is no residual for the current block, such as when a skip mode is applied, a predicted block may be used as a reconstructed block. The adder 155 may be referred to as a reconstruction unit or a reconstructed block generator. The generated reconstructed signal may be used for intra prediction of the next current block in the current picture, and may also be used for inter prediction of the next picture after filtering as described below.
[0075] The filtering unit 160 may apply filtering to the reconstructed signal to improve subjective / objective image quality. For example, the filtering unit 160 may apply various filtering methods to the reconstructed picture to generate a modified reconstructed picture, and may store the modified reconstructed picture in the memory 170, specifically, in the DPB of the memory 170. The various filtering methods may include, for example, deblock filtering, sample adaptive offset, an adaptive loop filter, a bilateral filter, and the like. The filtering unit 160 may generate various information related to filtering, as will be described later in the description of each filtering method, and transmit the information to the entropy encoding unit 190. The information related to filtering may be coded by the entropy encoding unit 190 and output in a bitstream format.
[0076] The modified reconstructed picture transmitted to the memory 170 may be used as a reference picture in the inter prediction unit 180. When inter prediction is applied through this, the image encoding device 100 may avoid a prediction mismatch between the image encoding device 100 and the image decoding device, and may also improve encoding efficiency.
[0077] The DPB in the memory 170 may store a modified reconstructed picture for use as a reference picture in the inter prediction unit 180. The memory 170 may store motion information of a block from which motion information in the current picture is derived (or coded) and / or motion information of an already reconstructed intra-picture block. The stored motion information may be transmitted to the inter prediction unit 180 to be utilized as motion information of a spatial surrounding block or motion information of a temporal surrounding block. The memory 170 may store reconstructed samples of reconstructed blocks in the current picture and transmit them to the intra prediction unit 185.
[0078] Overview of the image decoding device
[0079] FIG. 3 is a diagram illustrating an image decoding device to which an embodiment of the present disclosure can be applied.
[0080] 3, the image decoding device 200 may include an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, an adder unit 235, a filtering unit 240, a memory 250, an inter prediction unit 260, and an intra prediction unit 265. The inter prediction unit 260 and the intra prediction unit 265 may be collectively referred to as a "prediction unit." The inverse quantization unit 220 and the inverse transform unit 230 may be included in a residual processing unit.
[0081] All or at least some of the components constituting the image decoding device 200 may be realized by one hardware component (e.g., a decoder or a processor) depending on the embodiment. Also, the memory 170 may include a DPB and may be realized by a digital storage medium.
[0082] The image decoding device 200, which receives a bitstream including video / image information, can reconstruct an image by executing a process corresponding to the process performed by the image encoding device 100 of Fig. 2. For example, the image decoding device 200 can perform decoding using a processing unit applied in the image encoding device. Thus, the processing unit for decoding can be, for example, a coding unit. The coding unit can be obtained by dividing a coding tree unit or a maximum coding unit. Then, the reconstructed image signal decoded and output via the image decoding device 200 can be reproduced via a reproduction device (not shown).
[0083] The image decoding device 200 may receive a signal output from the image encoding device of FIG. 2 in a bitstream format. The received signal may be decoded via the entropy decoding unit 210. For example, the entropy decoding unit 210 may derive information (e.g., video / image information) required for image restoration (or picture restoration) by parsing the bitstream. The video / image information may further include information on various parameter sets such as an adaptation 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 further include general constraint information. The image decoding device may further use information on the parameter set and / or the general constraint information to decode an image. The signaling information, received information, and / or syntax elements referred to in the present disclosure may be obtained from the bitstream by being decoded via the decoding procedure. For example, the entropy decoding unit 210 may decode information in a bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output values of syntax elements required for image restoration and quantized values of transform coefficients related to residuals. More specifically, the CABAC entropy decoding method may receive bins corresponding to each syntax element from the bitstream, determine a context model using syntax element information to be decoded and decoded information of neighboring blocks and a block to be decoded, or information of symbols / bins decoded in a previous step, predict the occurrence probability of the bins based on the determined context model, and perform arithmetic decoding of the bins to generate symbols corresponding to the values of each syntax element. In this case, after determining the context model, the CABAC entropy decoding method may update the context model using information of the decoded symbol / bin for the context model of the next symbol / bin.Among the information decoded by the entropy decoding unit 210, information related to prediction is provided to a prediction unit (inter prediction unit 260 and intra prediction unit 265), and residual values entropy-decoded by the entropy decoding unit 210, i.e., quantized transform coefficients and related parameter information, may be input to the inverse quantization unit 220. Also, among the information decoded by the entropy decoding unit 210, information related to filtering may be provided to the filtering unit 240. Meanwhile, a receiving unit (not shown) for receiving a signal output from the image encoding device may be further provided as an internal / external element of the image decoding device 200, or the receiving unit may be provided as a component of the entropy decoding unit 210.
[0084] Meanwhile, the image decoding device according to the present disclosure may be called a video / image / picture decoding device. The image decoding device may also include an information decoder (video / image / picture information decoder) and / or a sample decoder (video / image / picture sample decoder). The information decoder may include an entropy decoder 210, and the sample decoder may include at least one of an inverse quantizer 220, an inverse transformer 230, an adder 235, a filtering unit 240, a memory 250, an inter-predictor 260, and an intra-predictor 265.
[0085] The inverse quantization unit 220 may inverse quantize the quantized transform coefficients to output transform coefficients. The inverse quantization unit 220 may rearrange the quantized transform coefficients in a two-dimensional block format. In this case, the rearrangement may be performed based on a coefficient scan order performed in the image encoding device. The inverse quantization unit 220 may perform inverse quantization on the quantized transform coefficients using a quantization parameter (e.g., quantization step size information) to obtain transform coefficients.
[0086] The inverse transform unit 230 can inversely transform the transform coefficients to obtain a residual signal (residual block, residual sample array).
[0087] The prediction unit may perform prediction on a current block and generate a predicted block including a prediction sample for the current block. The prediction unit may determine whether intra prediction or inter prediction is applied to the current block based on the prediction information output from the entropy decoding unit 210, and may determine a specific intra / inter prediction mode (prediction technique).
[0088] The prediction unit can generate a prediction signal based on various prediction methods (techniques) described below, as has been described in the explanation of the prediction unit of the image encoding device 100.
[0089] The intra prediction unit 265 can predict the current block by referring to samples in the current picture. The description of the intra prediction unit 185 can be applied to the intra prediction unit 265 as well.
[0090] The inter prediction unit 260 may derive a predicted block for the current block based on a reference block (reference sample array) identified by a motion vector on a reference picture. In this case, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on correlation of motion information between a neighboring block and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring block may include a spatial neighboring block present in the current picture and a temporal neighboring block present in the reference picture. For example, the inter prediction unit 260 may configure a motion information candidate list based on the neighboring block, and derive a motion vector and / or a reference picture index for the current block based on the received candidate selection information. Inter prediction may be performed based on various prediction modes (techniques), and the prediction information may include information indicating a mode (technique) of inter prediction for the current block.
[0091] The adder 235 may generate a restored signal (restored picture, restored block, restored sample array) by adding the acquired residual signal to a prediction signal (predicted block, predicted sample array) output from a prediction unit (including the inter prediction unit 260 and / or the intra prediction unit 265). When there is no residual for a current block, such as when a skip mode is applied, a predicted block may be used as a restored block. The description of the adder 155 may be similarly applied to the adder 235. The adder 235 may be referred to as a restorer or a restored block generator. The generated restored signal may be used for intra prediction of a next current block in a current picture, and may also be used for inter prediction of a next picture after filtering as described below.
[0092] The filtering unit 240 may apply filtering to the reconstructed signal to improve subjective / objective image quality. For example, the filtering unit 240 may apply various filtering methods to the reconstructed picture to generate a modified reconstructed picture, and may store the modified reconstructed picture in the memory 250, specifically, in the DPB of the memory 250. The various filtering methods may include, for example, deblock filtering, sample adaptive offset, an adaptive loop filter, a bilateral filter, etc.
[0093] The (modified) reconstructed picture stored in the DPB of the memory 250 can be used as a reference picture in the inter prediction unit 260. The memory 250 can store motion information of a block from which motion information in the current picture is derived (or decoded) and / or motion information of a block in an already reconstructed picture. The stored motion information can be transmitted to the inter prediction unit 260 to be utilized as motion information of a spatial surrounding block or motion information of a temporal surrounding block. The memory 250 can store reconstructed samples of reconstructed blocks in the current picture and transmit them to the intra prediction unit 265.
[0094] In this specification, the embodiments described for the filtering unit 160, inter prediction unit 180 and intra prediction unit 185 of the image encoding device 100 can also be similarly or correspondingly applied to the filtering unit 240, inter prediction unit 260 and intra prediction unit 265 of the image decoding device 200, respectively.
[0095] Overview of CTU division
[0096] As mentioned above, a coding unit can be obtained by recursively splitting a coding tree unit (CTU) or a largest coding unit (LCU) by a QT / BT / TT (Quad-Tree / Binary-Tree / Ternary-Tree) structure. For example, a CTU can be first split into a quad-tree structure. Then, the leaf nodes of the quad-tree structure can be further split by a multi-type tree structure.
[0097] Quadtree division means dividing a current CU (or CTU) into four equal parts. By dividing by quadtree, the current CU can be divided into four CUs having the same width and height. If the current CU is not further divided into a quadtree structure, the current CU corresponds to a leaf node of the quadtree structure. The CU corresponding to the leaf node of the quadtree structure is not further divided and can be used as the above-mentioned final coding unit. Alternatively, the CU corresponding to the leaf node of the quadtree structure can be further divided by a multi-type tree structure.
[0098] 4 is a diagram showing the types of division of a block by a multi-type tree structure. Division by a multi-type tree structure can include two divisions by a binary tree structure and two divisions by a ternary tree structure.
[0099] The division into two parts by the binary tree structure may include vertical binary splitting (SPLIT_BT_VER) and horizontal binary splitting (SPLIT_BT_HOR). Vertical binary splitting (SPLIT_BT_VER) refers to a division in which the current CU is divided into two equal parts vertically. As shown in FIG. 4, the vertical bisection can generate two CUs having the same height as the height of the current CU and half the width of the current CU. Horizontal bisection (SPLIT_BT_HOR) refers to a division in which the current CU is divided into two equal parts horizontally. As shown in FIG. 4, the horizontal bisection can generate two CUs having the same height as the height of the current CU and half the width of the current CU.
[0100] The two divisions by the ternary tree structure may include vertical ternary splitting (SPLIT_TT_VER) and horizontal ternary splitting (SPLIT_TT_HOR). The vertical ternary splitting (SPLIT_TT_VER) divides the current CU vertically at a ratio of 1:2:1. As shown in FIG. 4, the vertical ternary splitting can generate two CUs having the same height as the current CU and a width 1 / 4 of the current CU, and a CU having the same height as the current CU and a width half the current CU. The horizontal ternary splitting (SPLIT_TT_HOR) divides the current CU horizontally at a ratio of 1:2:1. As shown in FIG. 4, the horizontal ternary splitting can generate two CUs having a height 1 / 4 of the current CU and a width equal to the current CU, and one CU having a height half the current CU and a width equal to the current CU.
[0101] FIG. 5 is a diagram illustrating a signaling mechanism of partitioning information of a quadtree with nested multi-type tree structure according to the present disclosure.
[0102] Here, the CTU is treated as the root node of the quadtree and is first partitioned into a quadtree structure. Information (e.g., qt_split_flag) indicating whether or not to perform quadtree splitting on the current CU (CTU or quadtree node (QT_node)) can be signaled. For example, if qt_split_flag is a first value (e.g., "1"), the current CU can be split into a quadtree. Also, if qt_split_flag is a second value (e.g., "0"), the current CU is not split into a quadtree and becomes a leaf node (QT_leaf_node) of the quadtree. The leaf nodes of each quadtree can then be further partitioned into a multitype tree structure. That is, the leaf node of the quadtree can become a node (MTT_node) of the multitype tree. In a multi-type tree structure, a first flag (e.g., mtt_split_cu_flag) may be signaled to indicate whether the current node is further partitioned. If the node is further partitioned (e.g., the first flag is 1), a second flag (e.g., mtt_split_cu_vertical_flag) may be signaled to indicate the splitting direction. For example, if the second flag is 1, the splitting direction may be vertical, and if the second flag is 0, the splitting direction may be horizontal. Then, a third flag (e.g., mtt_split_cu_binary_flag) may be signaled to indicate whether the splitting type is a binary splitting type or a ternary tree splitting type. For example, if the third flag is 1, the splitting type may be a binary splitting type, and if the third flag is 0, the splitting type may be a ternary tree splitting type. The nodes of the multitype tree obtained by bisection or ternary tree division can be further partitioned into a multitype tree structure, however, the nodes of the multitype tree cannot be partitioned into a quadtree structure.If the first flag is 0, the corresponding node of the multitype tree is not further divided and becomes a leaf node (MTT_leaf_node) of the multitype tree. The CU corresponding to the leaf node of the multitype tree can be used as the final coding unit described above.
[0103] Based on the above mtt_split_cu_vertical_flag and mtt_split_cu_binary_flag, the multi-type tree splitting mode (MttSplitMode) of the CU can be derived as shown in Table 1.
[0104] [Table 1]
[0105] One CTU may include a coding block of luma samples (hereinafter referred to as a "luma block") and two coding blocks of corresponding chroma samples (hereinafter referred to as "chroma blocks"). The above coding tree scheme may be applied to the luma blocks and chroma blocks of a current CU in the same manner or separately. Specifically, the luma blocks and chroma blocks in one CTU may be divided into the same block tree structure, and the tree structure in this case may be represented as a single tree (SINGLE_TREE). Alternatively, the luma blocks and chroma blocks in one CTU may be divided into separate block tree structures, and the tree structure in this case may be represented as a dual tree (DUAL_TREE). In other words, when a CTU is divided into a dual tree, a block tree structure for the luma blocks and a block tree structure for the chroma blocks may exist separately. In this case, the block tree structure for the luma block may be referred to as a dual tree luma (DUAL_TREE_LUMA), and the block tree structure for the chroma block may be referred to as a dual tree chroma (DUAL_TREE_CHROMA). For P and B slice / tile groups, the luma block and the chroma block in one CTU may be restricted to have the same coding tree structure. However, for I slice / tile groups, the luma block and the chroma block may have separate block tree structures from each other. When the separate block tree structure is applied, the luma coding tree block (CTB) may be divided into CUs based on a specific coding tree structure, and the chroma CTB may be divided into chroma CUs based on another coding tree structure. That is, the CU in the I slice / tile group to which the separate block tree structure is applied may be composed of a coding block of a luma component or a coding block of two chroma components.In addition, a CU in an I slice / tile group to which the same block tree structure is applied and a CU in a P or B slice / tile group may be configured with blocks of three color components (a luma component and two chroma components). Although a quadtree coding tree structure with a multi-type tree has been described above, the structure in which a CU is divided is not limited thereto. For example, the BT structure and the TT structure may be interpreted as concepts included in a multiple partitioning tree (MPT) structure, and a CU may be interpreted as being divided by a QT structure and an MPT structure. In an example in which a CU is divided by a QT structure and an MPT structure, a syntax element (e.g., MPT_split_type) including information on how many blocks a leaf node of the QT structure is divided into and a syntax element (e.g., MPT_split_mode) including information on which direction the leaf node of the QT structure is divided into, vertically or horizontally, may be signaled to determine the division structure.
[0106] In another example, the CUs may be divided in a manner different from that of the QT, BT, or TT structures, that is, unlike the QT structure in which the CUs of the lower depth are divided into 1 / 4 size of the CUs of the higher depth, or the BT structure in which the CUs of the lower depth are divided into 1 / 2 size of the CUs of the higher depth, or the TT structure in which the CUs of the lower depth are divided into 1 / 4 or 1 / 2 size of the CUs of the higher depth, the CUs of the lower depth may be divided into 1 / 5, 1 / 3, 3 / 8, 3 / 5, 2 / 3, or 5 / 8 size of the CUs of the higher depth, as the case may be, and the manner in which the CUs are divided is not limited thereto.
[0107] Overview of Intra Prediction
[0108] Intra prediction according to the present disclosure will be described below.
[0109] Intra prediction may refer to a prediction that generates a prediction sample for a current block based on a reference sample in a picture to which the current block belongs (hereinafter, the current picture). When intra prediction is applied to the current block, a peripheral reference sample used for intra prediction of the current block may be derived. The peripheral reference samples of the current block may include a sample adjacent to the left boundary of the current block of size nW×nH and a total of 2×nH samples adjacent to the bottom-left side, a sample adjacent to the top boundary of the current block and a total of 2×nW samples adjacent to the top-right side, and one sample adjacent to the top-left side of the current block. Alternatively, the peripheral reference samples of the current block may include multiple columns of upper peripheral samples and multiple rows of left peripheral samples. The surrounding reference samples of the current block may also include a total of nH samples adjacent to the right boundary of the current block of size nW×nH, a total of nW samples adjacent to the bottom boundary of the current block, and one sample adjacent to the bottom-right of the current block.
[0110] However, some of the neighboring reference samples of the current block may not be decoded or may not be available. In this case, the decoder may substitute the unavailable samples as available samples to construct the neighboring reference samples used for prediction. Alternatively, the decoder may construct the neighboring reference samples used for prediction through interpolation of available samples.
[0111] When neighboring reference samples are derived, (i) a predicted sample may be derived based on an average or an interpolation of neighboring reference samples of the current block, or (ii) a predicted sample may be derived based on a reference sample that exists in a specific (prediction) direction with respect to the predicted sample among the neighboring reference samples of the current block. In the case of (i), this may be called a non-directional mode or a non-angular mode, and in the case of (ii), this may be called a directional mode or an angular mode.
[0112] In addition, the prediction sample may be generated by interpolating a first neighboring sample located in a prediction direction of an intra prediction mode of the current block and a second neighboring sample located in the opposite direction based on a prediction target sample of the current block among the neighboring reference samples. The above case may be called Linear Interpolation Intra Prediction (LIP).
[0113] Alternatively, a chroma prediction sample may be generated based on a luma sample using a linear model, in which case it may be referred to as a Linear Model (LM) mode.
[0114] Alternatively, a temporal prediction sample of the current block may be derived based on the filtered neighboring reference samples, and a prediction sample of the current block may be derived by weighting the temporal prediction sample and at least one reference sample derived according to the intra prediction mode among the conventional neighboring reference samples, i.e., unfiltered neighboring reference samples, to derive a prediction sample of the current block. In this case, it may be called Position Dependent Intra Prediction (PDPC).
[0115] Also, a reference sample line with the highest prediction accuracy may be selected from among multiple reference sample lines surrounding the current block, and a prediction sample may be derived using a reference sample located in a prediction direction from the selected line. At this time, information on the used reference sample line (e.g., intra_luma_ref_idx) may be coded and signaled in a bitstream. In this case, it may be called MRL (Multi-Reference Line Intra Prediction) or MRL-based intra prediction. If MRL is not applied, a reference sample may be derived from a reference sample line directly adjacent to the current block, and in this case, information on the reference sample line may not be signaled.
[0116] Also, the current block may be divided into vertical or horizontal sub-partitions, and intra prediction may be performed for each sub-partition based on the same intra prediction mode. In this case, the peripheral reference samples for intra prediction may be derived for each sub-partition. That is, in the encoding / decoding order, the restored samples of the previous sub-partition may be used as the peripheral reference samples for the current sub-partition. In this case, the intra prediction mode for the current block is applied to the sub-partitions in the same manner, but the performance of intra prediction may be improved in some cases by deriving and using the peripheral reference samples for each sub-partition. Such a prediction method may be called ISP (Intra Sub-Partitions) or ISP-based intra prediction.
[0117] The above-mentioned intra prediction techniques may be referred to by various terms such as intra prediction types or additional intra prediction modes, distinguished from directional or non-directional intra prediction modes. For example, the intra prediction techniques (intra prediction types or additional intra prediction modes, etc.) may include at least one of the above-mentioned LIP, LM, PDPC, MRL, and ISP. A general intra prediction method other than the specific intra prediction types such as the LIP, LM, PDPC, MRL, and ISP may be referred to as a normal intra prediction type. The normal intra prediction type may be generally applied when the above-mentioned specific intra prediction types are not applied, and prediction may be performed based on the above-mentioned intra prediction modes. Meanwhile, post-processing filtering may be performed on the derived prediction samples as necessary.
[0118] Specifically, the intra prediction procedure may include an intra prediction mode / type determination step, a neighboring reference sample derivation step, and an intra prediction mode / type-based prediction sample derivation step. In addition, a post-processing filtering step may be performed on the derived prediction sample, if necessary.
[0119] FIG. 6 is a flow chart illustrating an intra-prediction based video / image coding method.
[0120] The encoding method of FIG. 6 may be performed by the image encoding device of FIG. 2. Specifically, step S610 may be performed by the intra prediction unit 185, and step S620 may be performed by the residual processing unit. Specifically, step S620 may be performed by the subtraction unit 115. Step S630 may be performed by the entropy encoding unit 190. The prediction information of step S630 may be derived by the intra prediction unit 185, and the residual information of step S630 may be derived by the residual processing unit. The residual information is information on the residual sample. The residual information may include information on quantized transform coefficients for the residual sample. As described above, the residual sample may be derived as a transform coefficient via the transform unit 120 of the image encoding device, and the transform coefficient may be derived as a quantized transform coefficient via the quantization unit 130. The information on the quantized transform coefficient may be coded in the entropy encoding unit 190 through a residual coding procedure.
[0121] The image encoding apparatus may perform intra prediction for a current block (S610). The image encoding apparatus may determine an intra prediction mode / type for the current block, derive surrounding reference samples for the current block, and then generate predicted samples in the current block based on the intra prediction mode / type and the surrounding reference samples. Here, the steps of determining the intra prediction mode / type, deriving the surrounding reference samples, and generating predicted samples may be performed simultaneously, or one of the steps may be performed prior to the other steps.
[0122] FIG. 7 is a diagram illustrating an example configuration of the intra prediction unit 185 according to the present disclosure.
[0123] As shown in FIG. 7, the intra prediction unit 185 of the image encoding device may include an intra prediction mode / type determination unit 186, a reference sample derivation unit 187, and / or a prediction sample derivation unit 188. The intra prediction mode / type determination unit 186 may determine an intra prediction mode / type for the current block. The reference sample derivation unit 187 may derive neighboring reference samples for the current block. The prediction sample derivation unit 188 may derive a prediction sample for the current block. Meanwhile, although not shown, when a prediction sample filtering procedure to be described later is performed, the intra prediction unit 185 may further include a prediction sample filter unit (not shown).
[0124] The image encoding apparatus may determine a mode / type to be applied to the current block from among a plurality of intra prediction modes / types, and may compare rate-distortion costs (RD costs) for the intra prediction modes / types to determine an optimal intra prediction mode / type for the current block.
[0125] Meanwhile, the image coding apparatus may also perform a prediction sample filtering procedure. The prediction sample filtering may be called post-filtering. Some or all of the prediction samples may be filtered by the prediction sample filtering procedure. In some cases, the prediction sample filtering procedure may be omitted.
[0126] Referring again to FIG. 6, the image coding apparatus may generate residual samples for the current block based on the predicted samples or the filtered predicted samples (S620). The image coding apparatus may derive the residual samples by subtracting the predicted samples from original samples of the current block. That is, the image coding apparatus may derive the residual sample values by subtracting corresponding predicted sample values from original sample values.
[0127] The image encoding apparatus may encode image information including information on the intra prediction (prediction information) and residual information on the residual sample (S630). The prediction information may include the intra prediction mode information and / or the intra prediction technique information. The image encoding apparatus may output the encoded image information in a bitstream format. The output bitstream may be transmitted to an image decoding apparatus via a storage medium or a network.
[0128] The residual information may include a residual coding syntax to be described later. The image coding apparatus may transform / quantize the residual samples to derive quantized transform coefficients. The residual information may include information regarding the quantized transform coefficients.
[0129] Meanwhile, as described above, the image coding apparatus can generate a reconstructed picture (including reconstructed samples and reconstructed blocks). To this end, the image coding apparatus can further inverse quantize / inverse transform the quantized transform coefficients to derive (modified) residual samples. The reason for performing inverse quantization / inverse transform again after transforming / quantizing the residual samples is to derive the same residual samples as the residual samples derived from the image decoding apparatus. The image coding apparatus can generate a reconstructed block including reconstructed samples for the current block based on the prediction samples and the (modified) residual samples. A reconstructed picture for the current picture can be generated based on the reconstructed block. As described above, an in-loop filtering procedure or the like can be further applied to the reconstructed picture.
[0130] FIG. 8 is a flow chart illustrating an intra-prediction based video / image decoding method.
[0131] The image decoding device can perform operations corresponding to those performed by the image encoding device.
[0132] The decoding method of FIG. 8 may be performed by the image decoding device of FIG. 3. Steps S810 to S830 may be performed by the intra prediction unit 265, and the prediction information of step S810 and the residual information of step S840 may be acquired from a bitstream by the entropy decoding unit 210. The residual processing unit of the image decoding device may derive a residual sample for the current block based on the residual information (S840). Specifically, the inverse quantization unit 220 of the residual processing unit may derive a transform coefficient by performing inverse quantization based on the quantized transform coefficient derived based on the residual information, and the inverse transform unit 230 of the residual processing unit may derive a residual sample for the current block by performing inverse transform on the transform coefficient. Step S850 may be performed by the addition unit 235 or a reconstruction unit.
[0133] Specifically, the image decoding apparatus may derive an intra prediction mode / type for a current block based on received prediction information (intra prediction mode / type information) (S810). The image decoding apparatus may also derive neighboring reference samples for the current block (S820). The image decoding apparatus may generate prediction samples in the current block based on the intra prediction mode / type and the neighboring reference samples (S830). In this case, the image decoding apparatus may perform a prediction sample filtering procedure. The prediction sample filtering may be referred to as post filtering. The prediction sample filtering procedure may filter some or all of the prediction samples. In some cases, the prediction sample filtering procedure may be omitted.
[0134] The image decoding apparatus may generate residual samples for the current block based on the received residual information (S840). The image decoding apparatus may generate reconstructed samples for the current block based on the prediction samples and the residual samples, and derive a reconstructed block including the reconstructed samples (S850). A reconstructed picture for the current picture may be generated based on the reconstructed block. As described above, an in-loop filtering procedure or the like may be further applied based on the reconstructed picture.
[0135] FIG. 9 is a diagram illustrating an example configuration of the intra prediction unit 265 according to the present disclosure.
[0136] As shown in FIG. 9, the intra prediction unit 265 of the image decoding device may include an intra prediction mode / type determination unit 266, a reference sample derivation unit 267, and a prediction sample derivation unit 268. The intra prediction mode / type determination unit 266 determines an intra prediction mode / type for the current block based on intra prediction mode / type information generated and signaled by the intra prediction mode / type determination unit 186 of the image encoding device, and the reference sample derivation unit 266 may derive a neighboring reference sample of the current block from a restored reference area in the current picture. The prediction sample derivation unit 268 may derive a prediction sample of the current block. Meanwhile, although not shown, if the above-mentioned prediction sample filtering procedure is performed, the intra prediction unit 265 may further include a prediction sample filter unit (not shown).
[0137] The intra prediction mode information may include, for example, flag information (e.g., intra_luma_mpm_flag) indicating whether a Most Probable Mode (MPM) is applied to the current block or a remaining mode is applied. If the MPM is applied to the current block, the intra prediction mode information may further include index information (e.g., intra_luma_mpm_idx) indicating one of the intra prediction mode candidates (MPM candidates). The intra prediction mode candidates (MPM candidates) may be configured as an MPM candidate list or an MPM list. Also, if the MPM is not applied to the current block, the intra prediction mode information may further include remaining mode information (e.g., intra_luma_mpm_remainder) indicating one of the remaining intra prediction modes excluding the intra prediction mode candidates (MPM candidates). The image decoding apparatus may determine the intra prediction mode of the current block based on the intra prediction mode information. The MPM candidate modes may include intra prediction modes of neighboring blocks of the current block (eg, the left and top neighboring blocks) and additional candidate modes.
[0138] Also, the intra prediction technique may be realized in various forms. As an example, the intra prediction technique information may include index information of intra prediction techniques indicating one of the intra prediction techniques. As another example, the intra prediction technique information may include at least one of reference sample line information (e.g., intra_luma_ref_idx) indicating whether the MRL is applied to the current block and, if so, which reference sample line is used, ISP flag information (e.g., intra_subpartitions_mode_flag) indicating whether the ISP is applied to the current block, ISP type information (e.g., intra_subpartitions_split_flag) indicating a subpartition type when the ISP is applied, flag information indicating whether PDPC is applied, and flag information indicating whether LIP is applied. In the present disclosure, the ISP flag information may be referred to as an ISP application indicator.
[0139] The intra prediction mode information and / or the intra prediction technique information may be encoded / decoded through a coding method described in the present disclosure. For example, the intra prediction mode information and / or the intra prediction technique information may be encoded / decoded through entropy coding (e.g., CABAC, CAVLC) based on a truncated (rice) binary code.
[0140] The intra-prediction mode / type decision method according to the present disclosure will now be described in more detail.
[0141] When intra prediction is applied to the current block, the intra prediction mode applied to the current block may be determined using the intra prediction mode of the neighboring blocks. For example, the image decoding apparatus may construct an mpm (most probable mode) list derived based on the intra prediction modes of neighboring blocks (e.g., left and / or upper neighboring blocks) of the current block and additional candidate modes, and may select one of the mpm candidates in the mpm list based on the received mpm index. Alternatively, the image decoding apparatus may select one of the remaining intra prediction modes not included in the mpm list based on the remaining intra prediction mode information. For example, whether the intra prediction mode applied to the current block is among the mpm candidates (i.e., included in the mpm list) or among the remaining modes may be indicated based on the mpm flag (e.g., intra_luma_mpm_flag). A value of 1 in the mpm flag may indicate that the intra prediction mode for the current block is among the mpm candidates (mpm list), and a value of 0 in the mpm flag may indicate that the intra prediction mode for the current block is not among the mpm candidates (mpm list). The mpm index may be signaled in the form of an mpm_idx or intra_luma_mpm_idx syntax element, and the remaining intra prediction mode information may 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 not included in the mpm candidates (mpm list) among all intra prediction modes in the order of prediction mode numbers, and may indicate one of them. The intra prediction mode may be an intra prediction mode for a luma component (sample).Hereinafter, the intra prediction mode information may include at least one of the mpm flag (e.g., intra_luma_mpm_flag), the mpm index (e.g., mpm_idx or intra_luma_mpm_idx), and the remaining intra prediction mode information (rem_intra_luma_pred_mode or intra_luma_mpm_remainder). In the present disclosure, the MPM list may be referred to by various terms such as an MPM candidate list or a candModeList.
[0142] FIG. 10 is a flowchart showing an intra-prediction mode signaling procedure in an image encoding device.
[0143] 10, the image encoding apparatus may construct an MPM list for a current block (S1010). The MPM list may include candidate intra-prediction modes (MPM candidates) that are likely to be applied to the current block. The MPM list may include intra-prediction modes of neighboring blocks, and may further include a specific intra-prediction mode based on a predetermined method.
[0144] The image encoding device may determine the intra prediction mode of the current block (S1020). The image encoding device may perform prediction based on various intra prediction modes, and may perform rate-distortion optimization (RDO) based on the prediction to determine an optimal intra prediction mode. In this case, the image encoding device may determine the optimal intra prediction mode using only MPM candidates included in the MPM list, or may determine the optimal intra prediction mode using not only the MPM candidates included in the MPM list but also the remaining intra prediction modes. Specifically, for example, when the intra prediction type of the current block is a specific type (e.g., LIP, MRL, or ISP) other than the normal intra prediction type, the image encoding device may determine the optimal intra prediction mode using only the MPM candidates. That is, in this case, the intra prediction mode for the current block may be determined only from among the MPM candidates, and in this case, the mpm flag may not be coded / signaled. In the case of the specific type, the image decoding device may estimate that the mpm flag is 1 without receiving a separate signaling of the mpm flag.
[0145] Meanwhile, in general, when the intra prediction mode of the current block is one of the MPM candidates in the MPM list, the image encoding apparatus may generate an mpm index (mpm idx) indicating one of the MPM candidates. When the intra prediction mode of the current block is not in the MPM list, the image encoding apparatus may generate remaining intra prediction mode information indicating the same mode as the intra prediction mode of the current block among the remaining intra prediction modes not included in the MPM list.
[0146] The image encoding apparatus may encode the intra prediction mode information and output it in a bitstream format (S1030). The intra prediction mode information may include the above-mentioned mpm flag, mpm index, and / or remaining intra prediction mode information. In general, the mpm index and the remaining intra prediction mode information are not signaled at the same time when indicating an intra prediction mode for one block in an alternative (alternative) relationship. That is, when the mpm flag value is 1, the mpm index may be signaled, and when the mpm flag value is 0, the remaining intra prediction mode information may be signaled. However, as described above, when a specific intra prediction type is applied to the current block, the mpm flag may not be signaled, but its value may be inferred to 1, and only the mpm index may be signaled. That is, in this case, the intra prediction mode information may include only the mpm index.
[0147] In the example shown in FIG. 10, S1020 is illustrated as being performed after S1010, but this is just one example, and S1020 may be performed before S1010 or simultaneously with S1010.
[0148] FIG. 11 is a flowchart showing a procedure for determining an intra-prediction mode in the image decoding device.
[0149] The image decoding device can determine the intra prediction mode of the current block based on the intra prediction mode information determined and signaled by the image encoding device.
[0150] 11, the image decoding apparatus may obtain intra prediction mode information from a bitstream (S1110). The intra prediction mode information may include at least one of an mpm flag, an mpm index, and a remaining intra prediction mode, as described above.
[0151] The image decoding device can configure an MPM list (S1120). The MPM list is configured in the same manner as the MPM list configured in the image encoding device. That is, the MPM list can include intra-prediction modes of neighboring blocks, and can further include a specific intra-prediction mode according to a predetermined method.
[0152] In the example shown in FIG. 11, S1120 is illustrated as being performed after S1110, but this is just one example, and S1120 may be performed before S1110 or simultaneously with S1110.
[0153] The image decoding apparatus determines the intra prediction mode of the current block based on the MPM list and the intra prediction mode information (S1130). Step S1130 will be described in more detail with reference to FIG.
[0154] FIG. 12 is a flowchart illustrating the intra-prediction mode derivation procedure in more detail.
[0155] Steps S1210 and S1220 in Fig. 12 can respectively correspond to steps S1110 and S1120 in Fig. 11. Therefore, a detailed description of steps S1210 and S1220 will be omitted.
[0156] The image decoding device can obtain intra prediction mode information from a bit stream, construct an MPM list (S1210, S1220), and then determine a predetermined condition (S1230). Specifically, as shown in FIG. 12, when the value of the mpm flag is 1 (Yes in S1230), the image decoding device can derive a candidate indicated by the mpm index from among the MPM candidates in the MPM list as the intra prediction mode of the current block (S1240). As another example, when the value of the mpm flag is 0 (No in S1230), the image decoding device can derive an intra prediction mode indicated by the remaining intra prediction mode information from among the remaining intra prediction modes not included in the MPM list as the intra prediction mode of the current block (S1250). On the other hand, as another example, if the intra prediction type of the current block is a specific type (e.g., LIP, MRL, or ISP) (Yes in S1230), the image decoding device can also derive the candidate indicated by the mpm index in the MPM list as the intra prediction mode of the current block even without checking the mpm flag (S1240).
[0157] FIG. 13 is a diagram illustrating an intra-prediction direction according to an embodiment of the present disclosure.
[0158] For example, the intra prediction modes may include two non-directional intra prediction modes and 33 directional intra prediction modes. The non-directional intra prediction modes may include a planar intra prediction mode and a DC intra prediction mode, and the directional intra prediction modes may include intra prediction modes 2 to 34. The planar intra prediction modes may be referred to as planar modes, and the DC intra prediction modes may be referred to as DC modes.
[0159] Alternatively, to capture any edge direction presented in a natural video, the intra prediction modes may include two non-directional intra prediction modes and 65 extended directional intra prediction modes, as shown in Figure 13. The non-directional intra prediction modes may include a planar mode and a DC mode, and the directional intra prediction modes may include intra prediction modes 2 to 66. The extended intra prediction modes may be applied to blocks of all sizes and may be applied to both luma components (luma blocks) and chroma components (chroma blocks).
[0160] Alternatively, the intra prediction modes may include two non-directional intra prediction modes and 129 directional intra prediction modes. The non-directional intra prediction modes may include a planar mode and a DC mode, and the directional intra prediction modes may include intra prediction modes 2 to 130.
[0161] Meanwhile, the intra prediction modes may further include a CCLM (Cross-Component Linear Model) mode for chroma samples in addition to the above-mentioned intra prediction modes. The CCLM modes may be divided into L_CCLM, T_CCLM, and LT_CCLM depending on whether the left sample, the top sample, or both are considered for deriving the LM parameters, and may be applied only to the chroma components.
[0162] The intra prediction modes can be indexed, for example, as shown in Table 2 below.
[0163] [Table 2]
[0164] FIG. 14 is a diagram showing intra prediction directions according to another embodiment of the present disclosure. In FIG. 14, the dashed line direction indicates a wide angle mode that is applied only to blocks that are not square. As shown in FIG. 14, in order to capture any edge direction presented in a natural video, the intra prediction modes according to one embodiment may include 93 directional intra prediction modes together with two non-directional intra prediction modes. The non-directional intra prediction modes may include a planar mode and a DC mode. The directional intra prediction modes may include intra prediction modes consisting of numbers 2 to 80 and numbers -1 to -14 as indicated by the arrows in FIG. 14. The planar mode may be represented as INTRA_PLANAR, and the DC mode may be represented as INTRA_DC. And, the directional intra prediction modes may be represented as INTRA_ANGULAR-14 to INTRA_ANGULAR-1, and INTRA_ANGULAR2 to INTRA_ANGULAR80. Hereinafter, a method for deriving a prediction sample of a chroma component block according to the present disclosure will be described in detail.
[0165] When intra prediction is performed on the current block, a prediction can be performed on a luma component block (luma block) and a prediction can be performed on a chroma component block (chroma block) of the current block, in which case the intra prediction mode for the chroma component (chroma block) can be set separately from the intra prediction mode for the luma component (luma block).
[0166] For example, an intra-prediction mode (intra-chroma prediction mode) for a chroma block may be indicated based on intra-chroma prediction mode information, and the intra-chroma prediction mode information may be signaled in the form of an intra_chroma_pred_mode syntax element. As an example, the intra-chroma prediction mode information may indicate any one of a planar mode, a DC mode, a vertical mode, a horizontal mode, a derived mode (DM), and a CCLM mode. As an example, if the intra-prediction mode includes two non-directional intra-prediction modes and 33 directional intra-prediction modes, the planar mode may indicate the 0th intra-prediction mode, the DC mode may indicate the 1st intra-prediction mode, the vertical mode may indicate the 26th intra-prediction mode, and the horizontal mode may indicate the 10th intra-prediction mode, respectively. As another example, if the intra prediction modes include two non-directional intra prediction modes and 65 directional intra prediction modes, the planar mode may indicate intra prediction mode 0, the DC mode may indicate intra prediction mode 1, the vertical mode may indicate intra prediction mode 50, and the horizontal mode may indicate intra prediction mode 18. DM may also be referred to as direct mode. CCLM may also be referred to as LM.
[0167] Meanwhile, DM and CCLM are dependent intra prediction modes that predict a chroma block using information of a luma block. The DM may indicate a mode in which the same intra prediction mode as the intra prediction mode for the luma component (luma block) is applied as the intra prediction mode for the chroma component (chroma block). In addition, the CCLM may indicate an intra prediction mode in which a restored sample of a luma block is subsampled in the process of generating a prediction block for a chroma block, and a sample derived by applying CCLM parameters α and β to the subsampled sample is used as a prediction sample for the chroma block.
[0168] DM Mode Overview
[0169] If the current chroma block is predicted with DM, the intra prediction mode of the current chroma block can be derived from the intra prediction mode of the corresponding luma block. For example, the intra prediction mode of a given position of the corresponding luma block can be used as the intra prediction mode of the current chroma block.
[0170] FIG. 15 is a diagram showing predetermined positions for deriving the intra prediction mode of the current chroma block in the case of DM mode.
[0171] 15, for example, a chroma block may be vertically divided into two, and the current chroma block may be a block in the shaded area, and the luma block corresponding to the current chroma block may be a block in the shaded area within the luma block.
[0172] In FIG. 15, the intra prediction mode (intra-chroma prediction mode) of the current chroma block predicted by DM may be derived from the intra prediction mode (intra-luma prediction mode) of a predetermined position in the corresponding luma block. For example, the intra prediction mode of a block covering a center right lower sample (center position) (CR) in the corresponding luma block may be determined as the intra prediction mode of the current chroma block. However, the predetermined position is not limited to the center position, and may be another position in the corresponding luma block, such as the top left corner position (TL).
[0173] Alternatively, Multiple Direct modes (MDM) can be applied to the current chroma block.
[0174] The multiple DM is a mode in which the single DM mode is expanded to multiple modes, and a DM candidate list including multiple DM modes is configured to derive an intra prediction mode of a current chroma block, and one of the candidates included in the DM candidate list may be derived as the intra prediction mode of the current chroma block. When the multiple DM is applied, the DM candidate list may include the following multiple DM candidates.
[0175] - Intra prediction mode for CR, TL, TR, BL, BR positions of the corresponding luma block
[0176] - Intra prediction mode for L, A, BL, AR, and AL positions, which are the neighboring blocks of the current chroma block
[0177] -PLANAR and DC modes
[0178] -Directional modes derived by adding or subtracting an offset (e.g., 1) from an already included directional mode
[0179] - Default DM candidate modes: Vertical mode, Horizontal mode, 2, 34, 66, 10, 26 modes (for 65 directional modes)
[0180] -If the four default DM candidates (PLANAR mode, DC mode, Vertical mode and Horizontal mode) are not included in the DM candidate list, the missing default DM candidates will replace the DM candidates already included in the list.
[0181] Overview of signaling intra prediction modes for chroma blocks
[0182] The intra prediction modes of a chroma block can be coded using a total of eight intra prediction modes, which can include the five conventional intra prediction modes and a Cross-Component Linear Model (CCLM) mode.
[0183] Whether CCLM is available can be determined based on information signaled at a higher level (e.g., sps_cclm_enabled_flag transmitted at the sequence level). Table 3 shows a mapping table for deriving the intra prediction mode of the current chroma block when CCLM is not available (sps_cclm_enabled_flag=0).
[0184] [Table 3]
[0185] As shown in Table 3, the intra prediction mode of a chroma block may be derived based on the intra chroma prediction mode information (intra_chroma_pred_mode) and / or the intra prediction mode (IntraPredModeY) of a corresponding luma block. The intra prediction mode of the corresponding luma block may be determined as the intra prediction mode of a luma block covering the center-right bottom sample (center position) of a current block or chroma block. The position of the center-right bottom sample is derived as (xCb+cbWidth / 2, yCb+cbHeight / 2), where (xCb, yCb) means the coordinates of the top-left sample of the corresponding luma block, and cbWidth and cbHeight mean the width and height of the corresponding luma block, respectively. For example, in Table 4, if intra_chroma_pred_mode is 0, the intra prediction mode of the chroma block may be determined as 0 (planar mode), and if intra_chroma_pred_mode is 1, the intra prediction mode of the chroma block may be determined as 50 (vertical mode). If intra_chroma_pred_mode is 2, the intra prediction mode of the chroma block may be determined as 18 (horizontal mode), and if intra_chroma_pred_mode is 3, the intra prediction mode of the chroma block may be determined as 1 (DC mode). If intra_chroma_pred_mode is 4, the intra prediction mode of the chroma block may be determined to be the same value as the intra prediction mode of the corresponding luma block. That is, intra_chroma_pred_mode being 4 indicates that the intra prediction mode of the chroma block is derived by DM. The index of the intra prediction mode (IntraPredModeC[xCb][yCb]) of the chroma block derived based on Table 3 may correspond to the index of the intra prediction mode shown in Table 2 above.
[0186] According to Table 4, when the intra_chroma_pred_mode value is 0 to 3, the intra prediction mode of the chroma block may be determined to be 66, which is not one of the above intra prediction modes (planar mode, vertical mode, horizontal mode, DC mode), depending on the IntraPredModeY value. For example, the intra_chroma_pred_mode value 0 indicates planar mode, but in this case, if IntraPredModeY is 0 (planar mode), the intra prediction mode of the chroma block is determined to be 66. However, as described above, when the intra prediction mode of the chroma block and the intra prediction mode of the corresponding luma block are both equal to planar mode, the intra_chroma_pred_mode value is determined to be 4 indicating DM, not 0. Therefore, when the intra_chroma_pred_mode value is 0 to 3, the case where the intra prediction mode of the chroma block is determined to be 66 does not actually occur. That is, when intra_chroma_pred_mode is 0 to 3, the intra prediction mode of the chroma block may be derived as one of planar mode, vertical mode, horizontal mode, and DC mode based on the intra_chroma_pred_mode value, and when intra_chroma_pred_mode is 4, the intra prediction mode of the chroma block may be derived based on the intra_chroma_pred_mode value and the intra prediction mode of the corresponding luma block. However, the present disclosure is not limited to the above example, and may include an embodiment in which the intra prediction mode of the chroma block is derived based on intra chroma prediction mode information (e.g., intra_chroma_pred_mode) and the intra prediction mode of the corresponding luma block even when intra_chroma_pred_mode is 0 to 3.
[0187] Table 4 shows a mapping table for intra prediction mode derivation of chroma blocks when CCLM is available (sps_cclm_enabled_flag=1).
[0188] [Table 4]
[0189] Table 4 includes modes for signaling CCLM modes in addition to the modes in Table 3 when CCLM is available. In Table 4, when intra_chroma_pred_mode is 4 to 6, INTRA_LT_CCLM, INTRA_L_CCLM, and INTRA_T_CCLM can be indicated, respectively. In Table 4, when intra_chroma_pred_mode is 0 to 3 and 7, it can correspond to the cases in Table 3 where intra_chroma_pred_mode is 0 to 4. That is, when intra_chroma_pred_mode is 7, it indicates that the intra prediction mode of the chroma block is derived by DM.
[0190] As described with reference to Tables 3 and 4, the intra prediction mode of a chroma block may be derived based on the intra chroma prediction mode information (intra_chroma_pred_mode) and / or the intra prediction mode of the corresponding luma block. For example, if the intra chroma prediction mode information indicates a DM mode, the intra prediction mode of the chroma block may be determined similarly to the intra prediction mode of the corresponding luma block.
[0191] FIG. 16 is a flowchart illustrating a conventional method for deriving an intra-prediction mode for a chroma block based on a corresponding luma block.
[0192] When an intra-predicted current chroma block is input (S1610), an intra-luma prediction mode of a corresponding luma block can be obtained (S1620). The intra-luma prediction mode can be obtained, for example, from a predetermined position (center position) in the corresponding luma block as described above. After the intra-luma prediction mode is obtained, an intra-prediction mode of the current chroma block can be derived by referring to Table 3 or Table 4 based on the intra-chroma prediction mode information and / or the intra-luma prediction mode obtained from the bitstream (S1630). Then, a predicted block of the current chroma block can be generated by performing intra prediction on the current chroma block using the derived intra-chroma prediction mode (S1640).
[0193] In step S1630, if the intra-chroma prediction mode information indicates DM, the intra-prediction mode of the current chroma block may be derived as the same value as the intra-luma prediction mode of the corresponding luma block. If the intra-chroma prediction mode information indicates a mode other than the DM mode, the intra-prediction mode of the current chroma block may be derived as any one of planar mode, DC mode, vertical mode, horizontal mode, and CCLM mode based on the intra-chroma prediction mode information.
[0194] However, the conventional method described with reference to FIG. 16 does not consider the case where the intra-luma prediction mode of the corresponding luma block does not exist. For example, as described above, the luma block and the chroma block in one CTU may be divided into the same block tree structure (SINGLE_TREE) or into separate block tree structures (DUAL_TREE), and in the case of a dual tree, the luma block and the corresponding chroma block may be coded in the same prediction mode or in different prediction modes. That is, the luma block corresponding to the intra-predicted chroma block may be intra-predicted or coded in another prediction mode. If the corresponding luma block is not intra-predicted, the intra-luma prediction mode of the corresponding luma block cannot be obtained in step S1620, and therefore, for example, the intra-prediction mode of the intra-predicted chroma block in DM mode cannot be derived.
[0195] Hereinafter, an embodiment of the present disclosure for solving the problems associated with the conventional methods will be described.
[0196] FIG. 17 is a flowchart illustrating one embodiment of the present disclosure for deriving an intra-prediction mode for a chroma block based on a corresponding luma block.
[0197] According to one embodiment of the present disclosure shown in FIG. 17, when the intra prediction mode of the corresponding luma block is not available, a default intra prediction mode is used, thereby solving the problems of the conventional method described above.
[0198] Referring to FIG. 17, first, an intra-predicted current chroma block is input (S1710). Then, it is determined whether an intra-luma prediction mode of a corresponding luma block required for deriving an intra-prediction mode of the current chroma block is available (S1720). As described above, the intra-luma prediction mode of the corresponding luma block may be obtained from a predetermined position (e.g., a center position) of the corresponding luma block. Therefore, the determination of step S1720 may be made by checking the prediction mode of the predetermined position of the corresponding luma block. For example, if the prediction mode of the predetermined position of the corresponding luma block is an intra mode, it may be determined that the intra-luma prediction mode is available. Alternatively, if the prediction mode of the predetermined position of the corresponding luma block is a mode other than the intra mode (e.g., an IBC mode), it may be determined that the intra-luma prediction mode is not available. As another example, the determination of step S1720 may be determined based on whether the predetermined position of the corresponding luma block has an intra-luma prediction mode.
[0199] If it is determined in step S1720 that the intra-luma prediction mode is available, steps S1730, S1740, and S1760 may be performed in sequence. Steps S1730, S1740, and S1760 correspond to steps S1620, S1630, and S1640 in FIG. 16, respectively, and detailed descriptions thereof will be omitted.
[0200] If it is determined in step S1720 that the intra-luma prediction mode is unavailable, a default intra-prediction mode may be used. That is, the intra-prediction mode of the current chroma block may be derived based on the intra-chroma prediction mode information and / or the default intra-prediction mode (S1750). In this case, the default intra-prediction mode may be used instead of the unavailable intra-luma prediction mode. For example, if the intra-chroma prediction mode information indicates DM, the intra-prediction mode of the current chroma block may be derived using the default intra-prediction mode. Also, if the intra-chroma prediction mode information indicates a mode other than the DM mode, the intra-prediction mode of the current chroma block may be derived using any one of planar mode, DC mode, vertical mode, horizontal mode, and CCLM mode based on the intra-chroma prediction mode information. Thereafter, a predicted block of the current chroma block may be generated by performing intra-prediction on the current chroma block using the derived intra-chroma prediction mode (S1760).
[0201] In step S1750, the DC mode or the Planar mode may be used as the default intra prediction mode. However, without being limited thereto, a predefined intra prediction mode or an intra prediction mode signaled via a bitstream may be used as the default intra prediction mode.
[0202] FIG. 18 is a flowchart illustrating another embodiment of the present disclosure for deriving an intra-prediction mode for a chroma block based on a corresponding luma block.
[0203] According to the embodiment shown in Figure 18, if the intra prediction mode of the corresponding luma block is not available, a default intra prediction mode is used, thereby solving the problems of the conventional method described above. Also, according to the embodiment shown in Figure 18, the determination of whether the intra prediction mode of the corresponding luma block is available is performed only when the tree structure of the current block is a dual tree.
[0204] Referring to FIG. 18, first, an intra-predicted current chroma block is input (S1810). Then, it is determined whether the tree structure of the current block is a dual tree structure (S1815). If the tree structure of the current block is not a dual tree structure, i.e., if it is a single tree structure, the chroma block and the corresponding luma block can be considered to be intra-predicted as well, so it can be determined that the intra-luma prediction mode of the corresponding luma block is available. Therefore, in this case, the determination of step S1820 can be skipped. In other words, if the tree structure of the current block is a single tree structure, steps S1830, S1840, and S1860 can be immediately performed in sequence to generate a prediction block of the current chroma block.
[0205] In step S1815, if the tree structure of the current block is a dual tree structure, a judgment in step S1820 can be made, and the process based on the judgment result in step S1820 is similar to that described with reference to Fig. 17, so repeated description will be omitted. That is, steps S1820 to S1860 can correspond to steps S1720 to S1760 in Fig. 17, respectively.
[0206] The decisions in steps S1815 and S1820 in FIG. 18 may be specific examples of step S1720 in FIG.
[0207] FIG. 19 is a flowchart illustrating another embodiment of the present disclosure for deriving an intra-prediction mode for a chroma block based on a corresponding luma block.
[0208] According to the embodiment shown in Figure 19, if the intra prediction mode of the corresponding luma block is not available, a default intra prediction mode is used, thereby solving the problems of the conventional method described above. Also, according to the embodiment shown in Figure 19, the determination of whether the intra prediction mode of the corresponding luma block is available is performed only when the tree structure of the current block is a dual tree and IBC is allowed.
[0209] Referring to FIG. 19, first, an intra-predicted current chroma block is input (S1910). Then, it is determined whether the tree structure of the current block is a dual tree structure (S1915). If the tree structure of the current block is not a dual tree structure, i.e., if it is a single tree structure, as described with reference to FIG. 18, the intra-luma prediction mode of the corresponding luma block can be considered to be available, and the determinations of steps S1917 and S1920 can be skipped. Therefore, in the case of a single tree structure, a prediction block of the current chroma block can be generated by immediately performing steps S1930, S1940, and S1960 in sequence.
[0210] In step S1915, if the tree structure of the current block is a dual tree structure, it can be determined whether IBC is allowed (S1917). Whether IBC is allowed can be determined based on information (e.g., sps_ibc_enabled_flag) signaled at a higher level (e.g., sequence) of the current block. For example, if sps_ibc_enabled_flag is 1, it can be determined that IBC is allowed, and if sps_ibc_enabled_flag is 0, it can be determined that IBC is not allowed.
[0211] As described above, only a single tree is allowed for P and B slices / tile groups, and both a single tree and a dual tree are allowed for an I slice / tile group. Therefore, if the tree structure of the current block is a dual tree structure, the current block belongs to an I slice / tile group. Assuming that prediction for blocks included in an I slice / tile group is limited to intra prediction and IBC prediction, the current block can be predicted by either intra prediction or IBC prediction. Thus, if IBC is not allowed, it can be determined that the current block is intra predicted. That is, if it is determined in step S1917 that IBC is not allowed, the corresponding luma block can be considered to be intra predicted, so the determination in step S1920 is skipped, and steps S1930, S1940, and S1960 can be performed immediately. If it is determined in step S1917 that IBC is allowed, the corresponding luma block can be intra predicted or IBC predicted, so in this case, the determination in step S1920 can be performed. The process based on the determination result in step S1920 is similar to that described with reference to Fig. 17, and therefore a repeated description will be omitted. That is, steps S1920 to S1960 can correspond to steps S1720 to S1760 in Fig. 17, respectively.
[0212] In the example shown in FIG. 19, it is assumed that only intra prediction or IBC prediction is possible for a block belonging to an I slice / tile group, so only whether IBC is allowed is determined in step S1917. However, if a third prediction mode other than intra prediction or IBC prediction is possible for a block belonging to an I slice / tile group, not only whether IBC is allowed but also whether the third prediction mode is allowed may be determined in step S1917. In this case, step S1920 may be skipped only when both IBC and the third prediction mode are not allowed. That is, if any one of IBC and the third prediction mode is allowed, step S1920 and subsequent processes therefor may be performed as described above.
[0213] The decisions of steps S1915, S1917 and S1920 in FIG. 19 may be specific examples of step S1720 in FIG.
[0214] As a modification of FIG. 18 and FIG. 19, the type of the slice / tile group of the current block may be determined prior to determining whether the tree structure of the current block is a dual tree structure. If the type of the slice / tile group of the current block is a P or B slice / tile group, the tree structure of the current block is determined to be a single tree structure, so there is no need to determine whether the tree structure of the current block is a dual tree structure (S1815 or S1915). Therefore, if it is a P or B slice / tile group, the corresponding intra-luma prediction mode can be obtained immediately, and then the intra-chroma prediction mode can be derived based on the obtained intra-chroma prediction mode. Also, if the type of the slice / tile group of the current block is an I slice / tile group, the tree structure of the current block may be a single tree structure or a dual tree structure, so the steps of FIG. 18 and FIG. 19 including S1815 or S1915 may be performed.
[0215] FIG. 20 is a flowchart illustrating one embodiment of the present disclosure for deriving an intra-prediction mode for a current block based on a corresponding block.
[0216] First, a current block to be encoded / decoded may be input (S2010). The current block is an intra-predicted block, and the intra-prediction mode of the current block is not directly signaled, but may be derived from the intra-prediction mode of the corresponding block. For example, the current block may be a chroma block. When the current block is input, a corresponding block corresponding to the current block is identified, and it may be determined whether the intra-prediction mode of the corresponding block is available (S2020). For example, the corresponding block may be a corresponding luma block corresponding to the chroma block. Step S2020 may be performed based on a determination of whether the corresponding block is intra-predicted. Alternatively, it may be performed based on a determination of whether the prediction mode of the corresponding block is a mode other than the intra mode (e.g., IBC mode). Alternatively, step S2020 may be performed based on a determination of whether the corresponding block has an intra-prediction mode. For example, if the corresponding block is intra-predicted or has an intra-prediction mode, it may be determined that the intra-prediction mode of the corresponding block is available. Otherwise, if the corresponding block is predicted to be a mode other than the intra mode or does not have an intra prediction mode, it may be determined that the intra prediction mode of the corresponding block is not available. Alternatively, as described above, step S2020 may include at least one of a determination on the type of slice / tile group the current block is included in, a determination on the tree structure of the current block, and a determination on whether IBC or a third prediction mode is allowed for the current block in addition to intra prediction.
[0217] In the above, the current block and the corresponding block are exemplified as a chroma block and a corresponding luma block, but are not limited thereto. For example, the current block may be a luma block, and the corresponding block may be a corresponding chroma block. Alternatively, the current block may be a first color component block, and the corresponding block may be a second color component block. In this case, the first color component may be, for example, one of a luma component and a plurality of chroma components, and the second color component may be a color component different from the first color component. For example, the first color component block may be a first chroma component block, and the second color component block may be a second chroma component block.
[0218] Referring again to FIG. 20, if the intra prediction mode of the corresponding block is available in step S2020, the intra prediction mode of the corresponding block is obtained (S2030), and the intra prediction mode of the current block may be derived based on the intra prediction mode of the corresponding block (S2040). If the intra prediction mode of the corresponding block is not available in step S2020, a default intra prediction mode is determined (S2050), and the intra prediction mode of the current block may be derived based on the default intra prediction mode (S2060). DC mode or Planar mode may be used as the default intra prediction mode in step S2050. However, without being limited thereto, a predefined intra prediction mode or an intra prediction mode signaled via a bitstream may be used as the default intra prediction mode.
[0219] According to the present disclosure, when the intra prediction mode of a current block is derived from the intra prediction mode of a corresponding block, if the intra prediction mode of the corresponding block does not exist, the intra prediction mode of the current block can be derived based on a default intra prediction mode, so that intra prediction for the current block can be effectively performed even if the intra prediction mode of the corresponding block does not exist.
[0220] FIG. 21 is a flowchart illustrating another embodiment of the present disclosure for deriving an intra-prediction mode for a chroma block based on a corresponding luma block and encoding the chroma block.
[0221] FIG. 21 relates to the operation of an image coding apparatus corresponding to the embodiment described with reference to FIG.
[0222] Referring to FIG. 21, first, a current chroma block is input (S2110). To perform intra prediction on the current chroma block, the image encoding apparatus may determine an intra prediction mode of the current chroma block. The image encoding apparatus may perform intra prediction for all or at least some of the intra prediction modes applicable to the current chroma block, and determine an optimal mode as the intra prediction mode of the current chroma block. Therefore, the image encoding apparatus needs to determine whether to apply a DM mode to the current chroma block, and thus needs to obtain an intra prediction mode of the corresponding luma block. However, since the intra prediction mode of the corresponding luma block may not be available, the image encoding apparatus may first determine whether the intra luma prediction mode of the corresponding luma block is available (S2120). The determination in step S2120 is substantially similar to the determination in step S1720, and therefore a repeated description will be omitted. Alternatively, as described above, step S2120 may include at least one of a determination as to the type of slice / tile group in which the current block is included, a determination as to the tree structure of the current block, and a determination as to whether IBC or a third prediction mode is allowed for the current block in addition to intra prediction.
[0223] If it is determined in step S2120 that the intra-luma prediction mode is available, the image encoding apparatus may obtain the intra-luma prediction mode from a predetermined position of the corresponding luma block (S2130) and derive an intra-prediction mode of the current chroma block including the intra-luma prediction mode (S2140). For example, the image encoding apparatus may select any one of one or more intra-prediction modes applicable to the current chroma block including the intra-luma prediction mode by comparing the RD-costs described above. However, the method in which the image encoding apparatus selects the intra-prediction mode of the current chroma block is not limited to the above example. Once the intra-prediction mode of the current chroma block is derived, intra-prediction may be performed on the current chroma block based on the derived intra-prediction mode to generate a predicted block. In addition, the intra-prediction mode of the current chroma block may be coded based on the intra-luma prediction mode (S2160). For example, if an intra-lumina prediction mode is determined as the intra-prediction mode of the current chroma block, the intra-chroma prediction mode information may be encoded into a value indicating DM.
[0224] In step S2120, if the intra-luma prediction mode of the corresponding luma block is not available, a default intra-prediction mode may be used instead of the intra-luma prediction mode to derive an intra-prediction mode for the current chroma block (S2150). Once the intra-prediction mode for the current chroma block is derived, intra-prediction may be performed on the current chroma block based on the derived intra-prediction mode to generate a predicted block. Also, the intra-prediction mode of the current chroma block may be coded based on the default intra-prediction mode (S2160).
[0225] In step S2150, the DC mode or the Planar mode may be used as the default intra prediction mode. However, without being limited thereto, a predefined intra prediction mode may be used as the default intra prediction mode, or the default intra prediction mode may be determined in the image encoding device, and information regarding the determined default intra prediction mode may be signaled via a bitstream.
[0226] Although the exemplary method of the present disclosure is expressed as a series of operations for clarity of explanation, this is not intended to limit the order in which the steps are performed, and each step may be performed simultaneously or in a different order, if necessary. To achieve a method according to the present disclosure, the steps illustrated may include other steps, some steps may be omitted but the remaining steps may be included, or some steps may be omitted but additional other steps may be included.
[0227] In the present disclosure, an image encoding device or an image decoding device that performs a predetermined operation (step) can perform an operation (step) that checks the execution conditions or circumstances of the operation (step). For example, if it is described that a predetermined operation is performed when a predetermined condition is satisfied, the image encoding device or the image decoding device can perform the predetermined operation after performing an operation that checks whether the above-mentioned predetermined condition is satisfied.
[0228] The various embodiments of the present disclosure are not intended to enumerate all possible combinations, but are intended to describe representative aspects of the present disclosure, and the matters described in the various embodiments may be applied independently or in combination of two or more.
[0229] Additionally, various embodiments of the present disclosure may be implemented using hardware, firmware, software, or a combination thereof, etc. In the case of a hardware implementation, the implementation may be implemented using one or more Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), Programmable Logic Devices (PLDs), Field Programmable Gate Arrays (FPGAs), general processors, controllers, microcontrollers, microprocessors, etc.
[0230] In addition, the image decoding device and the image encoding device to which the embodiment of the present disclosure is applied may be included in a multimedia broadcast transmitting / receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video conversation device, a real-time communication device such as a video communication, a mobile streaming device, a storage medium, a camcorder, a video on demand (VoD) service providing device, an OTT video (Over the top video) device, an Internet streaming service providing device, a three-dimensional (3D) video device, an image telephone video device, and a medical video device, and may be used to process a video signal or a data signal. For example, the OTT video (Over the top video) device may include a game console, a Blu-ray player, an Internet-connected TV, a home theater system, a smartphone, a tablet PC, a DVR (Digital Video Recorder), and the like.
[0231] FIG. 22 is a diagram illustrating a content streaming system to which an embodiment of the present disclosure can be applied.
[0232] As shown in FIG. 22, a content streaming system to which an embodiment of the present disclosure is applied may generally include an encoding server, a streaming server, a Web server, a media storage, a user device, and a multimedia input device.
[0233] The encoding server compresses content input from a multimedia input device such as a smartphone, camera, camcorder, etc. into digital data to generate a bitstream and transmits the bitstream to the streaming server. As another example, if a multimedia input device such as a smartphone, camera, camcorder, etc. directly generates a bitstream, the encoding server can be omitted.
[0234] The bitstream may be generated by an image encoding method and / or image encoding device to which an embodiment of the present disclosure is applied, and the streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.
[0235] The streaming server transmits multimedia data to a user device based on a user request via a web server, and the web server can act as a medium for informing the user of available services. When a user requests a desired service from the web server, the web server transmits the request to the streaming server, and the streaming server can transmit the multimedia data to the user. In this case, the content streaming system can include a separate control server, and in this case, the control server can control commands / responses between devices in the content streaming system.
[0236] The streaming server may receive the content from a media storage and / or an encoding server. For example, when receiving the content from the encoding server, the content may be received in real time. In this case, the streaming server may store the bitstream for a certain period of time in order to provide a smooth streaming service.
[0237] Examples of the user devices include mobile phones, smart phones, laptop computers, digital broadcasting terminals, Personal Digital Assistants (PDAs), Portable Multimedia Players (PMPs), navigation systems, slate PCs, tablet PCs, ultrabooks (ULTRABOOK (registered trademark)), wearable devices (e.g., smartwatches, smart glasses, Head Mounted Displays (HMDs)), digital TVs, desktop computers, and digital signage.
[0238] Each server in the content streaming system can be operated as a distributed server, in which case data received from each server can be processed in a distributed manner.
[0239] The scope of the present disclosure includes software or machine-executable commands (e.g., operating systems, applications, firmware, programs, etc.) that cause operations according to the methods of the various embodiments to be performed on a device or computer, as well as non-transitory computer-readable medium on which such software or commands etc. may be stored and executed on a device or computer. [Industrial Applicability]
[0240] The embodiments according to the present disclosure can be used to encode / decode images.
Claims
1. An image decoding method performed by an image decoding device, comprising: determining whether to apply intra prediction to a current chroma block based on information about a prediction of the current chroma block; deriving an intra-prediction mode for the current chroma block based on the fact that intra-prediction is applied to the current chroma block; generating a prediction block of the current chroma block by performing intra prediction based on the intra prediction mode of the current chroma block; the intra prediction mode for the current chroma block is derived based on a tree structure of the current chroma block; based on the tree structure of the current chroma block being a single tree structure, the intra prediction mode of the current chroma block is derived based on a prediction method of a corresponding luma block; an image decoding method, wherein the tree structure of the current chroma block is a dual tree structure, and the intra prediction mode of the current chroma block is derived based on a DC mode based on the prediction method of the corresponding luma block being an IBC (intra block copy) prediction mode.
2. The image decoding method according to claim 1 , wherein the prediction method for the corresponding luma block is determined at a predetermined position of the corresponding luma block.
3. The image decoding method according to claim 2 , wherein the predetermined position is a center position of the corresponding luma block.
4. The intra-chroma prediction mode information of the current chroma block indicates a Direct Mode (DM), and based on the existence of the intra-prediction mode of the corresponding luma block, the intra-prediction mode of the current chroma block is derived as the intra-prediction mode of the corresponding luma block; 2. The image decoding method of claim 1, wherein the intra-chroma prediction mode information of the current chroma block indicates DM and the intra-prediction mode of the current chroma block is derived as a default intra-prediction mode based on the absence of the intra-prediction mode of the corresponding luma block.
5. An image coding method performed by an image coding device, comprising: determining whether to apply intra prediction to the current chroma block; deriving an intra-prediction mode for the current chroma block based on the fact that intra-prediction is applied to the current chroma block; generating a prediction block of the current chroma block by performing intra prediction based on the intra prediction mode of the current chroma block; encoding the intra-prediction mode of the current chroma block based on an intra-prediction mode of a corresponding luma block; the intra prediction mode for the current chroma block is derived based on a tree structure of the current chroma block; based on the tree structure of the current chroma block being a single tree structure, the intra prediction mode of the current chroma block is derived based on a prediction method of the corresponding luma block; 11. An image encoding method, comprising: a tree structure of the current chroma block being a dual tree structure; and an intra prediction mode of the current chroma block being derived based on a DC mode based on the prediction method of the corresponding luma block being IBC (intra block copy) prediction.
6. The image coding method according to claim 5 , wherein the prediction method for the corresponding luma block is determined at a predetermined position of the corresponding luma block.
7. The image encoding method according to claim 6 , wherein the predetermined position is a center position of the corresponding luma block on the basis that the tree structure of the current chroma block is the dual tree structure.
8. A method for transmitting a bitstream of an image, comprising: generating said bitstream based on an image coding method; transmitting the bitstream; The image encoding method includes: determining whether to apply intra prediction to the current chroma block; deriving an intra-prediction mode for the current chroma block based on the fact that intra-prediction is applied to the current chroma block; generating a prediction block of the current chroma block by performing intra prediction based on the intra prediction mode of the current chroma block; encoding the intra-prediction mode of the current chroma block based on an intra-prediction mode of a corresponding luma block; the intra prediction mode for the current chroma block is derived based on a tree structure of the current chroma block; based on the tree structure of the current chroma block being a single tree structure, the intra prediction mode of the current chroma block is derived based on a prediction method of the corresponding luma block; The method of claim 1, wherein the tree structure of the current chroma block is a dual tree structure, and the intra prediction mode of the current chroma block is derived based on a DC mode based on the prediction method of the corresponding luma block being intra block copy (IBC) prediction.
Citation Information
Patent Citations
Image decoding apparatus, image decoding method and image decoding program
JP2013077899A