Method and apparatus for encoding / decoding image on basis of intra prediction, and method for transmitting bitstream

The image coding/decryption method employs intra prediction-based image coding to address the challenge of high-resolution image data management, achieving improved efficiency and quality by effectively inducing intra prediction modes and optimizing data transmission.

WO2025095531A1PCT designated stage expired Publication Date: 2025-05-08LG ELECTRONICS INC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/KR2024/016654
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-10-30
Filing Date
2024-10-29
Publication Date
2025-05-08

AI Technical Summary

Technical Problem

The increasing demand for high-resolution and high-quality images, such as HD and UHD, leads to a significant increase in image data, resulting in higher transmission and storage costs. Existing image compression technologies are not efficient enough to effectively manage these high-quality image data.

Method used

The proposed image coding/decryption method utilizes intra prediction-based image coding, which involves determining a search region for predicting the current block, generating an intra predictive block based on the search region, and inducing the intra prediction mode using methods such as gradient-based or error value-based approaches. This method is implemented in both the image coding device and the image decryption device, allowing for improved encoding/decryption efficiency and effective transmission of bitstreams.

Benefits of technology

The method achieves improved encoding/decryption efficiency and coding quality, reducing the amount of data required for high-resolution images while maintaining image quality. It also enables effective induction of intra prediction modes on the decoder side, enhancing predictive performance and coding efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2024016654_08052025_PF_FP_ABST
    Figure KR2024016654_08052025_PF_FP_ABST
Patent Text Reader

Abstract

An image encoding / decoding method and apparatus are provided. An image decoding method performed by an image decoding apparatus according to one embodiment of the present disclosure comprises the steps of: determining a search area for prediction of a current block; and generating an intra-prediction block on the basis of the search area, wherein the intra-prediction block is generated on the basis of an intra-prediction mode derived by using the search area, the intra-prediction mode is derived on the basis of derivation method information indicating an intra-prediction mode derivation method, and the derivation method information indicates one of a method using a gradient of the search area and a method using an error value of the search area.
Need to check novelty before this filing date? Find Prior Art

Description

Intra prediction-based video encoding / decoding method, device, and method for transmitting a bitstream

[0001] The present disclosure relates to a video encoding / decoding method and device, and more particularly, to an intra prediction-based video encoding / decoding method and device, and a method for transmitting a bitstream generated by the video encoding method / device of the present disclosure.

[0002] Recently, demand for high-resolution, high-quality images, such as HD (High Definition) and UHD (Ultra High Definition) images, has been increasing across various fields. As image data becomes higher resolution and higher quality, the amount of information transmitted, or bits, increases relative to conventional image data. This increase in information or bits transmitted leads to increased transmission and storage costs.

[0003] Accordingly, a highly efficient image compression technology is required to effectively transmit, store, and play high-resolution, high-quality image information.

[0004] The present disclosure aims to provide a video encoding / decoding method and device with improved encoding / decoding efficiency.

[0005] In addition, the present disclosure aims to provide a method and device for encoding / decoding still images or moving images.

[0006] In addition, the present disclosure aims to provide a video coding technology using intra-screen prediction based on DIMD (Decoder-side Intra Mode Derivation) and / or TIMD (Template-based Intra Mode Derivation).

[0007] In addition, the present disclosure aims to provide a video coding technique in which signaling of information related to a prediction mode is performed.

[0008] In addition, the present disclosure aims to provide a method or device for transmitting a bitstream generated by an image encoding method or device according to the present disclosure.

[0009] In addition, the present disclosure aims to provide a recording medium storing a bitstream generated by an image encoding method or device according to the present disclosure.

[0010] In addition, the present disclosure aims to provide a recording medium storing a bitstream received and decoded by an image decoding device according to the present disclosure and used for image restoration.

[0011] The technical problems to be achieved in the present disclosure are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by a person having ordinary skill in the technical field to which the present disclosure belongs from the description below.

[0012] A video decoding method according to one embodiment of the present disclosure includes a step of determining a search area for predicting a current block, and a step of generating an intra prediction block based on the search area, wherein the intra prediction block is generated based on an intra prediction mode derived using the search area, and the intra prediction mode is derived based on derivation method information indicating an intra prediction mode derivation method, wherein the derivation method information may indicate one of a method using a gradient of the search area or a method using an error value of the search area.

[0013] Meanwhile, according to one embodiment of the present disclosure, the induction method information can be obtained from a bitstream.

[0014] Meanwhile, according to one embodiment of the present disclosure, the number of intra prediction blocks can be determined according to specific conditions.

[0015] Meanwhile, according to one embodiment of the present disclosure, the specific condition may be associated with the amplitude of each intra prediction mode based on the gradient.

[0016] Meanwhile, according to one embodiment of the present disclosure, the specific condition can be derived based on prediction mode condition information obtained from the bitstream.

[0017] Meanwhile, according to one embodiment of the present disclosure, the intra prediction block may include a prediction block generated based on a planar mode.

[0018] Meanwhile, according to one embodiment of the present disclosure, whether the planar mode is used can be determined based on information obtained from the bitstream.

[0019] Meanwhile, according to one embodiment of the present disclosure, the weight for the intra prediction block can be determined based on a sample distance to a current block in the search area.

[0020] Meanwhile, according to one embodiment of the present disclosure, the weight may be determined for each line of the search area.

[0021] A video encoding method according to one embodiment of the present disclosure includes the steps of determining a search area for predicting a current block, and generating an intra prediction block based on the search area, wherein the intra prediction block is generated based on an intra prediction mode derived using the search area, and the intra prediction mode can be derived based on one of a method using a gradient of the search area or a method using an error value of the search area.

[0022] According to one embodiment of the present disclosure, a bitstream generated by an image encoding device or an image encoding method can be transmitted.

[0023] According to one embodiment of the present disclosure, a bitstream generated by a video encoding method can be stored or recorded on a computer-readable medium.

[0024] According to one embodiment of the present disclosure, a bitstream generated by a video encoding method can be transmitted by a bitstream transmission device.

[0025] The features briefly summarized above regarding the present disclosure are merely exemplary aspects of the detailed description of the present disclosure that follows and do not limit the scope of the present disclosure.

[0026] According to the present disclosure, a video encoding / decoding method and device with improved encoding / decoding efficiency can be provided.

[0027] In addition, according to the present disclosure, a video encoding / decoding technology with improved coding quality and coding performance can be provided.

[0028] Additionally, according to the present disclosure, when encoding a still image or a moving image within a screen, prediction performance can be improved by combining multiple prediction blocks.

[0029] Additionally, according to the present disclosure, when encoding a still image or a moving image within a screen, an intra prediction mode can be effectively derived on the decoder side.

[0030] In addition, according to the present disclosure, an intra prediction mode can be effectively derived by combining the features of a decoder-side intra prediction mode derivation method and a search region-based intra prediction mode derivation method.

[0031] In addition, according to the present disclosure, coding efficiency can be improved by using a method of more accurately deriving an intra prediction mode by giving weights to error values ​​related to a search area.

[0032] In addition, according to the present disclosure, a method or device for transmitting a bitstream generated by an image encoding method or device according to the present disclosure can be provided.

[0033] In addition, according to the present disclosure, a recording medium storing a bitstream generated by an image encoding method or device according to the present disclosure can be provided.

[0034] In addition, according to the present disclosure, a recording medium storing a bitstream received and decoded by an image decoding device according to the present disclosure and used for image restoration can be provided.

[0035] The effects that can be obtained from the present disclosure are not limited to the effects mentioned above, and other effects that are not mentioned will be clearly understood by a person having ordinary skill in the art to which the present disclosure pertains from the description below.

[0036] FIG. 1 is a schematic diagram illustrating a video coding system to which an embodiment according to the present disclosure can be applied.

[0037] FIG. 2 is a schematic diagram illustrating an image encoding device to which an embodiment according to the present disclosure can be applied.

[0038] FIG. 3 is a schematic diagram illustrating an image decoding device to which an embodiment according to the present disclosure can be applied.

[0039] FIG. 4 is a diagram schematically illustrating a TIMD (Templat-based Intra Mode Derivation) technology to which an embodiment according to the present disclosure can be applied.

[0040] FIG. 5 and FIG. 6 are schematic diagrams illustrating a DIMD (Decoder-side Intra Mode Derivation) technology to which an embodiment according to the present disclosure can be applied.

[0041] FIG. 7 is a diagram for explaining an image encoding method or an image decoding method according to one embodiment of the present disclosure.

[0042] FIG. 8 is a diagram illustrating a search area of ​​a current block that can be applied to one embodiment of the present disclosure.

[0043] FIG. 9 is a diagram for explaining an image encoding method and / or an image decoding method according to one embodiment of the present disclosure.

[0044] FIG. 10 is a diagram illustrating a process for obtaining weights of error values ​​for a search area that can be applied to one embodiment of the present disclosure.

[0045] FIG. 11 is a diagram for explaining an image decoding method according to one embodiment of the present disclosure.

[0046] FIG. 12 is a drawing for explaining an image encoding method according to one embodiment of the present disclosure.

[0047] FIG. 13 is a diagram illustrating a content streaming system to which an embodiment of the present disclosure can be applied.

[0048] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the attached drawings so that those skilled in the art can easily implement the present disclosure. However, the present disclosure may be implemented in various different forms and is not limited to the embodiments described herein.

[0049] In describing embodiments of the present disclosure, detailed descriptions of known configurations or functions will be omitted if they are deemed to obscure the gist of the present disclosure. Furthermore, portions unrelated to the description of the present disclosure in the drawings have been omitted, and similar portions have been designated with similar reference numerals.

[0050] In the present disclosure, when a component is said to be "connected," "coupled," or "connected" to another component, this may include not only a direct connection, but also an indirect connection in which another component exists in between. Furthermore, when a component is said to "include" or "have" another component, unless otherwise specifically stated, this does not exclude the other component, but rather implies that the other component may be included.

[0051] In this disclosure, terms such as first, second, etc. are used solely to distinguish one component from another, and do not limit the order or importance of components unless specifically stated otherwise. Accordingly, within the scope of this disclosure, a first component in one embodiment may be referred to as a second component in another embodiment, and similarly, a second component in one embodiment may be referred to as a first component in another embodiment.

[0052] In this disclosure, distinct components are used to clearly illustrate their respective characteristics, and do not necessarily imply that the components are separated. That is, multiple components may be integrated into a single hardware or software unit, or a single component may be distributed into multiple hardware or software units. Therefore, even if not specifically mentioned, such integrated or distributed embodiments are also included within the scope of this disclosure.

[0053] In the present disclosure, the components described in various embodiments are not necessarily essential components, and some may be optional components. Therefore, embodiments comprising a subset of the components described in one embodiment are also within the scope of the present disclosure. Furthermore, embodiments including other components in addition to the components described in various embodiments are also within the scope of the present disclosure.

[0054] The present disclosure relates to encoding and decoding of images, and terms used in the present disclosure may have their usual meanings commonly used in the technical field to which the present disclosure belongs, unless newly defined in the present disclosure.

[0055] In the present disclosure, a "picture" generally refers to a unit representing one image of a specific time period, and a slice / tile is a coding unit that constitutes a part of a picture, and a single picture may be composed of one or more slices / tiles. In addition, a slice / tile may include one or more coding tree units (CTUs).

[0056] In the present disclosure, "pixel" or "pel" may refer to the smallest unit that constitutes a picture (or image). Additionally, "sample" may be used as a term corresponding to a pixel. A sample may generally represent a pixel or a pixel value, and may represent only a pixel / pixel value of a luma component or only a pixel / pixel value of a chroma component.

[0057] In the present disclosure, a "unit" may represent 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. In some cases, the term "unit" may be used interchangeably with terms such as "sample array," "block," or "area." In general, an MxN block may include a set (or array) of samples (or sample array) or transform coefficients consisting of M columns and N rows.

[0058] In the present disclosure, the "current block" may mean one of the following: a "current coding block," a "current coding unit," a "block to be encoded," a "block to be decoded," or a "block to be processed." When prediction is performed, the "current block" may mean a "current prediction block" or a "block to be predicted." When transformation (inverse transformation) / quantization (inverse quantization) is performed, the "current block" may mean a "current transformation block" or a "block to be transformed." When filtering is performed, the "current block" may mean a "block to be filtered."

