Method and device for encoding and decoding a data stream representing at least one image

By determining constant pixel values within blocks and applying a second prediction mode for transition regions, the method improves compression efficiency for synthetic content in image and video encoding.

JP7791965B2Active Publication Date: 2025-12-24オランジュ
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2024196126
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-02-07
Filing Date
2024-11-08
Publication Date
2025-12-24
Estimated Expiration
2040-01-30

Smart Images

  • Figure 0007791965000004
    Figure 0007791965000004
  • Figure 0007791965000005
    Figure 0007791965000005
  • Figure 0007791965000006
    Figure 0007791965000006
Patent Text Reader

Abstract

To provide a method and device for coding and decoding a coded data stream representing at least one image that is split into blocks.SOLUTION: A method includes: determining, for a current block, a group of pixel values in the block from pixels decoded beforehand (E441); decoding, for each pixel, a prediction residue associated with the pixel (E442); determining a prediction value associated with the pixel, according to a first prediction mode (E4411); predicting the pixel from at least one other previously decoded pixel according to the first prediction mode, and replacing, when the pixel is predicted according to a second prediction mode, the other previously decoded pixel belonging to the current block, the prediction value associated with the pixel with a selected value of the group (E4423); and reconstructing the pixel using the prediction value associated with the pixel and the prediction residue (E444).SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The field of the invention is that of coding and decoding images or sequences of images, 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 is particularly applicable to image or video coding and corresponding decoding implemented 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 and when transmitting these images they need to be compressed 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 ("High Efficiency Video Coding, Coding Tools and Specification", Matthias Wien, Signals and Communication Technology, 2015) proposes predicting the pixels of a current image with respect to other pixels belonging to the same image (intra-prediction) or with respect to other pixels belonging to previous or subsequent images (inter-prediction).

[0006] More specifically, intra prediction utilizes 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 within the image.

[0007] Furthermore, in a standard manner, the coding of the current block is performed using a prediction of the current block, called the 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 are 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 coded intra block 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. In fact, pixel prediction by previously processed neighboring pixels is well suited to coding natural types of data (photos, videos). However, when the type of content is artificial, for example content corresponding to screenshots or synthetic images, the image has strong discontinuities and high-energy transitions.

[0011] More specifically, for example, a composite image is likely to contain regions with very few pixel values, hereinafter also referred to as levels. For example, some regions may have only two levels, one for the background and one for the foreground, e.g., black text on a white background.

[0012] When such a transition exists in an area of ​​an image, the value of the coded pixel will be very different from the values ​​of its neighboring pixels, and such pixel prediction using previously processed neighboring pixels is poorly able to model such transitions. [Prior art documents] [Patent documents]

[0013] [Patent Document 1] U.S. Patent No. 9,253,508 [Non-patent literature]

[0014] [Non-Patent Document 1] "High Efficiency Video Coding, Coding Tools and Specification", Matthias Wien, Signals and Communication Technology, 2015 Summary of the Invention [Problem to be solved by the invention]

[0015] Therefore, there is a need for new encoding and decoding methods to improve the compression of image or video data. [Means for solving the problem]

[0016] The present invention improves on the state of the 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: - determining a group of pixel values ​​that are constant within the block from previously decoded pixels; -For each pixel in the block, decoding a prediction residual associated with said pixel; determining a prediction value associated with a pixel according to a first prediction mode, according to which the pixel is predicted from at least one other previously decoded pixel, said other previously decoded pixel belonging to a previously decoded block of said current block or image; decoding from the data stream an item of information indicating whether the pixel is predicted according to a second prediction mode in which the pixel is predicted using a prediction resulting from said group of pixel values ​​that is constant within the block; if the item of information indicates that the pixel is predicted according to the second prediction mode, selecting a value for said group; replacing the predicted value associated with a pixel with the selected value; Reconstructing a pixel using a prediction value and a prediction residual associated with said pixel.

[0017] Correspondingly, 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: - determining a group of pixel values ​​that are constant within the block from previously decoded pixels; -For each pixel in the block, determining a prediction value associated to a pixel according to a first prediction mode, wherein the pixel is predicted by a prediction value associated to the pixel determined from at least one other previously decoded pixel, the other previously decoded pixel belonging to the current block or a previously decoded block of the image; determining a prediction mode for a pixel from a first prediction mode and a second prediction mode in which the pixel is predicted using a prediction resulting from said group of pixel values ​​that are constant within the block; coding in the data stream an item of information indicating whether a pixel is predicted according to a second prediction mode; if the item of information indicates that the pixel is predicted according to the second prediction mode, selecting a value for said group; replacing the predicted value associated with a pixel with the selected value; - calculating a prediction residual associated with a pixel using a prediction value associated with said pixel and the value of said pixel; coding a prediction residual associated with said pixel in a data stream; reconstructing the pixel using the predicted value associated with the pixel and the coded prediction residual.

[0018] The present invention therefore improves the compression performance of coding modes using local prediction from neighboring pixels of a pixel to be coded. Advantageously, a group of pixel values ​​is determined that represents the values ​​of neighboring pixels of the block to be coded. For example, this group comprises a predetermined number of pixel values ​​that are most frequent among the neighboring pixels of the block to be coded. Typically, this group of values ​​may comprise intensity values ​​of an image layer, for example in the case of a composite image, or when the image is represented in layers or comprises regions with separated foreground and background, such as black text on a white background.

[0019] According to a particular embodiment of the invention, the group of values ​​comprises two values ​​representing the two most frequent values ​​in the neighborhood of the block.

[0020] When a pixel is detected that lies in a transition region, its predicted value is changed to one of the values ​​of the group so determined.

[0021] The value of such a group is said to be constant within the current block, since it is determined only once for all pixels of the current block.

[0022] According to a particular embodiment of the invention, the value of the group is selected according to the distance of a predicted value associated with said pixel and determined according to the first prediction mode, relative to a constant pixel value of the group.

[0023] This particular embodiment of the present invention allows for the expedient selection of predicted values ​​for a group of pixels located in a transition region, without requiring additional information to be transmitted to indicate this selection.

[0024] According to another particular embodiment of the invention, the group comprises a first value and a second value, and if the distance between the predicted value associated with said pixel and the first value is smaller than the distance between the predicted value associated with said pixel and the second value, the selected value of said group is the first value, otherwise the selected value of said group is the second value.

[0025] According to another particular embodiment of the invention, the item of information indicating whether a pixel is predicted according to the second prediction mode is decoded from or coded into the data stream only if the prediction residual of the pixel is different from 0.

[0026] This particular embodiment avoids coding an item of information indicating a prediction according to the second prediction mode if the prediction residual is different from 0. Thus, according to this particular embodiment, in the decoder, the first prediction mode is used by default to predict the current pixel.

