Video decoding method, video encoding method, and recording medium

The adaptive filter application in intra-prediction for video coding optimizes filter usage based on neighboring block information and prediction modes, enhancing coding efficiency in video encoding.

JP7751147B2Active Publication Date: 2025-10-07ELECTRONICS & TELECOMM RES INST
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2025030361
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2011-04-08
Filing Date
2025-02-27
Publication Date
2025-10-07
Estimated Expiration
2031-04-11

AI Technical Summary

Technical Problem

Existing video coding methods in standards like H.264/AVC face inefficiencies in intra-prediction due to inconsistent application of filters, which can either improve or hinder coding performance depending on the context.

Method used

An adaptive filter approach is applied to both reference and predicted pixel values of a block during intra-prediction, determining filter application based on neighboring block information, prediction modes, block sizes, and coding types to optimize coding performance.

Benefits of technology

This method enhances coding efficiency by effectively predicting luminance or color difference signals, improving overall video coding performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007751147000002
    Figure 0007751147000002
  • Figure 0007751147000003
    Figure 0007751147000003
  • Figure 0007751147000004
    Figure 0007751147000004
Patent Text Reader

Abstract

To provide a method and apparatus for performing intra-prediction using an adaptive filter configured to improve coding performance by effectively predicting a luminance or chrominance signal block to be encoded.SOLUTION: A method for performing intra-prediction comprises the steps of: determining whether or not to apply a first filter for a reference pixel value on the basis of information of a neighboring block of a current block; applying the first filter for the reference pixel value when it is determined to apply the first filter; performing intra-prediction on the current block on the basis of the reference pixel value; determining whether or not to apply a second filter for a prediction value according to each prediction mode of the current block, which is predicted by the intra-prediction performance on the basis of the information of the neighboring block; and applying the second filter for the prediction value according to each prediction mode of the current block when it is determined to apply the second filter.SELECTED DRAWING: Figure 6
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to video coding, and more particularly to a method and apparatus for performing intra-prediction by applying an adaptive filter to neighboring pixel values ​​of a block to be predicted or predicted pixel values ​​of a current block. [Background technology]

[0002] In recent years, the advent of digital TV has led to a rapid development of technologies in the fields of broadcast television and home entertainment. Technologies in these fields are being commercialized through the standardization of video compression technology. The International Telecommunications Union-Telecommunication (ITU-T) H.263 standard is widely used for video compression, and the next standard from the Motion Picture Experts Group (MPEG), MPEG-4, is being used for internet-based video applications.

[0003] After the completion of the H.263 standard, the ITU-T Video Coding Experts Group (VCEG) has been working on two goals: a short-term goal of adding additional features to the H.263 standard and a long-term goal of developing a new standard for low-bitrate visual communication. In 2001, the Joint Video Team (JVT), comprised of experts from MPEG and VCEG, was formed to advance the standardization of ITU-T H.264 / MPEG-4 part 10, a new standard for video coding. The H.264 standard is also known as AVC (Advanced Video Coding). The technical goals of H.264 / AVC include significantly improved coding efficiency, loss- and error-robust coding, network-friendly coding, low latency capability, and accurate match decoding.

[0004] Nearby pixels within an image tend to have similar values, even for 4x4 or 16x16 blocks, which are the minimum block sizes in the H.264 / AVC standard. Using the similarity of values ​​between blocks, prediction can be performed on the image, and the difference from the original image can be encoded. This is called intra-prediction, and intra-prediction can improve the efficiency of image coding.

[0005] In addition, when performing intra prediction, a filter may be applied before the intra prediction is performed. Typically, when performing intra prediction in the H.264 / AVC standard, a filter is applied to reference pixel values, etc., and the filtered values ​​are then used for intra prediction. However, in some cases, video coding performance may be higher when performing intra prediction without applying a filter than when performing intra prediction after applying a filter.

[0006] This allows for the proposal of a method for determining whether or not to apply a filter when performing intra prediction. Summary of the Invention [Problem to be solved by the invention]