[0059] Additionally, in the present disclosure, the term "current block" may mean a block that includes both a luma component block and a chroma component block, or a "luma block of the current block," unless explicitly described as a chroma block. The chroma block of the current block may be explicitly expressed by including an explicit description of the chroma block, such as "chroma block" or "current chroma block."

[0060] In this disclosure, " / " and "," can be interpreted as "and / or". For example, "A / B" and "A, B" can be interpreted as "A and / or B". Additionally, "A / B / C" and "A, B, C" can mean "at least one of A, B, and / or C."

[0061] In this disclosure, "or" may be interpreted as "and / or." For example, "A or B" may mean 1) "A" only, 2) "B" only, or 3) "A and B." Alternatively, "or" in this disclosure may mean "additionally or alternatively."

[0062] Video Coding System Overview

[0063] FIG. 1 illustrates a video coding system according to the present disclosure.

[0064] A video coding system according to one 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 the form of a file or streaming via a digital storage medium or a network.

[0065] An encoding device (10) according to an embodiment may include a video source generation unit (11), an encoding unit (12), and a transmission unit (13). A decoding device (20) according to an embodiment may include a reception unit (21), a decoding unit (22), and a rendering unit (23). The encoding unit (12) may be referred to as a video / image encoding unit, and the decoding unit (22) may be referred to as a video / image decoding unit. The transmission unit (13) may be included in the encoding unit (12). The reception unit (21) may be included in the decoding unit (22). The rendering unit (23) may include a display unit, and the display unit may be configured as a separate device or an external component.

[0066] The video source generation unit (11) can obtain video / images through a process of capturing, synthesizing, or generating video / images. The video source generation 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 including previously captured video / images, etc. The video / image generation device can include, for example, a computer, a tablet, a smartphone, etc., and can (electronically) generate 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 with a process of generating related data.

[0067] The encoding unit (12) can encode input video / images. The encoding unit (12) can perform a series of procedures such as prediction, transformation, and quantization to improve compression and encoding efficiency. The encoding unit (12) can output encoded data (encoded video / image information) in the form of a bitstream.

[0068] The transmission unit (13) can obtain encoded video / image information or data output in the form of a bitstream, and transmit it to the reception unit (21) of the decoding device (20) or another external object through a digital storage medium or a network in the form of a file or streaming. The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmission unit (13) may include an element for generating a media file through a predetermined file format, and may include an element for transmission through a broadcasting / communication network. The transmission unit (13) may be provided as a separate transmission device from the encoding device (10), and in this case, the transmission device may include at least one processor for obtaining encoded video / image information or data output in the form of a bitstream, and a transmission unit for transmitting it in the form of a file or streaming. The reception unit (21) can extract / receive the bitstream from the storage medium or network and transmit it to the decoding unit (22).

[0069] The decoding unit (22) can decode video / image by performing a series of procedures such as inverse quantization, inverse transformation, and prediction corresponding to the operation of the encoding unit (12).

[0070] The rendering unit (23) can render the decrypted video / image. The rendered video / image can be displayed through the display unit.

[0071] Overview of the video encoding device

[0072] FIG. 2 is a schematic diagram illustrating an image encoding device to which an embodiment according to the present disclosure can be applied.

[0073] As illustrated in FIG. 2, the image encoding device (100) may include an image segmentation 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).

[0074] All or at least some of the plurality of components constituting the video encoding device (100) may be implemented as a single hardware component (e.g., an encoder or a processor) according to an embodiment. In addition, the memory (170) may include a decoded picture buffer (DPB) and may be implemented by a digital storage medium.

[0075] The image segmentation unit (110) can segment an input image (or picture, frame) input to the image encoding device (100) into one or more processing units. For example, the processing unit may be called a coding unit (CU). The coding unit may be obtained by recursively segmenting a coding tree unit (CTU) or a largest coding unit (LCU) according to a QT / BT / TT (Quad-tree / binary-tree / ternary-tree) structure. For example, one coding unit may be segmented into a plurality of coding units of deeper depth based on a quad-tree structure, a binary-tree structure, and / or a ternary-tree structure. For segmenting the coding unit, the quad-tree structure may be applied first, and the binary-tree structure and / or the ternary-tree structure may be applied later. The coding procedure according to the present disclosure may be performed based on the final coding unit that is no longer segmented. The maximum coding unit can be used directly as the final coding unit, and the coding unit of the lower depth obtained by dividing the maximum coding unit can be used as the final concatenated unit. Here, the coding procedure may include procedures such as prediction, transformation, and / or restoration described below. As another example, the processing unit of the coding procedure may be a prediction unit (PU) or a transformation unit (TU). The prediction unit and the transformation unit may each be divided or partitioned from the final coding unit. The prediction unit may be a unit of sample prediction, and the transformation unit may be a unit that derives a transform coefficient and / or a unit that derives a residual signal from a transform coefficient.

[0076] The prediction unit (inter-prediction unit (180) or intra-prediction unit (185)) can 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 can determine whether intra-prediction or inter-prediction is applied to the current block or CU unit. The prediction unit can generate various information regarding the prediction of the current block and transmit the information to the entropy encoding unit (190). The information regarding the prediction can be encoded by the entropy encoding unit (190) and output in the form of a bitstream.

[0077] The intra prediction unit (185) can predict the current block by referring to samples within the current picture. The referenced samples may be located in the neighborhood of the current block or may be located away from it, depending on the intra prediction mode and / or intra prediction technique. The intra prediction modes may include a plurality of non-directional modes and a plurality of directional modes. The non-directional modes may include, for example, a DC mode and a planar mode. The directional modes may include, for example, 33 directional prediction modes or 65 directional prediction modes, depending on the degree of detail in the prediction direction. However, this is merely an example, and a greater or lesser number of directional prediction modes may be used depending on the settings. The intra prediction unit (185) may also determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring blocks.

[0078] The inter prediction unit (180) can derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference image. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, subblocks, or samples based on the correlation of the motion information between the neighboring blocks and the current block. The motion information can include a motion vector and a reference image index. The motion information can further include information on the inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, the neighboring blocks can include spatial neighboring blocks existing in the current picture and temporal neighboring blocks existing in the reference image. The reference image including the reference block and the reference image including the temporal neighboring blocks may be the same or different from each other. The temporal neighboring blocks may be called collocated reference blocks, collocated CUs (colCUs), etc. The reference picture including the above temporal neighboring blocks may be called a collocated picture (colPic). For example, the inter prediction unit (180) may construct a motion information candidate list based on the neighboring blocks and generate information indicating which candidate is used to derive the motion vector and / or reference picture index 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 motion vector prediction (MVP) mode, the motion vector of the current block can be signaled by using the motion vector of the surrounding blocks as the motion vector predictor and encoding the 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.

[0079] The prediction unit can generate a prediction signal based on various prediction methods and / or prediction techniques described below. For example, the prediction unit can apply intra prediction or inter prediction to predict the current block, and can also apply intra prediction and inter prediction simultaneously. A prediction method that simultaneously applies intra prediction and inter prediction to predict the current block may be called combined inter and intra prediction (CIIP). In addition, the prediction unit may perform intra block copy (IBC) to predict the current block. Intra block copy can be used for video / image coding of content such as games, such as screen content coding (SCC). IBC is a method of predicting the current block using a previously restored reference block within the current picture located at a predetermined distance from the current block. When IBC is applied, the location of the reference block within the current picture can be encoded as a vector (block vector) corresponding to the predetermined distance. IBC basically performs prediction within the current picture, but can be performed similarly to inter prediction in that it derives reference blocks within the current picture. That is, IBC can utilize at least one of the inter prediction techniques described in the present disclosure.

[0080] The prediction signal generated through the prediction unit can be used to generate a restoration signal or a residual signal. The subtraction unit (115) can generate a residual signal (residual block, residual sample array) by subtracting the prediction signal (predicted block, predicted sample array) output from the prediction unit from the input image signal (original block, original sample array). The generated residual signal can be transmitted to the conversion unit (120).

[0081] The transform unit (120) can apply a transform technique to the residual signal to generate transform coefficients. For example, the transform technique can 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), or a Conditionally Non-linear Transform (CNT). Here, GBT refers to a transform obtained from a graph when the relationship information between pixels is expressed as a graph. CNT refers to a transform obtained based on generating a prediction signal using all previously reconstructed pixels. The transform process can be applied to a pixel block having a square equal size, or can be applied to a block of a non-square variable size.

[0082] The quantization unit (130) can quantize the transform coefficients and transmit them to the entropy encoding unit (190). The entropy encoding unit (190) can encode the quantized signal (information about the quantized transform coefficients) and output it as a bitstream. The information about the quantized transform coefficients can be called residual information. The quantization unit (130) can rearrange the quantized transform coefficients in a block form into a one-dimensional vector form based on a coefficient scan order, and can also generate information about the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form.

[0083] The entropy encoding unit (190) can perform various encoding methods, such as, for example, exponential Golomb, context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC). The entropy encoding unit (190) can also encode, together or separately, information necessary for video / image restoration (e.g., values ​​of syntax elements) in addition to quantized transform coefficients. The encoded information (e.g., encoded video / image information) can be transmitted or stored in the form of a bitstream in the form of a network abstraction layer (NAL) unit. 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 signaling information, transmitted information and / or syntax elements mentioned in the present disclosure may be encoded through the encoding procedure described above and included in the bitstream.

[0084] The above bitstream may be transmitted via a network or stored in a digital storage medium. Here, the network may include a broadcasting network and / or a communication network, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A 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 video encoding device (100), or the transmission unit may be provided as a component of the entropy encoding unit (190).

[0085] The quantized transform coefficients output from the quantization unit (130) can be used to generate a residual signal. For example, by applying inverse quantization and inverse transformation to the quantized transform coefficients through the inverse quantization unit (140) and inverse transformation unit (150), a residual signal (residual block or residual samples) can be restored.

[0086] The addition unit (155) can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the reconstructed residual signal to the prediction signal output from the inter prediction unit (180) or the intra prediction unit (185). When there is no residual for the block to be processed, such as when skip mode is applied, the predicted block can be used as the reconstructed block. The addition unit (155) can be called a reconstructor or a reconstructed block generation unit. The generated reconstructed signal can be used for intra prediction of the next block to be processed within the current picture, and can also be used for inter prediction of the next picture after filtering as described below.

[0087] The filtering unit (160) can improve subjective / objective picture quality by applying filtering to the restoration signal. For example, the filtering unit (160) can apply various filtering methods to the restoration picture to generate a modified restoration picture, and store the modified restoration picture in the memory (170), specifically, in the DPB of the memory (170). The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc. The filtering unit (160) can generate various information regarding filtering and transmit the information to the entropy encoding unit (190), as described later in the description of each filtering method. The information regarding filtering may be encoded by the entropy encoding unit (190) and output in the form of a bitstream.

[0088] The modified restored picture transmitted to the memory (170) can be used as a reference image in the inter prediction unit (180). Through this, when inter prediction is applied, the image encoding device (100) can avoid prediction mismatch between the image encoding device (100) and the image decoding device, and can also improve encoding efficiency.

[0089] The DPB in the memory (170) can store a modified restored picture to be used as a reference image in the inter prediction unit (180). The memory (170) can store motion information of a block from which motion information in the current picture is derived (or encoded) and / or motion information of blocks in a picture that has already been restored. The stored motion information can be transferred to the inter prediction unit (180) to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory (170) can store restored samples of restored blocks in the current picture and transfer them to the intra prediction unit (185).

[0090] Video Decoding Device Overview

[0091] FIG. 3 is a schematic diagram illustrating an image decoding device to which an embodiment according to the present disclosure can be applied.

[0092] As illustrated in FIG. 3, the image decoding device (200) may be configured to include an entropy decoding unit (210), an inverse quantization unit (220), an inverse transformation unit (230), an addition 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 transformation unit (230) may be included in a residual processing unit.

[0093] All or at least some of the plurality of components constituting the video decoding device (200) may be implemented as a single hardware component (e.g., a decoder or processor) depending on the embodiment. In addition, the memory (170) may include a DPB and may be implemented by a digital storage medium.

[0094] The video decoding device (200) that receives a bitstream including video / image information can restore the image by performing a process corresponding to the process performed in the video encoding device (100) of FIG. 2. For example, the video decoding device (200) can perform decoding using a processing unit applied in the video encoding device. Therefore, the processing unit for decoding may be, for example, a coding unit. The coding unit may be a coding tree unit or may be obtained by dividing a maximum coding unit. In addition, the restored image signal decoded and output by the video decoding device (200) can be reproduced through a reproduction device (not shown).

