A video encoding / decoding method, apparatus, and recording medium for storing bitstreams based on intra-prediction.

The video encoding/decoding method addresses high-resolution image challenges by enhancing encoding/decoding efficiency through intra-prediction and chroma prediction, achieving efficient video restoration and storage.

JP2026522639APending Publication Date: 2026-07-08LG ELECTRONICS INC

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
LG ELECTRONICS INC
Filing Date
2024-06-20
Publication Date
2026-07-08

Smart Images

  • Figure 2026522639000001_ABST
    Figure 2026522639000001_ABST
Patent Text Reader

Abstract

A video encoding / decoding method and apparatus are provided. The video decoding method according to this disclosure includes the steps of: constructing a block vector candidate list for the current chroma block; rearranging the block vector candidate list; obtaining a block vector candidate index indicating one candidate block vector included in the rearranged block vector candidate list; and generating a final predicted block for the current chroma block by performing an intra prediction based on the candidate block vector indicated by the block vector candidate index, wherein the block vector candidate list may be constructed based on the block vector of the rumor block corresponding to the current chroma block or the block vector of the surrounding blocks of the current chroma block.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This disclosure relates to a video encoding / decoding method, apparatus, and recording medium for storing a bitstream, and more particularly to an intra-prediction-based video encoding / decoding method, apparatus, and recording medium for storing a bitstream generated by the video encoding method / apparatus of this disclosure. [Background technology]

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

[0003] This necessitates highly efficient image compression technology to effectively transmit, store, and reproduce high-resolution, high-quality image information. [Overview of the project] [Problems that the invention aims to solve]

[0004] This disclosure aims to provide a video encoding / decoding method and apparatus with improved encoding / decoding efficiency.

[0005] Furthermore, this disclosure aims to provide a video coding / decoding method and apparatus that effectively performs intra-prediction.

[0006] Furthermore, this disclosure aims to provide a video coding / decoding method and apparatus that effectively performs chroma prediction by utilizing block vector information.

[0007] Furthermore, this disclosure aims to provide a non-temporary computer-readable recording medium for storing a bitstream generated by a video encoding method or apparatus relating to this disclosure.

[0008] Furthermore, this disclosure aims to provide a non-temporary computer-readable recording medium that stores a bitstream received and decoded by the video decoding device relating to this disclosure and used for video restoration.

[0009] Furthermore, this disclosure aims to provide a method for transmitting a bitstream generated by a video encoding method or apparatus relating to this disclosure.

[0010] The technical challenges that this disclosure seeks to address are not limited to those mentioned above, and any other technical challenges not mentioned can be clearly understood by a person with ordinary skill in the art to which this disclosure pertains from the following description. [Means for solving the problem]

[0011] According to one embodiment of the present disclosure, a video decoding method performed by a video decoding device includes the steps of: constructing a block vector candidate list for the current chroma block; rearranging the block vector candidate list; obtaining a block vector candidate index indicating one candidate block vector included in the rearranged block vector candidate list; and generating a final predicted block for the current chroma block by performing an intra prediction based on the candidate block vector indicated by the block vector candidate index, wherein the block vector candidate list may be constructed based on the block vector of the chroma block corresponding to the current chroma block or the block vector of the surrounding blocks of the current chroma block.

[0012] According to an embodiment of the present disclosure, the block vector candidate list may be configured by adding one or more luma block vectors included in one or more corresponding luma blocks corresponding to the current chroma block in a predetermined order.

[0013] According to an embodiment of the present disclosure, the luma block vector may be further included in the block vector candidate list based on a predetermined threshold value.

[0014] According to an embodiment of the present disclosure, the candidate block vector included in the block vector candidate list may be a value obtained by scaling the luma block vector.

[0015] According to an embodiment of the present disclosure, although it further includes a step of correcting the candidate block vector, based on the candidate block vector being (Vx>>1, Vy>>1), the correction may be performed based on a comparison of the template costs of each of (Vx>>1, Vy>>1), ((Vx+1)>>1, Vy>>1), (Vx>>1, (Vy+1)>>1), and ((Vx+1)>>1, (Vy+1)>>1).

[0016] According to an embodiment of the present disclosure, the rearrangement of the block vector candidate list is performed based on the template cost, and the template cost may be calculated based on the template area of the current chroma block and the template area of the reference block indicated by the candidate block vector.

[0017] According to one embodiment of the present disclosure, the block vector candidate index includes at least one of a first index or a second index, and the step of generating the final predicted block may include the step of generating a first predicted block of the current chroma block based on a first candidate block vector indicated by the first index, the step of generating a second predicted block of the current chroma block based on a second candidate block vector indicated by the second index, and the step of generating the final predicted block by weighting the first predicted block and the second predicted block.

[0018] According to one embodiment of the present disclosure, the step of generating the final prediction block may include a step of generating a first prediction block of the current chroma block based on candidate block vectors indicated by the block vector candidate index, a step of generating a second prediction block of the current chroma block based on a linear model, and a step of generating the final prediction block by weighting the first prediction block and the second prediction block.

[0019] According to one embodiment of the present disclosure, a video encoding method performed by a video encoding device includes the steps of: constructing a block vector candidate list for a current chroma block; rearranging the block vector candidate list; generating a final predicted block for the current chroma block by performing intra-prediction based on one candidate block vector included in the rearranged block vector candidate list; and encoding a block vector candidate index indicating the candidate block vector used to generate the final predicted block, wherein the block vector candidate list may be constructed based on block vectors of ruma blocks corresponding to the current chroma block or block vectors of surrounding blocks of the current chroma block.

[0020] According to one embodiment of the present disclosure, a computer-readable recording medium may store a bitstream generated by a video encoding method.

[0021] According to one embodiment of the present disclosure, a method for transmitting a bitstream generated by a video encoding method, wherein the video encoding method includes the steps of: constructing a block vector candidate list for a current chroma block; rearranging the block vector candidate list; generating a final predicted block for the current chroma block by performing an intra prediction based on one candidate block vector included in the rearranged block vector candidate list; and encoding a block vector candidate index indicating the candidate block vector used to generate the final predicted block, wherein the block vector candidate list may be constructed based on block vectors of chroma blocks corresponding to the current chroma block or block vectors of surrounding blocks of the current chroma block. [Effects of the Invention]

[0022] According to this disclosure, a video encoding / decoding method and apparatus with improved encoding / decoding efficiency may be provided.

[0023] Furthermore, this disclosure may provide a video coding / decoding method and apparatus for effectively performing intra-prediction.

[0024] Furthermore, this disclosure may provide a video coding / decoding method and apparatus that effectively performs chroma prediction by utilizing block vector information.

[0025] Furthermore, this disclosure may provide a non-temporary computer-readable recording medium for storing a bitstream generated by a video encoding method or apparatus relating to this disclosure.

[0026] Furthermore, this disclosure may provide a non-temporary computer-readable recording medium for storing a bitstream that is received and decoded by the video decoding device relating to this disclosure and used for restoring video.

[0027] Furthermore, this disclosure may provide a method for transmitting a bitstream generated by a video encoding method or apparatus relating to this disclosure.

[0028] The effects that can be obtained from this disclosure are not limited to those mentioned above, and any other effects not mentioned above can be clearly understood by a person with ordinary skill in the art to which this disclosure pertains from the following description. [Brief explanation of the drawing]

[0029] [Figure 1] This figure schematically illustrates a video coding system to which the embodiments described herein can be applied. [Figure 2] This figure schematically shows an image encoding device to which the embodiments of this disclosure can be applied. [Figure 3] This figure schematically shows an image decoding apparatus to which the embodiments of this disclosure can be applied. [Figure 4] This is a flowchart illustrating the video / image encoding method for the intranet prediction platform. [Figure 5] This diagram illustrates the configuration of the intra-prediction unit related to this disclosure. [Figure 6] This is a flowchart illustrating the video / image decoding method for the intranet prediction platform. [Figure 7] This diagram illustrates the configuration of the intra-prediction unit related to this disclosure. [Figure 8] This is a diagram illustrating the search area used in intra-template matching prediction (intraTMP) according to one embodiment of the present disclosure. [Figure 9] This is a diagram illustrating a block vector in IBC (Intra block copy) mode according to one embodiment of the present disclosure. [Figure 10] This is a drawing illustrating a reference region in IBC mode according to one embodiment of the present disclosure. [Figure 11]This is a diagram illustrating a rumor block used for DBV (Direct Block Vector) induction according to one embodiment of the present disclosure. [Figure 12] This is a flowchart of a method for predicting current chroma blocks according to one embodiment of the present disclosure. [Figure 13] This is a diagram illustrating the template areas of the current block and numerous reference blocks according to one embodiment of the present disclosure. [Figure 14] This is a diagram illustrating the template areas of the current block and the reference block according to one embodiment of the present disclosure. [Figure 15] This is a diagram illustrating the corresponding chroma block of a current chroma block according to one embodiment of the present disclosure. [Figure 16] This is a drawing illustrating the area surrounding the current chroma block according to one embodiment of the present disclosure. [Figure 17] This is a diagram illustrating a candidate block vector according to one embodiment of the present disclosure. [Figure 18] This is a diagram illustrating a template region that falls outside the boundary according to one embodiment of the present disclosure. [Figure 19] This is a diagram illustrating a corresponding rumor block according to one embodiment of the present disclosure. [Figure 20] This is a diagram illustrating a template area according to one embodiment of the present disclosure. [Figure 21] This is a diagram illustrating the corresponding rumor block search position according to one embodiment of the present disclosure. [Figure 22] This is a flowchart of an encoding method according to one embodiment of the present disclosure. [Figure 23] This is a flowchart of a decoding method according to one embodiment of the present disclosure. [Figure 24] These are drawings illustrating an embodiment of a video decoding method and / or video encoding method according to the present disclosure. [Modes for carrying out the invention]

[0030] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the attached drawings, so that they can be easily implemented by a person with ordinary skill in the art to which the present disclosure pertains. However, the present disclosure can be implemented in a variety of different forms and is not limited to the embodiments described herein.

[0031] In describing embodiments of this disclosure, if it is determined that a specific description of a known configuration or function would obscure the gist of this disclosure, such detailed description will be omitted. In the drawings, parts unrelated to the description of this disclosure will be omitted, and similar parts will be denoted by the same reference numerals.

[0032] In this disclosure, when one component is described as being “connected,” “joined,” or “linked” to another component, this can include not only direct connections but also indirect connections where another component exists between them. Furthermore, when one component is described as “containing” or “having” another component, this means, unless otherwise stated to the contrary, that it may include another component rather than excluding it.

[0033] In this disclosure, terms such as "first," "second," etc., are used solely for the purpose of distinguishing one component from another, and do not limit the order or importance of the components unless otherwise specified. Therefore, within the scope of this disclosure, a first component in one embodiment may be called a second component in another embodiment, and similarly, a second component in one embodiment may be called a first component in another embodiment.

[0034] In this disclosure, components that are distinguished from each other are used to clearly describe their respective characteristics and do not necessarily mean that the components are separate. In other words, multiple components may be integrated to constitute a single hardware or software unit, or a single component may be distributed to constitute multiple hardware or software units. Therefore, such integrated or distributed embodiments are also included in the scope of this disclosure, without needing to be specifically mentioned.

[0035] In this disclosure, the components described in various embodiments are not necessarily essential components, and some may be optional components. Therefore, embodiments consisting of a subset of the components described in one embodiment are also included in the scope of this disclosure. Furthermore, embodiments that include additional components in addition to the components described in various embodiments are also included in the scope of this disclosure.

[0036] This disclosure relates to the encoding and decoding of images, and the terms used in this disclosure may have their ordinary meanings in the art to which this disclosure pertains, unless they are newly defined in this disclosure.

[0037] In this disclosure, "video" may mean a collection of images arranged in a sequence of time.

[0038] In this disclosure, "picture" generally refers to a unit representing any one image within a specific time period, and "slice / tile" is an encoding unit that constitutes part of a picture, with one or more slices / tiles comprising a single picture. A slice / tile may also contain one or more CTUs (coding tree units).

[0039] In this disclosure, “pixel” or “pel” may mean the smallest unit that constitutes a picture (or image). The term “sample” may also be used as a counterpart to pixel. A sample may generally represent a pixel or a pixel value, or it may represent only the pixel / pixel value of the luma component, or only the pixel / pixel value of the chroma component.

[0040] In this disclosure, “unit” can refer to a basic unit of image processing. A unit may include at least one of a specific region of a picture and information associated with that region. A unit may be used interchangeably with terms such as “sample array,” “block,” or “area,” as it may be used. Generally, an M×N block may include a set (or array) of samples (or sample arrays) or transform coefficients consisting of M columns and N rows.

