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

The method improves video compression by using distinct syntax elements for intra-prediction within blocks, addressing inefficiencies in existing standards to enhance compression ratios and reduce costs, while maintaining compatibility with existing encoding and decoding devices.

JP2025000654AActive Publication Date: 2025-01-07オランジュ
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2024153998
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2018-09-21
Filing Date
2024-09-06
Publication Date
2025-01-07
Estimated Expiration
2039-09-03

AI Technical Summary

Technical Problem

Existing video compression techniques, such as those in the HEVC standard, are not optimal for intra-block prediction, leading to lower compression ratios and increased implementation costs due to the need to reconstruct entire sets of pixels before predicting others, and lack a method for coexisting conventional intra prediction and DPCM modes.

Method used

A method for encoding and decoding images that utilizes two distinct groups of syntax elements for intra-prediction, allowing for improved compression by predicting pixels within a block using previously decoded pixels and adapting the coding of prediction residuals to statistical differences, while reusing existing hardware and software components.

Benefits of technology

Enhances data compression performance by reducing implementation costs and improving compression ratios through pixel-based intra-coding modes that adapt to statistical variations in prediction residuals, while maintaining compatibility with existing encoding and decoding devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025000654000001_ABST
    Figure 2025000654000001_ABST
Patent Text Reader

Abstract

To provide a method and a device for encoding and decoding a data stream indicating at least one image.SOLUTION: A decoding method decodes an item of information indicating a coding mode of a current block for at least one block of an image called the current block, from a data stream E42. When the coding mode of the current block corresponds to a first coding mode, a step E433 of decoding a predictive residual related to the current block is executed using a first group of a syntax element, whereas when the coding mode of the current block corresponds to a second coding mode, a step E442 of decoding the predictive residual related to the current block is executed using a second group of the syntax element, in which the second group of the syntax element is a subgroup of the syntax element of the first group of the syntax element.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 encoding and decoding images or sequences of images, in particular video streams.

[0002] More specifically, the present invention relates to the compression of an image or a 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 in order to avoid congestion problems on the networks used for this transmission.

[0005] Many techniques are already known for compressing video data. Among these, the HEVC compression standard ("High Efficiency Video Coding, Coding Tools and Specification", Matthias Wien, Signals and Communication Technology, 2015) proposes to perform a prediction of 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 uses 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 that corresponds 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 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 transformation. The coefficients of the transformed residual block are then quantized, coded by entropy coding and transmitted to the decoder, which can reconstruct the current block by adding this residual block to the predictor block.

[0008] Decoding is performed image by image and for each image block by block. For each block, the corresponding element of the stream is read. Inverse quantization and inverse transformation of the coefficients of the residual block is performed. Then, a block prediction is 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 US9253508, a DPCM (Differential Pulse Code Modulation) coding technique for coding blocks in intra mode is integrated into the 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 previously reconstructed. In US9253508, 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, the reconstruction of a set of pixels of an intrablock corresponds to the counting of prediction residuals in the case of lossless coding, and therefore corresponds to the counting of prediction residuals after inverse transformation and / or inverse quantization of said other set of pixels that serves as a prediction, with a significantly lower compression ratio. Therefore, such techniques cannot predict each pixel of an intrablock using a local prediction function and a predicted pixel that will be reconstructed before the subsequent pixel is predicted. In fact, this technique requires the reconstruction of a set of pixels (for example, rows / columns of a block) in order to predict another set of pixels. In other words, every time a part of a block is predicted and reconstructed, some pixels of the block are predicted and reconstructed.

[0011] Furthermore, US Pat. No. 9,253,508 does not describe how to allow conventional intra prediction modes, such as those defined in the HEVC standard, to coexist with DPCM prediction modes. [Prior art documents] [Patent documents]

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

[0013] [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]

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

[0015] 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 representative of at least one image divided into blocks, the decoding method comprising the steps of: - decoding an item of information indicating the coding mode of the current block; - decoding the current block if a coding mode of the current block corresponds to the first coding mode, - decoding a prediction residual associated with the current block using a first group of syntax elements; - obtaining a prediction of the current block from reconstructed pixels of a previously decoded block, and - reconstructing the current block from the obtained prediction and the decoded prediction residual. a decoding step including: - decoding the current block if a coding mode of the current block corresponds to the second coding mode, - decoding a prediction residual associated with the current block using a second group of syntax elements, the second group being a sub-group of syntax elements of the first group of syntax elements; and - reconstructing the current block, - For each pixel in the current block, - obtaining a prediction of said pixel from another previously decoded pixel, said another previously decoded pixel belonging to a previously decoded block of said current block or image; and - reconstructing said pixel from the obtained prediction of said pixel and a decoded prediction residual using a second group of syntax elements. a step of reconstructing a decoding step including: Equipped with.

[0016] Thus, the invention allows the use of at least some of the syntax elements of existing coding modes, which allows the use of the same processing equipment, thus sharing data processing and reducing implementation costs both in terms of hardware and software.

[0017] It should be noted that according to the invention, the first group of syntax elements and the second group of syntax elements are distinct. In fact, the second group of syntax elements is a subgroup of the first group and comprises at least one syntax element of said first group. The second group of syntax elements differs from the first group in that it does not comprise all syntax elements of the first group. In fact, the second group of syntax elements comprises a number of syntax elements strictly less than the number of syntax elements of the first group. The second group of syntax elements is therefore a strict subgroup of the first group of syntax elements.

[0018] The invention therefore adapts the coding of the prediction residual obtained according to the second coding mode to the statistics of the coefficients to be coded, in fact such statistics are different from the statistics of the coefficients of the prediction residual obtained according to the first coding mode, thus improving data compression.

[0019] The invention also relates to a method for encoding a data stream representative of at least one image divided into blocks, the encoding method comprising the steps of: - encoding an item of information indicating the coding mode of the current block; - coding the current block if the coding mode of the current block corresponds to the first coding mode, - obtaining a prediction of the current block from the reconstructed pixels of a previously decoded block; - obtaining a prediction residual associated with the current block obtained from the obtained prediction; and - coding the prediction residual associated with the current block using a first group of syntax elements; and - coding the current block if the coding mode of the current block corresponds to the second coding mode, - For each pixel in the current block, - obtaining a prediction of said pixel from another previously decoded pixel, said another previously decoded pixel belonging to a previously decoded block of said current block or image, - obtaining a prediction residual from the prediction obtained for said pixel; and - coding a prediction residual associated with a current block comprising a prediction residual associated with a pixel of the current block using a second group of syntax elements, the second group being a sub-group of syntax elements of the first group of syntax elements. and Equipped with.