[0007] An object of the present invention is to provide a method and apparatus for performing intra-prediction by applying an adaptive filter to neighboring pixel values ​​of a block to be predicted or predicted pixel values ​​of a current block in video encoding. More specifically, an adaptive filter (pre-filter) is applied to reference pixel values ​​of a current block for performing intra-prediction, and then prediction is performed, and an adaptive filter (post-filter) is also applied to pixel values ​​of the predicted current block to calculate a residual signal. [Means for solving the problem]

[0008] In one aspect, a method for performing intra-prediction is provided, the method including: determining whether to apply a first filter to reference pixel values ​​based on information about neighboring blocks of a current block; applying the first filter to the reference pixel values ​​if it is determined that the first filter is to be applied; performing intra-prediction on the current block based on the reference pixel values; determining whether to apply a second filter to predicted values ​​for each prediction mode of the current block predicted by the intra-prediction based on information about the neighboring blocks; and applying the second filter to predicted values ​​for each prediction mode of the current block if it is determined that the second filter is to be applied.

[0009] Whether or not to apply the first filter may be determined based on a prediction mode of the current block determined based on information about the neighboring blocks.

[0010] Whether or not the first filter is applied may be determined based on the size of the current block.

[0011] Whether or not the first filter is applied may be specified in advance based on the prediction mode of the current block and the size of the current block.

[0012] Whether the first filter is applied can be determined based on whether the neighboring blocks are intra-frame coded or inter-frame coded.

[0013] The first filter can be at least one of a 3-tap filter and a 2-tap filter.

[0014] Whether or not to apply the second filter may be determined based on a prediction mode of the current block determined based on information about the neighboring blocks.

[0015] Whether the second filter is applied can be determined based on whether the neighboring blocks are intra-coded or inter-coded.

[0016] The second filter may be applied to predicted values ​​of pixels adjacent to the boundary of the reference pixel value.

[0017] The second filter can be at least one of a 3-tap filter and a 2-tap filter.

[0018] In another aspect, an encoder is provided, the encoder comprising: a processor; and a memory coupled to the processor and configured to store information for driving the processor, the processor being configured to: determine whether to apply a first filter to reference pixel values ​​based on information about neighboring blocks of a current block, apply the first filter to the reference pixel values ​​if it is determined to apply the first filter, perform intra prediction on the current block based on the reference pixel values, determine whether to apply a second filter to predicted values ​​for each prediction mode of the current block predicted by performing the intra prediction based on information about the neighboring blocks, and apply the second filter to the predicted values ​​for each prediction mode of the current block if it is determined to apply the second filter.

[0019] In yet another aspect, a decoder is provided, comprising: a processor; and a memory coupled to the processor and configured to store information for driving the processor, wherein the processor is configured to determine whether to apply a first filter to reference pixel values ​​based on information about neighboring blocks of a current block, apply the first filter to the reference pixel values ​​if it is determined to apply the first filter, perform intra prediction on the current block based on the reference pixel values, determine whether to apply a second filter to predicted values ​​for each prediction mode of the current block predicted by the intra prediction based on information about the neighboring blocks, and apply the second filter to the predicted values ​​for each prediction mode of the current block if it is determined to apply the second filter. [Effects of the Invention]

[0020] To improve coding performance by effectively predicting a luminance or color difference signal block to be coded. [Brief explanation of the drawings]

[0021] [Figure 1] 1 is a block diagram of an encoder conforming to the H.264 / AVC (Advanced Video Coding) standard. [Figure 2] FIG. 1 is a block diagram of a decoder of the H.264 / AVC standard. [Figure 3] FIG. 10 is a diagram showing an example of labeling prediction samples in a 4×4 luma prediction mode. [Figure 4] FIG. 10 is a diagram illustrating nine prediction modes within the 4×4 luma prediction mode. [Figure 5] FIG. 10 is a diagram illustrating an example of a method for applying a filter before performing intra prediction. [Figure 6] FIG. 1 illustrates an embodiment of the proposed method for performing intra prediction using adaptive filters. [Figure 7] FIG. 1 illustrates the application of a filter to a predicted value according to the proposed method for performing intra prediction using adaptive filters. [Figure 8] 1 is a block diagram of an encoder and a decoder in which embodiments of the present invention may be implemented; DETAILED DESCRIPTION OF THE INVENTION