[0041] In this disclosure, “current block” can mean any one of the following: “current coding block,” “current coding unit,” “block to encode,” “block to decode,” or “block to process.” If prediction is performed, “current block” can mean “current prediction block” or “block to predict.” If transformation (inverse transformation) / quantization (inverse quantization) is performed, “current block” can mean “current transformation block” or “block to transform.” If filtering is performed, “current block” can mean “block to filter.”

[0042] Furthermore, in this disclosure, "current block" may mean the block containing all of the rumor component blocks and chroma component blocks, or the "rumor block of the current block," unless there is an explicit mention of a chroma block. The rumor component block of the current block may be expressed with an explicit mention of a rumor component block, such as "rumor block" or "current rumor block." Similarly, the chroma component block of the current block may be expressed with an explicit mention of a chroma component block, such as "chroma block" or "current chroma block."

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

[0044] 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.” Or, in this disclosure, “or” may mean “additionally or alternatively.”

[0045] In this disclosure, “at least one A, B, and C” may mean “just A,” “just B,” “just C,” or “any combination of A, B, and C.” Also, “at least one A, B, or C” or “at least one A, B, and / or C” may mean “at least one A, B, and C.”

[0046] The parentheses used in this disclosure may mean "for example." For example, if "prediction (intra prediction)" is written, "intra prediction" may be proposed as an example of "prediction." In other words, "prediction" in this disclosure is not limited to "intra prediction," and "intra prediction" may be proposed as an example of "prediction." Also, if "prediction (i.e., intra prediction)" is written, "intra prediction" may be proposed as an example of "prediction."

[0047] Overview of the video coding system

[0048] Figure 1 is a schematic diagram showing a video coding system to which the embodiments of this disclosure can be applied.

[0049] A video coding system according to one embodiment may include an encoding device 10 and a decoding device 20. The encoding device 10 can transmit encoded video and / or image information or data to the decoding device 20 via a digital storage medium or network in file or streaming format.

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

[0051] The video source generation unit 11 can acquire video / images through processes such as video / image capture, synthesis, or generation. The video source generation unit 11 may include a video / image capture device and / or a video / image generation device. The video / image capture device may include, for example, one or more cameras, or a video / image archive containing previously captured video / images. The video / image generation device may include, for example, a computer, tablet, and smartphone, and may generate video / images (electronically). For example, virtual video / images may be generated via a computer, in which case the video / image capture process may be replaced by a process in which the relevant data is generated.

[0052] The encoding unit 12 can encode the input video / image. The encoding unit 12 can perform a series of steps such as prediction, transformation, and quantization for compression and encoding efficiency. The encoding unit 12 can output the encoded data (encoded video / image information) in bitstream format.

[0053] The transmission unit 13 can acquire encoded video / image information or data output in bitstream format and transmit it in file or streaming format to the receiving unit 21 of the decoding device 20 or other external object via a digital storage medium or network. The digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray®, HDD, and SSD. The transmission unit 13 can include elements for generating media files via a predetermined file format and elements for transmission via a broadcast / communication network. The transmission unit 13 can be provided as a transmission device separate from the encoding device 12, in which case the transmission device can include at least one processor that acquires encoded video / image information or data output in bitstream format, and a transmission unit that transmits it in file or stream format. The receiving unit 21 can extract / receive the bitstream from the storage medium or network and transmit it to the decoding unit 22.

[0054] The decoding unit 22 can decode the video / image by performing a series of steps such as inverse quantization, inverse transform, and prediction, corresponding to the operation of the encoding unit 12.

[0055] The rendering unit 23 can render the decoded video / image. The rendered video / image can be displayed via the display unit.

[0056] Overview of Image Encoding Devices

[0057] Figure 2 is a schematic diagram showing an image encoding device to which the embodiments of this disclosure can be applied.

[0058] As shown in Figure 2, the image coding device 100 may include an image splitting 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 coding unit 190. The inter-prediction unit 180 and the intra-prediction unit 185 can together be called the "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.

[0059] All or at least some of the multiple components constituting the image encoding device 100 can be implemented by a single hardware component (e.g., an encoder or processor) depending on the embodiment. Furthermore, the memory 170 may include a DPB (decoded picture buffer) and can be implemented by a digital storage medium.

[0060] The image splitting unit 110 can split an input image (or picture, frame) input to the image encoding device 100 into one or more processing units. For example, the processing units may be called coding units (CUs). Coding units can be obtained by recursively splitting a coding tree unit (CTU) or the largest coding unit (LCU) using a QT / BT / TT (Quad-tree / binary-tree / ternary-tree) structure. For example, a single coding unit can be split into multiple coding units of deeper depth based on a quad-tree structure, a binary-tree structure and / or a ternary-tree structure. For the splitting of coding units, a quad-tree structure may be applied first, followed by a binary-tree structure and / or a ternary-tree structure. Based on the final coding unit that cannot be further split, the coding procedure according to this disclosure can be performed. The largest coding unit can be used as the final coding unit, or a lower-depth coding unit obtained by dividing the largest coding unit can be used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and / or restoration, as described later. As another example, the processing units of the coding procedure may be prediction units (PU) or transformation units (TU). The prediction unit and the transformation unit can be divided or partitioned from the final coding unit, respectively. The prediction unit may be a unit of sample prediction, and the transformation unit may be a unit that derives transformation coefficients and / or a unit that derives a residual signal from transformation coefficients.

[0061] The prediction unit (inter-prediction unit 180 or intra-prediction unit 185) can make predictions for the block to be processed (current block) and generate a predicted block that includes prediction samples for the current block. The prediction unit can determine whether intra-prediction or inter-prediction is applied to the current block or on a CU basis. The prediction unit can generate various information regarding the prediction of the current block and transmit it to the entropy coding unit 190. The prediction information can be encoded by the entropy coding unit 190 and output in bitstream format.

[0062] The intra-prediction unit 185 can predict the current block by referring to a sample in the current picture. The referenced sample may be located in the vicinity (neighbor) or at a distance from the current block, according to the intra-prediction mode and / or intra-prediction technique. The intra-prediction mode may include a plurality of non-directional modes and a plurality of directional modes. The non-directional 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 fineness of the prediction direction. However, this is merely an example, and more or fewer directional prediction modes may be used depending on the settings. The intra-prediction unit 185 may also determine the prediction mode to be applied to the current block using the prediction modes applied to the surrounding blocks.

[0063] The interprediction unit 180 can derive a predicted block relative to the current block based on a reference block (reference sample array) identified by motion vectors on the reference picture. In this case, in order to reduce the amount of motion information transmitted in interprediction mode, motion information can be predicted in units of blocks, subblocks, or samples based on the correlation of motion information between the surrounding blocks and the current block. The motion information may include motion vectors and reference picture indices. The motion information may further include interprediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of interprediction, the surrounding blocks may include spatial neighboring blocks existing in the current picture and temporal neighboring blocks existing in the reference picture. The reference picture containing the reference block and the reference picture containing the temporal neighboring block may be the same or different from each other. The temporal neighboring block may be called a collocated reference block, collocated CU (colCU), etc. The reference picture containing the temporal neighboring block may be called a collocated picture (colPic). For example, the interpretation unit 180 can construct a motion information candidate list based on surrounding blocks and generate information indicating which candidate is used to derive the motion vector and / or reference picture index of the current block. Interpretation can be performed based on various prediction modes; for example, in skip mode and merge mode, the interpretation unit 180 can use the motion information of surrounding blocks as the motion information of the current block. In skip mode, unlike merge mode, the residual signal may not be transmitted.In motion vector prediction (MVP) mode, the motion vector of the surrounding block is used as the motion vector predictor, and the motion vector of the current block can be signaled by encoding the motion vector difference and an indicator for the motion vector predictor. The motion vector difference can represent the difference between the motion vector of the current block and the motion vector predictor.

[0064] The prediction unit can generate a prediction signal based on various prediction methods and / or prediction techniques described later. 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 applies intra-prediction and inter-prediction simultaneously to predict the current block can be called CIIP (combined inter and intra prediction). The prediction unit can also perform intra-block copy (IBC) to predict the current block. Intra-block copy can be used for content image / video coding such as in games, for example, in SCC (screen content coding). IBC is a method of predicting the current block using a reference block that has already been restored in the current picture at a predetermined distance from the current block. When IBC is applied, the position of the reference block in the current picture can be encoded as a vector (block vector) corresponding to the predetermined distance. IBC basically performs prediction in the current picture, but can be done in the same way as inter-prediction in that it derives the reference block in the current picture. That is, IBC can use at least one of the inter-prediction techniques described in this disclosure.

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

[0066] The transformation unit 120 can generate transformation coefficients by applying transformation techniques to the residual signal. For example, the transformation technique may include at least one of the following: DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), KLT (Karhunen-Loeve Transform), GBT (Graph-Based Transform), or CNT (Conditionally Non-linear Transform). Here, GBT refers to a transformation obtained from a graph when relational information between pixels is represented by this graph. CNT refers to a transformation obtained by generating a prediction signal using all previously reconstructed pixels. The transformation process can be applied to pixel blocks of the same size and square shape, or to non-square, variable-sized blocks.

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

[0068] The entropy coding unit 190 can perform various coding methods, such as exponential Golomb, CAVLC (context-adaptive variable length coding), and CABAC (context-adaptive binary arithmetic coding). In addition to the quantized conversion coefficients, the entropy coding unit 190 can also encode information necessary for video / image restoration (e.g., the values ​​of syntax elements) together or separately. The encoded information (e.g., encoded video / image information) can be transmitted or stored in bitstream format in units of NAL (network abstraction layer) units. The video / image information may further include information about various parameter sets, such as adaptive parameter sets (APS), picture parameter sets (PPS), sequence parameter sets (SPS), or video parameter sets (VPS). The video / image information may also further include general constraint information. The signaling information, transmitted information and / or syntax elements referred to in this disclosure may be encoded via the encoding procedure described above and included in the bitstream.

[0069] The bitstream can be transmitted over a network or stored on a digital storage medium. Here, the network may include broadcast networks and / or communication networks, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray®, HDD, and SSD. 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 it may be provided as internal / external elements of the image encoding device 100, or the transmission unit may be provided as a component of the entropy encoding unit 190.

[0070] The quantized conversion coefficients output from the quantization unit 130 can be used to generate a residual signal. For example, the inverse quantization unit 140 and the inverse conversion unit 150 can be used to reconstruct the residual signal (residual block or residual sample) from the quantized conversion coefficients.

[0071] The adder 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. If 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 adder 155 may be called the reconstruction unit or the reconstructed block generation unit. The generated reconstructed signal can be used for intra-prediction of the next block to be processed in the current picture, or, as described later, for inter-prediction of the next picture after filtering.

[0072] On the other hand, LMCS (luma mapping with chroma scaling) may be applied during the picture encoding and / or restoration process.

[0073] The filtering unit 160 can improve subjective / objective image quality by applying filtering to the restored signal. For example, the filtering unit 160 can apply various filtering methods to the restored picture to generate a modified restored picture, and the modified restored picture can be stored in the memory 170, specifically in the DPB of the memory 170. The various filtering methods can include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, and bilateral filter. The filtering unit 160 can generate various filtering-related information, as will be described later in the explanation of each filtering method, and transmit it to the entropy coding unit 190. The filtering-related information can be encoded by the entropy coding unit 190 and output in bitstream format.

[0074] The corrected restored picture transmitted to memory 170 can be used as a reference picture in the interpretation unit 180. When interpretation is applied via this, the image encoding device 100 can avoid prediction mismatches between the image encoding device 100 and the image decoding device, and can also improve encoding efficiency.

[0075] The DPB in memory 170 can store the corrected restored picture for use as a reference picture in the inter-prediction unit 180. Memory 170 can store motion information of blocks from which motion information in the current picture has been derived (or encoded) and / or motion information of blocks in the picture that have already been restored. The stored motion information can be transmitted to the inter-prediction unit 180 for use as motion information of spatially surrounding blocks or motion information of temporally surrounding blocks. Memory 170 can store restored samples of restored blocks in the current picture and transmit them to the intra-prediction unit 185.

[0076] Overview of the image decoding device

[0077] Figure 3 is a schematic diagram showing an image decoding apparatus to which the embodiments of this disclosure can be applied.

[0078] As shown in Figure 3, the image decoding device 200 can be configured to include an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, an additive 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 can together be called the "prediction unit". The inverse quantization unit 220 and the inverse transform unit 230 can be included in the residual processing unit.

[0079] All or at least some of the multiple components constituting the image decoding device 200 can be implemented by a single hardware component (e.g., a decoder or processor) according to the embodiment. Furthermore, the memory 170 may include a DPB and can be implemented by a digital storage medium.

[0080] An image decoding device 200, having received a bitstream containing video / image information, can restore the image by executing a process corresponding to the process performed in the image encoding device 100 in Figure 2. For example, the image decoding device 200 can perform decoding using the processing unit applied in the image encoding device. Therefore, the decoding processing unit can be, for example, a coding unit. The coding unit can be obtained by dividing a coding tree unit or a maximum coding unit. The restored image signal decoded and output via the image decoding device 200 can then be reproduced via a playback device (not shown).