[0020] The invention also relates to a coded data stream representing at least one image divided into blocks, the coded data stream comprising, for at least one block of the image, called the current block: - an item of information indicating the coding mode of the current block; - a prediction residual according to a first coding mode coded using the first group of syntax elements if the coding mode of the current block corresponds to the first coding mode, the prediction residual according to the first coding mode being obtained from a prediction of the current block from reconstructed pixels of a previously decoded block; - if the coding mode of the current block corresponds to a second coding mode, a prediction residual according to a second coding mode coded using a second group of syntax elements, the second group being a sub-group of syntax elements of the first group of syntax elements, the prediction residual according to the second coding mode being - For each pixel in the current block, - obtaining a prediction of said pixel from another previously decoded pixel, said another previously decoded pixel belonging to a previously decoded block of said current block or image; and - obtaining, from the prediction obtained for said pixel, a prediction residual associated with said pixel. The prediction residuals and Equipped with.

[0021] Such a data stream can be stored in any storage medium, for example a memory, and can also be transmitted in the form of an electrical or optical signal that can be conveyed via electrical or optical cable, by radio or by other means.

[0022] According to a particular embodiment of the invention, a first group of syntax elements comprises a positional syntax element indicating the position of a first non-null coefficient of a prediction residual associated with the current block according to a determined scanning order of coefficients of the prediction residual, and said second group of syntax elements does not comprise said positional syntax element.

[0023] When decoding or encoding the prediction residual of the current block according to the first coding mode, the prediction residual is scanned according to said determined scanning order from the first non-null coefficient of the prediction residual to the last coefficient of the prediction residual.

[0024] According to a particular embodiment described herein, when decoding or coding the prediction residual of the current block according to the second coding mode, the prediction residual is scanned according to said determined scanning order from the first coefficient of the prediction residual to the last coefficient of the prediction residual. This particular embodiment of the invention reduces the coding cost of the prediction residual according to the second coding mode if the first non-null coefficient corresponds to the first coefficient of the prediction residual.

[0025] According to another particular embodiment of the invention, the prediction residual associated with the current block comprises at least one sub-block of coefficients, said first group of syntax elements comprising a sub-block syntax element associated with said at least one sub-block of coefficients, the sub-block syntax element indicating whether at least one coefficient of the sub-block is non-null, and for each sub-block of coefficients of the prediction residual comprising at least one non-null coefficient, a significance syntax element per coefficient of the sub-block, the significance syntax element indicating whether said coefficient is null. According to this other particular embodiment of the invention, the second group of syntax elements comprises a significance syntax element per coefficient of the prediction residual.

[0026] In other words, according to this particular embodiment of the present invention, according to the second coding mode, the coefficients of the prediction residual associated with the current block are not grouped by sub-blocks and no sub-block syntax elements are provided in the second group of syntax elements.

[0027] According to another particular embodiment of the invention, the first group of syntax elements comprises, for each non-null coefficient of the prediction residual scanned according to the determined scanning order: - a syntax element indicating whether the absolute value of the coefficient is equal to 1; - for each coefficient whose absolute value is not equal to 1, a syntax element indicating whether the absolute value of the coefficient is equal to 2; - for each coefficient whose absolute value is not equal to 1 or 2, a syntax element indicating the absolute value of the coefficient minus 3; a syntax element to indicate whether the coefficient is positive or negative.

[0028] According to this other particular embodiment of the invention, the second group of syntax elements comprises, for each non-null coefficient of the prediction residual scanned according to the determined scanning order, a syntax element indicating the absolute value of the coefficient, said syntax element indicating whether the coefficient is positive or negative.

[0029] The present invention also relates to a decoding device configured to implement the decoding method according to any one of the specific embodiments defined above. Of course, this decoding device comprises 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 they will not be detailed further.

[0030] The decoding device specifically performs the following steps for at least one block of the image, referred to as the current block: - decoding an item of information indicating the coding mode of the current block; and if the coding mode of the current block corresponds to the first coding mode, - decoding a prediction residual associated with the current block using a first group of syntax elements; - obtaining a prediction of the current block from reconstructed pixels of a previously decoded block; and - reconstructing the current block from a obtained prediction and the decoded prediction residual. Decrypting the current block by - if the coding mode of the current block corresponds to the second coding mode, - decoding a prediction residual associated with the current block using a second group of syntax elements, the second group being a sub-group of syntax elements of the first group of syntax elements; and - reconstructing the current block; - For each pixel in the current block, - obtaining a prediction of said pixel from another previously decoded pixel, said another previously decoded pixel belonging to a previously decoded block of said current block or image; and - reconstructing the pixel from the obtained prediction of the pixel and a decoded prediction residual using a second group of syntax elements. Reconstruction, including By decrypting the current block, The method includes a processor configured to:

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

[0032] The present invention also relates to a coding device configured to implement the coding method according to any one of the specific embodiments defined above. Of course, this coding device may have various characteristics related to the coding method according to the invention. The characteristics and advantages of this coding device are therefore the same as those of the coding method, and they will not be detailed further.

[0033] The coding device in particular determines, for at least one block of the image, referred to as the current block, - encoding an item of information indicating the coding mode of the current block; and if the coding mode of the current block corresponds to the first coding mode, - obtaining a prediction of the current block from the reconstructed pixels of a previously decoded block; - obtaining a prediction residual associated with the current block obtained from the obtained prediction; and - coding the prediction residual associated with the current block using a first group of syntax elements. encoding the current block by - if the coding mode of the current block corresponds to the second coding mode, - For each pixel in the current block, - obtaining a prediction of said pixel from another previously decoded pixel, said another previously decoded pixel belonging to a previously decoded block of said current block or image; - obtaining a prediction residual from the prediction obtained for said pixel; and - coding a prediction residual associated with a current block comprising a prediction residual associated with a pixel of the current block using a second group of syntax elements, the second group being a subgroup of syntax elements of the first group of syntax elements. and encoding the current block by The method includes a processor configured to:

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