[0095] The video decoding device (200) can receive a signal output from the video encoding device of FIG. 2 in the form of a bitstream. The received signal can be decoded through the entropy decoding unit (210). For example, the entropy decoding unit (210) can parse the bitstream to derive information (e.g., video / image information) necessary for image restoration (or picture restoration). 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 video decoding device may additionally use information on the parameter set and / or the general constraint information to decode the image. The signaling information, received information, and / or syntax elements mentioned in the present disclosure can be obtained from the bitstream by being decoded through the decoding procedure. For example, the entropy decoding unit (210) can decode information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output the values ​​of syntax elements required for image restoration and the quantized values ​​of transform coefficients for residuals. More specifically, the CABAC entropy decoding method receives a bin corresponding to each syntax element in the bitstream, determines a context model using information of the syntax element to be decoded and decoding information of the surrounding block and the decoding target block or information of the symbol / bin decoded in the previous step, and predicts the occurrence probability of the bin according to the determined context model to perform arithmetic decoding of the bin to generate a symbol corresponding to the value of each syntax element.At this time, the CABAC entropy decoding method can update the context model using the information of the decoded symbol / bin for the context model of the next symbol / bin after determining the context model. Information regarding prediction among the information decoded by the entropy decoding unit (210) is provided to the prediction unit (inter prediction unit (260) and intra prediction unit (265)), and the residual value on which entropy decoding is performed by the entropy decoding unit (210), i.e., quantized transform coefficients and related parameter information, can be input to the inverse quantization unit (220). In addition, information regarding filtering among the information decoded by the entropy decoding unit (210) can be provided to the filtering unit (240). Meanwhile, a receiving unit (not shown) that receives a signal output from an image encoding device may be additionally provided as an internal / external element of the image decoding device (200), or the receiving unit may be provided as a component of an entropy decoding unit (210).

[0096] Meanwhile, the video decoding device according to the present disclosure may be referred to as a video / video / picture decoding device. The video decoding device may include an information decoder (video / video / picture information decoder) and / or a sample decoder (video / video / picture sample decoder). The information decoder may include an entropy decoding unit (210), and the sample decoder may include at least one of an inverse quantization unit (220), an inverse transformation unit (230), an addition unit (235), a filtering unit (240), a memory (250), an inter prediction unit (260), and an intra prediction unit (265).

[0097] The inverse quantization unit (220) can inverse quantize the quantized transform coefficients and output the transform coefficients. The inverse quantization unit (220) can rearrange the quantized transform coefficients into a two-dimensional block form. In this case, the rearrangement can be performed based on the coefficient scanning order performed in the image encoding device. The inverse quantization unit (220) can perform inverse quantization on the quantized transform coefficients using quantization parameters (e.g., quantization step size information) and obtain transform coefficients.

[0098] In the inverse transform unit (230), the transform coefficients can be inversely transformed to obtain a residual signal (residual block, residual sample array).

[0099] The prediction unit can perform a prediction on the current block and generate a predicted block containing prediction samples for the current block. The prediction unit can 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 can determine a specific intra / inter-prediction mode (prediction technique).

[0100] The fact that the prediction unit can generate a prediction signal based on various prediction methods (techniques) described below is the same as that mentioned in the description of the prediction unit of the image encoding device (100).

[0101] The intra prediction unit (265) can predict the current block by referring to samples within the current picture. The description of the intra prediction unit (185) can be equally applied to the intra prediction unit (265).

[0102] The inter prediction unit (260) can derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference image. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between the neighboring blocks and the current block. The motion information can include a motion vector and a reference image index. The motion information can further include information on the inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, the neighboring blocks can include spatial neighboring blocks existing in the current picture and temporal neighboring blocks existing in the reference image. For example, the inter prediction unit (260) can construct a motion information candidate list based on the neighboring blocks, and derive the motion vector and / or reference image index of the current block based on the received candidate selection information. Inter prediction can be performed based on various prediction modes (techniques), and the information about the prediction can include information indicating the mode (technique) of inter prediction for the current block.

[0103] The addition unit (235) can generate a restoration signal (restored picture, restoration block, restoration sample array) by adding the acquired residual signal to the prediction signal (predicted block, prediction sample array) output from the prediction unit (including the inter prediction unit (260) and / or the intra prediction unit (265)). When there is no residual for the block to be processed, such as when the skip mode is applied, the predicted block can be used as the restoration block. The description of the addition unit (155) can be equally applied to the addition unit (235). The addition unit (235) can be called a restoration unit or a restoration block generation unit. The generated restoration signal can be used for intra prediction of the next block to be processed within the current picture, and can also be used for inter prediction of the next picture after going through filtering as described below.

[0104] The filtering unit (240) can improve subjective / objective image quality by applying filtering to the restored signal. For example, the filtering unit (240) can apply various filtering methods to the restored picture to generate a modified restored picture, and store the modified restored picture in the memory (250), specifically, in the DPB of the memory (250). The various filtering methods can include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.

[0105] 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 is derived (or decoded) within the current picture and / or motion information of blocks within a picture that has already been reconstructed. The stored motion information can be transferred to the inter prediction unit (260) to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory (250) can store reconstructed samples of reconstructed blocks within the current picture and transfer them to the intra prediction unit (265).

[0106] In this specification, the embodiments described in the filtering unit (160), the inter prediction unit (180), and the intra prediction unit (185) of the image encoding device (100) can be applied to the filtering unit (240), the inter prediction unit (260), and the intra prediction unit (265) of the image decoding device (200) in the same or corresponding manner, respectively.

[0107] CTU's Split Overview

[0108] As described above, a coding unit can be obtained by recursively partitioning a coding tree unit (CTU) or a maximum coding unit (LCU) according to a quad-tree / binary-tree / ternary-tree (QT / BT / TT) structure. For example, a CTU can first be partitioned into a quad-tree structure. The leaf nodes of the quad-tree structure can then be further partitioned into a multi-type tree structure.

[0109] Splitting according to a quadtree means splitting the current CU (or CTU) into four parts. Splitting according to a quadtree allows the current CU to be split into four CUs with the same width and height. If the current CU is no longer split into a quadtree structure, the current CU corresponds to a leaf node of the quadtree structure. A CU corresponding to a leaf node of the quadtree structure is no longer split and can be used as the final coding unit described above. Alternatively, a CU corresponding to a leaf node of the quadtree structure can be further split according to a multi-type tree structure.

[0110] Creating a list of MPM candidates

[0111] Typically, when an image is segmented into blocks, the current block to be encoded and the neighboring blocks have similar image characteristics. Therefore, the current block and neighboring blocks are likely to have identical or similar intra-prediction modes. Therefore, the encoder can utilize the intra-prediction modes of the neighboring blocks to encode the intra-prediction mode of the current block.

[0112] For example, the encoder / decoder can construct a list of most probable modes (MPMs) for the current block. The MPM list may also be referred to as an MPM candidate list. Here, the MPM may refer to a mode used to improve coding efficiency by considering the similarity between the current block and surrounding blocks during intra prediction mode coding. As described above, the MPM list may be constructed including a planar mode, or may be constructed excluding a planar mode. For example, if the MPM list includes a planar mode, the number of candidates in the MPM list may be six. And, if the MPM list does not include a planar mode, the number of candidates in the MPM list may be five.

[0113] An encoder / decoder can construct an MPM list containing six MPMs.

[0114] The following types of modes can be considered to construct the MPM list.

[0115] - Default intra modes

[0116] - Neighbor intra modes

[0117] - Intra modes derived from surrounding inter modes (IPM modes)

[0118] - DIMD (Decoder-side intra mode derivation) modes

[0119] - Derived intra modes

[0120] For the above peripheral intra modes, peripheral blocks, such as the left peripheral block, the upper peripheral block, the lower left peripheral block, the upper right peripheral block, and the upper left peripheral block, may be considered. When utilizing the peripheral intra modes with MPM, the input order may vary depending on the size information of the current block. For example, if the height of a block is greater than or equal to the width of the block, the intra mode of the upper peripheral block may be considered first, and then the intra mode of the left peripheral block may be considered.

[0121] Even when neighboring blocks are coded in inter mode rather than intra mode, intra mode information can be obtained through the IPM buffer. If the position indicated by the motion vector of a neighboring inter block is in intra mode, the corresponding intra mode can be stored in the IPM buffer. The intra mode stored in the IPM buffer can be used as the MPM mode of the neighboring block.

[0122] MPM candidates can be constructed from DIMD. If the current block is not in DIMD mode, the intra mode derived from DIMD can be used as an MPM candidate.

[0123] As described above, if the MPM list is configured not to include the planar mode, the planar mode is excluded from the list, and the number of MPM list candidates can be set to 5.

[0124] The above-described MPM list construction method can be used when MIP is not applied to the current block. For example, the above-described MPM list construction method can be used to derive an intra prediction mode used in LIP, PDPC, MRL, ISP intra prediction, or normal intra prediction. Meanwhile, the left neighboring block or the upper neighboring block can be coded based on the above-described MIP. That is, MIP can be applied when coding the left neighboring block or the upper neighboring block. In this case, it is not appropriate to use the MIP intra prediction mode number of the neighboring block (left neighboring block / upper neighboring block) to which MIP is applied as it is in the MPM list for the current block to which MIP is not applied. Therefore, in this case, for example, the intra prediction mode of the neighboring block (left neighboring block / upper neighboring block) to which MIP is applied can be considered to be DC or planar mode. Alternatively, as another example, the intra prediction mode of the surrounding blocks (left surrounding block / upper surrounding block) to which MIP is applied can be mapped to a general intra prediction mode based on a mapping table and used to construct the MPM list. In this case, the mapping can be performed based on the block size type of the current block. For example, the mapping table can be expressed as follows.

[0125]

[0126] Here, MIP IntraPredMode[ xNbX ][ yNbX ] represents the MIP intra prediction mode of the surrounding block (left surrounding block / upper surrounding block), and the block size type MipSizeId represents the block size type of the surrounding block or the current block. The numbers under the block size type values ​​0, 1, and 2 represent the general intra prediction mode to which the MIP intra prediction mode is mapped for each block size type.

[0127] For example, if the block size type of the current block is 0 and the MIP intra prediction mode number of the surrounding block is 10, the mapped general intra prediction mode number may be 18.

[0128] However, the above mapping relationship is an example and may be changed.

[0129] Meanwhile, when MIP is applied to the current block, a separate MPM list for the current block to which the MIP is applied may be configured. The MPM list may be called by various names, such as MIP MPM list (or MPM list for MIP, candMipModeList), to distinguish it from the MPM list for cases where MIP is not applied to the current block. Hereinafter, for the sake of distinction, it is referred to as MIP MPM list, but it may also be called an MPM list.

[0130] The above MIP MPM list may include n candidates, for example, n may be 3. The above MIP MPM list may be constructed based on a left peripheral block and an upper peripheral block of the current block. Here, the left peripheral block may refer to the uppermost block among the peripheral blocks adjacent to the left boundary of the current block. In addition, the upper peripheral block may refer to the leftmost block among the peripheral blocks adjacent to the upper boundary of the current block.

[0131] For example, when MIP is applied to the left neighboring block (and the block size type of the left neighboring block is the same as the block size type of the current block), the first candidate intra prediction mode (or candMipModeA) may be set to be the same as the MIP intra prediction mode of the left neighboring block. Also, for example, when MIP is applied to the upper neighboring block (and the block size type of the upper neighboring block is the same as the block size type of the current block), the second candidate intra prediction mode (or cand-ipModeB) may be set to be the same as the MIP intra prediction mode of the upper neighboring block. Meanwhile, the left neighboring block or the upper neighboring block may be coded based on intra prediction other than MIP. That is, an intra prediction type other than MIP may be applied when coding the left neighboring block or the upper neighboring block. In this case, it is not appropriate to use the normal intra prediction mode number of the surrounding block (left surrounding block / upper surrounding block) to which MIP is not applied as a candidate intra mode for the current block to which MIP is applied. Therefore, in this case, as an example, the MIP intra prediction mode of the surrounding block (left surrounding block / upper surrounding block) to which MIP is not applied can be regarded as a MIP intra prediction mode of a specific value (e.g., 0, 1, or 2). Or, as another example, the normal intra prediction mode of the surrounding block (left surrounding block / upper surrounding block) to which MIP is not applied can be mapped to the MIP intra prediction mode based on a mapping table and used to construct a MIP MPM list. In this case, the mapping can be performed based on the block size type of the current block. For example, the mapping table can be expressed as follows.

