Image encoding / decoding method and apparatus, and recording medium storing bitstream
Adaptive intra prediction filters, scaled to match block characteristics and processed in parallel, enhance encoding efficiency by reducing cycles and improving compression for high-resolution images.
Patent Information
- Application Number
- PCT/KR2025/099349
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-02-08
- Filing Date
- 2025-02-10
- Publication Date
- 2025-08-14
AI Technical Summary
Existing video encoding technologies face challenges in efficiently compressing high-resolution, high-quality images due to inefficiencies in intra prediction methods, particularly in adapting filters to match the characteristics of current blocks and reference samples.
Adaptive intra prediction filters are determined based on the size and shape of the current block, with reference samples being downscaled to improve matching, and applied in parallel processing to enhance encoding efficiency.
This approach reduces filtering cycles and improves compression efficiency by better matching image characteristics, eliminating unnecessary signaling, and controlling operational complexity.
Smart Images

Figure KR2025099349_14082025_PF_FP_ABST
Abstract
Description
Video encoding / decoding method and device, and recording medium storing bitstream
[0001] The present invention relates to a video encoding / decoding method and device, and a recording medium storing a bitstream.
[0002] Recently, the demand for high-resolution, high-quality images, such as HD (High Definition) images and UHD (Ultra High Definition) images, is increasing in various application fields, and accordingly, high-efficiency image compression technologies are being discussed.
[0003] There are various technologies for image compression, such as inter prediction technology that predicts pixel values included in the current picture from pictures before or after the current picture, intra prediction technology that predicts pixel values included in the current picture using pixel information within the current picture, and entropy encoding technology that assigns short codes to values with high frequency of appearance and long codes to values with low frequency of appearance, and these technologies can be used to effectively compress and transmit or store image data.
[0004] The present disclosure seeks to provide a method and device for adaptively determining an intra prediction filter.
[0005] The present disclosure seeks to provide an intra prediction method and device based on an intra prediction filter having a reduced size.
[0006] The present disclosure provides an intra prediction method and device based on an intra prediction filter for parallel processing.
[0007] The present disclosure seeks to provide a method and device for signaling / deriving information to enable an adaptive intra prediction filter technique.
[0008] The present disclosure provides a method and apparatus for downsampling a reference sample to which an intra prediction filter is applied.
[0009] A method and device according to the present disclosure may include the steps of: determining an intra prediction filter of a current block; generating a prediction sample of the current block from a reference sample based on the intra prediction filter of the current block; and reconstructing the current block based on the prediction sample of the current block. The intra prediction filter may be determined from a plurality of intra prediction filters and applied to the reference sample of the current block.
[0010] In the method and device according to the present disclosure, the reference sample can be downsampled in at least one of the vertical and horizontal directions.
[0011] In the method and device according to the present disclosure, the downsampling ratio of the reference sample can be derived based on at least one of the size of the current block or the shape of the current block.
[0012] In the method and device according to the present disclosure, the intra prediction filter is determined from the plurality of intra prediction filters based on the downsampling ratio of the reference sample, and the plurality of intra prediction filters include a first intra prediction filter or a second intra prediction filter, and the second intra prediction filter may be a reduced size of the first intra prediction filter.
[0013] In the method and device according to the present disclosure, the plurality of intra prediction filters may include a third intra prediction filter that performs prediction in units of lines of either rows or columns.
[0014] In the method and device according to the present disclosure, the plurality of intra prediction filters include a fourth intra prediction filter that performs prediction on a block-by-block basis, and the fourth intra prediction filter can be applied in parallel to samples within the block unit.
[0015] In the method and device according to the present disclosure, the plurality of intra prediction filters include a fourth intra prediction filter that performs prediction on a block-by-block basis, and the fourth intra prediction filter is applied in parallel to a first group of samples within the block unit, and the fourth intra prediction filter can be transposed and applied in parallel to a second group of samples that are diagonally symmetrical with respect to the first group of samples within the block unit.
[0016] A method and device according to the present disclosure comprises: determining an intra prediction filter of a current block; and generating a prediction sample of the current block from a reference sample based on the intra prediction filter of the current block; and generating a residual sample of the current block based on the prediction sample, wherein the intra prediction filter is determined from a plurality of intra prediction filters and can be applied to the reference sample of the current block.
[0017] A computer-readable digital storage medium storing encoded video / image information that causes a device according to the present disclosure to perform a method according to the present disclosure is provided.
[0018] A computer-readable digital storage medium storing video / image information generated by a method according to the present disclosure is provided.
[0019] A method and device for transmitting video / image information generated by a method according to the present disclosure are provided.
[0020] According to the present disclosure, the performance of intra prediction can be improved by adaptively determining an intra prediction filter to match the characteristics of a current block and / or a reference sample.
[0021] According to the present disclosure, by performing intra prediction based on a filter having a reduced size, the filtering cycle can be reduced and compression efficiency can be improved.
[0022] According to the present disclosure, by performing intra prediction based on a filter for parallel processing, the filtering cycle can be reduced and compression efficiency can be improved.
[0023] According to the present disclosure, by limiting the signaling / deriving conditions of information for enabling an adaptive intra prediction filter technique, the technique can be utilized to better match the image characteristics.
[0024] According to the present disclosure, by limiting the signaling / deriving conditions of information for enabling an adaptive intra prediction filter technique, the signaling of unnecessary flags can be eliminated and the complexity of the operation can be controlled.
[0025] According to the present disclosure, encoding efficiency of intra prediction can be improved by downsampling a reference sample to match the characteristics of the current block and / or reference sample.
[0026] According to the present disclosure, encoding efficiency of intra prediction can be improved by downsampling a reference sample to match the characteristics of the current block and / or reference sample.
[0027] FIG. 1 illustrates a video / image coding system according to the present disclosure.
[0028] FIG. 2 is a schematic block diagram of an encoding device to which an embodiment of the present disclosure can be applied and in which encoding of a video / image signal is performed.
[0029] FIG. 3 is a schematic block diagram of a decoding device to which an embodiment of the present disclosure can be applied and in which decoding of a video / image signal is performed.
[0030] FIG. 4 illustrates an intra prediction method performed by a decoding device (300) as an embodiment according to the present disclosure.
[0031] FIG. 5 illustrates a first intra prediction filter among a plurality of intra prediction filters as an embodiment according to the present disclosure.
[0032] FIG. 6 illustrates a second intra prediction filter among a plurality of intra prediction filters as an embodiment according to the present disclosure.
[0033] FIG. 7 illustrates a third intra prediction filter among a plurality of intra prediction filters as an embodiment according to the present disclosure.
[0034] FIG. 8 illustrates a fourth intra prediction filter among a plurality of intra prediction filters as an embodiment according to the present disclosure.
[0035] FIG. 9 illustrates a schematic configuration of an intra prediction unit (331) and a current block restoration unit (not shown) that perform an intra prediction method according to the present disclosure.
[0036] FIG. 10 illustrates an intra prediction method performed by an encoding device (200) as an embodiment according to the present disclosure.
[0037] FIG. 11 illustrates a schematic configuration of an intra prediction unit (222) and a residual sample generation unit (not shown) that perform an intra prediction method according to the present disclosure.
[0038] FIG. 12 illustrates an example of a content streaming system to which embodiments of the present disclosure can be applied.
[0039] A method and device according to the present disclosure may include the steps of: determining an intra prediction filter of a current block; generating a prediction sample of the current block from a reference sample based on the intra prediction filter of the current block; and reconstructing the current block based on the prediction sample of the current block. The intra prediction filter may be determined from a plurality of intra prediction filters and applied to the reference sample of the current block.
[0040] In the method and device according to the present disclosure, the reference sample can be downsampled in at least one of the vertical and horizontal directions.
[0041] In the method and device according to the present disclosure, the downsampling ratio of the reference sample can be derived based on at least one of the size of the current block or the shape of the current block.
[0042] In the method and device according to the present disclosure, the intra prediction filter is determined from the plurality of intra prediction filters based on the downsampling ratio of the reference sample, and the plurality of intra prediction filters include a first intra prediction filter or a second intra prediction filter, and the second intra prediction filter may be a reduced size of the first intra prediction filter.
[0043] In the method and device according to the present disclosure, the plurality of intra prediction filters may include a third intra prediction filter that performs prediction in units of lines of either rows or columns.
[0044] In the method and device according to the present disclosure, the plurality of intra prediction filters include a fourth intra prediction filter that performs prediction on a block-by-block basis, and the fourth intra prediction filter can be applied in parallel to samples within the block unit.
[0045] In the method and device according to the present disclosure, the plurality of intra prediction filters include a fourth intra prediction filter that performs prediction on a block-by-block basis, and the fourth intra prediction filter is applied in parallel to a first group of samples within the block unit, and the fourth intra prediction filter can be transposed and applied in parallel to a second group of samples that are diagonally symmetrical with respect to the first group of samples within the block unit.
[0046] A method and device according to the present disclosure comprises: determining an intra prediction filter of a current block; and generating a prediction sample of the current block from a reference sample based on the intra prediction filter of the current block; and generating a residual sample of the current block based on the prediction sample, wherein the intra prediction filter is determined from a plurality of intra prediction filters and can be applied to the reference sample of the current block.
[0047] A computer-readable digital storage medium storing encoded video / image information that causes a device according to the present disclosure to perform a method according to the present disclosure is provided.
[0048] A computer-readable digital storage medium storing video / image information generated by a method according to the present disclosure is provided.
[0049] A method and device for transmitting video / image information generated by a method according to the present disclosure are provided.
[0050] The present disclosure may be modified in various ways and encompasses numerous 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, but rather to encompass all modifications, equivalents, and alternatives falling within the spirit and technical scope of the present disclosure. Throughout the description of each drawing, similar reference numerals have been used to designate similar components.
[0051] While terms such as "first" and "second" may be used to describe various components, these components should not be limited by these terms. These terms are used solely to distinguish one component from another. For example, without departing from the scope of the present disclosure, a first component could be referred to as a "second component," and similarly, a second component could also be referred to as a "first component." The term "and / or" includes a combination of multiple related items described herein or any of multiple related items described herein.
[0052] When a component is referred to as being "connected" or "connected" to another component, it should be understood that it may be directly connected or connected to that other component, but that there may be other components intervening. Conversely, when a component is referred to as being "directly connected" or "connected" to another component, it should be understood that there are no other components intervening.
[0053] The terminology used in this application is only used to describe specific embodiments and is not intended to limit the present disclosure. The singular expression includes the plural expression unless the context clearly indicates otherwise. In this application, it should be understood that the terms "comprise" or "have" indicate the presence of a feature, number, step, operation, component, part, or combination thereof described in the specification, but do not preclude the possibility of the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.
[0054] The present disclosure relates to video / image coding. For example, the methods / embodiments disclosed in this specification can be applied to methods disclosed in the versatile video coding (VVC) standard. In addition, the methods / embodiments disclosed in this specification can be applied to methods disclosed in the essential video coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the second generation of audio video coding standard (AVS2), or the next generation of video / image coding standards (e.g., H.267 or H.268).
[0055] This specification presents various embodiments of video / image coding, and unless otherwise stated, the embodiments may be performed in combination with each other.
[0056] In this specification, a video may refer to a set of images over time. A picture generally refers to a unit representing one image at a specific time point, and a slice / tile is a unit that constitutes part of a picture in coding. A slice / tile may include one or more coding tree units (CTUs). A picture may be composed of one or more slices / tiles. A tile is a rectangular area consisting 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 that has 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 that has a height specified by the picture parameter set and a width equal to the width of the picture. CTUs within a tile are arranged consecutively according to the CTU raster scan, while tiles within a picture may be arranged consecutively according to the tile raster scan. A slice may contain an integer number of complete tiles or an integer number of contiguous complete CTU rows within a picture, which may be exclusively contained within a single NAL unit. Meanwhile, a picture may be divided into two or more subpictures. A subpicture may be a rectangular region of one or more slices within a picture.
[0057] A pixel, or pel, can refer to the smallest unit that constitutes a picture (or image). Additionally, the term "sample" can be used as a counterpart to a pixel. A sample can generally represent a pixel or a pixel value, and can represent only the pixel / pixel value of the luminance component, or only the pixel / pixel value of the chrominance component.
[0058] A unit may represent a basic unit of image processing. A unit may include at least one of a specific region of a picture and information related to the region. One unit may include one luma block and two chroma (e.g., cb, cr) blocks. In some cases, the term "unit" may be used interchangeably with terms such as "block" or "area." In general, an MxN block may include a set (or array) of samples (or sample array) or transform coefficients consisting of M columns and N rows.
[0059] As used herein, "A or B" can mean "only A," "only B," or "both A and B." In other words, as used herein, "A or B" can be interpreted as "A and / or B." For example, as used herein, "A, B or C" can mean "only A," "only B," "only C," or "any combination of A, B and C."
[0060] As used herein, a slash ( / ) or a comma can mean "and / or." For example, "A / B" can mean "A and / or B." Accordingly, "A / B" can mean "only A," "only B," or "both A and B." For example, "A, B, C" can mean "A, B, or C."
[0061] 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 identically to "at least one of A and B".
[0062] Additionally, in this specification, “at least one of A, B and C” can mean “only A,” “only B,” “only C,” or “any combination of A, B and C.” Additionally, “at least one of A, B or C” or “at least one of A, B and / or C” can mean “at least one of A, B and C.”
[0063] Additionally, parentheses used herein may mean "for example." Specifically, when "prediction (intra-prediction)" is indicated, "intra-prediction" may be suggested as an example of "prediction." In other words, "prediction" in this specification is not limited to "intra-prediction," and "intra-prediction" may be suggested as an example of "prediction." Furthermore, even when "prediction (i.e., intra-prediction)" is indicated, "intra-prediction" may be suggested as an example of "prediction."
[0064] Technical features individually described in a single drawing in this specification may be implemented individually or simultaneously.
[0065] FIG. 1 illustrates a video / image coding system according to the present disclosure.
[0066] Referring to FIG. 1, a video / image coding system may include a first device (source device) and a second device (receiving device).
[0067] A source device can transmit encoded video / image information or data to a receiving device via a digital storage medium or a network in the form of a file or streaming. The source device may include a video source, an encoding device, and a transmitting device. The receiving device may include a receiving device, a decoding device, and a renderer. The encoding device may be referred to as a video / image encoding device, and the decoding device may be referred to as a video / image decoding device. The transmitter may be included in the encoding device. The receiver may be included in the decoding device. The renderer may include a display unit, and the display unit may be configured as a separate device or an external component.
[0068] A video source may obtain video / images through a process of capturing, synthesizing, or generating video / images. The video source may include a video / image capture device and / or a video / image generation device. The video / image capture device may include one or more cameras, a video / image archive containing previously captured video / images, etc. The video / image generation device may include a computer, a tablet, a smartphone, etc., and may (electronically) generate video / images. 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 of generating related data.
[0069] An encoding device can encode input video / images. The encoding device can perform a series of procedures, such as prediction, transformation, and quantization, to improve compression and coding efficiency. The encoded data (encoded video / image information) can be output in the form of a bitstream.
[0070] 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 via a digital storage medium or network in the form of a file or streaming. The digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmission unit can include an element for generating a media file via a predetermined file format and an element for transmission via a broadcasting / communication network. The receiving unit can receive / extract the bitstream and transmit it to a decoding device.
[0071] The decoding device can decode the video / image by performing a series of procedures such as inverse quantization, inverse transformation, and prediction corresponding to the operation of the encoding device.
[0072] The renderer can render decoded video / images. The rendered video / images can be displayed through the display unit.
[0073] FIG. 2 is a schematic block diagram of an encoding device to which an embodiment of the present disclosure can be applied and in which encoding of a video / image signal is performed.
[0074] Referring to FIG. 2, the encoding device (200) may be configured to include an image partitioner (210), a prediction unit (predictor) 220, a residual processor (residual processor) 230, an entropy encoder (entropy encoder) 240, an adder (adder) 250, a filter (filter) 260, and a memory (memory) 270. The prediction unit (220) may include an inter prediction unit (221) and an intra prediction unit (222). The residual processor (230) may include a transformer (transformer) 232, a quantizer (quantizer) 233, a dequantizer (dequantizer) 234, and an inverse transformer (inverse transformer) 235. The residual processing unit (230) may further include a subtractor (231). The addition unit (250) may be called a reconstructor or a recontructed block generator. The image segmentation unit (210), the prediction unit (220), the residual processing unit (230), the entropy encoding unit (240), the addition unit (250), and the filtering unit (260) described above may be configured by one or more hardware components (e.g., an encoding device chipset or processor) according to an embodiment. In addition, 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.
[0075] The image segmentation unit (210) can segment an input image (or picture, frame) input to the 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 segmented from a coding tree unit (CTU) or a largest coding unit (LCU) according to a QTBTTT (Quad-tree binary-tree ternary-tree) structure.
[0076] For example, a single coding unit may be split into multiple coding units with deeper depths based on a quad-tree structure, a binary tree structure, and / or a ternary structure. In this case, for example, the quad-tree structure may be applied first, and the binary tree structure and / or the ternary structure may be applied later. Alternatively, the binary tree structure may be applied before the quad-tree structure. The coding procedure according to the present specification may be performed based on the final coding unit that is no longer split. In this case, based on coding efficiency according to image characteristics, etc., the largest coding unit may be used directly as the final coding unit, or, if necessary, the coding unit may be recursively split into coding units of lower depths, and the coding unit with the optimal size may be used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later.
[0077] 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 split or partitioned from the final coding unit described above. The prediction unit may be a unit of sample prediction, and the transform unit may be a unit for deriving a transform coefficient and / or a unit for deriving a residual signal from a transform coefficient.
[0078] The term "unit" may be used interchangeably with terms such as "block" or "area" depending on the case. In general, an MxN block can represent a set of samples or transform coefficients consisting of M columns and N rows. A sample can generally represent a pixel or a pixel value, and can represent only the pixel / pixel value of the luminance component, or only the pixel / pixel value of the chrominance component. A sample can be used as a term corresponding to a pixel or pel in a picture (or image).
[0079] 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, a unit that subtracts a prediction signal (prediction block, prediction sample array) from an input video signal (original block, original sample array) within the encoding device (200) may be called a subtraction unit (231).
[0080] The prediction unit (220) can perform a prediction on a block to be processed (hereinafter, referred to as a current block) and generate a predicted block including prediction samples for the current block. The prediction unit (220) can determine whether intra prediction or inter prediction is applied on a current block or CU basis. The prediction unit (220) can generate various information related to prediction, such as prediction mode information, as described later in the description of each prediction mode, and transmit the information to the entropy encoding unit (240). The information related to prediction can be encoded by the entropy encoding unit (240) and output in the form of a bitstream.
[0081] The intra prediction unit (222) can predict the current block by referring to samples in the current picture. The referenced samples may be located in the neighborhood of the current block, or may be located a certain distance away 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 of a DC mode or a planar mode. The directional mode may include 33 directional modes or 65 directional modes depending on the degree of detail in the prediction direction. However, this is only an example, and a greater or lesser number of directional modes may be used depending on the settings. The intra prediction unit (222) may also determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring blocks.
[0082] 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, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, subblocks, or samples based on the correlation of motion information between neighboring blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, the neighboring block can include a spatial neighboring block existing in the current picture and a temporal neighboring block existing in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different. The above temporal neighboring blocks may be called collocated reference blocks, collocated CUs (colCUs), etc., and the reference pictures including the temporal neighboring blocks may be called collocated pictures (colPic). For example, the inter prediction unit (221) may construct a motion information candidate list based on the neighboring blocks, and generate information indicating which candidate is used to derive the motion vector and / or reference picture index of the current block. Inter prediction may be performed based on various prediction modes, and for example, in the case of skip mode and merge mode, the inter prediction unit (221) may use the motion information of the neighboring blocks as the motion information of the current block. In the case of skip mode, unlike the merge mode, a residual signal may not be transmitted.In the motion vector prediction (MVP) mode, the motion vector of the surrounding blocks is used as a motion vector predictor, and the motion vector of the current block can be indicated by signaling the motion vector difference.
[0083] The prediction unit (220) can generate a prediction signal based on various prediction methods described below. For example, the prediction unit can apply intra prediction or inter prediction for prediction of a single block, and can also apply intra prediction and inter prediction simultaneously. This can be called combined inter and intra prediction (CIIP) mode. In addition, the prediction unit can 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 can be used for content image / video coding such as games, such as screen content coding (SCC). IBC basically performs prediction within the current picture, but can be performed similarly to inter prediction in that it derives a reference block within the current picture. That is, IBC can utilize at least one of the inter prediction techniques described herein. Palette mode can be viewed as an example of intra coding or intra prediction. When the palette mode is applied, sample values within a picture can be signaled based on information about the palette table and palette index. The prediction signal generated through the prediction unit (220) can be used to generate a restoration signal or a residual signal.
[0084] The transform unit (232) can apply a transform technique to the residual signal to generate transform coefficients. For example, the transform technique can include at least one of a Discrete Cosine Transform (DCT), a Discrete Sine Transform (DST), a Karhunen-Loeve Transform (KLT), a Graph-Based Transform (GBT), or a Conditionally Non-linear Transform (CNT). Here, GBT refers to a transform obtained from a graph when the relationship information between pixels is expressed as a graph. CNT refers to a transform obtained based on generating a prediction signal using all previously restored pixels. In addition, the transform process can be applied to a pixel block having a square size and the same size, or can be applied to a block of a non-square variable size.
[0085] The quantization unit (233) quantizes the transform coefficients and transmits them to the entropy encoding unit (240), and the entropy encoding unit (240) can encode the quantized signal (information about the quantized transform coefficients) and output it as a bitstream. The information about the quantized transform coefficients can be called residual information. The quantization unit (233) can rearrange the quantized transform coefficients in a block form into a one-dimensional vector form based on the coefficient scan order, and can also generate information about the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form.
[0086] The entropy encoding unit (240) can perform various encoding methods such as exponential Golomb, context-adaptive variable length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), etc. The entropy encoding unit (240) can also encode information necessary for video / image restoration (e.g., values of syntax elements, etc.) together or separately from quantized transform coefficients.
[0087] Encoded information (e.g., encoded video / image information) can be transmitted or stored in the form of a bitstream in units of NAL (network abstraction layer) units. The video / image information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may further include general constraint information. In the present 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 above-described encoding procedure and included in the bitstream. The bitstream may be transmitted via a network or stored in a digital storage medium. Here, the network may include a broadcasting network and / or a communication network, and the digital storage medium may include various storage media, such as a USB, SD, CD, DVD, Blu-ray, HDD, or SSD. The signal output from the entropy encoding unit (240) may be configured as an internal / external element of the encoding device (200) by a transmitting unit (not shown) and / or a storing unit (not shown), or the transmitting unit may be included in the entropy encoding unit (240).
[0088] The quantized transform coefficients output from the quantization unit (233) can be used to generate a prediction signal. For example, by applying inverse quantization and inverse transformation to the quantized transform coefficients through the inverse quantization unit (234) and the inverse transform unit (235), a residual signal (residual block or residual samples) can be reconstructed. The addition unit (250) can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the reconstructed residual signal to the prediction signal output from the inter prediction unit (221) or the intra prediction unit (222). When there is no residual for the block to be processed, such as when skip mode is applied, the predicted block can be used as a reconstructed block. The addition unit (250) may be called a reconstructor or a reconstructed block generation unit. The generated restoration signal can be used for intra prediction of the next processing target block 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.
[0089] The filtering unit (260) can improve subjective / objective picture quality by applying filtering to the restoration signal. For example, the filtering unit (260) can apply various filtering methods to the restoration picture to generate a modified restoration picture, and store the modified restoration picture in the memory (270), specifically, in the DPB of the memory (270). The various filtering methods can 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 by the entropy encoding unit (240) and output in the form of a bitstream.
[0090] 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 mismatch between the encoding device (200) and the decoding device, and can also improve encoding efficiency.
[0091] 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 a block from which motion information is derived (or encoded) within the current picture and / or motion information of blocks within a picture that has already been restored. The stored motion information can be transferred to the inter prediction unit (221) to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory (270) can store restored samples of restored blocks within the current picture and transfer them to the intra prediction unit (222).
[0092] FIG. 3 is a schematic block diagram of a decoding device to which an embodiment of the present disclosure can be applied and in which decoding of a video / image signal is performed.
[0093] 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-prediction unit (332) and an intra-prediction unit (331). The residual processor (320) may include a dequantizer (321) and an inverse transformer (321).
[0094] The entropy decoding unit (310), residual processing unit (320), prediction unit (330), addition unit (340), and filtering unit (350) described above may be configured by a single hardware component (e.g., a decoding device chipset or processor) depending on the embodiment. In addition, the memory (360) may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The hardware component may further include the memory (360) as an internal / external component.
[0095] When a bitstream including video / image information is input, the decoding device (300) can restore the image corresponding to the process in which the video / image information is processed in the encoding device of FIG. 2. For example, the decoding device (300) can derive units / blocks based on block division-related information obtained from the bitstream. The decoding device (300) can perform decoding using a processing unit applied in the encoding device. Accordingly, the processing unit of 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 ternary tree structure. One or more transform units may be derived from the coding unit. Then, the restored image signal decoded and output through the decoding device (300) can be reproduced through a reproduction device.
[0096] 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 the 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 on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may further include general constraint information. The decoding device can decode the picture further based on the information on the parameter set and / or the general constraint information. The signaling / received information and / or syntax elements described later in this specification can be decoded through the decoding procedure and obtained from the bitstream. For example, the entropy decoding unit (310) can decode information in a bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output the values of syntax elements required for image restoration and the quantized values of transform coefficients for residuals. More specifically, the CABAC entropy decoding method receives a bin corresponding to each syntax element in the bitstream, determines a context model using information of the syntax element to be decoded and decoding information of the surrounding and decoding target blocks or information of symbols / bins decoded in the previous step, and predicts the occurrence probability of the bin according to the determined context model to perform arithmetic decoding of the bin to generate a symbol corresponding to the value of each syntax element.At this time, the CABAC entropy decoding method can update the context model using the information of the decoded symbol / bin for the context model of the next symbol / bin after determining the context model. Information regarding prediction among the information decoded by the entropy decoding unit (310) is provided to the prediction unit (inter prediction unit (332) and intra prediction unit (331)), and residual values on which entropy decoding is performed by the entropy decoding unit (310), i.e., quantized transform coefficients and related parameter information, can be input to the residual processing unit (320). The residual processing unit (320) can derive a residual signal (residual block, residual samples, residual sample array). In addition, information regarding filtering among the information decoded by the entropy decoding unit (310) 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 a decoding device (300), or the receiving unit may be a component of an entropy decoding unit (310).
[0097] Meanwhile, a decoding device according to the present specification may be called a video / video / picture decoding device, and the decoding device may be divided into an information decoding device (video / video / picture information decoding device) and a sample decoding device (video / video / 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), the inverse transformation unit (322), the addition unit (340), the filtering unit (350), the memory (360), the inter prediction unit (332), and the intra prediction unit (331).
[0098] The inverse quantization unit (321) can inverse quantize the quantized transform coefficients and output the transform coefficients. The inverse quantization unit (321) can rearrange the quantized transform coefficients into a two-dimensional block form. In this case, the rearrangement can be performed based on the coefficient scanning order performed in the encoding device. The inverse quantization unit (321) can perform inverse quantization on the quantized transform coefficients using quantization parameters (e.g., quantization step size information) and obtain transform coefficients.
[0099] In the inverse transform unit (322), the transform coefficients are inversely transformed to obtain a residual signal (residual block, residual sample array).
[0100] The prediction unit (320) can perform a prediction on the current block and generate a predicted block including prediction samples for the current block. The prediction unit (320) can determine whether intra-prediction or inter-prediction is applied to the current block based on the information regarding the prediction output from the entropy decoding unit (310), and can determine a specific intra / inter-prediction mode.
[0101] The prediction unit (320) can generate a prediction signal based on various prediction methods described below. For example, the prediction unit (320) can apply intra prediction or inter prediction for prediction of a single block, and can also apply intra prediction and inter prediction simultaneously. This can be called combined inter and intra prediction (CIIP) mode. In addition, the prediction unit can 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 can be used for content image / video coding such as games, such as screen content coding (SCC). IBC basically performs prediction within the current picture, but can be performed similarly to inter prediction in that it derives a reference block within the current picture. That is, IBC can utilize at least one of the inter prediction techniques described herein. Palette mode can be viewed as an example of intra coding or intra prediction. When palette mode is applied, information about the palette table and palette index may be included and signaled in the video / image information.
[0102] The intra prediction unit (331) can predict the current block by referring to samples within the current picture. The referenced samples may be located in the neighborhood of the current block, or may be located a certain distance away 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 intra prediction unit (331) may also determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring blocks.
[0103] 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, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, subblocks, or samples based on the correlation of the motion information between the neighboring blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, the neighboring blocks can include spatial neighboring blocks existing in the current picture and temporal neighboring blocks existing in the reference picture. For example, the inter prediction unit (332) can construct a motion information candidate list based on the neighboring blocks, 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 about the prediction can include information indicating an inter prediction mode for the current block.
[0104] The addition unit (340) can generate a restoration signal (restored 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 intra-prediction unit (331)). When there is no residual for the block to be processed, such as when skip mode is applied, the prediction block can be used as the restoration block.
[0105] The addition unit (340) may be referred to as a restoration unit or restoration block generation unit. The generated restoration signal may be used for intra prediction of the next processing target block within the current picture, may be output after filtering as described below, or may be used for inter prediction of the next picture. Meanwhile, LMCS (luma mapping with chroma scaling) may be applied during the picture decoding process.
[0106] The filtering unit (350) can improve subjective / objective image quality by applying filtering to the restored signal. For example, the filtering unit (350) can apply various filtering methods to the restored picture to generate a modified restored picture, and transmit the modified restored picture to the memory (360), specifically, to the DPB of the memory (360). The various filtering methods can include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.
[0107] The (corrected) reconstructed 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 a block from which motion information is derived (or decoded) in the current picture and / or motion information of blocks in a picture that has already been reconstructed. The stored motion information can be transferred to the inter prediction unit (332) to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory (360) can store reconstructed samples of reconstructed blocks in the current picture and transfer them to the intra prediction unit (331).
[0108] In this specification, the embodiments described in the filtering unit (260), the inter prediction unit (221), and the intra prediction unit (222) of the encoding device (200) can be applied to the filtering unit (350), the inter prediction unit (332), and the intra prediction unit (331) of the decoding device (300) in the same or corresponding manner, respectively.
[0109] FIG. 4 illustrates an intra prediction method performed by a decoding device (300) as an embodiment according to the present disclosure.
[0110] Referring to FIG. 4, the intra prediction filter of the current block can be determined (S400).
[0111] The intra prediction filter of the current block can be derived from any one of a plurality of intra prediction filters. The intra prediction filter may include an extrapolation filter.
[0112] Specifically, the plurality of intra prediction filters may further include at least one of a first intra prediction filter, a second intra prediction filter, a third intra prediction filter, or a fourth intra prediction filter.
[0113] The intra prediction filter of the current block can be applied to the reference sample of the current block or the downsampled reference sample.
[0114] FIG. 5 illustrates a first intra prediction filter among a plurality of intra prediction filters as an embodiment according to the present disclosure.
[0115] Referring to FIG. 5, a first intra prediction filter among a plurality of intra prediction filters may include a 15-tap intra prediction filter. The 15-tap intra prediction filter may represent a filter having 15 inputs and 1 output. The 15-tap intra prediction filter may have an array of 4x4, 8x2, or 2x8.
[0116] The first intra prediction filter can be applied to non-downsampled reference samples,
[0117] Reduced size intra prediction filter
[0118] FIG. 6 illustrates a second intra prediction filter among a plurality of intra prediction filters as an embodiment according to the present disclosure.
[0119] The second intra prediction filter may be a filter having a reduced size compared to the first intra prediction filter. That is, the number of filter taps of the second intra prediction filter may be reduced compared to the number of filter taps of the first intra prediction filter.
[0120] Referring to FIG. 6, for example, a first intra prediction filter of 4x4 can be simplified to either a 3x3 8-tap intra prediction filter or a 2x2 3-tap intra prediction filter.
[0121] For example, a first intra prediction filter of 8x2 can be simplified to any of a 7x2 13-tap intra prediction filter, a 6x2 11-tap intra prediction filter, a 5x2 9-tap intra prediction filter, a 4x2 7-tap intra prediction filter, or a 3x2 5-tap intra prediction filter. Alternatively, it can be simplified to a 4x3 11-tap intra prediction filter.
[0122] For example, a 2x8 first intra prediction filter can be simplified to any of a 2x7 13-tap intra prediction filter, a 2x6 11-tap intra prediction filter, a 2x5 9-tap intra prediction filter, a 2x4 7-tap intra prediction filter, or a 2x3 5-tap intra prediction filter. Alternatively, it can be simplified to a 3x4 11-tap intra prediction filter.
[0123] A second intra prediction filter can be applied to non-downsampled reference samples.
[0124] Alternatively, it can be applied to downsampled reference samples.
[0125] When the second intra prediction filter is applied to the downsampled reference sample, the size and / or shape of the intra prediction filter may be determined based on, for example, the downsampling ratio.
[0126] For example, if the downsampling ratio is 2:1, an 11-tap intra prediction filter of 6x2 can be applied. For example, if the downsampling ratio is 3:1, a 7-tap intra prediction filter of 4x2 can be applied.
[0127] When the second intra prediction filter is applied to the downsampled reference sample, the size and / or shape of the intra prediction filter, as another example, may be determined based on the size and / or shape of the prediction sample. The prediction sample may mean a downsampled prediction block generated by performing prediction based on the downsampled reference sample.
[0128] Intra prediction filter for line-level parallel processing
[0129] FIG. 7 illustrates a third intra prediction filter among a plurality of intra prediction filters as an embodiment according to the present disclosure.
[0130] The third intra prediction filter may be a filter that performs intra prediction on a line-by-line basis, either in rows or columns. One line may consist of J samples, where J may be an integer of 1, 2, 3, 4, or more.
[0131] Referring to FIG. 7, the third intra prediction filter may be, for example, a 4x3 12-tap filter, an 8x2 16-tap filter, or a 2x8 16-tap filter.
[0132] However, the size of the filter proposed in this disclosure is only one example and is not limited thereto.
[0133] The third intra prediction filter may have a form in which the output taps belong to a different row than the input taps. Alternatively, the third intra prediction filter may have a form in which the output taps belong to a different column than the input taps.
[0134] When applying the third intra prediction filter row by row, the value of the current prediction sample can be determined based on the upper sample of the current prediction sample and the upper-left neighboring samples of the current prediction sample. Therefore, the value of the current prediction sample can be determined independently of the left sample of the current prediction sample and the right sample of the current prediction sample.
[0135] Alternatively, when applying the third intra prediction filter on a column-by-column basis, the value of the current prediction sample can be determined based on the neighboring samples to the left and lower left of the current prediction sample. Accordingly, the value of the current prediction sample can be determined independently of the samples above and below the current prediction sample.
[0136] That is, the third intra prediction filter can be applied in parallel to samples belonging to the same line.
[0137] Parallel application of the third intra prediction filter can reduce the filtering cycle. For example, when applying the first intra prediction filter to the reference sample of the current block (8x8), the filtering cycle can be 64. Conversely, when applying the third intra prediction filter to the reference sample of the current block (8x8), the filtering cycle can be reduced to 8.
[0138] Meanwhile, the third intra prediction filter may be applied to non-downsampled reference samples or to downsampled reference samples.
[0139] Intra prediction filter for block-level parallel processing
[0140] FIGS. 8(a) to 8(d) illustrate an embodiment according to the present disclosure, and illustrate a fourth intra prediction filter among a plurality of intra prediction filters.
[0141] The fourth intra prediction filter may be a filter that performs intra prediction on a block-by-block basis.
[0142] The size of the above block unit can be expressed as NxM. N can be less than or equal to the width of the current block. M can be less than or equal to the height of the current block. Here, N and M can be integers of 1, 2, 3, 4, or more, respectively. The shape of the above block unit can be square or non-square.
[0143] The fourth intra prediction filter may have an L-shape.
[0144] Referring to Fig. 8(a), for example, the fourth intra prediction filter may be a 12-tap filter having an L-shape. The 12-tap filter having an L-shape may be a filter applied in parallel to four different samples of a 2x2 block. The 12-tap filter having an L-shape may include four types of filters having different coefficients.
[0145] Alternatively, the fourth intra prediction filter may be a 14-tap filter having an L-shape. For example, as shown in FIG. 8(b), the 14-tap filter having an L-shape may have an elongated L-shape in the horizontal direction and may be a filter applied in parallel to two different samples for a 2x1 block. The 14-tap filter having an L-shape may include two types of filters having different coefficients. Alternatively, as shown in FIG. 8(c), the 14-tap filter having an L-shape may have an elongated vertical shape and may be a filter applied in parallel to two different samples for a 1x2 block. The 14-tap filter having an L-shape may include two types of filters having different coefficients.
[0146] Alternatively, the fourth intra prediction filter may be a 20-tap filter having an L-shape. For example, as shown in FIG. 8(d), the 20-tap filter having an L-shape may be a filter applied in parallel to 16 different samples of a 4x4 block. The 20-tap filter having an L-shape may include 16 types of filters with different coefficients.
[0147] However, the size and / or shape of the filter proposed in the present disclosure is only one embodiment and is not limited thereto.
[0148] The fourth intra prediction filter can be applied in parallel to samples belonging to the same block. That is, the values of prediction samples belonging to the current block can be determined in parallel.
[0149] For example, the four types of filters described above can be applied in parallel to the current block in 2x2 block units. Accordingly, the values of four different prediction samples within a 2x2 block can be determined independently.
[0150] Parallel application of the fourth intra prediction filter can reduce the filtering cycle. For example, when applying the fourth intra prediction filter to reference samples in a 2x2 block, the filtering cycle can be reduced by 1 / 4. When applying the fourth intra prediction filter to reference samples in a 2x1 or 1x2 block, the filtering cycle can be reduced by 1 / 2.
[0151] Meanwhile, the fourth intra prediction filter may be applied to non-downsampled reference samples or may be applied to downsampled reference samples.
[0152] When performing parallel processing in block units, a filter prefix method can be used to reduce the number of intra prediction filters applied to one block unit.
[0153] The intra prediction filter according to the present disclosure may be a filter that performs intra prediction by being applied in a transposed manner. Here, the intra prediction filter may correspond to at least one of the first to fourth intra prediction filters described above.
[0154] For example, when parallel processing is performed in units of 4x4 blocks, prediction can be performed on 16 samples within a 4x4 block unit based on intra prediction filters having 16 types of L-shapes. However, samples at positions that are symmetrical to each other may exist within a 4x4 block unit. In this case, prediction can be performed on one of the samples at positions that are symmetrical to each other by transposing the intra prediction filter applied to the other sample. That is, when applying the filter transposition method, a number of intra prediction filters less than 16 (e.g., half the number) may be required.
[0155] Specifically, samples within a block unit can be divided along a diagonal, and an intra-prediction filter can be applied in parallel to samples of a first group, and the intra-prediction filter can be transposed and applied in parallel to samples of a second group. The samples of the first group can be symmetrical with respect to the samples of the second group along the diagonal.
[0156] Here, the diagonal direction can be either from upper left to lower right or from upper right to lower left.
[0157] At this time, the samples of the first group may be samples belonging to the upper side of the diagonal, and the samples of the second group may be samples belonging to the lower side of the diagonal. Alternatively, the samples of the first group may be samples belonging to the lower side of the diagonal, and the samples of the second group may be samples belonging to the upper side of the diagonal.
[0158] As described above, the decoding device can determine any one of the plurality of intra prediction filters as the intra prediction filter for the current block.
[0159] Referring to FIG. 4, a prediction sample of the current block can be generated based on an intra prediction filter of the current block and a predetermined reference sample (S410).
[0160] A reference sample for applying an intra prediction filter may include one or more samples belonging to a peripheral area adjacent to the current block. Alternatively, the reference sample may include at least one of one or more samples belonging to a peripheral area adjacent to the current block or one or more pre-generated prediction samples within the current block. The peripheral area may include at least one of an upper peripheral area, a left peripheral area, an upper-left peripheral area, an upper-right peripheral area, or a lower-left peripheral area of the current block. The peripheral area may include at least one of an upper peripheral area, a left peripheral area, an upper-left peripheral area, an upper-right peripheral area, or a lower-left peripheral area of the current block. For example, the reference samples of the current block may include one of the samples adjacent to the left boundary of the current block, the sample(s) adjacent to the bottom-left boundary of the current block, the samples adjacent to the top boundary of the current block, the sample(s) adjacent to the top-right boundary of the current block, or the sample(s) adjacent to the top-left boundary of the current block.
[0161] Alternatively, the reference samples of the current block may include at least one group among a first group including upper peripheral samples, a second group including left peripheral samples, a third group including lower left peripheral samples, a fourth group including upper right peripheral samples, or a fifth group including upper left peripheral samples.
[0162] Intra prediction based on an intra prediction filter according to the present disclosure can be performed on a sample basis of a current block according to a predetermined scan order. Here, the scan order can be any one of a raster scan, a horizontal scan, a vertical scan, or a Z scan. In this case, since filtering can be performed on the next sample after filtering is completed for one sample, there is a problem that parallel processing is impossible. In particular, as the block size increases, this prediction delay inevitably increases. For example, when applying intra prediction based on an intra prediction filter to a 16x16 block, 255 filtering results may be required to predict the sample with the last scan order (e.g., the bottom right sample).
[0163] The present disclosure proposes a method for reducing the number of prediction samples generated by intra prediction based on an intra prediction filter through downsampling of the current block and / or surrounding areas.
[0164] Downsampling can be performed at a ratio of K:1 for reference samples of an NxM current block to obtain downsampled reference samples corresponding to an AxB prediction block. Here, N and M may represent the width and height of a block on which intra prediction is performed, respectively, and A and B may represent the width and height of a block output through intra prediction based on an intra prediction filter, respectively. N may be greater than or equal to A, and M may be greater than or equal to B. N, M, A, and B may be values belonging to a block size range supported by an encoding device and a decoding device. An AxB prediction block can be generated based on the downsampled reference samples and the intra prediction filter. A prediction block of an NxM current block can be generated through upsampling for the AxB prediction block. Samples within the current block that are not predicted through intra prediction based on an intra prediction filter can be predicted through interpolation of surrounding samples of the current block with predicted samples generated through intra prediction based on an intra prediction filter (i.e., samples within an AxB predicted block) or interpolation of pre-generated predicted samples within the current block.
[0165] The above K:1 downsampling may refer to a process of deriving one sample through a weighted sum of K samples. Alternatively, the K:1 downsampling may refer to a process of subsampling one sample at a specific location among the K samples. Here, the specific location may be any one of an upper left sample location, an upper right sample location, a lower left sample location, a lower right sample location, or a center sample location within an axb region composed of K samples. Alternatively, the K:1 downsampling may be performed based on at least one of x:1 downsampling in the horizontal direction or y:1 downsampling in the vertical direction. Here, K may be equal to the value of x*y, and x and y may be integers greater than or equal to 1 and less than or equal to K. In this case, the x:1 downsampling in the horizontal direction may be a process of deriving one sample through a weighted sum of x consecutive samples in the horizontal direction, and the y:1 downsampling in the vertical direction may be a process of deriving one sample through a weighted sum of y consecutive samples in the vertical direction. Alternatively, the x:1 downsampling in the horizontal direction may be a process of subsampling one sample at a specific position among x consecutive samples in the horizontal direction, and the y:1 downsampling in the vertical direction may be a process of subsampling one sample at a specific position among y consecutive samples in the vertical direction. Here, the specific position may be any one of the leftmost sample position, the rightmost sample position, the topmost sample position, the bottommost sample position, or the center sample position among the consecutive samples.
[0166] For example, assume that intra prediction based on an intra prediction filter is applied to an 8x8 current block. In this case, a downsampled reference sample corresponding to a 4x4 prediction block can be derived through horizontal and vertical downsampling of the reference sample at a ratio of 2:1. A 4x4 prediction block can be generated based on the downsampled reference sample and the intra prediction filter, and an 8x8 prediction block can be generated by upsampling this.
[0167] For convenience of explanation, the aforementioned AxB prediction block may be referred to as a downsampled prediction block. Furthermore, in the embodiments described below, the size or shape of the current block may be understood as being replaced by the size or shape of the downsampled prediction block.
[0168] Through the above-described method, the number of prediction samples (or the size of the prediction block) obtained by applying the intra prediction filter can be significantly reduced. In addition, the additional downsampling and upsampling processes can be efficient in image signal processing because they have lower computational complexity and can be processed in parallel compared to intra prediction based on the existing intra prediction filter. For example, in the case of a 32x16 block, 512 filterings are required, but when downsampling the reference sample to correspond to an 8x8 prediction block through the above-described method, only 64 filterings are required, and when downsampling the reference sample to correspond to a 4x4 prediction block, only 16 filterings are required.
[0169] Below, we will look specifically at how to perform downsampling on a reference sample.
[0170] A decoding device can determine whether to perform downsampling on reference samples of a current block. The decoding device may explicitly receive a flag indicating whether to perform downsampling through the bitstream. Alternatively, the decoding device may adaptively determine whether to perform downsampling on reference samples based on at least one of the size or shape of the current block. Alternatively, the decoding device may adaptively transmit a flag indicating whether to perform downsampling through the bitstream. For example, if the size of the current block is less than or equal to a threshold, whether to perform downsampling can be indicated through flag signaling. Otherwise, whether to perform downsampling can be indicated by pre-defining between encoding / decoding devices without flag signaling. For example, if a flag indicating whether to perform downsampling is not transmitted, whether to perform downsampling on reference samples can be adaptively determined using the method described below. The threshold may be 1024, but is not limited thereto and may have a different value.
[0171] For example, by comparing the size of the current block with a threshold (M), it can be determined whether to perform downsampling on the reference sample. If the size of the current block is M, downsampling on the reference sample may not be performed. If the size of the current block is greater than M, downsampling on the reference sample may be performed. Here, the size may be defined as the width, the height, the product of the width and the height, the sum of the width and the height, the minimum / maximum value among the width and the height, or the ratio of the width and the height. M may be 16, but is not limited thereto and may have a different value.
[0172] As another example, if the width and height of the current block are different from each other, downsampling can be performed on the reference sample.
[0173] When downsampling is performed on a reference sample, the reference sample may be downsampled in at least one of the horizontal direction and the vertical direction. Here, the downsampling ratio for the horizontal direction and the downsampling ratio for the vertical direction may be the same or different. For example, a downsampling ratio of 4:1 may be applied in the horizontal direction, and a downsampling ratio of 2:1 may be applied in the vertical direction. In this case, the number of prediction samples generated through intra prediction filtering can be further reduced compared to the case where a downsampling ratio of 2:1 is applied to the horizontal and vertical directions. However, the downsampling ratio of the reference sample is not limited to 2:1 or 4:1, and may be expressed as a ratio of N:1. Here, N may be an integer of 2, 3, 4, or a higher number.
[0174] The downsampling ratio can be adaptively determined based on at least one of the size or shape of the current block.
[0175] For example, a downsampling ratio may be determined based on whether the size of the current block is greater than a threshold (P). If the size of the current block is greater than P, a downsampling ratio of m1:1 may be applied, otherwise, a downsampling ratio of m2:1 may be applied. m1 may be an integer greater than m2. Here, the size may be defined as the width, the height, the product of the width and the height, the sum of the width and the height, the minimum / maximum among the width and the height, or the ratio of the width and the height. P may be a value that is predefined identically for the encoding device and the decoding device. For example, if the width of the current block is 16 or less, downsampling may be performed at a ratio of 2:1 in the horizontal direction, and if the width of the current block is greater than 16, downsampling may be performed at a ratio of 4:1 in the horizontal direction. If the height of the current block is less than 16, it can be downsampled at a ratio of 2:1 in the vertical direction, and if the height of the current block is greater than 16, it can be downsampled at a ratio of 4:1 in the vertical direction.
[0176] Alternatively, if the width of the current block has a larger value than the height, a larger downsampling ratio can be applied in the horizontal direction than in the vertical direction.
[0177] If the height of the current block has a larger value than the width or height, a larger downsampling ratio can be applied in the vertical direction than in the horizontal direction.
[0178] If the width and height of the current block have the same values, the same downsampling rate can be applied to the horizontal and vertical directions. Otherwise, different downsampling rates can be applied to the horizontal and vertical directions.
[0179] For example, if the width and height of the current block are 16 and 8, respectively, a downsampling ratio of 4:1 can be applied in the horizontal direction and a downsampling ratio of 2:1 can be applied in the vertical direction. In this way, by applying a higher downsampling ratio to directions in which the number of samples to which intra prediction filtering can be applied is relatively large, the number of samples to which intra prediction filtering can be applied can be further reduced.
[0180] However, the numbers disclosed in the above embodiment are only an example, and the width and height of the current block and the downsampling ratio of the reference sample may have different values from the above example.
[0181] Meanwhile, the downsampling method for the reference sample may be adaptively determined based on at least one of the size or shape of the current block. Alternatively, the downsampling method may also be adaptively determined based on at least one of the size or shape of the downsampled prediction block. To avoid redundant explanation, in the embodiments described below, the size or shape of the current block may be understood as being replaced with the size or shape of the downsampled prediction block.
[0182] The encoding device and the decoding device may have one downsampling method defined. Here, the pre-defined downsampling method may be any one of Methods 1 to 8 described below. Alternatively, the encoding device and the decoding device may have multiple downsampling methods defined, including at least one of Methods 1 to 8 described below. Hereinafter, the downsampling methods will be examined in detail.
[0183] Method 1
[0184] Method 1 involves 4:1 downsampling, which can derive one downsampled reference sample from a 2x2 region (i.e., four reference samples). In this case, the location of the one downsampled reference sample can be the lower right sample location within the 2x2 region.
[0185] For example, a downsampling ratio of 2:1 may be applied in the horizontal direction to at least one of a group including upper peripheral samples of the current block or a group including upper-right peripheral samples of the current block. The downsampled reference samples may belong to one or more odd columns and may not belong to even columns.
[0186] A downsampling ratio of 2:1 can be applied to the reference samples downsampled in the horizontal direction. The reference samples downsampled in the vertical direction may belong to one or more odd rows and may not belong to even rows.
[0187] If the coordinate of the upper left sample of the current block is (0.0), an even column can be defined as a column that includes even sample positions whose x-coordinate value includes 0, and an odd column can be defined as a column that includes sample positions whose x-coordinate value includes odd. In addition, an even row can be defined as a row that includes even sample positions whose y-coordinate value includes 0, and an odd row can be defined as a row that includes sample positions whose y-coordinate value includes odd. This can be understood and applied equally to methods 2 to 8 described below.
[0188] A horizontal downsampling ratio of 2:1 can be applied to a group of samples surrounding the upper left corner of the current block. The downsampled reference samples may belong to one or more odd columns and may not belong to even columns.
[0189] A downsampling ratio of 2:1 can be applied to the reference samples downsampled in the horizontal direction. The reference samples downsampled in the vertical direction may belong to one or more odd rows and may not belong to even rows.
[0190] A downsampling ratio of 2:1 may be applied in the horizontal direction to at least one of a group including left-side surrounding samples of the current block or a group including left-bottom surrounding samples of the current block. The downsampled reference samples may belong to one or more odd columns and may not belong to even columns.
[0191] A downsampling ratio of 2:1 can be applied to the reference samples downsampled in the horizontal direction. The reference samples downsampled in the vertical direction may belong to one or more odd rows and may not belong to even rows.
[0192] Method 2
[0193] Method 2 is about 4:1 downsampling, and can derive one downsampled reference sample from a 2x2 region (i.e., four reference samples). In this case, the location of one downsampled reference sample can be the lower left sample location within the 2x2 region.
[0194] For example, a downsampling ratio of 2:1 may be applied in the horizontal direction to at least one of a group including upper peripheral samples of the current block or a group including upper-right peripheral samples of the current block. The downsampled reference samples may belong to one or more even columns and may not belong to odd columns.
[0195] A downsampling ratio of 2:1 can be applied to the reference samples downsampled in the horizontal direction. The reference samples downsampled in the vertical direction may belong to one or more odd rows and may not belong to even rows.
[0196] A horizontal downsampling ratio of 2:1 can be applied to a group of samples surrounding the upper left corner of the current block. The downsampled reference samples may belong to one or more even columns and may not belong to odd columns.
[0197] A downsampling ratio of 2:1 can be applied to the reference samples downsampled in the horizontal direction. The reference samples downsampled in the vertical direction may belong to one or more odd rows and may not belong to even rows.
[0198] A downsampling ratio of 2:1 may be applied in the horizontal direction to at least one of a group including left-side surrounding samples of the current block or a group including left-bottom surrounding samples of the current block. The downsampled reference samples may belong to one or more even columns and may not belong to odd columns.
[0199] A downsampling ratio of 2:1 can be applied to the reference samples downsampled in the horizontal direction. The reference samples downsampled in the vertical direction may belong to one or more odd rows and may not belong to even rows.
[0200] Method 3
[0201] Method 3 is about 4:1 downsampling, and can derive one downsampled reference sample from a 2x2 region (i.e., four reference samples). In this case, the location of one downsampled reference sample can be the upper left sample location within the 2x2 region.
[0202] For example, a downsampling ratio of 2:1 may be applied in the horizontal direction to at least one of a group including upper peripheral samples of the current block or a group including upper-right peripheral samples of the current block. The downsampled reference samples may belong to one or more even columns and may not belong to odd columns.
[0203] A downsampling ratio of 2:1 can be applied to the reference samples downsampled in the horizontal direction. The reference samples downsampled in the vertical direction may belong to one or more even rows and may not belong to odd rows.
[0204] A horizontal downsampling ratio of 2:1 can be applied to a group of samples surrounding the upper left corner of the current block. The downsampled reference samples may belong to one or more even columns and may not belong to odd columns.
[0205] A downsampling ratio of 2:1 can be applied to the reference samples downsampled in the horizontal direction. The reference samples downsampled in the vertical direction may belong to one or more even rows and may not belong to odd rows.
[0206] A downsampling ratio of 2:1 may be applied in the horizontal direction to at least one of a group including left-side surrounding samples of the current block or a group including left-bottom surrounding samples of the current block. The downsampled reference samples may belong to one or more even columns and may not belong to odd columns.
[0207] A downsampling ratio of 2:1 can be applied to the reference samples downsampled in the horizontal direction. The reference samples downsampled in the vertical direction may belong to one or more even rows and may not belong to odd rows.
[0208] Method 4
[0209] Method 4 is about 4:1 downsampling, and can derive one downsampled reference sample from a 2x2 region (i.e., four reference samples). In this case, the location of one downsampled reference sample can be the upper right sample location within the 2x2 region.
[0210] For example, a downsampling ratio of 2:1 may be applied in the horizontal direction to at least one of a group including upper peripheral samples of the current block or a group including upper-right peripheral samples of the current block. The downsampled reference samples may belong to one or more odd columns and may not belong to even columns.
[0211] A downsampling ratio of 2:1 can be applied to the reference samples downsampled in the horizontal direction. The reference samples downsampled in the vertical direction may belong to one or more even rows and may not belong to odd rows.
[0212] A horizontal downsampling ratio of 2:1 can be applied to a group of samples surrounding the upper left corner of the current block. The downsampled reference samples may belong to one or more odd columns and may not belong to even columns.
[0213] A downsampling ratio of 2:1 can be applied to the reference samples downsampled in the horizontal direction. The reference samples downsampled in the vertical direction may belong to one or more even rows and may not belong to odd rows.
[0214] A downsampling ratio of 2:1 may be applied in the horizontal direction to at least one of a group including left-side surrounding samples of the current block or a group including left-bottom surrounding samples of the current block. The downsampled reference samples may belong to one or more odd columns and may not belong to even columns.
[0215] A downsampling ratio of 2:1 can be applied to the reference samples downsampled in the horizontal direction. The reference samples downsampled in the vertical direction may belong to one or more even rows and may not belong to odd rows.
[0216] Method 5
[0217] Method 5 relates to 4:1 downsampling, and can derive one downsampled reference sample from a 2x2 region (i.e., four reference samples). In this case, the location of one downsampled reference sample can be the lower right sample location within the 2x2 region.
[0218] For example, a downsampling ratio of 2:1 may be applied in the horizontal direction to at least one of a group including upper peripheral samples of the current block or a group including upper-right peripheral samples of the current block. The downsampled reference samples may belong to one or more odd columns and may not belong to even columns.
[0219] Downsampling may not be performed on a group including the upper left surrounding samples of the current block.
[0220] A downsampling ratio of 2:1 in the vertical direction may be applied to at least one of the group including the left peripheral samples of the current block or the group including the lower-left peripheral samples of the current block. The reference samples downsampled in the vertical direction may belong to one or more odd rows and may not belong to even rows.
[0221] Method 6
[0222] Method 6 relates to 4:1 downsampling, which can derive one downsampled reference sample from a 2x2 region (i.e., four reference samples). In this case, the location of one downsampled reference sample can be the lower left sample location within the 2x2 region.
[0223] For example, a downsampling ratio of 2:1 may be applied in the horizontal direction to at least one of a group including upper peripheral samples of the current block or a group including upper-right peripheral samples of the current block. The downsampled reference samples may belong to one or more even columns and may not belong to odd columns.
[0224] Downsampling may not be performed on a group including the upper left surrounding samples of the current block.
[0225] A downsampling ratio of 2:1 in the vertical direction may be applied to at least one of the group including the left peripheral samples of the current block or the group including the lower-left peripheral samples of the current block. The reference samples downsampled in the vertical direction may belong to one or more odd rows and may not belong to even rows.
[0226] Method 7
[0227] Method 7 relates to 4:1 downsampling, and can derive one downsampled reference sample from a 2x2 region (i.e., four reference samples). In this case, the location of one downsampled reference sample can be the upper left sample location within the 2x2 region.
[0228] For example, a downsampling ratio of 2:1 may be applied in the horizontal direction to at least one of a group including upper peripheral samples of the current block or a group including upper-right peripheral samples of the current block. The downsampled reference samples may belong to one or more even columns and may not belong to odd columns.
[0229] Downsampling may not be performed on a group including the upper left surrounding samples of the current block.
[0230] A downsampling ratio of 2:1 in the vertical direction may be applied to at least one of a group including left-side surrounding samples of the current block or a group including left-bottom surrounding samples of the current block. The reference samples downsampled in the vertical direction may belong to one or more even rows and may not belong to odd rows.
[0231] Method 8
[0232] Method 8 relates to 4:1 downsampling, and can derive one downsampled reference sample from a 2x2 region (i.e., four reference samples). In this case, the location of the one downsampled reference sample can be the upper right sample location within the 2x2 region.
[0233] For example, a downsampling ratio of 2:1 may be applied in the horizontal direction to at least one of a group including upper peripheral samples of the current block or a group including upper-right peripheral samples of the current block. The downsampled reference samples may belong to one or more odd columns and may not belong to even columns.
[0234] Downsampling may not be performed on a group including the upper left surrounding samples of the current block.
[0235] A downsampling ratio of 2:1 in the vertical direction may be applied to at least one of a group including left-side surrounding samples of the current block or a group including left-bottom surrounding samples of the current block. The reference samples downsampled in the vertical direction may belong to one or more even rows and may not belong to odd rows.
[0236] At least one of a plurality of predefined downsampling methods may be selected based on at least one of the size or shape of the current block. For example, if the size of the current block is less than or equal to a threshold (Q), one of the plurality of predefined downsampling methods may be applied, and otherwise, another one may be applied. Here, the size may be defined as width, height, the product of width and height, the sum of width and height, the minimum / maximum of width and height, or the ratio of width and height.
[0237] For example, if the product of the width and height of the current block is 16, any one of methods 1 to 4 may be applied, and if the product of the width and height of the current block is greater than 16, any one of methods 5 to 8 may be applied. Alternatively, if the width and height of the current block have different values, any one of methods 5 to 8 may be applied.
[0238] However, the current block size and / or downsampling ratio disclosed in the above method are only an example and are not limited thereto.
[0239] If downsampling is performed on a reference sample, the downsampling may be performed in the same manner as in MIP mode.
[0240] Meanwhile, a prediction sample of the current block can be generated by applying the intra prediction filter of the current block to the reference sample.
[0241] When the EIP (Extrapolation filter-based intra prediction) mode is decoded / encoded as the intra prediction mode for the current block, intra prediction can be performed by sequentially applying an intra prediction filter in a diagonal direction for the current block. The region to which the intra prediction filter is applied can be reference samples downsampled in at least one of the horizontal and vertical directions.
[0242] Predicted values can be generated sequentially from the pixel in the upper left position to the pixel in the lower right position.
[0243] For example, the predicted value of the current block can be calculated as in the following mathematical expression 1.
[0244]
[0245] In mathematical expression 1, pred (x, y) represents the predicted value of the sample with (x, y) coordinates within the current block, and c ican represent the ith coefficient of the determined intra prediction filter. t(x-offsetXi, y-offsetYi) can mean the pre-reconstructed or pre-predicted sample value used for prediction at the current pixel location. offset Xi and offset Yi can represent a position offset relative to the current pixel position.
[0246] In mathematical expression 1, the coefficient index can have a value from 0 to 14. However, this is only one example, and can have a different value depending on the size of the intra prediction filter.
[0247] The current block may contain samples that are not generated through intra prediction based on an intra prediction filter. In this case, prediction samples for the current block can be generated by upsampling based on the pre-generated prediction samples through intra prediction based on an intra prediction filter. Alternatively, prediction samples for the current block can be generated by upsampling based on the prediction samples generated through intra prediction based on an intra prediction filter and neighboring samples of the current block.
[0248] The decoder can determine whether to perform upsampling on the prediction samples. The decoder can explicitly receive a flag indicating whether to perform upsampling via the bitstream. Alternatively, the decoder can adaptively determine whether to perform upsampling on the prediction samples based on certain parameters.
[0249] The above parameters may include at least one of the size of the current block, the shape of the current block, the size of the reference sample, or the shape of the reference sample.
[0250] Upsampling can be done through interpolation. Interpolation can also be done in the same way as in MIP mode.
[0251] Upsampling may be performed by interpolating in at least one of the vertical or horizontal directions with respect to surrounding samples of the current block and / or pre-generated prediction samples within the current block.
[0252] The above interpolation may mean linear interpolation. Linear interpolation may mean obtaining a weighted average value of two samples based on a weighted sum of the two sample values.
[0253] The upsampling ratio for the horizontal direction and the upsampling ratio for the vertical direction may be the same or different.
[0254] Whether horizontal or vertical interpolation is performed first can be determined based on the width and height of the block. For example, if the width of the block is greater than the height, horizontal interpolation may be performed before vertical interpolation. Conversely, if the height of the block is greater than the width, vertical interpolation may be performed before horizontal interpolation.
[0255] However, the interpolation according to the above-described method is only one example, and can be modified and applied in various ways based on the downsampling method, the size of the prediction sample, the shape of the prediction sample, etc.
[0256] Any one of a plurality of interpolation filters may be applied for interpolation. The plurality of interpolation filters may include at least one of a 4-tap Gaussian filter, a 6-tap Gaussian filter, a 4-tap cubic filter, or a 6-tap cubic filter.
[0257] The upsampling ratio can be derived based on at least one of the size of the current block or the shape of the current block.
[0258] For example, an upsampling ratio may be determined based on whether the size of the current block is greater than a threshold (R). If the width of the current block is greater than R, an upsampling ratio of m3:1 may be applied, otherwise, an upsampling ratio of m4:1 may be applied. m3 may be an integer greater than m4. Here, the size may be defined as the width, the height, the product of the width and the height, the sum of the width and the height, the minimum / maximum among the width and the height, or the ratio of the width and the height. R may be a value that is predefined identically for the encoding device and the decoding device. For example, if the width of the current block is 16 or less, downsampling may be performed at a ratio of 2:1 in the horizontal direction, and if the width of the current block is greater than 16, downsampling may be performed at a ratio of 4:1 in the horizontal direction. If the height of the current block is less than 16, it can be downsampled at a ratio of 2:1 in the vertical direction, and if the height of the current block is greater than 16, it can be downsampled at a ratio of 4:1 in the vertical direction.
[0259] However, this is just an example, and the width, height, and upsampling ratio of the current block may have different values than the example above.
[0260] Alternatively, if the width of the current block has a larger value than the height, a larger upsampling ratio can be applied in the horizontal direction than in the vertical direction.
[0261] If the height of the current block has a larger value than the width or height, a larger upsampling ratio can be applied in the vertical direction than in the horizontal direction.
[0262] If the width and height of the current block have the same values, the same upsampling ratio can be applied to the horizontal and vertical directions. Otherwise, different upsampling ratios can be applied to the horizontal and vertical directions.
[0263] For example, if the width and height of the current block are 16 and 8 respectively, an upsampling ratio of 4:1 can be applied in the horizontal direction and an upsampling ratio of 2:1 can be applied in the vertical direction.
[0264] However, the numbers disclosed in the above embodiment are only an example, and the width, height, and upsampling ratio of the current block may have different values from the above example.
[0265] Referring to FIG. 4, the current block can be restored based on the prediction sample of the current block (S420).
[0266] The prediction block can be derived identically from the encoding device and the decoding device, and the decoding device can signal residual information from the encoding device.
[0267] Based on the above residual information, a residual sample can be derived, and a restoration block can be generated by combining the residual sample and the prediction sample.
[0268] In this disclosure, we have examined a method for performing intra prediction using an adaptive intra prediction filter technique.
[0269] Meanwhile, whether the adaptive intra prediction filter technique proposed in the present disclosure is available may be explicitly signaled through the bitstream. For example, a flag indicating whether the adaptive intra prediction filter technique is available may be signaled in the higher-level syntax. For example, a flag (e.g., pps_adaptive_extrapolation_filter_enabled_flag) indicating whether the adaptive intra prediction filter technique is available may be signaled in the PPS.
[0270] As another example, a flag may be signaled indicating whether adaptive intra prediction filtering techniques are available on a CTU or CU basis.
[0271] Alternatively, the availability of an adaptive intra prediction filter technique may be implicitly derived based on parameters regarding the current block. The parameters may include at least one of the size of the current block, the shape of the current block, whether downsampling is performed on reference samples of the current block, the downsampling ratio, the size of the prediction sample, or the shape of the prediction sample. Alternatively, the parameters may further include at least one of the presence or absence of a reference sample and the availability of a reference sample.
[0272] When an adaptive intra prediction filter technique is available, information for specifying an intra prediction filter for a current block may be predefined in the same manner in the encoding device and the decoding device. Alternatively, the information may be signaled in a high-level syntax from the encoding device. The information may include at least one of the following: the number of intra prediction filters, the coefficients of the intra prediction filters, the size of the intra prediction filters, the shape of the intra prediction filters, or information about a block unit to which parallel processing is applied.
[0273] Meanwhile, whether the adaptive intra prediction filter technique is available can be determined based on whether the prediction mode for the current block is encoded / decoded as EIP mode in the upper-level syntax. That is, the adaptive intra prediction filter technique can be determined to be available only when the prediction mode of the current block is encoded / decoded as EIP mode in the upper-level syntax.
[0274] Alternatively, the availability of an adaptive intra prediction filter technique may be determined based on an EIP prediction flag (e.g., intra_EIP_flag). For example, a flag indicating the availability of an adaptive intra prediction filter technique may be signaled when the EIP prediction flag is true.
[0275] Alternatively, whether an adaptive intra prediction filter technique is available may be determined based on at least one of the size of the current block or the shape of the current block.
[0276] For example, if the height of the current block is more than four times the width of the current block, the adaptive intra prediction filter technique may not be available, and the signaling of the flag indicating whether the adaptive intra prediction filter technique is available may also be omitted.
[0277] Alternatively, whether an adaptive intra prediction filter technique is available can be determined based on some information.
[0278] For example, if the left reference sample of the current block does not exist or the left sample of the current block is not available, the adaptive intra prediction filter technique is always available, and the signaling of the flag indicating whether the adaptive intra prediction filter technique is available can also be omitted.
[0279] For example, if the left reference sample of the current block is any one of a CTU boundary, a tile boundary, a slice boundary, and a subpicture boundary, the adaptive intra prediction filter technique is always available, and the signaling of the flag indicating whether the adaptive intra prediction filter technique is available may also be omitted.
[0280] Alternatively, the availability of the adaptive intra prediction filter technique in the coding unit can be adaptively determined based on a flag indicating whether the adaptive intra prediction filter technique defined in the higher-level syntax is available. For example, if a flag indicating whether the adaptive intra prediction filter technique is available (e.g., sps_adaptive_extrapolation_filter_enabled_flag) is signaled in the SPS and sps_adaptive_extrapolation_filter_enabled_flag is false, the adaptive intra prediction filter technique may also not be available in the coding unit, and the signaling of the flag indicating whether the adaptive intra prediction filter technique is available may also be omitted.
[0281] FIG. 9 illustrates a schematic configuration of an intra prediction unit (331) and a current block restoration unit (not shown) that perform an intra prediction method according to the present disclosure.
[0282] Referring to FIG. 9, the intra prediction unit (331) may include an intra prediction filter determination unit (900) and a prediction sample generation unit (910).
[0283] The intra prediction filter decision unit (900) can determine the intra prediction filter of the current block.
[0284] The intra prediction filter of the current block can be derived from any one of a plurality of intra prediction filters. The intra prediction filter may include an extrapolation filter.
[0285] Specifically, the plurality of intra prediction filters may further include at least one of a first intra prediction filter, a second intra prediction filter, a third intra prediction filter, or a fourth intra prediction filter.
[0286] The intra prediction filter of the current block can be applied to the reference sample of the current block or the downsampled reference sample.
[0287] As for the size, shape, application range, etc. of the first to fourth intra prediction filters, they have been examined with reference to FIGS. 4 to 8, and thus a detailed description thereof is omitted here.
[0288] As described above, the intra prediction filter decision unit (900) can decide any one of a plurality of intra prediction filters as the intra prediction filter for the current block.
[0289] Referring to FIG. 9, the prediction sample generation unit (910) can generate a prediction sample of the current block based on the intra prediction filter of the current block and a predetermined reference sample.
[0290] The reference sample for applying the intra prediction filter is described in detail with reference to Fig. 4, and a detailed description thereof is omitted here.
[0291] The present disclosure proposes a method for reducing the number of prediction samples generated by intra prediction based on an intra prediction filter through downsampling of the current block and / or surrounding areas.
[0292] However, the process of obtaining downsampled reference samples corresponding to AxB prediction blocks by performing downsampling at a ratio of K:1 for the reference samples of the NxM current block has been described in detail with reference to Fig. 4. Therefore, a detailed description thereof will be omitted here.
[0293] The prediction sample generation unit (910) can determine whether to perform downsampling and / or the downsampling ratio, as described with reference to FIG. 4.
[0294] The prediction sample generation unit (910) can adaptively determine the downsampling method, as described with reference to FIG. 4.
[0295] Specifically, the prediction sample generation unit (910) may have one downsampling method defined. Here, the pre-defined one downsampling method may be any one of the aforementioned methods 1 to 8. Alternatively, the prediction sample generation unit (910) may have multiple downsampling methods defined, each including at least one of the aforementioned methods 1 to 8.
[0296] Meanwhile, the prediction sample generation unit (910) can generate a prediction sample of the current block by applying the intra prediction filter of the current block to the reference sample.
[0297] The process of calculating the predicted value of the current block is examined with reference to Fig. 4.
[0298] Meanwhile, the current block may contain samples that are not generated through intra prediction based on the intra prediction filter. In this case, upsampling can be performed to generate predicted samples for the current block.
[0299] The prediction sample generation unit (910) can determine whether to perform upsampling and / or the upsampling ratio, as described with reference to FIG. 4.
[0300] The prediction sample generation unit (910) can adaptively determine the upsampling method, as described with reference to FIG. 4.
[0301] Meanwhile, the signaling / induction method for the availability of the adaptive intra prediction filter technique proposed in the present disclosure has been examined in detail with reference to FIG. 4, and thus a detailed description thereof is omitted here to avoid redundant explanation.
[0302] The current block restoration unit (not shown) can restore the current block based on the prediction sample of the current block. The current block restoration unit may be provided in the addition unit (340) illustrated in FIG. 3.
[0303] The restoration process of the current block has been examined in detail with reference to Fig. 4, and a detailed description thereof is omitted here.
[0304] FIG. 10 illustrates an intra prediction method performed by an encoding device (200) as an embodiment according to the present disclosure.
[0305] Referring to FIG. 10, the intra prediction filter of the current block can be determined (S1000).
[0306] The intra prediction filter of the current block can be derived from any one of a plurality of intra prediction filters. The intra prediction filter may include an extrapolation filter.
[0307] Specifically, the plurality of intra prediction filters may further include at least one of a first intra prediction filter, a second intra prediction filter, a third intra prediction filter, or a fourth intra prediction filter.
[0308] The intra prediction filter of the current block can be applied to the reference sample of the current block or the downsampled reference sample.
[0309] Regarding the size, shape, scope of application, etc. of the first to fourth intra prediction filters, it can be understood that they are applied equally to the decoding device and the encoding device. In this regard, as discussed with reference to FIGS. 4 to 8, a detailed description thereof is omitted here.
[0310] As described above, the encoding device can determine any one of the plurality of intra prediction filters as the intra prediction filter for the current block.
[0311] Referring to FIG. 10, a prediction sample of a current block can be generated based on an intra prediction filter of the current block and a predetermined reference sample (S1010).
[0312] The present disclosure proposes a method for reducing the number of prediction samples generated by intra prediction based on an intra prediction filter through downsampling of the current block and / or surrounding areas.
[0313] Meanwhile, it can be understood that the downsampling process of the reference sample according to the present disclosure is applied equally to the decoding device and the encoding device. The process of performing downsampling at a ratio of K:1 on the reference sample of the NxM current block to obtain a downsampled reference sample corresponding to the AxB prediction block has been described in detail with reference to FIG. 4, and thus a detailed description thereof will be omitted here.
[0314] The encoding device can determine whether to perform downsampling on the reference samples of the current block. The encoding device can encode a flag indicating whether to perform downsampling and insert it into the bitstream. Alternatively, the encoding device can adaptively determine whether to perform downsampling on the reference samples based on at least one of the size or shape of the current block.
[0315] The process of determining whether to perform downsampling and / or the downsampling ratio can be applied equally to the encoding device and the decoding device, and as described with reference to FIG. 4, a detailed description thereof is omitted here.
[0316] The process of adaptively determining the downsampling method can be applied equally to the encoding device and the decoding device, and in this regard, as described with reference to FIG. 4.
[0317] Specifically, the encoding device and the decoding device may have one downsampling method defined. Here, the pre-defined one downsampling method may be any one of the aforementioned methods 1 to 8. Alternatively, the encoding device and the decoding device may have multiple downsampling methods defined, each including at least one of the aforementioned methods 1 to 8.
[0318] Meanwhile, a prediction sample of the current block can be generated by applying the intra prediction filter of the current block to the reference sample.
[0319] The process of calculating the predicted value of the current block can be understood to be applied equally to the decoding device and the encoding device, and in this regard, as described with reference to Fig. 4, a detailed description thereof will be omitted here.
[0320] Meanwhile, the current block may contain samples that are not generated through intra prediction based on the intra prediction filter. In this case, upsampling can be performed to generate predicted samples for the current block.
[0321] The encoding device can determine whether to perform upsampling and / or the upsampling ratio, as discussed with reference to FIG. 4.
[0322] The encoding device can adaptively determine the upsampling method, as described with reference to FIG. 4.
[0323] Referring to FIG. 10, a residual sample of the current block can be generated (S1020).
[0324] The encoding device can generate a residual sample of the current block by subtracting the predicted block derived from S410 from the original current block.
[0325] Transformation can be performed on the above residual samples to derive transform coefficients. In addition, quantization can be performed on the transform coefficients to derive quantized transform coefficients, thereby deriving residual information.
[0326] The encoding device can encode the residual information and signal it to the decoding device.
[0327] In this disclosure, we have examined a method for performing intra prediction using an adaptive intra prediction filter technique.
[0328] Meanwhile, a flag indicating the availability of the adaptive intra prediction filter technique proposed in this disclosure may be encoded and inserted into the bitstream. The method for signaling / inducing the availability of the adaptive intra prediction filter technique proposed in this disclosure has been described in detail with reference to FIG. 10, and thus a detailed description thereof is omitted here.
[0329] FIG. 11 illustrates a schematic configuration of an intra prediction unit (222) and a residual sample generation unit (not shown) that perform an intra prediction method according to the present disclosure.
[0330] Referring to FIG. 11, the intra prediction unit (222) may include an intra prediction filter determination unit (1100) and a prediction sample generation unit (1110).
[0331] The intra prediction filter decision unit (1100) can determine the intra prediction filter of the current block.
[0332] The intra prediction filter of the current block can be derived from any one of a plurality of intra prediction filters. The intra prediction filter may include an extrapolation filter.
[0333] Specifically, the plurality of intra prediction filters may further include at least one of a first intra prediction filter, a second intra prediction filter, a third intra prediction filter, or a fourth intra prediction filter.
[0334] The intra prediction filter of the current block can be applied to the reference sample of the current block or the downsampled reference sample.
[0335] As for the size, shape, application range, etc. of the first to fourth intra prediction filters, they are as described with reference to Fig. 10, so a detailed description thereof is omitted here.
[0336] As described above, the intra prediction filter decision unit (1100) can decide any one of a plurality of intra prediction filters as the intra prediction filter for the current block.
[0337] Referring to FIG. 11, the prediction sample generation unit (1110) can generate a prediction sample of the current block based on the intra prediction filter of the current block and a predetermined reference sample.
[0338] The reference sample for applying the intra prediction filter is described in detail with reference to Fig. 10, and a detailed description thereof is omitted here.
[0339] The present disclosure proposes a method for reducing the number of prediction samples generated by intra prediction based on an intra prediction filter through downsampling of the current block and / or surrounding areas.
[0340] However, the process of obtaining downsampled reference samples corresponding to AxB prediction blocks by performing downsampling at a ratio of K:1 for the reference samples of the NxM current block has been described in detail with reference to FIGS. 4 and 10. Therefore, a detailed description thereof will be omitted here.
[0341] The prediction sample generation unit (1110) can determine whether to perform downsampling and / or the downsampling ratio, as described with reference to FIG. 10.
[0342] The prediction sample generation unit (1110) can adaptively determine the downsampling method, as described with reference to FIG. 10.
[0343] Specifically, the prediction sample generation unit (1110) may define one downsampling method. Here, the pre-defined one downsampling method may be any one of the aforementioned methods 1 to 8. Alternatively, the prediction sample generation unit (1110) may define multiple downsampling methods including at least one of the aforementioned methods 1 to 8.
[0344] Meanwhile, the prediction sample generation unit (1110) can generate a prediction sample of the current block by applying the intra prediction filter of the current block to the reference sample.
[0345] The process of calculating the predicted value of the current block is examined with reference to Fig. 10.
[0346] Meanwhile, the current block may contain samples that are not generated through intra prediction based on the intra prediction filter. In this case, upsampling can be performed to generate predicted samples for the current block.
[0347] The prediction sample generation unit (1110) can determine whether to perform upsampling and / or the upsampling ratio, as described with reference to FIG. 10.
[0348] The prediction sample generation unit (1110) can adaptively determine the upsampling method, as described with reference to FIG. 10.
[0349] Meanwhile, the signaling / induction method for the availability of the adaptive intra prediction filter technique proposed in the present disclosure has been examined in detail with reference to FIG. 10, and thus a detailed description thereof is omitted here.
[0350] A residual sample generation unit (not shown) can generate a residual sample of the current block. The residual sample generation unit can be provided in the residual processing unit (230) illustrated in FIG. 2.
[0351] The process of generating a residual sample has been described in detail with reference to Fig. 10, and is omitted here to avoid redundant explanation.
[0352] In the embodiments described above, the methods are described based on a flowchart 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 described above. Furthermore, those skilled in the art will understand that the steps depicted in the flowchart are not exclusive, and other steps may be included, or one or more steps in the flowchart may be deleted without affecting the scope of the embodiments of this document.
[0353] The method according to the embodiments of the present document described above can be implemented in the form of software, and the encoding device and / or decoding device according to the present document can be included in a device that performs image processing, such as a TV, a computer, a smartphone, a set-top box, a display device, etc.
[0354] When the embodiments in this document are implemented as software, the above-described method can be implemented as a module (process, function, etc.) that performs the above-described function. The module can be stored in memory and executed by a processor. The memory can be internal or external to the processor and can be connected to the processor by various well-known means. The processor can include an application-specific integrated circuit (ASIC), another chipset, logic circuit, and / or data processing device. The memory can include a read-only memory (ROM), a random access memory (RAM), flash memory, a memory card, a storage medium, and / or other storage devices. That is, the embodiments described in this document can be implemented and performed on a processor, a microprocessor, a controller, or a chip. For example, the functional units illustrated in each drawing can be implemented and performed on a computer, a processor, a microprocessor, a controller, or a chip. In this case, information for implementation (e.g., information on instructions) or an algorithm can be stored on a digital storage medium.
[0355] In addition, the decoding device and encoding device to which the embodiment(s) of the present specification are applied may be included in a multimedia broadcasting transmitting and receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video conversation device, a real-time communication device such as a video communication, a mobile streaming device, a storage medium, a camcorder, a video-on-demand (VoD) service providing device, an OTT (Over the top video) device, an Internet streaming service providing device, a three-dimensional (3D) video device, a VR (virtual reality) device, an AR (argumente reality) device, a video phone video device, a transportation terminal (ex. a vehicle (including an autonomous vehicle) terminal, an airplane terminal, a ship terminal, etc.), and a medical video device, and may be used to process a video signal or a data signal. For example, the OTT (Over the top video) device may include a game console, a Blu-ray player, an Internet-connected TV, a home theater system, a smartphone, a tablet PC, a DVR (Digital Video Recorder), etc.
[0356] In addition, the processing method to which the embodiment(s) of the present specification are applied can be produced in the form of a computer-executable program and can be stored in a computer-readable recording medium. Multimedia data having a data structure according to the embodiment(s) of the present specification can also be stored in 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 can 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. In addition, the computer-readable recording medium includes a medium implemented in the form of a carrier wave (e.g., transmission via the Internet). In addition, a bitstream generated by an encoding method can be stored in a computer-readable recording medium or transmitted via a wired or wireless communication network.
[0357] Additionally, the embodiments of the present disclosure may be implemented as a computer program product by program code, and the program code may be executed on a computer by the embodiments of the present disclosure. The program code may be stored on a computer-readable carrier.
[0358] FIG. 12 illustrates an example of a content streaming system to which embodiments of the present disclosure can be applied.
[0359] Referring to FIG. 12, 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.
[0360] The encoding server compresses content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data, generates a bitstream, and transmits it to the streaming server. Alternatively, if multimedia input devices such as smartphones, cameras, and camcorders directly generate bitstreams, the encoding server may be omitted.
[0361] The above bitstream can 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 can temporarily store the bitstream during the process of transmitting or receiving the bitstream.
[0362] 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 an intermediary to inform the user of available services. When a user requests a desired service from the web server, the web server transmits the request to the streaming server, and the streaming server transmits the multimedia data to the user. At this time, the content streaming system may include a separate control server, in which case the control server controls commands / responses between each device within the content streaming system.
[0363] The streaming server can receive content from a media repository and / or an encoding server. For example, when receiving content from the encoding server, the content can be received in real time. In this case, to provide a smooth streaming service, the streaming server can store the bitstream for a certain period of time.
[0364] Examples of the user devices may include mobile phones, smart phones, laptop computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation devices, slate PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, HMDs), digital TVs, desktop computers, digital signage, etc.
[0365] Each server within the above content streaming system can be operated as a distributed server, in which case data received from each server can be processed in a distributed manner.
[0366] The claims set forth in this specification may be combined in various ways. For example, the technical features of the method claims of this specification may be combined and implemented as a device, and the technical features of the device claims of this specification may be combined and implemented as a method. Furthermore, the technical features of the method claims and the technical features of the device claims of this specification may be combined and implemented as a device, and the technical features of the method claims and the technical features of the device claims of this specification may be combined and implemented as a method.
Claims
1. A step of determining the intra prediction filter of the current block; generating a prediction sample of the current block from a reference sample based on an intra prediction filter of the current block; and A step of restoring the current block based on the predicted sample of the current block, A method in which the intra prediction filter is determined from a plurality of intra prediction filters and applied to the reference sample of the current block.
2. In paragraph 1, A method wherein the above reference sample is downsampled in at least one of the vertical and horizontal directions.
3. In paragraph 2, A method in which the downsampling ratio of the above reference sample is derived based on at least one of the size of the current block or the shape of the current block.
4. In paragraph 3, The intra prediction filter is determined from the plurality of intra prediction filters based on the downsampling ratio of the reference sample, The above plurality of intra prediction filters include a first intra prediction filter or a second intra prediction filter, and A method wherein the second intra prediction filter is a reduced size of the first intra prediction filter.
5. In paragraph 1, A method wherein the plurality of intra prediction filters include a third intra prediction filter that performs prediction in units of lines, either rows or columns.
6. In paragraph 1, The above plurality of intra prediction filters include a fourth intra prediction filter that performs prediction in block units, and The above fourth intra prediction filter is applied in parallel to samples within the block unit.
7. In paragraph 1, The above plurality of intra prediction filters include a fourth intra prediction filter that performs prediction in block units, The fourth intra prediction filter is applied in parallel to the first group of samples within the block unit, and The above fourth intra prediction filter is a method in which the samples of the second group that are diagonally symmetrical with respect to the samples of the first group within the block unit are transposed and applied in parallel.
8. A step of determining the intra prediction filter of the current block; and Generating a prediction sample of the current block from a reference sample based on an intra prediction filter of the current block, and A step of generating a residual sample of the current block based on the predicted sample, A method in which the intra prediction filter is determined from a plurality of intra prediction filters and applied to the reference sample of the current block.
9. A computer-readable storage medium storing a bitstream generated by the method according to Article 8.
10. A step of obtaining a bitstream for image information; wherein the bitstream is generated based on a step of determining an intra prediction filter of a current block; a step of generating a prediction sample of the current block from a reference sample based on the intra prediction filter of the current block, and Including a step of transmitting data including the above bitstream, A method in which the intra prediction filter is determined from a plurality of intra prediction filters and applied to the reference sample of the current block.
Citation Information
Patent Citations
Competition-Based Intra Prediction Coding / Decoding Apparatus and Method Using Multiple Prediction Filters
KR101663762B1
Method and apparatus for power saving operations in communication system supporting multi-link
KR1020220162064A
Field-customized learning data provision system
KR1020250035173A
Simplifying parametric loop filters
US20120183081A1