[0081] The image decoding device 200 can receive the signal output from the image encoding device 2 in bitstream format. The received signal can be decoded via the entropy decoding unit 210. For example, the entropy decoding unit 210 can parse the bitstream to derive information necessary for image restoration (or picture restoration) (e.g., video / image information). The video / image information may further include information about various parameter sets, such as adaptive parameter set (APS), picture parameter set (PPS), sequence parameter set (SPS), or video parameter set (VPS). The video / image information may also further include general constraint information. The image decoding device may further use the parameter set information and / or the general constraint information to decode the image. The signaling information, received information, and / or syntax elements referred to in this disclosure can be obtained from the bitstream by decoding via 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 necessary for image reconstruction and the quantized values ​​of conversion coefficients related to the residual. More specifically, the CABAC entropy decoding method receives bins corresponding to each syntax element from the bitstream, determines a context model using the syntax element information to be decoded, the decoding information of the surrounding blocks and the blocks to be decoded, or the symbol / bin information decoded in a previous step, predicts the probability of bin occurrence based on the determined context model, and performs arithmetic decoding of the bins to generate symbols corresponding to the values ​​of each syntax element. At this time, after determining the context model, the CABAC entropy decoding method can update the context model using the decoded symbol / bin information for the context model of the next symbol / bin.Of the information decoded by the entropy decoding unit 210, information related to prediction is provided to the prediction unit (inter-prediction unit 260 and intra-prediction unit 265), and the residual values ​​that have undergone entropy decoding in the entropy decoding unit 210, i.e., quantized conversion coefficients and related parameter information, can be input to the inverse quantization unit 220. In addition, of the information decoded by the entropy decoding unit 210, information related to filtering can be provided to the filtering unit 240. On the other hand, a receiving unit (not shown) that receives signals output from the image coding device may be further provided as an internal / external element of the image decoding device 200, or the receiving unit may be provided as a component of the entropy decoding unit 210.

[0082] On the other hand, the image decoding device according to this disclosure may be called a video / image / picture decoding device. The image decoding device may also include an information decoder (video / image / picture information decoder) and / or a sample decoder (video / image / picture sample decoder). The information decoder may include an entropy decoding unit 210, and the sample decoder may include at least one of an inverse quantization unit 220, an inverse transform unit 230, an adder 235, a filtering unit 240, a memory 250, an inter-prediction unit 260, and an intra-prediction unit 265.

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

[0084] The inverse conversion unit 230 can inversely convert the conversion coefficients to obtain residual signals (residual blocks, residual sample arrays).

[0085] The prediction unit can make predictions for the current block and generate a predicted block containing prediction samples for the current block. Based on the prediction information output from the entropy decoding unit 210, the prediction unit can determine whether intra-prediction or inter-prediction is applied to the current block and can determine a specific intra / inter-prediction mode (prediction technique).

[0086] As described in the explanation of the prediction unit of the image coding device 100, the prediction unit can generate prediction signals based on various prediction methods (techniques) described later.

[0087] The intra-prediction unit 265 can predict the current block by referring to the samples in the current picture. The description of the intra-prediction unit 185 can also be applied to the intra-prediction unit 265.

[0088] The interprediction unit 260 can derive a predicted block relative to the current block based on a reference block (reference sample array) identified by motion vectors on the reference picture. In this case, to reduce the amount of motion information transmitted in interprediction mode, motion information can be predicted in block, sub-block, or sample units based on the correlation of motion information between surrounding blocks and the current block. The motion information may include motion vectors and reference picture indices. The motion information may further include interprediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In interprediction, surrounding blocks may include spatial neighboring blocks present in the current picture and temporal neighboring blocks present in the reference picture. For example, the interprediction unit 260 can construct a motion information candidate list based on surrounding blocks and derive the motion vector and / or reference picture index of the current block based on the received candidate selection information. Interprediction can be performed based on various prediction modes (techniques), and the prediction information may include information indicating the mode (technique) of interprediction for the current block.

[0089] The adder 235 can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the acquired residual signal to the predicted signal (predicted block, predicted sample array) output from the prediction unit (including the inter-prediction unit 260 and / or intra-prediction unit 265). If 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 description of the adder 155 also applies to the adder 235. The adder 235 is sometimes called the reconstruction unit or reconstructed block generation unit. The generated reconstructed signal can be used for intra-prediction of the next block to be processed in the current picture, or for inter-prediction of the next picture via filtering, as described later.

[0090] 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 the modified restored picture can be stored 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, and bilateral filter.

[0091] The restored picture stored (modified) in the DPB of memory 250 can be used as a reference picture in the inter-prediction unit 260. Memory 250 can store motion information of blocks from which motion information in the current picture has been derived (or decoded) and / or motion information of blocks in the picture that have already been restored. The stored motion information can be transmitted to the inter-prediction unit 260 for use as motion information of spatially surrounding blocks or motion information of temporally surrounding blocks. Memory 250 can store restored samples of restored blocks in the current picture and transmit them to the intra-prediction unit 265.

[0092] In this specification, the embodiments described for the filtering unit 160, inter-prediction unit 180, and intra-prediction unit 185 of the image coding device 100 can be applied similarly or in a corresponding manner to the filtering unit 240, inter-prediction unit 260, and intra-prediction unit 265 of the image decoding device 200, respectively.

[0093] Overview of Intra Prediction

[0094] The following describes the intranet prediction related to this disclosure.

[0095] Intra prediction can represent a prediction that generates a prediction sample for the current block based on reference samples within the picture to which the current block belongs (hereinafter, the current picture). When intra prediction is applied to the current block, surrounding reference samples to be used for the intra prediction of the current block can be derived. The surrounding reference samples of the current block may include a total of 2 x nH samples adjacent to the left boundary and bottom-left of the current block of size nW x nH, a total of 2 x nW samples adjacent to the top boundary and top-right of the current block, and one sample adjacent to the top-left of the current block. Alternatively, the surrounding reference samples of the current block may include upper surrounding samples in multiple columns and left surrounding samples in multiple rows. Furthermore, the surrounding reference samples of the current block may include a total of nH samples adjacent to the right boundary of the current block, which is nW x nH in size, a total of nW samples adjacent to the bottom boundary of the current block, and one sample adjacent to the bottom-right side of the current block.

[0096] However, some of the surrounding reference samples in a block may not yet be decoded or available. In this case, the decoder can construct the surrounding reference samples to be used for prediction by substituting the unavailable samples with available samples, or by constructing the surrounding reference samples to be used for prediction through interpolation of available samples.

[0097] If neighboring reference samples are derived, (i) predicted samples can be derived based on the average or interpolation of neighboring reference samples of the current block, or (ii) predicted samples can be derived based on reference samples among the neighboring reference samples of the current block that are located in a specific (predicted) direction relative to the predicted sample. Case (i) may be called a non-directional mode or non-angular mode, and case (ii) may be called a directional mode or angular mode.

[0098] Alternatively, the predicted sample may be generated by interpolating between a first peripheral sample located in the prediction direction of the intra-prediction mode of the current block and a second peripheral sample located in the opposite direction, with respect to the predicted sample of the current block from among the peripheral reference samples. In the case described above, it may be called linear interpolation intra-prediction (LIP).

[0099] Alternatively, a linear model may be used to generate chroma prediction samples based on lumen samples. This may be called the LM (Linear Model) mode.

[0100] Alternatively, temporary predicted samples for the current block may be derived based on filtered peripheral reference samples, and the predicted samples for the current block may be derived by taking a weighted sum of the temporary predicted samples and at least one reference sample derived by the intra-prediction mode from the existing peripheral reference samples, i.e., the unfiltered peripheral reference samples. In this case, it may be called PDPC (Position dependent intra-prediction).

[0101] Furthermore, the reference sample line with the highest prediction accuracy among the multiple reference sample lines surrounding the current block can be selected, and the predicted sample can be derived using the reference sample located in the prediction direction on that line. In this case, information about the reference sample line used (e.g., intra_luma_ref_idx) can be encoded into a bitstream and signaled. This may be called multi-reference line intraprediction (MRL) or MRL-based intraprediction. If MRL is not applied, the reference sample can be derived from a reference sample line directly adjacent to the current block, in which case information about the reference sample line does not need to be signaled.

[0102] Furthermore, the current block can be divided into vertical or horizontal subpartitions, and intra-prediction can be performed for each subpartition based on the same intra-prediction mode. In this case, the peripheral reference samples for intra-prediction can be derived on a subpartition-by-subpartition basis. That is, due to the encoding / decoding order, the recovered samples from previous subpartitions can be used as peripheral reference samples for the current subpartition. In this case, although the intra-prediction mode for the current block is applied identically to the subpartitions, the intra-prediction performance can be improved in some cases by deriving and using peripheral reference samples on a subpartition-by-subpartition basis. Such a prediction method may be called intra-subpartitions (ISP) or ISP-based intra-prediction.

[0103] The intra-prediction techniques described above can be distinguished from directional or non-directional intra-prediction modes and may be referred to by various terms such as intra-prediction types or additional intra-prediction modes. For example, the intra-prediction techniques (intra-prediction types or additional intra-prediction modes, etc.) may include at least one of the aforementioned LIP, LM, PDPC, MRL, and ISP. General intra-prediction methods excluding specific intra-prediction types such as LIP, LM, PDPC, MRL, and ISP may be called normal intra-prediction types. Normal intra-prediction types can generally be applied when the aforementioned specific intra-prediction types are not applicable, and predictions can be performed based on the aforementioned intra-prediction modes. On the other hand, post-processing filtering may be performed on the derived prediction samples as needed.

[0104] Specifically, the intra-prediction procedure may include an intra-prediction mode / type determination stage, a peripheral reference sample derivation stage, and an intra-prediction mode / type-based prediction sample derivation stage. Furthermore, a post-filtering stage may be performed on the derived prediction samples as needed.

[0105] On the other hand, in addition to the intra-prediction types described above, affine linear weighted intra-prediction (ALWIP) may also be used. ALWIP may also be called LWIP (linear weighted intra-prediction) or MIP (matrix weighted intra-prediction or matrix-based intra-prediction). When MIP is applied to a current block, i) an averaging procedure can be performed using surrounding reference samples, ii) a matrix-vector-multiplication procedure can be performed, and iii) horizontal / vertical interpolation procedures can be performed as needed to derive predicted samples for the current block. The intra-prediction mode used for MIP may be configured differently from the intra-prediction modes used for LIP, PDPC, MRL, ISP intra-prediction, and normal intra-prediction. The intra-prediction mode for MIP may be called MIP intra-prediction mode, MIP prediction mode, or MIP mode. For example, the matrix and offset used in the matrix-vector-multiplication may be set differently depending on the intra-prediction mode for MIP. Here, the matrix may be called the (MIP) weighted value matrix, and the offset may be called the (MIP) offset vector or (MIP) bias vector. The specific MIP method will be described later.

[0106] The block restoration procedure based on intra-prediction and the intra-prediction unit within the encoding device will be described later through Figures 4 and 5.

[0107] Figure 4 is a flowchart illustrating the intra-predictive video / image encoding method.

[0108] The encoding method shown in Figure 4 can be performed by the video encoding device shown in Figure 2. Specifically, step S410 can be performed by the intra-prediction unit 185, and step S420 can be performed by the residual processing unit. Specifically, step S420 can be performed by the subtraction unit 115. Step S430 can be performed by the entropy encoding unit 190. The prediction information for step S430 is derived by the intra-prediction unit 185, and the residual information for step S430 can be derived by the residual processing unit. The residual information is information about the residual sample. The residual information may include information about the quantized conversion coefficients for the residual sample. As described above, the residual sample is derived into conversion coefficients through the conversion unit 120 of the video encoding device, and the conversion coefficients can be derived into quantized conversion coefficients through the quantization unit 130. Information about the quantized conversion coefficients can be encoded in the entropy encoding unit 190 through the residual coding procedure.

[0109] The video encoding device can perform intra-prediction for the current block (S410). The video encoding device can determine the intra-prediction mode / type for the current block, derive peripheral reference samples for the current block, and then generate predicted samples within the current block based on the intra-prediction mode / type and the peripheral reference samples. Here, the intra-prediction mode / type determination, peripheral reference sample deriving, and predicted sample generation procedures may be performed simultaneously, or one of the procedures may be performed before the others.

[0110] Figure 5 is a diagram illustrating the configuration of the intra prediction unit 185 according to this disclosure.

[0111] As shown in Figure 5, the intra-prediction unit 185 of the video encoding device may include an intra-prediction mode / type determination unit 186, a reference sample derivation unit 187, and / or a prediction sample derivation unit 188. The intra-prediction mode / type determination unit 186 can determine the intra-prediction mode / type for the current block. The reference sample derivation unit 187 can derive the surrounding reference samples of the current block. The prediction sample derivation unit 188 can derive the prediction samples of the current block. On the other hand, although not shown, if a prediction sample filtering procedure described later is performed, the intra-prediction unit 185 may further include a prediction sample filter unit (not shown).