[0132]

[0133] Here, IntraPredModeY[ xNbX ][ yNbX ] represents the intra prediction mode of the surrounding block (left surrounding block / upper surrounding block). Here, the intra prediction mode of the surrounding block may be an intra prediction mode for the luma component (sample), i.e., a luma intra prediction mode. The block size type MipSizeId represents the block size type of the surrounding block or the current block. The numbers under the block size type values ​​0, 1, and 2 represent the MIP intra prediction mode to which the general intra prediction mode is mapped for each block size type.

[0134] Additionally, the above-mentioned surrounding blocks (e.g., left surrounding block / upper surrounding block) may not be available (e.g., located outside the current picture, located outside the current tile / slice, etc.), or even if MIP is applied, a MIP intra prediction mode that is not available to the current block may be used depending on the block size type. In this case, a specific MIP intra prediction mode predefined for the first candidate and / or the second candidate may be used as the first candidate intra prediction mode or the second candidate intra prediction mode. Additionally, a specific MIP intra prediction mode predefined for the third candidate may be used as the third candidate intra prediction mode.

[0135] For example, the above-described specific MIP intra prediction mode can be represented as shown in the following table. The above-described specific MIP intra prediction mode can be called MIP default candidate modes.

[0136]

[0137] The MIP MPM list can be constructed based on the first candidate intra prediction mode and the second candidate intra prediction mode. For example, when the first candidate intra prediction mode and the second candidate intra prediction mode are different, the first candidate intra prediction mode can be placed as the 0th candidate (ex. candMipModeList[0]) of the MIP MPM list, and the second candidate intra prediction mode can be placed as the 1st candidate (ex. candMipModeList[1]) of the MIP MPM list. The second candidate (ex. candMipModeList[2]) of the MIP MPM list can use the above-described predefined specific MIP intra prediction mode.

[0138] Alternatively, when the first candidate intra prediction mode and the second candidate intra prediction mode are the same, one of the first candidate intra prediction mode and the second candidate intra prediction mode can be inserted as the 0th candidate (ex. candMipModeList[0]) of the MIP MPM list, and the first candidate (ex. candMipModeList[1]) of the MIP MPM list and the second candidate (ex. candMipModeList[2]) of the MIP MPM list can use the above-described predefined specific MIP intra prediction modes.

[0139] As described above, the MIP intra prediction mode of the current block can be derived based on the MIP MPM list. In this case, the MPM flag that can be included in the intra prediction mode information for the MIP as described above can be called intra_mip_mpm_flag, the MPM index can be called intra_mip_mpm_idx, and the remaining intra prediction mode information can be called intra_mip_mpm_remainder. The procedure for deriving the MIP intra prediction mode from the MIP MPM list can be performed as described above.

[0140] Composing a list of Secondary MPM candidates

[0141] The encoder / decoder can construct a secondary MPM (secondary most probable modes) list for the current block. This secondary MPM list can also be referred to as a secondary MPM candidate list. Furthermore, the secondary MPM list can be constructed by excluding overlapping intra-modes in the MPM candidate list. For example, if the MPM list includes mode 50, the secondary MPM list may not include mode 50.

[0142] An encoder / decoder can construct M secondary MPM lists, where M can be 16.

[0143] The following types of modes can be considered to construct a secondary MPM list.

[0144] - Default intra modes

[0145] - Neighbor intra modes

[0146] - Intra modes derived from surrounding inter modes (IPM modes)

[0147] - DIMD (Decoder-side intra mode derivation) modes

[0148] - Derived intra modes

[0149] For the above-mentioned peripheral intra modes, peripheral blocks, such as the left peripheral block, the upper peripheral block, the lower left peripheral block, the upper right peripheral block, and the upper left peripheral block, may be considered. When utilizing the peripheral intra mode as a secondary MPM, the input order may vary depending on the size information of the current block. For example, if the height of the block is greater than or equal to the width of the block, the intra mode of the upper peripheral block may be considered first, and then the intra mode of the left peripheral block may be considered.

[0150] Even when neighboring blocks are coded in inter mode rather than intra mode, intra mode information can be obtained through the IPM buffer. If the position indicated by the motion vector of a neighboring inter block is in intra mode, the corresponding intra mode can be stored in the IPM buffer. The intra mode stored in the IPM buffer can be used as the secondary MPM mode of the neighboring block.

[0151] Template based intra mode derivation (TIMD)

[0152] Figure 4 is a diagram illustrating templates and reference samples used in TIMD. According to Figure 4, for the IPM intra modes of adjacent intra blocks and inter blocks in the surrounding area, the SATD (sum of absolute transformed difference) between the predicted block predicted from the template region and the actual reconstructed sample can be calculated, and then the mode with the lowest SATD can be selected as the intra mode of the current block. Alternatively, the two modes with the lowest SATD can be selected, and the predicted blocks for the two prediction modes can be blended using a weighted sum method to be used as the predicted block of the current block.

[0153] The method of blending two modes can be applied when the conditions in the mathematical formula below are satisfied.

[0154]

[0155] If the above conditions are met, the two modes are blended to generate a prediction block. Otherwise, only the mode with the minimum SATD value can be selected. The weight ratio when blending the two prediction blocks can be as follows:

[0156]

[0157]

[0158] Decoder-side intra mode derivation (DIMD)

[0159] Fig. 5 is a diagram schematically illustrating a HoG (Histogram of gradients), and Fig. 6 is a diagram schematically illustrating a prediction block configuration when the DIMD mode is applied.

[0160] In DIMD mode, intra prediction mode information can be derived and used in the encoder and decoder without being transmitted directly. First, horizontal gradients and vertical gradients are obtained from the second neighboring sample column and row, and a Histogram of Gradients (HoG) can be constructed from them. The HoG can be constructed as shown in Fig. 5. The HoG can be obtained by applying a Sobel filter using L-shaped rows and columns of 3 pixels around the current block. If the boundaries of the blocks exist in different CTUs, they are not used for texture analysis.

[0161] Afterwards, as shown in Fig. 6, two intra modes with the largest histogram amplitudes are selected, and the predicted blocks predicted using these modes are blended with the planar mode to form the final predicted block. The weights can be derived from the amplitudes of the histograms. In addition, the DIMD flag can be transmitted block by block to determine whether DIMD is used.

[0162] Example

[0163] As can be seen in the above DIMD and TIMD techniques, prediction blocks generated in various modes can be combined to generate a final prediction block, and such combined block can bring about improved intra prediction performance. In particular, in the case of DIMD mode, a planar mode, a first intra mode (first intra mode), and a second intra mode (second intra mode), that is, three prediction blocks can be combined to bring about a high improvement in intra prediction performance.

[0164] Both the above DIMD and TIMD can effectively predict intra prediction modes on the decoder side. According to the present disclosure, as can be seen in the DIMD and TIMD techniques, prediction blocks generated in various modes can be combined to generate a final prediction block, and such combined block can improve intra prediction performance. In the present invention, a technique is proposed that effectively derives an intra prediction mode by combining and applying the features of the DIMD mode and the TIMD mode, or that weights the error values ​​of a search area (e.g., a template area) to more accurately derive the intra mode, thereby improving coding performance and quality.

[0165] Meanwhile, when describing the embodiments above, the technical features applicable to the decoder-side intra prediction mode derivation method can also be applied to the search region-based intra prediction mode derivation method as long as they do not conflict with the characteristics of the search region-based intra prediction mode derivation method. Similarly, the technical features applicable to the search region-based intra prediction mode derivation method can also be applied to the decoder-side intra prediction mode derivation method as long as they do not conflict with the characteristics of the decoder-side intra prediction mode derivation method.

[0166] Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

[0167] FIG. 7 is a diagram illustrating an image encoding method or an image decoding method according to one embodiment of the present disclosure. Each order in FIG. 7 may be changed or omitted.

[0168] As an example, first, it may be determined (S701) whether a method for deriving an intra prediction mode will be used on the video decoding device, i.e., the decoder side. This step may include a step including whether to perform DIMD (Decoder-based Intra Mode Derivation). In other words, it may be determined whether to derive an intra prediction mode in the decoder without separate signaling. Whether to perform intra prediction mode derivation on the decoder side may be determined without decoding surrounding blocks used for determining the prediction mode. Meanwhile, as an example, in the case of a video decoding method, step S701 may be determined based on information signaled from a bitstream. As another example, in the case of a video encoding method, step S701 may be performed in the video encoder, but information related to the intra prediction mode derivation method on the decoder side may be encoded and signaled thereafter. In this case, the information can be signaled in a specific unit (e.g., tile, slice, block (e.g., coding tree unit (CTU), coding unit (CU)), etc.). That is, if information related to the application of the decoder-side intra prediction mode derivation method is signaled in the unit (e.g., CTU), the decoder-side intra prediction mode derivation method can be applied to all sub-blocks within the unit (e.g., CTU).

[0169] However, as another example, step S701 may determine whether to use the decoder-side intra prediction mode derivation scheme based on other parameters or other information, without encoding and signaling the corresponding information on the encoder side, i.e., without signaling specific information on the decoder side. As an example, whether to use the decoder-side intra prediction mode derivation may be determined based on the size, shape, width, height, and / or size of the block. For example, in the case of a non-square block, the DIMD mode may always be used. As another example, when the width of the block is greater than the height, for example, when the width is more than twice the height (i.e., width >= 2*height), the decoder-side intra prediction mode derivation scheme may be determined to always be applied. Alternatively, when the area of ​​the current block (e.g., width * height, i.e., width * height) is greater than a specific value (e.g., 1024), the decoder-side intra prediction mode derivation scheme may be determined not to be applied. Meanwhile, although such examples only mention block dimensions, size, shape, etc. as conditions for application of the decoder-side intra prediction mode derivation method, this is only one embodiment of the present disclosure, and the present disclosure is not limited thereto. That is, in order to determine application of the mode derivation method, it can be expanded to include values ​​of other parameters, variables, syntax, etc., and / or other conditions, and this will also be considered as an embodiment of the present disclosure.

[0170] Meanwhile, as an embodiment that takes into account all of the embodiments described above, information related to application of a decoder-side intra prediction mode derivation method to a specific unit (e.g., CTU) is signaled, and application of the decoder-side intra prediction mode derivation method may be determined or not determined to be applied limited to predefined conditions (e.g., block dimensions, size, and / or shape, etc.) for blocks within the unit (e.g., CTU).

[0171] For example, if it is determined that a method of directly deriving a prediction mode on the decoder side is applied, a search area may be determined (S702). As an example, the search area may be referred to as a template area and / or a reconstructed area, and may be an area adjacent to the current block. For example, the search area may be an area adjacent to the left and / or top of the current block. As an example, the search area may be as illustrated in FIG. 8. FIG. 8 is a drawing for explaining a search area of ​​a current block that may be applied to one embodiment of the present disclosure. The search area may include an upper area A, a left area L, and / or an upper left area AL. As illustrated in FIG. 8, H A is the height of the search area in region A and H L is the height of the search area in the L region, and W A is the width of the search area in region A and W L is the width of the search region of the L region, and the search region can be used to determine the intra prediction mode and blending weights that can be used for the prediction block. Information related to the search region that can be used to determine the search region (e.g., the location, size, shape, etc. of the search region) can be predefined between the encoder and decoder without separate signaling, or can be explicitly signaled by being included in the bitstream.

[0172] Meanwhile, the size, shape, and form of the search area may vary depending on the size, shape, and form of the current block. In other words, the search area may be based on the current block. For example, in the case of a 4x4 block, W A =3, H A =3, W L =3, H L=3 can be defined as the size of the search area. For example, for non-4x4 blocks, W A =W, H A =3, W L =3, H L =H can be defined as the size of the search region. However, the search region defined here is only an example and may vary depending on the definition of the encoder / decoder. Meanwhile, determining the search region according to the size of the current block can be defined so that a relatively small search region can be used for small blocks in order to reduce the computational complexity required per pixel (pixel), since the computational complexity required in the process of applying the decoder-side intra prediction mode derivation method is directly linked to the size of the search region. In addition, the search region that exceeds the boundaries of slices, tiles, blocks (e.g., CTUs), and voluntary boundaries may not be used in order to maintain independence for each slice, tile, and block (e.g., CTU).

