Image encoding / decoding method and device, and recording medium on which bitstream is stored
By deriving intra prediction modes from a histogram of gradients within a reference region, the method optimizes intra prediction processes for high-resolution video, enhancing encoding efficiency and image quality.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-09-10
- Publication Date
- 2026-03-19
AI Technical Summary
Existing video compression technologies face challenges in efficiently encoding and decoding high-resolution, high-quality video due to the complexity and inefficiency of intra prediction processes, particularly in deriving optimal intra prediction modes for current blocks.
The method involves deriving a histogram of gradients (HoG) from a reference region using a filter to determine one or more derived intra prediction modes (DIPM) for a current block, limiting the application of the filter to a preset maximum number of samples, and adaptively applying it based on block size, thereby optimizing the DIPM derivation process.
This approach improves encoding efficiency by reducing complexity and enhancing coding efficiency through more accurate DIPM derivation, selecting a suitable transformation kernel or set for the current block, and improving subjective and objective image quality.
Smart Images

Figure KR2025014101_19032026_PF_FP_ABST
Abstract
Description
Video encoding / decoding method and device, and a recording medium storing a bitstream
[0001] The present invention relates to a video encoding / decoding method and apparatus, and a recording medium storing a bitstream.
[0002] Recently, the demand for high-resolution, high-quality video, such as HD (High Definition) and UHD (Ultra High Definition) video, has been increasing across various application fields, and accordingly, high-efficiency video compression technologies are being discussed.
[0003] Various image compression technologies exist, such as inter-prediction technology that predicts pixel values in the current picture from previous or subsequent pictures, intra-prediction technology that predicts pixel values in the current picture using pixel information within the current picture, and entropy coding technology that assigns short codes to values with high frequency and long codes to values with low frequency; by utilizing these image compression technologies, image data can be effectively compressed for transmission or storage.
[0004] The present disclosure provides a DIPM induction method and apparatus.
[0005] The present disclosure provides a method and apparatus for configuring a reference region for DIPM.
[0006] The present disclosure provides a method and apparatus for selecting some samples within a reference area.
[0007] The present disclosure provides a method and apparatus for determining a conversion kernel and / or a conversion set for (inverse) conversion.
[0008] An image decoding method and apparatus according to the present disclosure may derive a histogram of gradient (HoG) by applying a predetermined filter to samples belonging to a predetermined reference region, derive one or more derived intra prediction modes (DIPM) for a current block based on the HoG, generate a prediction block of the current block, and restore the current block based on the prediction block. Here, the HoG may be a group of one or more intra prediction modes having accumulated amplitude values. The reference region may be a surrounding region of the current block or a previously predicted region within the current block.
[0009] In the image decoding method and apparatus according to the present disclosure, the number of samples to which the filter is applied within the reference region may be limited so as not to exceed a preset maximum number of samples.
[0010] In the image decoding method and apparatus according to the present disclosure, the number of samples to which the filter is applied in the reference region can be determined based on a specific scaling value.
[0011] In the image decoding method and apparatus according to the present disclosure, the samples to which the filter is applied in the reference region may be samples at locations pre-defined in the decoding apparatus.
[0012] In the image decoding method and apparatus according to the present disclosure, the filter may be restricted so as not to be applied to samples belonging to a surrounding area of a specific location.
[0013] In the image decoding method and apparatus according to the present disclosure, the limitation may be adaptively applied based on the size of the current block.
[0014] In the image decoding method and apparatus according to the present disclosure, the filter may be restricted so as not to be applied to a sample at a specific location within a pre-predicted region of the current block.
[0015] In the image decoding method and apparatus according to the present disclosure, the limitation may be adaptively applied based on the size of the current block.
[0016] In the image decoding method and apparatus according to the present disclosure, the filter may have at least one filter coefficient among 1, 3, or 10.
[0017] In the image decoding method and apparatus according to the present disclosure, the filter may have a number of taps of 2, 6, or 16.
[0018] In the image decoding method and apparatus according to the present disclosure, a residual block can be generated based on an inverse transformation of the transformation coefficients of the current block. Here, the transformation kernel or transformation set for the inverse transformation may be determined based on one or more DIPMs derived for the current block.
[0019] An image encoding method and apparatus according to the present disclosure may derive a histogram of gradient (HoG) by applying a predetermined filter to samples belonging to a predetermined reference region, derive one or more derived intra prediction modes (DIPM) for a current block based on the HoG, generate a prediction block of the current block, derive transformation coefficients of the current block based on the residual block of the current block, and encode residual information regarding the transformation coefficients. Here, the HoG may be a group of one or more intra prediction modes having accumulated amplitude values. The reference region may be a surrounding region of the current block or a pre-predicted region within the current block.
[0020] A computer-readable digital storage medium is provided that stores encoded video / image information that causes an image decoding method to be performed by a decoding device according to the present disclosure.
[0021] A computer-readable digital storage medium is provided that stores video / image information generated according to the image encoding method according to the present disclosure.
[0022] A method and apparatus for transmitting video / image information generated according to the image encoding method according to the present disclosure are provided.
[0023] According to the present disclosure, by inducing and utilizing a DIPM, which is a mode more optimized for the current block in an encoding device and a decoding device, the encoding efficiency of intra prediction can be improved.
[0024] According to the present disclosure, by selectively applying a filter to some samples within a reference region, the complexity of the DIPM derivation process can be reduced while improving the coding efficiency of intra prediction.
[0025] According to the present disclosure, a more accurate DIPM can be derived based on a variable reference region, thereby improving the coding efficiency of intra prediction.
[0026] According to the present disclosure, by utilizing a DIPM derived based on samples from a surrounding region or a previously predicted region, a transformation kernel or transformation set more suitable for the current block can be selected.
[0027] FIG. 1 illustrates a video / image coding system according to the present disclosure.
[0028] FIG. 2 shows a schematic block diagram of an encoding device to which an embodiment of the present disclosure can be applied and to which encoding of a video / image signal is performed.
[0029] FIG. 3 shows a schematic block diagram of a decoding device to which an embodiment of the present disclosure can be applied and to which decoding of a video / image signal is performed.
[0030] FIG. 4 illustrates a decoding method performed by a decoding device (300) as an embodiment according to the present disclosure.
[0031] FIG. 5 illustrates a schematic configuration of a decoding device (300) that performs a decoding method according to the present disclosure.
[0032] FIG. 6 illustrates an encoding method performed by an encoding device (200) as an embodiment according to the present disclosure.
[0033] FIG. 7 illustrates a schematic configuration of an encoding device (200) that performs an encoding method according to the present disclosure.
[0034] FIG. 8 shows an example of a content streaming system to which embodiments of the present disclosure can be applied.
[0035] The present disclosure is susceptible to various modifications and may have various embodiments; specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present disclosure to specific embodiments, and it should be understood that it includes all modifications, equivalents, and substitutions that fall within the spirit and scope of the present disclosure. Similar reference numerals have been used for similar components in the description of each drawing.
[0036] Terms such as "first," "second," etc., may be used to describe various components, but said components should not be limited by said terms. Such terms are used solely for the purpose of distinguishing one component from another. For example, without departing from the scope of the present disclosure, the first component may be named the second component, and similarly, the second component may be named the first component. The term "and / or" includes a combination of a plurality of related described items or any of a plurality of related described items.
[0037] When it is stated that one component is "connected" or "connected" to another component, it should be understood that while it may be directly connected or connected to that other component, there may also be other components in between. On the other hand, when it is stated that one component is "directly connected" or "directly connected" to another component, it should be understood that there are no other components in between.
[0038] The terms used in this application are used merely to describe specific embodiments and are not intended to limit the disclosure. The singular expression includes the plural expression unless the context clearly indicates otherwise. In this application, terms such as “comprising” or “having” are intended to specify the presence of the features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, and should be understood as not precluding the existence or addition of one or more other features, numbers, steps, actions, components, parts, or combinations thereof.
[0039] The present disclosure relates to video / video coding. For example, the methods / embodiments disclosed herein may be applied to methods disclosed in the VVC (versatile video coding) standard. Additionally, the methods / embodiments disclosed herein may be applied to methods disclosed in the EVC (essential video coding) standard, AV1 (AOMedia Video 1) standard, AVN2 (2nd generation of audio video coding standard), or next-generation video / video coding standards (e.g., H.267 or H.268).
[0040] This specification presents various embodiments regarding video / image coding, and unless otherwise noted, said embodiments may be performed in combination with one another.
[0041] In this specification, "video" may refer to a set of images over time. "Picture" generally refers to a unit representing a single image of a specific time period, and "slice" or "tile" is a unit that constitutes a part of a picture in coding. A slice or tile may contain one or more coding tree units (CTUs). A picture may consist of one or more slices or tiles. A tile is a rectangular area composed of multiple CTUs within a specific tile column and a specific tile row of a picture. A tile column is a rectangular area of CTUs having a height equal to the height of the picture and a width specified by the syntax requirements of the picture parameter set. A tile row is a rectangular area of CTUs having a height specified by the picture parameter set and a width equal to the width of the picture. CTUs within a tile are arranged continuously according to the CTU raster scan, whereas tiles within a picture may be arranged continuously according to the tile's raster scan. A single slice may include an integer number of complete tiles or an integer number of consecutive complete CTU rows within a tile of a picture that can be exclusively contained in a single NAL unit. Meanwhile, a single picture may be divided into two or more subpictures. A subpicture may be a rectangular area of one or more slices within a picture.
[0042] A pixel, or pel, can refer to the smallest unit that constitutes a picture (or image). Additionally, the term 'sample' may be used as a counterpart to pixel. A sample generally represents a pixel or its value, and it may represent only the pixel / pixel value of the luminance (luma) component or only the pixel / pixel value of the chroma component.
[0043] A unit may represent a basic unit of image processing. A unit may include at least one of a specific area of a picture and information related to that area. A unit may include one luminance block and two chroma (e.g., cb, cr) blocks. Depending on the case, the term unit may be used interchangeably with terms such as block or area. In general, an MxN block may include samples (or sample arrays) or a set (or array) of transform coefficients consisting of M columns and N rows.
[0044] In this specification, "A or B" may mean "only A," "only B," or "both A and B." Alternatively, in this specification, "A or B" may be interpreted as "A and / or B." For example, in this specification, "A, B or C" may mean "only A," "only B," "only C," or "any combination of A, B and C."
[0045] A slash ( / ) or a comma used in this specification may mean "and / or." For example, "A / B" may mean "A and / or B." Accordingly, "A / B" may mean "only A," "only B," or "both A and B." For example, "A, B, C" may mean "A, B or C."
[0046] In this specification, "at least one of A and B" may mean "only A," "only B," or "both A and B." Additionally, in this specification, the expressions "at least one of A or B" or "at least one of A and / or B" may be interpreted as synonymous with "at least one of A and B."
[0047] Additionally, in this specification, "at least one of A, B and C" may mean "only A," "only B," "only C," or "any combination of A, B and C." Also, "at least one of A, B or C" or "at least one of A, B and / or C" may mean "at least one of A, B and C."
[0048] Additionally, parentheses used in this specification may mean "for example." Specifically, where indicated as "prediction (intra-prediction)," "intra-prediction" may be proposed as an example of "prediction." In other words, "prediction" in this specification is not limited to "intra-prediction," and "intra-prediction" may be proposed as an example of "prediction." Furthermore, even where indicated as "prediction (i.e., intra-prediction)," "intra-prediction" may be proposed as an example of "prediction."
[0049] Technical features described individually within a single drawing in this specification may be implemented individually or simultaneously.
[0050] FIG. 1 illustrates a video / image coding system according to the present disclosure.
[0051] Referring to FIG. 1, the video / image coding system may include a first device (source device) and a second device (receiving device).
[0052] A source device can transmit encoded video / image information or data in the form of a file or streaming to a receiving device via a digital storage medium or a network. The source device may include a video source, an encoding device, and a transmission unit. The receiving device may include a receiver, a decoding device, and a renderer. The encoding device may be referred to as a video / image encoding device, and the decoding device may be referred to as a video / image decoding device. A transmitter may be included in the encoding device. A receiver may be included in the decoding device. The renderer may include a display unit, and the display unit may be composed of a separate device or an external component.
[0053] A video source may acquire video / images through processes such as video / image capture, synthesis, or generation. The video source may include a video / image capture device and / or a video / image generation device. A video / image capture device may include one or more cameras, a video / image archive containing previously captured video / images, etc. A video / image generation device may include a computer, a tablet, a smartphone, etc., and may generate video / images (electronically). For example, a virtual video / image may be generated through a computer, etc., in which case the video / image capture process may be replaced by a process in which related data is generated.
[0054] The encoding device can encode input video / images. The encoding device can perform a series of procedures, such as prediction, transformation, and quantization, for compression and coding efficiency. The encoded data (encoded video / image information) can be output in the form of a bitstream.
[0055] The transmission unit can transmit encoded video / image information or data output in the form of a bitstream to the receiving unit of a receiving device in the form of a file or streaming via a digital storage medium or a network. The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmission unit may include elements for creating a media file through a predetermined file format and elements for transmission via a broadcasting / communication network. The receiving unit can receive / extract the bitstream and transmit it to a decoding device.
[0056] The decoding device can decode video / images by performing a series of procedures such as inverse quantization, inverse transform, and prediction corresponding to the operation of the encoding device.
[0057] The renderer can render the decoded video / image. The rendered video / image can be displayed through the display unit.
[0058] FIG. 2 shows a schematic block diagram of an encoding device to which an embodiment of the present disclosure can be applied and to which encoding of a video / image signal is performed.
[0059] Referring to FIG. 2, the encoding device (200) may be configured to include an image partitioner (210), a predictor (220), a residual processor (230), an entropy encoder (240), an adder (250), a filter (260), and a memory (270). The predictor (220) may include an inter-predictor (221) and an intra-predictor (222). The residual processor (230) may include a transformer (232), a quantizer (233), a dequantizer (234), and an inverse transformer (235). The residual processor (230) may further include a subtractor (231). The addition unit (250) may be referred to as a reconstructor or a reconstructed block generator. The above-described image segmentation unit (210), prediction unit (220), residual processing unit (230), entropy encoding unit (240), addition unit (250), and filtering unit (260) may be configured by one or more hardware components (e.g., an encoding device chipset or processor) according to the embodiment. Additionally, the memory (270) may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The hardware component may further include the memory (270) as an internal / external component.
[0060] The image segmentation unit (210) can divide an input image (or picture, frame) input to an encoding device (200) into one or more processing units. For example, the processing unit may be called a coding unit (CU). In this case, the coding unit may be recursively divided from a coding tree unit (CTU) or a largest coding unit (LCU) according to a QTBTTT (Quad-tree binary-tree ternary-tree) structure.
[0061] For example, a single coding unit may be divided into multiple coding units with a deeper depth based on a quad tree structure, a binary tree structure, and / or a terrestrial structure. In this case, for example, the quad tree structure may be applied first and the binary tree structure and / or terrestrial structure may be applied later. Alternatively, the binary tree structure may be applied before the quad tree structure. A coding procedure according to the present specification may be performed based on a final coding unit that is no longer divided. In this case, based on coding efficiency according to image characteristics, the maximum coding unit may be used directly as the final coding unit, or, if necessary, the coding unit may be recursively divided into coding units of a lower depth so that a coding unit of the optimal size may be used as the final coding unit. Here, the term "coding procedure" may include procedures such as prediction, transformation, and restoration described below.
[0062] As another example, the processing unit may further include a Prediction Unit (PU) or a Transform Unit (TU). In this case, the Prediction Unit and the Transform Unit may each be divided or partitioned from the aforementioned final coding unit. The Prediction Unit may be a unit for sample prediction, and the Transform Unit may be a unit for deriving transformation coefficients and / or a unit for deriving a residual signal from transformation coefficients.
[0063] The term "unit" may be used interchangeably with terms such as "block" or "area" depending on the context. In general, an MxN block may represent a set of samples or transform coefficients consisting of M columns and N rows. A sample may generally represent a pixel or a pixel value, and may represent only the pixel / pixel value of the luminance component or only the pixel / pixel value of the chroma component. A sample may be used to refer to a single picture (or image) as a term corresponding to a pixel or pel.
[0064] The encoding device (200) can generate a residual signal (residual block, residual sample array) by subtracting a prediction signal (prediction block, prediction sample array) output from an inter prediction unit (221) or an intra prediction unit (222) from an input video signal (original block, original sample array), and the generated residual signal is transmitted to a conversion unit (232). In this case, the unit that subtracts the prediction signal (prediction block, prediction sample array) from the input video signal (original block, original sample array) within the encoding device (200) may be called a subtraction unit (231).
[0065] The prediction unit (220) performs a prediction for a block to be processed (hereinafter referred to as the current block) and can generate a predicted block containing prediction samples for the current block. The prediction unit (220) can determine whether intra prediction is applied or inter prediction is applied at the current block or CU level. The prediction unit (220) can generate various information regarding the prediction, such as prediction mode information, as described below in the description of each prediction mode, and transmit it to the entropy encoding unit (240). The information regarding the prediction can be encoded by the entropy encoding unit (240) and output in the form of a bitstream.
[0066] The intra prediction unit (222) can predict the current block by referencing samples within the current picture. The referenced samples may be located near the current block or at a certain distance from the current block, depending on the prediction mode. In intra prediction, the prediction modes may include one or more non-directional modes and multiple directional modes. The non-directional mode may include at least one DC mode or a planar mode. The directional mode may include 33 directional modes or 65 directional modes depending on the degree of fineness of the prediction direction. However, this is merely an example, and depending on the settings, more or fewer directional modes may be used. The intra prediction unit (222) may determine the prediction mode applied to the current block by using the prediction mode applied to the template area.
[0067] The inter prediction unit (221) can derive a prediction block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. At this time, to reduce the amount of motion information transmitted in the inter prediction mode, motion information can be predicted in blocks, sub-blocks, or samples based on the correlation of motion information between the template area and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, the template area may include a spatial template area (spatial neighboring block) existing within the current picture and a temporal template area (temporal neighboring block) existing in the reference picture. The reference picture containing the reference block and the reference picture containing the temporal template area may be the same or different. The above temporal template area may be referred to by names such as collocated reference block, collocated CU (colCU), etc., and the reference picture containing the above temporal template area may be referred to as a collocated picture (colPic). For example, the inter prediction unit (221) may construct a list of motion information candidates based on the template areas and generate information indicating which candidate is used to derive the motion vector and / or reference picture index of the current block. Inter prediction may be performed based on various prediction modes, for example, in the case of skip mode and merge mode, the inter prediction unit (221) may use the motion information of the template area as the motion information of the current block. In the case of skip mode, unlike merge mode, a residual signal may not be transmitted.In the case of motion vector prediction (MVP) mode, the motion vector of the template area is used as a motion vector predictor, and the motion vector of the current block can be indicated by signaling the motion vector difference.
[0068] The prediction unit (220) can generate a prediction signal based on various prediction methods described below. For example, the prediction unit may apply intra prediction or inter prediction for prediction of a single block, and may also apply intra prediction and inter prediction simultaneously. This may be called a combined inter and intra prediction (CIIP) mode. Additionally, the prediction unit may be based on an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode may be used for content video / video coding, such as in games, such as screen content coding (SCC). IBC basically performs prediction within the current picture, but it may be performed similarly to inter prediction in that it derives a reference block within the current picture. That is, IBC may utilize at least one of the inter prediction techniques described in this specification. The palette mode can be viewed as an example of intra coding or intra prediction. When the palette mode is applied, sample values within the picture can be signaled based on information regarding the palette table and palette index. The prediction signal generated through the prediction unit (220) can be used to generate a restoration signal or to generate a residual signal.
[0069] The transformation unit (232) can generate transform coefficients by applying a transformation technique to a residual signal. For example, the transformation technique may include at least one of a Discrete Cosine Transform (DCT), a Discrete Sine Transform (DST), a Karhunen-Loeve Transform (KLT), a Graph-Based Transform (GBT), or a Conditionally Non-linear Transform (CNT). Here, GBT refers to a transformation obtained from a graph when the relationship information between pixels is represented as a graph. CNT refers to a transformation obtained based on a prediction signal generated using all previously restored pixels. Additionally, the transformation process may be applied to a pixel block of the same size in a square, or to a block of variable size that is not square.
[0070] The quantization unit (233) quantizes the transformation coefficients and transmits them to the entropy encoding unit (240), and the entropy encoding unit (240) can encode the quantized signal (information regarding the quantized transformation coefficients) and output it as a bitstream. The information regarding the quantized transformation coefficients may be called residual information. The quantization unit (233) can rearrange the block-shaped quantized transformation coefficients into a one-dimensional vector form based on the coefficient scan order, and can also generate information regarding the quantized transformation coefficients based on the one-dimensional vector-shaped quantized transformation coefficients.
[0071] The entropy encoding unit (240) can perform various encoding methods such as exponential Golomb, CAVLC (context-adaptive variable length coding), CABAC (context-adaptive binary arithmetic coding), etc. The entropy encoding unit (240) may encode information required for video / image restoration (e.g., values of syntax elements, etc.) together or separately, in addition to the quantized transform coefficients.
[0072] Encoded information (e.g., encoded video / image information) may be transmitted or stored in the form of a bitstream at the level of a Network Abstraction Layer (NAL) unit. The video / image information may further include information regarding various parameter sets, such as an Adaptation Parameter Set (APS), a Picture Parameter Set (PPS), a Sequence Parameter Set (SPS), or a Video Parameter Set (VPS). Additionally, the video / image information may further include general constraint information. In this specification, information and / or syntax elements transmitted / signaled from an encoding device to a decoding device may be included in the video / image information. The video / image information may be encoded through the encoding procedure described above and included in the bitstream. The bitstream may be transmitted over a network or stored on a digital storage medium. Here, the network may include a broadcasting network and / or a communication network, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmission unit (not shown) that transmits the signal output from the entropy encoding unit (240) and / or a storage unit (not shown) that stores it may be configured as internal / external elements of the encoding device (200), or the transmission unit may be included in the entropy encoding unit (240).
[0073] Quantized transformation coefficients output from the quantization unit (233) can be used to generate a prediction signal. For example, a residual signal (residual block or residual samples) can be restored by applying inverse quantization and inverse transformation to the quantized transformation coefficients through the inverse quantization unit (234) and the inverse transformation unit (235). An adder (250) can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the restored residual signal to the prediction signal output from the inter-prediction unit (221) or the intra-prediction unit (222). In cases where there is no residual for the block to be processed, such as when a skip mode is applied, the predicted block can be used as the reconstructed block. The adder (250) may be called a reconstruction unit or a reconstruction block generation unit. The generated restoration signal can be used for intra prediction of the next block to be processed within the current picture, and can also be used for inter prediction of the next picture after filtering as described below. Meanwhile, LMCS (luma mapping with chroma scaling) may be applied during the picture encoding and / or restoration process.
[0074] The filtering unit (260) can improve subjective / objective image quality by applying filtering to the restored signal. For example, the filtering unit (260) can generate a modified restored picture by applying various filtering methods to the restored picture, and can store the modified restored picture in memory (270), specifically in the DPB of memory (270). The various filtering methods may include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc. The filtering unit (260) can generate various information regarding filtering and transmit it to the entropy encoding unit (240). The information regarding filtering can be encoded in the entropy encoding unit (240) and output in the form of a bitstream.
[0075] The modified restored picture transmitted to the memory (270) can be used as a reference picture in the inter-prediction unit (221). Through this, when inter-prediction is applied, the encoding device can avoid prediction mismatches between the encoding device (200) and the decoding device, and can also improve encoding efficiency.
[0076] The DPB of the memory (270) can store the modified restored picture to be used as a reference picture in the inter-prediction unit (221). The memory (270) can store motion information of blocks from which motion information is derived (or encoded) within the current picture and / or motion information of blocks within the picture that have already been restored. The stored motion information can be transmitted to the inter-prediction unit (221) to be used as motion information in a spatial template area or motion information in a temporal template area. The memory (270) can store restoration samples of blocks restored within the current picture and transmit them to the intra-prediction unit (222).
[0077] FIG. 3 shows a schematic block diagram of a decoding device to which an embodiment of the present disclosure can be applied and to which decoding of a video / image signal is performed.
[0078] Referring to FIG. 3, the decoding device (300) may be configured to include an entropy decoder (310), a residual processor (320), a predictor (330), an adder (340), a filter (350), and a memory (360). The predictor (330) may include an inter-predictor (332) and an intra-predictor (331). The residual processor (320) may include a dequantizer (321) and an inverse transformer (321).
[0079] The aforementioned entropy decoding unit (310), residual processing unit (320), prediction unit (330), addition unit (340), and filtering unit (350) may be configured by a single hardware component (e.g., a decoding device chipset or processor) according to an embodiment. Additionally, the memory (360) may include a DPB (decoded picture buffer) and may be configured by a digital storage medium. The hardware component may further include the memory (360) as an internal / external component.
[0080] When a bitstream containing video / image information is input, the decoding device (300) can restore the image in correspondence with the process in which the video / image information is processed by the encoding device of FIG. 2. For example, the decoding device (300) can derive units / blocks based on block division information obtained from the bitstream. The decoding device (300) can perform decoding using a processing unit applied by the encoding device. Accordingly, the processing unit for decoding may be a coding unit, and the coding unit may be divided from a coding tree unit or a maximum coding unit according to a quad tree structure, a binary tree structure, and / or a binary tree structure. One or more conversion units may be derived from the coding unit. And, the restored image signal decoded and output through the decoding device (300) can be played back through a playback device.
[0081] The decoding device (300) can receive a signal output from the encoding device of FIG. 2 in the form of a bitstream, and the received signal can be decoded through an entropy decoding unit (310). For example, the entropy decoding unit (310) can parse the bitstream to derive information (e.g., video / image information) necessary for image restoration (or picture restoration). The video / image information may further include information regarding various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). Additionally, the video / image information may further include general constraint information. The decoding device can decode the picture based on information regarding the parameter sets and / or the general constraint information. The signaling / receiving information and / or syntax elements described below in this specification may be decoded through the decoding procedure and obtained from the bitstream. For example, the entropy decoding unit (310) can decode information within the bitstream based on coding methods such as exponential chord coding, CAVLC, or CABAC, and output the values of syntax elements required for image restoration and the quantized values of transformation coefficients regarding residuals. More specifically, the CABAC entropy decoding method can receive a bin corresponding to each syntax element in the bitstream, determine a context model using information on the syntax element to be decoded and decoding information of surrounding and decoding target blocks or information on symbols / bins decoded in the previous step, predict the probability of occurrence of the bin according to the determined context model, and perform arithmetic decoding of the bin to generate a symbol corresponding to the value of each syntax element.At this time, the CABAC entropy decoding method can update the context model using the decoded symbol / bin information for the context model of the next symbol / bin after determining the context model. Among the information decoded in the entropy decoding unit (310), information regarding prediction is provided to the prediction unit (inter prediction unit (332) and intra prediction unit (331)), and the residual value for which entropy decoding was performed in the entropy decoding unit (310), i.e., quantized transformation coefficients and related parameter information, can be input to the residual processing unit (320). The residual processing unit (320) can derive residual signals (residual blocks, residual samples, residual sample array). Additionally, among the information decoded in the entropy decoding unit (310), information regarding filtering can be provided to the filtering unit (350). Meanwhile, a receiving unit (not shown) that receives a signal output from an encoding device may be further configured as an internal / external element of the decoding device (300), or the receiving unit may be a component of the entropy decoding unit (310).
[0082] Meanwhile, the decoding device according to the present specification may be called a video / image / picture decoding device, and the decoding device may be divided into an information decoding device (video / image / picture information decoding device) and a sample decoding device (video / image / picture sample decoding device). The information decoding device may include the entropy decoding unit (310), and the sample decoding device may include at least one of the inverse quantization unit (321), inverse transform unit (322), adder (340), filtering unit (350), memory (360), inter prediction unit (332), and intra prediction unit (331).
[0083] In the inverse quantization unit (321), the quantized transformation coefficients can be inversely quantized to output transformation coefficients. The inverse quantization unit (321) can rearrange the quantized transformation coefficients into a two-dimensional block form. In this case, the rearrangement can be performed based on the coefficient scan order performed by the encoding device. The inverse quantization unit (321) can perform inverse quantization on the quantized transformation coefficients using quantization parameters (e.g., quantization step size information) and obtain transformation coefficients.
[0084] In the inverse conversion unit (322), the conversion coefficients are inversely converted to obtain a residual signal (residual block, residual sample array).
[0085] The prediction unit (320) can perform a prediction for the current block and generate a predicted block containing prediction samples for the current block. The prediction unit (320) can determine whether an intra prediction or an inter prediction is applied to the current block based on information regarding the prediction output from the entropy decoding unit (310), and can determine a specific intra / inter prediction mode.
[0086] The prediction unit (320) can generate a prediction signal based on various prediction methods described below. For example, the prediction unit (320) may apply intra prediction or inter prediction for prediction of a single block, and may also apply intra prediction and inter prediction simultaneously. This may be called a combined inter and intra prediction (CIIP) mode. Additionally, the prediction unit may be based on an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode may be used for content video / video coding, such as in games, such as SCC (screen content coding). IBC basically performs prediction within the current picture, but it may be performed similarly to inter prediction in that it derives a reference block within the current picture. That is, IBC may utilize at least one of the inter prediction techniques described in this specification. The palette mode can be viewed as an example of intra coding or intra prediction. When palette mode is applied, information regarding the palette table and palette index can be included in the above video / image information and signaled.
[0087] The intra prediction unit (331) can predict the current block by referring to samples within the current picture. The referenced samples may be located near the current block or at a certain distance from the current block depending on the prediction mode. In intra prediction, the prediction modes may include one or more non-directional modes and a plurality of directional modes. The intra prediction unit (331) may determine the prediction mode applied to the current block by using the prediction mode applied to the template area.
[0088] The inter prediction unit (332) can derive a prediction block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. At this time, to reduce the amount of motion information transmitted in the inter prediction mode, motion information can be predicted in blocks, sub-blocks, or samples based on the correlation of motion information between a template area and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, the template area may include a spatial template area (spatial neighboring block) existing within the current picture and a temporal template area (temporal neighboring block) existing in the reference picture. For example, the inter prediction unit (332) may construct a motion information candidate list based on the template areas and derive the motion vector and / or reference picture index of the current block based on the received candidate selection information. Inter-prediction can be performed based on various prediction modes, and information regarding the prediction may include information indicating the inter-prediction mode for the current block.
[0089] The adder (340) can generate a restoration signal (restoration picture, restoration block, restoration sample array) by adding the acquired residual signal to the prediction signal (prediction block, prediction sample array) output from the prediction unit (including the inter prediction unit (332) and / or the intra prediction unit (331)). In cases where there is no residual for the block to be processed, such as when a skip mode is applied, the prediction block can be used as the restoration block.
[0090] The addition unit (340) may be called a restoration unit or a restoration block generation unit. The generated restoration signal may be used for intra-predicting the next block to be processed within the current picture, may be output after filtering as described below, or may be used for inter-predicting the next picture. Meanwhile, LMCS (luma mapping with chroma scaling) may be applied during the picture decoding process.
[0091] The filtering unit (350) can improve subjective / objective image quality by applying filtering to the restored signal. For example, the filtering unit (350) can generate a modified restored picture by applying various filtering methods to the restored picture, and can transmit the modified restored picture to memory (360), specifically to the DPB of memory (360). The various filtering methods may include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.
[0092] The (modified) restored picture stored in the DPB of the memory (360) can be used as a reference picture in the inter prediction unit (332). The memory (360) can store motion information of blocks from which motion information within the current picture has been derived (or decoded) and / or motion information of blocks within the picture that have already been restored. The stored motion information can be transmitted to the inter prediction unit (332) to be used as motion information in a spatial template area or motion information in a temporal template area. The memory (360) can store restoration samples of blocks restored within the current picture and transmit them to the intra prediction unit (331).
[0093] In this specification, the embodiments described in the filtering unit (260), inter prediction unit (221), and intra prediction unit (222) of the encoding device (200) may be applied to the filtering unit (350), inter prediction unit (332), and intra prediction unit (331) of the decoding device (300) in the same or corresponding manner.
[0094] FIG. 4 illustrates an image decoding method performed by a decoding device (300) as an embodiment according to the present disclosure.
[0095] Referring to FIG. 4, one or more DIPMs (derived intra prediction modes) can be derived for the current block based on a predetermined reference region (S400).
[0096] A reference region according to the present disclosure may be a region referenced to derive DIPM. The reference region may be a previously restored surrounding region of the current block. Alternatively, the reference region may be a previously predicted region within the current block. The reference region may include one or more sample lines. A histogram of gradient (HoG) may be derived by applying a predetermined filter to samples belonging to the reference region.
[0097] Specifically, a predetermined filter can be applied to a sample belonging to a reference region to derive a horizontal gradient and a vertical gradient in that sample. A gradient (or angle) can be derived based on the horizontal and vertical gradients, and an intra-prediction mode mapped to the derived gradient can be determined. The intra-prediction mode mapped to the gradient may be an intra-prediction mode having the most similar directionality to the gradient. A predetermined amplitude value may be assigned / accumulated to the mapped intra-prediction mode. Here, the amplitude value may be derived based on at least one of the magnitude of the horizontal gradient or the magnitude of the vertical gradient. For example, the amplitude value may be defined as the sum of the magnitude of the horizontal gradient and the magnitude of the vertical gradient.
[0098] The aforementioned process can be repeatedly performed while moving horizontally and / or vertically with respect to samples within a reference region, thereby inducing one or more intra-prediction modes with accumulated amplitude values. Accordingly, the HoG according to the present disclosure may be defined as a group of one or more intra-prediction modes having accumulated amplitude values.
[0099] The DIPM(s) of the current block can be derived based on the top N intra prediction mode(s) in descending order of amplitude values in the derived HoG. Here, N can be an integer greater than or equal to 1.
[0100] The samples to which the filter within the reference region is applied may be all samples belonging to the reference region, or they may be some samples within the reference region. Below, we will examine a method to induce HoG by selecting some samples within the reference region.
[0101] Example 1
[0102] HoG can be induced by selecting some samples belonging to the pre-restored surrounding region of the current block. The following concerns the method for selecting samples for HoG induction within the surrounding region.
[0103] (Method 1) A maximum number of samples (worst case) for HoG induction may be set. Here, the maximum number of samples may refer to the maximum number of samples to which a filter can be applied within a surrounding area. In this case, the number of samples to which a filter is applied within a surrounding area may be limited so as not to exceed the maximum number of samples.
[0104] Specifically, assume that the width and height of the surrounding area are A and B, respectively, and that the maximum number of samples in a single horizontal sample line and the maximum number of samples in a single vertical sample line are X and Y, respectively. If A is greater than or equal to X, a filter can be applied by selecting up to X samples from a single horizontal sample line. Additionally, if B is greater than or equal to Y, a filter can be applied by selecting up to Y samples from a single vertical sample line. In this case, the maximum number of samples for the horizontal sample line may be set differently from the maximum number of samples for the vertical sample line. Alternatively, a pre-set maximum number of samples may be applied equally to both the horizontal and vertical sample lines. Conversely, if A is less than X, a filter can be applied to A samples belonging to a single horizontal sample line. If B is less than Y, a filter can be applied to B samples belonging to a single vertical sample line. Here, A, B, X, and Y can each be integers greater than or equal to 1.
[0105] As an example according to Method 1, if the size (AxB) of the upper periphery area of the current block is 20x2 (i.e., the width of the upper periphery area for HoG derivation is 20, and the upper periphery area is composed of a second and a third horizontal sample line), and X and Y are 8 and 1, respectively, a filter can be applied by selecting up to 8 samples from one horizontal sample line. The second horizontal sample line may refer to a sample line located 1-sample away from the upper boundary of the current block, and the third horizontal sample line may refer to a sample line located 2-sample away from the upper boundary of the current block. In this case, the existing 40 filter operations can be reduced to 8 filter operations.
[0106] As an example according to Method 1, if the top-left periphery of the current block is 2x2 and X and Y are 8, a filter can be applied to 4 samples belonging to the 2x2 top-left periphery. That is, 4 filter operations can be performed in the top-left periphery as before.
[0107] (Method 2) The number of samples for HoG induction can be reduced in proportion to a specific scaling value.
[0108] Specifically, it is assumed that the width and height of the surrounding area are A and B, respectively. In this case, a filter may be applied by selecting (A / J) samples from a single horizontal sample line. This may be performed when the width (A) of the surrounding area is greater than or equal to a predetermined threshold value (X), or when the width of the current block is greater than or equal to a predetermined threshold value (X). A filter may be applied by selecting (B / K) samples from a single vertical sample line. This may be performed when the height (B) of the surrounding area is greater than or equal to a predetermined threshold value (Y), or when the height of the current block is greater than or equal to a predetermined threshold value (Y). On the other hand, if A is less than X and / or B is less than Y, a filter may be applied to all samples belonging to the surrounding area of AxB. Here, A, B, X, Y, J, and K may each be an integer greater than or equal to 1. The above scaling values (J, K) can be variably determined in proportion to the size of the surrounding area or the number of samples belonging to one or more horizontal / vertical sample lines within the surrounding area.
[0109] As an example according to Method 2, if the size of the upper periphery area (AxB) of the current block is 20x2 (i.e., the width of the upper periphery area for HoG derivation is 20, and the upper periphery area consists of the second and third horizontal sample lines), X and Y are 0, and J and K are 2, then 10 samples can be selected from one horizontal sample line and a filter can be applied.
[0110] In Method 2, samples for inducing HoG may be selected through subsampling using a predetermined sampling ratio (m:n). Here, the sampling ratio may refer to the ratio of the number of samples (n) selected from the number of samples (m) input for subsampling.
[0111] For example, when subsampling based on a sampling rate of (4:1) is applied to a horizontal sample line of length 16 within a surrounding area, 4 samples may be selected from the 16 samples. Here, the 4 samples may be the 1st, 5th, 9th, and 13th samples from left to right. Or, the 4 samples may be the 4th, 8th, 12th, and 16th samples from left to right. When subsampling based on a sampling rate of (4:1) is applied to a vertical sample line of length 16 within a surrounding area, 4 samples may be selected from the 16 samples. Here, the 4 samples may be the 1st, 5th, 9th, and 13th samples from top to bottom. Or, the 4 samples may be the 4th, 8th, 12th, and 16th samples from top to bottom.
[0112] Samples belonging to a specific area within the surrounding area may be selected preferentially. For example, samples belonging to the left area within the surrounding area may be selected preferentially. In this case, four consecutive samples (i.e., the 1st, 2nd, 3rd, and 4th samples) from the far left of the horizontal sample line may be selected. However, this is not limited thereto, samples belonging to the middle area or the right area within the surrounding area may also be selected preferentially. Alternatively, samples belonging to the top area within the surrounding area may be selected preferentially. In this case, four consecutive samples (i.e., the 1st, 2nd, 3rd, and 4th samples) from the top of the vertical sample line may be selected. However, this is not limited thereto, samples belonging to the middle area or the bottom area within the surrounding area may also be selected preferentially.
[0113] Samples from predefined locations within the surrounding area may also be selected. Here, the predefined locations may be identically predefined in both the encoding device and the decoding device.
[0114] As described below, the surrounding area of a specific location may be restricted so that it is not referenced during HoG induction.
[0115] (Method 3) Filters may not be applied to samples belonging to the upper-left area of the current block.
[0116] (Method 4) Filters may not be applied to samples belonging to the upper-right surrounding area of the current block.
[0117] (Method 5) Filters may not be applied to samples belonging to the lower-left surrounding area of the current block.
[0118] (Method 6) A filter may not be applied to samples belonging to at least one of the top surrounding area, top-left surrounding area, or top-right surrounding area of the current block.
[0119] (Method 7) A filter may not be applied to samples belonging to at least one of the left surrounding area, the top-left surrounding area, or the bottom-left surrounding area of the current block.
[0120] For example, if the current block is an 8x8 block, in methods 3 through 7, the top periphery area can be defined as an 8x3 area, the left periphery area as a 3x8 area, the top-left periphery area as a 3x3 area, the top-right periphery area as a 4x3 area, and the bottom-left periphery area as a 3x4 area, respectively.
[0121] The surrounding area of a specific location according to at least one of the methods 3 to 7 described above may be excluded from the surrounding area in this embodiment.
[0122] At least one of methods 3 to 7 (hereinafter referred to as method T1) may be adaptively applied based on the size of the current block. Here, the size may be defined as at least one of the number of samples (i.e., the product of width and height), width, height, the ratio of width to height, or the maximum / minimum value of width and height.
[0123] For example, if the number of samples in the current block is greater than or equal to X, method T1 may be applied, and if not, method T1 may not be applied. Or, if the number of samples in the current block is less than or equal to X, method T1 may be applied, and if not, method T1 may not be applied. Here, X may be an integer of 16, 32, 64, 128, 256, or greater.
[0124] For example, if the current block width is greater than or equal to Y, method T1 may be applied, and if not, method T1 may not be applied. Or, if the current block width is less than or equal to Y, method T1 may be applied, and if not, method T1 may not be applied. Here, Y can be an integer of 4, 8, 16, 32, 64, or greater.
[0125] For example, if the height of the current block is greater than or equal to Z, method T1 may be applied, and if not, method T1 may not be applied. Or, if the width of the current block is less than or equal to Z, method T1 may be applied, and if not, method T1 may not be applied. Here, Z can be an integer of 4, 8, 16, 32, 64, or greater.
[0126] At least one of methods 3 to 7 may be applied in combination with the aforementioned method 1 or 2.
[0127] The present embodiment is not limited to being applied to induce DIPM and / or HoG, and may also be applied to other processes for obtaining characteristics or information of surrounding areas to predict the characteristics of the current block.
[0128] For example, the method of selecting a specific sample according to the present embodiment can be applied in the same or similarly to a process for identifying the characteristics of the surrounding area of a luminance and / or chrominance block, such as TIMD (template-based intra mode derivation), IntraTMP (intra template matching prediction), and inter-component prediction modes (e.g., CCCM (convolutional cross-component model), GLM (gradient linear model)).
[0129] For example, when predicting a template within a surrounding region for TIMD (or intraTMP), the amount of computation for TIMD (or intraTMP) can be reduced by predicting only samples at specific locations within the template through the method according to the present embodiment.
[0130] For example, CCCM may be a mode that predicts a chrominance block from a pre-restored luminance block based on predetermined parameters. The parameters for the CCCM may be derived based on samples belonging to the surrounding area of the luminance and / or chrominance block. In this case, the parameters may be derived by selecting specific samples within the surrounding area through the method according to the present embodiment.
[0131] For example, the GLM can predict color difference samples based on at least one of the gradient for luminance samples or the sample values of (downsampled) luminance samples. In this case, a specific parameter may be applied to the gradient for the luminance sample and / or the sample value of the luminance sample, and said parameter may be derived based on samples belonging to the surrounding area of the luminance and / or color difference block. In this case, the parameter may be derived by selecting specific samples within the surrounding area through the method according to the present embodiment.
[0132] Example 2
[0133] HoG can be induced by selecting some samples from the previously predicted regions within the current block (i.e., the predicted samples of the current block). The following describes a method for selecting predicted samples within the current block to induce HoG.
[0134] (Method 1) A maximum number of samples (worst case) for HoG derivation may be set. Here, the maximum number of samples may refer to the maximum number of predicted samples to which a filter can be applied within the current block. In this case, the number of predicted samples to which a filter is applied within the current block may be limited so as not to exceed the maximum number of samples.
[0135] Specifically, it is assumed that the width and height of the area for inducing HoG within the current block (hereinafter referred to as the reference area) are A and B, respectively, and that the maximum number of samples in a single horizontal sample line and the maximum number of samples in a single vertical sample line are X and Y, respectively. If A is greater than or equal to X, a filter can be applied by selecting a maximum of X samples from a single horizontal sample line. Additionally, if B is greater than or equal to Y, a filter can be applied by selecting a maximum of Y samples from a single vertical sample line. In this case, the maximum number of samples for a horizontal sample line may be set differently from the maximum number of samples for a vertical sample line. Alternatively, a pre-set maximum number of samples may be applied equally to both the horizontal and vertical sample lines. On the other hand, if A is less than X, a filter can be applied to A samples belonging to a single horizontal sample line. If B is less than Y, a filter can be applied to B samples belonging to a single vertical sample line. Here, A, B, X, and Y may each be integers greater than or equal to 1.
[0136] As an example according to Method 1, assume that the size of the current block is 16x16. If the size of the reference region (AxB) within the current block is 14x14 and X and Y are 8, then 8x8 prediction samples (i.e., 64 prediction samples) within the reference region can be selected. In this case, the existing 196 filter operations can be reduced to 64 filter operations.
[0137] (Method 2) The number of samples for HoG induction can be reduced in proportion to a specific scaling value.
[0138] Specifically, it is assumed that the width and height of the region for inducing HoG within the current block (hereinafter referred to as the reference region) are A and B, respectively. In this case, a filter may be applied by selecting (A / J) samples from a single horizontal sample line. This may be performed when the width (A) of the reference region is greater than or equal to a predetermined threshold value (X), or when the width of the current block is greater than or equal to a predetermined threshold value (X). A filter may be applied by selecting (B / K) samples from a single vertical sample line. This may be performed when the height (B) of the reference region is greater than or equal to a predetermined threshold value (Y), or when the height of the current block is greater than or equal to a predetermined threshold value (Y). On the other hand, if A is less than X and / or B is less than Y, a filter may be applied to all samples belonging to the reference region of AxB. Here, A, B, X, Y, J, and K may each be integers greater than or equal to 1. The above scaling values (J, K) can be variably determined in proportion to the size of the reference area or the number of samples belonging to one or more horizontal / vertical sample lines within the reference area.
[0139] As an example according to Method 2, assume that the current block size is 32x32. If the size of the reference area (AxB) within the current block is 30x30, X and Y are 0, and J and K are 2, then 15x15 prediction samples (i.e., 225 prediction samples) can be selected and a filter applied.
[0140] In Method 2, samples for inducing HoG may be selected through subsampling using a predetermined sampling ratio (m:n). Here, the sampling ratio may refer to the ratio of the number of samples (n) selected from the number of samples (m) input for subsampling.
[0141] For example, when subsampling based on a sampling rate of (4:1) is applied to a horizontal sample line of length 16 within a reference area, 4 samples may be selected from the 16 samples. Here, the 4 samples may be the 1st, 5th, 9th, and 13th samples from left to right. Or, the 4 samples may be the 4th, 8th, 12th, and 16th samples from left to right. When subsampling based on a sampling rate of (4:1) is applied to a vertical sample line of length 16 within a reference area, 4 samples may be selected from the 16 samples. Here, the 4 samples may be the 1st, 5th, 9th, and 13th samples from top to bottom. Or, the 4 samples may be the 4th, 8th, 12th, and 16th samples from top to bottom.
[0142] Samples belonging to a specific area within the reference area may be selected preferentially. For example, samples belonging to the left area within the reference area may be selected preferentially. In this case, four consecutive samples (i.e., the 1st, 2nd, 3rd, and 4th samples) from the far left of the horizontal sample line may be selected. However, this is not limited thereto, samples belonging to the middle area or the right area within the reference area may also be selected preferentially. Alternatively, samples belonging to the top area within the reference area may be selected preferentially. In this case, four consecutive samples (i.e., the 1st, 2nd, 3rd, and 4th samples) from the top of the vertical sample line may be selected. However, this is not limited thereto, samples belonging to the middle area or the bottom area within the reference area may also be selected preferentially.
[0143] Samples from predefined locations within the reference area may also be selected. Here, the predefined locations may be identically predefined in the encoding device and the decoding device.
[0144] As described below, prediction samples at specific locations within the current block may be restricted from being referenced during HoG induction.
[0145] (Method 3) A filter may not be applied to prediction samples that do not belong to the top or bottom M horizontal sample lines within the current block.
[0146] (Method 4) A filter may not be applied to prediction samples that do not belong to the left or right N vertical sample lines within the current block.
[0147] (Method 5) A filter may be applied to prediction samples belonging to at least one of the top M horizontal sample lines or the left N vertical sample lines within the current block, and the remaining prediction samples may not be applied. Alternatively, a filter may be applied to prediction samples belonging to at least one of the bottom M horizontal sample lines or the right N vertical sample lines within the current block, and the remaining prediction samples may not be applied.
[0148] (Method 6) A filter may be applied to prediction samples that belong to the top M horizontal sample lines within the current block and to the left N vertical sample lines, and the remaining prediction samples may not be filtered. Alternatively, a filter may be applied to prediction samples that belong to the bottom M horizontal sample lines within the current block and to the right N vertical sample lines, and the remaining prediction samples may not be filtered.
[0149] (Method 7) A filter may be applied to prediction samples belonging to odd-numbered sample lines (e.g., 1st, 3rd, and 5th sample lines) within the current block, and a filter may not be applied to prediction samples belonging to even-numbered sample lines (e.g., 2nd, 4th, and 6th sample lines) within the current block. Alternatively, a filter may be applied to prediction samples belonging to even-numbered sample lines within the current block, and a filter may not be applied to prediction samples belonging to odd-numbered sample lines within the current block. Here, the odd-numbered sample lines may refer to all or some odd-numbered sample lines within the current block, and the even-numbered sample lines may refer to all or some even-numbered sample lines within the current block.
[0150] M and N in methods 3 to 6 may be integers greater than or equal to 1.
[0151] At least one of methods 3 to 7 (hereinafter referred to as method T2) may be adaptively applied based on the size of the current block. Here, the size may be defined as at least one of the number of samples (i.e., the product of width and height), width, height, the ratio of width to height, or the maximum / minimum value of width and height.
[0152] For example, if the number of samples in the current block is greater than or equal to X, method T2 may be applied, and if not, method T2 may not be applied. Or, if the number of samples in the current block is less than or equal to X, method T2 may be applied, and if not, method T2 may not be applied. Here, X may be an integer of 16, 32, 64, 128, 256, or greater.
[0153] For example, if the current block width is greater than or equal to Y, method T2 may be applied, and if not, method T2 may not be applied. Or, if the current block width is less than or equal to Y, method T2 may be applied, and if not, method T2 may not be applied. Here, Y can be an integer of 4, 8, 16, 32, 64, or greater.
[0154] For example, if the height of the current block is greater than or equal to Z, method T2 may be applied, and if not, method T2 may not be applied. Or, if the width of the current block is less than or equal to Z, method T2 may be applied, and if not, method T2 may not be applied. Here, Z can be an integer of 4, 8, 16, 32, 64, or greater.
[0155] At least one of methods 3 to 7 may be applied in combination with the aforementioned method 1 or 2.
[0156] The present embodiment is not limited to being applied to induce DIPM and / or HoG, and may also be applied to other processes for obtaining characteristics or information of surrounding areas to predict the characteristics of the current block.
[0157] Example 3
[0158] The coding block may be composed of a luminance block and a chrominance block, and the present embodiment relates to a method for inducing HoG by selecting some samples within a reference area when inducing DIPM for the chrominance block.
[0159] The DIPM of the color difference block can induce HoG by selecting some samples belonging to a predetermined reference area. Here, the reference area may include at least one of the surrounding area of the luminance block or the surrounding area of the color difference block.
[0160] The surrounding area of a luminance / chrominance block may include at least one of the top surrounding area, left surrounding area, top-left surrounding area, top-right surrounding area, or bottom-left surrounding area of the luminance / chrominance block. For example, for a 2Wx2H luminance block, the top surrounding area may be defined as a 2Wx3 area, the top-left surrounding area as a 3x3 area, and the left surrounding area as a 3x2H area. The chrominance block corresponding to the luminance block may be a WxH block. In this case, for a WxH chrominance block, the top surrounding area may be defined as a Wx3 area, the top-left surrounding area as a 3x3 area, and the left surrounding area as a 3xH area.
[0161] The following concerns how to select some samples for HoG induction within the reference region.
[0162] (Method 1) A maximum number of samples (worst case) for HoG induction may be set. Here, the maximum number of samples may refer to the maximum number of samples to which a filter can be applied within a reference region. In this case, the number of samples to which a filter is applied within a reference region may be limited so as not to exceed the maximum number of samples.
[0163] Specifically, assume that the width and height of the reference area are A and B, respectively, and that the maximum number of samples in a single horizontal sample line and the maximum number of samples in a single vertical sample line are X and Y, respectively. If A is greater than or equal to X, a filter can be applied by selecting up to X samples from a single horizontal sample line. Additionally, if B is greater than or equal to Y, a filter can be applied by selecting up to Y samples from a single vertical sample line. In this case, the maximum number of samples for the horizontal sample line may be set differently from the maximum number of samples for the vertical sample line. Alternatively, a pre-set maximum number of samples may be applied equally to both the horizontal and vertical sample lines. Conversely, if A is less than X, a filter can be applied to A samples belonging to a single horizontal sample line. If B is less than Y, a filter can be applied to B samples belonging to a single vertical sample line. Here, A, B, X, and Y can each be integers greater than or equal to 1.
[0164] As an example according to Method 1, if the size (AxB) of the upper periphery area of the current block is 20x2 (i.e., the width of the upper periphery area for HoG derivation is 20, and the upper periphery area is composed of a second and a third horizontal sample line), and X and Y are 8 and 1, respectively, a filter can be applied by selecting up to 8 samples from one horizontal sample line. The second horizontal sample line may refer to a sample line located 1-sample away from the upper boundary of the current block, and the third horizontal sample line may refer to a sample line located 2-sample away from the upper boundary of the current block. In this case, the existing 40 filter operations can be reduced to 8 filter operations.
[0165] The same maximum number of samples may be set for the luminance block and the chrominance block (Cb / Cr component block). Alternatively, the maximum number of samples for the luminance block may be set differently from that of the chrominance block. The maximum number of samples for the luminance block may be set differently from that of the chrominance block, but the same maximum number of samples may be set for the Cb component block and the Cr component block. For example, the maximum number of samples for the luminance block may be twice the maximum number of samples for the chrominance block.
[0166] (Method 2) The number of samples for HoG induction can be reduced in proportion to a specific scaling value.
[0167] Specifically, assume that the width and height of the reference area are A and B, respectively. Then, a filter may be applied by selecting (A / J) samples from a single horizontal sample line. This may be performed when the width (A) of the reference area is greater than or equal to a predetermined threshold value (X), or when the width of the current block is greater than or equal to a predetermined threshold value (X). A filter may be applied by selecting (B / K) samples from a single vertical sample line. This may be performed when the height (B) of the reference area is greater than or equal to a predetermined threshold value (Y), or when the height of the current block is greater than or equal to a predetermined threshold value (Y). On the other hand, if A is less than X and / or B is less than Y, a filter may be applied to all samples belonging to the reference area of AxB. Here, A, B, X, Y, J, and K may each be an integer greater than or equal to 1. The above scaling values (J, K) can be variably determined in proportion to the size of the reference area or the number of samples belonging to one or more horizontal / vertical sample lines within the reference area.
[0168] As an example according to Method 2, if the size of the upper periphery area (AxB) of the current block is 20x2 (i.e., the width of the upper periphery area for HoG derivation is 20, and the upper periphery area consists of the second and third horizontal sample lines), X and Y are 0, and J and K are 2, then 10 samples can be selected from one horizontal sample line and a filter can be applied.
[0169] The same scaling value may be set for the luminance block and the chrominance block (Cb / Cr component block). Alternatively, the scaling value for the luminance block may be set differently from that of the chrominance block. The scaling value for the luminance block may be set differently from that of the chrominance block, but the same scaling value may be set for the Cb component block and the Cr component block. For example, the scaling value for the luminance block may be twice the scaling value for the chrominance block.
[0170] The scaling values for the luminance block and the scaling values for the chrominance block can be adaptively set based on the color format. For example, in the case of a 4:2:0 color format, the scaling values (J, K) for the luminance block may each be twice the scaling values (J, K) for the chrominance block. In the case of a 4:2:2 color format, the scaling value (J) for the luminance block may be twice the scaling value (J) for the chrominance block, and the scaling value (K) for the luminance block may be equal to the scaling value (K) for the chrominance block. In the case of a 4:4:4 color format, the scaling values (J, K) for the luminance block may each be equal to the scaling values (J, K) for the chrominance block.
[0171] In Method 2, samples for inducing HoG may be selected through subsampling using a predetermined sampling ratio (m:n). Here, the sampling ratio may refer to the ratio of the number of samples (n) selected from the number of samples (m) input for subsampling.
[0172] For example, when subsampling based on a sampling rate of (4:1) is applied to a horizontal sample line of length 16 within a reference area, 4 samples may be selected from the 16 samples. Here, the 4 samples may be the 1st, 5th, 9th, and 13th samples from left to right. Or, the 4 samples may be the 4th, 8th, 12th, and 16th samples from left to right. When subsampling based on a sampling rate of (4:1) is applied to a vertical sample line of length 16 within a reference area, 4 samples may be selected from the 16 samples. Here, the 4 samples may be the 1st, 5th, 9th, and 13th samples from top to bottom. Or, the 4 samples may be the 4th, 8th, 12th, and 16th samples from top to bottom.
[0173] Samples belonging to a specific area within the reference area may be selected preferentially. For example, samples belonging to the left area within the reference area may be selected preferentially. In this case, four consecutive samples (i.e., the 1st, 2nd, 3rd, and 4th samples) from the far left of the horizontal sample line may be selected. However, this is not limited thereto, samples belonging to the middle area or the right area within the reference area may also be selected preferentially. Alternatively, samples belonging to the top area within the reference area may be selected preferentially. In this case, four consecutive samples (i.e., the 1st, 2nd, 3rd, and 4th samples) from the top of the vertical sample line may be selected. However, this is not limited thereto, samples belonging to the middle area or the bottom area within the reference area may also be selected preferentially.
[0174] Samples from predefined locations within the reference area may also be selected. Here, the predefined locations may be identically predefined in the encoding device and the decoding device.
[0175] As described below, the surrounding area of a specific location may be restricted so that it is not referenced during HoG induction.
[0176] (Method 3) Filters may not be applied to samples belonging to the upper-left periphery of the chrominance block and / or luminance block.
[0177] (Method 4) Filters may not be applied to samples belonging to the upper-right surrounding area of the chrominance block and / or luminance block.
[0178] (Method 5) Filters may not be applied to samples belonging to the lower-left periphery of the chrominance block and / or luminance block.
[0179] (Method 6) A filter may not be applied to samples belonging to at least one of the top peripheral area, top-left peripheral area, or top-right peripheral area of the chrominance block and / or luminance block.
[0180] (Method 7) A filter may not be applied to samples belonging to at least one of the left peripheral area, upper-left peripheral area, or lower-left peripheral area of the color difference block and / or luminance block.
[0181] For example, if the current block is an 8x8 block, in methods 3 through 7, the top periphery area can be defined as an 8x3 area, the left periphery area as a 3x8 area, the top-left periphery area as a 3x3 area, the top-right periphery area as a 4x3 area, and the bottom-left periphery area as a 3x4 area, respectively.
[0182] The surrounding area of a specific location according to at least one of the methods 3 to 7 described above may be excluded from the reference area in this embodiment.
[0183] At least one of methods 3 to 7 (hereinafter referred to as method T3) may be adaptively applied based on the size of at least one of a color difference block or a luminance block (hereinafter referred to as a component block). Here, the size may be defined as at least one of the number of samples (i.e., the product of width and height), width, height, the ratio of width to height, or the maximum / minimum value of width and height.
[0184] For example, if the number of samples in the component block is greater than or equal to X, method T3 may be applied, and if not, method T3 may not be applied. Or, if the number of samples in the component block is less than or equal to X, method T3 may be applied, and if not, method T3 may not be applied. Here, X may be 16, 32, 64, 128, 256, or greater integers.
[0185] For example, if the width of the component block is greater than or equal to Y, method T3 may be applied, and if not, method T3 may not be applied. Or, if the width of the component block is less than or equal to Y, method T3 may be applied, and if not, method T3 may not be applied. Here, Y may be 4, 8, 16, 32, 64, or greater integer.
[0186] For example, if the height of the component block is greater than or equal to Z, method T3 may be applied, and if not, method T3 may not be applied. Or, if the width of the component block is less than or equal to Z, method T3 may be applied, and if not, method T3 may not be applied. Here, Z can be an integer of 4, 8, 16, 32, 64, or greater.
[0187] At least one of methods 3 to 7 may be applied in combination with the aforementioned method 1 or 2.
[0188] At least one of the aforementioned methods 3 to 7 may be applied equally to the luminance block and the chrominance block. Alternatively, at least one of methods 3 to 7 may be applied to the luminance block, and the other may be applied to the chrominance block. For example, in the case of the chrominance block, a filter may be applied to samples in a reference area including at least one of the upper peripheral area or the left peripheral area. In the case of the chrominance block, a filter may not be applied to samples belonging to at least one of the upper-left peripheral area, the upper-right peripheral area, or the lower-left peripheral area. In the case of the luminance block, a filter may be applied to samples in a reference area including at least one of the upper peripheral area, the left peripheral area, the upper-right peripheral area, or the lower-left peripheral area. In the case of the luminance block, a filter may not be applied to samples belonging to the upper-left peripheral area.
[0189] The present embodiment is not limited to being applied to induce DIPM and / or HoG, and may also be applied to other processes for obtaining characteristics or information of surrounding areas to predict the characteristics of the current block.
[0190] For example, the method of selecting a specific sample according to the present embodiment can be applied in the same or similarly to a process for identifying the characteristics of the surrounding area of a luminance and / or chrominance block, such as TIMD (template-based intra mode derivation), IntraTMP (intra template matching prediction), and inter-component prediction modes (e.g., CCCM (convolutional cross-component model), GLM (gradient linear model)).
[0191] For example, when predicting a template within a surrounding region for TIMD (or intraTMP), the amount of computation for TIMD (or intraTMP) can be reduced by predicting only samples at specific locations within the template through the method according to the present embodiment.
[0192] For example, CCCM may be a mode that predicts a chrominance block from a pre-restored luminance block based on predetermined parameters. The parameters for the CCCM may be derived based on samples belonging to the surrounding area of the luminance and / or chrominance block. In this case, the parameters may be derived by selecting specific samples within the surrounding area through the method according to the present embodiment.
[0193] For example, the GLM can predict color difference samples based on at least one of the gradient for luminance samples or the sample values of (downsampled) luminance samples. In this case, a specific parameter may be applied to the gradient for the luminance sample and / or the sample value of the luminance sample, and said parameter may be derived based on samples belonging to the surrounding area of the luminance and / or color difference block. In this case, the parameter may be derived by selecting specific samples within the surrounding area through the method according to the present embodiment.
[0194] Hereinafter, we will examine in detail the filter applied to the reference area. In particular, the present disclosure proposes a method using a simplified edge operator in the HoG derivation process. The proposed method can be applied during HoG derivation according to the embodiments 1 to 3 described above.
[0195] For the sake of convenience of explanation, it is assumed that a 3x3 filter as shown in the following Equation 1 is used. In this case, in Equation 1, e may be a filter coefficient applied to the current sample (i.e., the reference sample to which the filter is applied). In Equation 1, a, b, and c may be filter coefficients applied to the top-left neighbor sample, the top neighbor sample, and the top-right neighbor block of the current sample, respectively. In Equation 1, d and f may be filter coefficients applied to the left neighbor sample and the right neighbor sample of the current sample, respectively. In Equation 1, g, h, and i may be filter coefficients applied to the bottom-left neighbor sample, the bottom neighbor sample, and the bottom-right neighbor sample of the current sample, respectively.
[0196]
[0197] For example, the gradient at the current sample can be calculated based on the Sobel operator as shown in the following mathematical formula 2.
[0198]
[0199] In mathematical equation 2, grad x can represent a filter for calculating the horizontal gradient, and grad y can represent a filter for calculating the vertical gradient.
[0200] Or, based on operators such as the following mathematical expressions 3 or 4, grad x and grad y It is also possible to calculate [it]. If the operator of mathematical formula 3 or 4 is used, the amount of computation required to derive HoG can be reduced compared to the existing Sobel operator.
[0201]
[0202]
[0203] Alternatively, the accuracy of HoG can be increased by utilizing more sophisticated edge operators, such as in the following mathematical formulas 5 or 6.
[0204]
[0205]
[0206] In addition to the aforementioned filters, more sophisticated filters with a larger number of taps, such as the Laplacian filter, Roberts cross filter, Laplacian of Gaussian, Prewitt, or Canny Edge filter, may also be used.
[0207] Whether the proposed method for DIPM derivation discussed above is applied can be adaptively determined based on at least one of the current block size or the number of samples for HoG derivation (or the number of samples to which a filter can be applied within the reference region).
[0208] For example, if the current block size is greater than or equal to 16x16, the proposed method may be applied, and if not, the proposed method may not be applied. Alternatively, if the current block size is greater than or equal to 32x32, the proposed method may be applied, and if not, the proposed method may not be applied.
[0209] For example, if the number of samples for inducing the HoG of the current block (or, the number of samples to which a filter can be applied within the reference region) is greater than or equal to 40, the proposed method may be applied, and if not, the proposed method may not be applied. Alternatively, if the number of samples for inducing the HoG of the current block (or, the number of samples to which a filter can be applied within the reference region) is greater than or equal to 20, the proposed method may be applied, and if not, the proposed method may not be applied.
[0210] For example, if the current block size is less than or equal to 4x4, the proposed method may be applied, and if not, the proposed method may not be applied. Alternatively, if the current block size is less than or equal to 8x8, the proposed method may be applied, and if not, the proposed method may not be applied.
[0211] For example, if the number of samples for inducing the HoG of the current block (or, the number of samples to which a filter can be applied within the reference region) is less than or equal to 10, the proposed method may be applied, and if not, the proposed method may not be applied. Alternatively, if the number of samples for inducing the HoG of the current block (or, the number of samples to which a filter can be applied within the reference region) is less than or equal to 20, the proposed method may be applied, and if not, the proposed method may not be applied.
[0212] The block size for the adaptive application of the proposed method or the number of samples for inducing HoG is not limited to the examples above. The proposed method may also be adaptively applied based on different block sizes or different number of samples.
[0213] Referring to Fig. 4, a predicted block of the current block can be generated (S410).
[0214] Predicted blocks of the current block can be generated based on intra-predicted or inter-predicted.
[0215] For example, if one DIPM is derived for the current block, an intra prediction can be performed based on the DIPM to generate a predicted block for the current block. Alternatively, if multiple DIPMs are derived for the current block, an intra prediction can be performed based on the DIPMs to generate each predicted block, and a predicted block for the current block can be generated based on the weighted sum of the generated predicted blocks.
[0216] Alternatively, the prediction block of the current block may be generated based on the intraTMP or MIP (matrix-based intra prediction) method. Alternatively, the prediction block of the current block may be generated based on motion information for inter-prediction (e.g., motion vector, reference picture index).
[0217] Referring to FIG. 4, the current block can be restored based on the predicted block of the current block (S420).
[0218] Transform coefficients of the current block can be derived based on residual information signaled through a bitstream. A residual block can be generated based on at least one of inverse quantization or inverse transformation of the transformation coefficients. The current block can be restored based on the predicted block and the residual block of the current block.
[0219] Here, the transformation kernel for the inverse transformation may be determined based on one or more DIPMs derived for the current block. Alternatively, the transformation kernel for the inverse transformation may be selected from a transformation set containing multiple transformation kernel candidates. To this end, a transformation index for any one of the multiple transformation kernel candidates belonging to the transformation set may be signaled.
[0220] Multiple transformation sets may be defined in the encoding device and the decoding device. In this case, any one of the multiple transformation sets may be selectively used for the current block. For example, any one of the multiple transformation sets may be selected based on one or more DIPMs derived for the current block.
[0221] In the proposed method according to the present disclosure, the number of samples and / or sample location for HoG derivation may be selected based on at least one of a prediction mode (e.g., intra mode, inter mode, etc.), the width of the current block, the height of the current block, the number of samples belonging to the current block, the location of a sub-block within the current block, explicitly signaled syntactic elements, statistical characteristics of the surrounding samples of the current block, or whether a second transformation is used.
[0222] Information regarding the number / position of selected samples can be binarized through a predetermined binarization method and transmitted to a decoding device. Binarization bits can also be saved through context modeling during the binarization process. The information regarding the number / position of samples can be binarized using binarization methods such as truncated binary, truncated unary, and fixed length.
[0223] The inverse transformation according to the present disclosure may be performed based on at least one of a first transformation or a second transformation. The transformation type or transformation set for the inverse transformation may be selected based on at least one of a neural network matrix mode, the width of the current block, the height of the current block, the number of samples belonging to the current block, the location of a sub-block within the current block, explicitly signaled syntactic elements, or statistical characteristics of the surrounding samples of the current block.
[0224] The applicability / availability of the proposed method according to the present disclosure may be signaled in high-level syntax (HLS). High-level syntax may include at least one of VPS, SPS, PPS, picture header, slice header, or decoding capability information (DCI). For example, the applicability / availability of the proposed method according to the present disclosure may be determined in units of PPS.
[0225] The applicability / availability of the proposed method according to the present disclosure may be adaptively determined in the encoding device and the decoding device without the aforementioned signaling.
[0226] Information regarding whether the proposed method according to the present disclosure is applied may be additionally signaled, and whether the proposed method is applied may be determined based on the signaled information. For example, a flag indicating whether the proposed method is applied may be signaled at the level of a Coding Tree Unit (CTU) or a Coding Unit (CU).
[0227] The proposed method according to the present disclosure can be applied when the decoder side intra mode derivation (DIMD) mode is defined in HLS. Additionally, whether the proposed method according to the present disclosure is applied can be determined through the signaling of additional information within the DIMD mode.
[0228] If it is determined that the proposed method according to the present disclosure is available to the current block based on the size / shape of the current block or whether specific conditions are satisfied, a flag indicating whether the proposed method is applied may be signaled. For example, if the height of the current block is four times or more the width of the current block, the proposed method according to the present disclosure may be determined not to be available to the current block, and in this case, a flag indicating whether the proposed method is applied may not be signaled.
[0229] The applicability of the proposed method according to the present disclosure may be implicitly determined depending on whether specific conditions are satisfied.
[0230] Information regarding the applicability or availability of the proposed method according to the present disclosure may be defined in the HLS. Based on said information, information regarding the applicability or availability of the proposed method may be adaptively signaled at the coding unit level. For example, if the information regarding the applicability or availability of the proposed method in the SPS is false, it may be determined at the coding unit level that the proposed method is not applied, and the signaling of information regarding the applicability or availability of the proposed method at the coding unit level may be omitted.
[0231] FIG. 5 illustrates a schematic configuration of a decoding device (300) that performs a decoding method according to the present disclosure.
[0232] Referring to FIG. 5, the decoding device (300) may include a DIPM induction unit (500), a prediction block generation unit (510), and a restoration unit (520). The DIPM induction unit (500) and the prediction block generation unit (510) may be provided in the intra prediction unit (331) of FIG. 3.
[0233] The DIPM induction unit (500) can perform the DIPM induction process according to S400. The prediction block generation unit (510) can perform the prediction block generation process according to S410. The restoration unit (520) can perform the restoration process of the current block according to S420.
[0234] FIG. 6 illustrates an encoding method performed by an encoding device (200) as an embodiment according to the present disclosure.
[0235] Referring to FIG. 6, one or more DIPMs can be derived for the current block based on a predetermined reference area (S600). The method for deriving DIPMs is as described with reference to FIG. 4.
[0236] Referring to FIG. 6, a prediction block of the current block can be generated (S610). The prediction block can be generated based on intra-prediction or inter-prediction, as seen with reference to FIG. 4.
[0237] Referring to FIG. 6, the transformation coefficients of the current block can be derived based on the residual block of the current block (S620). The residual block of the current block can be generated based on the prediction block generated in S610. The transformation coefficients can be derived based on at least one of transformation or quantization for the residual block. The transformation kernel or transformation set for the transformation can be determined based on the previously derived DIPM(s), as seen with reference to FIG. 4.
[0238] Referring to FIG. 6, a bitstream can be generated by encoding residual information regarding the conversion coefficients of the current block (S630).
[0239] FIG. 7 illustrates a schematic configuration of an encoding device (200) that performs an encoding method according to the present disclosure.
[0240] Referring to FIG. 7, the encoding device (200) may include a DIPM induction unit (700), a prediction block generation unit (710), a transformation coefficient induction unit (720), and a residual information encoding unit (730).
[0241] The DIPM induction unit (700) and the prediction block generation unit (710) may be provided in the intra prediction unit (222) of FIG. 2. The conversion coefficient induction unit (720) may be provided in the residual processing unit (230) of FIG. 2. The residual information encoding unit (730) may be provided in the entropy encoding unit (240).
[0242] The DIPM derivation unit (700) can perform the DIPM derivation process according to S600. The prediction block generation unit (710) can perform the prediction block generation process according to S610. The transformation coefficient derivation unit (720) can perform the transformation coefficient derivation process according to S620. The residual information encoding unit (730) can perform the residual information encoding process according to S630.
[0243] In the embodiments described above, methods are described based on flowcharts as a series of steps or blocks; however, the embodiments are not limited to the order of the steps, and some steps may occur in a different order or simultaneously with other steps as described above. Furthermore, those skilled in the art will understand that the steps shown in the flowcharts are not exclusive, and other steps may be included, or one or more steps of the flowcharts may be omitted without affecting the scope of the embodiments of this document.
[0244] The method according to the embodiments of the present document described above may be implemented in the form of software, and the encoding device and / or decoding device according to the present document may be included in a device that performs image processing, such as a TV, computer, smartphone, set-top box, display device, etc.
[0245] When the embodiments described in this document are implemented in software, the method described above may be implemented as a module (process, function, etc.) that performs the function described above. The module may be stored in memory and executed by a processor. The memory may be located inside or outside the processor and may be connected to the processor by various well-known means. The processor may include an application-specific integrated circuit (ASIC), other chipsets, logic circuits, and / or data processing devices. The memory may include read-only memory (ROM), random access memory (RAM), flash memory, memory cards, storage media, and / or other storage devices. That is, the embodiments described in this document may be implemented and executed on a processor, microprocessor, controller, or chip. For example, the functional units illustrated in each figure may be implemented and executed on a computer, processor, microprocessor, controller, or chip. In this case, information on instructions or algorithms for implementation may be stored on a digital storage medium.
[0246] In addition, the decoding device and encoding device to which the embodiment(s) of the present specification are applied may be included in multimedia broadcasting transmission and reception devices, mobile communication terminals, home cinema video devices, digital cinema video devices, surveillance cameras, video conversation devices, real-time communication devices such as video communication, mobile streaming devices, storage media, camcorders, Video on Demand (VoD) service providers, Over-the-top video (OTT) devices, internet streaming service providers, 3D video devices, virtual reality (VR) devices, augmented reality (AR) devices, video phone video devices, transportation terminals (e.g., vehicle terminals (including autonomous vehicles), airplane terminals, ship terminals, etc.), and medical video devices, and may be used to process video signals or data signals. For example, Over-the-top video (OTT) devices may include game consoles, Blu-ray players, internet-connected TVs, home theater systems, smartphones, tablet PCs, Digital Video Recorders (DVRs), etc.
[0247] Additionally, the processing method to which the embodiment(s) of this specification are applied may be produced in the form of a program that is executed by a computer and may be stored on a computer-readable recording medium. Multimedia data having a data structure according to the embodiment(s) of this specification may also be stored on a computer-readable recording medium. The computer-readable recording medium includes all types of storage devices and distributed storage devices in which computer-readable data is stored. The computer-readable recording medium may include, for example, a Blu-ray disc (BD), a Universal Serial Bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. Additionally, the computer-readable recording medium includes a medium implemented in the form of a carrier wave (e.g., transmission over the Internet). Furthermore, a bitstream generated by an encoding method may be stored on a computer-readable recording medium or transmitted via a wired or wireless communication network.
[0248] Additionally, the embodiments of this specification may be implemented as a computer program product by program code, and said program code may be executed on a computer by the embodiments of this specification. said program code may be stored on a carrier readable by a computer.
[0249] FIG. 8 shows an example of a content streaming system to which embodiments of the present disclosure can be applied.
[0250] Referring to FIG. 8, a content streaming system to which the embodiment(s) of the present specification are applied may largely include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.
[0251] The above encoding server compresses content input from multimedia input devices, such as smartphones, cameras, and camcorders, into digital data to generate a bitstream and transmits it to the streaming server. As another example, if multimedia input devices, such as smartphones, cameras, and camcorders, generate the bitstream directly, the encoding server may be omitted.
[0252] The bitstream above may be generated by an encoding method or a bitstream generation method to which the embodiment(s) of the present specification are applied, and the streaming server may temporarily store the bitstream during the process of transmitting or receiving the bitstream.
[0253] The streaming server transmits multimedia data to a user device based on a user request via a web server, and the web server acts as a medium to inform the user of available services. When a user requests a desired service from the web server, the web server transmits it to the streaming server, and the streaming server transmits the multimedia data to the user. At this time, the content streaming system may include a separate control server, and in this case, the control server plays the role of controlling commands and responses between each device within the content streaming system.
[0254] The streaming server may receive content from a media storage and / or an encoding server. For example, when receiving content from the encoding server, the content may be received in real time. In this case, to provide a seamless streaming service, the streaming server may store the bitstream for a certain period of time.
[0255] Examples of the above user devices may 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 (e.g., smartwatches, smart glasses, HMDs (head-mounted displays)), digital TVs, desktop computers, digital signage, etc.
[0256] Each server within the above-mentioned content streaming system can be operated as a distributed server, and in this case, data received from each server can be processed in a distributed manner.
[0257] The claims described in this specification may be combined in various ways. For example, the technical features of the method claims in this specification may be combined to be implemented as a device, and the technical features of the device claims in this specification may be combined to be implemented as a method. Furthermore, the technical features of the method claims and the technical features of the device claims in this specification may be combined to be implemented as a device, and the technical features of the method claims and the technical features of the device claims in this specification may be combined to be implemented as a method.
Claims
1. A step of deriving a histogram of gradient (HoG) by applying a predetermined filter to samples belonging to a predetermined reference region; wherein the HoG is a group of one or more intra-prediction modes having accumulated amplitude values, A step of deriving one or more DIPMs (derived intra prediction modes) for the current block based on the above HoG; The step of generating a predicted block of the current block above; and The method includes a step of restoring the current block based on the above-mentioned prediction block, but, The above reference region is a surrounding region of the current block or a previously predicted region within the current block, a method.
2. In Paragraph 1, A method in which the number of samples to which the filter is applied within the above reference area is limited so as not to exceed a preset maximum number of samples.
3. In Paragraph 1, A method in which the number of samples to which the filter is applied in the above reference area is determined based on a specific scaling value.
4. In Paragraph 1, A method in which the samples to which the filter is applied in the above reference region are samples at locations pre-defined in the decoding device.
5. In Paragraph 1, A method in which the above filter is restricted from being applied to samples belonging to a surrounding area of a specific location.
6. In Paragraph 5, A method in which the above limitation is adaptively applied based on the size of the current block.
7. In Paragraph 1, A method in which the filter is restricted so as not to be applied to a sample at a specific location within a predicted area of the current block.
8. In Paragraph 7, A method in which the above limitation is adaptively applied based on the size of the current block.
9. In Paragraph 1, The above filter has at least one filter coefficient of 1, 3, or 10, a method.
10. In Paragraph 9, The above filter is a method having a number of taps of 2, 6, or 16.
11. In Paragraph 1, The above method is, The method further includes the step of generating a residual block based on the inverse transformation of the transformation coefficients of the current block, wherein A method in which a transformation kernel or transformation set for the above inverse transformation is determined based on one or more DIPMs derived for the current block.
12. A step of deriving a histogram of gradient (HoG) by applying a predetermined filter to samples belonging to a predetermined reference region; wherein the HoG is a group of one or more intra-prediction modes having accumulated amplitude values, A step of deriving one or more DIPMs (derived intra prediction modes) for the current block based on the above HoG; A step of generating a predicted block of the current block above; A step of deriving transformation coefficients of the current block based on the residual block of the current block; and The method includes the step of encoding residual information regarding the above-mentioned transformation coefficients, The above reference region is a surrounding region of the current block or a previously predicted region within the current block, a method.
13. A computer-readable storage medium for storing a bitstream generated by the method according to paragraph 12.
14. A step of acquiring a bitstream for image information; wherein the bitstream is generated based on a step of deriving a histogram of gradient (HoG) by applying a predetermined filter to samples belonging to a predetermined reference region, wherein the HoG is a group of one or more intra prediction modes having accumulated amplitude values, a step of deriving one or more derived intra prediction modes (DIPM) for a current block based on the HoG, a step of generating a prediction block of the current block, a step of deriving transformation coefficients of the current block based on a residual block of the current block, and a step of encoding residual information regarding the transformation coefficients, and The method includes the step of transmitting data including the above bitstream, The above reference region is a surrounding region of the current block or a previously predicted region within the current block, a method.
Citation Information
Patent Citations
System and method for communicating in ship using magnetic field communication
KR1020250127868A
LED lights for underground parking lot
KR102703915B1
Silicone heating mat
KR102737964B1
KR20240107255A