[0027] This particular embodiment of the invention avoids unnecessary information being coded by the encoder: in fact, in the encoder, if the prediction according to the first prediction mode results in a zero prediction residual, i.e. an optimal prediction, then the item of information indicating that the second prediction mode is not used for the current pixel is implicit.

[0028] Such a particular embodiment of the invention can be implemented in an encoder by a previous step consisting of calculating a prediction residual from a prediction resulting from a first prediction mode, or by a step consisting of determining whether the original value of the pixel to be coded is far from the predicted value resulting from the first prediction mode.

[0029] According to another particular embodiment of the invention, determining the group of pixel values ​​that are constant within a block from previously decoded pixels is performed by calculating a histogram of values ​​of neighboring pixels of the current block previously reconstructed and selecting at least two pixel values ​​that respectively represent the two most frequent pixel values ​​among the neighboring pixels of the current block.

[0030] According to another particular embodiment of the invention, the threshold value is determined from at least one value of said group of pixel values ​​that is a constant within a block from previously decoded pixels. - if the original value of said pixel is greater than said threshold value and the threshold value is greater than a predicted value associated with the pixel determined according to the first prediction mode, or - the second prediction mode is selected if the original value of said pixel is smaller than said threshold value and the threshold value is smaller than the predicted value associated with the pixel determined according to the first prediction mode.

[0031] The invention also relates to a device for decoding a coded data stream representing at least one image divided into blocks, such a decoding device comprising, for at least one block of the image, called the current block: - determining a group of pixel values ​​that are constant within the block from previously decoded pixels; -For each pixel in the block, decoding a prediction residual associated with said pixel; determining a prediction value associated with a pixel from at least one other previously decoded pixel, said other previously decoded pixel belonging to said current block or a previously decoded block of the image; determining from the data stream an item of information indicating whether a pixel is predicted using a prediction resulting from said group of pixel values ​​that are constant within the block; If the item of information indicates that the pixel is predicted using a prediction resulting from a group of pixel values ​​that are constant within the block, selecting a value for said group; replacing the predicted value associated with a pixel with the selected value; reconstructing the pixel using a prediction value associated with the pixel and a prediction residual.

[0032] According to a particular embodiment of the invention, such a decoding device is provided in a terminal.

[0033] The invention also relates to a device for coding a data stream representing at least one image divided into blocks, such a coding device determining, for at least one block of the image, called the current block: - determining a group of pixel values ​​that are constant within the block from previously decoded pixels; -For each pixel in the block, determining a prediction value associated with a pixel according to a first prediction mode, according to which the pixel is predicted from at least one other previously decoded pixel, said other previously decoded pixel belonging to said current block or a previously decoded block of an image; determining a prediction mode for a pixel from a first prediction mode and a second prediction mode in which the pixel is predicted using a prediction resulting from said group of pixel values ​​that are constant within the block; coding in the data stream an item of information indicating whether a pixel is predicted according to the second prediction mode; if the item of information indicates that the pixel is predicted according to the second prediction mode, selecting a value for said group; replacing the predicted value associated with a pixel with the selected value; calculating a prediction residual associated with a pixel using a prediction value associated with the pixel and the value of the pixel; coding a prediction residual associated with said pixel in a data stream; reconstructing the pixel using a prediction value associated with the pixel and a coded prediction residual.

[0034] According to a particular embodiment of the invention, such a coding device is provided in a terminal or in a server.

[0035] The invention also relates to a data stream representing at least one image divided into blocks, such a data stream comprising, for at least one block of the image called the current block, and for each pixel of said current block: an item of information representative of a prediction residual associated with said pixel; an item of information indicating whether the pixel is predicted using a prediction resulting from a constant group of pixel values ​​within the block, the constant group of pixel values ​​within the block being determined from previously decoded pixels.

[0036] The decoding method, respectively the encoding method according to the present invention can be implemented in various ways, in particular in wired or software form. According to a particular embodiment of the present invention, the decoding method, respectively the encoding method is 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 when executed by a processor. Such a program can use any programming language, which can be downloaded from a communication network and / or recorded on a computer-readable medium.

[0037] The program may use any programming language and may be in the form of source code, object code, or any intermediate code between source code and object code, such as partially compiled form, or any other desired form.

[0038] The present invention also relates to a computer-readable storage medium or data medium comprising 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 comprise a storage means such as a memory. On the other hand, the storage medium may correspond to a transmissible medium such as an electrical or optical signal that may be conveyed by radio or by other means, via an electrical or optical cable. The program according to the present invention may in particular be downloadable onto an Internet-type network.

[0039] Alternatively, the storage medium may correspond to an integrated circuit in which the program is embedded, the circuitry being adapted for performing, or for use in the performance of, the method of interest.

[0040] Other features and advantages of the invention will become more clearly apparent on reading the following description of particular embodiments, given by way of simple, illustrative and non-limiting example, and the accompanying drawings, in which: [Brief explanation of the drawings]

[0041] [Figure 1] FIG. 3 illustrates steps of an encoding method according to a particular embodiment of the invention. [Figure 2A] FIG. 2 illustrates an example of a portion of a coded data stream in accordance with certain embodiments of the present invention. [Figure 2B] FIG. 4 illustrates an example of a portion of a coded data stream in accordance with another particular embodiment of the present invention. [Figure 3A]3A and 3B are diagrams illustrating examples of the positions of neighboring blocks of a current block for determining an intra-prediction mode, according to certain embodiments of the present invention. [Figure 3B] 3A and 3B illustrate examples of the 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 5] FIG. 2 illustrates an example of blocks comprising content, such as a screen, each having two layers of content, and their respective neighborhoods in an image, according to certain embodiments of the present invention. [Figure 6] FIG. 2 illustrates an example of a 16×16 block with content, such as a screen with two layers of content, and a transition map indicating the transition states of pixels in that block, in accordance with certain embodiments of the present invention. [Figure 7] FIG. 2 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 8] 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 invention; DETAILED DESCRIPTION OF THE INVENTION

[0042] 5.1 General principles The invention improves the coding mode of blocks of an image using local prediction of the pixels of the block located at the transition between pixel values ​​of two very different levels.

[0043] The coding mode of a block coded using local prediction allows the use of reference pixels belonging to the block to be coded to predict other pixels of the block to be coded. This prediction mode reduces the prediction residual by using pixels of blocks that are spatially very close to the pixel to be coded.

[0044] However, this coding introduces a relatively large coding residual when the original pixel is far from the prediction. This is usually the case for content such as screenshots or synthetic images. In this type of content, strong discontinuities can occur in the blocks being coded. In this case, reference pixels belonging to the background can be used to predict pixels of the same block that belong to the foreground, and vice versa. In this case, the information available in the reference pixels is not suitable for accurate prediction. In the following, pixels located on the boundary between background and foreground regions are called transition pixels.

[0045] Advantageously, the present invention proposes to derive, for a block to be coded, an item of information related to each layer of the image, for example, an item of information related to the foreground and an item of information related to the background, where only two layers are considered. Of course, additional layers of content can be taken into account, increasing the number of items of information derived. For example, the derivation of such information consists in determining a group of pixel values ​​that are constant within the block.