[0173] Also, through the dimensions, size, shape, etc. of the block, for example, considering the ratio of width and height, H determines the size of the A, L, and AL areas of Fig. 8. A and W L The size of can be determined differently. For example, for a 32x4 block, H is used to minimize the computational complexity and memory increase required for the decoder-side intra prediction mode derivation process. A Use relatively small values ​​and W LThe size of the search region can also be adjusted by using a relatively large value. Meanwhile, the method of combining the A, L, and AL regions and the size of the search region can also be determined according to the intra prediction mode used in the region adjacent to the current block that is the target of encoding / decoding. For example, if the intra prediction mode used in the left and top adjacent regions of the current block is configured as a mode having a vertical direction and / or a direction adjacent to the vertical direction, the A region can be decided to be used as the search region, or the size of the search region in the direction of the A region can be set to a relatively large value and used to perform intra prediction mode derivation on the decoder side.

[0174] On the other hand, if the intra prediction mode used in the upper adjacent area of ​​the current block is configured as a mode having a horizontal direction and / or a direction adjacent to the horizontal direction, the correlation between area A and the current block is judged to be low, and area A may be excluded from the search area, or the size of the search area in the direction of area A may be set small to be used for decoder-side intra prediction mode derivation.

[0175] Similarly, if the intra prediction mode used in the left adjacent region of the current block (e.g., L region) is configured as a horizontal direction and / or a mode adjacent to the horizontal direction, the L region may be decided to be used as a search region, or the size of the search region in the L region direction may be set to a large size to be used for decoder-side intra prediction mode derivation.

[0176] On the other hand, if the intra prediction mode used in the left adjacent region of the current block (e.g., L region) is configured as a mode having a directionality in the vertical direction and / or adjacent to the vertical direction, the correlation between the L region and the current block is judged to be low, so the L region can be excluded from the search region, or the size of the search region in the direction of the L region can be set small to be used for decoder-side intra prediction mode derivation.

[0177] In addition, if the intra prediction mode used in the upper left adjacent area of ​​the current block (e.g., AL area, etc.) is configured as a mode having a directionality predicted from upper left to lower right and / or an adjacent directional mode, etc., it is determined to use the AL area as a search area, or the size of the search area in the direction of the AL area can be set large to be used for decoder-side intra prediction mode derivation.

[0178] On the other hand, if the intra prediction mode used in the upper left adjacent area of ​​the current block (e.g., AL area, etc.) is a mode having a directionality predicted from upper right to lower left or from lower left to upper right, and / or an adjacent directional mode, etc., the correlation between the AL area and the current block is judged to be low, so the AL area can be excluded from the search area, or the size of the search area in the direction of the AL area can be set small to be used for deriving the intra prediction mode on the decoder side.

[0179] Meanwhile, depending on the intra prediction mode used in the area adjacent to the current block, the use of the A area, the L area, and the AL area and / or the size of the search area may be determined. As described above, the relationships among the upper adjacent area, the left adjacent area, and the upper left adjacent area and the A area, the L area, and the AL area may be defined separately, or the relationships may be defined by combining them. For example, if the intra prediction mode frequently used in the adjacent area is a mode having a vertical and / or vertically adjacent direction, regardless of the adjacent area (e.g., the A, L, and AL areas), the search area may be configured centered on the A area or the A area and the AL area, and the size of the search area in the corresponding direction may be adjusted to be relatively large.

[0180] On the other hand, if the intra prediction mode frequently used in the adjacent area is a mode having a horizontal and / or horizontally adjacent direction, the search area may be configured around the L area or the L area and the AL area, or the size of the search area in that direction may be adjusted to be relatively large.

[0181] As another example, if a frequently used intra prediction mode used in an adjacent region has a directionality predicted from upper left to lower right or is composed of adjacent directional modes, etc., the search region may be configured around the AL region or the A region, the L region, or the AL region, or the size of the search region in that direction may be adjusted to be relatively large.

[0182] For example, when a search area is determined, an intra prediction mode may be derived (S703). There may be one or more derived intra prediction modes, and a prediction block may be generated according to the derived intra prediction modes. For example, a method for deriving an intra prediction mode may be first determined, and a method using a gradient of the search area, a method using an error value of the search area, etc. may be used to derive the intra prediction mode. When using the gradient of the search area, a method based on HoG (Histogram of gradients) may be used. For example, the HoG method may include a process of performing a given differential filtering on pixel values ​​in the search area to determine how similar the distribution of pixel values ​​in the search area is to the direction of each intra prediction mode. In this process, the most similar intra prediction mode is determined based on the gradient of pixel values ​​obtained based on the ratio of horizontal and vertical changes, and an amplitude value corresponding to the gradient, i.e., the sum of the horizontal change amount and the vertical change amount, is assigned to the intra prediction mode. By applying this process while moving horizontally and vertically to pixel values ​​within the search region, the accumulated amplitude value for each intra prediction mode is ultimately obtained, and the process of obtaining this value can be included in the HoG (Histogram of gradients) method for each intra prediction mode. In addition, the HoG-based intra prediction mode derivation method may also include a process of applying a differential filter to the determined search region. For example, the differential filter can be a Sobel filter, but other differential filters can also be used. Through this, the HoG can have information on the directionality and / or non-directionality of the search region and the magnitude, i.e., amplitude, for each.Meanwhile, as an example, in the process of obtaining the HoG value, the process of applying the differential filter may include a process of moving vertically and / or horizontally in units of one pixel within the search area and deriving the amplitude value. However, since the directionality within a given search area is likely to exist as having the same directionality among pixels within a certain group rather than being precisely determined in units of pixels, the differential filter may be applied to any number of pixel units in the process of obtaining the amplitude (amplitude, size, Amplitude) in the horizontal or vertical direction to reduce unnecessary computational complexity. Here, the unit to which the differential filter is applied may be determined differently depending on the template area (areas A, L, and AL in Fig. 8). For example, the differential filter may be applied in units of two pixels in areas A and L, and in units of one pixel in area AL to derive the amplitude value.

[0183] Meanwhile, in the case of another example, a template error value-based derivation method, for the intra prediction mode, the error value between the predicted block predicted from the search region and the actual reconstructed sample can be derived. Here, the intra prediction mode can mean all / some directional and non-directional intra modes. Some intra modes can mean the MPM mode described above or the secondary MPM candidate described above. In addition, it can also mean the intra prediction mode stored in the intra prediction block and inter prediction block adjacent to the current block. Here, in order to obtain the error value, an error calculation method such as SAD (Sum of difference), SATD (Sum of transformed difference), SSE (Sum of squared error), MR-SAD (Mean-removed sum of difference), MR-SSE (Mean-removed sum of squared error), and MR-SATD (Mean-removed sum of transformed difference) can be used. Meanwhile, before applying the above methods, a sharpening filter and / or a gradient filter may be applied to the previously restored pixels in the search area. For example, in the HoG-based intra prediction mode derivation method, a gradient filter may be applied after applying a sharpening filter to the pixels in the process of obtaining the HoG, or only the gradient filter may be applied. In the case of a template error value-based derivation method, an error value may be derived after applying a sharpening filter to the pixels. For example, the following sharpening filter F may be applied.

[0184]

[0185] As another example, consider the following gradient filter M x , M y may apply.

[0186]

[0187] Also, as another example, the following gradient filter M x , M y may apply.

[0188]

[0189]

[0190]

[0191] However, the above sharpening filter and gradient filter are both embodiments of the present disclosure, and the filter size and filter coefficients may also vary. In addition, it is also possible to apply a combination of the above filters to pre-reconstructed (reconstructed) pixels of the search area. Here, whether to apply the gradient filter can be signaled or applied as an agreement between the encoder and the decoder without signaling. For example, when the application of the gradient filter between the encoder and the decoder is determined without signaling specific information, other syntax, parameters, variables, etc. can be used as conditions. Meanwhile, the derived intra prediction mode can be an intra prediction mode candidate, and one or more intra prediction modes can be configured. Here, the number of intra prediction mode candidates can be determined, and a weight value for each intra prediction mode candidate can be determined (S704). For example, a prediction block can be generated using the intra prediction mode candidate, and a weight value can be determined for the corresponding prediction block.

[0192] Meanwhile, when the HoG method is used to derive the intra prediction mode, the amplitude values ​​induced by the HoG are sorted in ascending order, the M largest intra prediction modes are selected, and the prediction blocks for each prediction mode are weighted and added together to generate the final prediction block. At this time, the weight values ​​can be calculated to have a weight ratio proportional to the amplitude for each intra prediction mode. Here, the number of intra prediction modes selected can be a predefined positive integer.

[0193] As another example, when a search region error value-based method is used to derive an intra prediction mode, after deriving the error value between the generated prediction block and the reconstructed block for each search region, the error value can be sorted in order of smallest error value, and N intra prediction modes with the smallest error value can be selected. Prediction blocks can be generated based on the selected intra prediction modes, and the final prediction blocks can be generated by applying weights to the prediction blocks and adding them. At this time, the weight values ​​can be calculated so as to have a weight ratio inversely proportional to the error value of each intra prediction mode. For example, the weight ratio when weighting two prediction blocks can be as follows. Here, N can be a predefined positive integer.

[0194]

[0195]

[0196] - costMode1: The error value of the intra mode with the smallest error value

[0197] - costMode2: The error value of the intra mode with the second lowest error value

[0198] - Weight1: : Weight ratio of the intra mode with the smallest error value

[0199] - Weight2: The weight ratio of the intra mode with the second lowest error value.

[0200] As in Equation 6, each weight is derived based on the error value, but the sum of each weight can be set to a specific value (e.g., 1).

[0201] Meanwhile, since the above mathematical expression 6 is intended to explain an example in which only two intra prediction modes are selected, the expression may be further modified in the case in which two or more intra prediction modes are selected.

[0202] Meanwhile, when generating the final prediction block, the prediction block generated in planar mode can be generated by weighting and including it. As an example, the weight value of the planar mode can be assigned a fixed weight regardless of the amplitude value or error value. For example, the planar prediction block can be assigned a weight value close to 1 / 3 or 1 / 4. However, since this corresponds to one embodiment of the present disclosure, it may also have a weight value determined according to the ratio of the amplitude value or error value, like other prediction blocks.

[0203] Meanwhile, as an example, the number of prediction blocks for weighted summation can be determined based on specific conditions. For example, when the HoG method is used, assume that M intra prediction modes with the largest amplitudes are selected. In this case, the M prediction modes can be included as intra prediction mode candidates if they satisfy the following conditions. Thereafter, the predicted blocks predicted using the intra prediction mode candidates and the planar prediction blocks can be weighted and summed to form the final prediction block.

[0204]

[0205] Here, Amp1 can mean the amplitude value of the mode with the largest amplitude. Amp k can mean the amplitude value of the mode with the kth largest amplitude. m is any real number, for example, 2. m is any positive integer, for example, 5.

[0206] As another example, the number of modes (M or N) used in the weighted sum of the prediction block described above can be determined differently depending on the size (width or height, etc.) or shape of the current block. For current blocks with a size greater than a certain value, a relatively large number of prediction modes can be used, and for small blocks, a smaller number of prediction modes can be used in the weighted sum. This is to carefully consider the difference in the amount of change in pixel values ​​depending on the size of each block. For example, for a 32x32 block, the M (or N) value can be set to 5 and used, and for an 8x4 block, the M (or N) value can be set to 1 or 2 and used.

[0207] As another example, Amp k Depending on the distribution of values, the number of modes to be used in the weighted sum can be determined differently. For example, suppose that the largest amplitude value among the amplitude values ​​for the intra prediction mode is Amp1. In this case, when comparing that value with other amplitude values, other amplitudes (Amp k ) values ​​are significantly different from each other (for example, n times the other amplitude values), the number of intra prediction modes (M or N) used for the weighted sum may be determined as 1. Or, as another example, if the sum of the top P amplitude values ​​when sorted in ascending order of amplitude values ​​is greater than or equal to a certain ratio when compared to the sum of all amplitude values, the number of modes (M or N) used for the weighted sum may be determined as P, where P may be a natural number. For example, if the sum of Amp1 + Amp2 + Amp3 is greater than or equal to a certain ratio when compared to the sum of all amplitude values, the number of modes (M or N) used for the weighted sum may be determined as 3. In this case, the certain ratio may be a value defined in advance between the encoder and the decoder, and may mean, for example, a value corresponding to half of the sum of all amplitude values. According to the method of this embodiment, the number of intra mode candidates may vary.