[0035] The decoding method, respectively the encoding method according to the invention can be implemented in various ways, in particular in wired or software form. According to a particular embodiment of the invention, the decoding method, respectively the encoding method is implemented by a computer program. The invention also relates to a computer program comprising instructions for implementing the decoding method or the encoding method according to any one of the particular embodiments described above, when 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.

[0036] 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 a partially compiled form, or any other desired form.

[0037] The invention also relates to a computer-readable storage medium or data medium comprising instructions of a computer program as described above. Said 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 other means, via an electrical or optical cable. The program according to the invention may in particular be downloaded onto an Internet-type network.

[0038] Alternatively, the storage medium may correspond to an integrated circuit in which the program is embedded, the circuit being adapted to perform, or be used for the performance of, the method of interest.

[0039] Other characteristics and advantages of the invention will become more clearly apparent on reading the following description of particular embodiments, given as a simple, illustrative and non-limiting example, and the accompanying drawings, in which: [Brief description of the drawings]

[0040] [Figure 1] FIG. 3 illustrates steps of an encoding method according to a particular embodiment of the invention. [Diagram 2] FIG. 2 illustrates an example of the positions of neighboring blocks of a current block for determining an intra-prediction mode, according to a particular embodiment of the present invention. [Diagram 3] FIG. 2 illustrates an example of the locations of reference pixels used to predict pixels of a current block according to a particular embodiment of the invention; [Figure 4] FIG. 3 illustrates steps of a decoding method according to a particular embodiment of the invention. [Diagram 5] FIG. 2 illustrates an example of a signal comprising coded data representing at least one block of an image according to a particular embodiment of the invention. [Figure 6]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 7] FIG. 2 shows a simplified structure of a decoding device adapted to implement a decoding method according to any one of the particular embodiments of the present invention. [Figure 8] FIG. 2 illustrates the division of a block of coefficients into sub-blocks. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0041] 5. Description of the embodiment of the present invention 5.1 General principles The general principle of the invention is to make it possible to use a part of the group of syntax elements used for coding a prediction residual obtained from a coding mode using prediction of pixels from at least one previously reconstructed block, in order to code a prediction residual from pixel-based intra prediction, i.e. a prediction of pixels of the block to be coded from previously reconstructed pixels of the block to be coded.

[0042] The present invention therefore improves the compression performance of a pixel-based intra coding mode and reduces the implementation cost of this new coding mode, in particular by allowing to reuse some of the syntax elements already used by another coding mode.

[0043] 5.2 Embodiment FIG. 1 illustrates 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 being implemented by a coding device as described below in connection with FIG.

[0044] Nb is the number of images in the sequence to be coded, images I1, I2, ..., INb is provided as input to a coding method which outputs a coded data stream STR representative of the sequence of images provided as input.

[0045] 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 arranged in the temporal order I1, I2, ..., I Nb , or another order, e.g., I1, I3, I2, …, I Nb It can be coded as:

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

[0047] 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 a lexicographical scan order of the image.

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

[0049] 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 use to code A. Additional coding modes (not described here) can be used.

[0050] According to a particular embodiment described in this specification, the first coding mode M1 corresponds to coding of the current block by conventional intra prediction, e.g. as defined according to the HEVC standard, and the second coding mode M2 ​​corresponds to in-loop residual (ILR) predictive coding.

[0051] 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, for example inter-mode coding modes, may be tested. During this rate / distortion optimization, the encoder may test the coding modes for the current block X according to the various available coding modes to determine the rate and distortion associated with each coding mode. b and 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., input by a user or defined in the encoder.

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

[0053] 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.

[0054] 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 a conventional intra prediction such as that defined in the HEVC standard.

[0055] In step E210, a quantization step δ1 is determined. For example, the quantization step δ1 may be set by the user, or may be 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 thus 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. Usually, a method of coding an image that minimizes this function is sought.

[0056] 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.

[0057] In step E211, a prediction of the current block is determined using a conventional intra prediction mode, according to 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 predefined set of modes known to the encoder and the decoder.

[0058] Thus, HEVC has 35 possible prediction modes: 33 modes that interpolate the reference pixels in 33 different angular directions and two other modes: DC mode, where each pixel of the prediction block is generated from the average of the reference pixels, and PLANAR mode, which performs planar and non-directional interpolation. This "conventional intra prediction" is well known and is used in the ITU-T H.264 standard (which has only 9 different modes), as well as in the experimental JEM software available at the Internet address (https: / / jvet.hhi.fraunhofer.de / ), which has 67 different prediction modes. In all cases, conventional intra prediction respects the two aspects mentioned above (prediction of pixels from neighboring blocks and transmission of the best prediction mode to the decoder).

[0059] Thus, in step E211, the encoder selects one of the available prediction modes from a predefined list of prediction modes. One way to select is, for example, to evaluate all prediction modes and to keep the prediction mode that minimizes a cost function, such as classically the rate-distortion cost.

[0060] In step E212, the prediction mode selected for the current block is coded from the neighboring blocks of the current block. b For coding the prediction mode of the current block X b Adjacent block A of b and B. b 1 shows an example of the position of

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

[0062] 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. 2, such a technique is used for block A, which is located above the current block. b The intra prediction mode m associated with A , and block B, which is 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 3 intra prediction modes and a list called non-MPM containing 32 other prediction modes are created.

[0063] 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 to be coded for the current block is in the MPM list; - if the prediction mode of the current block belongs to the MPM list, 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 an MPM list, the index in the non-MPM list corresponding to the prediction mode of the current block is coded.

[0064] In step E213, a prediction residual R for the current block is constructed.

[0065] 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.

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

[0067] In step E214, the frequency transformation is carried out to obtain a block R T is applied to the residual block R to generate a transform, which may for example be a DCT type transform. T It is possible for the decoder to select the transformation to be used from among

[0068] In step E215, the transformed residual block R T is quantized using, for example, scalar quantization with quantization step δ1, resulting in a quantized transformed prediction residual block R TQ is generated.

[0069] 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.

[0070] In this case, the residual R TQ The coding of the coefficients of works as follows.

[0071] The scanning order of the coefficients is determined. This scanning order is the same in the encoder and the decoder. For example, it is defined by default in the encoder and the decoder. This is, for example, TQ It is constructed by scanning the row-by-row and column-by-column