[0046] According to a particular embodiment of the invention, this information relating to each layer of the image is derived from the local neighborhood of the block being coded.

[0047] Advantageously, this information is used in combination with a mechanism for detecting transition pixels within the block being coded, thereby reducing the residual energy of such pixels.

[0048] Figure 5 shows blocks (Bi-bl) with content such as a screen, each with two layers of content, and their respective neighbors (Neigh) in the image. As shown in Figure 5, the local neighborhood of the current block to be coded contains useful information related to the intensity levels of the two layers.

[0049] According to the invention, when transition pixels within the block to be coded are detected, the predicted values ​​of these pixels are corrected using the intensity level of the layer corresponding to the layer to which the pixel is likely to belong.

[0050] According to a particular embodiment of the invention, in order to make an optimal prediction for each pixel of a block and to limit the rate cost, such a mechanism is restricted to pixels that satisfy certain conditions.

[0051] According to the local neighborhood of the predicted pixel, three states of the predicted pixel can be defined. -s1: The pixel belongs to a homogeneous region where local prediction from neighboring pixels is very efficient, for example providing a zero quantized prediction residual. In this case, the pixel is not a transition pixel. According to a variant of an embodiment, this situation can be detected implicitly in the decoder. -s2: The pixel belongs to a region where local prediction from neighboring pixels is reasonably efficient, e.g., providing a low prediction residual. For this pixel, the correction mechanism described above can be used to predict the pixel, but if the residual prediction error is not large enough compared to a threshold determined according to the intensity level of the layer, the correction mechanism is not applied. In this case, the indicator is specially coded to indicate that the correction mechanism is not used. s3: The pixel belongs to a region where local prediction from neighboring pixels is inefficient, e.g., provides a large prediction residual. Prediction of the pixel by the correction mechanism described above is allowed for that pixel, and an indicator is specially coded to indicate its use.

[0052] Figure 6 shows, on the left, an example 16x16 block with light text on a dark background, and, on the right, a transition map for this block, showing how the above states can be assigned to the pixels of the block.

[0053] 5.2 Embodiment 1 shows the steps of a coding method according to a particular embodiment of the invention. For example, images I1, I2, ..., I Nb is coded in the form of a coded data stream STR according to a particular embodiment of the invention, for example, such a coding method is implemented by a coding device as described below in connection with FIG.

[0054] Images I1, I2, ..., I, where Nb is the number of images in the sequence to be coded. Nb is provided as input to a coding method, which outputs a coded data stream STR representing the sequence of images provided as input.

[0055] In a known manner, images I1, I2, ..., I Nb The coding of the sequence is done picture by picture according to a coding order that is pre-established and known to the encoder. For example, the pictures are coded in the temporal order I1, I2, ..., I Nb , or another order, e.g., I1, I3, I2, …, I Nb It can be coded as:

[0056] In step E0, images I1, I2, ..., I Nb Image I to be coded from the sequence j is divided into blocks, e.g., blocks of 32x32, 64x64 pixels or larger. Such blocks may be subdivided into square or rectangular sub-blocks, e.g., 16x16, 8x8, 4x4, 16x8, 8x16.

[0057] In step E1, image I j The first block or sub-block X to be coded b But image I j The first block is selected according to a predetermined scan order of the image, for example, the first block in the lexicographical scan order of the image.

[0058] In step E2, the encoder calculates the current block X b Select the coding mode to code the

[0059] According to a particular embodiment described herein, the encoder selects a first coding mode M1 and a second coding mode M2 ​​for the current block X b Select the coding mode to encode the . Additional coding modes (not described here) can be used.

[0060] According to certain embodiments described herein, the first coding mode M1 corresponds to conventional intra-predictive coding of the current block, e.g. as defined according to the HEVC standard, and the second coding mode M2 ​​corresponds to in-loop residual (ILR) or DPCM predictive coding as described below.

[0061] The principles 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 a transformation of a prediction residual (inter-picture predictive coding, spatial prediction with template matching coding, etc.).

[0062] In step E2, the encoder may perform a rate / distortion optimization to determine the optimal 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 inter-mode coding modes, may be tested. During this rate / distortion optimization, the encoder may test the current block X according to the various available coding modes to determine the rate and distortion associated with each coding mode. band selects the coding mode that provides the best rate / distortion compromise, e.g., according to a D+λ×R function, where R is the rate required to code the current block according to the evaluated coding mode, D is the distortion measured between the decoded block and the original current block, and λ is a Lagrange multiplier, e.g., entered by a user or defined in the encoder.

[0063] At step E20, an item of information indicating the coding mode selected for the current block is coded in the data stream STR.

[0064] Current 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.

[0065] 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 herein, the first coding mode corresponds to conventional intra prediction, such as that defined in the HEVC standard.

[0066] In step E210, a quantization step δ1 is determined. For example, the quantization step δ1 may be set by the user, calculated using a quantization parameter that sets a compromise between compression and quality and entered by the user, or defined by the encoder. Such a quantization parameter may therefore be the parameter λ used in the rate-distortion cost function D+λ×R, where D represents the distortion introduced by the coding and R represents the rate used for coding. This function is used to make the coding choice. Typically, a method of coding an image that minimizes this function is sought.

[0067] As a variant, the quantization parameter can be a QP corresponding 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 formula δ1=levelScale[QP%6]<<(QP / 6), where levelScale[k]={40, 45, 51, 57, 64, 72} for k=0..5.

[0068] In step E211, a prediction for the current block is determined using a conventional intra prediction mode, in which each predicted pixel is calculated only from decoded pixels obtained 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 the prediction mode transmitted to the decoder and is selected by the encoder from a predetermined set of modes known to the encoder and decoder.