[0208] As an example, information related to the embodiments described above may be signaled as shown in the table below.

[0209] Coding unit syntaxDescriptor… dimdFlagae(v)If (dimdFlag){IsConditionae(v)}…

[0210] In the embodiment related to the above table, information is described as being signaled in units of coding units, but since this corresponds to one embodiment of the present disclosure, it may also be signaled in various units such as various blocks, slices, tiles, etc. including coding units.

[0211] As an example, for deriving an intra prediction mode, information indicating whether a decoder-side intra prediction mode derivation method is used may be signaled. As an example, the information may be referred to as first information, and the first information may be expressed as dimdFlag. If the value of the first information is a specific value (e.g., 0), it may indicate that the decoder-side intra prediction mode derivation method is not used. On the other hand, if the value of the first information is a specific value (e.g., 1), it may indicate that the decoder-side intra prediction mode derivation method is used.

[0212] Thereafter, other information (e.g., second information, etc.) may be signaled based on the first information. For example, if a decoder-side intra prediction mode derivation method is applied, other information may be signaled. For example, if a decoder-side intra prediction mode derivation method is applied, information indicating whether a condition is used to determine the number of intra prediction modes for weighted summation may be signaled. As an example, the information may be referred to as second information, expressed as IsCondition, and may be signaled when the value of the first information is a specific value (e.g., 1).

[0213] As another example, without signaling the second information, for the adjacent pre-reconstructed (reconstructed) sample area of ​​the current block, a prediction block can be generated by selecting a method of generating each prediction block and calculating the error value between the prediction block and the pre-reconstructed sample, and generating a prediction block with a smaller error value. As an example, as mentioned above, error calculation methods such as SAD (Sum of difference), SATD (Sum of transformed difference), SSE (Sum of squared error), MR-SAD (Mean-removed sum of difference), MR-SSE (Mean-removed sum of squared error), and MR-SATD (Mean-removed sum of transformed difference) can be used to calculate the error value.

[0214] In addition, the pre-reconstructed sample area can be predefined by an agreement between the encoder and the decoder. For example, the pre-reconstructed sample area can be the same as the search area described above. As another example, when the width and height of the current block are W and H, the upper sample area of ​​the current block can be defined as a WxP area, and the left sample area can be defined as a QxH area. P and Q are any natural numbers, for example, 1. The pre-reconstructed sample area above is an example, and various adjacent reconstructed areas can be used, such as utilizing the upper left sample area of ​​the current block in addition to the left sample area or the upper sample area as described above.

[0215] Additionally, when deriving an intra prediction mode, a prediction block generated using a specific mode (e.g., planar mode) may be restricted to be used only for generating a final prediction block. However, according to another embodiment of the present disclosure, block generation related to the use of the planar mode may not be forced. In other words, the planar prediction block may not necessarily be used. Therefore, it is necessary to consider both cases in which a prediction block generated using the planar prediction mode is used for the final prediction block and cases in which it is not used. Accordingly, in one embodiment, whether or not the planar prediction mode is used may be signaled. For example, the signaling may be performed as follows.

[0216] Coding unit syntaxDescriptor… dimdFlagae(v)If (dimdFlag){IsPlanarModeae(v)}…

[0217] In the embodiment related to the above table, information is described as being signaled at the coding unit level, but since this corresponds to one embodiment of the present disclosure, it may also be signaled at various units such as various blocks, slices, tiles, etc. including the coding unit. As an example, in order to derive an intra prediction mode, information indicating whether a decoder-side intra prediction mode derivation method is used may be signaled. As an example, the information may be referred to as first information, and the first information may be expressed as dimdFlag. Since the description other than this is the same as that described above, redundant description is omitted.

[0218] Thereafter, other information (e.g., third information, etc.) may be signaled based on the first information. For example, if a decoder-side intra prediction mode derivation method is applied, other information may be signaled. For example, if a decoder-side intra prediction mode derivation method is applied, information indicating whether a planar prediction block is used to generate a final prediction block may be signaled. As an example, this information may be referred to as third information, may be expressed as IsPlanarMode, and may be signaled when the value of the first information is a specific value (e.g., 1).

[0219] On the other hand, although in the above embodiment, specific information is explicitly signaled to determine whether the planar prediction block is used to generate the final prediction block, signaling of specific information may not be performed to determine whether the planar prediction block is used without signaling of third information. For example, for adjacent pre-reconstructed sample areas of the current block, by calculating error values ​​with pre-reconstructed samples for each of the final prediction block using the planar prediction block and the final prediction block not using the planar prediction block, and determining to use the method with the smaller error value, it is possible to determine whether the planar prediction mode is used and generate the final prediction block without signaling of separate information.

[0220] Additionally, when deriving an intra prediction mode, in one embodiment, a signal may be signaled using a gradient, for example, using the HoG method, or whether to derive the intra prediction mode based on the error value of the search region. For example, the signaling may be performed as follows.

[0221] Coding unit syntaxDescriptor… dimdFlagae(v)If (dimdFlag){derivationMethodae(v)}…

[0222] In the embodiment related to the above table, information is described as being signaled at the coding unit level, but since this corresponds to one embodiment of the present disclosure, it may also be signaled at various units such as various blocks, slices, tiles, etc. including the coding unit. As an example, in order to derive an intra prediction mode, information indicating whether a decoder-side intra prediction mode derivation method is used may be signaled. As an example, the information may be referred to as first information, and the first information may be expressed as dimdFlag. Since the description other than this is the same as that described above, redundant description is omitted.

[0223] Thereafter, other information (e.g., fourth information, etc.) may be signaled based on the first information. For example, if a decoder-side intra-prediction mode derivation method is applied, other information may be signaled. For example, if a decoder-side intra-prediction mode derivation method is applied, information indicating the intra-prediction mode derivation method may be signaled. As an example, the information may be referred to as fourth information, expressed as derivationMethod, and may be signaled when the value of the first information is a specific value (e.g., 1).

[0224] As another example, without signaling the fourth information, for the adjacent previously restored sample area of ​​the current block, an intra mode is derived using HoG, and for each of the generated prediction blocks, an error value with the previously restored sample is obtained based on the template error value, and a prediction block can be generated without signaling using a method with a smaller error value.

[0225] Meanwhile, the embodiments described above may be used independently, but they may also be used in combination with each other, so that a final prediction block can be generated according to a combination of the embodiments.

[0226] For example, as described in the above embodiment, a gradient-based (HoG-based) intra prediction mode derivation method, an error value-based intra mode derivation method of a search region, a method including a planar prediction block in a final prediction block, a method not including a planar prediction block in a final prediction block, and a condition related to amplitude (e.g., Amp1 < m * Amp k ) and / or conditions related to amplitude (e.g., Amp1 < m * Amp k ) can be used in combination as long as they are not conflicting, and the combination can be determined by a promise between the encoder and decoder or signaling of specific information.

[0227] For example, a gradient-based (HoG-based) intra prediction mode derivation method, a method of including a planar prediction block in the final prediction block, and conditions related to amplitude (e.g., Amp1 < m * Amp k ) can also be used to generate the final intra prediction block based on a method for determining intra prediction mode candidates without using a gradient-based (HoG-based) intra prediction mode derivation method and a method for including a planar prediction block in the final prediction block, and conditions related to amplitude (e.g., Amp1 < m * Amp k ) can also be used to generate the final intra prediction block based on the method of determining the intra prediction mode candidates.

[0228] As another example, a gradient-based (HoG-based) intra prediction mode derivation method and a method that does not include the planar prediction block in the final prediction block and conditions related to amplitude (e.g., Amp1 < m * Amp k) can also be used to generate the final intra prediction block based on the method of determining the intra prediction mode candidates without gradient-based (HoG-based) intra prediction mode derivation and the method of not including the planar prediction block in the final prediction block and the conditions related to amplitude (e.g., Amp1 < m * Amp k ) can also be used to generate the final intra prediction block based on the method of determining the intra prediction mode candidates.

[0229] As another example, a method for deriving intra-modes based on error values ​​in the search region and a method for including planar prediction blocks in the final prediction block, and conditions related to amplitude (e.g., Amp1 < m * Amp k ) can also be used to generate the final intra prediction block based on a method for determining intra prediction mode candidates without an error value of the search region, but as another example, a method for deriving intra modes based on the error value of the search region and a method for including a planar prediction block in the final prediction block, and conditions related to amplitude (e.g., Amp1 < m * Amp k ) can also be used to generate the final intra prediction block based on the method of determining the intra prediction mode candidates.

[0230] As another example, a method for deriving intra-modes based on error values ​​in the search region and a method for not including planner prediction blocks in the final prediction block and conditions related to amplitude (e.g., Amp1 < m * Amp k ) can also be used to generate the final intra prediction block based on the method of determining the intra prediction mode candidates without the error value of the search region, the method of deriving the intra mode based on the error value of the search region, the method of not including the planar prediction block in the final prediction block, and the condition related to the amplitude (e.g., Amp1 < m * Amp k ) can also be used to generate the final intra prediction block based on the method of determining the intra prediction mode candidates.

[0231] Meanwhile, in the embodiments described with reference to Tables 6 to 8 above, all or part of the combined information disclosed in the embodiments may be signaled, only some information may be signaled and the remaining information may be derived, or all information may be derived without signaling. Table 9 below is a table for explaining an embodiment in which all of the information in Tables 6 to 8 is signaled.

[0232] Coding unit syntaxDescriptor… dimdFlagae(v)If (dimdFlag){derivationMethodae(v)IsPlanarModeae(v)IsConditionae(v)}…

[0233] In the embodiment related to the above table, information is described as being signaled at the coding unit level, but since this corresponds to one embodiment of the present disclosure, it may also be signaled at various units such as various blocks, slices, tiles, etc. including the coding unit. As an example, in order to derive an intra prediction mode, information indicating whether a decoder-side intra prediction mode derivation method is used may be signaled. As an example, the information may be referred to as first information, and the first information may be expressed as dimdFlag. Since the description other than this is the same as that described above, redundant description is omitted.

[0234] Thereafter, other information (e.g., second, third, fourth information, etc.) may be signaled based on the first information. The second information indicating whether a condition is used to determine the number of intra prediction modes for weighted summation, the third information indicating whether the planar prediction block is used to generate the final prediction block, and the fourth information indicating the intra prediction mode derivation method may all be signaled. Since the content of each information is the same as described above, a duplicate description is omitted.

[0235] Alternatively, only some of the above information may be signaled, or only one of the second, third, or fourth pieces of information may be signaled, or only two pieces of information may be signaled. For example, only the fourth piece of information may be signaled, with the remaining information derived through an encoder / decoder agreement.

[0236] Meanwhile, when the remaining information is derived from the encoder / decoder promise, if the intra prediction mode is derived based on gradient (HoG-based), the planar prediction block can be determined to always be included in the final prediction block. As another example, if the intra prediction mode is derived based on the error value of the search region, the amplitude-related condition (e.g., Amp1 < m * Amp k ) conditions can be determined to always apply.

[0237] For example, depending on the intra prediction mode derivation method, the number of intra prediction mode candidates for generating the final prediction block may vary. For example, a gradient-based (HoG-based) intra prediction mode derivation method may have at most n intra prediction mode candidates (e.g., 6). Meanwhile, a search region error-based intra mode derivation method may have at most n intra candidates (e.g., 2).

[0238] Additionally, for the above embodiments, whether or not to apply a gradient filter when deriving an intra prediction mode can be combined as in the above embodiments. For example, some of the second to fourth information described in the above embodiments and the information related to whether or not to apply a gradient filter can be signaled, and some can be derived through an encoder / decoder agreement. Alternatively, all of them can be signaled. Alternatively, all of them can be derived through an encoder / decoder agreement without signaling.

[0239] In addition, on the other hand, the information described above may be signaled in upper level parameters such as Video parameter set (VPS), Sequence parameter set (SPS), Adaptation parameter set (APS), Picture parameter set (PPS), Picture Header, Slice Header, and may be signaled in units of tiles, blocks (e.g., coding tree units, coding units, etc.), and it is also possible for information with similar meaning to be signaled in lower levels based on cases where the information is signaled in upper levels and the information is a specific value.

