Video decoding method
Patent Information
- Application Number
- CN202611266798.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2017-09-29
- Filing Date
- 2017-10-12
- Publication Date
- 2026-10-27
AI Technical Summary
此时,所利用的整数位置参考像素以及所适用的插值方式将对原始像素值及其预测值之间的误差造成影响
[0014]适用本发明之一实施例的影像解码方法及装置,能够在选择多个参考像素行中的至少一个参考像素行之后基于所述所选择的至少一个参考像素行中包含的至少一个像素值推导出所述当前区块内的一个像素的预测值。
Smart Images

Figure CN122994488A_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application filed on October 12, 2017, with application number 202410026775.X and invention title "Image Encoding / Decoding Method and Bit Stream Transmission Method". Technical Field
[0002] This invention relates to an image signal encoding / decoding method and apparatus, and more particularly to an image encoding / decoding apparatus and method utilizing improved intra-frame prediction. Background Technology
[0003] In recent years, the demand for multimedia data such as video on the Internet has been increasing dramatically. However, the current rate of development of channel bandwidth is insufficient to meet the rapidly increasing volume of multimedia data. To address this issue, international standardization organizations, namely the Video Coding Expert Group (VCEG) of the International Telecommunication Union Telecommunication Standardization Sector (ITU-T) and the Moving Picture Expert Group (MPEG) of the International Organization for Standardization / International Electrotechnical Commission (ISO / IEC), are working tirelessly through collaborative research to develop more efficient video compression standards.
[0004] Video compression generally consists of intra-frame prediction, inter-frame prediction, transform, quantization, entropy coding, and in-loop filtering. Among them, intra-frame prediction refers to the technique of generating a predicted block for the current block using the reconstructed pixels existing around the current block.
[0005] Traditional intra-frame prediction generates fractional-position pixels through interpolation using integer-position reference pixels, and then uses these fractional-position pixels to generate the prediction block. In this case, the integer-position reference pixels used and the applicable interpolation method will affect the error between the original pixel value and the predicted value.
[0006] Furthermore, in existing intra-prediction techniques, a large amount of information related to the prediction mode needs to be encoded in order to inform the image decoding device of the intra-prediction mode applicable to the intra-prediction of the input image among various intra-prediction modes. Summary of the Invention
[0007] The main objective of this invention is to improve the efficiency of intra-frame prediction by using multiple reference pixel rows to perform intra-frame prediction during image encoding / decoding.
[0008] The main objective of this invention is to improve the efficiency of intra-frame prediction by deriving intra-frame prediction blocks using an interpolation method selected from a variety of interpolation methods during the image encoding / decoding process.
[0009] The main objective of this invention is to provide a filtering method that can reduce the discontinuity between the intra-prediction block and the surrounding area when performing intra-prediction using multiple reference pixel rows during image encoding / decoding.
[0010] The main objective of this invention is to improve the efficiency of intra-frame prediction by deriving the intra-frame prediction mode of the image to be encoded or decoded from the reconstructed pixel region during the image encoding / decoding process.
[0011] An image decoding method applicable to one embodiment of the present invention may include the following steps: deriving an intra-prediction mode of the current block; generating a prediction block of the current block based on at least one of a reference pixel and the derived intra-prediction mode; generating a residual block of the current block through a transformation step; and generating a reconstructed block of the current block using the prediction block and the residual block.
[0012] An image decoding method applicable to one embodiment of the present invention may further include the following steps: decoding index information indicating which interpolation method among a plurality of available interpolation methods is used for the current block; and deriving the interpolation method for the current block based on the index information, wherein the step of generating a predicted block of the current block may utilize the interpolation method.
[0013] In an image decoding method according to one embodiment of the present invention, when the intra-frame prediction mode of the current block is a preset intra-frame mode, the first pixel in the prediction block is filtered based on a first reference pixel and a second reference pixel, wherein the first reference pixel is used to predict the first pixel, and the second reference pixel is included in the same reference pixel row as a reference pixel row including the first reference pixel.
[0014] An image decoding method and apparatus according to one embodiment of the present invention can derive a predicted value of a pixel in the current block based on at least one pixel value contained in the selected at least one reference pixel row after selecting at least one reference pixel row from a plurality of reference pixel rows.
[0015] An image decoding method and apparatus according to one embodiment of the present invention can select at least one reference pixel row from a plurality of reference pixel rows based on the reference pixel row index information after obtaining reference pixel row index information from an input bitstream.
[0016] An image decoding method and apparatus according to one embodiment of the present invention can select at least one reference pixel row for each pixel in the current block based on the position of each pixel in the current block.
[0017] An image decoding method and apparatus according to one embodiment of the present invention can obtain the predicted value by performing interpolation using the selected interpolation method and at least one pixel contained in the selected at least one reference pixel row after selecting one of a plurality of interpolation methods. The selected interpolation method can be selected based on index information used to indicate one of the plurality of interpolation methods.
[0018] An image decoding method and apparatus according to one embodiment of the present invention can filter the prediction block after obtaining the prediction block of the current block by deriving the prediction values of all pixels of the current block.
[0019] An image decoding method and apparatus according to one embodiment of the present invention can filter a specific region of the current block according to the size of the current block or the intra-frame prediction mode of the current block.
[0020] An image encoding method and apparatus according to one embodiment of the present invention can obtain a predicted value of a pixel in the current block based on at least one pixel value contained in the selected at least one reference pixel row after selecting at least one reference pixel row from a plurality of reference pixel rows.
[0021] An image encoding method and apparatus according to one embodiment of the present invention can include the encoded reference pixel row index information into a bitstream after encoding the reference pixel row index information used to indicate the selected at least one reference pixel row.
[0022] An image encoding method and apparatus according to one embodiment of the present invention can select at least one reference pixel row for each pixel in the current block based on the position of each pixel in the current block.
[0023] An image coding method and apparatus according to one embodiment of the present invention can select at least one reference pixel row for each pixel in the current block based on the intra-prediction mode of the current block.
[0024] An image encoding method and apparatus according to one embodiment of the present invention can obtain the predicted value by performing interpolation using the selected interpolation method and at least one pixel contained in the selected at least one reference pixel row after selecting one of a variety of interpolation methods.
[0025] An image encoding method and apparatus according to one embodiment of the present invention can be included in a bitstream after encoding index information used to indicate one of the multiple interpolation methods.
[0026] An image encoding method and apparatus according to one embodiment of the present invention can filter the prediction block after obtaining the prediction block of the current block by deriving the prediction values of all pixels of the current block.
[0027] An image coding method and apparatus according to one embodiment of the present invention can filter a specific region of the current block according to the size of the current block or the intra-frame prediction mode of the current block.
[0028] An image encoding / decoding method and apparatus according to one embodiment of the present invention can derive the intra-prediction mode of the reconstructed pixel region based on a reference pixel region of at least one reconstructed pixel region, then derive the intra-prediction mode of the current block based on the derived intra-prediction mode of the reconstructed pixel region, then obtain the intra-prediction block of the current block using the derived intra-prediction mode, and finally reconstruct the current block by performing an addition operation between the obtained intra-prediction block and the residual block of the current block.
[0029] An image decoding method and apparatus according to one embodiment of the present invention can select whether to perform intra-prediction mode derivation on reconstructed pixel regions based on the information of the derivation method for indicating intra-prediction mode after obtaining information from the input bitstream for the derivation method for indicating intra-prediction mode.
[0030] An image decoding method and apparatus according to one embodiment of the present invention can deduce the intra-prediction mode of the current block based on the available intra-prediction mode information after obtaining available intra-prediction mode information from the input bitstream, which is used to specifically specify the number of available intra-prediction modes or the list of available intra-prediction modes.
[0031] An image coding method and apparatus according to one embodiment of the present invention can encode information of a derivation method for an intra-prediction mode indicating the current block and include it in a bitstream. The image coding apparatus receiving the bitstream input can selectively perform the step of deriving the intra-prediction mode of the reconstructed pixel region based on the information of the derivation method for an intra-prediction mode indicating the current block.
[0032] In this invention, the compression efficiency and image quality of the played-out image can be improved by applying a more efficient intra-frame prediction technique. Furthermore, in this invention, the image quality of the played-out image can be improved by applying a filtering method that reduces discontinuities between the intra-frame prediction block and surrounding areas. Attached Figure Description
[0033] Figure 1 This is a block diagram illustrating an image encoding apparatus to which one embodiment of the present invention is applied.
[0034] Figure 2 This is a schematic diagram used to illustrate an example of intra-frame prediction mode.
[0035] Figure 3 It is a schematic diagram used to illustrate a planar model.
[0036] Figure 4 This is a schematic diagram used to illustrate DC mode.
[0037] Figure 5 This is a schematic diagram used to illustrate an example of generating a prediction block.
[0038] Figure 6 This is a block diagram illustrating an image decoding apparatus to which one embodiment of the present invention is applied.
[0039] Figure 7a as well as Figure 7b This is a schematic diagram used to illustrate a method for deriving intra-frame predicted pixels using interpolation.
[0040] Figure 8 This is a schematic diagram used to illustrate the implicit method of selecting interpolation methods or interpolation coefficients.
[0041] Figure 9 It is a sequence diagram used to illustrate the process of selecting an intra-prediction mode through an image coding device.
[0042] Figure 10 It is a sequence diagram used to illustrate the process of selecting one of several interpolation methods through an image encoding device.
[0043] Figure 11 It is a sequence diagram used to explain the process of encoding interpolation index information through an image encoding device.
[0044] Figure 12 It is a sequence diagram used to explain the process of decoding interpolation index information through an image decoding device.
[0045] Figure 13This is a schematic diagram illustrating the derivation of intra-frame predicted pixels using multiple reference pixel rows applicable to one embodiment of the present invention.
[0046] Figure 14 This is a flowchart illustrating the derivation process of intra-frame predicted pixel values applicable to one embodiment of the present invention.
[0047] Figure 15 It is a flowchart illustrating the process of adaptively determining the reference pixel rows used in intra-frame prediction within each prediction block.
[0048] Figure 16 This is a flowchart illustrating the process of encoding reference pixel row index information using an image encoding device.
[0049] Figure 17 This is a flowchart illustrating the process of decoding reference pixel row index information using an image decoding device.
[0050] Figure 18 as well as Figure 19 This is a schematic diagram illustrating a method for determining a reference pixel row without transmitting a reference pixel row index.
[0051] Figure 20 This is a schematic diagram used to illustrate the smoothing between the predicted block and the reference pixel row.
[0052] Figure 21 The case where a common reference pixel row is applied to all transform blocks within the current block is illustrated.
[0053] Figures 22a to 22d The following illustrations illustrate the application of selecting reference pixel rows in each transform block to intra-frame prediction.
[0054] Figure 23 This is a schematic diagram for illustrating the DIMD to which the first embodiment of the present invention is applied.
[0055] Figure 24 This is a schematic diagram for illustrating the DIMD to which the third embodiment of the present invention is applied.
[0056] Figure 25 This is a sequence diagram for illustrating the DIMD to which the present invention is applied.
[0057] Figure 26 This is a sequence diagram for illustrating a method of encoding intra-frame prediction modes when encoding images using DIMD to which the present invention applies.
[0058] Figure 27This is a sequence diagram illustrating a method for decoding an intra-prediction mode when decoding an image using a DIMD to which the present invention applies.
[0059] Figure 28 This is a schematic diagram used to illustrate the seventh embodiment to which the present invention is applied.
[0060] Figure 29 This is a sequence diagram illustrating the process of encoding intra-prediction modes under the application of the seventh embodiment of the present invention.
[0061] Figure 30 This is a sequence diagram illustrating the process of decoding an intra-prediction mode under the application of the seventh embodiment of the present invention.
[0062] Figure 31a as well as Figure 31b This is a schematic diagram used to illustrate a variation of the DIMD used to transmit template indexes.
[0063] Figure 32 This is a sequence diagram illustrating the encoding method for intra-prediction modes in DIMD using template indexing.
[0064] Figure 33 This is a sequence diagram illustrating the decoding method for intra-prediction modes in DIMD using template indexing.
[0065] Figure 34 This is a schematic diagram used to illustrate an example of setting an intra-prediction mode derived using a template as a candidate MPM.
[0066] Figure 35 This is a schematic diagram used to illustrate the candidate MPM settings applicable to one embodiment of the present invention. Detailed Implementation
[0067] This invention is capable of various modifications and has many different embodiments. Specific embodiments will be illustrated and described in detail below with reference to the accompanying drawings. However, the following description is not intended to limit the invention to specific implementations, but should be understood to include all modifications, equivalents, and substitutions within the scope of the invention's concept and technology. Similar reference numerals are used for similar constituent elements in the description of the various drawings.
[0068] In describing different constituent elements, terms such as "first" and "second" may be used, but the constituent elements are not limited by these terms. These terms are merely used to distinguish one constituent element from others. For example, without departing from the scope of the claims of this invention, a first constituent element may also be named a second constituent element, and similarly, a second constituent element may also be named a first constituent element. The term "and / or" includes a combination of multiple related descriptions or one of multiple related descriptions.
[0069] When a constituent element is described as being "connected" or "in contact" with other constituent elements, it should be understood that it can not only be directly connected or in contact with the aforementioned other constituent elements, but also that other constituent elements can exist between the two. Conversely, when a constituent element is described as being "directly connected" or "directly in contact" with other constituent elements, it should be understood that no other constituent elements exist between the two.
[0070] The terminology used in this application is for illustrative purposes only and is not intended to limit the invention. Singular statements also have plural meanings unless the context clearly indicates otherwise. In this invention, terms such as "~comprising~" or "~consisting of~" are merely to indicate the presence of features, numbers, steps, actions, constituent elements, components, or combinations thereof described in the specification, and should not be construed as excluding the possibility of one or more other features, numbers, steps, actions, constituent elements, components, or combinations thereof being present or added.
[0071] The embodiments to which the present invention applies will now be described in detail with reference to the accompanying drawings. In the following description, the same reference numerals will be used for the same constituent elements in the drawings, and repeated descriptions of the same constituent elements will be omitted.
[0072] Figure 1 This is a block diagram illustrating an image encoding apparatus to which one embodiment of the present invention is applied.
[0073] See Figure 1 The image encoding apparatus 100 may include an image segmentation unit 101, an intra-frame prediction unit 102, an inter-frame prediction unit 103, a subtraction unit 104, a transform unit 105, a quantization unit 106, an entropy encoding unit 107, an inverse quantization unit 108, an inverse transform unit 109, an addition unit 110, a filtering unit 111, and a memory 112.
[0074] exist Figure 1The various components are illustrated separately to show the different special functions of the image encoding apparatus, but this does not mean that each component is composed of separate hardware or software units. That is, although the various components are listed and described for ease of explanation, it is possible to combine at least two components into one component, or to divide one component into multiple components and make them perform corresponding functions. The embodiments in which the various components are integrated and the embodiments in which they are separated, as described above, are included within the scope of the claims of this invention without departing from the essence of this invention.
[0075] Furthermore, some constituent elements may not be essential for performing the essential functions of this invention, but are merely optional elements used to improve performance. This invention can include only the constituent parts necessary for realizing the essence of the invention, excluding those merely used to improve performance, and structures that include only the essential constituent elements, excluding the optional elements used to improve performance, are also included within the scope of the claims of this invention.
[0076] The image segmentation unit 101 can segment an input image into at least one block. The input image can be of various shapes and sizes, such as a picture, slice, tile, or segment. A block can refer to a coding unit (CU), a prediction unit (PU), or a transform unit (TU). The segmentation can be performed based on at least one of a quadtree or a binary tree. A quadtree divides a parent block into four child blocks, each half the width and height of the parent block. A binary tree divides a parent block into two child blocks, each half the width or height of the parent block. By segmenting based on a binary tree, blocks can be segmented not only into squares but also into non-square shapes.
[0077] In the embodiments where the present invention is applied, the encoding unit can be used not only as the meaning of encoding execution unit, but also as the meaning of decoding execution unit.
[0078] Prediction units 102 and 103 can include an inter-frame prediction unit 103 for performing inter-frame prediction and an intra-frame prediction unit 102 for performing intra-frame prediction. After deciding whether to perform inter-frame or intra-frame prediction on a prediction unit, specific information (e.g., intra-frame prediction mode, motion vector, reference image, etc.) can be determined based on the different prediction methods. In this case, the processing unit performing the prediction can be different from the processing unit that determines the prediction method and specific content. For example, the prediction method and prediction mode can be determined at the prediction unit level, while the prediction can be performed at the transformation unit level.
[0079] The residual value (residual block) between the generated prediction block and the original block can be input to the transform unit 105. Furthermore, information used during prediction, such as prediction mode information and motion vector information, can be encoded together with the residual value by the entropy coding unit 107 and then transmitted to the decoder. When using a specific coding mode, it is also possible to directly encode the original block and transmit it to the decoding unit without generating the prediction block through the prediction units 102 and 103.
[0080] The intra-prediction unit 102 can generate one or more prediction blocks using reference pixels according to the determined intra-prediction mode after determining the intra-prediction mode of the current block. When the prediction mode of the surrounding blocks of the current block performing intra-prediction is inter-prediction, the reference pixels contained in the surrounding blocks to which inter-prediction has been applied can be replaced with reference pixels in other surrounding blocks to which intra-prediction has been applied. That is, when reference pixels are unavailable, they can be used after replacing the unavailable reference pixel information with at least one of the available reference pixels.
[0081] In intra-frame prediction, the prediction mode can include a directional prediction mode that uses reference pixel information based on the prediction direction, and a non-directional mode that does not use directional information when performing prediction. The mode used to predict luminance information can be different from the mode used to predict chromatic difference information. When predicting chromatic difference information, the intra-frame prediction mode information used in the process of predicting luminance information or the predicted luminance signal information can be used.
[0082] The intra-prediction unit 102 may include an AIS (Adaptive Intra Smoothing) filter, a reference pixel interpolation unit, and a DC filter. The AIS filter is used to filter the reference pixels of the current block, and its application can adaptively determine whether to apply the filter based on the prediction mode of the current prediction unit. When the prediction mode of the current block is a mode that does not perform AIS filtering, the AIS filter may not be applied.
[0083] When the intra-prediction mode of the prediction unit is a prediction unit that performs intra-prediction based on pixel values interpolated from reference pixels, the reference pixel interpolation unit of the intra-prediction unit 102 can generate reference pixels at fractional unit positions by interpolating the reference pixels. When the prediction mode of the current prediction unit is a prediction mode that generates prediction blocks without interpolating reference pixels, interpolation of reference pixels is not required. When the prediction mode of the current block is DC mode, the DC filter can generate prediction blocks by filtering.
[0084] It can generate residual blocks that contain residual information, which is the difference between the prediction blocks generated in prediction units 102 and 103 and the original blocks of the prediction blocks. The generated residual blocks can be input into transformation unit 105 for transformation.
[0085] Figure 2 This is a schematic diagram used to illustrate an example of intra-frame prediction mode. Figure 2 The intra-prediction modes shown include a total of 35 modes. Mode 0 refers to Planar mode, mode 1 refers to DC mode, and modes 2 through 34 refer to Angular mode.
[0086] Figure 3 This is a schematic diagram used to illustrate the planar mode. To generate the predicted value of the first pixel P1 in the current block, linear interpolation is performed between the reconstructed pixel at the same position on the Y-axis and the reconstructed pixel T located at the upper right of the current block, as shown in the diagram. Similarly, to generate the predicted value of the second pixel P2, linear interpolation is performed between the reconstructed pixel at the same position on the X-axis and the reconstructed pixel L located at the lower left of the current block, as shown in the diagram. The average value of the two predicted pixels P1 and P2 becomes the final predicted pixel. In planar mode, the predicted block of the current block is generated by deriving the predicted pixels as described above.
[0087] Figure 4 This is a schematic diagram used to illustrate the DC mode. After calculating the average value of the reconstructed pixels surrounding the current block, this average value is used as the predicted value for all pixels within the current block.
[0088] Figure 5 It is used for utilization Figure 2 This diagram illustrates an example of generating prediction blocks using Mode 10 (horizontal mode) and Mode 26 (vertical mode). When using Mode 10, the prediction block for the current block is generated by copying each reference pixel adjacent to the left side of the current block to the right. Similarly, when using Mode 26, the prediction block for the current block is generated by copying each reference pixel adjacent to the top side of the current block to the bottom.
[0089] Revisit Figure 1The inter-frame prediction unit 103 can predict prediction units based on information from at least one of the previous or next images of the current image, and in some cases, it can also predict prediction units based on information from a portion of the encoded region within the current image. The inter-frame prediction unit 103 may include a reference image interpolation unit, a motion prediction unit, and a motion compensation unit.
[0090] The reference image interpolation unit can receive reference image information from memory 112 and generate pixel information in integer pixel units or smaller from the reference image. For luminance pixels, in order to generate pixel information in integer pixel units or smaller, a DCT-based 8-tap interpolation filter with varying filter coefficients can be used. For chrominance signals, in order to generate pixel information in integer pixel units or smaller, a DCT-based 4-tap interpolation filter with varying filter coefficients can be used.
[0091] The motion prediction unit can perform motion prediction based on a reference image interpolated by the reference image interpolation unit. Various methods can be used to calculate motion vectors, such as FBMA (Full search-based Block Matching Algorithm), TSS (Three Step Search), and NTS (New Three-Step Search Algorithm). Motion vectors can be calculated using motion vector values in 1 / 2 or 1 / 4 pixel units based on the interpolated pixels. The motion prediction unit can predict the current prediction unit using different motion prediction methods. Various motion prediction methods can be used, such as skipping, merging, and AMVP (Advanced Motion Vector Prediction).
[0092] The subtraction unit 104 generates a residual block of the current block by performing a subtraction operation between the current block to be encoded and the prediction block generated in the intra-frame prediction unit 102 or the inter-frame prediction unit 103.
[0093] The transform unit 105 can transform the residual block containing residual data using transform methods such as DCT, DST, and KLT (Karhunen-Loeve Transform). In this case, the transform method can be determined based on the intra-prediction mode of the prediction unit used when generating the residual block. For example, DCT can be used in the horizontal direction and DST in the vertical direction, depending on the intra-prediction mode.
[0094] The quantization unit 106 is capable of quantizing the values that have been transformed into frequency regions in the transformation unit 105. The quantization coefficients can vary depending on the importance of the block or image. The values calculated in the quantization unit 106 can be provided to the inverse quantization unit 108 and the entropy encoding unit 107.
[0095] The aforementioned transformation unit 105 and / or quantization unit 106 can be selectively included in the image encoding apparatus 100. That is, the image encoding apparatus 100 can perform at least one of transformation or quantization on the residual data of the residual block, or it can simultaneously skip transformation and quantization while encoding the residual block. Even if the image encoding apparatus 100 does not perform either transformation or quantization, or neither transformation nor quantization is performed, the block input to the entropy encoding unit 107 is generally referred to as a transformed block. The entropy encoding unit 107 performs entropy encoding on the input data. When performing entropy encoding, various encoding methods can be used, such as Exponential Golomb code, CAVLC (Context-Adaptive Variable Length Coding), and CABAC (Context-Adaptive Binary Arithmetic Coding).
[0096] The entropy coding unit 107 can encode various types of information from the prediction units 102 and 103, such as residual coefficient information of the coding unit, block type information, prediction mode information, segmentation unit information, prediction unit information, transmission unit information, motion vector information, reference frame information, block interpolation information, and filtering information. In the entropy coding unit 107, the coefficients of the transform block can be encoded using various types of flags, such as those indicating non-zero coefficients, coefficients with absolute values greater than 1 or 2, and the sign of the coefficients, based on partial block units within the transform block. For coefficients that cannot be encoded solely based on these flags, they can be encoded based on the absolute value of the difference between the coefficient encoded using the flags and the coefficients of the actual transform block. In the inverse quantization unit 108 and the inverse transform unit 109, the values quantized in the quantization unit 106 are inverse quantized, and the values transformed in the transform unit 105 are inversely transformed. A reconstructed block can be generated by merging the residual values generated in the inverse quantization unit 108 and the inverse transform unit 109 with the prediction units predicted by the motion estimation unit, motion compensation unit, and intra-frame prediction unit 102 included in the prediction units 102 and 103. The addition unit 110 can generate a reconstructed block by performing an addition operation on the prediction block generated in the prediction units 102 and 103 and the residual block generated by the inverse transform unit 109.
[0097] The filtering unit 111 may include at least one of a deblocking filter, an offset correction unit, and an ALF (Adaptive Loop Filter).
[0098] Deblocking filters eliminate block distortion in reconstructed images caused by boundaries between blocks. To determine whether deblocking is necessary, the decision can be based on the pixels contained in several columns or rows of the block. When applying a deblocking filter to a block, a strong or weak filter can be used depending on the required deblocking intensity. Furthermore, during the application of a deblocking filter, horizontal and vertical filtering can be performed in parallel.
[0099] The offset correction unit can perform offset correction between the deblocked image and the original image on a pixel-by-pixel basis. To perform offset correction on a specific image, methods can be used such as dividing the pixels contained in the image into a certain number of regions, determining the regions where offset needs to be performed, and applying the offset to the corresponding regions, or applying the offset while taking into account the edge information of each pixel.
[0100] ALF (Adaptive Loop Filtering) can be performed based on a comparison between the filtered reconstructed image and the original image. It can also determine which filter to apply to the appropriate group after dividing the pixels in the image into specific groups, and perform different filtering on different groups. Information related to whether ALF is applied can be transmitted in coding units (CUs), and the shape and filtering coefficients of the ALF filters applied in each block may differ. Furthermore, it is possible to apply ALF filters of the same shape (fixed shape) regardless of the characteristics of the target block.
[0101] The memory 112 can store the reconstructed blocks or images calculated by the filtering unit 111, and the stored reconstructed blocks or images can be provided to the prediction units 102 and 103 when performing inter-frame prediction.
[0102] Figure 6 This is a block diagram illustrating an image decoding apparatus 600 to which one embodiment of the present invention is applied.
[0103] See Figure 6 The image decoding device 600 may include an entropy decoding unit 601, an inverse quantization unit 602, an inverse transform unit 603, an addition unit 604, a filtering unit 605, a memory 606, and prediction units 607 and 608.
[0104] When the image bitstream generated by the image encoding device 100 is input to the image decoding device 600, the input bitstream can be decoded in the reverse order of the process performed by the image encoding device 100.
[0105] The entropy decoding unit 601 can perform entropy decoding according to the reverse steps of entropy encoding performed in the entropy encoding unit 107 of the image encoding apparatus 100. For example, it can be compatible with various methods such as Exponential Golomb, CAVLC (Context-Adaptive Variable Length Coding), and CABAC (Context-Adaptive Binary Arithmetic Coding), corresponding to the methods performed in the image encoder. In the entropy decoding unit 601, the coefficients of the transform block can be decoded using various types of flags, such as those indicating non-zero coefficients, coefficients with absolute values greater than 1 or 2, and the sign of the coefficients, in partial block units within the transform block. For coefficients that cannot be represented solely by the aforementioned flags, decoding can be performed based on the sum of the coefficients represented by the flags and the signaling coefficients.
[0106] In the entropy decoding unit 601, information related to intra-frame prediction and inter-frame prediction performed in the encoder can be decoded. The inverse quantization unit 602 generates a transform block by performing inverse quantization on the quantized transform block. According to... Figure 1 The inverse quantization unit 108 in the middle works in essentially the same way.
[0107] The inverse transform unit 603 generates a residual block by performing an inverse transform on the transform block. At this time, the transform method can be determined based on information related to the prediction method (inter-frame or intra-frame prediction), the block size and / or shape, and the intra-frame prediction mode. Figure 1 The inverse transformation unit 109 in the middle works in essentially the same way.
[0108] The addition unit 604 generates a reconstruction block by performing an addition operation on the prediction block generated in the intra-frame prediction unit 607 or the inter-frame prediction unit 608 and the residual block generated by the inverse transform unit 603. Figure 1 The addition unit 110 in the middle works in essentially the same way.
[0109] The filter unit 605 is used to reduce various types of noise that appear in the reconstructed blocks.
[0110] The filtering unit 605 may include a deblocking filter, an offset correction unit, and an ALF.
[0111] The image encoding device 100 can receive information on whether a deblocking filter is applied to a corresponding block or image, and if so, whether strong or weak filtering is applied. The image decoding device 600's deblocking filter can perform deblocking filtering on the corresponding block within the image decoding device 600 after receiving the deblocking filter information provided by the image encoding device 100.
[0112] The offset correction unit can perform offset correction on the reconstructed image based on the offset correction type and offset value information applicable to the image during encoding.
[0113] ALF can be applied to the encoding unit based on ALF applicability information and ALF coefficient information provided from the image encoding device 100. The ALF information described above can be included in a specific parameter set. The filtering unit 605 follows the same procedure as... Figure 1 The filtering section 111 in the middle works in essentially the same way.
[0114] The memory 606 is used to store the reconstructed blocks generated by the addition unit 604. According to... Figure 1 The memory 112 in the middle works in essentially the same way.
[0115] Prediction units 607 and 608 can generate prediction blocks based on prediction blocks provided by entropy decoding unit 601 and previously decoded blocks or image information provided by memory 606.
[0116] Prediction units 607 and 608 may include an intra-frame prediction unit 607 and an inter-frame prediction unit 608. Although not shown separately, prediction units 607 and 608 may also include a prediction unit determination unit. The prediction unit determination unit can receive various types of information input from the entropy decoding unit 601, such as prediction unit information, prediction mode information of the intra-frame prediction method, and motion prediction-related information of the inter-frame prediction method, and distinguish prediction units from the current decoding unit, thereby determining whether the prediction unit performs inter-frame prediction or intra-frame prediction. The inter-frame prediction unit 608 can perform inter-frame prediction on the current prediction unit based on information contained in at least one of the previous or next images of the current image containing the current prediction unit, using the information required for inter-frame prediction of the current prediction unit provided by the image coding apparatus 100. Alternatively, it can perform inter-frame prediction based on information of a reconstructed portion of the current image containing the current prediction unit.
[0117] To perform inter-frame prediction, the motion prediction method for the prediction unit contained in the corresponding coding unit can be determined based on the coding unit as a reference, which method is Skip Mode, Merge Mode, or Advanced Motion Vector Prediction Mode (AMVP Mode).
[0118] The intra-frame prediction unit 607 generates prediction blocks using pixels located around the block to be encoded in the current period and pixels that have already been reconstructed.
[0119] The intra-frame prediction unit 607 may include an AIS (Adaptive Intra Smoothing) filter, a reference pixel interpolation unit, and a DC filter. The AIS filter is used to filter the reference pixels of the current block, and its application can adaptively determine whether to apply the filter based on the prediction mode of the current prediction unit. AIS filtering can be performed on the reference pixels of the current block using the prediction mode of the prediction unit provided from the image coding apparatus 100 and the AIS filter information. When the prediction mode of the current block is a mode that does not perform AIS filtering, the AIS filter may not be applied.
[0120] When the prediction mode of the prediction unit is a prediction unit that performs intra-frame prediction based on pixel values interpolated from reference pixels, the reference pixel interpolation unit of the intra-frame prediction unit 607 can generate reference pixels at fractional unit positions by interpolating reference pixels. The generated reference pixels at fractional unit positions can be used as predicted pixels for pixels within the current block. When the prediction mode of the current prediction unit is a prediction mode that generates prediction blocks without interpolating reference pixels, interpolation of reference pixels is not required. When the prediction mode of the current block is DC mode, the DC filter can generate prediction blocks by filtering.
[0121] Intra-frame prediction unit 607 according to and Figure 1 The intra-prediction unit 102 in the middle works in essentially the same way.
[0122] The inter-frame prediction unit 608 generates inter-frame prediction blocks using reference images stored in memory 606 and motion information. The inter-frame prediction unit 608 then generates inter-frame prediction blocks according to... Figure 1 The inter-frame prediction unit 103 in the middle works in essentially the same way.
[0123] This invention relates particularly to intra-frame prediction, and various different embodiments to which this invention is applicable will be described in detail below with reference to the accompanying drawings.
[0124] Interpolation used for intra-frame prediction Figure 7a as well as Figure 7b This is a schematic diagram used to illustrate a method for deriving intra-frame predicted pixels using interpolation. Assuming... Figure 2 The prediction angle of one of the intra-prediction modes shown, namely mode m, is as follows: Figure 7a As shown, when performing intra-frame prediction using mode m, the reference pixel table used for prediction does not exist at integer pixel positions. Therefore, a reference pixel table at fractional pixel positions is generated by interpolating reference pixels A and B, which exist at integer pixel positions on the left and right sides of the reference pixel table. The generated reference pixel X will be used as the predicted pixel for the pixel at position P within the current block.
[0125] Figure 7b This is a diagram used to illustrate the relationship between pixels X, A, and B. See also... Figure 7bLet S1 be the distance between pixel X and A, and S2 be the distance between pixel B and X. Based on the ratio of distances S1 to S2, various interpolation methods can be used to derive pixel X. As the interpolation method used here, various interpolation methods such as linear interpolation, cubic convolution interpolation, and B-spline interpolation can be applied.
[0126] To notify the image encoding device 100 of the applicable interpolation method and the applicable set of interpolation coefficients among the various available interpolation methods, several methods can be employed, as described below. As a first method, the image encoding device 100 transmits index information indicating the applicable interpolation method among the various available interpolation methods to the image decoding device 100. In this case, the image encoding device 100 can also set the index information indicating the interpolation method via a block unit or a higher-level header. Setting via a higher-level header refers to setting it via a header of a unit larger than a block unit, such as a slice segment header, a picture parameter set, or a sequence parameter set. The index information indicating the interpolation method contained in the higher-level header can be transmitted to the image decoding device 600 after being encoded by the image encoding device 100.
[0127] As another method, multiple pre-set interpolation coefficient sets can be stored simultaneously by the image encoding device 100 and the image decoding device 600, and then the interpolation coefficient index information used to indicate the coefficient set selected during encoding can be transmitted to the image decoding device 600 through the block unit or the upper-level header.
[0128] As another method, instead of the image encoding device 100 transmitting the index information for indicating the interpolation method or the interpolation coefficient index information for indicating the set of interpolation coefficients used as described above to the image decoding device 600, the image encoding device 100 and the image decoding device 600 derive the interpolation coefficients implicitly using the same method.
[0129] Specifically, interpolation coefficients can be derived from the reconstructed pixels by both the image encoding unit 100 and the image decoding unit 600 in the same manner. For example, R reference pixels (i.e., the reconstructed pixels) can be magnified or reduced to R×K (K is any real number) times using an interpolation filter. Then, the original R reference pixels are reconstructed using the same interpolation filter through the reverse process. The optimal interpolation filter can be determined based on the degree of difference between the values of the reconstructed R reference pixels and the values of the original reference pixels.
[0130] Figure 8 This is a schematic diagram illustrating another method for implicitly selecting interpolation methods and / or interpolation coefficients for the image encoding device 100 or the image decoding device 600. See also... Figure 8 The 4×4 block containing pixel P corresponds to the current block to be decoded via intra-frame prediction. Multiple rows of reference pixels surrounding the current block, consisting of reconstructed pixels, will be used to determine the interpolation method and even the interpolation coefficients. For example... Figure 8 As shown, each reference pixel row can include a specific number of pixels in a horizontal row and a specific number of pixels in a vertical row. Alternatively, a reference pixel row can also consist of a specific number of pixels in a horizontal row or a specific number of pixels in a vertical row.
[0131] Revisit Figure 8 The pixels in reference pixel row 0 are predicted using the pixels in reference pixel row 1. During this prediction process, the Nth orientation mode, the same as the intra-prediction mode of the current block, is used. For example, because the reference pixel X corresponding to the predicted pixel R in reference pixel row 0 is not a pixel at an integer position, it is possible to predict the pixels in reference pixel row 0 using a method such as... Figure 7a as well as Figure 7b The method shown derives the reference pixel X through interpolation using reference pixels at two integer positions. Specific interpolation methods and coefficients will be used in this case.
[0132] After generating the predicted values of the pixels in reference pixel row 0 as described above, the differences between each predicted value and the original pixel values are calculated, and the differences are summed. The above process is repeated using the interpolation methods and interpolation coefficients available in the image encoding device 100 or the image decoding device 600, and finally the interpolation method and / or interpolation coefficient with the smallest summed value of each difference is selected.
[0133] The interpolation described above can be performed using the reference pixel interpolation units included in the intra-prediction unit 102 of the image encoding device 100 and the intra-prediction unit 607 of the image decoding device 600, respectively.
[0134] Figure 9 This is a sequence diagram used to illustrate the process of selecting the optimal intra-frame prediction mode through the image coding device 100. At this time, it is assumed that the interpolation method has been set through block units or upper-level headers, etc.
[0135] See Figure 9 In step S901, the variable m, used to indicate the intra-prediction mode number, is initialized to 0, and the variable COST_BEST, used to store the optimal cost value, is initialized to MAX_VALUE. Here, MAX_VALUE is the maximum value that can be stored in the variable COST_BEST, a very large value that is unlikely to be obtained during actual cost calculation. In step S901, the variable M is set to the pre-defined total number of intra-prediction modes. In step S901, BEST_INTRA_MODE, used to indicate the optimal intra-prediction mode for the current block, is initialized to 0.
[0136] Next, in step S902, the interpolation positions corresponding to each pixel position of the prediction block are found according to the intra-prediction mode m. After generating interpolation values using a pre-set interpolation method or one of the multiple interpolation methods set in the upper-level header, the prediction block is generated. Next, in step S903, the cost value corresponding to m, COST_m, is calculated using the generated prediction block. COST_m can be calculated using the number of bits required for encoding the intra-prediction mode and the difference between the prediction block and the current block. If in step S904 it is determined that COST_m is less than or equal to COST_BEST, in step S905, m is stored in the variable BEST_INTRA_MODE (used to store the optimized intra-prediction mode), and cost_m is stored in the variable COST_BEST. Then, m is incremented by 1. If COST_m is greater than COST_BEST, in step S906, only m is incremented by 1. Finally, the process ends when m reaches the maximum number of intra-prediction modes; otherwise, it returns to step S902 and repeats the above process. When using a pre-set interpolation method in the image encoding device 100 or image decoding device 600, as shown in Figure 7 and Figure 8 After setting S1 and S2 as shown, a pixel table is generated using a pre-defined interpolation method. For all pixels within a prediction block, the prediction block is generated using the same method. Alternatively, the content of step S902 may change when using multiple interpolation methods.
[0137] Furthermore, it can adaptively apply multiple interpolation methods in each prediction block. At this point, Figure 9 The content of step S902 in the steps shown will be changed.
[0138] Figure 10 This is a sequence diagram used to illustrate the process of selecting one of multiple interpolation methods through the image encoding device 100.
[0139] See Figure 10 The image encoding apparatus 100 initializes the variable i, which indicates the interpolation method index, to 0, and initializes the variable COST_BEST_i, which stores the optimal cost value, to MAX_VALUE. MAX_VALUE is the maximum value that can be stored in the variable COST_BEST_i, a very large value that cannot be obtained during actual cost calculation. The variable i is set to the total number of pre-defined available interpolation methods. In step S1001, the variable BEST_INTERPOLATION, which stores the optimal interpolation method applicable to the current block, is initialized to 0. Next, in step S1002, after generating interpolation values corresponding to each pixel position of the prediction block based on the interpolation method index i, a prediction block is generated. Next, in step S1003, the cost value COST_i corresponding to i is calculated using the generated prediction block. COST_i is calculated using the number of bits required to encode the interpolation method index and the difference between the prediction block and the current block. When it is determined in step S1004 that COST_i is less than or equal to COST_BEST_i, in step S1005, i is stored in the variable BEST_INTERPOLATION (used to store the optimal interpolation method) and cost_i is stored in the variable COST_BEST_i, and then i is incremented by 1. When COST_i is greater than COST_BEST_i, in step S1006, only i is incremented by 1. Finally, the process ends when i reaches the maximum number of available interpolation methods; otherwise, it returns to step S1002 and repeats the above process. When using the method described above, by... Figure 9 In step S903, COST_m is calculated by adding an extra bit to the number of bits encoded for the interpolation mode index.
[0140] Figure 11This is a sequence diagram illustrating the process of encoding interpolation method index information when the image coding device 100 adaptively applies multiple interpolation methods in each prediction block. First, in step S1101, the prediction status of intra-prediction modes in each prediction block is encoded. Next, in step S1102, it is determined whether prediction has been performed. If prediction has been performed, in step S1103, an index indicating which candidate intra-prediction mode was selected from the candidate predictions generated from surrounding blocks is encoded. Otherwise, in step S1104, candidate predictions of intra-prediction modes generated from surrounding blocks are excluded, and the remaining modes are reordered. The currently selected intra-prediction mode is then binary-coded before encoding. Finally, in step S1105, the process ends after encoding the used interpolation method index.
[0141] Figure 12 This is a sequence diagram illustrating the process of decoding interpolation mode index information by the image decoding device 600. First, in step S1201, the prediction status of intra-prediction modes in each prediction block is decoded. Next, in step S1202, it is determined whether prediction was performed. If prediction was performed, in step S1203, the index indicating which candidate intra-prediction mode was selected from the candidate predictions generated from surrounding blocks is decoded. Otherwise, in step S1204, the prediction candidates for intra-prediction modes generated from surrounding blocks are excluded, and then the remaining modes are reordered and the currently selected intra-prediction mode is decoded. Finally, in step S1205, the process ends after decoding the interpolation mode index used in the encoder.
[0142] <Derivation of Intra-Predicted Pixels Using Multiple Reference Pixel Rows> Next, the derivation of intra-frame predicted pixels using multiple reference pixel rows, according to another embodiment of the present invention, will be explained.
[0143] Figure 13 This is a schematic diagram illustrating the derivation of intra-frame predicted pixels using multiple reference pixel rows applicable to one embodiment of the present invention.
[0144] Traditional intra-frame prediction uses a reference pixel row. That is, it uses, for example... Figure 13The reference pixel row 0 shown is composed of a specific number of reference pixels adjacent to the top of the current block and a specific number of reference pixels adjacent to the left of the current block. This invention can improve the accuracy of intra-frame prediction by utilizing various different reference pixel rows and the reference pixels contained in these rows to deduce predicted pixels and even predicted blocks. This embodiment can be executed in the same manner by the intra-frame prediction unit 102 of the image coding apparatus 100 and the intra-frame prediction unit 607 of the image decoding apparatus 600.
[0145] For ease of explanation, we will assume that a total of 3 reference pixel rows are used. However, any number of N reference pixel rows can also be used. The number N of reference pixel rows can be transmitted to the image decoding device 600 by including it in the block unit or the upper-level header. Alternatively, the number N of reference pixel rows can be left unencoded, and the image encoding device 100 and the image decoding device 600 can use a pre-defined number of N reference pixel rows.
[0146] See Figure 13 A 4×4 block containing pixel P corresponds to the current block to be encoded or decoded using intra-frame prediction. There are three reference pixel rows 0, 1, and 2 located around the current block.
[0147] When the intra-prediction mode of the current block is the m-th orientation mode, the prediction pixels used for the prediction pixels of the current pixel P can be X, Y, and Z, utilizing three reference pixel rows 0, 1, and 2. In this case, the optimal reference pixel row can be determined by generating prediction blocks using the three reference pixel rows respectively. The image coding apparatus 100 can encode the reference pixel row index information used to indicate the optimal reference pixel row determined in the above manner. Regarding the reference pixel row index, for example, it can be configured as follows... Figure 13 The method shown assigns lower index numbers to reference pixel rows that are closer to the current block.
[0148] Figure 14 This is a flowchart illustrating the derivation process of intra-frame predicted pixel values applicable to one embodiment of the present invention. See also... Figure 14 In step S1301, at least one reference pixel row is selected from a plurality of reference pixel rows for use in intra-frame prediction of the current block. The plurality of reference pixel rows are contained within the same image as the current block to be decoded using intra-frame prediction. The selected at least one reference pixel row can be indicated by the reference pixel row index. Alternatively, at least one reference pixel row for use in intra-frame prediction of the current block can also be selected in both the image coding apparatus 100 and the image decoding apparatus 600 using a common method, which will be described later, via an implicit method.
[0149] Furthermore, the aforementioned selected reference pixel row can be selected separately within each prediction block. This will be discussed in subsequent sections. Figure 15 This will be explained further. Alternatively, it's also possible to adaptively select pixels within each prediction block. This will be covered in subsequent sections. Figure 18 as well as Figure 19 Please provide an explanation.
[0150] In step S1303, the image encoding device 100 or the image decoding device 600 can obtain a predicted value of a pixel in the current block based on at least one pixel value contained in at least one selected reference pixel row. The image encoding device 100 or the image decoding device 600 can derive a predicted block of the current block by repeatedly executing all or part of the steps in step S1301 or step S1303.
[0151] Figure 15 This is a flowchart illustrating the process of adaptively determining the reference pixel rows used for intra-frame prediction in each prediction block. At this point, Figure 9 The step S902 shown can be Figure 15 The steps shown are substituted.
[0152] See Figure 15 In step S1401, the variable `n`, used to indicate the reference pixel row index, is initialized to 0, and the variable `COST_BEST_n`, used to store the optimal cost value, is initialized to `MAX_VALUE`. Here, `MAX_VALUE` is the maximum value that can be stored in the variable `COST_BEST_n`, a very large value that is unlikely to be obtained during actual cost calculation. The variable `N` is set to the pre-defined total number of reference pixel rows. In step S1401, `BEST_n`, used to indicate the optimal reference pixel row index of the current block, is initialized to 0. Next, in step S1402, the interpolation positions corresponding to each pixel position of the prediction block are found based on the reference pixel row index `n`, and the prediction block is generated. Next, in step S1403, the cost value corresponding to `n`, `COST_n`, is calculated using the generated prediction block. Here, `COST_n` is calculated using the number of bits required to encode the reference pixel row `n` and the difference between the prediction block and the current block. If in step S1404 it is determined that COST_n is less than or equal to COST_BEST_n, in step S1405, n is stored in the variable BEST_n (used to store the optimized reference pixel rows), and cost_n is stored in the variable COST_BEST_n, then n is incremented by 1. If COST_n is greater than COST_BEST_n, in step S1406 only m is incremented by 1. Finally, the process ends when n reaches the maximum number of reference pixel rows; otherwise, it returns to step S1402 and repeats the above process.
[0153] Figure 16 This is a flowchart illustrating the process by which the image coding device 100 encodes reference pixel row index information indicating the selected reference pixel row when adaptively selecting reference pixel rows in each prediction block. First, in step S1501, the prediction status of intra-prediction modes in each prediction block is encoded. Next, in step S1502, it is determined whether prediction has been performed. If prediction has been performed, in step S1503, the index indicating which candidate prediction from the candidate predictions of intra-prediction modes generated from surrounding blocks is encoded. Otherwise, in step S1504, candidate predictions of intra-prediction modes generated from surrounding blocks are excluded, and the remaining modes are reordered and encoded after binarying the currently selected intra-prediction mode. Finally, in step S1505, the process ends after encoding the used reference pixel row index.
[0154] Figure 17 This is a flowchart illustrating the process by which the decoding device 600 decodes the reference pixel row index information indicating the selected reference pixel row when adaptively selecting reference pixel rows in each prediction block. First, in step S1601, the prediction status of the intra-prediction mode in each prediction block is decoded. Next, in step S1602, it is determined whether prediction has been performed. If prediction has been performed, in step S1603, the index indicating which candidate intra-prediction mode was selected from the candidate predictions generated from surrounding blocks is decoded. Otherwise, in step S1604, the prediction candidates for intra-prediction modes generated from surrounding blocks are excluded, and then the remaining modes are reordered and the currently selected intra-prediction mode is decoded. Finally, in step S1605, the process ends after decoding the used reference pixel row index.
[0155] Next, we will combine Figure 18 as well as Figure 19 A method for adaptively determining the reference pixel row at each pixel position in the prediction block without transmitting the reference pixel row index is described.
[0156] For each pixel within the prediction block, the accuracy of the predicted pixel position obtained by interpolation within each reference pixel row may differ. Therefore, among the predicted pixels obtained by interpolation within each reference pixel row, the predicted pixel closest to the integer pixel position can be selected as the predicted pixel of the current pixel P. In this case, the above process can be applied to N predetermined reference pixel rows.
[0157] When multiple predicted pixels exist at integer pixel positions, the predicted pixel closest to the current block can be selected as the final predicted pixel.
[0158] Figure 19 This is a reference diagram used to illustrate a method for adaptively selecting reference pixel rows without transmitting reference pixel row indices. For example... Figure 19 As shown, the prediction pixel rows can be adaptively selected in each prediction block according to the priority assigned to rows where the predicted pixels exist at integer positions. The accuracy and frequency of the interpolated pixels used when generating prediction blocks using reference pixel rows are as follows: Figure 19 In the case shown, rows can be selected by assigning weighted values based on the precision of each pixel position.
[0159] Revisit Figure 19 When generating the prediction block using row 1, five integer-position prediction pixels, three 1 / 2-position prediction pixels, four 1 / 3-position prediction pixels, two 1 / 8-position prediction pixels, one 1 / 16-position prediction pixel, and one 1 / 32-position prediction pixel were selected. Therefore, the total number of pixels in the prediction block is 16. The cases for reference pixel rows 2 and 3 are the same.
[0160] When assigning priority only to integer pixel positions, row 1, which has the most integer positions, can be selected as the reference pixel row. Alternatively, after assigning weights to each position and calculating the sum of the weights and frequencies, the row with the largest calculated value can be selected as the reference pixel row. Alternatively, after assigning weights to each row and each position and calculating the sum of the weights and frequencies, the row with the largest calculated value can be selected as the reference pixel row. Alternatively, after assigning weights to both each row and each position and calculating the sum of the weights and frequencies, the row with the largest calculated value can be selected as the reference pixel row.
[0161] As another embodiment, it is also possible to generate prediction blocks using pixels that have been weighted and summed for each row. For example, when Figure 13 When pixel values at positions X, Y, and Z exist, the predicted pixel at position P can be obtained by selecting a weighted value that is closer to the block and assigning a higher weight. Alternatively, the predicted pixel at position P can be obtained by selecting a weighted value that is closer to an integer pixel and assigning a higher weight. Furthermore, besides using a weighted average (i.e., weighted summation) to derive the predicted pixel value, other methods such as arithmetic mean or median value can also be used.
[0162] Alternatively, a reference pixel row index can be used for encoding, and all but one of the N rows can be used. For example, when the reference pixel row index is set to 1, N-1 rows other than row 1 can be used. In this case, when interpolating the predicted value using the m-th pattern, higher priority can be assigned to positions closer to integer pixel positions, or different priorities can be assigned based on the accuracy of the interpolation position. It is also possible to generate the predicted value in pixels using all rows except row 1 without distinguishing between rows, based on any pre-defined priority as described above.
[0163] Alternatively, the information indicating either the method of directly encoding the reference pixel row index or the method of not encoding can be encoded in the block unit or the upper-level header by the image encoding device 100 and then transmitted to the image decoding device 600.
[0164] Smoothing between the predicted block and the reference pixel row Next, as another embodiment of the present invention, the smoothing between the prediction block and the reference pixel will be described.
[0165] When deriving a prediction block using specific pixels within a reference pixel row, discontinuities may exist between the prediction block and the reference pixel row not used in the prediction block derivation process, or between regions adjacent to the prediction block and the prediction block. To reduce these discontinuities, smoothing can be used. Smoothing can be considered as a low-pass filter.
[0166] The smoothing method applicable to the embodiments of the present invention can be performed by the intra-frame prediction unit 102 of the image encoding device 100 and the intra-frame prediction unit 607 of the image decoding device 600, respectively.
[0167] Figure 20 This is a schematic diagram used to illustrate the smoothing between the predicted block and the reference pixel row.
[0168] The intra-prediction mode used in the following sections will be illustrated using an example of intra-prediction performed in the 45-degree up-right direction. Furthermore, it is assumed that reference pixel 1 is selected during intra-prediction. Additionally, smoothing will be applied to pixels A through E as examples of suitable smoothing methods, but this approach can also be applied to other pixels.
[0169] Because Figure 20In the example, intra-frame prediction was performed along a 45-degree upward-right direction, so smoothing can be performed along the opposite direction of intra-frame prediction, i.e., a 45-degree downward-left direction. In this case, the region of the prediction block to which smoothing is applied can be determined based on the size or shape of the current block's prediction block. Figure 20 In this process, pixels contained within half of the prediction block will be smoothed. That is, smoothing can be applied only to the left half of the pixels represented by the shadow. Alternatively, a pre-defined region or proportion can be used depending on the size of the prediction block and / or the intra-frame prediction mode. For example, smoothing can also be applied only to 1 / 4 or other proportions of the prediction block.
[0170] Because Figure 20 In this case, reference pixel row 1 is selected as the reference pixel row when performing intra-frame prediction. Therefore, the predicted pixel A can be smoothed using the pixel D contained in reference pixel row 1 according to the following formula 1.
[0171] [Formula 1] A'=(w1×A + w2×D) / (w1 + w2) In Formula 1 above, A', A, and D are the values of the predicted pixel A after smoothing, the predicted pixel A before smoothing, and the reference pixel D, respectively, and w1 and w2 are the weighted values applicable to the predicted pixel A and the weighted values applicable to the reference pixel D, respectively.
[0172] Furthermore, the predicted pixel B can be smoothed using the pixel D contained in the reference pixel row 1 according to a formula similar to Formula 1 above.
[0173] At this point, the smoothing intensity can be adjusted based on the distance. Because the distance between predicted pixel A and pixel D is greater than the distance between predicted pixel B and pixel D, the smoothing intensity when smoothing predicted pixels A and D will be greater than the smoothing intensity when smoothing predicted pixels B and D. Therefore, a stronger smoothing can be performed by assigning a larger weighting value to the pixel D side when smoothing the predicted pixels.
[0174] Alternatively, instead of using the reference pixel row selected during intra-frame prediction, one can set the row closest to the prediction block as the reference pixel row suitable for smoothing. See [link to relevant documentation] Figure 20Although reference pixel row 1 was selected during intra-frame prediction, pixel C could be chosen instead of D for smoothing prediction pixels A and B. In the case described above, the smoothing intensity can also be selected based on distance. For example, when smoothing prediction pixel B using reference pixel C, the same weighting value can be applied, while when smoothing prediction pixel A using reference pixel C, smoothing can be performed after assigning a larger weighting value to pixel C.
[0175] When performing smoothing, two directions can be used simultaneously. For example, assuming smoothing is performed using reference pixel row 0, when smoothing the predicted pixel A, smoothing can be performed on the predicted pixel A after assigning weights to reference pixels F and C respectively. When smoothing the predicted pixel B, smoothing can also be performed on the predicted pixel B after assigning weights to pixels F and C respectively. In this case, since row 1 was selected as the reference pixel row during intra-frame prediction, pixel G can be used in the up-right direction and pixel C can be used in the down-left direction.
[0176] In one embodiment of the present invention, different weighting values can be assigned based on the distance between the reference pixel and the predicted pixel. For example, when smoothing is performed on the predicted pixel A using reference pixels F and C, since the distance between pixel C and A is greater than the distance between pixel F and A, smoothing can be performed after assigning a larger weighting value to pixel C. Alternatively, smoothing can be performed using arbitrary rows in a pre-defined manner. Whether the smoothing method described above applies can be encoded in block units or in the upper-level header. Alternatively, the applicability of smoothing can be left unencoded, and the same method can be used in the encoder and decoder according to pre-defined conditions. For example, whether to perform smoothing can be determined based on the angle of the intra-prediction mode being performed. In this embodiment, for ease of explanation, an example of performing stronger smoothing when the distance is greater has been described, but the opposite method can also be used depending on the characteristics of the image.
[0177] Next, we will combine Figure 21 , Figures 22a to 22d The block unit for selecting the reference pixel row during intra-frame prediction according to an embodiment of the present invention will be described.
[0178] For ease of explanation, the following example will be used, where the current block is 16×16 in size, divided into four 8×8 transform blocks, and four transforms are performed in 8×8 transform block units. To perform the transforms, the current block can be divided into multiple transform blocks smaller than the current block size. Therefore, after determining the intra-prediction mode using the current block unit, the determined intra-prediction mode can be applied using the transform block unit, thus effectively performing prediction in transform block units. The advantage of this method is that it can solve the problem of decreased pixel correlation as the distance between the reference pixel and the current block increases. See also... Figure 21 When intra-frame prediction is applied on a block-by-block basis, the distance between a pixel in transform block A and a reference pixel is smaller than the distance between a pixel in transform block D and a reference pixel. Therefore, the prediction efficiency may decrease because the pixels in transform block D are farther away from the reference pixels.
[0179] To address the shortcomings mentioned above, it is possible to determine the intra-prediction mode only at the block unit level, while intra-prediction can be performed at the transformed block unit level.
[0180] Figure 21 The diagram illustrates the case where, when performing intra-prediction on a transform block basis, at least one reference pixel row selected during intra-prediction of the current block is applicable to all transform blocks within the current block.
[0181] Figures 22a to 22d The case of selecting at least one reference pixel row in each transform block and applying it to intra-frame prediction is illustrated.
[0182] See Figure 22a When using four 8×8 transform blocks and performing prediction in transform block units, in order for intra-frame prediction of transform block A to be applicable as... Figure 21 Reference pixel row shown.
[0183] Referring to 22b, transform block B can utilize the pixels in the reconstructed transform block A to apply the reference pixel row shown in the figure to intra-frame prediction. Similarly, referring to 22c, the reference pixel row shown in the figure can be applied to intra-frame prediction using the pixels in both the reconstructed transform blocks A and B. Figure 22d The system can also utilize the pixels in the reconstructed transform blocks A, B, and C to apply the reference pixel row shown in the figure to intra-frame prediction.
[0184] As mentioned above, when using multiple reference pixel rows, such as Figure 21 The reference pixel rows shown, determined by block units, can also be used as... Figures 22a to 22dThe method shown applies directly when performing prediction in transform block units. Alternatively, the optimal reference pixel row can be recalculated in transform block units. Alternatively, information indicating whether the optimal reference pixel row calculated in block units is applied to the entire transform block or used after deriving the reference pixel row separately in each transform block unit can be encoded and transmitted to the image decoding device 600.
[0185] Next, various embodiments and application examples related to the derivation, encoding, and decoding of intra-prediction modes applicable to the present invention will be described with reference to the accompanying drawings. Because the image encoding apparatus and the image decoding apparatus can derive the intra-prediction mode using the intra-prediction mode derivation method applicable to the present invention in the same way and / or the same standard, it is not necessary to transmit information indicating the intra-prediction mode to the image decoding apparatus.
[0186] <Derivation using intra-frame prediction modes of image decoding devices> In this embodiment, the intra-prediction mode derivation using an image decoding apparatus will be described. In the following description, the intra-prediction mode derivation using an image decoding apparatus to which this invention applies will be simply referred to as DIMD (Decoder-side Intra Mode Derivation). However, DIMD can also be performed using an image encoding apparatus in the same manner. Therefore, although named DIMD, DIMD can be performed using both the image encoding apparatus 100 and the image decoding apparatus 600. In particular, DIMD can be performed using both the intra-prediction unit 102 of the image encoding apparatus 100 and the intra-prediction unit 607 of the image decoding apparatus 600 in the same manner.
[0187] Next, various different embodiments related to the DIMD to which the present invention is applied will be described with reference to the accompanying drawings. [First Embodiment] Figure 23 This is a schematic diagram illustrating DIMD to which the first embodiment of the present invention applies. In one embodiment of the present invention, the intra-prediction mode of the current block can be derived using reconstructed pixels located around the current block.
[0188] See Figure 23 Assume the size of the current block 2001 to be encoded or decoded is M×N, the size of template A 2004 is P×N, and the size of template B 2003 is M×Q. For example... Figure 23 As shown, the reference pixel area 2002 is composed of the area located to the left of template A 2004 and the area located above template B 2003.
[0189] When it is assumed that the values of R and S in the values used to indicate the size of the reference pixel region 2002 are both 1, the reference pixel region 2002 includes 2(Q+N) + 2(P+M) + 1 reference pixels.
[0190] In one embodiment of the present invention, the predicted values of template A 2004 and template B 2003 are calculated using reference pixels within reference pixel region 2002 according to each available intra-frame prediction mode. At this time, template A 2004 and template B 2003 are considered as a single region. For example, according to... Figure 2 The 34 available intra-prediction modes shown are used to calculate the predicted values of template A 2004 and template B 2003 using reference pixels within reference pixel region 2002. Next, the SAD (Sum of Absolute Difference) is calculated, which is equivalent to the sum of the differences between the reconstructed values of template A 2004 and template B 2003 predicted according to each intra-prediction mode and their corresponding reconstructed values. Finally, the intra-prediction mode with the smallest calculated SAD is selected as the intra-prediction mode for the current block 2001.
[0191] Because the intra-frame prediction mode of the current block 2001 is derived from the reconstructed pixels by the image encoding device 100 or the image decoding device 600, both the image encoding device 100 and the image decoding device 600 can derive the same intra-frame prediction mode.
[0192] Furthermore, intra-prediction modes originally applicable to luminance pixels can also be applied to chrominance pixels. Since it is not necessary to transmit intra-prediction modes from the image encoding device 100 to the image decoding device 600, excessive system overhead is avoided. Therefore, intra-prediction modes can also be added at the 1 / 2, 1 / 3, or 1 / 4 positions between angular modes. In this case, information related to the number of intra-prediction modes used can be transmitted to the image decoding device 600 using various methods. As an example, it can be transmitted to the image decoding device 600 after encoding using powers of 2 through a block header or a higher-level header such as a stripe header, image header, or sequence header. Alternatively, information related to the number of available intra-prediction modes can be transmitted to the image decoding device 600 by transmitting an index indicating one of a list of multiple intra-prediction modes consisting of different numbers of intra-prediction modes.
[0193] Furthermore, although two templates, template A 2004 and template B 2003, were used in the above embodiments to derive the intra-prediction mode of the current block 2001, it is also possible to use more than three templates.
[0194] Furthermore, although the final intra-prediction mode was derived in the above embodiments by applying all intra-prediction modes to template A 2004 and / or template B 2003, it is also possible to derive the final intra-prediction mode of the current block 2001 from a set of pre-defined intra-prediction modes without applying all modes.
[0195] [Second Embodiment] In the first embodiment described above, templates A 2004 and B 2003 were treated as a single region. However, in this embodiment, templates A 2004 and B 2003 are treated as independent regions. Specifically, after deriving the prediction mode for the current block using each template, one of the two derived prediction modes can be selected.
[0196] For example, able to Figure 2 Using the 18th angle mode shown (the intra-prediction mode at an upper left angle of 45 degrees) as a baseline, the SAD values of the angle modes located to the left of the 18th mode are calculated separately after applying them only to template A 2004. The mode that yields the minimum SAD value among all the modes is determined as the intra-prediction mode for template A 2004.
[0197] Next, the angle mode located to the right of mode 18 is applied only to template B 2003, and the SAD is calculated separately. The mode that yields the minimum SAD value among all modes is determined as the intra-prediction mode for template B 2003. Next, one of the determined intra-prediction modes for template A 2003 and template B 2003 is ultimately selected as the prediction mode for the current block 2001.
[0198] By applying DC mode and planar mode to each template respectively, the SAD value corresponding to DC mode and the SAD value corresponding to planar mode can be calculated respectively. Next, the final intra-prediction mode of each template can be selected by comparing the SAD value corresponding to the intra-prediction mode of the corresponding template selected from the above angle modes, the SAD value corresponding to DC mode, and the SAD value corresponding to planar mode.
[0199] [Third Embodiment] Next, a third embodiment of the DIMD to which the present invention is applied will be described.
[0200] A third embodiment of the present invention relates to a method for performing DIMD using the remaining available templates when a portion of the templates in the current block is unavailable.
[0201] Figure 24 This is a schematic diagram for illustrating the DIMD to which the third embodiment of the present invention is applied.
[0202] exist Figure 24 In the current block 2101, the template above is unavailable; only the template A 2104 on the left is available.
[0203] The image encoding device 100 and the image decoding device 600 agree to use, such as Figure 2 In the case of the 35 intra-frame prediction modes shown, when one of the two templates is unavailable, it can be performed according to the following... Figure 24 The method shown defines the range and applies 35 intra-frame prediction modes to only one template 2104. Figure 24 In the middle, the lower left 45-degree direction is set as the No. 2 intra-frame prediction mode, the horizontal direction is set as the No. 34 intra-frame prediction mode, and it is set that there are 33 prediction modes between the No. 2 prediction mode and the No. 34 prediction mode.
[0204] After performing DIMD by applying the 33 angle modes, DC mode and plane mode set as described above to the available template A 2104, the intra-prediction mode of the current block 2101 can be derived.
[0205] When a reference pixel region 2105 located to the left of template A 2104 is available because the current block 2101 corresponds to the upper boundary of the input image, but a reference pixel region 2102 above template A 2104 is not available, an upper reference pixel region 2102 can be generated by filling in the gaps using appropriate surrounding pixels. The surrounding pixels used to perform the filling can be pixels above the current block 2101 and / or template A 2104, or the reference pixel region 2105 to the left of template A 2104.
[0206] [Fourth Embodiment] Figure 25 This is a sequence diagram for illustrating the DIMD to which the present invention is applied. It relates to the first to third embodiments described above. Figure 25 The method illustrated in the figure can be executed in the same manner by the intra-frame prediction unit 102 of the image coding device 100 and the intra-frame prediction unit 607 of the image decoding device 600.
[0207] See Figure 25First, in step S2201, the intra-frame prediction mode of the reconstructed pixel region is derived based on the reference pixel region of the at least one reconstructed pixel region. The at least one pixel region can be template A 2004, 2104 and / or template B 2003 in the above embodiments. However, it is not limited to these templates. The reference pixel region can correspond to the reference pixel regions 2002, 2102, 2105 described in the above embodiments. However, it is not limited to these reference pixel regions.
[0208] Next, in step S2203, the intra-prediction mode of the current block is derived based on the intra-prediction mode of the reconstructed pixel region derived in step S2201. Then, in step S2205, after obtaining the intra-prediction block of the current block using the derived intra-prediction mode, in step S2207, the current block is reconstructed by adding the obtained intra-prediction block to the residual block of the current block.
[0209] [5th Embodiment] Figure 26 This is a sequence diagram for explaining the encoding method of intra-prediction mode when encoding an image using DIMD to which the present invention applies.
[0210] First, in step S2501, information indicating whether or not the DIMD applicable to the present invention is executed is encoded. This information is used to transmit the intra-prediction mode derivation method to the image decoding apparatus 600. That is, signaling is performed on information indicating whether the intra-prediction mode is derived using the DIMD applicable to the present invention or using another method.
[0211] Next, in step S2502, it is determined whether DIMD is used. If it is determined that DIMD is used, the process ends and the intra-prediction mode of the current block is derived through DIMD.
[0212] However, in the absence of using the DIMD to which the present invention applies, in step S2503, the applicability of MPM (Most Probable Mode) is encoded. MPM can be used as an alternative method, besides deriving it using the intra-prediction mode of the DIMD to which the present invention applies.
[0213] At this point, the MPM flag and MPM index information, used to indicate whether the intra-prediction mode of the current block is in the MPM list (most probable modelist), are appended and transmitted to the decoding device. The number of intra-prediction modes included in the aforementioned MPM list is far less than the total number of intra-prediction modes. Therefore, if the intra-prediction mode of the current block is in the MPM list, signaling can be sent to the image decoding device 600 using very few bits. The MPM index information is used to indicate which mode in the MPM list corresponds to the intra-prediction mode of the current block.
[0214] When the MPM flag is 1, the intra-prediction mode of the current block belongs to the MPM list; when the flag is 0, the intra-prediction mode of the current block belongs to the residual mode group. The residual mode group can contain all intra-prediction modes except those belonging to the MPM list. In step S2503, the encoding of whether the MPM (Most Probable Mode) is applicable is performed by encoding the MPM flag.
[0215] Revisit Figure 26 After confirming whether an MPM has been applied in step S2504, if it has not been applied, in step S2505 the remaining modes other than the candidate MPMs are reordered and the intra-prediction mode of the current block is encoded. If an MPM has been applied, in step S2506 the MPM index used to indicate the applicable candidate intra-prediction mode is encoded and the process ends.
[0216] [Sixth Embodiment] Figure 27 This is a sequence diagram for explaining a decoding method of an intra-prediction mode when decoding an image using a DIMD to which the present invention applies.
[0217] First, in step S2601, information indicating whether or not the DIMD applicable to the present invention is executed is decoded. This information indicates whether the intra-prediction mode is derived using the DIMD applicable to the present invention or using other methods.
[0218] Next, in step S2602, it is determined whether DIMD is used. When it is determined that DIMD is used, the process ends and the intra-prediction mode of the current block is derived through DIMD.
[0219] However, in the absence of using the DIMD to which this invention applies, in step S2603, the applicability of MPM (Most Probable Mode) is decoded. In step S2603, the MPM flag can be decoded.
[0220] When the MPM flag is 1, the intra-prediction mode of the current block belongs to the MPM list; when the flag is 0, the intra-prediction mode of the current block belongs to the residual mode group. The residual mode group can contain all intra-prediction modes except those belonging to the MPM list.
[0221] Next, after confirming whether MPM is applied in step S2604, if it is not used, in step S2605, the remaining modes other than the candidate MPMs are reordered and the intra-prediction mode of the current block is decoded. If MPM is used, the process ends in step S2606 after decoding the MPM index used to indicate the applicable candidate intra-prediction mode.
[0222] [Seventh Embodiment] Figure 28 This is a schematic diagram illustrating a seventh embodiment to which the present invention is applicable. The seventh embodiment relates to a method for deriving an intra-frame prediction mode by applying multiple reference pixel rows to a template.
[0223] like Figure 28 As shown, it is assumed that the reference pixel rows used as the template are reference pixel row 1 and reference pixel row 2, totaling 2 rows. It is also assumed that the template lengths P and Q are both 1.
[0224] The angle pattern existing to the right of the top-left 45-degree directional pattern is defined as the upper angle pattern, using template B and its upper reference pixel row. Furthermore, based on the top-left 45-degree directional pattern, the angle pattern existing to its left is defined as the left angle pattern, using template A and its left reference pixel row. Next, according to the intra-frame prediction mode, as follows... Figure 28 The prediction is performed separately for each reference pixel row as shown. For example, reference pixel row 2 of the template is used to predict reference pixel row 1 of the template, and an optimal candidate intra-prediction mode 1 is generated. Next, reference pixel row 1 of the template is used to predict the template, and an optimal candidate intra-prediction mode 2 is generated. When candidate intra-prediction modes 1 and 2 are the same, the corresponding prediction mode is selected as the intra-prediction mode for the current block. Otherwise, it is determined whether to execute one of the DIMD methods applicable to various embodiments of the present invention as described above.
[0225] Figure 29is a sequence diagram illustrating the encoding process of an intra prediction mode in the case where the 7th embodiment of the present invention is applied.
[0226] First, in step S2801, candidate intra prediction modes are derived using the reference pixel row of the template. Next, in step S2802, it is determined whether the candidate intra prediction modes are the same. If they are the same, the aforementioned identical mode is selected as the intra prediction mode of the current block and the sequence diagram ends. If the candidate intra prediction modes are different, whether to perform DIMD is encoded in step S2803.
[0227] Since the subsequent steps S2804 to S2808 are substantially the same as those shown in Figure 26 the illustrated S2502 to S2506, detailed descriptions thereof will be omitted herein.
[0228] Figure 30 is a sequence diagram illustrating the decoding process of an intra prediction mode in the case where the 7th embodiment of the present invention is applied. Since each process illustrated in Figure 30 the drawing is substantially the same as each step illustrated in Figure 29 the drawing except that they are executed in the video decoding apparatus 600, detailed descriptions thereof will be omitted herein.
[0229] <Modification of DIMD: Transmission of Template Index> In the DIMD applying the various different embodiments described above, the intra prediction mode itself is not signaled. However, in this embodiment, after candidate intra prediction modes are derived using a plurality of templates respectively, index information for indicating the used mode is transmitted from the encoding apparatus to the video decoding apparatus 600. Figure 31a and Figure 31b are schematic diagrams for explaining a modification of the DIMD that transmits a template index, which is a manner of specifying by using an index after candidate intra prediction modes are respectively generated using two templates by applying the DIMD of the present invention. For the convenience of description, it is assumed that the reference pixel region sizes R and S of the templates illustrated in Figure 31a or Figure 31b the drawing are each 1.
[0230] In Figure 31a the drawing, candidate intra prediction mode 1 is derived by applying the pixels in the reference pixel region 3103 of the template to template A 3102. In Figure 31b the drawing, candidate intra prediction mode 2 is derived by applying the pixels in the reference pixel region 3105 of the template to template B 3104. Next, after encoding an index for indicating which candidate intra prediction mode derived from which template is to be used as the intra prediction mode of the current block 3101, the index is transmitted to the video decoding apparatus 600.
[0231] Furthermore, in this embodiment, information about which intra prediction mode encodes the block containing the template can be used. For example, in Figure 31a and Figure 31b , if it is assumed that the intra prediction mode of the block containing template A 3102 is intra prediction mode A, a higher or lower priority can be assigned when the intra prediction mode A is the same as the intra prediction mode determined by applying the reference pixels in the template to template A 3102. Bits can also be allocated when configuring candidate information for index setting according to the above priority. Similarly, when bits are allocated using the above conditions in the case where a plurality of templates other than template A 3102 exist, the priority can also be set.
[0232] Figure 32 is a sequence diagram illustrating the encoding method of the intra prediction mode under DIMD using a template index.
[0233] First, in step S3301, information indicating whether to execute DIMD using a template index is encoded. Next, it is determined in step S3302 whether DIMD using a template index has been executed, and when it is determined that DIMD using a template index has been executed, the template index is encoded in S3307 before the process ends. When it is determined that DIMD using a template index has not been executed, in step S3303, information indicating whether to apply MPM (Most Probable Mode) is encoded. Next, after confirming in step S3304 whether MPM has been applied, when MPM is not applied, the remaining modes other than the candidate MPM are reordered and then encoded in step S3305, while when MPM is applied, the MPM index indicating the applied candidate is encoded in step S3306 before the process ends.
[0234] Figure 33 is a sequence diagram illustrating the decoding method of the intra prediction mode under DIMD using a template index. Because Figure 33 each process illustrated in the figure is substantially the same as each step illustrated in Figure 32 except that it is executed in the video decoding apparatus 600, detailed description thereof will be omitted herein.
[0235] Furthermore, although in Figure 31a and Figure 31b the description has been given by taking two surrounding templates as an example, three or more templates can also be used.
[0236] <Application Example of DIMD: Generating MPM List> In the preceding content, when using DIMD to which the present invention is applicable, the method adopted is not to signal the intra-prediction mode itself to the image decoding device 600, or the image encoding device 100 transmits template index information for indicating which template among a plurality of templates to use as the candidate intra-prediction mode for the current block to the image decoding device 600.
[0237] Next, an example of reordering candidate MPMs (Most Probable Mode) or generating an MPM list using the intra-prediction mode derived through DIMD will be described.
[0238] It is also possible to generate candidate MPMs for intra-prediction mode prediction and then place them in a similar order to the intra-prediction modes derived from the template.
[0239] [First Embodiment] Figure 34 This is a schematic diagram used to illustrate an example of setting an intra-prediction mode derived using a template as a candidate MPM.
[0240] Assume that there are reconstructed blocks A 3503 and B 3505 surrounding the current block 3501, and assume that intra-frame prediction is used in block A 3503 and inter-frame prediction is used in block B 3505. Since block B 3505 uses inter-frame prediction and has no intra-frame prediction mode, this embodiment uses a template to generate the intra-frame prediction mode for block B 3505. For the method of deriving the intra-frame prediction mode for block B 3505 using a template, please refer to [link to documentation / reference]. Figure 31b as well as Figure 31b The above explanation is relevant. Furthermore, in utilizing... Figure 31b When deriving the intra-prediction mode of template B 3104 from template B 3104, the encoding method of the intra-prediction mode, the number of intra-prediction modes, and the prediction angle should be the same as the information preset by the image encoding device 100 or the image decoding device 600.
[0241] [Second Embodiment] In this embodiment, candidate MPMs are set using intra-frame prediction mode information used to indicate the encoding of blocks containing templates.
[0242] Figure 35 This is a schematic diagram illustrating a candidate MPM setting applicable to one embodiment of the present invention. See also... Figure 35Assume that the intra-prediction mode of the left block 3703 of the current block 3701 is mode 10, and assume that the intra-prediction mode derived by applying template reference pixels (not shown) to template A 3705, which corresponds to a part of the left block 3703, is mode 12. Similarly, assume that the intra-prediction mode of the upper block 3707 of the current block 3701 is mode 28, and assume that the intra-prediction mode derived by applying template reference pixels (not shown) to a part of the upper block 3707, i.e., template B 3709, is mode 28. For the left block 3703, mode 10 is more advantageous for encoding when considering the entire left block 3703. However, since mode 12 is set in template A 3705 adjacent to the current block 3701, it can be assumed that the prediction mode of the current block is more suitable to be set to mode 12 compared to mode 10. In the case described above, when setting the candidate MPM, relative to the intra-prediction mode of the left block 3703, the intra-prediction mode derived from template A 3705 can be used to generate the candidate MPM.
[0243] For the upper block 3707, since the intra prediction mode of the upper block 3707 is the same as the intra prediction mode derived from template B 3709, the same mode is used as the candidate MPM.
[0244] As an alternative approach, four modes can be used to set the candidate MPM: the intra-prediction mode of the left block 3703, the intra-prediction mode derived from template A 3705, the intra-prediction mode of the upper block 3707, and the intra-prediction mode derived from template B 3709. In this case, because the intra-prediction mode derived from the template is closer to the current block, it can be assigned a higher priority and thus fewer bits when setting it as the candidate MPM.
[0245] The exemplary methods in this disclosure are described as a sequence of actions for clarity of explanation, but this is not intended to limit the order in which the steps are executed. The steps can be executed simultaneously or in different orders if necessary. To implement the methods in this disclosure, additional steps can be added to the example steps, or only the remaining steps (excluding some steps) can be included, or additional steps can be added after excluding some steps.
[0246] The various embodiments described herein are not a list of all possible combinations, but are merely illustrative of representative forms of the disclosure. The matters described in the various embodiments may apply independently or in combination of two or more.
[0247] Furthermore, the various embodiments described in this disclosure can be implemented using hardware, firmware, software, or a combination thereof. When implemented in hardware, they can be implemented using one or more ACICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processors), DSPDs (Digital Signal Processing Devices), PLDs (Programmable Logic Devices), FPGAs (Field Programmable Gate Arrays), general processors, controllers, microcontrollers, microprocessors, etc.
[0248] The scope of this disclosure includes software, device-executable instructions (e.g., operating systems, applications, firmware, programs, etc.) that enable actions in methods of various different embodiments to be executed on a device or computer, and a device or computer-executable non-transitory computer-readable medium storing the aforementioned software or instructions.
[0249] Industry availability This invention is applicable to the field of encoding or decoding image signals.
Claims
1. An image decoding method, characterized in that, Includes the following steps: Derive the intra-frame prediction mode for the current block; The prediction block of the current block is generated based on at least one of the reference pixel and the derived intra-prediction mode. The residual block of the current block is generated through a transformation step; as well as The predicted block and the residual block are used to generate the reconstructed block of the current block.
2. The image decoding method according to claim 1, characterized in that, The method further includes the following steps: Decoding the index information indicating which of a plurality of available interpolation methods is used for the current block; and The interpolation method for the current block is derived based on the index information. The step of generating the predicted block for the current block utilizes the interpolation method.
3. The image decoding method according to claim 2, characterized in that, in, When the intra-prediction mode of the current block is a preset intra-prediction mode, Based on a first reference pixel and a second reference pixel, a first pixel in the prediction block is filtered, wherein the first reference pixel is used to predict the first pixel, and the second reference pixel is included in the same reference pixel row as a reference pixel row that includes the first reference pixel.
Citation Information
Patent Citations
Image encoding / decoding method and bit stream transmission method
CN117596390A