[0069] Thus, HEVC has 35 possible prediction modes: 33 modes that interpolate reference pixels in 33 different angular directions, and two other modes: DC mode, in which each pixel of the prediction block is generated from an average of the reference pixels, and PLANAR mode, which performs planar and non-directional interpolation. This "traditional intra prediction" is well known and is used in the ITU-T H.264 standard (which has only nine 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 the pixels of the block being coded from pixels of neighboring blocks and transmitting the optimal prediction mode to the decoder.

[0070] Thus, 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 keep the prediction mode that minimizes a cost function, such as classically the rate-distortion cost.

[0071] In step E212, the prediction mode selected 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 of b and B b An example of the position is shown.

[0072] In step E212, the intra prediction mode selected for the current block is coded using the intra prediction modes associated with the neighboring blocks.

[0073] For example, the technique described in the HEVC standard for coding the prediction mode of the current block can be used. In the example of FIG. 3A, such a technique is used for coding the prediction mode of block A, which is located above the current block. b The intra prediction mode m associated with A , and block B located immediately to the left of the current block b The intra prediction mode m associated with B m A and m B Depending on the value of , a list called MPM (Most Probable Mode) containing three intra prediction modes and a list called non-MPM containing 32 other prediction modes are created.

[0074] According to the HEVC standard, a syntax element is transmitted to code the intra prediction mode of the current block. - a binary indicator showing whether the prediction mode coded for the current block is in the MPM list; - 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.

[0075] In step E213, the prediction residuals R of the current block are constructed.

[0076] In step E213, in the standard way, a predicted block P is constructed according to the prediction mode selected in step E211. A prediction residual R is then obtained by calculating the pixel-by-pixel difference between the predicted block P and the original current block.

[0077] In step E214, the prediction residual R is T is converted to

[0078] In step E214, the frequency transformation is carried out to obtain a block R comprising the transformation coefficients. T is applied to the residual block R to generate a transform, which may for example be a DCT type transform. A set of predefined transforms E T It is possible for the decoder to select the transform to be used from and to inform the decoder of the transform to be used.

[0079] In step E215, the transformed residual block R T is quantized using, for example, a quantization step scalar quantization δ1, so that the quantized transformed prediction residual block R TQ is generated.

[0080] At step E216, the quantized block R TQ The coefficients of are coded by an entropy encoder. For example, the entropy coding specified in the HEVC standard can be used.

[0081] In a known manner, the current block is converted into a quantized block R TQ The current block is decoded by inverse quantizing the coefficients of the current block, and then applying an inverse transform to the inverse quantized coefficients to obtain a decoded prediction residual. The 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.

[0082] 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 herein, the second coding mode corresponds to ILR predictive coding.

[0083] In the previous step E220, the quantization step δ2 is determined, which for example depends on the same quantization parameter as the quantization step δ1 that would be determined in step E210 if the current block were coded according to the first coding mode.

[0084] According to the invention, in this coding mode, the pixels of the current block can be predicted according to the first prediction mode or the second prediction mode.

[0085] According to the first prediction mode, the pixels of the current block are predicted by previously reconstructed pixels of the neighboring blocks of the current block and / or previously processed pixels of the current block itself. Preferably, to predict a pixel, a pixel as close as possible to the pixel to be predicted is selected. This is why it is called a local predictor.

[0086] According to a second prediction mode, the pixels of the current block are predicted by level values ​​of a layer selected, for example, by a group of values ​​determined from the neighborhood of the current block.

[0087] In step E221, a group of constant pixel values ​​within the block is determined from previously decoded pixels. Several reconstruction levels for the current block are determined, for example, two called f and b. These levels are constructed by analyzing the values ​​obtained by the reference pixels of the current block, i.e., pixels from previously processed blocks adjacent to the current block. There are several techniques for determining levels f and b. Thus, it is possible to calculate a histogram of the values ​​of the reference pixels and assign the most frequent value to b and the second most frequent value to f. Another approach is to identify local maxima in the histogram, i.e., maxima surrounded by smaller values. Thus, the largest local maxima are assigned to level f, and the second largest local maxima to level b.

[0088] Furthermore, according to certain embodiments of the present invention, a threshold value thr is determined, which is typically midway between f and b,

[0089]

number

[0090] In an alternative embodiment,

[0091]

number

[0092] can also be chosen, where dyn is the maximum value of the signal.

[0093] A variation of the above embodiment for determining groups of pixel values ​​that are constant within a block allows for implicit detection of image layers that can also be implemented in the decoder without the need to transmit additional information.

[0094] For example, to limit the complexity of image layer detection, the immediate neighborhood of the current block is used, eg, only pixels in the left column and the row above the current block are used.

[0095] According to another variant, more than two values ​​can be determined, for example by considering the following maxima of the histogram:

[0096] The values ​​f and b so determined correspond to values ​​of a group of values ​​used for the second prediction mode.

[0097] The following steps are performed for each pixel in the current block.

[0098] In step E2201, a local predictor PL of the pixel considered is determined, which local predictor PL corresponds to the predictor obtained according to the first prediction mode.

[0099] The local predictor PL can be defined as: b As shown in Figure 3B, if we call X the current pixel to be predicted in the current block, A the pixel immediately to the left of X, B the pixels immediately to the left and above X, and C the pixel immediately above X, the local predictor PL is defined as follows: PL(X) = min(A,B) if C≧max(A,B) max(A,B) if C≦min(A,B) A+BC otherwise In the formula, min(A,B) corresponds to a function that returns the minimum value between the values ​​of A and B, and max(A,B) corresponds to a function that returns the maximum value between the values ​​of A and B.

[0100] Other local prediction functions can be used. According to another variant, several local prediction functions are available and the same local prediction function is selected for all pixels of the current block. For example, the texture direction of pixels of previously coded neighboring blocks is analyzed. For example, previously coded pixels in neighboring blocks located above or to the left of the current block are analyzed using a Sobel-type operator. - If it is determined that no direction appears, the prediction function is the one defined above, - If the direction is determined to be horizontal, the prediction function is PL(X)=A, - If the direction is determined to be vertical, the prediction function is PL(X)=B, - If the direction is determined to be diagonal, the prediction function is PL(X)=C.

[0101] Thus, the predicted value PL(X) associated with the current pixel X of the current block is obtained according to the pixel's position within the current block using already reconstructed pixels outside the block (and therefore available in their decoded values), previously reconstructed pixels in the current block, or both. In all cases, the predictor PL uses previously reconstructed pixels. In FIG. 3B, it can be seen that the pixels of the current block located in the first row and / or first column of the current block use already reconstructed pixels outside the block (gray pixels in FIG. 3B) and potentially already reconstructed pixels of the current block as reference pixels (to construct the predicted value PL(X)). For other pixels in the current block, the reference pixels used to construct the predicted value PL(X) are located within the current block.

[0102] In step E2202, a prediction mode is determined from the first prediction mode and the second prediction mode to use for predicting the current pixel.

[0103] According to a particular embodiment of the present invention, when PL(X) < thr < X or PL(X) > thr > X, the second prediction mode is selected. In other words, - When the original value X of the pixel is greater than the threshold thr and the threshold thr is greater than the predicted value PL(X) associated with the pixel determined according to the first prediction mode, or - When the original value X of the pixel is less than the threshold thr and the threshold thr is less than the predicted value PL(X) associated with the pixel determined according to the first prediction mode, the second prediction mode is selected.

[0104] When any of the above conditions is satisfied, the state of the predicted pixel is s = 3, and the encoder proceeds to the next step E2203.

[0105] In step E2203, an indicator t indicating that the predicted pixel is predicted according to the second prediction mode is set to, for example, 1 and encoded in the data stream STR, for example, by entropy encoding, or transmitted as is in the stream.

[0106] In step E2204, the value of the group of values determined in step E221 is selected to predict the current pixel.

[0107] According to a particular embodiment of the present invention, the value of the group is selected according to the distance from the predicted value associated with the pixel determined according to the first prediction mode to the group pixel value determined in step E221. For example, when the distance between the predicted value PL(X) associated with the pixel by the first prediction mode and the value b of the group is smaller than the distance between the predicted value PL(X) associated with the pixel by the first prediction mode and the value f, the selected value is b; otherwise, the selected value is f.

[0108] For example, the L1 or L2 norm can be used as the distance measurement.

[0109] Therefore, if |PL(X)-b|<|PL(X)-f|, then PL(X)=b, otherwise PL(X)=f.

[0110] The method then proceeds to step E2205.

[0111] If it is determined in step E2202 that the current pixel is not predicted according to the second prediction mode, the current pixel is predicted according to the first prediction mode. Therefore, the predicted value PL(X) associated with the current pixel and obtained according to the first prediction mode is not modified. Therefore, the current pixel is in state s=1 or s=2.

[0112] In step E2205, a prediction residual R1(X) is calculated for the current pixel as the difference between the original value X of the current pixel and a predicted value PL(X) associated with the current pixel, i.e. R1(X) = X - PL(X), where the predicted value PL(X) could have been obtained either by the first prediction mode or the second prediction mode.

[0113] The prediction residual R1(X) is then quantized to Q(X) by a quantization step scalar quantizer δ2 with Q(X)=ScalarQuant(R1(X))=ScalarQuant(δ2,X-PL(X)), where the scalar quantization is, for example,

[0114]

number

[0115] where Δ is the quantization step and x is the value to be quantized.

[0116] 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 PL(X) of pixel X and the original value of X. Such a quantized residual Q(X) of pixel X is included in the quantized prediction residual block R1. Q and later coded.

[0117] In step E2206, the decoded prediction P1(X) of X is calculated by adding the dequantized value of the quantized residual Q(X) to the prediction PL(X). Thus, the decoded prediction P1(X) of X is obtained by P1(X) = PL(X) + ScalarDequant(δ2,Q(X)). For example, the closest scalar quantization inverse function is given by ScalarDequant(Δ,x) = Δ×x.

[0118] The decoded prediction value P1(X) therefore makes it possible to predict the pixels that may continue to be processed in the current block.

[0119] Furthermore, a block P1 can be defined that comprises the decoded / reconstructed values ​​P1(X) of the pixels of the current block, such that block P1 is an ILR predictor of the current block (as opposed to a traditional intra predictor).

[0120] According to a particular embodiment of the invention, in step E2207, if the quantized prediction residual Q1(X) is not zero, in other words if the amplitude a of the quantized prediction residual Q1(X) is not zero, then the indicator t is set to 0 and coded in the data stream STR, for example. In this case, the current pixel is considered to be in state s=2.

[0121] According to this particular embodiment of the invention, if the quantized prediction residual Q1(X) is zero, i.e., if the amplitude a of the quantized prediction residual Q1(X) is zero, the indicator t is also set to 0, since the current pixel is not predicted by the second prediction mode, but the indicator t is not coded in the data stream STR. This prediction mode is implicitly deduced in the decoder from the decoded value of the amplitude of the quantized prediction residual Q1(X). In this case, the current pixel is considered to be in state s=1. In this case, the method proceeds directly from step E2206 to step E223.

[0122] Of course, in practice, if explicitly coded (s=2 or s=3), the indicator t is coded in the data stream after the quantized prediction residual Q1(X) is coded.

[0123] According to another particular embodiment of the invention, the indicator t is set to 0 and is systematically coded in step E2207 for each pixel in the data stream STR, regardless of the value of the amplitude a of the prediction residual Q1(X). Thus, at the decoder, by reading the indicator t, the decoder explicitly determines whether the current pixel is predicted according to the second prediction mode, regardless of the value of the quantized prediction residual. In this case, no distinction is made between whether the pixel is in state s=1 or state s=2.

[0124] According to a variant, in this particular embodiment of the invention, the indicator t is coded systematically, so that in step E2202, the determination of the prediction mode from the first and second prediction modes to use for predicting the current pixel can be made, for example, by comparing a distance measure between the prediction value provided by the first prediction mode and the original value X of the current pixel and a distance measure between the prediction value provided by the second prediction mode and the original value X of the current pixel.

[0125] The above steps are performed for all pixels of the current block in scan order, which ensures that the pixels used for local prediction are available.

[0126] According to one embodiment variant, the scanning order of the current block is lexicographic, ie from left to right and from top to bottom.

[0127] According to another embodiment variant, several scanning orders of the current block, e.g. - lexicographical order, or - Scan the first column from top to bottom, then the column immediately to the right, etc., or - Scanning the diagonals one after the other can be used.

[0128] According to this alternative, it is possible to simulate the coding costs associated with each of the scanning orders, to select the scanning order that is best suited for the current block in terms of rate / distortion, and then to code an item of information representing the selected scanning order for the current block.

[0129] At the end of step E2205, the quantized residual block R1 Q This quantized residual block R1 Q needs to be coded to be sent to the decoder. The predictor P1 for the current block has also been determined.

[0130] In step E223, the quantized residual block R1 Q is coded for transmission to the decoder. Any known technique can be used to code the quantized coefficients of the conventional prediction residual, such as the method described in HEVC.

[0131] In standard methods, each quantized prediction residual Q1(X) of the current block is decomposed into an amplitude value a and a sign indicator sgn, if the amplitude a is different from 0.

[0132] According to the particular embodiment of the invention described herein, the quantized residual block R1 Q The amplitude and sign values ​​of are coded using an entropy encoder in the data stream STR.

[0133] 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. The predicted version P1 and the quantized residual R1 Q It is certainly possible to simply encode the current block by

[0134] To code the additional prediction residual R2 of the current block, the following procedure is performed.

[0135] In step E224, the predictor P1 and the original current block X are used to form an additional residual R2. b The difference R2 between b -P1. The following steps correspond to the conventional coding steps of this residual R2:

[0136] In step E225, the residual R2 is calculated by dividing the block of coefficients R2 T is transformed using a frequency transform to generate

[0137] The transformation may for example be a DCT type transformation. A set of predefined transformations E T2 It is possible to select the transform to be used from the set E to match the particular statistics of the residual R2. T2 Set E T may differ from the above.

[0138] In step E226, the block of coefficients R2 T is quantized using, for example, a quantization step scalar quantization δ. This results in block R2 TQis generated.

[0139] The quantization step δ can be set by the user, or it can be calculated using a parameter λ that sets a trade-off between compression and quality and input by the user or the encoder. For example, the quantization step δ can correspond to or be determined similarly to the quantization step δ1.

[0140] Then, in step E227, the quantized block R2 TQ The coefficients of are transmitted in a coded manner, for example using the coding specified in the HEVC standard.

[0141] In a known manner, the current block is a quantized block R2 TQ The current block is decoded by inverse quantizing the coefficients of X, and then applying an inverse transform to the inverse quantized coefficients to obtain a decoded prediction residual. The current block is then reconstructed and its decoded version X rec The prediction P1 is added to the decoded prediction residual to obtain the decoded version X of the current block, X, in order to spatially predict other neighboring blocks of the image or to predict blocks of other images by inter-image prediction. rec can be used later.

[0142] 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 predefined 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 predefined scanning order of the image and the coding method proceeds to step E2, where the selected block becomes the current block to be processed.

[0143] If all blocks of the image have been coded, the method proceeds to the application of a post-processing method applied to the reconstructed image in step E231. For example, such a post-processing method may be a deblocking filtering and / or a SAO (Sample Adaptive Offset) method, as defined in the HEVC standard.

[0144] The method proceeds with the coding of the next image of the video, if any (step E25).

[0145] 2A and 2B show diagrammatically portions of a data stream resulting from such encoding according to different specific embodiments of the invention.

[0146] FIG. 2A shows an example of a stream of three pixels (X1, X2, X3) of a block of an image coded according to a particular embodiment of the present invention, where it has been determined that pixel X1 is considered to be in state s=3, pixel X2 is considered to be in state s=2, and pixel X3 is considered to be in state s=1.

[0147] According to the variant described herein, it can be seen that the coded data for pixel X1 are the amplitude value of the quantized prediction residual a(X1), its sign sgn(X1), and the value of indicator t, which is set to 1. The coded data for pixel X2 are the amplitude value of the quantized prediction residual a(X2), its sign sgn(X2), and the value of indicator t, which is set to 0. For X2, the amplitude value of the quantized prediction residual is different from 0, and the indicator t, which is set to 0, is explicitly coded in the stream.

[0148] The data coded for pixel X3 is the amplitude value of the quantized prediction residual a(X3), which is zero. In this case, since the amplitude value of the quantized prediction residual is different from 0, the indicator t set to 0 is not explicitly coded in the stream but is implicitly inferred in the decoder.

[0149] FIG. 2B shows an example of a stream of three pixels (X1, X2, X3) of a block of an image coded according to another particular embodiment of the present invention, where it has been determined that pixel X1 is considered to be in state s=3, pixel X2 is considered to be in state s=2, and pixel X3 is considered to be in state s=1.

[0150] According to the variant described herein, it can be seen that the coded data for pixel X1 are the amplitude value of the quantized prediction residual a(X1), its sign sgn(X1), and the value of indicator t, which is set to 1. The coded data for pixel X2 are the amplitude value of the quantized prediction residual a(X2), its sign sgn(X2), and the value of indicator t, which is set to 0.

[0151] The coded data for pixel X3 is the amplitude value of the quantized prediction residual a(X3) which is zero, and indicator t is set to 0.

[0152] FIG. 4 shows images I1, I2, ..., I that are decoded according to a particular embodiment of the invention. Nb 1 illustrates method steps for decoding a stream of coded data STR representing a sequence of

[0153] For example, the data stream STR has been generated via the encoding method shown 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 8.

[0154] The decoding method decodes the stream images image by image, and each image is decoded block by block.

[0155] At step E40, the image to be decoded I j is subdivided into blocks. Each block undergoes a decoding operation consisting of a series of steps detailed below. The blocks may be of the same size or of different sizes.

[0156] In step E41, image I j The first block or sub-block X to be decoded b But image I j A block is selected as the current block according to a predetermined scan order of the image, for example, it may be the first block in the lexicographical scan order of the image.

[0157] In step E42, an item of information indicating the coding mode of 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 a 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 an in-loop residual (ILR) predictive coding.

[0158] 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).