[0240] FIG. 9 is a diagram illustrating an image encoding method and / or an image decoding method according to one embodiment of the present disclosure. The order of each step in FIG. 9 may be changed or omitted.

[0241] Meanwhile, the error value between the prediction block generated based on the search area and the actual reconstruction sample can be calculated, and the prediction mode with the smallest error value can be selected as the intra prediction mode of the current block. In this process, the error value is calculated by applying the same weight to each reconstruction sample in the search area, but the correlation of the reconstruction sample may decrease as it gets farther from the current block, so the intra prediction mode derivation may not be accurate and the coding performance may be reduced. Therefore, the embodiment referring to FIG. 10 proposes a method of determining the weight applied to the error value according to the distance between the sample of the search area and the current block, thereby more accurately calculating the intra prediction mode and improving the prediction performance.

[0242] As an example, whether to perform search region-based intra prediction mode derivation may be determined (S901). This step may include a step including whether to perform template-based Intra Mode Derivation (TIMD). In this case, whether to perform may be determined based on information on whether to perform the signaled search region-based intra prediction mode. However, in another example, whether to perform may be determined based on an encoder / decoder agreement without separate information signaling. For example, whether to perform may be determined without separate information signaling based on the size, shape, form, dimensions, etc. of the current block. As an example, if the size or area of ​​the current block is greater than a specific value (for example, if width * height is greater than 1024), it may be determined that search region-based intra prediction mode derivation is not performed. This is an example, and other values ​​and / or other conditions may be determined based on an encoder / decoder agreement.

[0243] Thereafter, a search area may be determined (S902). The search area may be used to determine an intra prediction mode and blending weights. According to the embodiment described above with reference to FIG. 8, the adjacent upper A area, the left L area, and / or the upper left AL area of ​​the current block may be used as the search area. Additionally, a combination of the above areas may also be used as the search area. Meanwhile, the search area may be predefined in the encoder / decoder without signaling, or a specific search area may be determined by signaling related information.

[0244] As described above with reference to FIG. 8, the size of the search area may also vary depending on the current block size. For example, if the size of the current block is small, the search area may also be applied smaller. For example, in the case of a 4x4 block, W A =2, H A=2, W L =2, H L ==2 can be used to define the size of the search area. If the size of the current block is large, the size of the search area can also be applied larger. For example, in the case of blocks other than 4x4, W A =W, H A =H, W L =4, H L =H can be used to define the size of the search region. The search region defined here is an example and may vary depending on the definition of the encoder / decoder. Meanwhile, the size of the search region according to the current block size is closely related to the increase in computational complexity required in the process of applying the search region-based intra prediction mode derivation. Therefore, in order to reduce the computational complexity required for each pixel (pixel), it is necessary to define the search region so that a relatively small area can be used for small blocks.

[0245] As described above with reference to FIG. 8, search areas that extend beyond boundaries of slices, tiles, blocks (e.g., CTUs, CUs, etc.) and virtual boundaries may not be used to maintain independence for each slice, tile, slice, tile, block (e.g., CTUs, CUs, etc.).

[0246] As described above with reference to FIG. 8, H also determines the sizes of the A area, the L area, and the AL area by considering the dimensions, shape, and size form of the block (e.g., the ratio of width and height, etc.). A and W L The size of the block may be determined differently. For example, for a 32x4 block, H is used to minimize the computational complexity and memory increase required for this process. A Use relatively small values ​​and W L The value can be a relatively large value.

[0247] As described above with reference to FIG. 8, the combination method of the A region, the L region, and the AL region and the size of the search region can be determined according to the intra prediction mode used in the region adjacent to the current block that is the target of encoding / decoding. As described above with reference to FIG. 8, the correlation with each region can be derived based on the direction of the intra prediction mode (e.g., vertical or horizontal direction) and the size of each region can be adjusted to perform search region-based intra prediction mode derivation.

[0248] Afterwards, intra prediction mode candidates can be derived (S903). Each candidate may be derived based on the intra prediction modes stored in adjacent intra prediction blocks and inter blocks around the current block. As described above, MPM or secondary MPM mode candidates may be included. In addition, any intra mode candidate may be constructed in a method defined by an agreement between the encoder and the decoder. For example, an intra prediction mode candidate may be derived by merging an MPM or secondary MPM with the intra prediction modes stored in adjacent intra prediction blocks and inter blocks around the current block. In this case, an intra prediction mode candidate may be derived by prioritizing an intra prediction mode based on a specific method among the MPM, secondary MPM, and intra prediction modes stored in adjacent blocks around the current block, and the priorities between the modes may follow a predefined order commonly used by the encoder and the decoder.

[0249] At this time, for the intra prediction mode candidates, the error value between the predicted block and the actual reconstructed sample can be obtained based on the search area, and the error values ​​of the intra prediction mode candidates can be derived. As described above, to obtain the error value, error calculation methods such as SAD (Sum of difference), SATD (Sum of transformed difference), SSE (Sum of squared error), MR-SAD (Mean-removed sum of difference), MR-SSE (Mean-removed sum of squared error), and MR-SATD (Mean-removed sum of transformed difference) can be used.

[0250] Thereafter, the number of intra prediction mode candidates and the weight values ​​to be applied to each prediction block can be determined (S904). In this case, an error value is derived based on each intra prediction mode, and the error values ​​are sorted in descending order, so that N random intra prediction modes with the smallest error values ​​are selected, and prediction blocks are generated based on the selected intra prediction modes, and the blocks are weighted to generate a final prediction block. As an example, the following mathematical expression 8 can be used as a condition for weighting N random modes.

[0251]

[0252] In the above mathematical expression 8, costMode1 refers to the error value of the intra mode with the smallest error value. costMode krepresents the error value of the intra mode with the kth smallest error value. m is any real number, for example, 2. N is any real number, for example, 2. The weight value can be calculated to have a weight ratio inversely proportional to the error value of each intra prediction mode. For example, the weight ratio when weighting two prediction blocks is the same as that described with reference to mathematical expression 6 above, so redundant explanation is omitted.

[0253] Meanwhile, as described above, in one embodiment, the weights for error values ​​may be determined differently depending on the sample distance between the samples in the search area and the current block. The weights here are for error values, and are intended to prioritize samples within the search area according to their distance from the current block. For example, a high weight may be applied to error values ​​for samples close to the current block, and a low weight may be applied to error values ​​for samples far from the current block. This will be described in detail with reference to FIG. 10. FIG. 10 is a diagram illustrating a process of calculating weights for error values ​​for a search area that can be applied to one embodiment of the present disclosure.

[0254] For example, referring to FIG. 10, weights can be applied only to the error values ​​for the first line adjacent to the current block among the sample lines in a partial restoration area, i.e., the search area. The error values ​​can be derived based on mathematical equation (9), as follows.

[0255]

[0256] As shown in the above mathematical expression 9, the error value for the sample line of the search area can be updated. According to the embodiment of the above mathematical expression 9, an update is performed on the error value for the first line, so that the error value for the search area of ​​the corresponding intra prediction mode can be updated. In the above mathematical expression 9, k is a weight value, Recon lineαis the restored sample of the αth line, Pred lineα is the prediction sample of the αth line, Recon lineX is the initial restoration sample of the last line of the search area, Pred lineX may mean a prediction sample for the last line of the search area. k may be, for example, an arbitrary value, 2. Error(a,b) is an error calculation function of a and b, and to obtain the error value, an error calculation method such as SAD (Sum of difference), SATD (Sum of transformed difference), SSE (Sum of squared error), MR-SAD (Mean-removed sum of difference), MR-SSE (Mean-removed sum of squared error), MR-SATD (Mean-removed sum of transformed difference) may be used. Meanwhile, since the above mathematical expression 9 is an example of applying a weight only to the error value of the first line of the search area, in case of applying a weight only to the error value of one or more sample lines, ErrorValue k = k * Error(Recon line1 , Pred line1 ) + m * Error(Recon line2 , Pred line2 ) + ... + Error(Recon lineX , Pred lineX) can be modified as follows, and m can be any positive number, and k>=m. Here, the sample lines within the search area can be determined by an agreement between the encoder and the decoder. Meanwhile, as another example, it is possible to apply weights only to the error values ​​of the first line, or to apply weights only to the error values ​​of the sample lines corresponding to half of the search area, or to apply weights to all lines except the last sample line, or to apply weights to all lines. In this case, the weights can be applied differently, and the weight values ​​can become smaller as they get farther from the current block.

[0257] More specifically, the sample lines to which weights are applied can vary based on the block size. For example, for a 4x4 block, weights can be applied only to the error values ​​of the first line. Furthermore, for blocks other than 4x4 blocks, weights can be applied only to the error values ​​of sample lines corresponding to half of the search area. Furthermore, the weight values ​​applied to the error values ​​can be determined by an agreement between the encoder and decoder. For example, a fixed weight value k can be applied to the sample lines to which weights are applied. For example, k can be 2.

[0258] Additionally, for multiple sample lines to which weights are applied, different weight values, such as k, … j, may be applied as they get farther away from the current block. For example, assuming that the search area consists of four sample lines, weights of 8, 6, 5, and 3 may be applied to each line in order from the line closest to the current block. In other words, the closer the sample line is to the current block, the higher the weight can be applied to the error value of the corresponding sample line.

[0259] As described above, by applying weights to the error values ​​for each sample line and calculating them, and sorting the derived intra prediction modes by the smallest error values, the smallest number of intra prediction modes can be selected. The subsequent steps are identical to those described above, so a detailed explanation will be omitted.

[0260] Meanwhile, while the correlation between samples moving away from the current block generally decreases, there may be samples where this is not the case. Therefore, it is necessary to consider both blocks with and without low correlation. In one embodiment, weighting the error value can be applied selectively. This can be accomplished through explicit signaling of information, as shown in Table 10 below.

[0261] Coding unit syntaxDescriptor… timdFlagae(v)If (timdFlag){IsErrorWeightae(v)}…

[0262] In the embodiment related to the above table, information is described as being signaled in units of coding units, but since this corresponds to one embodiment of the present disclosure, it may also be signaled in various units such as various blocks, slices, tiles, etc. including coding units.

[0263] As an example, information indicating whether a search region-based intra prediction mode derivation method is used for deriving an intra prediction mode may be signaled. As an example, the information may be referred to as fifth information, and the fifth information may be expressed as timdFlag. If the value of the fifth information is a specific value (e.g., 0), it may indicate that the search region-based intra prediction mode derivation method is not used. On the other hand, if the value of the fifth information is a specific value (e.g., 1), it may indicate that the search region-based intra prediction mode derivation method is used.

[0264] Thereafter, other information (e.g., sixth information, etc.) may be signaled based on the fifth information. For example, if a search region-based intra prediction mode derivation method is applied, other information may be signaled. For example, if a search region-based intra prediction mode derivation method is applied, information indicating whether to apply a weight to the error value for the search region may be signaled. As an example, the information may be referred to as sixth information, may be expressed as IsErrorWeight, and may be signaled when the value of the fifth information is a specific value (e.g., 1). For example, if the value of the sixth information is a specific value (e.g., 1), a weight may be applied to the error value of a specific sample line of the search region promised by the encoder / decoder, as in the above embodiment. In this case, the weight may vary for each sample line, as described above. On the other hand, if the value of the sixth information is a specific value (e.g., 0), no weight may be applied to the error value, or the same weight may be applied for each sample line.

[0265] As another example, without signaling the sixth information, it is possible to induce whether to apply weights to the error value based on certain conditions, such as the size, shape, and dimensions of the current block. For example, if the block size is smaller than a certain size, for example, in the case of a 4x4 block, the sixth information may always be a certain value (e.g., 0) without signaling, so that the error value is not weighted, or the weight may be applied uniformly for each sample line. Alternatively, the method of applying weights to the error value can be applied without any separate conditions, for example, regardless of the size of the current block.

[0266] In addition, on the other hand, the information described above may be signaled in upper level parameters such as Video parameter set (VPS), Sequence parameter set (SPS), Adaptation parameter set (APS), Picture parameter set (PPS), Picture Header, Slice Header, and may be signaled in units of tiles, blocks (e.g., coding tree units, coding units, etc.), and it is also possible for information with similar meaning to be signaled in lower levels based on cases where the information is signaled in upper levels and the information is a specific value.

