Method and device for encoding and decoding data stream representing at least one image
The ILR coding mode in image and video compression optimizes pixel prediction and reconstruction, eliminating the need for deblocking and SAO, thus enhancing efficiency and speed in image decoding.
Patent Information
- Application Number
- JP2025047100
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2018-09-21
- Filing Date
- 2025-03-21
- Publication Date
- 2025-07-23
- Estimated Expiration
- 2039-09-03
AI Technical Summary
Existing image and video compression techniques, such as those in the HEVC standard, are inefficient in predicting and reconstructing intra-block pixels, leading to suboptimal compression rates and requiring cumbersome post-processing methods like deblocking and SAO, which are computationally expensive.
A new coding mode, ILR (In-Loop Residual), allows for independent prediction and reconstruction of each pixel without transformation of prediction residuals, disabling deblocking and SAO for blocks coded in this mode, thereby optimizing the coding process.
This approach enhances compression efficiency by reducing the need for post-processing, lowering computational and memory requirements, and improving decoding speed while maintaining image quality.
Smart Images

Figure 2025108444000001_ABST
Abstract
Description
Technical Field
[0001] The field of the present invention is that of encoding and decoding images or sequences of images, and more particularly video streams.
[0002] More particularly, the present invention relates to the compression of images or sequences of images using a block representation of the images.
[0003] The present invention can in particular be applied to image coding or video coding implemented in current or future encoders (such as JPEG, MPEG, H.264, HEVC, etc., and their variants), and to the corresponding decoding.
Background Art
[0004] Digital images and sequences of images occupy a lot of space with respect to memory, which requires such images to be compressed in order to avoid congestion problems on the network used for this transmission when sending these images.
[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 to perform a prediction of the pixels of the 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 uses the spatial redundancy within the image. To do this, the image is divided into blocks of pixels. The blocks of pixels are then predicted using the 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 a standard manner, the current block coding is performed using a prediction of the current block, referred to as 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 sent to a decoder such that the current block can be reconstructed by adding this residual block to the predictor block.
[0008] Decoding is performed for each image and for each block within 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 are performed. Then, block prediction is calculated to obtain the 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 blocks in intra mode is integrated into the HEVC encoder. Such a technique consists of 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 techniques are not optimal. Indeed, the reconstruction of a set of intra-block pixels corresponds to the addition of a prediction residue in the case of lossless coding and, thus, either shows a rather low compression rate or corresponds to the addition of a prediction residue after the inverse transformation and / or inverse quantization of said other set of pixels useful for prediction. Thus, such techniques do not allow each pixel of an intra-block to be predicted using a local prediction function and the predicted pixels to be reconstructed before subsequent pixels are predicted. Indeed, this technique requires a set of pixels (e.g., a row / column of a block) to be reconstructed in order to predict another set of pixels. In other words, using each prediction and reconstruction of a part of a block, some pixels of the block are predicted and reconstructed.
[0011] Moreover, in U.S. Patent No. 9,253,508, for example, there is no description of how to perform a conventional intra prediction mode and how the DPCM prediction mode coexists as defined in the HEVC standard.
Prior Art Documents
Patent Documents
[0012]
Patent Document 1
Non-Patent Documents
[0013]
Non-Patent Document 1
Non-Patent Document 2
Non - Patent Document 3
Summary of the Invention
Problems to be Solved by the Invention
[0014] Therefore, there is a need for new coding and decoding methods to improve the compression of image data or video data.
Means for Solving the Problems
[0015] The present invention improves on the prior art. For this purpose, the present invention relates to a method for decoding a coded data stream representing at least one image divided into blocks. Such a decoding method is for at least one block of an image, currently referred to as the current block, - decoding an item of information indicating the coding mode of the current block among at least a first coding mode and a second coding mode, wherein the second coding mode is for each pixel of the current block, - Obtaining a prediction of the pixel from another pixel decoded previously, wherein the other pixel decoded previously belongs to the current block or a previously decoded block of the image, - Decoding a prediction residual related to the pixel, and - Reconstructing the pixel from the obtained prediction of the pixel and the decoded prediction residual related to the pixel by which 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, and - When the coding mode of the current block corresponds to a coding mode different from the second coding mode, applying at least one processing method to the reconstructed current block, and - When the coding mode of the current block corresponds to the second coding mode, disabling the application of the at least one processing method to the at least one pixel of the current block to the reconstructed current block including.
[0016] Accordingly, according to the present invention, the application of the processing operation to the reconstructed block is not executed in the case of the block decoded according to the coding mode using the pixel prediction from the previously reconstructed pixels of the same block. According to this coding mode, the prediction residual related to each pixel is not transformed. The processing method aims to improve the quality of the reconstructed block of pixels, for example, by reducing the influence of discontinuities between blocks caused by prediction residual coding with transformation (deblocking filter), or by correcting the individual values of each pixel (also referred to as sample adaptive offset or SAO).
[0017] According to the present invention, the prediction residuals associated with each pixel must be immediately available for pixel reconstruction, and therefore, since they can be used to predict subsequent pixels of the current block, the second coding mode does not use prediction residual transformation. Thus, when the current block is decoded according to the second coding mode, it is not necessary to reduce the discontinuity at the boundary of this current block. Similarly, when the current block is decoded using the second coding mode, the value of each pixel is individually coded using the prediction residual associated with each pixel. Therefore, it is not necessary to correct the value of each pixel.
[0018] The processing methods applied to the reconstructed block usually require the transmission of parameters at the block level. Disabling these processing methods for blocks coded according to the second coding mode allows for such an improvement in rate. Moreover, since these processing methods are not applied to these blocks, the decoding process can be significantly accelerated.
[0019] The present invention also relates to a method for coding a data stream representing at least one image that is divided into blocks. Such a coding method comprises, for at least one block of the image, referred to as the current block, - coding an item of information indicating the coding mode of the current block among at least a first coding mode and a second coding mode, the second coding mode being, for each pixel of the current block, - obtaining a prediction of the pixel from another pixel decoded previously, the other pixel decoded previously belonging to the current block or to a block decoded previously of the image, - coding the prediction residual associated with the pixel, obtained from the prediction of the pixel, and - reconstructing the pixel from the decoded prediction residual associated with the pixel and the prediction of the pixel. coding in accordance with a coding mode according to which the current block is currently coded, and - coding the current block according to a coding mode indicated by an item in which information is coded, - when the coding mode of the current block corresponds to a coding mode different from the second coding mode, applying at least one processing method to the reconstructed current block, and - when the coding mode of the current block corresponds to the second coding mode, disabling the application of the at least one processing method to the reconstructed current block for at least one pixel of the current block including.
[0020] According to a particular embodiment of the present invention, the processing method is a deblocking filter process applied to the pixels of the reconstructed current block located at the boundary of the reconstructed current block with the reconstructed adjacent blocks in the image. According to this particular embodiment of the present invention, the processing method corresponds to a "deblocking" filter conventionally applied at the block boundary to reduce the influence of discontinuities between blocks.
[0021] According to a particular embodiment of the present invention, - when the current block is decoded or coded according to the second coding mode, - the application of the deblocking filter process 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, - When the pixel is located at the boundary of the reconstructed current block with the reconstructed adjacent blocks in the image, and when the adjacent block is decoded or coded according to a coding mode different from the second coding mode, the deblocking filter process is applied to the pixels of the reconstructed current block.
[0022] According to this specific embodiment of the present invention, the deblocking filter process is only applied to the pixels at the boundary of two blocks that are both coded or decoded according to a coding mode different from the second coding mode. In other words, in the case of a current block coded or decoded according to a coding mode different from the second coding mode, the deblocking filter process is disabled for the pixels of the reconstructed current block located at the boundary with an adjacent block coded or decoded according to the second coding mode.
[0023] According to another specific embodiment of the present invention, when the current block is decoded or coded according to the second coding mode, - When the pixel is located at the boundary of the reconstructed current block with the adjacent blocks in the image, and when the adjacent block is decoded or coded according to the second coding mode, the application of the deblocking filter process to the reconstructed current block is disabled for the pixels of the reconstructed current block, - When the pixel is located at the boundary of the reconstructed current block with the reconstructed adjacent blocks in the image, and when the adjacent block is decoded or coded according to a coding mode different from the second coding mode, the deblocking filter process is applied to the pixels of the reconstructed current block.
[0024] According to this other specific embodiment of the present invention, the deblocking filter processing is applied to pixels located at the boundary of two blocks, where at least one of the blocks is coded or decoded according to a coding mode different from the second coding mode. However, for pixels located at the boundary of two blocks that are both coded or decoded according to the second coding mode, the deblocking filter processing is disabled.
[0025] This specific embodiment of the present invention smooths the block effect on a block that is coded or decoded according to the first coding mode, or any other coding mode different from the second coding mode, even when these are in the neighborhood of the reconstructed blocks that are coded or decoded according to the second coding mode.
[0026] According to another specific embodiment of the present invention, 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, which is coded in a data stream or decoded from a data stream, to the reconstructed value of the pixel. According to this specific embodiment of the present invention, the processing method corresponds to the SAO method integrated into the HEVC compression standard.
[0027] According to a specific embodiment of the present invention, when the current block is decoded or coded according to the second coding mode, the application of the correction 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 a decoding method according to any one of the specific embodiments defined above. This decoding device can, of course, have various characteristics related to the decoding method according to the present invention. Therefore, the characteristics and advantages of this decoding device are the same as those of the decoding method and will not be described in further detail.
[0029] The decoding device is specifically configured to, for at least one block of an image, currently referred to as a block, - Decode an item of information indicating the coding mode of the current block among at least a first coding mode and a second coding mode, where the second coding mode, for each pixel of the current block, - Obtain a prediction of the pixel from another pixel decoded previously, where the another pixel decoded previously belongs to the current block or a previously decoded block of the image, - Decode a prediction residual related to the pixel, and - Reconstruct the pixel from the obtained prediction of the pixel and the decoded prediction residual related to the pixel to decode the coding mode according to which the current block is decoded, - Decode the current block according to the coding mode indicated by the decoded item of information, - Apply at least one processing method to the reconstructed current block when the coding mode of the current block corresponds to a coding mode different from the second coding mode, and - Disable the application of the at least one processing method to the reconstructed current block for at least one pixel of the current block when the coding mode of the current block corresponds to the second coding mode and includes a processor configured to perform the above.
[0030] According to a particular embodiment of the present invention, such a decoding device is provided in a terminal.
[0031] The present invention also relates to an encoding device configured to implement an encoding method according to any one of the specific embodiments defined above. This encoding device can, of course, have various characteristics related to the encoding method according to the present invention. Therefore, the characteristics and advantages of this encoding device are the same as those of the encoding method and will not be further detailed herein.
[0032] Specifically, the encoding device is configured to perform, for at least one block of an image, currently referred to as a current block, - encoding an item of information indicating the coding mode of the current block among at least a first coding mode and a second coding mode, wherein the second coding mode, for each pixel of the current block, - obtaining a prediction of the pixel from another pixel decoded previously, wherein the another pixel decoded previously belongs to the current block or a previously decoded block of the image, - coding a prediction residual related to the pixel obtained from the prediction of the pixel, and - reconstructing the pixel from the decoded prediction residual related to the pixel and the prediction of the pixel to code in a coding mode according to which the current block is coded accordingly, - coding the current block according to the coding mode indicated by the item of information being coded, - applying at least one processing method to the reconstructed current block when the coding mode of the current block corresponds to a coding mode different from the second coding mode, and - disabling the application of the at least one processing method to the reconstructed current block for at least one pixel of the current block when the coding mode of the current block corresponds to the second coding mode and includes a processor configured to perform the above.
[0033] According to a specific embodiment of the present invention, such an encoding device is provided in a terminal or a server.
[0034] The decoding method and the encoding method according to the present invention can be implemented in various ways, particularly in a wired form or in a software form. According to a specific embodiment of the present invention, the decoding method and the encoding method are each implemented by a computer program. The present invention also relates to a computer program including instructions for implementing a decoding method or an encoding method according to any one of the specific embodiments described above when the program is executed by a processor. Such a program can use any programming language. The program may be downloaded from a communication network and / or recorded on a computer-readable medium.
[0035] This program can use any programming language and can be in the form of source code, object code, or intermediate code between source code and object code, such as being in a 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 of the computer program as described above. The above-described recording medium can be any entity or device capable of storing a program. For example, the medium can include storage means such as a memory. On the other hand, the recording medium can correspond to a transmissible medium such as an electrical signal or an optical signal that can be carried via an electrical cable or an optical cable, wirelessly, or by other means. The program according to the present invention can be specifically downloaded on an Internet-type network.
[0037] Alternatively, the recording medium can correspond to an integrated circuit in which the program is incorporated, and the circuit is adapted to execute the method or to be used in the execution of the method.
[0038] Other features and advantages of the present invention will become more apparent upon reading the following description of specific embodiments and the accompanying drawings, which are provided as simple illustrative and non-limiting examples.
Brief Description of the Drawings
[0039]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5A
Figure 5B
Figure 6
Figure 7
DETAILED DESCRIPTION OF THE INVENTION
[0040] General Principles Processing operations that are also referred to as post-processing operations and are executed after decoding an image are integrated into video coding standards to improve the quality of the reconstructed image. For example, such post-processing operations can be the application of deblocking filter processing or SAO (Sample Adaptive Offset) post-processing operations.
[0041] By deblocking filter processing, after each block is decoded, it is possible to eliminate discontinuities that exist between each block and to which the human eye is extremely sensitive. On the other hand, by the SAO processing operation, it becomes possible to individually correct the value of each pixel of the decoded block.
[0042] These two post-processing methods are integrated, for example, into the HEVC compression standard, bringing about compression and quality improvement.
[0043] However, according to the present invention, a new coding mode for image blocks, called ILR (In-Loop Residual) coding, advantageously makes these two post-processing methods unnecessary.
[0044] Regarding the influence of discontinuities between blocks, such influence mainly results from the conventional residual coding in the form of transformation. The basic vector of the transformation is the entire block and does not allow individual control of pixel values along the block boundary. However, the ILR coding mode enables 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, which will be described later, enables the values of each pixel to be individually coded already. Therefore, the SAO processing operation is not required for these pixels.
[0046] However, in order to optimize the coding cost of the video sequence, it is necessary that the encoder can choose between the conventional coding mode and the ILR coding mode for each block to be coded.
[0047] Therefore, the general principle of the present invention is to activate or not activate the application of the post-processing method to the reconstructed block according to whether the block is coded / decoded according to the ILR coding mode.
[0048] There are several advantages to enabling the deblocking and / or SAO processing operations only for blocks coded by a conventional coding method, i.e., a coding mode other than ILR. Indeed, for blocks coded / decoded according to the ILR coding mode, no syntax elements related to the deblocking filter or the SAO processing operation are transmitted, which reduces the rate to be transmitted. This also significantly speeds up decoding because blocks coded / decoded according to the ILR coding mode do not need to apply deblocking and / or SAO processing steps that are extremely cumbersome to implement from the perspective of computational and memory resources.
[0049] Embodiment FIG. 1 shows the steps of a coding method according to a particular embodiment of the present invention. For example, a sequence of images I1, I2,..., I Nbis coded in the form of a coded data stream STR according to a particular embodiment of the present invention. For example, such a coding method is implemented by a coding device as will be described later with respect to FIG. 6.
[0050] A sequence of images I1, I2, …, I Nb is provided as an input to the coding method, and 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 manner, the coding of the sequence of images I1, I2, …, I Nb is performed for each image according to a coding order previously established and known to the encoder. For example, the images may be in chronological order I1, I2, …, I Nb or in another order, for example, I1, I3, I2, …, I Nb and can be coded.
[0052] In step E0, the image I to be coded in the sequence of images I1, I2, …, I Nb is divided into blocks, for example, blocks of size 32×32 or 64×64 pixels, or blocks larger than that. Such blocks can be further divided into square or rectangular sub-blocks, for example, 16×16, 8×8, 4×4, 16×8, 8×16, …. j In step E1, the first block or sub-block X to be coded in image I
[0053] j is selected according to a predetermined scanning order of image I b For example, it can be the first block in the lexicographical scanning order of the image. j In step E2, the encoder is the current block X b
[0054] b bA coding mode for coding will be selected.
[0055] According to the specific embodiment described herein, the encoder selects a coding mode for coding the current block X b from a first coding mode M1 and a second coding mode M2. Additional coding modes (not described herein) may be used.
[0056] According to the specific embodiment described herein, the first coding mode M1 corresponds to coding of the current block by conventional intra prediction, such as defined according to the HEVC standard, and the second coding mode M2 corresponds to in-loop residual (ILR) prediction coding.
[0057] The principle of the present invention can be extended to other types of coding modes for the first coding mode M1. For example, the first coding mode can correspond to any type of coding mode that uses transform of prediction residuals (such as inter prediction coding, spatial prediction with template matching coding, etc.).
[0058] In step E2, the encoder can perform 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, such as an inter mode coding mode, can be tested. During this rate / distortion optimization, the encoder uses different available coding modes for the current block X to determine the rate and distortion associated with each coding mode bSimulate the coding and select a coding mode that provides the best rate / distortion compromise, for example, according to the 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 the Lagrange multiplier, for example, input by the user or defined in the encoder.
[0059] In step E20, an item of information indicating the coding mode selected for the current block is coded in the data stream STR.
[0060] Current block X b If it is coded according to the first coding mode M1, the method proceeds to step E21 for coding the block according to M1. Current block X b If it is coded according to the second coding mode M2, the method proceeds to step E22 for coding the block according to M2.
[0061] Step E21 for coding a block according to the first coding mode M1 according to a particular embodiment of the present 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 δ1 is determined. For example, the quantization step δ1 can be set by a user, or can be calculated using quantization parameters that set a compromise between compression and quality and are input by the user or defined by the encoder. Thus, such quantization parameters can 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 perform coding selection, and typically, a method of coding an image that minimizes this function is sought.
[0063] In a variant form, the quantization parameter can be a QP corresponding to the quantization parameter conventionally used in the AVC standard or the 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, the prediction of the current block is determined using a conventional intra prediction mode. According to this conventional intra prediction, each predicted pixel is calculated only from the decoded pixels resulting from adjacent 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 the prediction mode, which is selected by the encoder from a predetermined set of modes that are sent to the decoder and 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, and 2 other modes, namely, the DC mode where each pixel of the predicted block is generated from the average of the reference pixels, and the PLANAR mode that performs planar and omni-directional interpolation. This "conventional intra prediction" is well-known and is similarly 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 / ) that has 67 different prediction modes. In all cases, conventional intra prediction emphasizes the two aspects described above (prediction of pixels from adjacent blocks and transmission of the optimal prediction mode to the decoder).
[0066] In step E211, the encoder so selects one of the available prediction modes from a predetermined list of prediction modes. One way to select is, for example, to evaluate all the prediction modes and retain the prediction mode that minimizes a cost function, such as the classical rate-distortion cost.
[0067] In step E212, the prediction mode selected for the current block is coded from the adjacent blocks of the current block. FIG. 2 shows the positions of adjacent blocks A b and B b of the current block X b for coding the prediction mode of the current block X b .
[0068] In step E212, the intra prediction mode selected for the current block is coded using the intra prediction modes associated with the adjacent blocks.
[0069] For example, a technique described in the HEVC standard for coding the prediction mode of the current block may be used. In the example of FIG. 2, such a technique involves the intra prediction mode m b associated with block A A located just above the current block, and the intra prediction mode m b associated with block B B located just to the left of the current block. To identify m A and m B Depending on the values of, a list called MPM (representing the most dominant mode) 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, syntax elements, namely, - A binary indicator indicating whether the prediction mode to be coded for the current block is in the MPM list is transmitted, - If the prediction mode of the current block belongs to the MPM list, the 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, the 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, the predicted block P is constructed according to the prediction mode selected in step E211. Then, the prediction residual R is 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 converted to R T .
[0074] In 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 can 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 for the user to choose between and inform the decoder which transformation will be used.
[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 as specified in the HEVC standard may be used.
[0077] In the known method, the current block is a quantized block 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 herein, the pixels of the current block are predicted by the previously reconstructed pixels of the adjacent blocks of the current block or of the current block itself.
[0080] Preferably, for prediction, pixels as close as possible to the pixel to be predicted are selected. This is the reason why it is called a local predictor. The local predictor PL may also be incorporated into the prediction mode of the current block related to the second coding mode M2. According to this interpretation, in the specific embodiment described herein, the first coding mode uses the 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 different from the first group of intra prediction modes.
[0081] The local predictor PL can be unique or can be selected from a set of predetermined local predictors (the second group of prediction modes).
[0082] According to one embodiment, four local predictors are defined. Thus, as illustrated in FIG. 3 showing the current block Xb, if the current pixel to be predicted from the 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. The four local predictors PL1, PL2, PL3, PL4 can be defined as follows. PL1(X) = min(A,B) when C≧max(A,B) max(A,B) when C≦min(A,B) A + B - C in other cases PL2(X) = A PL3(X) = B PL4(X) = C However, 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, a local predictor PL used for the current block is determined. In other words, the same local predictor, that is, the same prediction function, will be used for all pixels of the current block. For this purpose, several implementation variants are possible.
[0084] Coding of the current block using each predictor may be simulated (similar to the optimization for selecting the coding mode for the current block), and a local predictor that optimizes a cost function (for example, minimizing the D + λ.R function, where R is the rate used to code the block, D is the distortion of the decoded block with respect to the original block, and λ is a parameter set by the user) is selected.
[0085] Otherwise, in order to limit the complexity of selecting the local predictor for the current block, the texture orientation of previously coded pixels is analyzed. For example, previously coded pixels in the blocks located above or to the left of the current block are analyzed using a Sobel-type operator. - If it is determined that the orientation is horizontal, the local predictor PL2 is selected. - If it is determined that the orientation is vertical, the local predictor PL3 is selected. - If it is determined that the orientation is diagonal, the local predictor PL4 is selected. - If the orientation is not clear, the local predictor PL1 is selected.
[0086] To indicate to the decoder which local predictor was used to predict the current block, a syntax element is coded in the data stream STR.
[0087] In step E221, a quantization step δ2 is determined. For example, if the current block is coded according to the first coding mode, the quantization step δ2 depends on the same quantization parameter as the quantization step δ1 that would be determined in step E210.
[0088] In step E222, a prediction residual R1 is calculated for the current block. For this purpose, when a local predictor is selected, for each current pixel of the current block, - To obtain a predicted value PRED, either, or both, of the already reconstructed (and thus available using their decoded values) pixels outside the block, or previously reconstructed pixels within the current block are used to predict the current pixel X of the current block by the selected local predictor PL. In all cases, the predictor PL uses previously reconstructed pixels. In FIG. 3, it can be understood that the pixels of the current block located in the first row and / or first column of the current block use the already reconstructed pixels outside the block (the pixels in gray in FIG. 3), and optionally the already reconstructed pixels of the current block, as reference pixels (for constructing the predicted value PRED). For the other pixels of the current block, the reference pixels used for constructing the predicted 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 according to Q(X)=ScalarQuant(DIFF)=ScalarQuant(δ2,X - PRED), and the scalar quantizer is, for example,
[0089]
Number
[0090] is a nearest neighbor scalar quantizer, etc. Q(X) is the quantization residual associated with X. Q(X) is calculated in the spatial domain, i.e., directly calculated from the difference between the predicted value PRED of pixel X and the original value of X. Such a quantization residual Q(X) for pixel X will be coded later into the quantization prediction residual block R1 Q is stored in. - The decoded predicted value P1(X) of X is calculated by adding the inverse quantized value of the quantization residual Q(X) to the predicted value PRED. The decoded predicted value P1(X) of X is thus obtained by P1(X)=PRED+ScalarDequant(δ2,Q(X)). For example, the nearest scalar quantization inverse function is given by ScalarDequant(Δ,x)=Δ×x.
[0091] The decoded predicted value P1(X) thus enables predicting the possible pixels still to be processed in the current block. Moreover, the block P1 having the decoded / reconstructed values of the pixels of the current block is an ILR predictor (instead of the conventional intra predictor) of the current block.
[0092] The sub-steps described above are executed for all pixels of the current block in a scanning order that ensures that the pixels used for prediction, selected from PL1, …, PL4, are available.
[0093] According to one embodiment, the scanning order of the current block is the lexicographical order, i.e., from left to right and from top to bottom.
[0094] According to another embodiment, some scanning orders of the current block, for example, - the lexicographical order, or - scanning from the top to the bottom of the first column and then the column just to its right, etc., or - an alternating diagonal scan can be used.
[0095] According to this other variant form, it is possible to simulate the coding cost associated with each of the scanning orders, select the best scanning order for the current block from the rate / distortion perspective, and then code an item of information representing the selected scanning order for the current block.
[0096] At the end of step E222, the quantized residual block R1 Q is determined. This quantized residual block R1 Q must be coded for transmission to the decoder. The predictor P1 of the current block is also determined.
[0097] In step E223, the quantized residual block R1 Q is coded for transmission to the decoder. Any known technique, such as the method described in HEVC, can be used to code the quantization coefficients of the conventional prediction residuals.
[0098] According to the specific embodiment of the present invention described herein, the value of the quantized residual block R1 Q is coded using an entropy encoder from the data stream STR.
[0099] According to a specific embodiment of the present invention, it is possible to determine and code an additional prediction residual R2 from the ILR predictor obtained for the current block. However, the coding of the additional prediction residual R2 is optional. Simply coding the current block with its predicted version P1 and the quantized residual R1 Q is actually possible.
[0100] The following steps are performed to code the additional prediction residual R2 for the current block.
[0101] In step E224, the difference R2 between the predictor P1 and the original current block X b is calculated to obtain the additional residual R2: R2 = X b-Form P1. The following steps correspond to the conventional coding steps for this residual R2.
[0102] In step E225, the residual R2 is transformed using frequency transformation to generate a block of the coefficient R2 T .
[0103] The transformation can be, for example, a DCT-type transformation. It is possible to select the transformation to be used from a predetermined set E T2 of transformations and to notify the decoder of the transformation used. In this case, set E T2 may be different from set E T to match the specific statistical values of the residual R2.
[0104] In step E226, the block of the coefficient R2 T is quantized using, for example, the quantization step scalar quantization δ. This generates the block R2 TQ .
[0105] The quantization step δ can be set by the user. The quantization step δ can also set a trade-off between compression and quality and can be calculated using another parameter λ input by the user or the encoder. For example, the quantization step δ can correspond to the quantization step δ1 or can be determined in the same way as the quantization step δ1.
[0106] In step E227, the coefficients of the quantized block R2 TQ are then transmitted in a coded manner. For example, the coding specified in the HEVC standard can be used.
[0107] In a known manner, the current block is decoded by inverse quantizing the coefficients of the quantized block R2 TQ and then applying an inverse transformation to the inverse quantized coefficients to obtain the decoded prediction residual. The prediction P1 then reconstructs the current block and its decoded version Xrec To obtain, it is added to the decoded prediction residual. The decoded version X of the current block rec It can then be used later to spatially predict other adjacent blocks of the image or to predict blocks of other images by inter-image prediction.
[0108] In step E23, taking into account the previously defined scan order, it is checked whether the current block is the last block of the image to be processed by its coding method. 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 scan 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 in step E231 to the application of post-processing methods to be applied to the reconstructed image. As explained above, these post-processing methods can be deblocking filter processing and / or SAO methods. Since the application of the post-processing operations is performed in the same way in the encoder and the decoder, step E231 will be described later.
[0110] After applying at least one post-processing method, the method proceeds, if any, to the coding of the next image of the video (step E25).
[0111] FIG. 4 shows the steps of a method for decoding a stream STR of coded data representing a sequence I1, I2,..., I of images to be decoded according to a particular embodiment of the present invention. Nb To represent.
[0112] For example, the data stream STR is generated via the coding method shown with respect to FIG. 1. The data stream STR is provided as an input to the decoding device DEC as explained with respect to FIG. 7.
[0113] The decoding method decodes the stream for each image, and each image is decoded block by block.
[0114] In step E40, the image I to be decoded j is further divided into blocks. Each block will undergo a decoding operation in a series of steps to be detailed later. The blocks can be of the same size or different sizes.
[0115] In step E41, the first block or sub-block X to be decoded of the image I j is selected as the current block according to a predetermined scanning order of the image I. b For example, it can be the first block in the lexicographical scanning order of the image. j
[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 the specific embodiment described herein, this item of information indicates whether the current block is coded according to the first coding mode M1 or the second coding mode M2. According to the specific embodiment described herein, the first coding mode M1 corresponds to the conventional intra prediction coding of the current block, such as defined according to the HEVC standard, and the second coding mode M2 corresponds to the in-loop residual (ILR) prediction coding.
[0117] In other specific embodiments, the item of information read from the stream STR can also indicate the use of other coding modes for coding the current block (not described herein).
[0118] Step E43 for decoding the current block when the current block 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 in the same way as done in the encoder. For example, the quantization step δ1 can be calculated using the quantization parameter QP read in step E401. For example, the quantization parameter QP can be a quantization parameter conventionally used in the AVC standard or the 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 selected for coding the current block is decoded from the adjacent blocks. For this purpose, the intra prediction mode selected for the current block is coded using the intra prediction mode related to the adjacent blocks of the current block, as done in the encoder.
[0121] The construction of both the MPM list and the non-MPM list is exactly similar to that done during coding. According to the HEVC standard, the following types of syntax elements, namely, - 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, the index in the MPM list corresponding to the prediction mode of the current block being coded, - If the prediction mode of the current block does not belong to the MPM list, the index in the non-MPM list corresponding to the prediction mode of the current block being coded.
[0122] The binary indicator and the prediction mode index are read from the data stream STR for the current block in that way in order 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 decodes the coefficients of the quantized block R from the data stream STR using, for example, the decoding specified in the HEVC standard. TQ of.
[0125] In step E434, the decoded block R TQ is inverse quantized using, for example, a δ1 quantization step scalar inverse quantization. This generates a block of inverse quantized coefficients R TQD .
[0126] In step E435, an inverse frequency transform is applied to the block of inverse quantized coefficients R TQDI to generate the decoded prediction residual block R TQD . The transform can 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 predetermined set E TI of transforms.
[0127] In step E436, the current block X rec is reconstructed from the prediction block P obtained in step E432 and the decoded residual block R rec obtained in step E435 by X TQDI =P + R. TQDI
[0128] Step E44 for decoding the current block when the current block is now coded according to the second coding mode M2 is described below.
[0129] In step E440, a local predictor PL used to predict the pixels of the current block is determined. If only one predictor is available, the local predictor is, for example, set by default at the decoder level and no syntax element needs to be read from the stream STR to determine it.
[0130] If several local predictors, for example the predictors PL1 - PL4 described above, are available, syntax elements are decoded from the data stream STR to identify which local predictor was used to predict the current block. The local predictor is thus determined from the decoded syntax elements.
[0131] In step E441, the quantization step δ2 is determined in the same way as was done at the encoder.
[0132] In step E442, the quantized residue R1 Q is decoded from the data stream STR. Any known technique, such as the method described in HEVC, can be used to decode the quantization coefficient of the conventional prediction residue.
[0133] In step E443, the quantized residue block R1 QD is inverse - quantized using the quantization step δ2 to generate the inverse - quantized residue block R1 Q is inverse - quantized.
[0134] In step E444, when the inverse - quantized residue block R1 QD is obtained, a prediction block P1 is constructed using the local predictor PL determined in step E440.
[0135] In step E444, each pixel of the current block is predicted and reconstructed as follows. - To obtain the predicted value PRED, the current pixel X of the current block is predicted by the selected predictor PL using either, or both, of the already reconstructed pixels outside the block and the previously reconstructed pixels of the current block. In all cases, the predictor PL uses previously decoded pixels. - The decoded predicted value P1(X) of the current pixel X is P1(X) = PRED + R1 QD where R1 is the inverse quantized value of the prediction residual, as in R1(X) QD is calculated by adding it 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, selected from PL1, …, PL4, are available.
[0137] For example, the scan order is lexicographical order (left to right, then top to bottom of the row).
[0138] According to a particular embodiment of the present invention, a prediction block P1 having the decoded predicted value P1(X) of each pixel of the current block is formed here from the decoded current block X rec
[0139] According to another particular embodiment of the present invention, it is here considered that an additional prediction residual has been coded for the current block. Therefore, it is necessary to decode this additional prediction residual in order to reconstruct the decoded version of the current block X rec
[0140] For example, these other specific embodiments may or may not be activated or defaulted at the encoder level and decoder level. Otherwise, for each block coded according to the ILR coding mode, an indicator may be coded in the data stream, together with block-level information, to indicate whether an additional prediction residual is to be coded. Otherwise, further, for all blocks of an image or sequence of images coded according to the ILR coding mode, an indicator may be coded in the data stream, together with image or image sequence level information, to indicate whether an additional prediction residual is to be coded.
[0141] When an additional prediction residual is coded for the current block, at step E445, the quantized prediction residual R2 TQ of the coefficients is decoded from the data stream STR using means adapted to those implemented in the encoder, for example, means implemented in an HEVC decoder.
[0142] At step E446, the block of quantization coefficients R2 TQ is inverse quantized, for example, using scalar inverse quantization of quantization step δ1. This generates the block of inverse quantization coefficients R2 TQD .
[0143] At step E447, inverse frequency conversion is applied to block R2 TQDI to generate the decoded prediction residual block R2 TQD .
[0144] The inverse transform may be, for example, an inverse DCT type transform.
[0145] The transform to be used is a predetermined set E of transforms T2to select from, and to decode the items of information that should be used to notify the decoder of the conversion to be performed. In this case, in order to match a specific statistical value of the residual R2, set E T2 is set E T is different from
[0146] In step E448, the predicted block P1 obtained in step E444 is added to the decoded prediction residual R2 TQDI to reconstruct the current block.
[0147] In step E45, taking into account the previously defined scanning order, it is checked whether the current block is the last block of the image to be processed by its decoding method. If the current block is not the last block of the image to be processed, then in step E46, the subsequent block of the image to be processed is selected according to the previously defined scanning order of the image, the decoding method proceeds to step E42, and the selected block becomes the current block to be processed.
[0148] When all blocks of the image have been decoded, the process proceeds in step E451 to the application of at least one post-processing method to be applied to the reconstructed image. As described above, these post-processing methods can be deblocking filter processing and / or SAO method.
[0149] After applying at least one post-processing method, the method proceeds, if any, to the decoding of the next image of the video (step E47).
[0150] Respectively, in the encoder and decoder according to the present invention, steps E231 and E451 for applying at least one post-processing method are described below.
[0151] The post-processing operation generally requires access to data contained in adjacent blocks of the current block to be processed, including "future" i.e., not yet reconstructed blocks, according to the scan order of blocks in the image, as used in the encoder and decoder. Thus, the post-processing operation is generally executed by performing a second complete loop over all the reconstructed blocks of the image. Thus, in the encoder and decoder, the first loop over all blocks of the image constructs a reconstructed version of the blocks from the coded information for the blocks, and then the post-processing loop operates again through the reconstructed blocks to improve those reconstructions. Two extensions are given above, and the general principles of the present invention are of course applicable to other post-processing methods.
[0152] Deblocking filter processing During this processing operation, "deblocking" filter processing is applied to the reconstructed blocks of the image. This filter processing generally consists of applying a low-pass filter to the pixels at the boundaries of the reconstructed blocks. Such filters are described in general terms in the paper by Andrey Norkin et al., "HEVC deblocking filter", IEEE Transactions on Circuits and Systems for Video Technology (Vol. 22, Issued: December 12, 2012), pages 1746 - 1754, October 5, 2012.
[0153] According to a particular embodiment of the present invention, the deblocking filter processing is applied only at the boundaries of two reconstructed blocks that were previously coded by a conventional coding mode, i.e., other than ILR.
[0154] This particular embodiment of the present invention is shown, for example, in FIG. 5A below. - A reconstructed block 80 of pixels decoded according to coding mode M2 (ILR), - Reconstructed block 81 of pixels decoded according to coding mode M1 (non-ILR) adjacent to block 80, - Reconstructed block 82 of pixels decoded according to coding mode M1 (non-ILR) adjacent to block 81.
[0155] In FIG. 5A, - The hatched pixels correspond to pixels for which the application of the deblocking filter process is disabled, - The pixels filled with dots are pixels not related to the deblocking filter process due to their locations within the reconstructed block, - The white pixels are pixels to which the deblocking filter process is applied.
[0156] Thus, according to a particular embodiment of the present invention to be described, when the current block, for example, block 80, is decoded or coded according to coding mode M2, the application of the deblocking filter process to all pixels of the current block is disabled for the reconstructed current block. This is shown in FIG. 5A, where all pixels at the boundary of block 80 are hatched.
[0157] Moreover, when the current block, for example, block 81, is decoded or coded according to a conventional i.e., non-ILR coding mode, the deblocking filter process is applied to the pixels of the reconstructed current block when the pixel is located at the boundary of the reconstructed current block with an adjacent block and the adjacent block is decoded or coded according to a conventional i.e., non-ILR coding mode. This is shown in FIG. 5A, where all pixels of block 81 located at the boundary with block 80 are hatched and all pixels of block 81 located at the boundary with block 82 are white.
[0158] According to a particular embodiment of the present invention, the deblocking filter processing is applied only at the boundary of two blocks, where at least one of the two blocks is a block that is coded / decoded according to a conventional coding mode (e.g., M1 in the examples described with respect to FIGS. 2 and 4).
[0159] This particular embodiment of the present invention is shown, for example, in FIG. 5B below. - The reconstructed block 83 of pixels decoded according to the coding mode M1 (non-ILR), - The reconstructed block 84 of pixels decoded according to the coding mode M2 (ILR) adjacent to the block 83, - The reconstructed block 85 of pixels decoded according to the coding mode M2 (ILR) adjacent to the block 84.
[0160] In FIG. 5B, - The hatched pixels correspond to the pixels to which the application of the deblocking filter processing is disabled for them, - The pixels filled with dots are the pixels not related to the deblocking filter processing due to their locations within the block, - The white pixels are the pixels to which the deblocking filter processing is applied.
[0161] Therefore, according to the particular embodiment of the present invention to be described, when the current block, for example, the block 84 is decoded or coded according to the coding mode M2 (ILR), if a pixel is located at the boundary of the reconstructed current block 84 with an adjacent block, and the adjacent block is decoded or coded according to the coding mode M2 (ILR), the application of the deblocking filter processing is disabled for the pixels of the reconstructed current block 84. This is shown in FIG. 5B, where all the pixels of the block 84 located at the boundary with the block 85 are hatched.
[0162] Furthermore, according to this specific embodiment of the present invention, the deblocking filter process is applied to the pixels of the reconstructed current block (84) when the pixel is located at the boundary of the reconstructed current block with an adjacent block and the adjacent block is decoded or coded according to a coding mode different from the coding mode M2. This is shown in FIG. 5B, where all the pixels of block 84 located at the boundary with block 83 are white.
[0163] SAO processing operation Normally, the SAO processing operation is applied to all the pixels of the reconstructed block. Such an SAO processing operation consists of shifting the decoded value of each pixel of the block by only the value explicitly sent to the decoder according to the situation around 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, 1755.
[0164] According to a specific embodiment of the present invention, the SAO processing operation is applied only to the reconstructed blocks coded by a conventional, i.e., non-ILR, coding mode. In other words, when the current block is decoded or coded according to the ILR coding mode (M2 in the example described above), the application of the SAO method to the reconstructed current block is disabled for all the 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 specific embodiments of the present invention.
[0166] According to a specific embodiment of the present invention, the steps of the coding method are implemented by computer program instructions. For this purpose, the coding device COD particularly comprises a processing unit UT having a computer of a standard architecture, equipped with a memory MEM, for example, using a processor PROC, and driven by a computer program PG stored in the memory MEM. The computer program PG includes instructions for implementing the steps of the coding method as described above when the program is executed by the processor PROC.
[0167] In initialization, the code instructions of the computer program PG are loaded into a RAM memory (not shown), for example, before being executed by the processor PROC. Specifically, the processor PROC of the processing unit UT implements the steps of the coding method as 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 a decoding method according to any one of specific embodiments of the present invention.
[0169] According to a specific embodiment of the present invention, the decoding device DEC particularly comprises a processing unit UT0 having a computer of a standard architecture, equipped with a memory MEM0, for example, using a processor PROC0, and driven by a computer program PG0 stored in the memory MEM0. The computer program PG0 includes instructions for implementing the steps of the decoding method as described above when the program is executed by the processor PROC0.
[0170] In initialization, the code instructions of computer program PG0 are loaded into a RAM memory (not shown) before being executed by, for example, processor PROC0. Specifically, processor PROC0 of processing unit UT0 implements the steps of the decoding method described above according to the instructions of computer program PG0.
Explanation of Signs
[0171] I j Image M1 First coding mode M2 Second coding mode STR Data stream X b Current block A b ,B b Adjacent block COD Coding device DEC Decoding device MEM,MEM0 Memory PG,PG0 Computer program UT,UT0 Processing unit PROC,PROC0 Processor 80,81,82,83,84,85 Blocks
Claims
Claim 1 A method for decoding a coded data stream representing at least one image, the image being divided into blocks, the decoding method comprising, for at least one block of the image, referred to as a current block: - decoding an item of information indicating the coding mode of the current block among at least a first coding mode and a second coding mode (E42), the second coding mode comprising, for each pixel of the current block: - obtaining a prediction of the pixel from another previously decoded pixel, the other previously decoded pixel belonging to the current block or to a previously decoded block of the image; - decoding a prediction residual associated with the pixel; and - reconstructing the pixel from the obtained prediction of the pixel and the decoded prediction residual associated with the pixel such that the current block is decoded according thereto (E44); a decoding step (E42); - decoding the current block according to the coding mode indicated by the decoded item of information (E44, E43); - applying at least one processing method to the reconstructed current block when the coding mode of the current block corresponds to a coding mode different from the second coding mode; and - disabling the application of the at least one processing method to the reconstructed current block for at least one pixel of the current block when the coding mode of the current block corresponds to the second coding mode A method comprising. Claim 2 A method for encoding a data stream representing at least one image, the image being divided into blocks, the encoding method comprising, for at least one block of the image, referred to as a current block: - coding an item of information indicating the coding mode of the current block among at least a first coding mode and a second coding mode (E20), the second coding mode comprising, for each pixel of the current block: - Obtaining a prediction of the pixel from another pixel decoded previously (E222), wherein the other pixel decoded previously belongs to the current block or a block decoded previously in the image (E222), - Coding a prediction residual related to the pixel, obtained from the prediction of the pixel (E223), and - Reconstructing the pixel from the decoded prediction residual related to the pixel and the prediction of the pixel by which the current block is coded according thereto (E22), the step of coding (E20) in a coding mode; - The step of coding the current block according to the coding mode indicated by the item to be coded of the information (E21, E22); - When the coding mode of the current block corresponds to a coding mode different from the second coding mode, the step of applying at least one processing method to the reconstructed current block; - When the coding mode of the current block corresponds to the second coding mode, the step of disabling the application of the at least one processing method to at least one pixel of the current block to the reconstructed current block A method comprising.
3. The method according to claim 1 or 2, wherein the processing method is a deblocking filter process applied to the pixel of the reconstructed current block located at the boundary of the reconstructed current block and the reconstructed adjacent block in the image.
4. - When the current block is decoded or coded according to the second coding mode, - The application of the deblocking filter process 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, - When the pixel is located at the boundary of the reconstructed current block with a reconstructed adjacent block in the image, and when the adjacent block is decoded or coded according to a coding mode different from the second coding mode, the deblocking filter processing is applied to the pixels of the reconstructed current block, the method according to claim 3.
5. - When the current block is decoded or encoded according to the second coding mode, - When the pixel is located at the boundary of the reconstructed current block with an adjacent block in the image, and when the adjacent block is decoded or coded according to the second coding mode, the application of the deblocking filter processing to the reconstructed current block is disabled for the pixels of the reconstructed current block, - When the pixel is located at the boundary of the reconstructed current block with a reconstructed adjacent block in the image, and when the adjacent block is decoded or coded according to a coding mode different from the second coding mode, the deblocking filter processing is applied to the pixels of the reconstructed current block, the method according to claim 3.
6. 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 encoded in the data stream or decoded from the data stream to the reconstructed value of the pixel, the method according to claim 1 or 2.
7. When the current block is decoded or encoded according to the second coding mode, the application of the modification method to the reconstructed current block is disabled for all pixels of the reconstructed current block, the method according to claim 6.
8. A device for decoding an encoded data stream representing at least one image, wherein the image is divided into blocks, and the decoding device is configured to process at least one block of the image, referred to as a current block, - Decoding an item of information indicating the coding mode of the current block among at least a first coding mode and a second coding mode, wherein the second coding mode is for each pixel of the current block, - Obtaining a prediction of the pixel from another pixel decoded previously, wherein the another pixel decoded previously belongs to the current block or a block decoded previously of the image, - Decoding a prediction residual related to the pixel, and - Reconstructing the pixel from the obtained prediction of the pixel and the decoded prediction residual related to the pixel Thereby, decoding, which 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, - When the coding mode of the current block corresponds to a coding mode different from the second coding mode, applying at least one processing method to the reconstructed current block, - When the coding mode of the current block corresponds to the second coding mode, disabling the application of the at least one processing method to at least one pixel of the current block to the reconstructed current block A device comprising a processor (PROC0) configured to perform the above.
9. A device for encoding a data stream representing at least one image, wherein the image is divided into blocks, and the encoding device is for at least one block of the image, referred to as a current block, - Coding an item of information indicating the coding mode of the current block among at least a first coding mode and a second coding mode, wherein the second coding mode is for each pixel of the current block, - Obtaining a prediction of the pixel from another pixel decoded previously (E222), wherein the another pixel decoded previously belongs to the current block or a block decoded previously of the image (E222), - Coding a prediction residual associated with the pixel, obtained from the prediction of the pixel (E223), and - Reconstructing the pixel from the decoded prediction residual associated with the pixel and the prediction of the pixel whereby coding is performed in a coding mode according to which the current block is coded; - Coding the current block according to the coding mode indicated by the item to be coded of the information; - Applying at least one processing method to the reconstructed current block when the coding mode of the current block corresponds to a coding mode different from the second coding mode; - Disabling the application of the at least one processing method to the reconstructed current block for at least one pixel of the current block when the coding mode of the current block corresponds to the second coding mode A device comprising a processor (PROC) configured to perform the above. **Claim 10** A computer program comprising instructions for implementing the decoding method according to any one of claims 1 or 3 to 7, or the encoding method according to any one of claims 2 to 7, when the computer program is executed by a processor. **Claim 11** A computer-readable data medium storing the instructions of the computer program according to claim 10.
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