[0159] The step E43 for decoding the current block when it has been coded according to the first coding mode M1 is described below.

[0160] In step E430, the quantization step δ1 is determined. For example, the quantization step δ1 is determined from the quantization parameter QP transmitted in the data stream STR, or as done in the encoder. 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 formula δ1=levelScale[QP%6]<<(QP / 6), where levelScale[k]={40, 45, 51, 57, 64, 72} for k=0..5.

[0161] In step E431, the prediction mode selected for coding the current block is decoded from the neighboring blocks: for this purpose, as done in the encoder, the intra prediction mode selected for the current block is coded using the intra prediction modes associated with the neighboring blocks of the current block.

[0162] The construction of both MPM and non-MPM lists is exactly the same as that done during encoding. According to the HEVC standard, the following types of syntax elements are decoded: - a binary indicator showing whether the prediction mode coded for the current block is in the MPM list; - if the prediction mode of the current block belongs to an MPM list, the index in the MPM list corresponding to the prediction mode of the current block is read; - If the prediction mode of the current block does not belong to an MPM list, the index in the non-MPM list that corresponds to the prediction mode of the current block is read.

[0163] Therefore, a binary indicator and a prediction mode index are read for the current block from the data stream STR to decode the intra-prediction mode of the current block.

[0164] In step E432, the decoder constructs a prediction block P of the current block from the decoded prediction mode.