[0267] The image encoding method and / or image decoding method described above with reference to FIGS. 7 to 10 corresponds to an embodiment of the present disclosure, and therefore some steps may be changed or some steps may be removed, and the order of some steps may be changed, and such embodiments are also included in the embodiments of the present disclosure.

[0268] FIG. 11 is a diagram illustrating an image decoding method according to one embodiment of the present disclosure. The image decoding method of FIG. 11 may be performed in the image decoding device (decoder) described above, and may be based on the embodiments described with reference to various drawings, including FIGS. 7 to 10 , above. Therefore, any description overlapping with the embodiments described above will be omitted.

[0269] As an example, a search area for predicting the current block may be determined (S1101). As described above, the search area may be a restored area adjacent to the current block, and may be adjacent to the left and / or top.

[0270] Thereafter, an intra prediction block may be generated (S1102) based on the determined search region. An intra prediction block may be generated based on the determined search region using a decoder-side intra prediction mode derivation method and / or a search region-based intra prediction mode derivation method. As an example, the number of generated intra prediction blocks may be one or more. That is, there may be multiple numbers. In addition, the intra prediction modes applied to each intra prediction block may be different, and the selected intra prediction mode candidates may be used to generate the prediction block. In order to determine the search region and generate the intra prediction block, it may be based on the first information and / or the fifth information, and the first information and / or the fifth information may be signaled from the bitstream.

[0271] Afterwards, although not illustrated in the drawing, weights applicable to each intra prediction block can be determined as described above. By applying weights to each intra prediction block, the final intra prediction block can be generated.

[0272] Meanwhile, as described above, the intra prediction block is generated based on the intra prediction mode derived using the search region, and the intra prediction mode is derived based on derivation method information indicating the intra prediction mode derivation method, wherein the derivation method information may indicate either a method using the gradient of the search region or a method using the error value of the search region. Here, the intra prediction mode may be derived based on at least one of the first to seventh information described above.

[0273] Additionally, the derivation method information indicating the intra prediction mode derivation method can be obtained from the bitstream. In other words, it can be information encoded and signaled by the encoder. However, as described above, the derivation method can also be determined based on a pre-determined agreement between the encoder and decoder.

[0274] Meanwhile, as described above, the number of intra prediction blocks used to generate the final intra prediction block can be determined based on specific conditions. For example, the specific conditions may be associated with the amplitude of each intra prediction mode based on gradients (e.g., HoG-based). Furthermore, the specific conditions may be derived based on prediction mode condition information obtained from the bitstream. However, as described above, the conditions may also be determined based on a pre-determined agreement between the encoder and decoder.

[0275] Meanwhile, as described above, an intra-prediction block may include a prediction block generated based on a planar mode. While the planar prediction block may be restricted to be included in the generation of the final prediction block, whether the planar mode is used may also be determined based on information obtained from the bitstream. This information may include third-party information.

[0276] Meanwhile, as described above, the intra prediction mode can be derived based on an error value weight determined based on the sample distance to the current block in the search region, and the error value weight can be determined for each sample line in the search region. Furthermore, the error value weight can be determined to a different value for each sample line.

[0277] The image decoding method described above with reference to FIG. 11 corresponds to one embodiment of the present disclosure, and therefore some steps may be changed or some steps may be removed, and the order of some steps may be changed, and such embodiments are also included in the embodiments of the present disclosure.

[0278] FIG. 12 is a diagram illustrating an image encoding method according to one embodiment of the present disclosure. The image encoding method of FIG. 12 may be performed in the image encoding device (encoder) described above, and may be based on the embodiments described with reference to various drawings, including FIGS. 7 to 10 .

[0279] As an example, a search area for predicting the current block may be determined (S1201). As described above, the search area may be a restored area adjacent to the current block, and may be adjacent to the left and / or top.

[0280] Thereafter, an intra prediction block may be generated (S1202) based on the determined search region. The video encoding side, i.e., the encoder side, may also generate an intra prediction block based on the determined search region using a decoder-side intra prediction mode derivation method and / or a search region-based intra prediction mode derivation method. Here, the number of generated intra prediction blocks may be one or more. That is, there may be multiple numbers. In addition, the intra prediction modes applied to each intra prediction block may be different, and the selected intra prediction mode candidates may be used to generate the prediction block. In order for the decoder to determine the search region and generate the intra prediction block, the encoder may encode a series of necessary information, including the first information and / or the fifth information, and the first information and / or the fifth information may be signaled in the bitstream.

[0281] Subsequently, although not depicted in the drawing, weights applicable to each intra-prediction block can be determined, as described above. By applying weights to each intra-prediction block, the final intra-prediction block can be generated. Information regarding these weights can also be signaled from the encoder to the decoder.

[0282] Meanwhile, as described above, the intra prediction block is generated based on the intra prediction mode derived using the search region, and the derivation method information indicating the method for deriving the intra prediction mode can be generated. The derivation method information can indicate either a method using the gradient of the search region or a method using the error value of the search region. The derivation method information can be encoded and signaled in the bitstream. However, as described above, the derivation method can also be determined based on a pre-determined agreement between the encoder and decoder.

[0283] Meanwhile, as described above, the number of intra prediction blocks used to generate the final intra prediction block can be determined based on specific conditions. For example, the specific conditions can be associated with the amplitude of each intra prediction mode based on gradients (e.g., HoG-based). Furthermore, the specific conditions can be encoded in the bitstream and signaled as prediction mode condition information. However, as described above, the conditions can also be determined based on a pre-determined agreement between the encoder and decoder.

[0284] Meanwhile, as described above, an intra-prediction block may include a prediction block generated based on a planar mode. While the planar prediction block may be restricted to be included in the generation of the final prediction block, whether the planar mode is used may be explicitly signaled by encoding it into the bitstream. This information may include third-party information.

[0285] Meanwhile, as described above, the intra prediction mode can be derived based on an error value weight determined based on the sample distance to the current block in the search region, and the error value weight can be determined for each sample line in the search region. Furthermore, the error value weight can be determined to a different value for each sample line.

[0286] The image encoding method described above with reference to FIG. 12 corresponds to one embodiment of the present disclosure, and therefore some steps may be changed or some steps may be removed, and the order of some steps may be changed, and such embodiments are also included in the embodiments of the present disclosure.

[0287] According to the present disclosure, when encoding a still image or a moving image within a screen, an intra prediction mode is effectively derived on the decoder side, and the intra prediction mode can be effectively derived by combining the features of a decoder-side intra prediction mode derivation method and a search region-based intra prediction mode derivation method, and the coding efficiency can be improved by using a method of more accurately deriving an intra prediction mode by giving weight to an error value related to a search region.

[0288] Various embodiments according to the present disclosure may be used alone or in combination with other embodiments.

[0289] While the exemplary methods of this disclosure are presented as a series of operations for clarity of description, this is not intended to limit the order in which the steps are performed, and individual steps may be performed simultaneously or in different orders, if desired. To implement a method according to this disclosure, additional steps may be included in addition to the steps illustrated, some steps may be excluded and the remaining steps included, or some steps may be excluded and additional steps included.

[0290] In the present disclosure, a video encoding device or video decoding device performing a predetermined operation (step) may perform an operation (step) of checking the conditions or circumstances under which the operation (step) is performed. For example, if it is described that a predetermined operation is performed when a predetermined condition is satisfied, the video encoding device or video decoding device may perform an operation of checking whether the predetermined condition is satisfied and then perform the predetermined operation.

[0291] The various embodiments of the present disclosure are not intended to list all possible combinations but rather to illustrate 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.

[0292] Additionally, various embodiments of the present disclosure may be implemented by hardware, firmware, software, or a combination thereof. In the case of hardware implementation, the embodiments may be implemented by 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.

[0293] In addition, the video decoding device and the video encoding device to which the embodiments of the present disclosure are applied may be included in a multimedia broadcasting transmitting and 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 (Over the top video) device, an Internet streaming service providing device, a three-dimensional (3D) video device, a video phone video device, and a medical video device, and may be used to process a video signal or a data signal. For example, the OTT (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.

[0294] FIG. 11 is a diagram illustrating a content streaming system to which an embodiment of the present disclosure can be applied.

[0295] As illustrated in FIG. 11, a content streaming system to which an embodiment of the present disclosure is applied may largely include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.

[0296] The encoding server compresses content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data, generates a bitstream, and transmits it to the streaming server. Alternatively, if multimedia input devices such as smartphones, cameras, and camcorders directly generate bitstreams, the server may be omitted.

[0297] The above bitstream can be generated by an image encoding method and / or an image encoding device to which an embodiment of the present disclosure is applied, and the streaming server can temporarily store the bitstream during the process of transmitting or receiving the bitstream.

[0298] 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 an intermediary to inform 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 multimedia data to the user. At this time, the content streaming system may include a separate control server, and in this case, the control server may control commands / responses between each device within the content streaming system.

[0299] The streaming server can receive content from a media repository and / or encoding server. For example, when receiving content from the encoding server, the content can be received in real time. In this case, to provide a smooth streaming service, the streaming server can store the bitstream for a certain period of time.

[0300] Examples of the user devices may include mobile phones, smart phones, laptop computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation devices, slate PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, HMDs), digital TVs, desktop computers, digital signage, etc.

[0301] Each server within the above 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.

[0302] The scope of the present disclosure includes software or machine-executable instructions (e.g., operating systems, applications, firmware, programs, etc.) that cause operations according to the methods of various embodiments to be executed on a device or a computer, and a non-transitory computer-readable medium having such software or instructions stored thereon and executable on the device or computer.

[0303] Embodiments according to the present disclosure can be used to encode / decode images.

Claims

1. In the video decryption method, A step of determining a search area for prediction of the current block; and A step of generating an intra prediction block based on the above search area; including: The above intra prediction block is generated based on an intra prediction mode derived using the above search area, The above intra prediction mode is derived based on derivation method information indicating an intra prediction mode derivation method, An image decoding method, wherein the above-mentioned induction method information indicates either a method using the gradient of the search area or a method using the error value of the search area.

2. In paragraph 1, A method for decoding an image, wherein the above-mentioned induction method information is obtained from a bitstream.

3. In paragraph 1, A method for decoding an image, wherein the number of intra prediction blocks is determined according to specific conditions.

4. In paragraph 3, A method for decoding an image, wherein the above specific condition is associated with the amplitude of each intra prediction mode based on a gradient.

5. In paragraph 3, A method for decoding an image, wherein the above specific condition is derived based on prediction mode condition information obtained from the bitstream.

6. In paragraph 1, A method for decoding an image, wherein the intra prediction block includes a prediction block generated based on a planar mode.

7. In paragraph 6, A method for decoding an image, wherein whether the above planar mode is used is determined based on information obtained from a bitstream.

8. In paragraph 1, A method for decoding an image, wherein the intra prediction mode is derived based on an error value weight determined based on a sample distance to a current block in the search area.

9. In paragraph 8, An image decoding method, wherein the above error value weight is determined for each sample line of the search area.

10. In the video encoding method, A step of determining a search area for prediction of the current block; and A step of generating an intra prediction block based on the above search area; including: The above intra prediction block is generated based on an intra prediction mode derived using the above search area, A video encoding method wherein the intra prediction mode is derived based on one of a method using a gradient of the search area or a method using an error value of the search area.

11. In a medium storing a bitstream generated by an image encoding method, the image encoding method, A step of determining a search area for prediction of the current block; and A step of generating an intra prediction block based on the above search area; including: The above intra prediction block is generated based on an intra prediction mode derived using the above search area, The above intra prediction mode is derived based on one of a method using the gradient of the search area or a method using the error value of the search area.

12. In the bitstream transmission method, A step of transmitting a bitstream generated by a video encoding method; including: The above image encoding method is, A step of determining a search area for prediction of the current block; and A step of generating an intra prediction block based on the above search area; including: The above intra prediction block is generated based on an intra prediction mode derived using the above search area, A method in which the intra prediction mode is derived based on one of a method using a gradient of the search area or a method using an error value of the search area.

Citation Information

Patent Citations

  • Display apparatus

    KR1020230145973A

  • Image sensor and manufacturing method of image sensor

    KR1020250008220A

  • Mumtiple perforations pipe construction for basement waterproof

    KR102670109B1

  • Hyperdata Compression: Accelerating Encoding for Improved Communication, Distribution & Delivery of Personalized Content

    US20200329233A1

  • Methods and systems for assessing a vasculature

    US20230000364A1