[0022] Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily implement the present invention. However, the present invention may be embodied in various different forms and is not limited to the embodiments described herein. In the drawings, parts that are not relevant to the description are omitted in order to clearly explain the present invention, and similar parts are designated by similar reference numerals throughout the specification. Furthermore, descriptions of parts that can be easily understood by those skilled in the art even if detailed descriptions are omitted are omitted.

[0023] Throughout the specification and claims, when a part is said to "comprise" a certain element, this does not mean that it excludes other elements, but that it may further include other elements, unless specifically stated to the contrary.

[0024] FIG. 1 is a block diagram of an encoder conforming to the H.264 / AVC (Advanced Video Coding) standard.

[0025] As shown in Figure 1, the encoder includes two paths of data flow: one is a forward path and the other is a reconstruction path.

[0026] First, we describe the forward path. n Encoding is performed on a macroblock basis for each input frame. A macroblock has a size of 16x16 pixels in the original image. Intra-prediction or inter-prediction is performed on each input frame. Intra-prediction performs prediction using similarities between block values ​​within a frame and encodes the difference from the original image, while inter-prediction performs prediction using similarities between block values ​​between frames and encodes the difference from the original image. During intra-prediction or inter-prediction, a prediction macroblock P is formed based on a reconstructed frame. During intra-prediction, P is based on the previously encoded current frame, the decoded current frame, or the reconstructed current frame uF. n' can be formed from samples in '. When P is formed from the reconstructed current frame, unfiltered samples can be used. During inter prediction, P can be formed by performing motion compensation or motion prediction from one or more reference frames. In FIG. 1, the reference frame is a previously encoded frame F. n-1 However, without being limited thereto, each predicted macroblock can be formed from one or two previous frames or one or two subsequent frames that have already been encoded or reconstructed.

[0027] P is the residual or difference macroblock D n is subtracted from the current macroblock to generate D n is transformed (T) using a block transform and quantized (Q) to produce X, which is a set of encoded coefficients. The encoded coefficients are reordered and entropy coded, and the entropy coded coefficients, along with the information needed to decode the macroblock, form a compressed bitstream. The compressed bitstream is sent to the Network Abstraction Layer (NAL) for transmission or storage.

[0028] We now describe the reconstruction path. The quantized macroblock coefficients, X, are decoded to generate a reconstructed frame that is used to encode other macroblocks, etc. X is then dequantized (Q -1 ) and inversely transformed (T -1 , Inverse Transformed) and the difference macroblock Dn ' is generated. The difference macroblock D generated in the reconstruction path n ' is the difference macroblock generated in the forward pass, D n quantization introduces losses, which makes D n 'D n If the predicted macroblock P is D n ' and the reconstructed macroblock uF n ' is generated. n ' may also be a distorted version of macroblock Fn. n A filter may be applied to reduce blocking distortion to the reconstructed macroblocks, and a reconstructed frame may be formed from a plurality of reconstructed macroblocks to which the filter has been applied.

[0029] FIG. 2 is a block diagram of a decoder in accordance with the H.264 / AVC standard.

[0030] As shown in Figure 2, the decoder receives the compressed bitstream from the NAL. The received data is entropy decoded and rearranged to produce X, a set of quantized coefficients, etc. X is then dequantized and inverse transformed to produce D. n The decoder generates a predicted macroblock P that is the same as the predicted macroblock generated by the encoder using the header information decoded from the bitstream. n ' is added to uF n ' is generated and uF n ' is a macroblock F decoded through a filter. n ' can be generated.

[0031] Intra prediction will be described below.