[0165] In step E433, the decoder extracts the quantized block R from the data stream STR, for example using the decoding specified in the HEVC standard. TQ Decode the coefficients of

[0166] In step E434, the decoded block RTQ is dequantized, for example using a quantization step scalar dequantization δ1, to obtain the dequantized coefficients R TQD blocks are generated.

[0167] In step E435, an inverse frequency transform is performed on the decoded prediction residual block R TQDI To generate the inverse quantization coefficients R TQD The transformation can be, for example, an inverse DCT type transformation. By decoding an indicator from the data stream STR, the transformation E TI It is possible to select the transformation to be used from a predetermined set of .

[0168] At step E436, the current block is decomposed into the prediction block P obtained at step E432 and the decoded residual block R obtained at step E435. TQDI From X rec =P+R TQDI The current block X decrypted by rec is reconstructed to produce

[0169] The step E44 for decoding the current block when it is coded according to the second coding mode M2 ​​is described below.

[0170] In step E440, the quantization step δ2 is determined, as was done in the encoder.

[0171] According to the invention, in this coding mode M2, the pixels of the current block can be predicted according to the first prediction mode or the second prediction mode already presented in connection with FIG.

[0172] In step E441, a group of constant pixel values ​​within the block is determined from previously decoded pixels of the image, just as was done in the encoder, assuming that the level values ​​f and b have been determined.

[0173] The following steps are performed for each pixel in the current block.

[0174] In step E4411, a prediction value for the current pixel according to the first prediction mode is determined. For this purpose, the same local predictor PL as in the encoder is used. If several local predictors are possible, the local predictor PL is determined in the same way as in the encoder.

[0175] In step E442, the quantized residual R1 Q is decoded from the data stream STR. To decode the quantized coefficients of the conventional prediction residual, any known technique can be used, such as the method described in HEVC. Then, the amplitude a of the quantized prediction residual Q1′(X) of the current pixel is obtained.