[0112] The video encoding device can determine which of several intra-prediction modes / types is applicable to the current block. The video encoding device can compare the rate distortion costs (RD costs) of the intra-prediction modes / types to determine the optimal intra-prediction mode / type for the current block.

[0113] On the other hand, the video encoding device may perform a predictive sample filtering procedure. Predictive sample filtering may be called post-filtering. Some or all of the predictive samples may be filtered by the predictive sample filtering procedure. In some cases, the predictive sample filtering procedure may be omitted.

[0114] Referring again to Figure 4, the video encoding device can generate a residual sample for the current block based on the predicted sample or the filtered predicted sample (S420). The video encoding device can derive the residual sample by subtracting the predicted sample from the original sample of the current block. That is, the video encoding device can derive the residual sample value by subtracting the corresponding predicted sample value from the original sample value.

[0115] The video encoding device can encode video information including information relating to the intra prediction (prediction information) and residual information relating to the residual sample (S430). The prediction information may include the intra prediction mode information and / or the intra prediction technique information. The video encoding device can output the encoded video information in bitstream form. The output bitstream can be transmitted to a video decoding device via a storage medium or network.

[0116] The residual information may include the residual coding syntax described later. The video encoding device can convert / quantize the residual samples to derive quantized conversion coefficients. The residual information may include information relating to the quantized conversion coefficients.

[0117] On the other hand, as mentioned above, the video encoding device can generate a restored picture (including restored samples and restored blocks). To this end, the video encoding device can de-quantize / inverse-transform the quantized conversion coefficients again to derive (corrected) residual samples. The reason for performing de-quantization / inverse-transformation again after the residual samples have been converted / quantized is to derive the same residual samples as those derived by the video decoding device. Based on the predicted samples and the (corrected) residual samples, the video encoding device can generate a restored block containing restored samples for the current block. Based on the restored block, a restored picture for the current picture can be generated. As mentioned above, in-loop filtering procedures and the like may be further applied to the restored picture.

[0118] Figure 6 is a flowchart illustrating the intra-predictive video / image decoding method.

[0119] The video decoding device can perform operations corresponding to those performed by the video encoding device.

[0120] The decoding method in Figure 6 can be performed by the video decoding device in Figure 3. Steps S610 to S630 can be performed by the intra-prediction unit 265, and the prediction information in step S610 and the residual information in step S640 can be obtained from the bitstream by the entropy decoding unit 210. The residual processing unit of the video decoding device can derive a residual sample for the current block based on the residual information (S640). Specifically, the inverse quantization unit 220 of the residual processing unit performs inverse quantization based on the quantized conversion coefficients derived from the residual information to derive conversion coefficients, and the inverse transformation unit 230 of the residual processing unit performs an inverse transformation on the conversion coefficients to derive a residual sample for the current block. Step S650 can be performed by the addition unit 235 or the reconstruction unit.

[0121] Specifically, the video decoding device can derive the intra-prediction mode / type for the current block based on the received prediction information (intra-prediction mode / type information) (S610). The video decoding device can also derive the surrounding reference samples for the current block (S620). The video decoding device can generate prediction samples within the current block based on the intra-prediction mode / type and the surrounding reference samples (S630). In this case, the video decoding device can perform a prediction sample filtering procedure. Prediction sample filtering may be called post-filtering. Some or all of the prediction samples may be filtered by the prediction sample filtering procedure. In some cases, the prediction sample filtering procedure may be omitted.

[0122] The video decoding device can generate a residual sample for the current block based on the received residual information (S640). The video decoding device can generate a restored sample for the current block based on the predicted sample and the residual sample, and derive a restored block containing the restored sample (S650). A restored picture can be generated for the current picture based on the restored block. As previously mentioned, in-loop filtering procedures and the like may be further applied to the restored picture.

[0123] Figure 7 is a diagram illustrating the configuration of the intra-prediction unit 265 according to this disclosure.

[0124] As shown in Figure 7, the intra-prediction unit 265 of the video decoding device may include an intra-prediction mode / type determination unit 266, a reference sample derivation unit 267, and a prediction sample derivation unit 268. The intra-prediction mode / type determination unit 266 determines the intra-prediction mode / type for the current block based on the intra-prediction mode / type information generated and signaled by the intra-prediction mode / type determination unit 186 of the video encoding device, and the reference sample derivation unit 266 can derive peripheral reference samples of the current block from the reference region restored within the current picture. The prediction sample derivation unit 268 can derive prediction samples of the current block. On the other hand, although not shown, if the prediction sample filtering procedure described above is performed, the intra-prediction unit 265 may further include a prediction sample filter unit (not shown).

[0125] The intra-prediction mode information may include, for example, flag information (e.g., intra_luma_mpm_flag) indicating whether MPM (most probable mode) or remaining mode is applied to the current block. If MPM is applied to the current block, the intra-prediction mode information may further include index information (e.g., intra_luma_mpm_idx) indicating one of the intra-prediction mode candidates (MPM candidates). The intra-prediction mode candidates (MPM candidates) may consist of an MPM candidate list or an MPM list. If MPM is not applied to the current block, the intra-prediction mode information may further include remaining mode information (e.g., intra_luma_mpm_remainder) indicating one of the remaining intra-prediction modes excluding the intra-prediction mode candidates (MPM candidates). The video decoding device can determine the intra-prediction mode of the current block based on the intra-prediction mode information.

[0126] Furthermore, the intra-prediction technique information can be embodied in various forms. For example, the intra-prediction technique information may include intra-prediction technique index information that indicates one of the intra-prediction techniques. As another example, the intra-prediction technique information may include reference sample line information (e.g., intra_luma_ref_idx) indicating whether the MRL is applied to the current block and, if so, which reference sample line is used; ISP flag information (e.g., intra_subpartitions_mode_flag) indicating whether the ISP is applied to the current block; ISP type information (e.g., intra_subpartitions_split_flag) indicating the subpartition splitting type if the ISP is applied; and at least one of the following flag information: flag information indicating whether PDPC is applied or flag information indicating whether LIP is applied. The intra-prediction type information may also include an MIP flag indicating whether MIP is applied to the current block. In this disclosure, the ISP flag information may be referred to as an ISP application indicator.

[0127] The intra-prediction mode information and / or the intra-prediction technique information may be encoded / decoded through coding methods described herein. For example, the intra-prediction mode information and / or the intra-prediction technique information may be encoded / decoded through entropy coding (e.g., CABAC, CAVLC) based on truncated (rice) binary code.

[0128] On the other hand, the intra-prediction modes may further include a CCLM (cross-component linear model) mode for chroma samples, in addition to the PLANAR mode, DC mode, and directional intra-prediction mode. The CCLM mode can be divided into L_CCLM, T_CCLM, and LT_CCLM depending on whether the left sample, the upper sample, or both are considered for CCLM parameter derivation, and can be applied only to chroma components.

[0129] The intra-prediction mode can be indexed, for example, as shown in Table 1 below.

[0130] [Table 1]

[0131] On the other hand, the intra prediction type (or additional intra prediction mode, etc.) may include at least one of the aforementioned LIP, PDPC, MRL, ISP, and MIP. The intra prediction type may be indicated based on intra prediction type information, and the intra prediction type information may be embodied in various forms. For example, the intra prediction type information may include intra prediction type index information indicating one of the intra prediction types. As another example, the intra prediction type information may include reference sample line information (e.g., intra_luma_ref_idx) indicating whether the MRL is applied to the current block and, if so, which reference sample line is used; ISP flag information (e.g., intra_subpartitions_mode_flag) indicating whether the ISP is applied to the current block; ISP type information (e.g., intra_subpartitions_split_flag) indicating the split type of the subpartition when the ISP is applied; and flag information indicating whether PDCP is applied or flag information indicating whether LIP is applied. Furthermore, the intra prediction type information may include an MIP flag (or possibly called intra_mip_flag) indicating whether MIP is applied to the current block.

[0132] Overview of Intra template matching prediction (intraTMP)

[0133] Intra Template Matching Prediction (IntraTMP) is a special intra prediction mode in which the best prediction block having an L-shaped template that matches the template region of the current block is copied from the restored portion of the current picture. Within a predefined search range, the video encoding device 100 can search for the template most similar to the template region of the current block within the restored portion of the current picture and use the corresponding block as the prediction block. In this way, the video encoding device 100 can signal information indicating the use of IntraTMP mode, and the video decoding device 200 can perform the same prediction operation through the signaled information.

[0134] Figure 8 is a diagram illustrating the search areas used in intra-template matching prediction (intraTMP) according to one embodiment of the present disclosure. Prediction blocks can be generated by matching the causal (casual) neighbors of the L-form of the current block with other blocks within the four predefined search areas shown in Figure 8. The four predefined search areas may be R1(810), R2(820), R3(830), and R4(840) as defined below.

[0135] -R1(810):Current CTU

[0136] -R2(820): Upper left CTU

[0137] -R3(830): Upper CTU

[0138] -R4(840): Left CTU

[0139] SAD (Sum of absolute differences) can be used as the cost function. Within each region, the video decoding device 200 can search for the template with the smallest SAD with respect to the template region of the current block, and the corresponding block of the searched template can be used as the prediction block.

[0140] The dimensions of all regions (SearchRange_w, SearchRange_h) can be set to be proportional to the block dimensions (BlkW, BlkH) so that each pixel has a fixed number of SAD comparisons, as shown in Equation 1 below.

[0141] [Equation 1]

number

[0142] In equation 1, a can be a constant that controls the gain / complexity trade-off. For example, a could be 5.

[0143] To expedite the template matching process, the search range of all search regions can be subsampled by a factor of 2. This can reduce the template matching search by 4. After finding the optimal matching region, a refinement process can be performed. The refinement process can be carried out through a second template matching search around the optimal matching region, along with the reduced range. Here, the reduced range can be defined by min(BlkW, BlkH) / 2.

[0144] The intra-template matching tool is usable for CUs with a width and height of 64 or less. The maximum size of a CU for intra-template matching may be configurable; that is, the maximum size of a CU for intra-template matching can be set arbitrarily. In addition, the intra-template matching prediction mode can be signaled at the CU level via a dedicated flag when the DIMD (Decoder-side Intra mode derivation) mode is not currently used for the CU.

[0145] Intra block copy (IBC) mode

[0146] The IBC mode can be a mode that searches for the optimal block vector (BV) through block matching between the current block and the reference block. The IBC mode can also manage a large number of block vector candidates as a candidate list. One of the block vector candidates in the candidate list may be signaled, and the block vector information may also be signaled. Figure 9 is a diagram illustrating a block vector in IBC mode according to one embodiment of this disclosure. Here, the block vector can represent the displacement from the current block to the already restored reference block in the current picture.

[0147] Fraction-pel

[0148] The representation of IBC block vectors can be extended to fractional-pel resolution. Therefore, interpolation filters may be needed to derive predicted samples currently located in non-integer phases within the picture's restoration region. Block vector resolution options can be extended to include 1 / 4-pel resolution in addition to full-pel and 4-pel. In this case, information indicating 1 / 4-pel, full-pel, or 4-pel may be signaled. The interpolation filters applied to the lumen and chroma components of the IBC block may be the same filters used for the 8-tap lumen filter and the chroma filter used for motion compensation, respectively.

[0149] IBC reference area

[0150] The reference area in IBC mode can currently be extended to the two upper CTU rows of the CTU. Figure 10 is a diagram illustrating the reference area in IBC mode according to one embodiment of the present disclosure. Specifically, Figure 10 is a diagram illustrating the reference area of ​​CTU(m,n). Specifically, to code CTU(m,n), the reference area can include CTUs of the indices (m-2, n-2)...(W, n-2), (0, n-1)...(W, n-1), (0, n)...(m,n), where W may currently represent the largest horizontal index within the tile, slice, or picture. That is, W may currently represent the largest width within the tile, slice, or picture. If the size (width) of the CTU is 256, the reference area may currently be limited to one upper CTU row of the CTU. Such a setting (limitation) can ensure that the IBC does not require additional memory on the ETM platform when the size of the CTU is 128 or 256. The sample-specific block vector search (or local search) range can be restricted horizontally to [-(C<<1), C>>2] and vertically to [-C, C>>2] to accommodate the expansion of the reference region, where C may represent the size of the CTU.

[0151] General principles for predicting sample derivation for chromatic components

[0152] If intraprediction is performed on the current block, predictions for the lumern component block (lumern block) and the chroma component block (chroma block) of the current block may be performed. In this case, the intraprediction mode for the chroma component (chroma block) can be set individually from the intraprediction mode for the lumern component (luma block).