[0032] When intra prediction is performed on a block (or macroblock), a prediction block (or macroblock) P may be formed based on an encoded block (or macroblock) or a reconstructed block (or macroblock). P is subtracted from the original image, and the difference value from which P is subtracted is encoded and transmitted. Intra prediction may be performed in a luma prediction mode or a chroma prediction mode. In the luma prediction mode, intra prediction may be performed in units of 4x4 sub-blocks or 16x16 macroblocks. In the 4x4 luma prediction mode, there are a total of nine additional prediction modes, and in the 16x16 luma prediction mode, there are a total of four additional prediction modes. The unit in which intra prediction is performed is not limited to a sub-block or a macroblock, and intra prediction may be performed in units of various sizes. The unit of pixels on which intra prediction is performed can be called a coding unit (CU) or a prediction unit (PU), and the size of a CU or PU can be the same as the size of a subblock or macroblock, as described above.

[0033] 3 shows an example of labeling prediction samples in a 4x4 luma prediction mode. As shown in FIG. 3, a prediction block P is calculated based on samples labeled A to H or I to L.

[0034] FIG. 4 shows nine prediction modes within the 4×4 luma prediction mode.

[0035] The encoder can select one of nine prediction modes for each block to minimize the difference between the predicted block P and the block to be encoded. The nine prediction modes are as follows:

[0036] 1) Mode 0 (vertical): A to D, which are the upper samples of the prediction block, are vertically extrapolated.

[0037] 2) Mode 1 (horizontal): I to L, which are the left samples of the prediction block, are extrapolated horizontally.

[0038] 3) Mode 2 (DC): All samples in P are predicted by the average of A through D and I through L.

[0039] 4) Mode 3 (Diagonal Down-Left): Samples in P etc. are interpolated at a 45° angle between the bottom-left and top-right.

[0040] 5) Mode 4 (Diagonal Down-Right): Samples in P are extrapolated at a 45° angle downward to the right.

[0041] 6) Mode 5 (Vertical-Right): Samples in P etc. are extrapolated or interpolated at an angle of approximately 26.6° to the right from the vertical axis.

[0042] 7) Mode 6 (Horizontal-Down): Samples in P are extrapolated downward at an angle of approximately 26.6° from the horizontal axis.

[0043] 8) Mode 7 (Vertical-Left): Samples in P are extrapolated at an angle of approximately 26.6° to the left of the vertical axis.

[0044] 9) Mode 8 (Horizontal-Up): Samples in P etc. are interpolated at an angle of approximately 26.6° upward from the horizontal axis.

[0045] In Figure 4, arrows indicate the direction in which prediction is performed within each mode. Meanwhile, for modes 3 to 8, samples within a prediction block are formed from a weighted average of prediction samples A to H or I to L. For example, in mode 4, prediction can be performed using the sample located at the upper right corner of the prediction block (d = round (B / 4 + C / 2 + D / 4)). The encoder calculates the sum of absolute errors (SAE) for the prediction block generated by each prediction mode and performs intra prediction using the prediction mode with the smallest SAE.

[0046] FIG. 5 shows an example of a method for applying a filter before performing intra prediction.

[0047] Generally, intra prediction is performed after applying a filter to samples such as those used in the H.264 / AVC standard. The samples may also be referred to as reference pixel values. In the example of Figure 5, it is assumed that the filter is a low-pass filter and is applied only to 8x8 blocks.

[0048] Equation 1 is an example of an equation representing a 3-tap filter applied to the reference pixel value.

[0049] <Number 1> h[Z]=(A+2×Z+Q) / 4 h[A]=(Z+2×A+B) / 4 ... h[P]=(O+3×P) / 4 h[Q]=(Z+2×Q+R) / 4 ... h[X]=(W+3×X) / 4

[0050] h[Z] represents a value calculated by applying a filter to Z. As shown in Equation 1, the filter coefficient (1,2,1) is applied to filter the reference pixel value, and intra prediction is performed using nine prediction modes based on the filtered reference pixel values ​​(h[A] to h[Z]). Filters can be applied in the decoding process as well as in the encoding process.

[0051] In some cases, filtering before intra prediction is performed can improve encoding performance, and a method of adaptively applying a filter to perform intra prediction can be proposed.