[0176] According to a particular embodiment of the invention, in step E4421, if the amplitude a of the quantized prediction residual Q1'(X) is zero, the indicator t indicating whether the current pixel is predicted according to the second prediction mode is implicitly set to 0. In this case, the current pixel is considered to be in state s=1 and is predicted by the prediction value resulting from the first prediction mode. The quantized prediction residual Q1'(X) is then reconstructed by Q1'(X)=0.

[0177] Otherwise, when the amplitude a of the quantized prediction residual Q1'(X) is not zero, the sign sgn associated with the quantized prediction residual Q1'(X) is read in the data stream STR. The quantized prediction residual Q1'(X) is then reconstructed by Q1'(X) = a × sgn.

[0178] Then, in step E4422, the indicator t of the current pixel is read in the data stream STR. If the value of the read indicator t is 0, the state of the current pixel is s=2. If the value of the read indicator t is 1, the state of the current pixel is s=3.

[0179] According to another particular embodiment of the invention, the indicator t is coded systematically for each pixel of the current block, in which case, in step E4422, the value 0 or 1 of the indicator t is read in the data stream STR and the state of the pixel s is set accordingly.

[0180] If the state of the current pixel is s=3, the current pixel is predicted according to the second prediction mode. In this case, in step E4423, a value from the group of values ​​determined in step E441 is selected and assigned to the predicted value PL(X) associated with the current pixel in order to predict the current pixel as was done in the encoder. For example, if |PL(X)-b|<|PL(X)-f|, then PL(X)=b, and otherwise PL(X)=f.

[0181] The method then proceeds to step E443.

[0182] If the state of the current pixel is s=2 or s=1, the current pixel is predicted according to the first prediction mode, in which case the prediction value PL(X) of the current pixel determined according to the first prediction mode in step E4411 is not changed.

[0183] In step E443, the quantized residual Q1'(X) is dequantized using a quantization step δ2 to generate a dequantized residual QD1(X).

[0184] In step E444, the reconstructed value of the current pixel X' is obtained using the prediction value PL(X) determined in step E4411 or E4423 and the inverse quantized prediction residual QD1(X), where X' = PL(X) + QD1(X).

[0185] The prediction residual Q1(X) of the pixels in the current block is the prediction residual block R1 Q The inverse quantized prediction residual QD1(X) of the pixels of the current block is placed in the inverse quantized prediction residual block R1 QD and the reconstructed values ​​X' of the pixels of the current block are placed in the reconstructed block P1.

[0186] The above steps are performed for all pixels of the current block in a scan order that ensures that the pixels used for local prediction are available.

[0187] For example, the scan order is lexicographical (left to right, then rows top to bottom).

[0188] According to a particular embodiment of the invention, the block P1 comprising the reconstructed values ​​PL(X)+QD1(X) of each pixel of the current block is now decoded as the current block X rec Form.

[0189] According to another particular embodiment of the invention, an additional prediction residual is considered to be coded for the current block. rec To reconstruct the decoded version of {tilde over (x)}, this additional prediction residual needs to be decoded.

[0190] For example, this other particular embodiment may or may not be activated by default at the encoder and decoder levels. Alternatively, an indicator may be coded in the data stream using block-level information to indicate for each block coded according to the ILR coding mode whether additional prediction residuals are coded. Or, further, an indicator may be coded in the data stream together with a picture or a sequence of picture-level information to indicate all blocks of a picture or a sequence of pictures coded according to the ILR coding mode if additional prediction residuals are coded.

[0191] Once the additional prediction residual has been coded for the current block, in step E445 the quantized prediction residual R2 TQ The coefficients of are decoded from the data stream STR using means adapted to those implemented in the encoder, for example means implemented in an HEVC decoder.

[0192] In step E446, the quantized coefficient R2 TQ The block is dequantized using, for example, a quantization step scalar dequantization δ1, which results in a dequantized coefficient R2 TQD blocks are generated.

[0193] At step E447, the decoded prediction residual block R2 TQDI To generate the block R2 TQD An inverse frequency transform is applied to

[0194] The inverse transform may for example be an inverse DCT type transform.

[0195] A set of predefined transformations E T2 , and decode an item of information that informs the decoder which transformation to use. In this case, we select the set E T2 Set ET is different.

[0196] At step E448, the current block is decoded by multiplying the prediction block P1 obtained at step E444 by the decoded prediction residual R2 TQDI is reconstructed by adding

[0197] 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 predefined 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 predefined scanning order of the image, and the decoding method proceeds to step E42, with the selected block becoming the current block to be processed.

[0198] If all the blocks of the image have been coded, the method proceeds to the application of post-processing methods, if any, applied to the reconstructed image in step E451. Such post-processing methods may be deblocking filtering and / or SAO methods.

[0199] The method then proceeds to the decoding of the next image of the video, if any (step E47).

[0200] FIG. 7 shows a simplified structure of a coding device COD adapted to implement the coding method according to any one of the particular embodiments of the invention.

[0201] 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 standard architecture of a computer and in particular comprises a memory MEM and a processing unit UT, which comprises, for example, a processor PROC and is driven by a computer program PG stored in the memory MEM. The computer program PG comprises instructions for implementing the steps of such a coding method when the program is executed by the processor PROC.

[0202] At 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. In particular, the processor PROC of the processing unit UT performs the steps of the coding method described above according to the instructions of the computer program PG.

[0203] FIG. 8 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.

[0204] According to a particular embodiment of the invention, the decoding device DEC has a standard architecture of a computer, in particular a processing unit UT0 comprising 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.

[0205] At initialization, the code instructions of the computer program PG0 are loaded into a RAM memory (not shown) before being executed by the processor PROC0, for example. Specifically, the processor PROC0 of the processing unit UT0 performs the steps of the above-described decoding method according to the instructions of the computer program PG0. [Explanation of symbols]

[0206] COD coded device DEC Decryption Device MEM,MEM0 memory PROC,PROC0 processor PG,PG0 Computer Program UT,UT0 processing unit

Claims

1. 1. A method for decoding a coded data stream representing at least one image, wherein the image is divided into blocks, and the method for decoding comprises, for at least one block of the image, referred to as a current block: - determining groups of pixel values ​​within said block from previously decoded pixels (E441); for each pixel of said block, (i) a step (E442) of decoding a quantized prediction residual associated with said pixel, said quantized prediction residual being in the spatial domain; (ii) determining a prediction value associated with said pixel according to a first prediction mode (E4411), wherein said pixel is predicted from at least one other previously decoded pixel according to said first prediction mode, said other previously decoded pixel belonging to said current block; (iii) decoding from the data stream an item of information indicating whether the pixel is predicted according to a second prediction mode in which the pixel is predicted using a prediction resulting from the group of pixel values ​​in the block (E4422); (iv) if the item of information indicates that the pixel is predicted according to the second prediction mode, (a) a step (E4423) of selecting a value for said group; (b) replacing the predicted value associated with the pixel with the selected value (E4423); (v) a step of dequantizing the quantized prediction residual (E444); (vi) reconstructing said pixel using said predicted value and said dequantized prediction residual associated with said pixel (E444); A method for decoding comprising:

2. 1. A method for coding a data stream representing at least one image, said image being divided into blocks, said coding method comprising the steps of: - determining groups of pixel values ​​within said block from previously decoded pixels (E221); for each pixel of said block, (i) determining a prediction value associated with said pixel according to a first prediction mode (E2201), wherein said pixel is predicted from at least one other previously decoded pixel according to said first prediction mode, said other previously decoded pixel belonging to said current block; (ii) determining a prediction mode for the pixel from the first prediction mode and a second prediction mode in which the pixel is predicted using a prediction resulting from the group of pixel values ​​in the block (E2202); (iii) coding in the data stream an item of information indicating whether the pixel is predicted according to the second prediction mode (E2203, E2207); (iv) if the item of information indicates that the pixel is predicted according to the second prediction mode, (a) a step (E2204) of selecting a value of the group; (b) replacing the predicted value associated with the pixel with the selected value (E2204); (v) calculating a quantized prediction residual associated with the pixel using the predicted value associated with the pixel and the value of the pixel (E2205), wherein the quantized prediction residual is in the spatial domain; (vi) reconstructing the pixel using the prediction value associated with the pixel and the prediction residual obtained from dequantizing the quantized prediction residual (E2206); (vii) coding the quantized prediction residual associated with the pixel in the data stream (E223); A method for encoding comprising:

3. 2. The method for decoding of claim 1, wherein the value of the group is selected according to a distance between the predicted value associated with the pixel to the pixel value of the group.

4. 4. The method for decoding of claim 3, wherein the group comprises a first value and a second value, and if a distance between the predicted value associated with the pixel and the first value is smaller than a distance between the predicted value associated with the pixel and the second value, the selected value of the group is the first value, otherwise the selected value of the group is the second value.

5. 2. The method for decoding of claim 1, wherein the step of decoding from the data stream the item of information indicating whether the pixel is predicted according to the second prediction mode is performed only if the quantized prediction residual is different from 0.

6. 2. The method for decoding according to claim 1, wherein the determination of the group of pixel values ​​in the block from previously decoded pixels is performed by calculating a histogram of the values ​​of neighboring pixels of the current block previously reconstructed and selecting at least two pixel values ​​that respectively represent the two most frequent pixel values ​​among the neighboring pixels of the current block.

7. 3. A method for encoding as claimed in claim 2, wherein the values ​​of the group are selected according to a distance between the predicted value associated with the pixel to the pixel value of the group.

8. 8. The method for encoding of claim 7, wherein the group comprises a first value and a second value, and if a distance between the predicted value associated with the pixel and the first value is smaller than a distance between the predicted value associated with the pixel and the second value, the selected value of the group is the first value, otherwise the selected value of the group is the second value.

9. 3. The method for coding according to claim 2, wherein the step of coding in the data stream the item of information indicating whether the pixel is predicted according to the second prediction mode is performed only if the quantized prediction residual is different from 0.

10. 3. The method for encoding according to claim 2, wherein the determination of the group of pixel values ​​in the block from previously decoded pixels is performed by calculating a histogram of the values ​​of neighboring pixels of the current block previously reconstructed and selecting at least two pixel values ​​that respectively represent the two most frequent pixel values ​​among the neighboring pixels of the current block.

11. a threshold value is determined from at least one value of the group of pixel values ​​in the block from previously decoded pixels, in determining a prediction mode for the pixel; - if the original value of the pixel is greater than the threshold value and the threshold value is greater than the predicted value associated with the pixel determined according to the first prediction mode, or if the original value of the pixel is less than the threshold value and the threshold value is less than the predicted value associated with the pixel determined according to the first prediction mode, The method for coding of claim 2 , wherein the second prediction mode is selected.

12. 1. A device for decoding a coded data stream representing at least one image, said image being divided into blocks, said decoding device determining for at least one block of said image, referred to as a current block: - determining groups of pixel values ​​within said block from previously decoded pixels; for each pixel of said block, (i) decoding a quantized prediction residual associated with the pixel, the quantized prediction residual being in the spatial domain; (ii) determining a prediction value associated with the pixel from at least one other previously decoded pixel, the other previously decoded pixel belonging to the current block; and (iii) determining from said data stream an item of information indicating whether said pixel is predicted using a prediction resulting from said group of pixel values ​​within said block; and (iv) if said item of information indicates that said pixel is predicted using a prediction resulting from said group of pixel values ​​in said block; (a) selecting a value for said group; (b) replacing the predicted value associated with the pixel with the selected value; (v) dequantizing the quantized prediction residual; and (vi) reconstructing the pixel using the predicted value associated with the pixel and the dequantized prediction residual; A device for decoding, comprising: a processor (PROCO) configured to:

13. 1. A device for coding a data stream representing at least one image, said image being divided into blocks, said coding device determining for at least one block of said image, called the current block: - determining groups of pixel values ​​within said block from previously decoded pixels; for each pixel of said block, (i) determining a prediction value associated with the pixel according to a first prediction mode, according to which the pixel is predicted from at least one other previously decoded pixel, the other previously decoded pixel belonging to the current block; (ii) determining a prediction mode for the pixel from the first prediction mode and a second prediction mode in which the pixel is predicted using a prediction resulting from the group of pixel values ​​in the block; (iii) coding in the data stream an item of information indicating whether the pixel is predicted according to the second prediction mode; and (iv) if the item of information indicates that the pixel is predicted according to the second prediction mode, (a) selecting a value for said group; (b) replacing the predicted value associated with the pixel with the selected value; (v) calculating a quantized prediction residual associated with the pixel using the predicted value associated with the pixel and the value of the pixel, the quantized prediction residual being in the spatial domain; (vi) encoding the quantized prediction residual associated with the pixel in the data stream; and (vii) reconstructing the pixel using the prediction value associated with the pixel and the prediction residual obtained from dequantizing the quantized prediction residual; A device for encoding, comprising a processor (PROC) configured to:

14. A computer program comprising instructions for implementing the method for decoding according to any one of claims 1 or 3 to 6 when executed by a processor.

15. 12. A computer program comprising instructions for performing the method for encoding according to any one of claims 2 or 7 to 11 when executed by a processor.

16. 15. A computer-readable data medium comprising instructions for the computer program of claim 14.

17. 16. A computer-readable data medium comprising instructions for the computer program of claim 15.

Citation Information

Patent Citations

  • Differential pulse code modulation intra prediction for high efficiency video coding

    US9253508B2

  • Determining palette indices in palette-based video coding

    WO2014165784A1

  • Intra prediction from a predictive block

    WO2014205339A2

  • Palette-based video coding

    WO2015138927A1