[0153] For example, the intra-prediction mode for a chroma component may be indicated based on intra-chroma prediction mode information, which may be signaled in the form of an intra_chroma_pred_mode syntax element. As an example, the intra-chroma prediction mode information may indicate one of the candidate modes, which include at least one of the following: Planar mode, DC mode, vertical mode, horizontal mode, DM (Derived Mode), L_CCLM, T_CCLM, and LT_CCLM mode. DM may also be called direct mode. CCLM may be called LM.

[0154] On the other hand, DM and CCLM are dependent intra-prediction modes that predict the chroma block using information from the ruma block. DM can indicate a mode where the same intra-prediction mode used for the ruma component is applied to the intra-prediction mode for the chroma component. CCLM can indicate an intra-prediction mode where, in the process of generating a prediction block for the chroma block, the reconstructed sample of the ruma block is subsampled, and then the sample derived by applying CCLM parameters (e.g., α and / or β) to the subsampled sample is used as the prediction sample for the chroma block.

[0155] Overview of Direct Block Vector (DBV) for chromablock

[0156] Direct Block Vectors can be used in chroma blocks within a dual-tree slice. When a chroma dual tree is activated, a flag may be signaled indicating whether the chroma block was encoded using IBC mode.

[0157] Figure 11 is a diagram illustrating a rumor block used for DBV induction according to one embodiment of the present disclosure. When the rumor blocks at positions C(1110), TL(1120), TR(1130), BL(1140), or BR(1150) in Figure 11 are encoded using IBC mode or intraTMP mode, the block vector used to encode the rumor block may be scaled and used as a block vector for the chroma block. In this case, template matching may be used for scaling the block vector.

[0158] The following describes in detail a video encoding / decoding method according to one embodiment of this disclosure.

[0159] Example 1

[0160] This disclosure relates to a method for effectively generating chroma prediction blocks using block vectors. Furthermore, this disclosure proposes a method for constructing candidate chroma block vectors.

[0161] This disclosure allows for the use of block vector information stored in one or more rumor blocks corresponding to the current chroma block and / or block vector information stored around one or more corresponding rumor blocks in order to generate a predicted block for the current chroma block using DBV (Direct Block Vector). For example, as described above with regard to DBV induction, if the rumor block corresponding to the current chroma block is predicted using IBC mode or IntraTMP mode, the block vector may be stored. The stored block vector information can be used for the prediction of the current chroma block.

[0162] To currently derive the DBV of a chroma block, this disclosure can check whether block vectors are stored in a search order defined between the encoder / decoder for one or more chroma blocks corresponding to the current chroma block. Thereafter, this disclosure can rescale the first found block vector to fit the current chroma block and copy the chroma reference block indicated by that block vector to the current chroma block.

[0163] However, it is currently necessary to know which block vector is the optimal block vector for the chroma block among the block vectors stored in one or more rumor blocks corresponding to the chroma block. Therefore, the embodiments of this disclosure propose a method for generating a chroma prediction block using one or more rumor block vectors.

[0164] Figure 12 is a flowchart of a method for predicting the current chroma block according to one embodiment of the present disclosure. The video decoder 200 can signal (acquire) the DBV flag (S1201). Specifically, the video decoder 200 can decode the DBV flag information transmitted to the bitstream, and if the flag is true, it can perform DBV mode. Signaling of the DBV flag is an agreement between the video encoder 100 and the video decoder 200 and may be omitted. For example, if there are no block vector candidates because one or more chroma blocks corresponding to the current chroma block are not encoded in IBC mode or IntraTMP mode, signaling of the DBV flag may be omitted. In this case, DBV mode may not be performed.

[0165] The video decoding device 200 can generate a list of block vector candidates (S1203). That is, the video decoding device 200 can construct block vector candidates. The candidate block vectors stored in the block vector candidate list may be block vector information stored in a reference block. Here, the reference block may be a rumored restored block and / or a chromaed restored block. If the reference block is encoded in IBC mode, IntraTMP mode, or DBV mode, block vector information may be stored in the reference block.

[0166] According to one embodiment of the present disclosure, when constructing a block vector candidate list, the video decoder 200 can compare the block vector values ​​with other candidates constituting the block vector candidate list and include only those candidates that exceed a predefined critical value in the block vector candidate list. At this time, the video decoder 200 may apply a different critical value to check for duplicates depending on whether the reference block used to construct the block vector candidate list is a lumen block or a chroma block. Alternatively, the same critical value may be applied regardless of the type of reference block. Furthermore, the critical value may be defined and applied identically in advance to the video encoder 100 / video decoder 200. Alternatively, a critical value adaptively determined by the video encoder 100 may be transmitted to the video decoder 200.

[0167] When constructing a block vector candidate list based on critical values ​​according to this disclosure, the video decoder 200 can retain only the candidates added to the list in the earliest order. Alternatively, the video decoder 200 may retain the candidate added in the latest order and exclude similar candidates previously added to the list. Through comparison of block vector values, the video decoder 200 may determine that candidates that do not exceed critical values ​​are highly similar and exclude them from being included together in the block vector candidate list. By excluding a large number of highly similar block vectors from the candidates, coding efficiency and prediction efficiency may be improved.

[0168] As another example, if a reference block is in IBC mode, intraTMP mode, or DBV mode and fusion mode is applied in that mode, only the block vector information of that block may be included in the block vector candidate list. In other words, if the prediction mode of a reference block is a mode in which multiple reference blocks are fused, only the block vector information of that block may be included in the block vector candidate list.

[0169] According to this disclosure, the candidate block vectors included in the block vector candidate list may be lumer block vectors. In this case, the video decoder 200 can perform scaling on the lumer block vectors in order to predict the current chroma block using the candidate block vectors included in the block vector candidate list. This is merely an example, and the candidate block vectors included in the block vector candidate list may also be chroma block vectors that have been scaled. Whether or not to include lumer block vectors or scaled chroma block vectors in the block vector candidate list can be determined by agreement between the video encoder 100 and the video decoder 200.

[0170] The video decoding device 200 can rearrange the block vector candidate list (S1205). Specifically, the video decoding device 200 can rearrange the block vector candidate list based on the template cost (error) between the template region adjacent to the chroma block (i.e., the first template region) and the template region adjacent to the reference block indicated by the chroma block vector (i.e., the second template region). At this time, the video decoding device 200 can rearrange the block vector candidate list in order of lowest template cost (error).

[0171] If the difference between template costs is less than a predefined critical value, the video decoding device 200 can remove the later candidate from the list. That is, if the difference between the template cost calculated based on the first added candidate block vector and the template cost calculated based on the second added candidate block vector is less than a critical value, the second candidate added later may be removed from the block vector candidate list.

[0172] Different critical values ​​may apply depending on whether the reference block is a rumor block or a chroma block. Alternatively, the same critical value may apply regardless of the type of reference block. According to this disclosure, the critical value may be the number of pixels in the template region, but this disclosure is not limited to this, and the critical value can be defined in a variety of ways.

[0173] 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 determine template costs.

[0174] The video decoder 200 can acquire a block vector (S1207). That is, the video decoder 200 can acquire one block vector from the candidate block vectors in the block vector candidate list that was rearranged in step S1205. Whether or not to acquire a particular block vector from the candidate block vector list can be determined by an agreement between the video encoder 100 and the video decoder 200. For example, the video encoder 100 and the video decoder 200 can decide to use the block vector corresponding to the 0th index of the block vector candidate list for predicting the current chroma block.

[0175] Alternatively, the video decoder 200 can learn the block vector currently used to predict the chroma block through relevant information signaled from the video encoder 100. For example, the video decoder 200 can obtain the block vector of the current chroma block based on the k-th index (where k is a real number) of the block vector candidate list signaled from the video encoder 100.

[0176] Alternatively, if the current chroma block prediction mode is a mode that fuses multiple block vectors, the top n block vectors in the block vector candidate list may be used for chroma block prediction without signaling of relevant information, where n may be a value agreed upon between the video encoding device 100 and the video decoding device 200, and n is a natural number.

[0177] The video decoding device 200 can refine (or correct) the acquired block vector (S1209). Block vector errors may occur during the scaling of the rumor block vector, so it is necessary to refine the block vector. For example, if the YUV format is YUV420, this disclosure can refine the rumor block vector (v x , v y) is scaled to match the chroma channel to obtain chroma block vectors (v x >>1, v y >>1), and errors may occur in this process. Therefore, the video decoding apparatus 200 calculates the template cost for each of the chroma block vector candidates (v x >>1, v y >>1), ((v x - 1)>>1, v y >>1), (v x >>1, (v y - 1)>>1), ((v x - 1)>>1, (v y - 1)>>1), and then can refine to the block vector with the lowest template cost. The refinement process can be adaptively performed according to the YUV format.

[0178] The above-described refinement process is only an example. When the luma block vector is not in integer pel precision, the scaling method to match the chroma channel may change. For example, the lower k bits of the luma block vector (v x , v y ) may represent the fractional position. In this case, scaling can be performed on the luma block vector information excluding the lower k bit information representing the fractional position. Here, k can be a real number.

[0179] [[ID=!31]] Based on the chroma block vector obtained through the scaling of the luma block vector, the video decoding apparatus 200 can perform block vector refinement based on the template cost at a specific position. At this time, the specific position may be the chroma block vector candidate position. Or considering the block size and the block vector size, the interval and number of specific positions can be determined.

[0180] It should be noted that there seems to be a misspelling in the original text where "ルーマブロックベクトル" is repeatedly misspelled as "ルーマブロックベクトル" in some places. I've translated it as "luma block vector" as per the context. Also, there is an exclamation mark in the original text in line 31 which seems out of place. I've left it as it is but it might be an error in the original.The aforementioned refinement process can include fractional positions to account for cases where interpolation is performed. For example, if the chroma block vector is not integer PEL precision, and the chroma block vector can be represented with fractional precision, the video decoder 200 can calculate the template cost of the chroma block vector at a position with fractional PEL precision. Alternatively, even if the chroma block vector is integer PEL precision, if the chroma block vector can be represented with fractional precision, the video decoder 200 can calculate the template cost of the chroma block vector at a position with fractional PEL precision. In this case, the method for calculating the template cost may be the same as the method performed in the candidate list re-sorting stage.

[0181] The video decoder 200 can check whether the value of the fusion flag is 1 (S1211). Specifically, if the fusion flag obtained from the bitstream is true (YES in S1211), i.e., if the value of the fusion flag is 1, the video decoder 200 can fuse the numerous chroma reference blocks indicated by the numerous chroma block vectors to generate a chroma prediction block (e.g., a final prediction block) (S1221). According to yet another embodiment of this disclosure, the value of the fusion flag may be determined by agreement between the video encoder 100 and the video decoder 200 without signaling. For example, if at least one block is in IBC mode or intraTMP mode for one or more rumor blocks corresponding to a chroma block, and the value of the fusion flag of the corresponding rumor block (or one of the multiple corresponding rumor blocks) is 1, the video decoder 200 can generate a final prediction block by applying the same value as the fusion flag of the corresponding rumor block (or one of the multiple corresponding rumor blocks) to the current chroma block. As another example, if there is currently only one chromablock vector in the chromablock, the fusion flag may be induced to false without any further signaling.

[0182] If the value of the fusion flag is 1 (YES in S1211), the video decoder 200 can generate a final predicted block by fusing a number of chroma reference blocks indicated by a number of chroma block vectors. In this case, the video decoder 200 can generate a final predicted block by weighting and summing the number of chroma reference blocks. The weight values ​​applied to each chroma reference block for weighting and summing the number of chroma reference blocks can be determined in the same way as those applied to the corresponding chroma block.

[0183] For example, if the prediction mode of the corresponding ruma block is intraTMP mode or IBC mode, the value of the ruma block's fusion flag is 1, and the weighting value is determined using SAD (sum of difference)-based weight derivation, the video decoder 200 can also determine the weighting value of the chroma block by using SAD-based weight derivation. As yet another example, if the prediction mode of the corresponding ruma block is intraTMP mode or IBC mode, the value of the ruma block's fusion flag is 1, and the weighting value is determined using filter-based weight derivation, the video decoder 200 can also determine the weighting value of the chroma block by using filter-based weight derivation.

[0184] Alternatively, the method for determining the weight value in a chroma block can be determined independently of the method for determining the weight value in the corresponding ruma block. For example, the method for determining the weight value in a chroma block can be determined by agreement between the encoding device 100 and the video decoding device 200. For example, only SAD-based weight derivation may be used in a chroma block, regardless of the method for determining the weight value in the corresponding ruma block. Alternatively, only filter-based weight derivation may be used in a chroma block, regardless of the method for determining the weight value in the corresponding ruma block.

[0185] Here, SAD-based weight derivation can be a method in which an error value is calculated for each of the reference blocks indicated by a number of block vectors relative to the current block, and a weight is applied based on the ratio of these error values. For example, the error value may be determined based on the SAD between adjacent restored samples of the current block and adjacent restored samples of the reference block.