[0052] FIG. 6 illustrates one embodiment of the method for performing intra prediction using the proposed adaptive filter.

[0053] As shown in Fig. 6, in step S201, the encoder determines whether to apply a filter to a reference pixel value. When determining whether to apply a filter, the encoder may use information about neighboring blocks or may determine whether to apply a filter using a rate-distortion optimization (RDO) method.

[0054] When determining whether to apply a filter to reference pixel values ​​using information about neighboring blocks, a prediction mode of a current block is determined based on prediction mode information (MPM; Most Probable Mode) of the neighboring blocks, and whether to apply a filter to reference pixel values ​​can be determined according to the determined prediction mode of the current block. For example, assuming that the current block is 'C', the upper block is 'A', and the left block is 'B', if the prediction mode of the current block is the same as the prediction mode of 'A', the prediction mode of 'A' can be determined as the prediction mode of the current block. If the prediction mode of the current block is the same as the prediction mode of 'B', the prediction mode of 'B' can be determined as the prediction mode of the current block. Alternatively, if the prediction mode of the current block is a prediction mode other than the prediction mode of 'A' or the prediction mode of 'B', the corresponding prediction mode is encoded and transmitted. Whether to apply a filter to reference pixel values ​​can be determined according to the prediction mode of the current block determined in this manner. Even if the current block and the upper block or the left block are different in size, the prediction mode of the current block can be determined according to the prediction mode of the neighboring blocks.

[0055] Alternatively, when determining whether to apply a filter to a reference pixel value using information on neighboring blocks, the determination may be made based on the amount of change in neighboring reference pixel values. For example, if a reference pixel value to which a filter is to be applied is p[n], the difference between neighboring reference pixel values ​​p[n-1] and p[n+1] may be calculated and compared with a specific threshold to determine whether to apply a filter.

[0056] Alternatively, whether to apply a filter to reference pixel values ​​may be determined depending on the size of the current block in addition to the prediction mode of the current block. In this case, whether to apply a filter depending on the prediction mode of the current block and the size of the current block may be specified in advance, and whether to apply a filter may be adaptively determined depending on the prediction mode or the size.

[0057] Table 1 indicates whether or not a filter is applicable depending on the prediction mode of the current block and the size of the current block. [Table 1]

[0058] Referring to Table 1, "0" means that a filter is not applied, and "1" means that a filter is applied. For example, when the size of the current block is 4x4, if the prediction mode of the current block is 1, the filter is not applied, and if the prediction mode of the current block is 3, the filter is applied.

[0059] In addition, whether to apply a filter to reference pixel values ​​may be determined depending on whether the neighboring blocks are intra-frame coded or inter-frame coded. For example, in the case of constrained intra-prediction, when the neighboring blocks are inter-frame coded, the inter-frame coded values ​​are satisfied using the values ​​of the neighboring blocks coded intra-frame, and in this case, filtering may not be applied.

[0060] If it is determined that a filter is to be applied to the reference pixel values, the encoder applies the filter to the reference pixel values ​​in step S202. The filter to be applied may be a commonly used filter. For example, the 3-tap filter in Equation 1 may be used, or a 2-tap filter may be used. When a 2-tap filter is used, various filter coefficients such as (1 / 8, 7 / 8), (2 / 8, 6 / 8), and (3 / 8, 5 / 8) may be used. The reference pixel values ​​to which the filter has been applied may be used when applying the filter to other reference pixel values. Furthermore, when applying a filter to reference pixel values, the filter may be applied to all reference pixel values, or may be applied to only some reference pixel values.

[0061] In step S203, the encoder performs intra prediction based on filtered or unfiltered reference pixel values.

[0062] In step S204, the encoder determines whether to apply a filter to a prediction value for each prediction mode predicted by performing intra prediction for encoding the current block. Here, each prediction mode may be one of nine prediction modes, such as a 4x4 luma prediction mode. When determining whether to apply a filter to a prediction value for each prediction mode, the encoder may use information about neighboring blocks or may determine whether to apply a filter using the RDO method.