[0072] The syntax elements are transmitted to indicate the position of the first non-null coefficient found according to the scan order. These syntax elements are LastX and LastY (of the current quantized block R TQ The coordinates of the coefficients in

[0073] Then, the coefficients are calculated from the first non-null coefficient to the current quantized block R TQ The current quantized block RTQ The coefficients of the current quantized block R are grouped into sub-blocks. For example, the coefficients of the current quantized block R are grouped into sub-blocks of 4×4 coefficients, as shown in FIG. TQ of size 4 × 4 contained in. Of course, other sizes of sub-blocks are possible.

[0074] For each sub-block, the syntax element coded_sub_block_flag is transmitted, indicating whether that sub-block consists entirely of zeros. In other words, this syntax element takes the value 0 if all coefficients of the sub-block are null, and the value 1 otherwise (at least one coefficient of the sub-group is different from 0).

[0075] For each sub-block that comprises at least one non-null coefficient, a syntax element sig_coeff_flag is transmitted for each coefficient (located after the last coefficient of the sub-block indicated by LastX and LastY according to the determined scanning order), indicating whether the coefficient is null or not. Such a syntax element is not transmitted for the first non-null coefficient identified by LastX and LastY, since the encoder already knows that this coefficient is non-null.

[0076] For each non-null coefficient, the syntax element coeff_abs_level_greater1_flag is sent to indicate whether the coefficient is equal to 1 or not.

[0077] For each coefficient that is non-null and not equal to 1, the syntax element coeff_abs_level_greater2_flag is sent to indicate whether the coefficient is equal to 2 or not.

[0078] For each coefficient that is non-null and not equal to 1 or 2, the syntax element coeff_abs_level_remaining is sent, indicating the magnitude of the coefficient minus 3.

[0079] Finally, for each non-null coefficient, the syntax element coeff_sign_flag is sent to indicate whether the coefficient is positive or negative.

[0080] In a known manner, the current block is 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 its decoded version. 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.

[0081] 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 an ILR predictive coding.

[0082] In step E220, a local predictor PL of the current block is determined. According to the coding mode described herein, the pixels of the current block are predicted by previously reconstructed pixels of the current block or of its own neighbouring blocks.

[0083] Preferably, for prediction, a pixel as close as possible to the pixel to be predicted is selected. This is why it is called a local predictor. The local predictor PL can also be assimilated to the prediction mode of the current block associated with the second coding mode M2. According to this interpretation, in a particular embodiment described herein, the first coding mode uses a first group of intra prediction modes, for example the intra prediction modes defined by the HEVC standard, and the second coding mode, here the ILR mode, uses a second group of prediction modes different from the first group of intra prediction modes.

[0084] The local predictor PL may be unique or may be selected from a predetermined set of local predictors (second group of prediction modes).

[0085] According to a variant of an embodiment, four local predictors are defined. Thus, if we call X the current pixel to be predicted from the current block, A the pixel immediately to the left of X, B the pixel immediately to the left and above X, and C the pixel immediately above X, then b As shown in FIG. 3, which illustrates the four local predictors PL1, PL2, PL3, PL4 can be defined as follows: If PL1(X) = min(A,B)C ≥ max(A,B) If max(A,B)C≦min(A,B) A+BCIf not, PL2(X)=A PL3(X)=B PL4(X)=C where 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.

[0086] In step E220, the local predictor PL used for the current block is determined. In other words, the same local predictor is used for all pixels of the current block, i.e. the same prediction function. To this end, several embodiment variants are possible.

[0087] The coding of the current block using each of the predictors can be simulated (similar to the optimization for selecting the coding mode for the current block) and a cost function is optimized (e.g., minimizing the D+λ.R function, where R is the rate used to code the block, D is the distortion of the decoded block relative to the original block, and λ is a parameter set by the user) and a local predictor is selected.

[0088] Alternatively, to limit the complexity of selecting a local predictor for the current block, the texture orientation of previously coded pixels is analyzed, for example, previously coded pixels in blocks located above or to the left of the current block are analyzed using a Sobel type operator. - If the direction is determined to be horizontal, the local predictor PL2 is selected; - if the direction is determined to be vertical, local predictor PL3 is selected; - if the direction is determined to be diagonal, local predictor PL4 is selected; If it is determined that no direction appears, then the local predictor PL1 is selected.

[0089] A syntax element is coded into the data stream STR to indicate to the decoder the local predictor that was used to predict the current block.

[0090] In step E221, a quantization step δ2 is determined, for example depending on the same quantization parameter as the quantization step δ1 that would be determined in step E210 if the current block was coded according to the first coding mode.

[0091] In step E222, a prediction residual R1 is calculated for the current block. For this purpose, once a local predictor has been selected, for each current pixel of the current block: - the current pixel X of the current block is predicted by the selected local predictor PL to obtain a prediction value PRED using already reconstructed pixels outside the block (and therefore available in their decoded values) and / or previously reconstructed pixels in the current block. In all cases, the predictor PL uses previously reconstructed pixels. In Fig. 3 it can be seen that the pixels of the current block located in the first row and / or the first column of the current block are used as reference pixels (grey pixels in Fig. 3) that are already reconstructed outside the block (to build the prediction value PRED) and for which the pixels of the current block may already be reconstructed. For the other pixels of the current block, the reference pixels used to build the prediction value PRED are located within the current block. - The difference DIFF between PRED and X is calculated by a scalar quantizer with quantization step δ2, Q(X)=ScalarQuant(DIFF)=ScalarQuant(δ 2, X-PRED) to a value Q(X), and a scalar quantizer is, for example,

[0092]

number

[0093] Q(X) is the quantized residual associated with X. Q(X) is calculated in the spatial domain, i.e., directly from the difference between the predicted value PRED of pixel X and the original value of X. Such a quantized residual Q(X) of pixel X is calculated as a quantized prediction residual block R1. Q and later coded. - the decoded prediction P1(X) of X is calculated by adding the dequantized value of the quantized residual Q(X) to the prediction PRED. Thus, the decoded prediction P1(X) of X is obtained by P1(X)=PRED+ScalarDequant(δ2,Q(X)). For example, the closest scalar quantization inverse function is given by ScalarDequant(Δ,x)=Δ×x.

[0094] The decoded prediction value P1(X) thus makes it possible to predict pixels that may continue to be processed in the current block. Furthermore, the block P1 comprising the decoded / reconstructed values ​​of the pixels of the current block is an ILR predictor of the current block (as opposed to a conventional intra predictor).

[0095] The above sub-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.

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

[0097] 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 diagonals one after the other.

[0098] According to this other variant, it is possible to simulate the coding costs associated with each of the scanning orders, to select the scanning order that is optimal for the current block in terms of rate / distortion, and then to code an item of information representative of the selected scanning order for the current block.

[0099] At the end of step E222, 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.

[0100] 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 methods described in HEVC.

[0101] According to a particular embodiment of the invention described herein, the quantized residual block R1 Q The values ​​of {overscore (R)} are coded in the data stream STR by the entropy encoder using at least some of the syntax elements used to code the prediction residual from coding mode M1.

[0102] Residual R1 Q To encode the residual R TQ A subgroup of the group of syntax elements used in is used.

[0103] In fact, the residual R1 Q The statistic is the residual R TQ Therefore, to maximize compression, the predicted residual R1 Q We need to adapt the entropy coding of the residual R TQ By restricting to a syntax that is a subset of the syntax sent for , it is possible to reuse the same software or hardware components, which is particularly interesting in terms of implementation costs.

[0104] According to a variant of the embodiment of the invention, the residual R1 Q The coding of the quantized prediction residual block R1 is done by omitting the syntax elements LastX and LastY. QThis is done by systematically scanning all the coefficients of

[0105] In this case, the residual R1 Q The coding of the coefficients of works as follows.

[0106] The scanning order of the coefficients is determined. The coefficients are stored in the quantized residual block R1. Q The quantized residual block R1 from the first coefficient of Q The entropy coding of the rest of the coefficients is similar to that described for coding the transformed prediction residual from coding mode M1.

[0107] These coefficients are stored in a sub-block, e.g., the current quantized residual block R1 Q of size 4 × 4 contained in. Of course, other sizes of sub-blocks are possible.

[0108] For each sub-block, the syntax element coded_sub_block_flag is sent indicating whether the sub-block consists entirely of zeros. For each sub-block containing at least one non-null coefficient, the syntax element sig_coeff_flag is sent for each coefficient indicating whether the coefficient is null. For each non-null coefficient, the syntax element coeff_abs_level_greater1_flag is sent indicating whether the coefficient is equal to 1. For each coefficient that is non-null and not equal to 1, the syntax element coeff_abs_level_greater2_flag is sent indicating whether the coefficient is equal to 2. For each coefficient that is non-null and not equal to 1 or 2, the syntax element coeff_abs_level_remaining is sent indicating the magnitude of the coefficient minus 3.

[0109] Finally, for each non-null coefficient, the syntax element coeff_sign_flag is sent to indicate whether the coefficient is positive or negative.

[0110] According to another variant of the particular embodiment described herein, the quantized residual R1 Q The coding of the quantized residual block R1 is done by omitting the syntax elements LastX and LastY. Q This is done by systematically scanning all the coefficients of the quantized residual block R1 and omitting the element coded_sub_block_flag. Q The coefficients of each are systematically coded.

[0111] According to this transformation, the residual R1 Q The coding of the coefficients of works as follows: A scanning order of the coefficients is determined. The coefficients are coded according to the determined scanning order into the quantized residual block R1. Q The residual block R1 quantized from the first coefficient of Q , is scanned up to the last coefficient of . For this purpose, for each coefficient, the syntax element sig_coeff_flag is transmitted, indicating whether the coefficient is null or not. For each non-null coefficient, the syntax element coeff_abs_level_greater1_flag is transmitted, indicating whether the coefficient is equal to 1. For each coefficient that is non-null and not equal to 1, the syntax element coeff_abs_level_greater2_flag is transmitted, indicating whether the coefficient is equal to 2. For each coefficient that is non-null and not equal to 1 or 2, the syntax element coeff_abs_level_remaining is transmitted, indicating the magnitude of the coefficient minus 3. Finally, for each non-null coefficient, the syntax element coeff_sign_flag is transmitted to indicate whether the coefficient is positive or negative.

[0112] According to another embodiment variant, the residual R1 Q The coding of the residual R1 is performed only using the syntax elements coeff_abs_level_remaining and coeff_sign_flag. According to this variant, all the coefficients of the block are systematically scanned and the value of each coefficient is coded. QThe coding of the coefficients of works as follows: The scanning order of the coefficients is determined. The coefficients are stored in the quantized residual block R1. Q The quantized residual block R1 from the first coefficient of Q is scanned up to the last coefficient of

[0113] For this purpose, the quantized residual block R1 Q For each coefficient in, the syntax element coeff_abs_level_remaining is sent to indicate the magnitude of the coefficient, and for each non-null coefficient the syntax element coeff_sign_flag is sent to indicate whether the coefficient is positive or negative.

[0114] According to all the above embodiment variants, the prediction residual R1 Q The coding of is non-empty and the "traditional" residual R TQ It can be seen that this is performed from a group of syntax elements that is a strict subset (i.e., not equal) of the syntax elements used in .

[0115] 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. Q It is certainly possible to simply code the current block by

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

[0117] 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 is calculated: R2 = X b -P1. The following steps correspond to the conventional coding steps of this residual R2:

[0118] In step E225, the residual R2 is Tis transformed using a frequency transform to generate

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

[0120] At step E226, the block of coefficients R2 T is quantized using, for example, scalar quantization with a δ quantization step. TQ is generated.

[0121] The quantization step δ can be set by the user or can be calculated using another parameter λ that sets a tradeoff 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.

[0122] Then, in step E227, the quantized block R2 TQ The coefficients of are transmitted in a coded manner. For example, the coding specified in the HEVC standard can be used.

[0123] 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 prediction P2. The decoded version X of the current block is then used to spatially predict other neighboring blocks of the image or to predict blocks of other images by inter-image prediction. reccan be used later.

[0124] 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 it is the last block, the method proceeds to the coding of the next image of the video, if any (step E25). If it is not the last block, in step E24 the subsequent block of the image to be processed is selected according to the predefined image scanning order and the coding method proceeds to step E2, where the selected block becomes the current block to be processed.

[0125] FIG. 4 illustrates images I1, I2, ..., I Nb 4 illustrates method steps for decoding a stream of coded data STR representing a sequence of

[0126] For example, the data stream STR has been generated via the coding method illustrated in relation to figure 1. The data stream STR is provided as input to a decoding device DEC, as will be explained in relation to figure 7.

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

[0128] In step E40, the image I to be decoded is 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.

[0129] 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 the first block in the lexicographical scan order of the image.

[0130] 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 according to 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.

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

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

[0133] In step E430, the quantization step δ1 is determined. For example, the quantization step δ1 is determined from the quantization parameter QP read in the data stream STR or as done in the encoder. For example, the quantization step δ1 can be calculated using the quantization parameter QP read in the data stream STR. For example, the quantization parameter QP can 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.

[0134] 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.

[0135] 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 to be coded for the current block is in the MPM list; - the index in the MPM list corresponding to the prediction mode of the current block coded, if the prediction mode of the current block belongs to the MPM list; - The index in the non-MPM list that corresponds to the prediction mode of the current block coded, if the prediction mode of the current block does not belong to an MPM list.

[0136] Thus, 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.

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

[0138] 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

[0139] In this case, the residual R TQ The decoding of the coefficients of works as follows: the scanning order of the coefficients is determined corresponding to the scanning order used in the encoder. According to the determined scanning order, the residual block R TQThe syntax elements LastX and LastY are decoded, which indicate the coordinates of the first non-null coefficient of the current quantized residual block R. The coefficients are scanned from the first non-null coefficient of the block to the last coefficient. For this purpose, these coefficients are TQ The inputs are grouped into sub-blocks of size 4x4 contained in. For each sub-block, the syntax element coded_sub_block_flag is decoded to indicate whether the sub-block consists entirely of zeros. For each sub-block containing at least one non-null coefficient, the syntax element sig_coeff_flag is decoded for each coefficient (located after the last coefficient of the block indicated by LastX and LastY) to indicate whether the coefficient is null or not. For each non-null coefficient, the syntax element coeff_abs_level_greater1_flag is decoded to indicate whether the coefficient is equal to 1. For each coefficient that is non-null and not equal to 1, the syntax element coeff_abs_level_greater2_flag is decoded to indicate whether the coefficient is equal to 2. For each coefficient that is non-null and not equal to 1 or 2, the syntax element coeff_abs_level_remaining is decoded to indicate the magnitude of the coefficient minus 3. Finally, for each non-null coefficient, the syntax element coeff_sign_flag is decoded to indicate whether the coefficient is positive or negative.

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

[0141] In step E435, an inverse frequency transform is performed on the decoded prediction residual block R TQDI To generate the inverse quantization coefficient R TQD The transformation can be, for example, an inverse DCT type transformation. The transformation E is applied to the blocks of TI It is possible to select the transformation used from a predefined set of:

[0142] 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

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

[0144] In step E440, the local predictor PL used to predict the pixels of the current block is determined. If only one predictor is available, for example, the local predictor is set to a default at the decoder level and there is no need to determine it by reading syntax elements from the stream STR.

[0145] If multiple local predictors are available, such as predictors PL1 to PL4 above, a syntax element is decoded from the data stream STR to identify the local predictor used to predict the current block. The local predictor is thus determined from the decoded syntax element.

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

[0147] In step E442, the quantized residual R Q is decoded from the data stream STR.

[0148] According to a particular embodiment of the invention described herein, the quantized residual block R1 Q The value of R1 is decoded from the data stream STR using at least some of the syntax elements used to decode the prediction residual from coding mode M1. QTo decode the residual R TQ A subgroup of the group of syntax elements used in is used.

[0149] According to a variant of the embodiment, the residual R1 Q Decoding of the quantized residual block R1 is done by omitting the syntax elements LastX and LastY. Q In this case, the residual R1 Q The decoding of the coefficients of works as follows: the scanning order of the coefficients is determined corresponding to the scanning order determined in the encoder. The coefficients are decoded into the quantized residual block R1 Q The quantized residual block R1 from the first coefficient of Q For this purpose, these coefficients are scanned down to the last coefficient of the current quantized residual block R1 Q The coefficients are grouped into sub-blocks of size 4x4 contained in . For each sub-block, the syntax element coded_sub_block_flag is decoded to indicate whether the sub-block consists entirely of zeros. For each sub-block containing at least one non-null coefficient, the syntax element sig_coeff_flag is decoded for each coefficient, indicating whether the coefficient is null or not. For each non-null coefficient, the syntax element coeff_abs_level_greater1_flag is decoded to indicate whether the coefficient is equal to 1. For each coefficient that is non-null and not equal to 1, the syntax element coeff_abs_level_greater2_flag is decoded to indicate whether the coefficient is equal to 2. For each coefficient that is non-null and not equal to 1 or 2, the syntax element coeff_abs_level_remaining is decoded to indicate the magnitude of the coefficient minus 3. Finally, for each non-null coefficient, the syntax element coeff_sign_flag is decoded to indicate whether the coefficient is positive or negative.

[0150] According to a variant of the embodiment, the residual R1 Q The decoding of the quantized residual block R1 is done by omitting the syntax elements LastX and LastY. QThis is done by systematically scanning all the coefficients of the block and omitting the syntax element coded_sub_block_flag, thus systematically decoding the value for every coefficient of the block.

[0151] In this case, the residual R TQ The decoding of the coefficients of works as follows: The scanning order of the coefficients is determined. The coefficients are stored in the quantized residual block R1. Q The quantized residual block R1 from the first coefficient of Q The sig_coeff_flag is scanned down to the last coefficient of . For each coefficient, the syntax element sig_coeff_flag is decoded to indicate whether the coefficient is null or not. For each non-null coefficient, the syntax element coeff_abs_level_greater1_flag is decoded to indicate whether the coefficient is equal to 1. For each coefficient that is non-null and not equal to 1, the syntax element coeff_abs_level_greater2_flag is decoded to indicate whether the coefficient is equal to 2. For each coefficient that is non-null and not equal to 1 or 2, the syntax element coeff_abs_level_remaining is decoded to indicate the magnitude of the coefficient minus 3. Finally, for each non-null coefficient, the syntax element coeff_sign_flag is decoded to indicate whether the coefficient is positive or negative.

[0152] According to another embodiment variant, the residual R1 Q The decoding of the residual R1 is done only using the syntax elements coeff_abs_level_remaining and coeff_sign_flag. Q The decoding of the coefficients of works as follows: The scanning order of the coefficients is determined. The coefficients are stored in the quantized residual block R1. Q The quantized residual block R1 from the first coefficient of Q For this purpose, for each coefficient the syntax element coeff_abs_level_remaining is decoded to indicate the magnitude of the coefficient, and for each non-null coefficient the syntax element coeff_sign_flag is decoded to indicate whether the coefficient is positive or negative.

[0153] In step E443, the quantized residual block R1 Q is the dequantized residual block R1 QD quantized using quantization step δ2 to generate

[0154] In step E444, the dequantized residual block R1 QD Once obtained, a predicted block P1 is constructed using the local predictor PL determined at step E440.

[0155] In step E444, each pixel of the current block is predicted and reconstructed as follows. - The current pixel X of the current block is predicted by a selected predictor PL using already reconstructed pixels outside the block and / or previously reconstructed pixels of the current block to obtain a prediction value PRED. In all cases, the predictor PL uses previously decoded pixels. The decoded prediction P1(X) of the current pixel X is P1(X)=PRED+R1 QD (X), the prediction residual R1 QD is calculated by adding the inverse quantization value of to the prediction value PRED.

[0156] 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.

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

[0158] According to a particular embodiment of the invention, a prediction block P1 comprising decoded prediction values ​​P1(X) of each pixel of the current block is now decoded by the current block X rec Form.

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

[0160] 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.

[0161] Once an 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.

[0162] In step E446, the quantized coefficient R2 TQ The block of is dequantized, for example, using scalar dequantization with quantization step δ1. This results in dequantized coefficients R2 TQD blocks are generated.

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

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

[0165] A set of predefined transformations E T2 It is possible to select the transformation to be used from among the set E T2 Set E T is different.

[0166] In step E448, the current block is decoded by multiplying the prediction block P1 obtained in step E444 by the decoded prediction residual R2 TQDI is reconstructed by adding

[0167] 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 so, the method proceeds to the decoding of the next image of the video, if any (step E47). If not, in step E46 the 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, where the selected block becomes the current block to be processed.

[0168] FIG. 5 shows an example of a signal STR comprising coded data representative of at least one block of an image according to a particular embodiment of the invention.

[0169] The signal STR comprises, for a block of the image, a coding indicator TY indicating the coding mode of the block. If the indicator TY indicates that the block is coded according to a second coding mode, here the ILR mode, the signal includes a quantized prediction residual R1 coded using a group of syntax elements which is a subgroup of a group of syntax elements used for coding values ​​of the prediction residual from the first coding mode. QSuch a subgroup comprises syntax elements as described in relation to figure 1 or 4 if the current block is coded according to the second coding mode.

[0170] The signal is the quantized transformed prediction residual R2 TQ If multiple local predictors are possible for the current block, the signal also comprises a PL coded indicator of the local predictor.

[0171] If the indicator TY indicates that the block is coded according to a first coding mode, here a conventional intra-prediction mode, the signal indicates a quantized transformed prediction residual R coded using a group of syntax elements as described in relation to FIG. 1 or FIG. 4 if the current block is coded according to the first coding mode. TQ A binary indicator i MPM indicates whether the prediction mode to be coded for the current block is in the MPM list, and the index idx MPM indicates the index of the current block prediction mode in the corresponding list.

[0172] FIG. 6 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.

[0173] 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, for example comprising a processor PROC and driven by a computer program PG stored in the memory MEM. The computer program PG comprises instructions for implementing the steps of the coding method as described above, when the program is executed by the processor PROC.

[0174] 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.

[0175] FIG. 7 shows a simplified structure of a decoding device DEC adapted to implement the decoding method according to any one of the particular embodiments of the invention.

[0176] According to a particular embodiment of the invention, the decoding device DEC has a standard architecture of a computer and in particular comprises a memory MEM0, a processor PROC0, for example a processing unit UT0 driven by a computer program PG0 stored in the memory MEM0. The computer program PG0 comprises instructions for carrying out the steps of the decoding method as described above, when the program is executed by the processor PROC0.

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

Claims

1. A method for decoding a coded data stream representing at least one image, said image being divided into blocks, said decoding method comprising, for at least one block of said image, called a current block, - a step (E42) of decoding an item of information indicating the coding mode of the current block, - a step (E43) of decoding said current block if said coding mode of said current block corresponds to a first coding mode, - a step of decoding (E433) a prediction residual associated with said current block using a first group of syntax elements, - obtaining (E432) a prediction of said current block from the reconstructed pixels of a previously decoded block, and - a step (E436) of reconstructing said current block from said obtained prediction and from said decoded prediction residuals. A decryption step (E43), comprising: - a step (E44) of decoding said current block if said coding mode of said current block corresponds to a second coding mode, - a step (E442) of decoding the prediction residual associated with the current block using a second group of syntax elements, the second group being a subgroup of syntax elements of the first group of syntax elements, and - a step (E444) of reconstructing said current block, - for each pixel of said current block, - obtaining a prediction of said pixel from another previously decoded pixel, said other previously decoded pixel belonging to said current block or to a previously decoded block of said image; and - reconstructing the pixel from the decoded prediction residual using the obtained prediction of the pixel and the second group of syntax elements. A step of reconstructing (E444) a decryption step (E44), A method comprising:

2. A method for encoding a data stream representative of at least one image, said image being divided into blocks, said encoding method comprising the steps of: - coding (E20) an item of information indicating the coding mode of said current block; - a step (E21) of coding said current block if said coding mode of said current block corresponds to a first coding mode, - obtaining a prediction of said current block from reconstructed pixels of a previously decoded block (E213), - obtaining (E213) a prediction residual associated with said current block obtained from said prediction obtained, and - coding (E216) said prediction residual associated with said current block using a first group of syntax elements; a coding step (E21) comprising: - a step (E22) of coding said current block if said coding mode of said current block corresponds to a second coding mode, - for each pixel of said current block, - obtaining a prediction of said pixel from another previously decoded pixel (E222), a step (E222) of obtaining said other previously decoded pixel, said other previously decoded pixel belonging to said current block or to a previously decoded block of said image, - obtaining (E222) a prediction residual from said prediction obtained for said pixel, and - a step (E223) of coding a prediction residual associated with the current block comprising the prediction residual associated with the pixel of the current block using a second group of syntax elements, the second group being a sub-group of syntax elements of the first group of syntax elements. a coding step (E22) including A method comprising:

3. - the first group of syntax elements comprises a position syntax element indicating a position of a first non-null coefficient of the prediction residual associated with the current block according to the determined scanning order of the coefficients of the prediction residual; - the second group of syntax elements does not comprise the positional syntax element; 3. The method according to claim 1 or 2.

4. - the prediction residual associated with the current block comprises at least one sub-block of coefficients; The first group of syntax elements: - a sub-block syntax element associated with said at least one sub-block of coefficients, the sub-block syntax element indicating whether at least one coefficient of said sub-block is non-null; - for each sub-block of coefficients of the prediction residual comprising at least one non-null coefficient, a significance syntax element for each coefficient of the sub-block, the significance syntax element indicating whether the coefficient is null or not; - the second group of syntax elements comprises a significance syntax element for each coefficient of the prediction residual; 4. The method according to any one of claims 1 to 3.

5. - for each non-null coefficient of the prediction residual scanned according to the determined scan order, the first group of syntax elements - a syntax element indicating whether the absolute value of said coefficient is equal to 1; - for each coefficient whose absolute value is not equal to 1, a syntax element indicating whether the absolute value of the coefficient is equal to 2; - for each coefficient, where the absolute value of the coefficient is not equal to 1 or 2, a syntax element indicating the absolute value of the coefficient minus 3; - a syntax element indicating whether said coefficient is positive or negative; Equipped with For each non-null coefficient of the prediction residual scanned according to the determined scan order, the second group of syntax elements - a syntax element indicating the absolute value of the coefficient, - the syntax element indicates whether the coefficient is positive or negative; 5. The method according to any one of claims 1 to 4.

6. 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, called a current block: - decoding an item of information indicative of a coding mode of the current block; and - if the coding mode of the current block corresponds to a first coding mode, - decoding a prediction residual associated with the current block using a first group of syntax elements; - obtaining a prediction of said current block from reconstructed pixels of a previously decoded block; and - reconstructing the current block from the obtained prediction and the decoded prediction residual. decrypting the current block by - if the coding mode of the current block corresponds to a second coding mode, - decoding the prediction residual associated with the current block using a second group of syntax elements, the second group being a sub-group of syntax elements of the first group of syntax elements; and - reconstructing the current block; - for each pixel of said current block, - obtaining a prediction of said pixel from another previously decoded pixel, said another previously decoded pixel belonging to said current block or a previously decoded block of said image; and - reconstructing the pixel from the decoded prediction residual using the obtained prediction of the pixel and the second group of syntax elements. Reconstruction, including and decoding the current block by A device comprising: a processor (PROC0) configured to:

7. A device for encoding a data stream representative of at least one image, said image being divided into blocks, said encoding device determining for at least one block of said image, called a current block: - encoding an item of information indicating a coding mode of the current block; - if the coding mode of the current block corresponds to a first coding mode, - obtaining a prediction of said current block from reconstructed pixels of a previously decoded block; - obtaining a prediction residual associated with the current block obtained from the obtained prediction; and - coding the prediction residual associated with the current block using a first group of syntax elements. encoding the current block by - if the coding mode of the current block corresponds to a second coding mode, - for each pixel of said current block, - obtaining a prediction of said pixel from another previously decoded pixel, said another previously decoded pixel belonging to said current block or to a previously decoded block of said image; - obtaining a prediction residual from the prediction obtained for said pixel; and - coding a prediction residual associated with the current block comprising the prediction residual associated with the pixel of the current block using a second group of syntax elements, the second group being a sub-group of syntax elements of the first group of syntax elements. encoding the current block by A device comprising a processor (PROC) configured to:

8. A coded data stream representing at least one image, said image being divided into blocks, said coded data stream comprising, for at least one block of said image, referred to as a current block: - an item of information indicating the coding mode of the current block; - a prediction residual according to a first coding mode coded using a first group of syntax elements if the coding mode of the current block corresponds to a first coding mode, the prediction residual according to the first coding mode being obtained from a prediction of the current block from reconstructed pixels of a previously decoded block; - if the coding mode of the current block corresponds to a second coding mode, a prediction residual according to the second coding mode coded using a second group of syntax elements, the second group being a sub-group of syntax elements of the first group of syntax elements, the prediction residual according to the second coding mode being: - for each pixel of said current block, - obtaining a prediction of said pixel from another previously decoded pixel, said another previously decoded pixel belonging to said current block or a previously decoded block of said image; and - obtaining, from the prediction obtained for said pixel, a prediction residual associated with said pixel. The prediction residuals and A data stream comprising:

9. - the first group of syntax elements comprises a position syntax element indicating a position of a first non-null coefficient of the prediction residual associated with the current block according to a determined scanning order of the prediction residuals; - the second group of syntax elements does not comprise the positional syntax element; 9. The data stream of claim 8.

10. - the prediction residual comprises at least one sub-block of coefficients; The first group of syntax elements: - a sub-block syntax element associated with said at least one sub-block of coefficients, the sub-block syntax element indicating whether at least one coefficient of said sub-block is non-null; - for each sub-block of coefficients of the prediction residual comprising at least one non-null coefficient, a significance syntax element for each coefficient of the sub-block, the significance syntax element indicating whether the coefficient is null or not; - the second group of syntax elements comprises a significance syntax element for each coefficient of the prediction residual; A data stream according to claim 8 or 9.

11. - for each non-null coefficient of the prediction residual scanned according to the determined scan order, the first group of syntax elements - a syntax element indicating whether the absolute value of said coefficient is equal to 1; - for each coefficient whose absolute value is not equal to 1, a syntax element indicating whether the absolute value of the coefficient is equal to 2; - for each coefficient, where the absolute value of the coefficient is not equal to 1 or 2, a syntax element indicating the absolute value of the coefficient minus 3; - a syntax element indicating whether said coefficient is positive or negative; Equipped with - for each non-null coefficient of the prediction residual scanned according to the determined scan order, the second group of syntax elements - a syntax element indicating the absolute value of the coefficient, - the syntax element indicates whether the coefficient is positive or negative; A data stream according to any one of claims 8 to 10.

12. A computer program comprising instructions for performing, when executed by a processor, the decoding method of any one of claims 1 or 3 to 5 or the encoding method of any one of claims 2 to 5.

13. A computer readable data medium comprising instructions for a computer program according to claim 12.

Citation Information

Patent Citations

  • Delta QP for quantization of rectangular transform units, short distance intra prediction (SDIP) based video coding

    WO2017059044A1

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

    US9253508B2