[0186] Filter-based weight derivation can be a method of deriving filter coefficients by utilizing the correlation between a large number of reference blocks and the current block, as shown by a large number of block vectors. Through this, the video decoder 200 can predict the current block using a large number of reference blocks.

[0187] Figure 13 is a diagram illustrating the template regions of the current block and a number of reference blocks according to one embodiment of the present disclosure. Specifically, the video decoding device 200 can train filter coefficients so that the mean squared error (MSE) is minimized between the template region of the chroma block and the number of reference template regions. Subsequently, the video decoding device 200 can generate the final predicted block using Equation 2.

[0188] [Equation 2]

number

[0189] -Output i : The i-th sample of the current block (final predicted block)

[0190] -c0, c1, c2, ..., c n-1 , c n : filter coefficients

[0191] -S1:Output i Luma sample of reference block 1 at the corresponding position

[0192] -S2:Output i Luma sample of reference block 2 at the corresponding position

[0193] -S3:Output i Luma sample of reference block 3 at the corresponding position

[0194] -S n-1 :Output iLuma sample of reference block n-1 at the corresponding position

[0195] -B: bias term (for example, can be a value of (1 << (bit depth - 1)))

[0196] As one example of how to determine the filter coefficients, the filter coefficients can be trained so that the MSE between the current template region and the reference template region is minimized. Subsequently, the video decoding device 200 can generate the final predicted block using equation 2. This is merely one example, and various models can be applied to determine the relationship between the template region and the reference template region of the chroma block, similar to CCCM (Convolutional cross-component intra prediction model), GL-CCCM (gradient and location based convolutional cross-component model), CCLM (cross-component intra prediction model), GLM (gradient linear model), or non-downsampled CCCM.

[0197] According to one embodiment of the present disclosure, the number of chroma blocks for generating the final prediction block can be determined by agreement between the video encoding device 100 and the video decoding device 200. For example, the video encoding device 100 and the video decoding device 200 can generate the final prediction block by fusing P chroma prediction blocks, where P can be an integer.

[0198] In this case, the maximum number of chroma prediction blocks for chroma prediction block fusion can be determined by agreement between the video encoding device 100 and the video decoding device 200. For example, the video encoding device 100 and the video decoding device 200 can generate a final prediction block by fusing up to K chroma prediction blocks, where K can be an integer. If the number of chroma block vectors for generating a chroma prediction block is greater than K, the video decoding device 200 can fuse chroma prediction blocks using K block vectors. The aforementioned P block vectors may mean the P block vectors that are located before the index indicating the candidate block vector in the block vector candidate list.

[0199] If the value of the fusion flag is not 1 (NO in S1211), the video decoder 200 can check whether the value of the filter flag is 1 (S1213). That is, the video decoder 200 can obtain filter flag information from the bitstream, and if the value of the corresponding flag is true (YES in S1213), it can calculate the filter coefficients between the current chroma block and the chroma reference block indicated by the chroma block vector (S1231). The video decoder 200 can generate a chroma prediction block based on the calculated filter (S1233). That is, the video decoder 200 can generate a chroma prediction block based on the filter coefficients calculated in step S1231.

[0200] Alternatively, the filter flag may be determined by agreement between the video encoding device 100 and the video decoding device 200 without separate signaling. For example, if at least one block is in IBC mode or intraTMP mode for one or more lumens corresponding to a chroma block, and the filter flag value for that block is 1, the video decoding device 200 can use the filter flag used for the lumens block for the chroma block now.

[0201] According to this disclosure, filter coefficients can now be determined by utilizing the correlation between chroma blocks and chroma reference blocks shown by the chroma block vector. For example, as shown in Figure 14, the video decoding device 200 can train the filter coefficients so that the MSE is minimized between the template region 1410 and the reference template region 1420 of the chroma block, and apply the filter as shown in Equation 3 below.

[0202] [Equation 3]

number

[0203] -Output i : The i-th sample of the current block (final predicted block)

[0204] -c0, c1, c2, c3, c4, c5: filter coefficients

[0205] -C: Output within reference block i Sample at the same location

[0206] -N:C and the adjacent upper sample

[0207] -S:C and the adjacent lower sample

[0208] -W:C and the adjacent sample on the left

[0209] -E: Sample to the right adjacent to C

[0210] -B: bias term (for example, can be a value of (1 << (bit depth - 1)))

[0211] The examples described above are merely illustrative, and a variety of models can be applied to determine the relationship between the chroma block template region and the reference template region, similar to CCCM, GL-CCCM, CCLM, GLM, or non-downsampled CCCM.

[0212] If the filter flag value is not 1 (NO in S1213), the video decoder 200 can generate a chroma prediction block (S1215). Specifically, the video decoder 200 can generate a chroma prediction block by copying the reference block indicated by the chroma block vector to the current block.

[0213] The video decoder 200 can fuse chroma prediction blocks generated in other modes (S1217). That is, the video decoder 200 can fuse chroma prediction blocks generated in other modes with chroma prediction blocks generated in step S1215. For example, the video decoder 200 can fuse chroma prediction blocks generated in DBV mode with chroma prediction blocks generated using linear models such as CCLM and MMLM. Whether or not to fuse with chroma prediction blocks generated in other modes can be signaled from the bitstream. Alternatively, the presence or absence of fusion may be determined by an agreement between the video encoder 100 and the video decoder 200.

[0214] Although each step performed in Figure 12 is explained based on the video decoding device 200, the corresponding operations can also be performed by the video encoding device 100. Furthermore, each step described in Figure 12 may be omitted or its order may be changed.

[0215] A block vector candidate list is necessary to more accurately predict chroma blocks. There are various ways to construct the block vector candidate list. For example, a candidate block vector may be a block vector stored in one or more rumor blocks that currently correspond to a chroma block. Referring to Figure 15, there can be many corresponding rumor blocks within the (2Wx2H) region, which currently corresponds to chroma block 1510 (WxH). Accordingly, the candidate block vectors that make up the block vector candidate list may be block vectors stored in one or more rumor blocks 1530 that currently correspond to chroma block 1510. In other words, the block vectors that make up the block vector candidate list may be all or some of the block vectors that exist within the (2Wx2H) region.

[0216] A particular rumor block may store multiple block vectors. For example, Block 1 in Figure 15 may store multiple block vectors. Examples of a single block storing multiple block vectors include: i) when Block 1's prediction mode is IntraTMP mode but predictions are made by fusing multiple blocks; ii) when Block 1's prediction mode is IBC mode but predictions are made using Bi-prediction; or iii) when Block 1's prediction mode is IBC mode but predictions are made by fusing multiple blocks. In this case, all of the multiple block vectors contained in the particular rumor block can become candidate block vectors. Alternatively, only some of the multiple block vectors contained in the particular rumor block can become candidate block vectors.

[0217] Figure 16 is a diagram illustrating the region surrounding the current chroma block according to one embodiment of the present disclosure. The candidate block vector may be a block vector stored in a block adjacent to or not adjacent to the current chroma block or the corresponding chroma block. Referring to Figure 16, the block vector stored in the reference block at position 1610 adjacent to the current chroma block or position 1630 not adjacent to the current chroma block may be the candidate block vector.

[0218] Assuming the coordinates of the top-left corner of the current chroma block are (x, y), the adjacent positions 1610 to the current chroma block can be (x-1, y-1), (x+W-1, y-1), (x+W, y-1), (x-1, y+H), and (x-1, y+H-1). The block vectors of the reference blocks included in these positions can become candidate block vectors that make up the block vector candidate list. Here, H represents the height of the current chroma block, and W represents the width of the current chroma block.

[0219] As another example, if the coordinates of the top-left corner of the current chroma block are (x, y), then position 1630, which is not currently adjacent to the chroma block, can be represented by NonAdj_pos, as shown in Table 2 below. The block vector of the reference block contained at this position can become a candidate block vector that makes up the block vector candidate list.

[0220] [Table 2]

[0221] As another example, if the coordinates of the top-left corner of the current chroma block are (0,0), then the position 1630, which is not currently adjacent to the chroma block, can be represented by NonAdj_pos as shown in Table 3 below. The block vector of the reference block contained at this position can become a candidate block vector that makes up the block vector candidate list.

[0222] [Table 3]

[0223] In yet another embodiment of this disclosure, the candidate block vector may be a block vector stored in a history-based list. For example, when a chroma block is encoded and / or decoded in IBC mode, IntraTMP mode, or DBV mode, a block vector may be added to the history-based list. Consequently, when a chroma block is currently encoded and / or decoded in DBV mode, the block vector stored in the history-based list may become a candidate block vector for the chroma block. In this case, the size of the history-based list may be determined by an agreement between the video encoder 100 and the video decoder 200. That is, the number of candidates that may be included in the history-based list may be determined by an agreement between the video encoder 100 and the video decoder 200. For example, the size of the block vector candidate list may be an integer greater than or equal to 0, and its size may be signaled in the bitstream or not signaled and determined by an agreement between the video encoder 100 and the video decoder 200. The history-based list may also be initialized for each CTU. Furthermore, the history-based list can be initialized every time the position of the CTU row changes.

[0224] Example 2

[0225] This disclosure relates to a method for effectively generating chroma prediction blocks and proposes a method for rearranging a block vector candidate list. By rearranging the block vector candidate list, the video encoding device 100 and / or video decoding device 200 can position candidate block vectors that currently indicate positions similar to chroma block vectors earlier in the candidate list, thereby effectively generating chroma prediction blocks.

[0226] FIG. 17 is a drawing illustrating candidate block vectors according to an embodiment of the present disclosure. The video encoding device 100 and / or the video decoding device 200 can reorder the block vector candidate list after obtaining the template cost between the adjacent template areas 1720 of the current chroma block 1710 and the adjacent template areas 1751, 1752, 1753 of the reference blocks 1741, 1742, 1743 indicated by the candidate block vectors 1731, 1732, 1733. That is, the video encoding device 100 and / or the video decoding device 200 can obtain the template cost for the candidate block vectors in the block vector candidate list and reorder them in ascending order of the template cost.

[0227] For example, when the block vector candidate list is {BV1, BV2, BV3} and the template costs are Cost_BV3 < Cost_BV1 < Cost_BV2, the block vector candidate list can be reordered to {BV3, BV1, BV2}.

[0228] Here, in order to obtain the template cost, error calculation methods such as SAD, 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) can be used.

[0229] The height or width of the template area may be determined by agreement between the video encoding device 100 and the video decoding device 200. For example, the height and width may each be 1. Accordingly, the upper template area of ​​the current block may have a size of Wx1, and the left-side template area of ​​the current block may have a size of 1xH, where W and H represent the width and height of the current chroma block / reference block, respectively. The shape and size of the template area are not limited to the examples given above and can have any shape and size. The shape and size of the template area may also be determined through agreement between the video encoding device 100 and the video decoding device 200.

[0230] According to one embodiment of the present disclosure, the video encoding device 100 and / or the video decoding device 200 can perform block vector candidate list rearrangement for each of the chromatic difference components Cb and Cr. At this time, the video encoding device 100 and / or the video decoding device 200 can signal an index indicating a candidate block vector in the block vector candidate list for each chromatic difference component. Furthermore, the video encoding device 100 and / or the video decoding device 200 can perform modifications such as using the first candidate in the rearranged list without signaling the index.

[0231] In one embodiment, the video encoding device 100 and / or the video decoding device 200 can perform realignment only for the chrominance component Cb. In this case, the video encoding device 100 and / or the video decoding device 200 can reuse the realigned block vector candidate list performed on the Cb component for the Cr component.

[0232] In other embodiments, realignment is performed considering all color difference components Cb and Cr, but the video encoding device 100 and / or video decoding device 200 can realign based on the sum or average of the template costs of the two color difference components. In yet another embodiment, the video encoding device 100 and / or video decoding device 200 can perform realignment based on the candidate with the smallest sum of the template costs of Cb and Cr for each candidate in the block vector candidate list.

[0233] In other embodiments, the video encoding device 100 and / or video decoding device 200 perform realignment considering all lumens and chrominance components Cb and Cr, but can also perform realignment based on the sum or average of the template costs of the lumens and the two chrominance components. In this case, the template costs can be calculated considering the YUV format. For example, if the video format is the YUV420 format, the sum of template costs can be defined such that the ratio of the lumens template cost to the template costs of each chrominance component is 1:2:2, as shown in Equation 4 below.

[0234] [Equation 4]

number

[0235] Figure 18 is a diagram illustrating a template region that falls outside the boundary according to one embodiment of the present disclosure. It is a diagram illustrating candidate block vectors. As shown in Figure 18, when a region falls outside the boundary of a picture, tile, slice, etc., the template region 1810 of the reference block indicated by some block vectors may be unavailable. Taking into account the unavailable template region 1810 of the reference block, the video encoding device 100 and / or video decoding device 200 can calculate the template cost using the following formula 5 and compare the template costs between different reference blocks.