[0063] When determining whether to apply a filter to a predicted value using information about neighboring blocks, the prediction mode of the current block may be determined based on prediction mode information (MPM) of the neighboring blocks, and whether to apply a filter to the predicted value may be determined according to the determined prediction mode of the current block. For example, assuming that the current block is 'C', the upper block is 'A', and the left block is 'B', if the prediction mode of the current block is the same as the prediction mode of 'A', the prediction mode of 'A' may be determined as the prediction mode of the current block. If the prediction mode of the current block is the same as the prediction mode of 'B', the prediction mode of 'B' may be determined as the prediction mode of the current block. Alternatively, if the prediction mode of the current block is a prediction mode other than the prediction mode of 'A' or the prediction mode of 'B', the corresponding prediction mode may be coded and transmitted. In this case, if the prediction mode of the current block is a specific prediction mode (DC or planar), the difference between the reference pixel value and the predicted value may be relatively large compared to other prediction modes. For example, the difference between the reference pixel value and the predicted value in planar prediction mode may be relatively large compared to other prediction modes. In a planar prediction mode, a predicted value may be calculated by averaging a first predicted value obtained by horizontally linearly interpolating each row and a second predicted value obtained by vertically linearly interpolating each column. When performing horizontal linear interpolation, the right value is the same as the value located in the upper right direction among the reference pixel values ​​(i.e., H in FIG. 3), and when performing vertical linear interpolation, the lower value is the same as the value located in the lower left direction among the reference pixel values ​​(i.e., I in FIG. 3). Because the predicted value is not directly calculated from the reference pixel values, the difference between the reference pixel values ​​and the predicted value may be relatively large. In such cases, a filter may be applied to the predicted value to improve the efficiency of intra prediction. Whether a filter is applied to the predicted value may be determined depending on the prediction mode of the current block determined in this manner. Even when the size of the current block is different from that of an upper block or a block to the left, the prediction mode of the current block may be determined based on the prediction mode of a neighboring block.

[0064] Alternatively, whether to apply a filter to a predicted value may be determined depending on the size of the current block in addition to the prediction mode of the current block. In this case, whether to apply a filter depending on the prediction mode of the current block and the size of the current block may be specified in advance, and whether to apply a filter may be adaptively determined depending on the prediction mode or the size. Alternatively, whether to apply a filter to a predicted value may be determined depending on whether a neighboring block is intra-frame coded or inter-frame coded.

[0065] If it is determined that a filter is to be applied to the predicted value, the encoder applies the filter to the predicted value in step S205, thereby completing the prediction of the current block, and then the encoder calculates a residual signal and performs entropy coding.

[0066] FIG. 7 shows the case where a filter is applied to the predicted value by the proposed method for performing intra prediction using adaptive filters.

[0067] As shown in FIG. 7, when the prediction mode of the current block is a non-directional mode, the difference between the reference pixel value and the predicted value may be relatively large compared to other prediction modes. Therefore, a filter may be applied only to the predicted values ​​of pixels adjacent to the boundary with the surrounding reconstructed reference pixel values. For example, in FIG. 3, filtering may be performed on predicted values ​​corresponding to a1 to a8 and b1, c1, d1, e1, f1, g1, and h1, which are pixels in one row located at the boundary. Alternatively, filtering may be performed on predicted values ​​corresponding to a1 to a8, b1 to b8, c1 to c2, d1 to d2, e1 to e2, f1 to f2, g1 to g2, and h1 to h2, which are pixels in two rows located at the boundary. The filter applied may be a commonly used filter. For example, a 3-tap filter or a 2-tap filter in Equation 1 may be used. When a 2-tap filter is used, various filter coefficients such as (1 / 8, 7 / 8), (2 / 8, 6 / 8), (3 / 8, 5 / 8), etc. Alternatively, either a 2-tap filter or a 3-tap filter can be selected and used depending on the position of the pixel.

