Method and device for encoding and decoding a data stream representing at least one image
ILR predictive coding optimizes video compression by enabling pixel-by-pixel prediction without transformation and disabling post-processing for certain blocks, improving efficiency and speed in video decoding.
Patent Information
- Application Number
- JP2025047100
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2018-09-21
- Filing Date
- 2025-03-21
- Publication Date
- 2026-01-13
- Estimated Expiration
- 2039-09-03
AI Technical Summary
Existing video compression techniques, such as those in the HEVC standard, require reconstruction of a set of pixels before predicting others, leading to suboptimal compression ratios and inefficiencies, particularly in intra prediction modes, and do not effectively handle coexistence of conventional intra and DPCM prediction modes.
A new coding mode, In-Loop Residual (ILR) predictive coding, where prediction residuals are not transformed, allowing immediate use for pixel reconstruction, and deblocking and SAO processing are disabled for blocks decoded in this mode, optimizing compression and decoding speed.
ILR coding enhances compression efficiency by reducing the need for post-processing, lowers transmission rates, and accelerates decoding by eliminating the need for deblocking and SAO operations, particularly for blocks using ILR mode.
Smart Images

Figure 0007797727000002 
Figure 0007797727000003 
Figure 0007797727000004
Abstract
Description
[Technical Field]
[0001] The field of the invention is that of encoding and decoding images or sequences of images, and in particular video streams.
[0002] More particularly, the present invention relates to the compression of an image or sequence of images using a block representation of the image.
[0003] The invention may be applied in particular to image or video coding, and corresponding decoding, performed in current or future encoders (JPEG, MPEG, H.264, HEVC, etc., and modifications thereof). [Background technology]
[0004] Digital images and sequences of images take up a lot of space in terms of memory, which makes it necessary to compress these images when transmitting them in order to avoid congestion problems on the networks used for this transmission.
[0005] Many techniques for compressing video data are already known. Among these, the HEVC compression standard (Matthias Wien, "High Efficiency Video Coding, Coding Tools and Specification", Signals and Communication Technology, 2015) proposes performing prediction of pixels of a current image with respect to other pixels belonging to the same image (intra prediction) or to previous or subsequent images (inter prediction).
[0006] More specifically, intra prediction exploits spatial redundancy within an image. To do this, the image is divided into blocks of pixels. The blocks of pixels are then predicted using already reconstructed information corresponding to previously coded / decoded blocks in the current image, according to the scanning order of the blocks in the image.
[0007] Furthermore, in standard schemes, the coding of the current block is performed using a prediction of the current block, called a predictor block, and a prediction residual or "residual block" corresponding to the difference between the current block and the predictor block. The resulting residual block is then transformed, for example using a DCT (Discrete Cosine Transform) type transform. The coefficients of the transformed residual block are then quantized, coded by entropy coding, and transmitted to a decoder, which can reconstruct the current block by adding this residual block to the predictor block.
[0008] Decoding is performed image by image and block by block for each image. For each block, the corresponding element of the stream is read. Inverse quantization and inverse transformation of the coefficients of the residual block is performed. A block prediction is then calculated to obtain a predictor block, and the current block is reconstructed by adding the prediction (i.e., the predictor block) to the decoded residual block.
[0009] In U.S. Patent No. 9,253,508, a DPCM (Differential Pulse Code Modulation) coding technique for coding a block in intra mode is integrated into an HEVC encoder. Such a technique consists in predicting a set of pixels of an intra block by another set of pixels of the same block that has been previously reconstructed. In U.S. Patent No. 9,253,508, the set of pixels of the intra block to be coded corresponds to a row, or a column, or a row and a column, of the block, and the intra prediction used to predict the set of pixels is one of the directional intra predictions defined in the HEVC standard.
[0010] However, such a technique is not optimal. Indeed, the reconstruction of a set of pixels of an intrablock either corresponds to the addition of a prediction residual in the case of lossless coding, which therefore exhibits a significantly smaller compression ratio, or corresponds to the addition of a prediction residual after inverse transformation and / or inverse quantization of the other set of pixels that serve for the prediction. Therefore, such a technique does not allow each pixel of an intrablock to be predicted using a local prediction function, and the predicted pixel to be reconstructed before predicting subsequent pixels. Indeed, this technique requires that a certain set of pixels (e.g., rows / columns of a block) be reconstructed in order to predict another set of pixels. In other words, with each prediction and reconstruction of a part of the block, several pixels of the block are predicted and reconstructed.
[0011] Moreover, US Pat. No. 9,253,508 does not describe how conventional intra prediction modes and DPCM prediction modes coexist, for example, as defined in the HEVC standard. [Prior art documents] [Patent documents]
[0012] [Patent Document 1] U.S. Patent No. 9,253,508 [Non-patent literature]
[0013] [Non-Patent Document 1] Matthias Wien, “High Efficiency Video Coding, Coding Tools and Specification”, Signals and Communication Technology, 2015 [Non-patent document 2] Andrey Norkin et al., "HEVC deblocking filter," IEEE Transactions on Circuits and Systems for Video Technology (Vol. 22, Issue: December 12, 2012), pp. 1746-1754, October 5, 2012 [Non-patent document 3] Chih-Ming Fu, Elena Alshina, Alexander Alshin, Yu-Wen Huang, Ching-Yeh Chen, Chia-Yang Tsai, Chih-Wei Hsu, Shaw-Min Lei, Jeong-Hoon Park, Woo-Jin Han, “Sample Adaptive Offset in the HEVC Standard”, IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, Volume 22, Issue 12, December 2012, 1755 Summary of the Invention [Problem to be solved by the invention]
[0014] Therefore, new coding and decoding methods are needed to improve the compression of image or video data. [Means for solving the problem]
[0015] The present invention improves upon the prior art. To this end, the invention relates to a method for decoding a coded data stream representing at least one image divided into blocks, such a decoding method comprising the steps of: - decoding an item of information indicating a coding mode of the current block among at least a first coding mode and a second coding mode, wherein the second coding mode is: - obtaining a prediction of said pixel from another previously decoded pixel, said another previously decoded pixel belonging to said current block or to a previously decoded block of an image; - decoding a prediction residual associated with said pixel; and - reconstructing said pixel from the obtained prediction of said pixel and a decoded prediction residual associated with said pixel. is the coding mode according to which the current block is decoded; - decoding the current block according to the coding mode indicated by the decoded item of information; - applying at least one processing method to the reconstructed current block when a coding mode of the current block corresponds to a coding mode different from the second coding mode; - disabling application of the at least one processing method to the reconstructed current block for at least one pixel of the current block when a coding mode of the current block corresponds to a second coding mode; Includes:
[0016] Therefore, according to the present invention, the application of processing operations to reconstructed blocks is not performed in the case of blocks decoded according to a coding mode that uses pixel prediction from previously reconstructed pixels of the same block. According to this coding mode, the prediction residual associated with each pixel is not transformed. The processing method aims to improve the quality of the reconstructed block of pixels, for example, by reducing the effect of discontinuities between blocks resulting from predictive residual coding with transformation (deblocking filter) or by modifying the individual values of each pixel (also known as sample adaptive offset, or SAO).
[0017] According to the present invention, the second coding mode does not use prediction residual transformation because the prediction residual associated with each pixel must be immediately available for pixel reconstruction and can therefore be used to predict subsequent pixels of the current block. Therefore, when the current block is decoded according to the second coding mode, it is not necessary to reduce discontinuities at the boundaries of the current block. Similarly, when the current block is decoded using the second coding mode, the value of each pixel is coded individually using the prediction residual associated with each pixel. Therefore, it is not necessary to modify the value of each pixel.
[0018] Processing methods applied to reconstructed blocks typically require transmission of parameters at the block level. Disabling these processing methods for blocks coded according to the second coding mode thus allows for rate improvements. Moreover, because these processing methods are not applied to these blocks, the decoding process can be significantly accelerated.
[0019] The invention also relates to a method for coding a data stream representing at least one image divided into blocks, such a coding method comprising the steps of: - coding an item of information indicating a coding mode of the current block among at least a first coding mode and a second coding mode, wherein the second coding mode is: - obtaining a prediction of said pixel from another previously decoded pixel, said another previously decoded pixel belonging to said current block or to a previously decoded block of an image; - coding a prediction residual associated with said pixel obtained from the prediction of said pixel; and - reconstructing the pixel from a decoded prediction residual associated with the pixel and a prediction of the pixel. is the coding mode according to which the current block is coded; - coding the current block according to a coding mode indicated by a coded item of information; - applying at least one processing method to the reconstructed current block when a coding mode of the current block corresponds to a coding mode different from the second coding mode; - disabling application of the at least one processing method to the reconstructed current block for at least one pixel of the current block when a coding mode of the current block corresponds to a second coding mode; Includes:
[0020] According to a particular embodiment of the invention, the processing method is a deblocking filter operation applied to pixels of the reconstructed current block that are located on the boundaries of the reconstructed current block with reconstructed neighboring blocks in the image, according to this particular embodiment of the invention, the processing method corresponds to a "deblocking" filter that is conventionally applied at block boundaries to reduce the effects of discontinuities between blocks.
[0021] According to a particular embodiment of the present invention, When the current block is decoded or coded according to a second coding mode, - application of deblocking filtering to the reconstructed current block is disabled for all pixels of the reconstructed current block; when the current block is decoded or coded according to a coding mode different from the second coding mode; a deblocking filter is applied to pixels of the reconstructed current block if the pixels are located on a boundary of the reconstructed current block with a reconstructed neighboring block in the image, and if the neighboring block is decoded or coded according to a coding mode different from the second coding mode.
[0022] According to this particular embodiment of the present invention, deblocking filtering is only applied to pixels at the boundary of two blocks both of which are coded or decoded according to a coding mode different from the second coding mode, in other words, for a current block that is coded or decoded according to a coding mode different from the second coding mode, deblocking filtering is disabled for pixels of the reconstructed current block that are located on the boundary with a neighboring block that is coded or decoded according to the second coding mode.
[0023] According to another particular embodiment of the present invention, when the current block is decoded or coded according to the second coding mode, - application of a deblocking filter to the reconstructed current block is disabled for pixels of the reconstructed current block if the pixel is located on a boundary of the reconstructed current block with a neighboring block in the image, and if the neighboring block is decoded or coded according to a second coding mode; a deblocking filter is applied to pixels of the reconstructed current block if the pixels are located on a boundary of the reconstructed current block with a reconstructed neighboring block in the image, and if the neighboring block is decoded or coded according to a coding mode different from the second coding mode.
[0024] According to this other particular embodiment of the present invention, deblocking filtering is applied to pixels located on the boundary of two blocks, at least one of which is coded or decoded according to a coding mode different from the second coding mode, but deblocking filtering is disabled for pixels located on the boundary of two blocks, both of which are coded or decoded according to the second coding mode.
[0025] This particular embodiment of the present invention smooths blocking effects for blocks that are coded or decoded according to the first coding mode, or any other coding mode different from the second coding mode, even when they are neighbors of a reconstructed block coded or decoded according to the second coding mode.
[0026] According to another particular embodiment of the invention, the processing method is a method for modifying at least one pixel of the reconstructed current block by adding to the reconstructed value of said pixel a value obtained from an item of information coded in or decoded from the data stream. According to this particular embodiment of the invention, the processing method corresponds to the SAO method integrated in the HEVC compression standard.
[0027] According to a particular embodiment of the invention, when the current block is decoded or coded according to a second coding mode, the application of said modification method to the reconstructed current block is disabled for all pixels of the reconstructed current block.
[0028] The present invention also relates to a decoding device configured to implement the decoding method according to any one of the specific embodiments defined above. This decoding device can naturally have various characteristics related to the decoding method according to the invention. The characteristics and advantages of this decoding device are therefore the same as those of the decoding method and will not be further detailed.
[0029] The decoding device specifically performs the following for at least one block of the image, referred to as the current block: - decoding an item of information indicating a coding mode of the current block among at least a first coding mode and a second coding mode, wherein the second coding mode is: - obtaining a prediction of said pixel from another previously decoded pixel, said another previously decoded pixel belonging to said current block or to a previously decoded block of an image; - decoding a prediction residual associated with said pixel; and - reconstructing said pixel from the obtained prediction of said pixel and a decoded prediction residual associated with said pixel. is the coding mode according to which the current block is decoded; - decoding the current block according to the coding mode indicated by the decoded item of information; - applying at least one processing method to the reconstructed current block when a coding mode of the current block corresponds to a coding mode different from the second coding mode; - disabling application of the at least one processing method to the reconstructed current block for at least one pixel of the current block when a coding mode of the current block corresponds to a second coding mode; The method includes a processor configured to:
[0030] According to a particular embodiment of the invention, such a decoding device is included in a terminal.
[0031] The present invention also relates to a coding device configured to implement the coding method according to any one of the specific embodiments defined above. This coding device can naturally have various characteristics related to the coding method according to the invention. The characteristics and advantages of this coding device are therefore the same as those of the coding method and will not be further detailed.
[0032] The encoding device specifically performs the following for at least one block of the image, referred to as the current block: - coding an item of information indicating a coding mode of the current block among at least a first coding mode and a second coding mode, wherein the second coding mode is: - obtaining a prediction of said pixel from another previously decoded pixel, said another previously decoded pixel belonging to said current block or to a previously decoded block of an image; - coding a prediction residual associated with said pixel obtained from the prediction of said pixel; and - reconstructing the pixel from a decoded prediction residual associated with the pixel and a prediction of the pixel. is the coding mode according to which the current block is coded; - coding the current block according to a coding mode indicated by a coded item of information; - applying at least one processing method to the reconstructed current block when a coding mode of the current block corresponds to a coding mode different from the second coding mode; - disabling application of the at least one processing method to the reconstructed current block for at least one pixel of the current block when a coding mode of the current block corresponds to a second coding mode; The method includes a processor configured to:
[0033] According to a particular embodiment of the invention, such a coding device is comprised in a terminal or in a server.
[0034] The decoding method and the encoding method, respectively, according to the present invention can be implemented in various ways, in particular in hardwired or software form. According to a particular embodiment of the present invention, the decoding method and the encoding method, respectively, are implemented by a computer program. The present invention also relates to a computer program comprising instructions for implementing the decoding method or the encoding method according to any one of the particular embodiments described above, when said program is executed by a processor. Such a program can use any programming language. The program can be downloaded from a communication network and / or recorded on a computer-readable medium.
[0035] The program may use any programming language and may be in the form of source code, object code, or an intermediate code between source code and object code, such as in partially compiled form, or in any other desired form.
[0036] The present invention also relates to a computer-readable storage medium or data medium storing instructions for a computer program as described above. The storage medium may be any entity or device capable of storing a program. For example, the medium may include storage means such as a memory. Alternatively, the storage medium may represent a transmissible medium, such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means. The program according to the invention may in particular be downloaded over an Internet-type network.
[0037] Alternatively, the recording medium may represent an integrated circuit in which the program is embedded, the circuitry being adapted for performing, or for use in the performance of, the method in question.
[0038] Other characteristics and advantages of the invention will appear more clearly on reading the following description of particular embodiments, given as brief, illustrative and non-limiting examples, and the accompanying drawings, in which: [Brief explanation of the drawings]
[0039] [Figure 1] 3 illustrates steps of a coding method according to a particular embodiment of the invention; [Figure 2] 3A and 3B are diagrams illustrating example positions of neighboring blocks of a current block for determining an intra-prediction mode, according to certain embodiments of the present invention. [Figure 3] 3A-3C illustrate example locations of reference pixels used to predict pixels of a current block, according to certain embodiments of the present invention. [Figure 4] 3 illustrates steps of a decoding method according to a particular embodiment of the invention; [Figure 5A] FIG. 2 illustrates a reconstructed block of pixels in which post-processing operations are applied or not applied to pixels according to the coding mode of the block to which the pixels belong, according to a particular embodiment of the invention. [Figure 5B] FIG. 2 illustrates a reconstructed block of pixels in which post-processing operations are applied or not applied to pixels according to the coding mode of the block to which the pixels belong, according to a particular embodiment of the invention. [Figure 6] 1 shows a simplified structure of a coding device adapted to implement a coding method according to any one of the particular embodiments of the present invention; [Figure 7] FIG. 2 shows a simplified structure of a decoding device adapted to implement a decoding method according to any one of the particular embodiments of the present invention; DETAILED DESCRIPTION OF THE INVENTION
[0040] general principle Processing operations, also referred to as post-processing operations, performed after decoding an image are integrated into video coding standards to improve the quality of the reconstructed image. For example, such post-processing operations may consist in applying a deblocking filter or a SAO (Sample Adaptive Offset) post-processing operation.
[0041] The deblocking filter operation makes it possible to erase the discontinuities that exist between blocks after decoding them and to which the human eye is very sensitive, while the SAO processing operation makes it possible to modify the value of each pixel of a decoded block individually.
[0042] These two post-processing methods are integrated, for example, into the HEVC compression standard, resulting in improved compression and quality.
[0043] However, according to the invention, a new coding mode for blocks of an image, called ILR (In-Loop Residual) coding, makes it possible to advantageously eliminate the need for these two post-processing methods.
[0044] Regarding the effect of discontinuities between blocks, such an effect is mainly due to conventional coding of residuals in the form of a transform. The basis vectors of the transform are block-wide and do not allow for individual control of pixel values along the block boundaries. However, the ILR coding mode allows the intensity of each pixel to be coded independently of each other. Therefore, no block effect is observed and filtering is unnecessary.
[0045] Similarly, the SAO processing operation aims to modify the individual values of some pixels after conventional coding. Moreover, the ILR coding mode described later already allows the value of each pixel to be coded individually, so no SAO processing operation is required for these pixels.
[0046] However, in order to optimize the coding cost of a video sequence, it is necessary for the encoder to be able to choose between a conventional coding mode and an ILR coding mode for each block to be coded.
[0047] Therefore, the general principle of the invention is to activate or not activate the application of post-processing methods to a reconstructed block depending on whether the block was coded / decoded according to an ILR coding mode.
[0048] There are several advantages to the conventional coding method, i.e., enabling deblocking and / or SAO processing operations only for blocks coded by coding modes other than ILR. Indeed, this reduces the transmission rate, since syntax elements related to deblocking filters or SAO processing operations are not transmitted for blocks coded / decoded according to the ILR coding mode. This also significantly speeds up decoding, since blocks coded / decoded according to the ILR coding mode do not require the application of deblocking and / or SAO processing steps, which are very cumbersome to implement in terms of computational and memory resources.
[0049] Embodiment 1 illustrates the steps of a coding method according to a particular embodiment of the invention. For example, given a sequence of images I1, I2, ..., I Nbare coded in the form of a coded data stream STR according to a particular embodiment of the invention, for example, by a coding device such as that described below with reference to FIG.
[0050] A sequence of images I1, I2, …, I Nb is provided as input to the coding method, where Nb is the number of images in the sequence to be coded. The coding method outputs a coded data stream STR representing the sequence of images provided as input.
[0051] In a known scheme, a sequence of images I1, I2, ..., I Nb The coding of I is done picture by picture according to a coding order that is previously established and known to the encoder. For example, the pictures are coded in the temporal order I, I, ..., I Nb or in another order, e.g., I1, I3, I2, …, I Nb It can be coded as:
[0052] In step E0, a sequence of images I1, I2, ..., I Nb Image I to be coded j is divided into blocks, for example, of size 32x32 or 64x64 pixels or larger. Such blocks may be further divided into square or rectangular sub-blocks, for example, 16x16, 8x8, 4x4, 16x8, 8x16, ...
[0053] In step E1, image I j The first block or sub-block to be coded is X b But image I j For example, it may be the first block in the lexicographical scan order of the image.
[0054] In step E2, the encoder calculates the current block X bYou will then need to select the coding mode for coding the
[0055] According to the particular embodiment described herein, the encoder performs a b , select a coding mode for coding , from a first coding mode M1 and a second coding mode M2. Additional coding modes (not described here) may be used.
[0056] According to a particular embodiment described herein, the first coding mode M1 corresponds to coding of the current block by conventional intra prediction, e.g., as defined according to the HEVC standard, and the second coding mode M2 corresponds to In-Loop Residual (ILR) predictive coding.
[0057] The principles of the present invention may be extended to other types of coding modes for the first coding mode M1. For example, the first coding mode may correspond to any type of coding mode that uses a transformation of a prediction residual (e.g., inter-picture predictive coding, spatial prediction with template matching coding, etc.).
[0058] In step E2, the encoder may perform a rate / distortion optimization to determine the best coding mode for coding the current block. During this rate / distortion optimization, additional coding modes different from the first and second coding modes, e.g., inter-mode coding modes, may be tested. During this rate / distortion optimization, the encoder may test the current block X with different available coding modes to determine the rate and distortion associated with each coding mode. band selects the coding mode that offers the best rate / distortion compromise according to, for example, a D+λR function, where R is the rate required to code the current block according to the coding mode being evaluated, D is the distortion measured between the decoded block and the original current block, and λ is a Lagrange multiplier, for example, input by a user or specified in the encoder.
[0059] At step E20, an item of information indicating the coding mode selected for the current block is coded in the data stream STR.
[0060] Currently Block X b If the current block X is coded according to the first coding mode M1, the method proceeds to step E21 for coding the block according to M1. b If is coded according to the second coding mode M2, the method proceeds to step E22 for coding the block according to M2.
[0061] A step E21 for coding a block according to a first coding mode M1 according to a particular embodiment of the invention is described below. According to the particular mode described here, the first coding mode corresponds to conventional intra prediction, such as that defined in the HEVC standard.
[0062] In step E210, a quantization step δ is determined. For example, the quantization step δ can be set by a user or calculated using a quantization parameter that sets a compromise between compression and quality and is input by the user or specified by the encoder. Such a quantization parameter can therefore be the parameter λ used in the rate-distortion cost function D+λ.R, where D represents the distortion introduced by coding and R represents the rate used for coding. This function is used to make coding choices, and typically a method of coding an image that minimizes this function is sought.
[0063] As a variant, the quantization parameter may be QP, which corresponds to the quantization parameter conventionally used in the AVC or HEVC standard. Thus, in the HEVC standard, the quantization step δ1 is determined by the equation δ1=levelScale[QP%6]<<(QP / 6)), where levelScale[k]={40, 45, 51, 57, 64, 72} for k=0,...,5.
[0064] In step E211, a prediction for the current block is determined using a conventional intra prediction mode, in which each pixel to be predicted is calculated only from decoded pixels originating from neighboring blocks (reference pixels) located above and to the left of the current block. The way in which pixels are predicted from the reference pixels depends on a prediction mode, which is transmitted to the decoder and chosen by the encoder from a predetermined set of modes known to the encoder and the decoder.
[0065] Thus, in HEVC, there are 35 possible prediction modes, namely, 33 modes that interpolate reference pixels in 33 different angular directions, as well as two other modes: DC mode, in which each pixel of the predicted block is generated from the average of reference pixels, and PLANAR mode, which performs planar and omnidirectional interpolation. This "traditional intra prediction" is well known and is also used in the ITU-T H.264 standard (which has only 9 different modes) and in the experimental JEM software, available at the Internet address (https: / / jvet.hhi.fraunhofer.de / ), which has 67 different prediction modes. In all cases, traditional intra prediction emphasizes the two aspects mentioned above: predicting pixels from neighboring blocks and transmitting the optimal prediction mode to the decoder.
[0066] In step E211, the encoder selects one of the available prediction modes from a predetermined list of prediction modes. One way to select is, for example, to evaluate all prediction modes and to retain the prediction mode that minimizes a cost function, such as classically the rate-distortion cost.
[0067] In step E212, the prediction mode chosen for the current block is coded from the neighboring blocks of the current block. b current block X for coding the prediction mode of b Adjacent Block A b and B b An example of the position is shown below.
[0068] In step E212, the intra prediction mode chosen for the current block is coded using the intra prediction modes associated with the neighboring blocks.
[0069] For example, the technique described in the HEVC standard for coding the prediction mode of a current block may be used. In the example in FIG. 2, such a technique is used for coding the prediction mode of a block A b The intra prediction mode m associated with A , and block B located just to the left of the current block b The intra prediction mode m associated with B The purpose of this study is to identify the m A and m B Depending on the value of , a list called MPM (representing the most dominant modes) containing three intra prediction modes and a list called non-MPM containing 32 other prediction modes are created.
[0070] According to the HEVC standard, to code the intra prediction mode of the current block, a syntax element, i.e. A binary indicator is transmitted indicating whether the prediction mode to be coded for the current block is in the MPM list; If the prediction mode of the current block belongs to the MPM list, an index in the MPM list corresponding to the prediction mode of the current block is coded; If the prediction mode of the current block does not belong to the MPM list, an index in the non-MPM list corresponding to the prediction mode of the current block is coded.
[0071] In step E213, a prediction residual R for the current block is constructed.
[0072] In step E213, in a standard manner, a predicted block P is constructed according to the prediction mode chosen in step E211. A prediction residual R is then obtained by calculating the difference for each pixel between the predicted block P and the original current block.
[0073] In step E214, the prediction residual R is T is converted to
[0074] At step E214, a block R containing the transform coefficients is T A frequency transform is applied to the residual block R to generate . The transform may be, for example, a DCT type transform. The transform to be used is defined as a predefined set of transforms E T It is possible to choose between and inform the decoder which transformation to use.
[0075] In step E215, the transformed residual block R T is quantized using, for example, scalar quantization with quantization step δ. This means that the quantized transformed prediction residual block R TQ Generate.
[0076] At step E216, the quantized block R TQ The coefficients of are coded by an entropy encoder. For example, entropy coding specified in the HEVC standard may be used.
[0077] In the known method, the current block is divided into quantized blocks R TQ The current block is decoded by dequantizing the coefficients of the current block and then applying an inverse transform to the dequantized coefficients to obtain a decoded prediction residual. A prediction is then added to the decoded prediction residual to reconstruct the current block and obtain a decoded version of it. The decoded version of the current block can then be used later to spatially predict other neighboring blocks of the image or to predict blocks of other images by inter-image prediction.
[0078] A step E22 for coding a block according to a second coding mode M2 according to a particular embodiment of the invention is described below. According to the particular embodiment described here, the second coding mode corresponds to ILR predictive coding.
[0079] In step E220, a local predictor PL for the current block is determined. According to the coding mode described here, the pixels of the current block are predicted by previously reconstructed pixels of its neighboring blocks or of the current block itself.
[0080] Preferably, for prediction, a pixel as close as possible to the pixel to be predicted is chosen. This is why it is called a local predictor. The local predictor PL may also be incorporated into the prediction mode of the current block associated with the second coding mode M2. According to this interpretation, in the particular embodiment described herein, the first coding mode uses a first group of intra prediction modes, for example, the intra prediction modes defined by the HEVC standard, and the second coding mode, here the ILR mode, uses a second group of prediction modes that is different from the first group of intra prediction modes.
[0081] The local predictor PL may be unique or may be selected from a predetermined set of local predictors (second group of prediction modes).
[0082] According to one embodiment variant, four local predictors are defined. Thus, as illustrated in Figure 3 showing a current block Xb, if a current pixel to be predicted from a current block is called X, the pixel located immediately to the left of X is called A, the pixel located immediately to the left and above X is called B, and the pixel located immediately above X is called C. Four local predictors PL1, PL2, PL3, PL4 can be defined as follows: PL1(X)=min(A,B) if C≧max(A,B) max(A,B) if C≦min(A,B) A+BC Other cases PL2(X)=A PL3(X)=B PL4(X)=C Here, min(A,B) corresponds to a function that returns the minimum value between the value of A and the value of B, and max(A,B) corresponds to a function that returns the maximum value between the value of A and the value of B.
[0083] In step E220, the local predictor PL to be used for the current block is determined. In other words, the same local predictor, i.e. the same prediction function, will be used for all pixels of the current block. To this end, several implementation variants are possible.
[0084] The coding of the current block using each of the predictors may be simulated (similar to the optimization for choosing a coding mode for the current block), and a local predictor is selected that optimizes a cost function (e.g., minimizes the D+λ.R function, where R is the rate used to code the block, D is the distortion of the decoded block relative to the original block, and λ is a parameter set by the user).
[0085] Otherwise, to limit the complexity of selecting a local predictor for the current block, the texture orientation of previously coded pixels is analyzed, for example, previously coded pixels in blocks located above or to the left of the current block are analyzed using a Sobel-type operator. If the orientation is determined to be horizontal, the local predictor PL2 is selected; If the orientation is determined to be vertical, the local predictor PL3 is selected; If the orientation is determined to be diagonal, the local predictor PL4 is selected; If the orientation is not clear, the local predictor PL1 is selected.
[0086] A syntax element is coded in the data stream STR to indicate to the decoder which local predictor was used to predict the current block.
[0087] In step E221, a quantization step δ2 is determined, which depends on the same quantization parameter as the quantization step δ1 to be determined in step E210, for example if the current block is coded according to the first coding mode.
[0088] In step E222, a prediction residual R1 is calculated for the current block. For this purpose, once a local predictor has been chosen, for each current pixel of the current block: - To obtain a prediction value PRED, the current pixel X of the current block is predicted by the selected local predictor PL using either already reconstructed pixels outside the block (and therefore available with their decoded values) or previously reconstructed pixels within the current block, or both. In all cases, the predictor PL uses previously reconstructed pixels. In Figure 3, it can be seen that the pixels of the current block located in the first row and / or first column of the current block will use already reconstructed pixels outside the block (pixels in grey in Figure 3) and possibly also already reconstructed pixels of the current block as reference pixels (for constructing the prediction value PRED). For other pixels of the current block, the reference pixels used to construct the prediction value PRED are located inside the current block. The difference DIFF between PRED and X is quantized to a value Q(X) by a quantization step scalar quantizer δ2 with Q(X)=ScalarQuant(DIFF)=ScalarQuant(δ2,X-PRED), the scalar quantizer being, for example,
[0089]
number
[0090] Q(X) is the quantized residual associated with X. Q(X) is calculated in the spatial domain, i.e., directly from the difference between the predicted value PRED of pixel X and the original value of X. Such a quantized residual Q(X) for pixel X is then stored in a quantized prediction residual block R1 to be coded later. Q is stored in the - The decoded prediction P1(X) of X is calculated by adding the dequantized value of the quantized residual Q(X) to the prediction PRED. The decoded prediction P1(X) of X is thus obtained by P1(X) = PRED + ScalarDequant(δ2,Q(X)). For example, the closest scalar quantization inverse function is given by ScalarDequant(Δ,x) = Δ×x.
[0091] The decoded prediction value P1(X) thus makes it possible to predict possible pixels in the current block that are still to be processed. Moreover, the block P1 containing the decoded / reconstructed values of the pixels of the current block is an ILR predictor (rather than a conventional intra predictor) of the current block.
[0092] The sub-steps described above are performed for all pixels of the current block in a scan order that ensures that the pixels used for prediction, chosen from PL1, . . . , PL4, are available.
[0093] According to one implementation variant, the scanning order of the current block is lexicographic, ie from left to right and top to bottom.
[0094] According to another implementation variant, several scanning orders of the current block, e.g. - lexicographical order, or - Scan the first column from top to bottom, then the column just to the right of that, etc., or Alternating diagonal scans can be used.
[0095] According to another variant, it is possible to simulate the coding costs associated with each of the scanning orders and to choose the best scanning order for the current block from a rate / distortion perspective, and then code an item of information representing the chosen scanning order for the current block.
[0096] At the end of step E222, the quantized residual block R1 Q This quantized residual block R1 Q must be coded for transmission to the decoder. The predictor P1 for the current block has also been determined.
[0097] In step E223, the quantized residual block R1 Q are coded for transmission to the decoder. Any known technique may be used to code the quantized coefficients of the conventional prediction residual, such as the methods described in HEVC.
[0098] According to the particular embodiment of the invention described herein, the quantized residual block R1 Q The values of are coded using an entropy encoder from the data stream STR.
[0099] According to a particular embodiment of the invention, it is possible to determine and code an additional prediction residual R2 from the ILR predictor obtained for the current block. However, coding of the additional prediction residual R2 is optional. Simply, the ILR predictor is determined from its predicted version P1 and the quantized residual R1. Q It is indeed possible to code the current block by:
[0100] To code the additional prediction residual R2 for the current block, the following steps are performed.
[0101] In step E224, the predictor P1 and the original current block X b The difference R2 between the two is calculated and the additional residual R2: R2 = X b-P1. The following steps correspond to the conventional coding steps for this residual R2.
[0102] In step E225, coefficient R2 T The residual R2 is transformed using a frequency transform to produce a block of
[0103] The transformation may be, for example, a DCT type transformation. The transformation to be used is selected from a predetermined set of transformations E T2 It is possible to choose from the set E to match specific statistics of the residual R2. T2 Set E T may be different from.
[0104] In step E226, coefficient R2 T is quantized using, for example, a quantization step scalar quantization δ. This means that the block R2 TQ Generate.
[0105] The quantization step δ can be set by the user. The quantization step δ can also be calculated using another parameter λ, which sets a compromise between compression and quality and is input by the user or the encoder. For example, the quantization step δ can correspond to the quantization step δ or can be determined similarly to the quantization step δ.
[0106] In step E227, the quantization block R2 TQ The coefficients of are then transmitted in a coded manner. For example, the coding specified in the HEVC standard may be used.
[0107] In a known manner, the quantization block R2 TQ The current block is decoded by dequantizing the coefficients of P and then applying an inverse transform to the dequantized coefficients to obtain a decoded prediction residual. The prediction P is then used to reconstruct the current block and its decoded version Xrec is added to the decoded prediction residual to obtain the decoded version X of the current block. rec can then be used later to spatially predict other neighboring blocks of the image or to predict blocks of other images by inter-image prediction.
[0108] In step E23, it is checked whether the current block is the last block of the image to be processed by the coding method, taking into account the previously defined scanning order. If the current block is not the last block of the image to be processed, in step E24 a subsequent block of the image to be processed is selected according to the previously defined scanning order of the image, and the coding method proceeds to step E2, where the selected block becomes the current block to be processed.
[0109] If all blocks of the image have been coded, the process proceeds to step E231, which involves applying post-processing methods to be applied to the reconstructed image. As explained above, these post-processing methods may be deblocking filtering and / or SAO methods. Step E231 will be explained later, as the application of post-processing operations is performed similarly in the encoder and decoder.
[0110] After applying at least one post-processing method, the method proceeds to the coding of the next image of the video, if any (step E25).
[0111] FIG. 4 shows a sequence of images I1, I2, ..., I to be decoded according to a particular embodiment of the invention. Nb 1 shows the steps of a method for decoding a stream of coded data STR representing
[0112] For example, the data stream STR has been generated via the coding method illustrated in relation to figure 1. The data stream STR is provided as input to a decoding device DEC, as will be explained in relation to figure 7.
[0113] The decoding method decodes the stream picture by picture, and each picture is decoded block by block.
[0114] At step E40, the image I to be decoded is j is subdivided into blocks. Each block undergoes a decoding operation in a series of steps, which are detailed below. The blocks can be of the same size or of different sizes.
[0115] In step E41, image I j The first block or sub-block X to be decoded b But image I j is selected as the current block according to a predetermined scanning order of the image. For example, it may be the first block in the lexicographical scanning order of the image.
[0116] In step E42, an item of information indicating the coding mode for the current block is read from the data stream STR. According to a particular embodiment described herein, this item of information indicates whether the current block is coded according to a first coding mode M1 or a second coding mode M2. According to a particular embodiment described herein, the first coding mode M1 corresponds to conventional intra-predictive coding of the current block, for example as defined according to the HEVC standard, and the second coding mode M2 corresponds to in-loop residual (ILR) predictive coding.
[0117] In other particular embodiments, the item of information read from the stream STR may also indicate the use of other coding modes for coding the current block (not described here).
[0118] The step E43 for decoding the current block when it is coded according to the first coding mode M1 is described below.
[0119] In step E430, a quantization step δ1 is determined. For example, the quantization step δ1 is determined from the quantization parameter QP read in step E401, or as done in the encoder. For example, the quantization step δ1 may be calculated using the quantization parameter QP read in step E401. For example, the quantization parameter QP may be a quantization parameter conventionally used in the AVC or HEVC standard. Thus, in the HEVC standard, the quantization step δ1 is determined by the equation δ1=levelScale[QP%6]<<(QP / 6)), where levelScale[k]={40, 45, 51, 57, 64, 72} for k=0,...,5.
[0120] In step E431, the prediction mode chosen for coding the current block is decoded from the neighboring blocks. To this end, the intra prediction mode chosen for the current block is coded using the intra prediction modes associated with the neighboring blocks of the current block, as was done in the encoder.
[0121] The construction of both MPM and non-MPM lists is strictly similar to that done during coding. According to the HEVC standard, the following types of syntax elements are used: A binary indicator indicating whether the prediction mode to be coded for the current block is in the MPM list is decoded; - if the prediction mode of the current block belongs to the MPM list, an index in the MPM list corresponding to the prediction mode of the current block to be coded; - If the prediction mode of the current block does not belong to the MPM list, an index in the non-MPM list corresponding to the prediction mode of the current block to be coded.
[0122] The binary indicator and the prediction mode index are thus read for the current block from the data stream STR to decode the intra-prediction mode of the current block.
[0123] In step E432, the decoder constructs a prediction block P for the current block from the decoded prediction mode.
[0124] In step E433, the decoder extracts the quantization blocks R from the data stream STR, for example using the decoding specified in the HEVC standard. TQ Decode the coefficients of
[0125] At step E434, the decoded block R TQ is dequantized, for example, using a δ quantization step scalar dequantization. This means that the dequantized coefficients R TQD Generate a block of
[0126] At step E435, the decoded prediction residual block R TQDI The dequantized coefficients R TQD An inverse frequency transform is applied to the blocks of . The transform may be, for example, an inverse DCT type transform. By decoding an indicator from the data stream STR, the transform to be used can be selected from a predefined set of transforms E TI It is possible to choose from.
[0127] At step E436, the decoded current block X rec , X rec =P+R TQDI the prediction block P obtained in step E432 and the decoded residual block R obtained in step E435, TQDI From this, the current block is reconstructed.
[0128] The step E44 for decoding the current block when it is coded according to the second coding mode M2 is described below.
[0129] In step E440, the local predictor PL to be used to predict the pixels of the current block is determined. If only one predictor is available, the local predictor is set by default, for example at the decoder level, and no syntax element needs to be read from the stream STR to determine it.
[0130] If several local predictors are available, such as the predictors PL1-PL4 described above, a syntax element is decoded from the data stream STR to identify which local predictor was used to predict the current block, and the local predictor is so determined from the decoded syntax element.
[0131] In step E441, the quantization step δ2 is determined in the same way as it was done in the encoder.
[0132] In step E442, the quantized residual R1 is extracted from the data stream STR. Q Any known technique may be used to decode the quantized coefficients of the conventional prediction residual, such as the methods described in HEVC.
[0133] In step E443, the dequantized residual block R1 QD quantize residual block R1 using quantization step δ2 to generate Q is dequantized.
[0134] In step E444, the dequantized residual block R1 QD Once obtained, a prediction block P1 is constructed using the local predictor PL determined at step E440.
[0135] In step E444, each pixel of the current block is predicted and reconstructed as follows: - To obtain a prediction value PRED, the current pixel X of the current block is predicted by a selected predictor PL using either already reconstructed pixels outside the block or previously reconstructed pixels of the current block, or both. In all cases, the predictor PL uses previously decoded pixels. The decoded prediction P1(X) of the current pixel X is P1(X)=PRED+R1 QD The dequantized value of the prediction residual, R1, is QD is calculated by adding to the predicted value PRED.
[0136] These steps are performed for all pixels of the current block, in a scan order that ensures that the pixels used for prediction, chosen from PL1, . . . , PL4, are available.
[0137] For example, the scan order is lexicographical (left to right, then rows from top to bottom).
[0138] According to a particular embodiment of the invention, a prediction block P1 with decoded prediction values P1(X) of each pixel of the current block is calculated based on the decoded current block X. rec is formed here.
[0139] According to another particular embodiment of the invention, it is now taken into account that an additional prediction residual has been coded for the current block. rec To reconstruct the decoded version of {tilde over (x)}, it is necessary to decode this additional prediction residual.
[0140] For example, this other particular embodiment may be activated or not by default at the encoder and decoder levels. Alternatively, an indicator may be coded in the data stream together with block-level information to indicate whether additional prediction residuals are coded for each block coded according to the ILR coding mode. Alternatively, an indicator may be coded in the data stream together with image or sequence-level information to indicate whether additional prediction residuals are coded for all blocks of an image or sequence of images coded according to the ILR coding mode.
[0141] When additional prediction residuals are coded for the current block, in step E445, the quantized prediction residual R2 TQ are decoded from the data stream STR using means adapted to those implemented in an encoder, for example means implemented in an HEVC decoder.
[0142] At step E446, the quantization coefficient R2 TQ The block of is dequantized, for example, using scalar dequantization with quantization step δ1. This means that the dequantized coefficient R2 TQD Generate a block of
[0143] At step E447, the decoded prediction residual block R2 TQDI To generate the block R2 TQD An inverse frequency transform is applied to
[0144] The inverse transform may for example be an inverse DCT type transform.
[0145] The transformations to be used are defined in a given set of transformations E T2It is possible to choose from the set E to match particular statistics of the residual R2 and decode an item of information that informs the decoder which transformation should be used. T2 Set E T is different.
[0146] In step E448, the prediction block P1 obtained in step E444 is decoded to obtain the prediction residual R2 TQDI The current block is reconstructed by adding to
[0147] In step E45, it is checked whether the current block is the last block of the image to be processed by the decoding method, taking into account the previously defined scanning order. If the current block is not the last block of the image to be processed, in step E46 a subsequent block of the image to be processed is selected according to the previously defined scanning order of the image, and the decoding method proceeds to step E42, with the selected block becoming the current block to be processed.
[0148] If all blocks of the image have been decoded, the process proceeds to step E451, which is the application of at least one post-processing method to be applied to the reconstructed image. As explained above, these post-processing methods may be deblocking filtering and / or SAO methods.
[0149] After applying at least one post-processing method, the method proceeds to the decoding of the next image of the video, if any (step E47).
[0150] In the following, steps E231 and E451 for applying at least one post-processing method in the encoder and decoder according to the invention, respectively, are described.
[0151] Post-processing operations generally require access to data contained in neighboring blocks of the current block to be processed, including "future" or not-yet-reconstructed blocks, according to the scanning order of blocks in the image used in the encoder and decoder. Post-processing operations are therefore generally performed by performing a second complete loop over all reconstructed blocks of the image. Thus, in the encoder and decoder, a first loop over all blocks of the image constructs reconstructed versions of the blocks from the coded information for the blocks, and then a post-processing loop operates again through the reconstructed blocks to improve their reconstruction. Two extended examples are given above, and the general principles of the invention naturally apply to other post-processing methods.
[0152] Deblocking Filter Processing During this processing operation, a "deblocking" filter is applied to the reconstructed blocks of the image. This filter generally consists in applying a low-pass filter to the pixels at the boundaries of the reconstructed blocks. Such filters are described in general terms in the article by Andrey Norkin et al., "HEVC deblocking filter," IEEE Transactions on Circuits and Systems for Video Technology (Vol. 22, Published: December 12, 2012), pp. 1746-1754, October 5, 2012.
[0153] According to a particular embodiment of the invention, deblocking filtering is applied only at the boundary of two reconstructed blocks that were previously coded by a conventional coding mode, ie other than ILR.
[0154] This particular embodiment of the present invention is shown, for example, in FIG. 5A, which shows the following. - a reconstructed block 80 of pixels decoded according to the coding mode M2(ILR), a reconstructed block 81 of pixels decoded according to coding mode M1 (non-ILR) adjacent to block 80; a reconstructed block 82 of pixels decoded according to coding mode M1 (non-ILR) adjacent to block 81;
[0155] In FIG. 5A, - the shaded pixels correspond to pixels for which the application of deblocking filtering is disabled; dotted pixels are pixels that do not participate in the deblocking filtering process due to their location within the reconstructed block; - White pixels are pixels to which deblocking filtering is applied.
[0156] Thus, according to the particular embodiment of the invention being described, when a current block, e.g., block 80, is decoded or coded according to coding mode M2, the application of deblocking filtering to the reconstructed current block is disabled for all pixels of the current block, as shown in Figure 5A, where all pixels at the boundary of block 80 are shaded.
[0157] Furthermore, when a current block, e.g., block 81, is decoded or coded according to a conventional, i.e., non-ILR, coding mode, deblocking filtering is applied to pixels of the reconstructed current block if the pixels are located on the boundary of the reconstructed current block with a neighboring block, and if the neighboring block is decoded or coded according to a conventional, i.e., non-ILR, coding mode. This is shown in Figure 5A, where all pixels of block 81 that are on the boundary with block 80 are shaded and all pixels of block 81 that are on the boundary with block 82 are white.
[0158] According to a particular embodiment of the present invention, deblocking filtering is applied only at the boundary of two blocks, at least one of which is coded / decoded according to a conventional coding mode (e.g., M1 in the example described with reference to Figures 2 and 4).
[0159] This particular embodiment of the present invention is shown, for example, in FIG. 5B, which shows the following. - a reconstructed block 83 of pixels decoded according to coding mode M1 (non-ILR), a reconstructed block 84 of pixels decoded according to coding mode M2(ILR) adjacent to the block 83; a reconstructed block 85 of pixels decoded according to coding mode M2(ILR), adjacent to block 84;
[0160] In FIG. 5B, - the shaded pixels correspond to pixels for which the application of deblocking filtering is disabled; - dotted pixels are pixels that do not participate in the deblocking filtering process due to their location within the block; - White pixels are pixels to which deblocking filtering is applied.
[0161] Thus, according to the particular embodiment of the invention being described, when a current block, e.g., block 84, is decoded or coded according to coding mode M2(ILR), application of deblocking filtering is disabled for pixels of the reconstructed current block 84 if the pixels are located on the boundary of the reconstructed current block 84 with a neighboring block, and if said neighboring block is decoded or coded according to coding mode M2(ILR). This is shown in Figure 5B, where all pixels of block 84 that are on the boundary with block 85 are shaded.
[0162] Moreover, according to this particular embodiment of the present invention, deblocking filtering is applied to pixels of the reconstructed current block (84) if the pixels are located on the boundary of the reconstructed current block with a neighboring block, and if the neighboring block was decoded or coded according to a coding mode different from coding mode M2. This is shown in Figure 5B, where all pixels of block 84 that are located on the boundary with block 83 are white.
[0163] SAO processing operation Typically, an SAO processing operation is applied to all pixels of a reconstructed block. Such an SAO processing operation consists in shifting the decoded value of each pixel of a block by a value explicitly transmitted to the decoder, depending on the surrounding context of the pixel. The SAO processing operation is described in Chih-Ming Fu, Elena Alshina, Alexander Alshin, Yu-Wen Huang, Ching-Yeh Chen, Chia-Yang Tsai, Chih-Wei Hsu, Shaw-Min Lei, Jeong-Hoon Park, Woo-Jin Han, "Sample Adaptive Offset in the HEVC Standard," IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, Vol. 22, No. 12, December 2012, pp. 1755.
[0164] According to certain embodiments of the present invention, the SAO processing operation is applied only to reconstructed blocks coded according to a conventional, i.e., non-ILR, coding mode. In other words, when a current block is decoded or coded according to an ILR coding mode (M2 in the example described above), the application of the SAO method to the reconstructed current block is disabled for all pixels of the reconstructed current block.
[0165] FIG. 6 shows a simplified structure of a coding device COD adapted to implement a coding method according to any one of the particular embodiments of the invention.
[0166] According to a particular embodiment of the invention, the steps of the coding method are implemented by computer program instructions. For this purpose, the coding device COD has a computer of standard architecture and in particular comprises a processing unit UT equipped with a memory MEM, for example a processor PROC, and driven by a computer program PG stored in the memory MEM. The computer program PG contains instructions for implementing the steps of the coding method as described above, when the program is executed by the processor PROC.
[0167] During initialization, the code instructions of the computer program PG are loaded, for example, into a RAM memory (not shown) before being executed by the processor PROC, which in particular performs the steps of the coding method described above according to the instructions of the computer program PG.
[0168] FIG. 7 shows a simplified structure of a decoding device DEC adapted to implement the decoding method according to any one of the particular embodiments of the invention.
[0169] According to a particular embodiment of the invention, the decoding device DEC comprises a computer of standard architecture and in particular comprises a processing unit UT0 equipped with a memory MEM0, for example a processor PROC0, and driven by a computer program PG0 stored in the memory MEM0, the computer program PG0 comprising instructions for carrying out the steps of the decoding method as described above, when the program is executed by the processor PROC0.
[0170] During initialization, the code instructions of the computer program PG0 are loaded, for example, into a RAM memory (not shown) before being executed by the processor PROC0. In particular, the processor PROC0 of the processing unit UT0 performs the steps of the decoding method described above according to the instructions of the computer program PG0. [Explanation of symbols]
[0171] I j image M1 First coding mode M2 Second coding mode STR Data Stream X b Current Block A b ,B b Adjacent blocks COD coding device DEC Decryption Device MEM,MEM0 memory PG,PG0 Computer Program UT,UT0 Processing Unit PROC,PROC0 processor 80, 81, 82, 83, 84, 85 blocks
Claims
1. 1. A method for decoding a coded data stream representing at least one image, the image being divided into blocks, the method comprising: reconstructing the image; processing the reconstructed image; Including, The reconstructing step comprises, for at least one block of the image, referred to as a current block: - a step (E42) of decoding an item of information indicating a coding mode of the current block out of at least a first coding mode and a second coding mode, wherein the second coding mode is decoded for each pixel of the current block without inverse transforming a transformed prediction residual of the current block, - obtaining a prediction of said pixel from another previously decoded pixel, said another previously decoded pixel belonging to said current block or to a previously decoded block of said image; - decoding a prediction residual associated with said pixel; and - reconstructing the pixel from the obtained prediction of the pixel and the decoded prediction residual associated with the pixel. a decoding step (E42) according to which the current block is decoded (E44), - decoding (E44, E43) said current block according to said coding mode indicated by said decoded item of information; Including, The processing step comprises, for at least one reconstructed block, referred to as a reconstructed current block: - applying at least one processing method to the reconstructed current block when the reconstructed current block is decoded according to a coding mode different from the second coding mode; when the reconstructed current block is decoded according to the second coding mode; - the application of the at least one processing method to the reconstructed current block is disabled for pixels of the reconstructed current block if the pixel is located on a boundary of the reconstructed current block with a neighboring block in the image and if the neighboring block is decoded according to the second coding mode; - applying the at least one processing method to pixels of the reconstructed current block if the pixels are located on a boundary of the reconstructed current block with a reconstructed neighboring block in the image, and if the neighboring block is decoded according to a coding mode different from the second coding mode; A method comprising:
2. 1. A method for encoding a data stream representing at least one image, wherein the image is divided into blocks, the encoding method comprising: encoding the image; processing the reconstructed image; Including, The encoding step comprises, for at least one block of the image, referred to as a current block: - coding (E20) an item of information indicating a coding mode of the current block out of at least a first coding mode and a second coding mode, wherein the second coding mode is coded for each pixel of the current block without transforming a prediction residual of the current block, - obtaining a prediction of said pixel from another previously decoded pixel (E222), said other previously decoded pixel belonging to said current block or to a previously decoded block of said image, - coding a prediction residual associated with said pixel obtained from the prediction of said pixel (E223), and - reconstructing the pixel from the decoded prediction residual associated with the pixel and the prediction of the pixel. a coding step (E20) according to which the current block is coded (E22), - coding (E21, E22) said current block according to said coding mode indicated by said coded item of information; Including, The processing step comprises, for at least one reconstructed block, referred to as a reconstructed current block: - applying at least one processing method to the reconstructed current block when the reconstructed current block is coded according to a coding mode different from the second coding mode; - when the reconstructed current block is coded according to the second coding mode, - the application of the at least one processing method to the reconstructed current block is disabled for pixels of the reconstructed current block if the pixel is located on a boundary of the reconstructed current block with a neighboring block in the image and if the neighboring block is coded according to the second coding mode; - applying the at least one processing method to pixels of the reconstructed current block if the pixels are located on a boundary of the reconstructed current block with a reconstructed neighboring block in the image, and if the neighboring block is coded according to a coding mode different from the second coding mode; A method comprising:
3. The method of claim 1 , wherein the processing method is deblocking filtering.
4. - when the current block is decoded according to a coding mode different from the second coding mode, 4. The method of claim 3, wherein the deblocking filtering is applied to pixels of the reconstructed current block if the pixels are located on a boundary of the reconstructed current block with a reconstructed neighboring block in the image, and if the neighboring block is decoded according to a coding mode different from the second coding mode.
5. - The method described in claim 1, wherein when the current block is decoded according to a coding mode different from the second coding mode, the processing method is a method for modifying at least one pixel of the reconstructed current block by adding a value obtained from an item of information decoded from the data stream to the reconstructed value of the pixel.
6. 6. The method of claim 5, wherein when the current block is decoded according to the second coding mode, the application of the method for modifying to the reconstructed current block is disabled for all pixels of the reconstructed current block.
7. The method of claim 2 , wherein the processing method is deblocking filtering.
8. - when the current block is coded according to a coding mode different from the second coding mode, 8. The method of claim 7, wherein the deblocking filtering is applied to pixels of the reconstructed current block if the pixels are located on a boundary of the reconstructed current block with a reconstructed neighboring block in the image, and if the neighboring block is coded according to a coding mode different from the second coding mode.
9. - The method described in claim 2, wherein when the current block is coded according to a coding mode different from the second coding mode, the processing method is a method for modifying at least one pixel of the reconstructed current block by adding a value obtained from an item of information coded in the data stream to the reconstructed value of the pixel.
10. 10. The method of claim 9, wherein when the current block is coded according to the second coding mode, the application of the method for modifying to the reconstructed current block is disabled for all pixels of the reconstructed current block.
11. 1. A device for decoding an encoded data stream representing at least one image, said image being divided into blocks, said decoding device comprising: reconstructing the image; and processing the reconstructed image; a processor (PROCO) configured to: The reconstructing comprises, for at least one block of the image, referred to as a current block: - decoding an item of information indicating a coding mode of the current block among at least a first coding mode and a second coding mode, where the second coding mode is determined for each pixel of the current block without inverse transforming a transformed prediction residual of the current block; - obtaining a prediction of said pixel from another previously decoded pixel, said another previously decoded pixel belonging to said current block or to a previously decoded block of said image; - decoding a prediction residual associated with said pixel; and - reconstructing the pixel from the obtained prediction of the pixel and the decoded prediction residual associated with the pixel. is the coding mode according to which the current block is decoded; - decoding the current block in accordance with the coding mode indicated by the decoded item of information; and Including, The processing includes, for at least one reconstructed block, referred to as a reconstructed current block: - applying at least one processing method to the reconstructed current block when the reconstructed current block is decoded according to a coding mode different from the second coding mode; and when the reconstructed current block is decoded according to the second coding mode; - the application of the at least one processing method to the reconstructed current block is disabled for pixels of the reconstructed current block if the pixel is located on a boundary of the reconstructed current block with a neighboring block in the image and if the neighboring block is decoded according to the second coding mode; - applying the at least one processing method to a pixel of the reconstructed current block if the pixel is located at a boundary of the reconstructed current block with a reconstructed neighboring block in the image, and if the neighboring block is decoded according to a coding mode different from the second coding mode; a device for decrypting the data, the device comprising:
12. 1. A device for encoding a data stream representing at least one image, said image being divided into blocks, said encoding device comprising: encoding the image; processing the reconstructed image; a processor (PROC) configured to: The encoding includes, for at least one block of the image, referred to as a current block: - coding an item of information indicating a coding mode of the current block among at least a first coding mode and a second coding mode, wherein the second coding mode is coded for each pixel of the current block without transforming a prediction residual of the current block; - obtaining a prediction of said pixel from another previously decoded pixel (E222), said other previously decoded pixel belonging to said current block or to a previously decoded block of said image, - coding a prediction residual associated with said pixel obtained from the prediction of said pixel (E223), and - reconstructing the pixel from the decoded prediction residual associated with the pixel and the prediction of the pixel. coding the current block according to the coding mode; - coding the current block according to the coding mode indicated by the coded item of information; Including, The processing includes, for at least one reconstructed block, referred to as a reconstructed current block: - applying at least one processing method to the reconstructed current block when the reconstructed current block is coded according to a coding mode different from the second coding mode; and - when the reconstructed current block is coded according to the second coding mode, - the application of the at least one processing method to the reconstructed current block is disabled for pixels of the reconstructed current block if the pixel is located on a boundary of the reconstructed current block with a neighboring block in the image and if the neighboring block is coded according to the second coding mode; - the at least one processing method is applied to a pixel of the reconstructed current block if the pixel is located at a boundary of the reconstructed current block with a reconstructed neighboring block in the image, and if the neighboring block is coded according to a coding mode different from the second coding mode; 2. A device for encoding, comprising:
13. A method described in any one of claims 1 and 3 to 6, wherein the second coding mode is a coding mode in which the prediction of the pixel corresponds to in-loop residual (ILR) predictive coding.
14. A method described in any one of claims 2 and 7 to 10, wherein the second coding mode is a coding mode in which the prediction of the pixel corresponds to in-loop residual (ILR) predictive coding.
15. 14. A computer program comprising instructions for performing the method of any one of claims 1, 3 to 6 and 13 when said computer program is executed by a processor.
16. 16. A computer readable data medium having stored thereon instructions for the computer program of claim 15.
17. 15. A computer program comprising instructions for performing the method of any one of claims 2, 7 to 10 and 14 when said computer program is executed by a processor.
18. 18. A computer readable data medium having stored thereon instructions for the computer program of claim 17.
Citation Information
Patent Citations
Filtering blockiness artifacts for video coding
US20120287994A1
Intra pulse code modulation (IPCM) and lossless coding mode deblocking for video coding
US20130101025A1
Differential Pulse Code Modulation Intra Prediction for High Efficiency Video Coding
US20130114716A1
Differential pulse code modulation intra prediction for high efficiency video coding
US9253508B2