[0236] [Formula 5]

number

[0237] -FinalCost k : Final template cost between the current chroma block and the reference block indicated by the k-th block vector

[0238] -Cost k:Template cost in the template region available between the current chroma block and the reference block indicated by the k-th block vector.

[0239] -Samples k : The number of samples of the available template region of the reference block indicated by the k-th block vector.

[0240] If all or part of the template areas of a reference block are unavailable, the video encoding device 100 and / or video decoding device 200 may set the candidate block vector in the block vector candidate list to the one with the highest template cost, or exclude it from the candidates.

[0241] Example 3

[0242] This disclosure relates to a method for effectively generating chroma prediction blocks and proposes a method for fusing chroma blocks. While fusion between chroma blocks generated by CCLM and chroma prediction blocks generated in non-LM modes (DM, DIMD modes, etc.) shows significant performance, the video encoding device 100 and / or video decoding device 200 do not perform fusion between chroma blocks generated in DBV mode and chroma blocks generated by CCLM. Therefore, this disclosure can further enhance the performance of DBV mode by performing fusion between chroma blocks generated in DBV mode and chroma blocks generated by CCLM.

[0243] According to one embodiment of this disclosure, the final prediction block can be generated by fusing chroma prediction blocks using the following formula 6.

[0244] [Equation 6]

number

[0245] -pred c: Final chroma prediction block (i.e., final prediction block)

[0246] -rec’ L : Chroma prediction block generated by CCLM

[0247] -pred Dbv : Chroma prediction block generated in DBV mode

[0248] -α0, α1: Weighting values (real numbers, α0 + α1 = 1)

[0249] The weighting values applied to Equation 6 can be determined in various ways. For example, the weighting values may be determined by the method shown in Table 4 below.

[0250]

Table 4

[0251] -isNeigh0LM: true if the block adjacent to the left of the current chroma block is predicted by a linear model such as CCLM or MMLM

[0252] -isNeigh1LM: true if the block adjacent to the top of the current chroma block is predicted by a linear model such as CCLM or MMLM

[0253] Alternatively, after deriving the filter coefficients, the video encoder 100 and / or the video decoder 200 can generate the final chroma prediction block using Equation 7 below.

[0254] 〔Equation 7〕

Number

[0255] -pred c : Final chroma prediction block (i.e., final prediction block)

[0256] -rec' L :Currently, the chroma block and the corresponding chroma block

[0257] -pred Dbv Chroma prediction block generated in DBV mode

[0258] -α0, α1, α2: filter coefficients

[0259] -midValue:(1<<(bitdepth-1))

[0260] In the method described above, the video decoder 200 can derive the filter coefficients in the following manner. Referring to Figure 19, the video decoder 200 can make the corresponding lumen block 1920 the same size as the current chroma block by downsampling the corresponding lumen block 1920 at the same position as the current chroma block 1910. Subsequently, as shown in Figure 20, the video decoder 200 can derive the filter coefficients by training to minimize the MSE between the template region 2010 of the current chroma block and the reference template region 2020 indicated by a number of block vectors. That is, the video decoder 200 can derive the filter coefficients by learning to minimize the MSE between Oi in the following equation 8 and the reconstructed sample Ri at the same position.

[0261] [Equation 8]

number

[0262] -i: The i-th sample in each template area

[0263] -A i : i-th sample within the template area of ​​the rumor block

[0264] -B i :Reference block ref i-th sample within the template area

[0265] -O i :A i and B i The result value obtained by applying the filter coefficient

[0266] -α0, α1, α2: Filter coefficients

[0267] -midValue: (1 << (bit depth - 1))

[0268] When generating a prediction block by referring to a plurality of chroma block vectors, the video decoding apparatus 200 can refer to a number of template areas to derive filter coefficients. For example, when generating a final prediction block by referring to a plurality of chroma blocks, the following Equation 9 can be used, and accordingly, the video decoding apparatus 200 can derive the corresponding filter coefficients.

[0269] 〔Equation 9〕

Number

[0270] -pred c : Final chroma prediction block (i.e., final prediction block)

[0271] -rec’ L : Corresponding luma block at the corresponding position to the current chroma block

[0272] -pred i : A number of chroma prediction blocks including the chroma prediction block generated in the DBV mode

[0273] -α, β, γ: Filter coefficients

[0274] -midValue: (1 << (bit depth - 1))

[0275] In the process described above, the reference template region used to derive the filter coefficient may be the reconstructed surrounding blocks of the corresponding rumor block location and / or the reconstructed surrounding samples of the rumor reference block indicated by the block vector referenced in the corresponding rumor block. Alternatively, the reference template region may be the reconstructed surrounding samples of the chroma block and / or the reconstructed surrounding samples of the chroma reference block indicated by the chroma block vector obtained by scaling the block vector of the rumor block. Alternatively, the reference template region may be the reconstructed surrounding samples of the chroma reference block indicated by the refined chroma block vector.

[0276] Example 4

[0277] This disclosure proposes various signaling methods for information required in DBV mode. For example, information required in DBV mode can be signaled as shown in Table 5 below.

[0278] [Table 5]

[0279] In Table 5, hasChromaBvFlag() may be a condition for checking whether a candidate block vector exists. For example, hasChromaBvFlag() may be a step to check whether the corresponding chroma block has been encoded and / or decoded in intraTMP mode or IBC mode, or whether adjacent or non-adjacent blocks of the current chroma block have been encoded and / or decoded in intraTMP mode, IBC mode, or DBV mode.

[0280] In Table 5, DbvChromaFlag is a flag indicating whether to apply DBV mode. If DbvChromaFlag is true, DBV mode may be applied. hasFilterFlag() is the step where conditions are checked in order to apply a filter. For example, the video decoding device 200 can check for the presence or absence of I-slice and whether CCCM, GLCCCM, or no-subsampling CCCM is available at the sps level.

[0281] FilterFlag may be a flag indicating whether to apply a filter. If a filter is applied, the video decoder 200 can now derive filter coefficients between the chroma block and the reference block, and use the deriveted filter to generate a predicted block. hasChromaFusionFlag() may be a step to check the conditions for applying fusion. For example, the video decoder 200 can check for the presence of I-slice and whether single LM or MMLM is available at the sps level.

[0282] fusionOtherModeFlag may be a flag indicating whether to perform fusion with chroma prediction blocks generated in other modes. For example, if fusionOtherModeFlag is true, the video decoder 200 can fuse prediction blocks generated based on MMLM or single-LM mode with prediction blocks generated in DBV mode. fusionFlag may be a flag indicating whether to apply fusion between multiple chroma blocks. If fusionFlag is true, the video decoder 200 can perform fusion between multiple chroma blocks.

[0283] Tables 6-9 below show various examples of signaling the necessary information in DBV mode. The information in Tables 6-9 may be the same as the information described in Table 5.

[0284] [Table 6]

[0285] [Table 7]

[0286] [Table 8]

[0287] [Table 9]

[0288] Candidate_idx may be index information indicating a candidate block vector within the block vector candidate list. The block vector candidate list may be a rearranged list, in which case the video decoder 200 can perform unary binarization. If the block vector candidate list is not rearranged, the video decoder 200 can perform ae(v).

[0289] Example 5

[0290] This embodiment relates to a method for effectively generating chroma prediction blocks and proposes a method for rearranging candidate block vectors. By rearranging the block vector candidate list for many candidate block vectors, the video encoding device 100 and / or video decoding device 200 can position candidate block vectors that currently have positions similar to the chroma block vectors at the front of the candidate list, thereby enabling the effective generation of chroma prediction blocks.

[0291] The block vector candidate list rearrangement method according to this disclosure may be the same as that described in Example 2 above. However, according to this disclosure, if rearrangement has not been performed, the first block vector in the block vector candidate list (the block vector corresponding to the first index) may be selected for the prediction of the chroma block. For example, a condition for using a block vector candidate list that has not been rearranged may be considered when the corresponding chroma block corresponding to the center position of the chroma prediction block has been encoded and / or decoded in IntraTMP mode or IBC mode, etc., and the block vector has been stored.

[0292] As yet another example, a case where the center position of a corresponding lumen block containing the corresponding lumen position corresponding to the center position of a chroma prediction block is the same as the center position of the chroma prediction block, and the block (corresponding lumen block) has been encoded and / or decoded in IntraTMP mode or IBC mode, etc., and the block vector has been stored, can be considered a condition for using a block vector candidate list that has not been realigned.

[0293] In the case of YUV420, if the center position of the chroma prediction block is (x, y), and the center position of the corresponding lumen block containing the corresponding lumen position (2*x, 2*y) is (2*x, 2*y), and the block vector is stored by encoding and / or decoding the block in question in IntraTMP mode or IBC mode, then the first block vector in the list of block vector candidates that has not been realigned (the block vector corresponding to the first index) may be selected for chroma block prediction.

[0294] If a portion of the template region of a reference block indicated by multiple candidate block vectors in the block vector candidate list falls outside the boundaries of a picture, tile, slice, etc., the template region of that reference block may be unavailable. In this case, the block vector candidate list reordering process does not need to be performed. Therefore, the first block vector in the block vector candidate list (the block vector corresponding to the first index) may be selected to predict the current chroma block.

[0295] Example 6

[0296] This disclosure proposes a method for converting residual signals derived by the prediction method proposed in the embodiments described above. The video encoding device 100 and / or video decoding device 200 can use a conversion kernel suitable for the intra-mode by inducing it from the residual signal, thereby improving prediction performance.

[0297] The currently predicted chroma block can be assumed to be a block encoded and / or decoded in DBV mode. Alternatively, the currently predicted chroma block can be assumed to be a block generated through the process of Example 1.

[0298] According to this disclosure, the video encoding device 100 and / or the video decoding device 200 can induce a specific intra-mode by utilizing the currently predicted pixel values ​​within the chroma block. The video encoding device 100 and / or the video decoding device 200 can use the conversion kernel for the induced intra-mode as the conversion kernel for the chroma residual signal. For example, the video encoding device 100 and / or the video decoding device 200 can induce a predicted mode by determining the gradient for the currently predicted pixels within the chroma block, and then select a conversion kernel based on that mode.

[0299] Alternatively, the video encoding device 100 and / or the video decoding device 200 can utilize the reconstructed peripheral pixels of the currently predicted chroma block to induce a specific intra-mode, and use the conversion kernel for the intra-mode as the conversion kernel for the chroma residual signal. Alternatively, the video encoding device 100 and / or the video decoding device 200 can determine the gradient for the reconstructed peripheral pixels of the currently predicted chroma block to induce a predicted mode, and select a conversion kernel based on the corresponding mode.

[0300] Alternatively, the video encoding device 100 and / or the video decoding device 200 can induce a specific intra-mode by utilizing the pixel values ​​of all or part of the rumen block corresponding to the currently predicted chroma block, or by utilizing rumen pixel values ​​determined by the size of the chroma block, and use the conversion kernel for the intra-mode as the conversion kernel for the chroma residual signal. For example, the video encoding device 100 and / or the video decoding device 200 can induce a predicted mode by obtaining a gradient for the pixels within the rumen block corresponding to the currently predicted chroma block, and select a conversion kernel based on the corresponding mode.

[0301] Alternatively, the current video encoding device 100 and / or video decoding device 200 can induce a specific intra-mode by utilizing the peripheral already restored pixels of the lumen block corresponding to the re-predicted chroma block, and use the conversion kernel for the intra-mode as the conversion kernel for the chroma residual signal. For example, the video encoding device 100 and / or video decoding device 200 can induce a predicted mode by finding the gradient for the peripheral already restored pixels of the lumen block corresponding to the currently predicted chroma block, and select a conversion kernel based on that mode.

[0302] Example 7

[0303] This disclosure proposes various signaling methods for information required in DBV mode. For example, information required in DBV mode can be signaled as shown in Tables 10 and 11 below. The various information included in Tables 10 and 11 may be the same as that described in Example 4 above.

[0304] [Table 10]

[0305] [Table 11]

[0306] The DBV mode flag (e.g., DbvChromaFlag) may be signaled when the corresponding chroma block is encoded and / or decoded in IntraTMP mode or IBC mode. Alternatively, it may be signaled when adjacent or non-adjacent blocks of the current chroma block are encoded and / or decoded in IntraTMP mode, IBC mode, or DBV mode. In this case, the specific block location for determining whether it is in IntraTMP mode or IBC mode may be determined by agreement between the video encoding device 100 and the video decoding device 200.

[0307] Taking Figure 21 as an example, if the width and height of the current chroma block 2110 are W and H, then it is possible to check whether the corresponding rumor block corresponding to each search location within the 2xW, 2xH size of the rumor channel corresponding to the current chroma block 2110 has been encoded or decoded in IntraTMP mode or IBC mode. Referring to Figure 21, if the upper left position of the (2xW, 2xH) block is (0, 0), the search locations may be as follows.