[0068] In a similar manner, when the prediction mode of the current block is a prediction mode using reference pixel values ​​corresponding to A to P, such as mode 0, mode 3, or mode 7, the filter may be applied to predicted values ​​corresponding to a1 to a8, which have a relatively large difference between the reference pixel values ​​and the predicted values. Also, when the prediction mode of the current block is a prediction mode using reference pixel values ​​corresponding to Q to X, such as mode 1 or mode 8, the filter may be applied to predicted values ​​corresponding to a1, b1, c1, d1, e1, f1, g1, and h1, which have a relatively large difference between the reference pixel values ​​and the predicted values.

[0069] Equation 2 is an example of an equation representing a filter to be applied to a predicted value when a 2-tap filter or a 3-tap filter is selected and used depending on the pixel position.

[0070] <Number 2> f[a1]=(2×A+4×a1+2×Q) / 8 f[b1]=(2×B+6×b1) / 8 f[c1]=(2×C+6×c1) / 8 ... f[a2]=(2×R+6×a2) / 8 f[a3]=(2×S+6×a3) / 8 ...

[0071] In Equation 2, f[a1] is a value obtained by applying a filter to the predicted value a1, and A and Q are reference pixel values. Referring to Equation 2, it can be seen that a 3-tap filter is applied to the predicted value of the pixel located at a1, and a 2-tap filter is applied to the predicted values ​​of the remaining pixels.

[0072] Equation 3 is yet another example of an equation representing a filter applied to a predicted value when the filter is applied to the predicted value by the proposed method for performing intra prediction using an adaptive filter.

[0073] <Number 3> 1. Vertical low-pass filter v[a1]=(A+2×a1+a2) / 4 v[a2]=(v[a1]+2×a2+a3) / 4 ... v[a8]=(v[a7]+3×a8) / 4 v[b1]=(B+2×b1+b2) / 4 ... 2.Horizontal low-pass filter h[a1]=(Q+2×v[a1]+v[b1]) / 4 h[b1]=(h[a1]+2×v[b1]+v[c1]) / 4 ... h[h1]=(h[g1]+3×v[h1]) / 4 h[a2]=(R+2×v[a2]+v[b2]) / 4 ...

[0074] The filter of Equation 3 can be used when applying an adaptive filter based on a method using information of neighboring blocks for each prediction mode or an RDO method. Referring to Equation 3, a low-pass filter with filter coefficients (1,2,1) is sequentially applied in two directions, vertical and horizontal. First, a filter is applied in the vertical direction, and then a filter is applied in the horizontal direction based on the filtered value. The filtered predicted value can be used when applying a filter to another predicted value.

[0075] On the other hand, when the RDO method is applied, the intra prediction execution method described in FIG. 6 can be repeatedly executed.

[0076] FIG. 8 is a block diagram of an encoder and decoder in which embodiments of the present invention may be implemented.

[0077] The encoder 800 includes a processor 810 and a memory 820. The processor 810 implements the proposed functions, processes, and / or methods. The processor 810 is configured to determine whether to apply a first filter to reference pixel values ​​based on information about neighboring blocks of a current block, and if it is determined to apply the first filter, apply the first filter to the reference pixel values, perform intra prediction on the current block based on the reference pixel values, determine whether to apply a second filter to predicted values ​​for each prediction mode of the current block predicted by the intra prediction based on information about the neighboring blocks, and if it is determined to apply the second filter, apply the second filter to the predicted values ​​for each prediction mode of the current block. The memory 829 is connected to the processor 810 and stores various information for driving the processor 810.

[0078] The decoder 900 includes a processor 910 and a memory 920. The processor 910 implements the proposed functions, processes, and / or methods. The processor 910 is configured to determine whether to apply a first filter to reference pixel values ​​based on information about neighboring blocks of a current block, apply the first filter to the reference pixel values ​​if it is determined to apply the first filter, perform intra prediction on the current block based on the reference pixel values, determine whether to apply a second filter to prediction values ​​for each prediction mode of the current block predicted by the intra prediction based on information about the neighboring blocks, and apply the second filter to the prediction values ​​for each prediction mode of the current block if it is determined to apply the second filter. The memory 920 is connected to the processor 910 and stores various information for driving the processor 910.

[0079] The processor 810, 910 may comprise an application-specific integrated circuit (ASIC), other chipset, logic circuit, and / or data processing device. The memory 820, 920 may comprise read-only memory (ROM), random access memory (RAM), flash memory, a memory card, a storage medium, and / or other storage medium. When an embodiment is implemented in software, the techniques described above may be implemented with modules (processes, functions, etc.) that perform the functions described above. The modules may be stored in the memory 820, 920 and executed by the processor 810, 910. The memory 820, 920 may be internal or external to the processor 810, 910 and may be coupled to the processor 810, 910 by various well-known means.

[0080] In the exemplary systems described above, methods and the like are described based on flowcharts as a series of steps or blocks, but the present invention is not limited to the order of steps and the like, and some steps may occur in a different order or simultaneously with steps different from those described above. Furthermore, those skilled in the art will understand that the steps and the like shown in the flowcharts are not exclusive, and other steps may be included, or one or more steps in the flowcharts may be deleted without affecting the scope of the present invention.

[0081] The above-described embodiments include examples of various aspects. It is not possible to describe all possible combinations for expressing the various aspects, but a person skilled in the art will recognize that other combinations are possible. Therefore, it can be said that the present invention includes all other alternatives, modifications, and variations that fall within the scope of the following claims.

Claims

1. determining whether to apply a first filter to reference pixel values ​​of the current block based on at least one of an intra prediction mode of the current block and a size of the current block; performing intra prediction of the current block using the reference pixel values ​​of the current block and the intra prediction mode, thereby generating a predicted value of the current block; determining whether to apply a second filter to the predicted value of the current block based on at least one of an intra prediction mode of the current block and a size of the current block, thereby generating a filtered predicted value; Equipped with A video decoding method, in which, when the intra prediction mode of the current block is a horizontal mode, the filtered prediction value is generated by applying the second filter to the topmost pixel of the current block among the predicted pixels of the current block that are adjacent to the reference pixel value.

2. 2. The video decoding method of claim 1, wherein, when the intra prediction mode of the current block is the horizontal mode, the second filter is applied using a left reference pixel value, a top reference pixel value, and a top left corner reference pixel value, the left reference pixel value corresponding to the left side of the leftmost pixel on the top side of the current block, and the top reference pixel value corresponding to the top side of the topmost pixel of the current block.

3. encoding information regarding whether a first filter is applied to reference pixel values ​​of a current block and whether a second filter is applied to a predicted value of the current block; The information relates to at least one of an intra prediction mode of the current block and a size of the current block, the predicted value is generated by performing intra prediction of the current block using the reference pixel value of the current block and the intra prediction mode; A video encoding method, in which, when the intra prediction mode of the current block is a horizontal mode, the filtered prediction value is generated by applying the second filter to the topmost pixel of the current block among the prediction pixels of the current block that are adjacent to the reference pixel value.

4. 1. A method for transmitting a bitstream generated by a video encoding method, comprising: The video encoding method includes: encoding information regarding whether a first filter is applied to reference pixel values ​​of a current block and whether a second filter is applied to a predicted value of the current block; The information relates to at least one of an intra prediction mode of the current block and a size of the current block, the predicted value is generated by performing intra prediction of the current block using the reference pixel value of the current block and the intra prediction mode; A method in which, when the intra prediction mode of the current block is a horizontal mode, the filtered prediction value is generated by applying the second filter to the topmost pixel of the current block among the predicted pixels of the current block adjacent to the reference pixel value.

Citation Information

Patent Citations

  • Apparatus and method for intra-spatial prediction of image data and encoding apparatus and method using same, and apparatus and method for compensation for intra-spatial prediction of image data and decoding apparatus, and method using same

    JP2007288785A

  • Moving image encoding apparatus, moving image decoding apparatus, moving image encoding method and moving image decoding method

    JP2009284298A

  • Method and apparatus for encoding video, and method and apparatus for decoding video

    WO2011021839A2

  • Method for decoding image in intra prediction mode

    WO2012134085A2