[0308] {(0, 0), (W / 4, 0), (W / 2, 0), (3xW / 4, 0), (W-1, 0),

[0309] (0, H / 4), (W / 4, H / 4), (W / 2, H / 4), (3*W / 4, H / 4), (W-1, H / 4),

[0310] (0, H / 2), (W / 4, H / 2), (W / 2, H / 2), (3*W / 4, H / 2), (W-1, H / 2),

[0311] (0, 3xH / 4), (W / 4, 3xH / 4), (W / 2, 3xH / 4), (3xW / 4, 3xH / 4), (W-1, 3xH / 4),

[0312] (0, H-1), (W / 4, H-1), (W / 2, H-1), (3xW / 4, H-1), (W-1, H-1)

[0313] }

[0314] Alternatively, in order to signal the DBV mode flag (e.g., DbvChromaFlag), the video encoding device 100 and / or the video decoding device 200 can check whether IntraTMP mode or IBC mode has been applied to the corresponding rumor blocks that correspond to some search locations. Alternatively, in order to signal the DBV mode flag (e.g., DbvChromaFlag), the video encoding device 100 and / or the video decoding device 200 can check whether IntraTMP mode or IBC mode has been applied to the corresponding rumor blocks that correspond to other locations within (2xW, 2xH).

[0315] Alternatively, in order to signal the DBV mode flag (e.g., DbvChromaFlag), the video encoding device 100 and / or the video decoding device 200 can check whether IntraTMP mode or IBC mode has been applied to the corresponding chroma block that is currently outside the (2xW, 2xH) position. Alternatively, in order to signal the DBV mode flag (e.g., DbvChromaFlag), the video encoding device 100 and / or the video decoding device 200 can check whether IntraTMP mode or IBC mode has been applied to the chroma block that is currently outside the chroma block position in the chroma channel.

[0316] Figure 22 is a flowchart of a video encoding method according to one embodiment of the present disclosure. The video encoding device 100 can construct a block vector candidate list (S2210). That is, in order to predict the current chroma block, a block vector candidate list can be constructed for the current chroma block. The video encoding device 100 can rearrange the block vector candidate list constructed in step S2210 (S2230). The method for rearranging the block vector candidate list may be the same as in each embodiment described above.

[0317] The video encoding device 100 can generate a final prediction block (S2250). That is, it can generate the final prediction block of the current chroma block by performing intra-prediction based on one candidate block vector included in the rearranged block vector candidate list. Alternatively, it can generate multiple chroma prediction blocks by performing intra-prediction based on multiple candidate block vectors included in the rearranged block vector candidate list. The video encoding device 100 can generate a final prediction block by weighting and summing the generated multiple chroma prediction blocks.

[0318] The video encoding device 100 can encode a block vector candidate index indicating the candidate block vector used to generate the final predicted block (S2270). Here, there may be multiple candidate block vectors used to generate the final predicted block, and if there are multiple candidate block vectors, multiple block vector candidate indices may be encoded. Signaling of the block vector candidate index can be performed in the same manner as in the above-described embodiment 4 or embodiment 7.

[0319] Figure 23 is a flowchart of a video decoding method according to one embodiment of the present disclosure. The video decoding device 200 can configure a block vector candidate list (S2310). That is, in order to predict the current chroma block, a block vector candidate list for the current chroma block can be configured. The block vector candidate list may be configured based on the block vector of the chroma block corresponding to the current chroma block or the block vectors of the surrounding blocks of the current chroma block. The video decoding device 200 can rearrange the block vector candidate list configured in step S2310 (S2330). The method for rearranging the block vector candidate list may be the same as in each embodiment described above.

[0320] The video decoder 200 can obtain a block vector candidate index (S2350). That is, the video decoder 200 can obtain a block vector candidate index that represents one candidate block vector included in the rearranged block vector candidate list. Alternatively, the video decoder 200 can obtain one or more block vector candidate indices from the bitstream that represent candidate block vectors included in the rearranged block vector candidate list.

[0321] The video decoding device 200 can generate a final predicted block (S2370). That is, it can generate a final predicted block of the current chroma block by performing intra-prediction based on the candidate block vector indicated by the block vector candidate index. According to one embodiment of the present disclosure, the video decoding device 200 can acquire a plurality of block vector candidate indices, where the plurality of block vector candidate indices may include a first index and / or a second index. The video decoding device 200 can generate a first predicted block of the current chroma block based on a first candidate block vector indicated by the first index. The video decoding device 200 can also generate a second predicted block of the current chroma block based on a second candidate block vector indicated by the second index. The video decoding device 200 can generate a final predicted block by weighting and summing the first and second predicted blocks. The method for weighting and summing the first and second predicted blocks may be the same as the method described above in various embodiments.

[0322] According to other embodiments of this disclosure, the video decoder 200 can generate a first predicted block of the current chroma block based on candidate block vectors indicated by a block vector candidate index. The video decoder 200 can also generate a second predicted block of the current chroma block based on a linear model. The video decoder 200 can generate a final predicted block by weighting and summing the first and second predicted blocks. The method for weighting and summing the first and second predicted blocks may be the same as the method described above in various embodiments.

[0323] The exemplary methods in this disclosure are presented as a series of actions for clarity of explanation, but this is not intended to restrict the order in which the steps are performed, and each step may be performed simultaneously or in a different order, if necessary. To embody the methods relating to this disclosure, additional steps may be included in addition to the exemplary steps, some steps may be omitted and the remaining steps included, or some steps may be omitted and additional additional steps included.

[0324] In this disclosure, a video encoding device or video decoding device that performs a predetermined operation (stage) may perform an operation (stage) to confirm the conditions or status for performing the operation (stage). For example, if it is stated that a predetermined operation is performed when a predetermined condition is satisfied, the video encoding device or video decoding device may perform an operation to confirm whether the predetermined condition is satisfied, and then perform the predetermined operation.

[0325] The various embodiments of this disclosure are not intended to list all possible combinations, but rather to illustrate representative aspects of this disclosure, and the matters described in the various embodiments may be applied independently or in combination of two or more.

[0326] Furthermore, various embodiments of this disclosure can be embodied in hardware, firmware, software, or a combination thereof. In the case of hardware embodiment, it can be embodied in one or more ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processors), DSPDs (Digital Signal Processing Devices), PLDs (Programmable Logic Devices), FPGAs (Field Programmable Gate Arrays), general processors, controllers, microcontrollers, microprocessors, etc.

[0327] Furthermore, the video decoding and video encoding devices to which the embodiments of this disclosure are applied may be included in multimedia broadcasting transceivers, mobile communication terminals, home cinema video equipment, digital cinema video equipment, surveillance cameras, video conferencing equipment, real-time communication equipment such as video communication, mobile streaming equipment, storage media, video cameras, on-demand video (VoD) service providers, OTT video (Over the top video) equipment, internet streaming service providers, 3D video equipment, image phone video equipment, and medical video equipment, and may be used to process video signals or data signals. For example, OTT video (Over the top video) equipment may include game consoles, Blu-ray players, internet-connected TVs, home theater systems, smartphones, tablet PCs, DVRs (Digital Video Recorders), etc.

[0328] Figure 24 is a diagram illustrating an example of a content streaming system to which the embodiments of this disclosure may be applied.

[0329] As illustrated in Figure 24, the content streaming system to which the embodiments of this disclosure are applied may broadly include an encoding server, a streaming server, a web server, a media storage facility, user equipment, and multimedia input devices.

[0330] The encoding server is responsible for compressing content input from multimedia input devices such as smartphones, cameras, and video cameras into digital data to generate a bitstream, and transmitting this bitstream to the streaming server. In other cases, if a multimedia input device such as a smartphone, camera, or video camera directly generates the bitstream, the encoding server may be omitted.

[0331] The bitstream may be generated by a video encoding method and / or video encoding apparatus to which an embodiment of the present disclosure is applied, and the streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.

[0332] The streaming server transmits multimedia data to the user's device based on user requests via a web server, and the web server can act as an intermediary to inform the user about available services. When a user requests a desired service from the web server, the web server transmits this to the streaming server, which can then transmit multimedia data to the user. In this case, the content streaming system may include a separate control server, in which case the control server can perform the role of controlling commands and responses between the devices within the content streaming system.

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

[0334] Examples of user devices include mobile phones, smartphones, laptop computers, digital broadcasting terminals, PDAs (personal digital assistants), PMPs (portable multimedia players), navigation systems, slate PCs, tablet PCs, ultrabooks, wearable devices (such as smartwatches, smart glasses, and HMDs), digital TVs, desktop computers, and digital signage.

[0335] Each server within the aforementioned content streaming system may be operated as a distributed server, in which case the data received by each server may be processed in a distributed manner.

[0336] The scope of this disclosure includes software or machine-executable instructions (e.g., operating systems, applications, firmware, programs, etc.) that enable operation by various embodiments to be performed on a device or computer, and non-transitory computer-readable medium on which such software or instructions etc. are stored and executable on a device or computer. [Industrial applicability]

[0337] The embodiments relating to this disclosure may be used to encode / decode video.

Claims

1. A video decoding method performed by a video decoding device, Currently, we are in the stage of constructing a list of candidate block vectors for chroma blocks. In the step of rearranging the aforementioned block vector candidate list, The steps include obtaining a block vector candidate index that represents one of the candidate block vectors included in the reordered block vector candidate list, and The step includes generating the final predicted block of the current chroma block by performing an intra-prediction based on the candidate block vector indicated by the candidate block vector index, A video decoding method wherein the block vector candidate list is constructed based on the block vector of the rumor block corresponding to the current chroma block or the block vector of the surrounding block of the current chroma block.

2. In paragraph 1, A video decoding method comprising: the block vector candidate list being constructed by adding one or more rumen block vectors contained in one or more corresponding rumen blocks corresponding to the current chroma block in a predetermined order.

3. In paragraph 2, A video decoding method wherein the rumor block vector is included in the block vector candidate list based on a predetermined critical value.

4. In paragraph 2, A video decoding method wherein the candidate block vectors included in the candidate block vector list are scaled values ​​of the rumor block vectors.

5. In paragraph 4, The step further includes correcting the candidate block vectors, A video decoding method in which, based on the candidate block vector being (Vx>>1, Vy>>1), the correction is performed based on a comparison of the template costs of (Vx>>1, Vy>>1), ((Vx+1)>>1, Vy>>1), (Vx>>1, (Vy+1)>>1), and ((Vx+1)>>1, (Vy+1)>>1).

6. In paragraph 1, The rearrangement of the aforementioned block vector candidate list is performed based on the template cost. A video decoding method in which the template cost is calculated based on the template region of the current chroma block and the template region of the reference block indicated by the candidate block vector.

7. In paragraph 1, The aforementioned block vector candidate index includes at least one of the first index or the second index. The step of generating the final prediction block is: The step of generating the first predicted block of the current chroma block based on the first candidate block vector indicated by the first index, The steps include generating a second predicted block of the current chroma block based on the second candidate block vector indicated by the second index, and A video decoding method comprising the step of generating the final prediction block by weighting and summing the first prediction block and the second prediction block.

8. In paragraph 1, The step of generating the final prediction block is: The step of generating the first predicted block of the current chroma block based on the candidate block vector indicated by the aforementioned block vector candidate index, The current stage involves generating the second predicted block of the chroma block based on a linear model, and A video decoding method comprising the step of generating the final prediction block by weighting and summing the first prediction block and the second prediction block.

9. A video encoding method performed by a video encoding device, Currently, we are in the stage of constructing a list of candidate block vectors for chroma blocks. In the step of rearranging the aforementioned block vector candidate list, The steps include: generating the final predicted block of the current chroma block by performing intra-prediction based on one candidate block vector included in the re-arranged block vector candidate list; and Although it includes a step of encoding a block vector candidate index that indicates the candidate block vector used to generate the final predicted block, A video encoding method wherein the block vector candidate list is constructed based on the block vector of the rumor block corresponding to the current chroma block or the block vectors of the surrounding blocks of the current chroma block.

10. A computer-readable recording medium storing a bitstream generated by the video encoding method of paragraph 9.

11. In a method for transmitting a bitstream generated by a video encoding method, The aforementioned video encoding method is Currently, we are in the stage of constructing a list of candidate block vectors for chroma blocks. In the step of rearranging the aforementioned block vector candidate list, The steps include: generating the final predicted block of the current chroma block by performing intra-prediction based on one candidate block vector included in the re-arranged block vector candidate list; and Although it includes a step of encoding a block vector candidate index that indicates the candidate block vector used to generate the final predicted block, A bitstream transmission method wherein the block vector candidate list is constructed based on the block vector of the rumor block corresponding to the current chroma block or the block vectors of the surrounding blocks of the current chroma block.