WO2020058593A1 - Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image - Google Patents

Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image Download PDF

Info

Publication number
WO2020058593A1
WO2020058593A1 PCT/FR2019/052023 FR2019052023W WO2020058593A1 WO 2020058593 A1 WO2020058593 A1 WO 2020058593A1 FR 2019052023 W FR2019052023 W FR 2019052023W WO 2020058593 A1 WO2020058593 A1 WO 2020058593A1
Authority
WO
WIPO (PCT)
Prior art keywords
current block
block
prediction
coefficient
group
Prior art date
Application number
PCT/FR2019/052023
Other languages
English (en)
Inventor
Félix Henry
Pierrick Philippe
Mohsen ABDOLI
Gordon Clare
Original Assignee
Orange
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange filed Critical Orange
Priority to US17/277,938 priority Critical patent/US11985355B2/en
Priority to KR1020217008025A priority patent/KR20210058848A/ko
Priority to CN201980062059.4A priority patent/CN112740692B/zh
Priority to EP19774169.7A priority patent/EP3854088A1/fr
Priority to JP2021515494A priority patent/JP2022500944A/ja
Priority to BR112021003210-0A priority patent/BR112021003210A2/pt
Publication of WO2020058593A1 publication Critical patent/WO2020058593A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • the field of the invention is that of coding and decoding of images or sequences of images, and in particular of video streams.
  • the invention relates to the compression of images or sequences of images using a block representation of the images.
  • the invention can in particular be applied to image or video coding implemented in current or future coders (JPEG, MPEG, H.264, HEVC, etc. and their amendments), and to the corresponding decoding.
  • JPEG Joint Photographic Experts Group
  • MPEG MPEG
  • H.264 High Efficiency Video Coding
  • HEVC High Efficiency Video Coding
  • Digital images and image sequences occupy a lot of memory space, which means that when transmitting these images, they must be compressed to avoid congestion problems on the network used for this transmission.
  • HEVC compression standard High Efficiency Video Coding, Coding Tools and Specification
  • Matthias Wien, Signais and Communication Technology proposes to implement a pixel prediction of a current image compared to other pixels belonging to the same image (intra prediction) or to a previous or next image (inter prediction).
  • intra prediction exploits spatial redundancies within an image.
  • the images are cut into blocks of pixels.
  • the pixel blocks are then predicted using information already reconstructed, corresponding to the blocks previously coded / decoded in the current image according to the order of traversal of the blocks in the image.
  • the coding of a current block is carried out using a prediction of the current block, known as the predictor block, and of a prediction residue or "residual block", corresponding to a difference between the current block and the predictor block.
  • the residual block obtained is then transformed, for example by using a transform of the DOT type (transformed into discrete cosine).
  • the coefficients of the transformed residual block are then quantified, then coded by an entropy coding and transmitted to the decoder, which can reconstruct the current block by adding this residual block to the predictor block.
  • Decoding is done image by image, and for each image, block by block. For each block, the corresponding elements of the flow are read. The inverse quantization and the inverse transformation of the coefficients of the residual block are carried out. Then the prediction of the block is calculated to obtain the predictor block and the current block is reconstructed by adding the prediction (ie the predictor block) to the decoded residual block.
  • a DPCM (for Differential Dist Code Modulation) coding technique for coding blocks in Intra mode is inserted in a HEVC coder.
  • One such technique consists in predicting a set of pixels of an intra block by another set of pixels of the same block which have been previously reconstructed.
  • a set of pixels of the intra block to be coded corresponds to a line of the block, or a column or a line and a column and the intra prediction used to predict the set of pixels is one of the intra directional predictions defined in the HEVC standard.
  • the reconstruction of a set of pixels of the intra block corresponds either to the addition of a prediction residue in the case of lossless coding, therefore offering a fairly low compression rate, or to the addition a prediction residue after inverse transformation and / or inverse quantization of said other set of pixels serving as prediction.
  • Such a technique therefore does not make it possible to predict each pixel of the intra block using a local prediction function and to reconstruct the predicted pixel before predicting a next pixel.
  • this technique requires to reconstruct a set of pixels (row / column of the block for example) to predict another set of pixels. In other words, each time a part of the block is predicted and reconstructed, several pixels of the block are predicted and reconstructed.
  • the invention improves the state of the art. To this end, it relates to a method for decoding a stream of coded data representative of at least one image divided into blocks, the decoding method comprises, for at least one block of the image, known as the current block:
  • the decoding of the current block comprising:
  • the decoding of the current block comprising:
  • At least part of the syntax elements of an existing coding mode can be used. This allows data processing to be shared, since the same processing unit can be used, and to reduce implementation costs, both at the hardware level and at the software level.
  • the first group of syntax elements and the second group of syntax elements are distinct. Indeed, the second group of syntax elements being a subgroup of the first group, it 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 include all of the syntax elements in the first group. Indeed, the second group of syntax elements comprises a number of syntax elements strictly less than the number of syntax elements of the first group. Thus the second group of syntax elements is a strict subgroup of the first group of syntax elements.
  • the invention thus makes it possible to adapt the coding of the prediction residue obtained according to the second coding mode to the statistics of the coefficients to be coded. Indeed, such a statistic differs from the statistic of the coefficients of the prediction residue obtained according to the first coding mode. Data compression is thus improved.
  • the invention also relates to a method for coding a stream of coded data representative of at least one image divided into blocks.
  • the coding method comprises, for at least one block of the image, called the current block:
  • the coding of the current block comprising:
  • the coding of the current block comprising:
  • the invention also relates to a coded data stream representative of at least one image divided into blocks.
  • the coded data stream comprises, for at least one block of the image, known as the current block:
  • a prediction residue according to the first coding mode coded using a first group of syntax elements the prediction residue according to the first coding mode being obtained from a prediction of the current block from reconstructed pixels of a previously decoded block
  • Such a data stream can be stored on any recording medium, for example a memory, or transmitted in the form of an electrical or optical signal, which can be routed via an electrical or optical cable, by radio or by other means.
  • the first group of syntax elements comprises localization syntax elements indicating the localization of a first non-zero coefficient of the prediction residue associated with said current block, according to a traversing order determined coefficients of said prediction residue, and said second group of syntax elements does not include said localization syntax elements.
  • the prediction residue is traversed from the first non-zero coefficient of the prediction residue to the last coefficient of the prediction residue according to said order of determined route.
  • the prediction residue is then traversed from the first coefficient of the prediction residue to the last coefficient the prediction residue according to said determined route order.
  • This particular embodiment of the invention makes it possible to reduce the cost of coding the prediction residue according to the second coding mode when the first non-zero coefficient corresponds to the first coefficient of the prediction residue.
  • the prediction residue associated with the current block comprising at least one sub-block of coefficients
  • said first group of syntax elements comprises a sub-block syntax element associated with said at least one sub-block of coefficients, said sub-block syntax element indicating whether at least one coefficient of the sub-block is non-zero, and for each sub-block of coefficients of the prediction residue comprising at least one non-zero coefficient, a syntax element of significance for each coefficient of the sub-block, said element of syntax of significance indicating whether said coefficient is zero or not.
  • the second group of syntax elements comprises a significant syntax element for each coefficient of the prediction residue.
  • the coefficients of the prediction residue associated with the current block are not grouped by sub-block and the element of sub-block syntax n is not included in the second group of syntax elements.
  • the first group of syntax elements comprises, for each non-zero coefficient of the prediction residue traversed according to a determined traversing order:
  • the second group of syntax elements comprises for each non-zero coefficient of the prediction residue traveled according to a determined route order, a syntax element indicating the absolute value of the coefficient, and said syntax element indicating whether the coefficient is positive or negative.
  • the invention also relates to a decoding device configured to implement the decoding method according to any one of the particular embodiments defined above.
  • This decoding device could of course include the various characteristics relating to the decoding method according to the invention.
  • the characteristics and advantages of this decoding device are the same as those of the decoding method, and are not described in more detail.
  • the decoding device notably comprises a processor configured for, for at least one block of the image, called the current block:
  • such a decoding device is included in a terminal.
  • the invention also relates to an encoding device configured to implement the encoding method according to any one of the particular embodiments defined above.
  • This coding device could of course include the various characteristics relating to the coding method according to the invention. Thus, the characteristics and advantages of this coding device are the same as those of the coding method, and are not described in more detail.
  • the coding device notably comprises a processor configured for, for at least one block of the image, known as the current block:
  • such a coding device is included in a terminal, or a server.
  • the decoding method, respectively the coding method, according to the invention can be implemented in various ways, in particular in wired form or in software form.
  • the decoding method, respectively the coding method is implemented by a computer program.
  • the invention also relates to a computer program comprising instructions for implementing the decoding method or the coding method according to any one of the particular embodiments described above, when said program is executed by a processor.
  • Such a program can use any programming language. It can be downloaded from a communication network and / or saved on a computer-readable medium.
  • This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other desirable form.
  • the invention also relates to a recording medium or information medium readable by a computer, and comprising instructions of a computer program as mentioned above.
  • the recording media mentioned above can be any entity or device capable of storing the program.
  • the media can include a storage means such as a memory.
  • the recording media can correspond to a transmissible medium such as an electrical or optical signal, which can be routed via an electrical or optical cable, by radio or by other means.
  • the program according to the invention can in particular be downloaded from a network of the Internet type.
  • the recording media can correspond to an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the process in question.
  • FIG. 1 presents steps of the coding method according to a particular embodiment of the invention
  • FIG. 2 illustrates an example of the position of the neighboring blocks of a current block for determining an intra prediction mode according to a particular embodiment of the invention
  • FIG. 3 illustrates an example of the position of the reference pixels used to predict pixels of a current block according to a particular embodiment of the invention
  • FIG. 4 presents steps of the decoding method according to a particular embodiment of the invention
  • FIG. 5 illustrates an example of a signal comprising coded data representative of at least one block of an image according to a particular embodiment of the invention
  • FIG. 6 shows the simplified structure of a coding device suitable for implementing the coding method according to any one of the particular embodiments of the invention
  • FIG. 7 shows the simplified structure of a decoding device suitable for implementing the decoding method according to any one of the particular embodiments of the invention
  • FIG. 8 illustrates the division into sub-blocks of a block of coefficients.
  • the general principle of the invention is to allow the use of part of a group of syntax elements used to code a prediction residue obtained from a coding mode using a pixel prediction from '' at least one block previously reconstructed, to code a prediction residue resulting from an intra pixel based prediction, ie a prediction of the pixels of the block to be coded from pixels of the block to be coded previously reconstructed.
  • the invention thus makes it possible to improve the compression performance of the intra pixel based coding mode and to reduce the costs of implementing this new coding mode, in particular by making it possible to reuse part of the elements of syntax already used by a other coding mode.
  • FIG. 1 presents steps of the coding method according to a particular embodiment of the invention.
  • a sequence of images l ; l 2 , ..., l N b in the form of a STR coded data stream according to a particular embodiment of the invention is implemented by a coding device as described below with reference to FIG. 6.
  • a sequence of images h, l 2 , ..., l Nb , Nb being the number of images of the sequence to be coded, is supplied at the input of the coding method.
  • the coding method outputs a stream of STR coded data representative of the sequence of images supplied as input.
  • the coding of the sequence of images h, l 2 , ..., l N b is done image by image according to a coding order previously established and known to the coder.
  • the images can be coded in time order h, l 2 , ..., l N b or in another order, for example I 1 3, I2,, I Nb -
  • an image I, to be coded of the sequence of images, l 2 , ..., l Nb is cut into blocks, for example into blocks of size 32 ⁇ 32, or 64 ⁇ 64 pixels or more.
  • Such a block can be subdivided into square or rectangular sub-blocks, for example of size 16 ⁇ 16, 8 ⁇ 8, 4x4, 16 ⁇ 8, 8 ⁇ 16, etc.
  • a first block or sub-block X b to code of the image I is selected according to a direction of travel of the image I predetermined. For example, it can be the first block in the lexicographic order of the image.
  • the encoder will choose the coding mode for coding the current block X b .
  • the encoder selects the coding mode for coding the current block X b from a first coding mode M1 and a second coding mode M2. Additional coding modes (not described here) can be used.
  • the first coding mode M1 corresponds to the coding of the current block by intra classical prediction, for example as defined according to the HEVC standard and the second coding mode M2 corresponds to the coding by In Loop Residual prediction (ILR).
  • the coder can perform a bit rate / distortion optimization to determine the best coding mode for coding the current block.
  • bit rate / distortion optimization additional coding modes distinct from the first and second coding modes can be tested, for example a coding mode in inter mode.
  • the coder simulates the coding of the current block X b according to the different coding modes available in order to determine the bit rate and the distortion associated with each coding mode and selects the coding mode offering the best compromise.
  • bit rate / distortion for example according to the function D + 2R, where R represents the bit rate necessary to code the current block according to the coding mode evaluated, D the distortion measured between the decoded block and the original current block and l a Lagrangian multiplier, for example entered by the user or defined at the encoder.
  • step E20 information indicating the coding mode selected for the current block is coded in the data stream STR.
  • the method goes to step E21 of coding the block according to M1. If the current block X b is coded according to the second coding mode M2, the method goes to step E22 of coding the block according to M2.
  • the first coding mode corresponds to an intra classical prediction, such as that defined in the HEVC standard.
  • a quantization step 3 ⁇ 4 is determined.
  • the quantization step 3 ⁇ 4 can be set by the user, or calculated using a quantization parameter setting a compromise between compression and quality and entered by the user or defined by the coder.
  • a quantization parameter can be the parameter L, used in the rate-distortion cost function D + l .R, where D represents the distortion introduced by the coding and R the bit rate used to code. This function is used to make coding choices. Conventionally, we are looking for the way to code the image which minimizes this function.
  • the quantification parameter can be QP, corresponding to the quantification parameter conventionally used in AVC or HEVC standards.
  • a prediction of the current block is determined using an intra-classical prediction mode. According to this intra-classical prediction, each predicted pixel is calculated only from the decoded pixels from the neighboring blocks (reference pixels) located above the current block, and to the left of the current block. How the pixels are predicted from the reference pixels depends on a prediction mode that is passed to the decoder, and which is chosen by the coder from a predetermined set of modes known to the coder and the decoder.
  • HEVC there are 35 possible prediction modes: 33 modes which interpolate the reference pixels in 33 different angular directions, and 2 other modes: the DC mode in which each pixel of the predicted block is produced from the average reference pixels, and PLANAR mode, which performs plane and non-directional interpolation.
  • This so-called “intra classical prediction” approach is well known and also used in the ITU-T H.264 standard (where there are only 9 different modes) as well as in the experimental JEM software available at the internet address (https : // i vet. hhi .f rau nh of er. de /), where there are 67 different prediction modes.
  • the intra classical prediction respects the two aspects mentioned above (pixel prediction from neighboring blocks and transmission to the decoder of an optimal prediction mode).
  • the coder therefore chooses one of the prediction modes available from the predetermined list of prediction modes.
  • One way of choosing is, for example, to evaluate all the prediction modes and to keep the prediction mode which minimizes a cost function such as, conventionally, the bit rate-distortion cost.
  • the prediction mode chosen for the current block is coded from the neighboring blocks of the current block.
  • FIG. 2 illustrates an example of the position of the neighboring blocks A b and B b of the current block X b for coding the prediction mode of the current block X b .
  • the intra prediction mode chosen for the current block is coded using the intra prediction modes associated with the neighboring blocks.
  • such an approach consists in identifying the intra m A prediction mode associated with the block A b located above the current block, and the intra m B prediction mode associated with the block B b located just to the left of the current block.
  • MPM for Most Probable Mode
  • non-BPM list containing the 32 other prediction modes
  • syntax elements are transmitted:
  • a predicted block P is constructed as a function of the prediction mode chosen in step E21 1. Then the prediction residue R is obtained by calculating the difference for each pixel, between the predicted block P and the original current block.
  • the prediction residue R is transformed into R T.
  • a frequency transform is applied to the block of residue R so as to produce the block R T comprising transformed coefficients.
  • the transform could be a DCT type transform for example. It is possible to choose the transform to be used in a predetermined set of transforms E T and to signal the transform used to the decoder.
  • the transformed residue block R T is quantified using for example a scalar quantization of quantization step This produces the quantized transformed prediction residue block R TQ .
  • the coefficients of the quantized block R TQ are coded by an entropy coder.
  • an entropy coder One can for example use the entropy coding specified in the HEVC standard. In this case, the coding of the coefficients of the residue R TQ works as follows.
  • An order of traversal of the coefficients is determined. This order of travel is the same for the coder and the decoder. It is for example defined by default within the coder and the decoder. For example, it is a scan of the current quantized block R TQ line by line and column by column.
  • Elements of syntax are transmitted to indicate the location of the first non-zero coefficient encountered according to the order of travel. These syntax elements will be called LastX and LastY (indicating the coordinates of said coefficient in the current quantized current block RTQ).
  • the coefficients are then traversed from said first non-zero coefficient to the last coefficient of the current quantized block R TQ .
  • the coefficients of the current quantized block R TQ are grouped into sub-blocks. For example, the coefficients are grouped into 4x4 size sub-blocks contained in the current quantized block R TQ , as illustrated in FIG. 8 showing a block of transformed prediction residue cut into sub-blocks of 4x4 coefficients. Other sizes of sub-blocks are of course possible.
  • an element of syntax coded_sub_block_flag is transmitted, indicating whether this sub-block consists entirely of zeros or not.
  • this syntax element takes the value 0 if all the coefficients of the sub-block are harmful and the value 1 otherwise (at least one coefficient of the subgroup is different from 0).
  • an element of syntax 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 order of traversal determined), this syntax element indicating whether the coefficient is zero or not. Such a syntax element is not transmitted for the first non-zero coefficient identified by LastX and LastY since the coder already knows that this coefficient is non-zero.
  • an element of syntax coeff_abs_level_greater1_flag is transmitted, indicating whether the coefficient is equal to 1 or not.
  • an element of syntax coeff_abs_level_greater2_flag is transmitted, indicating whether the coefficient is equal to 2 or not.
  • an element of coeff_abs_level_remaining syntax is transmitted, indicating the amplitude of the coefficient reduced by 3.
  • an element of syntax coeff_sign_flag is transmitted to indicate whether the coefficient is positive or negative.
  • the current block is decoded by de-quantizing the coefficients of the quantized block R TQ , then by applying the inverse transform to the de-quantized coefficients to obtain the decoded prediction residue.
  • the prediction is then added to the decoded prediction residue in order 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 else to predict blocks of other images by inter-image prediction.
  • step E22 of coding the block according to the second coding mode M2 is described below, according to a particular embodiment of the invention.
  • the second coding mode corresponds to coding by ILR prediction.
  • a local predictor PL for the current block is determined.
  • the pixels of the current block are predicted by pixels previously reconstructed from a neighboring block of the current block or of the current block itself.
  • 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 distinct from the first group of intra prediction modes.
  • the local predictor PL can be unique or it can be selected from a set of predetermined local predictors (second group of prediction modes). According to an alternative embodiment, 4 local predictors are defined. Thus, if X is called a current pixel to predict from the current block, A the pixel located immediately to the left of X, B the pixel located immediately to the left and above X, C the pixel located immediately above X, as illustrated in FIG. 3 showing a current block X b . 4 local predictors PL1, PL2, PL3, PL4 can be defined as follows:
  • min (A, B) corresponds to the function returning the smallest value between the value of A and the value of B and max (A, B) corresponds to the function returning the largest value between the value of A and the value of B.
  • step E220 it is determined which local predictor PL to use for the current block.
  • the same local predictor will be used for all the pixels of the current block, i.e. the same prediction function.
  • the coding of the current block with each of the predictors can be simulated (similar to an optimization for choosing a coding mode for the current block), and the local predictor which optimizes a cost function (for example, which minimizes the function D + AR, where R is the bit rate used to code the block, D is the distortion of the decoded block compared to the original block, and l is a parameter set by the user) is selected.
  • a cost function for example, which minimizes the function D + AR, where R is the bit rate used to code the block, D is the distortion of the decoded block compared to the original block, and l is a parameter set by the user
  • an orientation of the texture of the previously coded pixels is analyzed. For example, the pixels previously coded in the block which are located above or to the left of the current block are analyzed using a Sobel operator. If it is determined that:
  • the local predictor PL2 is selected
  • the local predictor PL3 is selected
  • the local predictor PL4 is selected
  • the local predictor PL1 is selected.
  • a syntax element is coded in the STR data stream to indicate to the decoder which local predictor was used to predict the current block.
  • a quantization step d 2 is determined.
  • the quantization step d 2 depends on the same quantization parameter as the quantization step ⁇ which would be determined in step E210 if the current block was coded according to the first coding mode.
  • a prediction residue R1 is calculated for the current block. To do this, once the local predictor has been chosen, for each current pixel of the current block:
  • the current pixel X of the current block is predicted by the local predictor PL selected, using either pixels outside the block and already reconstructed (and therefore available with their decoded value), or pixels previously reconstructed in the current block, either of the two, in order to obtain a predicted value PRED.
  • the predictor PL uses previously reconstructed pixels.
  • FIG. 3 it can be seen that the pixels of the current block situated on the first line and / or the first column of the current block will use as reference pixels (to construct the predicted value PRED) pixels external to the block and already reconstructed (pixels in gray in FIG. 3) and possibly already reconstructed pixels of the current block.
  • the reference pixels used to construct the predicted value PRED are located inside the current block;
  • Q (X) is the quantized residue associated with X. It is calculated in the spatial domain, ie calculated directly from the difference between the predicted PRED value of the pixel X and the original value of X. Such a quantized residue Q (X ) for the pixel X is stored in a quantized prediction residue block R1 Q , which will be coded later;
  • the decoded predicted value P1 (X) of X is calculated by adding to the predicted value PRED the de-quantized value of the quantized residue Q (X).
  • ScalarDequant (A, x) D x x.
  • the decoded predicted value P1 (X) thus makes it possible to predict possible pixels which remain to be processed in the current block. Furthermore, the block P1 comprising the decoded / reconstructed values of the pixels of the current block constitutes the predictor ILR of the current block (as opposed to the intra-classical predictor).
  • the sub-steps described above are performed for all the pixels of the current block, in a traversing order which ensures that the pixels used for the prediction chosen from PL1, ..., PL4 are available.
  • the order of traversal of the current block is the lexicographic order, ie from left to right, and from top to bottom.
  • several travel orders of the current block can be used, for example:
  • step E222 the quantized residue block R1 Q has been determined. This quantized residue block R1 Q must be coded to be transmitted to the decoder. The predictor P1 of the current block was also determined.
  • the quantized residue block R1 Q is coded in order to transmit it to the decoder. It is possible to use any known approach, such as the method described in HEVC to code the quantized coefficients of a classical prediction residue.
  • the values of the quantized residue block R1 Q are coded using an entropy coder in the STR data stream using at least part of the syntax elements used to code a prediction residue from the coding mode M1.
  • the coding of the residue R1 Q is done by omitting the elements of syntax LastX and LastY and by systematically traversing all the coefficients of the block of quantified prediction residue R1 Q.
  • An order of traversal of the coefficients is determined.
  • the coefficients are traversed from the first coefficient of the quantized residue block R1 Q to the last coefficient of the quantized residue block R1 Q.
  • the rest of the entropy coding of the coefficients is similar to that described in the case of the coding of a transformed prediction residue resulting from the coding mode M1.
  • coefficients are grouped by sub-blocks, for example 4x4-sized sub-blocks contained in the current quantized residue block R1 Q. Other sizes of sub-blocks are of course possible.
  • an element of syntax coded_sub_block_flag is transmitted, indicating whether this sub-block consists entirely of zeros or not.
  • an element of syntax sig_coeff_flag is transmitted for each coefficient, this element of syntax indicating whether the coefficient is zero or not.
  • an element of syntax coeff_abs_level_greater1_flag is transmitted, indicating whether the coefficient is equal to 1 or not.
  • an element of syntax coeff_abs_level_greater2_flag is transmitted, indicating whether the coefficient is equal to 2 or not.
  • an element of coeff_abs_level_remaining syntax is transmitted, indicating the amplitude of the coefficient reduced by 3.
  • an element of syntax coeff_sign_flag is transmitted to indicate whether the coefficient is positive or negative.
  • the coding of the quantized residue R1 Q is done by omitting the elements of syntax LastX and LastY and by systematically traversing all the coefficients of the block of quantized residue R1 Q , and by omitting the coded_sub_block_flag element.
  • a significance value sig_coeff_flag is therefore systematically coded for each coefficient of the quantized residue block R1 Q.
  • the coding of the coefficients of the residue R1 Q operates as follows. An order of traversal of the coefficients is determined. The coefficients are traversed from said first coefficient of the quantized residue block R1 Q to the last coefficient of the quantized residue block R1 Q according to the determined order of travel. For this purpose, for each coefficient, an element of syntax sig_coeff_flag is transmitted, this element of syntax indicating whether the coefficient is zero or not. For each non-zero coefficient, an element of syntax coeff_abs_level_greater1_flag is transmitted, indicating whether the coefficient is equal to 1 or not.
  • an element of syntax coeff_abs_level_greater2_flag is transmitted, indicating whether the coefficient is equal to 2 or not.
  • an element of coeff_abs_level_remaining syntax is transmitted, indicating the amplitude of the coefficient reduced by 3.
  • an element of syntax coeff_sign_flag is transmitted to indicate whether the coefficient is positive or negative.
  • the coding of the residue R1 Q is carried out only using the elements of syntax coeff_abs_level_remaining and coeff_sign_flag.
  • all the coefficients of the block are systematically traversed and the value of each coefficient is coded.
  • the coding of the coefficients of the residue R1 Q works as follows. An order of traversal of the coefficients is determined. The coefficients are traversed from the first coefficient of the quantized residue block R1 Q to the last coefficient of the quantized residue block R1 Q.
  • an element of coeff_abs_level_remaining syntax is transmitted, indicating the amplitude of the coefficient, and for each non-zero coefficient, an element of syntax coeff_sign_flag is transmitted in order to indicate whether the coefficient is positive or negative.
  • the coding of the prediction residue R1 Q is carried out on the basis of a group of syntax elements which is a strict subset (that is to say not equal) and not empty of the syntax elements used for the "classical" residue R TQ .
  • an additional prediction residue R2 from the predictor ILR obtained for the current block.
  • the coding of an additional prediction residue R2 is however optional. It is indeed possible to simply code the current block by its predicted version P1 and the quantized residue R1 q .
  • the following steps correspond to the conventional steps of coding this residue R2.
  • the residue R2 is transformed using a frequency transform so as to produce the block of coefficients R2 T.
  • the transform can be a DCT type transform for example. It is possible to choose the transform to be used in a predetermined set of transforms E T2 and to signal the transform used to the decoder. In this case, the set E T2 can be different from the set E T , in order to adapt to the particular statistics of the residue R2.
  • the block of coefficients R2 T is quantized, for example using a scalar quantization of quantization step d. This produces the R2 TQ block.
  • the quantization step d can be set by the user, it can also be calculated using another parameter l fixing the compromise between compression and quality and entered by user or coder.
  • the quantization step d may correspond to the quantization step 3 ⁇ 4 or be determined in a similar manner to this.
  • the coefficients of the quantized block R2 TQ are then transmitted in a coded manner.
  • the coding specified in the HEVC standard can be used.
  • the current block is decoded by de-quantizing the coefficients of the quantized block R2 TQ , then by applying the inverse transform to the de-quantized coefficients to obtain the decoded prediction residue.
  • the prediction P1 is then added to the decoded prediction residue in order to reconstruct the current block and to obtain its decoded version X rec .
  • the decoded version X rec of the current block can then be used later to spatially predict other neighboring blocks of the image or else to predict blocks of other images by inter-image prediction.
  • 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 travel order defined above. If so, the method proceeds to coding (step E25) of the next image of the video if necessary. If not, during a step E24, the next block of the image to be processed is selected according to the path of the image defined above and the coding method goes to step E2, where the selected block becomes the current block treat.
  • FIG. 4 presents steps of the method of decoding a stream STR of coded data representative of a sequence of images 1 ; l 2 , ..., l N b to be decoded according to a particular embodiment of the invention.
  • the STR data stream was generated via the coding method presented in relation to FIG. 1.
  • the data stream STR is supplied at the input of a decoding device DEC, as described in relation to FIG. 7.
  • the decoding method decodes the image-by-image stream and each image is decoded block by block.
  • an image I, to be decoded is subdivided into blocks.
  • Each block will undergo a decoding operation consisting of a series of steps which are detailed below.
  • the blocks can be the same size or different sizes.
  • a first block or sub-block X b to be decoded from the image I is selected as the current block according to a direction of travel of the image I, which is predetermined. For example, it can be the first block in the lexicographic order of the image.
  • step E42 information indicating an encoding mode for the current block is read from the data stream STR.
  • this information indicates whether the current block is coded according to a first coding mode M1 or according to a second coding mode M2.
  • the first coding mode M1 corresponds to the coding of the current block by intra classical prediction, for example as defined according to the HEVC standard
  • the second coding mode M2 corresponds to the coding by In Loop prediction Residual (ILR).
  • ILR In Loop prediction Residual
  • the information read from the stream STR can also indicate the use of other coding modes for coding the current block (not described here).
  • step E43 of decoding the current block is described when the current block is coded according to the first coding mode M1.
  • a quantization step 3 ⁇ 4 is determined.
  • the quantization step 3 ⁇ 4 is determined from the quantization parameter QP read from the data stream STR or in a similar manner to what was done at the coder.
  • the quantization step 3 ⁇ 4 can be calculated using the quantization parameter QP read from the data stream STR.
  • the QP quantization parameter can be the quantification parameter conventionally used in AVC or HEVC standards.
  • the prediction mode used to code the current block is decoded from the neighboring blocks. For this, like what was done at the coder, the intra prediction mode chosen for the current block is decoded, using the intra prediction modes associated with the neighboring blocks of the current block.
  • the binary indicator and the prediction mode index are therefore read for the current block from the STR data stream, to decode the intra prediction mode of the current block.
  • the decoder constructs a predicted block P for the current block from the decoded prediction mode.
  • the decoder decodes the coefficients of the quantized block R TQ from the data stream STR, for example using the decoding specified in the HEVC standard.
  • the decoding of the coefficients of the residue R TQ works as follows. A travel order of the coefficients is determined corresponding to the travel order used at the coder. LastX and LastY syntax elements indicating the coordinates of the first nonzero coefficient in the residue block R TQ according to the determined order of traversal, are decoded. The coefficients are traversed from the first non-zero coefficient to the last coefficient of the block.
  • these coefficients are grouped into 4x4 size sub-blocks contained in the current quantized residue block R TQ .
  • an element of syntax coded_sub_block_flag is decoded, indicating whether this sub-block consists entirely of zeros or not.
  • an element of syntax sig_coeff_flag is decoded for each coefficient (located after the last coefficient of the block indicated by LastX and LastY), this element of syntax indicating whether the coefficient is zero or not.
  • an element of syntax coeff_abs_level_greater1_flag is decoded, indicating whether the coefficient is equal to 1 or not.
  • an element of syntax coeff_abs_level_greater2_flag is decoded, indicating whether the coefficient is equal to 2 or not.
  • an element of coeff_abs_level_remaining syntax is decoded, indicating the amplitude of the coefficient reduced by 3.
  • an element of syntax coeff_sign_flag is decoded to indicate whether the coefficient is positive or negative.
  • the decoded block R TQ is de-quantized, for example using a scalar de-quantization of quantization step This produces the block of RTQD- quantized coefficients
  • an inverse frequency transform is applied to the block of de-quantified coefficients R T Q D so as to produce the block of decoded prediction residue RTQDI.
  • the transform could be a reverse DCT type transform for example. It is possible to choose the transform to be used in a predetermined set of transforms by decoding an indicator from the data stream STR.
  • step E44 describes the decoding of the current block when the current block is coded according to the second coding mode M2.
  • the local predictor PL used to predict the pixels of the current block is determined.
  • the local predictor is for example defined by default at the level of the decoder and no element of syntax needs to be read in the stream STR to determine it.
  • a syntax element is decoded from the data stream STR to identify which local predictor was used to predict the current block.
  • the local predictor is therefore determined from this decoded syntax element.
  • the quantization step d 2 is determined, in a similar manner to what has been done at the coder.
  • the quantized residue R1 Q is decoded from the data stream STR.
  • the values of the quantized residue block R1 Q are decoded from the data stream STR using at least part of the syntax elements used to decode a prediction residue from the coding mode M1.
  • a subgroup of the group of syntax elements used for the residue R TQ is used.
  • the decoding of the residue R1 Q is done by omitting the elements of syntax LastX and LastY and by systematically traversing all the coefficients of the block of quantized residue R1 Q.
  • the decoding of the coefficients of the residue R1 Q works as follows. A travel order of the coefficients is determined, corresponding to the travel order determined by the coder. The coefficients are traversed from the first coefficient of the quantized residue block R1 Q to the last coefficient of the quantized residue block R1 Q. To this end, these coefficients are grouped into 4x4 size sub-blocks contained in the quantized residue block R1 Q.
  • an element of syntax coded_sub_block_flag is decoded, indicating whether this sub-block consists entirely of zeros or not.
  • an element of syntax sig_coeff_flag is decoded for each coefficient, this element of syntax indicating whether the coefficient is zero or not.
  • an element of syntax coeff_abs_level_greater1_flag is decoded, indicating whether the coefficient is equal to 1 or not. For each non-zero coefficient not equal to
  • an element of coeff_sign_flag syntax is decoded in order to indicate whether the coefficient is positive or negative.
  • the decoding of the residue R1 Q is done by omitting the elements of syntax LastX and LastY and by systematically traversing all the coefficients of the block of quantized residue R1 Q , and by omitting the element of syntax coded_sub_block_flag and therefore in systematically decoding a value for each coefficient of the block.
  • the decoding of the coefficients of the residue R TQ works as follows. An order of traversal of the coefficients is determined. The coefficients are traversed from the first coefficient of the quantized residue block R1 Q to the last coefficient of the quantized residue block R1 Q. For each coefficient, an element of syntax sig_coeff_flag is decoded, this element of syntax indicating whether the coefficient is zero or not. For each non-zero coefficient, an element of syntax coeff_abs_level_greater1_flag is decoded, indicating whether the coefficient is equal to 1 or not. For each non-zero coefficient not equal to
  • the decoding of the residue R1 Q is done only using the elements of syntax coeff_abs_level_remaining and coeff_sign_flag.
  • the decoding of the coefficients of the residue R1 Q works as follows. An order of traversal of the coefficients is determined. The coefficients are traversed from the first coefficient of the quantized residue block R1 Q to the last coefficient of the quantized residue block R1 Q. For this purpose, for each coefficient an element of syntax coeff_abs_level_remaining is decoded, indicating the amplitude of the coefficient and for each coefficient not zero, an element of syntax coeff_sign_flag is decoded in order to indicate whether the coefficient is positive or negative.
  • the quantized residue block R1 Q is de-quantified using the quantization step d 2 , so as to produce the de-quantized residue block R1 QD .
  • step E444 when the de-quantized residue block R1 QD is obtained, the predicted block P1 is constructed using the local predictor PL determined during step E440.
  • each pixel of the current block is predicted and reconstructed as follows:
  • the current pixel X of the current block is predicted by the predictor PL selected, using either pixels outside the block and already decoded, or pixels previously reconstructed from the current block, or both, to obtain a predicted PRED value. In all cases, the predictor PL uses previously decoded pixels;
  • the route order is the lexicographic order (from left to right, then the lines from top to bottom).
  • the predicted block P1 comprising the decoded predicted values P1 (X) of each pixel of the current block here constitutes the decoded current block X rec .
  • an additional prediction residue has been coded for the current block. It is therefore necessary to decode this additional prediction residue in order to reconstruct the decoded version of the current block X rec .
  • this other particular embodiment can be activated or not by default at the level of the coder and the decoder.
  • an indicator can be encoded in the data stream with the block level information to indicate for each block encoded according to the ILR encoding mode whether an additional prediction residue is encoded.
  • an indicator can be coded in the data stream with the image level or image sequence information to indicate for all the blocks of the image or of the image sequence coded according to the ILR coding mode if a additional prediction residue is coded.
  • the coefficients of the quantized prediction residue R2 TQ are decoded from the data stream STR, using means adapted to those implemented to the coder, for example the means implemented in a HEVC decoder.
  • the block of quantized coefficients R2 TQ is de-quantified, for example using a scalar de-quantization of quantization step This produces the block of unquantified coefficients R2 TQD .
  • an inverse frequency transform is applied to the block R2 TQD so as to produce the block of decoded prediction residue R2 TQD
  • the reverse transform could be a reverse DCT type transform for example.
  • the transform to be used in a predetermined set of transforms E T2 and to decode the information signaling the transform to be used at the decoder.
  • the set E T2 is different from the set E T , in order to adapt to the particular statistics of the residue R2.
  • the current block is reconstructed by adding the predicted block P1 obtained during the step E444 to the decoded prediction residue R2 TQDL
  • 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 course order defined above. If so, the method proceeds to decoding (step E47) of the next image of the video if necessary. If not, during a step E46, the next block of the image to be processed is selected according to the path of the image defined above and the decoding method proceeds to step E42, the selected block becoming the current block to treat.
  • FIG. 5 illustrates an example of a STR signal comprising coded data representative of at least one block of an image according to a particular embodiment of the invention.
  • the signal STR comprises a coded indicator TY indicating for a block of an image, a coding mode for this block.
  • the signal then comprises quantized prediction residue values R1 Q coded using a group of syntax elements which is a subgroup of the group of syntax elements used to code prediction residue values from the first coding mode.
  • a subgroup includes elements of syntax as described in relation to FIG. 1 or 4 when the current block is coded according to the second coding mode.
  • the signal optionally includes coded values of quantized transformed prediction residues R2 TQ .
  • the signal also includes a coded local predictor indicator PL.
  • the signal When the TY indicator indicates that the block is coded according to the first coding mode, here the intra classical prediction mode, the signal then comprises quantized transformed prediction residue values R TQ coded using a group d elements of syntax as described in relation to FIGS. 1 or 4 when the current block is coded according to the first coding mode, a binary indicator Î M PM indicating whether the prediction mode to be coded for the current block is in the list MPM or not, and an idx MpM index indicating the index of the prediction mode of the current block in the corresponding list.
  • FIG. 6 presents the simplified structure of a COD coding device suitable for implementing the coding method according to any one of the particular embodiments of the invention.
  • the steps of the coding method are implemented by computer program instructions.
  • the coding device COD has the conventional architecture of a computer and notably comprises a memory MEM, a processing unit UT, equipped for example with a processor PROC, and controlled by the computer program PG stored in MEM memory.
  • the computer program PG includes instructions for implementing the steps of the coding method as described above, when the program is executed by the processor PROC.
  • the code instructions of the computer program PG are for example loaded into a memory RAM (not shown) before being executed by the processor PROC.
  • the processor PROC of the processing unit UT implements in particular the steps of the coding method described above, according to the instructions of the computer program PG.
  • FIG. 7 shows the simplified structure of a DEC decoding device suitable for implementing the decoding method according to any one of the particular embodiments of the invention.
  • the DEC decoding device has the conventional architecture of a computer and in particular comprises a MEMO memory, a UTO processing unit, equipped for example with a PROCO processor, and controlled by the PGO computer program stored in MEMO memory.
  • the PGO computer program includes instructions for implementing the steps of the decoding method as described above, when the program is executed by the PROCO processor.
  • the code instructions of the PGO computer program are for example loaded into a RAM memory (not shown) before being executed by the PROCO processor.
  • the processor PROCO of the processing unit UTO implements in particular the steps of the decoding method described above, according to the instructions of the computer program PGO.

Abstract

L'invention concerne un procédé de décodage d'un flux de données codées représentatif d'au moins une image découpée en blocs. Pour au moins un bloc de l'image, dit bloc courant, une information indiquant un mode de codage du bloc courant est décodée (E42) à partir du flux de données. Lorsque le mode de codage du bloc courant correspond à un premier mode de codage, le décodage (E433) d'un résidu de prédiction associé au bloc courant est réalisé à l'aide d'un premier groupe d'éléments de syntaxe, tandis que lorsque le mode de codage du bloc courant correspond à un deuxième mode de codage, le décodage (E442) du résidu de prédiction associé au bloc courant est réalisé à l'aide d'un deuxième groupe d'éléments de syntaxe, qui est un sous-groupe d'éléments de syntaxe dudit premier groupe d'éléments de syntaxe.

Description

PROCEDES ET DISPOSITIFS DE CODAGE ET DE DECODAGE D'UN FLUX DE DONNEES REPRESENTATIF D'AU MOINS UNE IMAGE
1. Domaine de l’invention
Le domaine de l’invention est celui du codage et du décodage d’images ou de séquences d’images, et notamment de flux vidéo.
Plus précisément, l’invention concerne la compression d’images ou de séquences d’images utilisant une représentation par blocs des images.
L’invention peut notamment s’appliquer au codage image ou vidéo mis en oeuvre dans les codeurs actuels ou à venir (JPEG, MPEG, H.264, HEVC, etc et leurs amendements), et au décodage correspondant.
2. Art Antérieur
Les images et séquences d’images numériques occupent beaucoup d’espace en termes de mémoire, ce qui nécessite, lorsque l’on transmet ces images, de les compresser afin d’éviter les problèmes d’encombrement sur le réseau utilisé pour cette transmission.
On connaît déjà de nombreuses techniques de compression de données vidéo. Parmi celles-ci, le standard de compression HEVC ("High Efficiency Video Coding, Coding Tools and Spécification", Matthias Wien, Signais and Communication Technology, 2015) propose de mettre en oeuvre une prédiction de pixels d’une image courante par rapport à d’autres pixels appartenant à la même image (prédiction intra) ou à une image précédente ou suivante (prédiction inter).
Plus précisément, la prédiction intra exploite les redondances spatiales au sein d’une image. Pour ce faire, les images sont découpées en blocs de pixels. Les blocs de pixels sont alors prédits à l’aide d’informations déjà reconstruites, correspondant aux blocs précédemment codés/décodés dans l’image courante selon l’ordre de parcours des blocs dans l’image.
Par ailleurs, de manière classique, le codage d’un bloc courant est réalisé à l’aide d’une prédiction du bloc courant, dit bloc prédicteur, et d’un résidu de prédiction ou « bloc résiduel », correspondant à une différence entre le bloc courant et le bloc prédicteur. Le bloc résiduel obtenu est alors transformé, par exemple en utilisant une transformée de type DOT (transformée en cosinus discrète). Les coefficients du bloc résiduel transformé sont ensuite quantifiés, puis codés par un codage entropique et transmis au décodeur, qui peut reconstruire le bloc courant en ajoutant ce bloc résiduel au bloc prédicteur.
Le décodage est fait image par image, et pour chaque image, bloc par bloc. Pour chaque bloc, les éléments correspondants du flux sont lus. La quantification inverse et la transformation inverse des coefficients du bloc résiduel sont effectuées. Puis, la prédiction du bloc est calculée pour obtenir le bloc prédicteur et le bloc courant est reconstruit en ajoutant la prédiction (i.e. le bloc prédicteur) au bloc résiduel décodé.
Dans US9253508, une technique de codage DPCM (pour Differential Puise Code Modulation en anglais) pour coder des blocs en mode Intra est insérée dans un codeur HEVC. Une telle technique consiste à prédire un ensemble de pixels d'un bloc intra par un autre ensemble de pixels du même bloc qui ont été précédemment reconstruits. Dans US9253508, un ensemble de pixels du bloc intra à coder correspond à une ligne du bloc, ou une colonne ou une ligne et une colonne et la prédiction intra utilisée pour prédire l'ensemble de pixels est l'une des prédictions intra directionnelles définies dans le standard HEVC.
Une telle technique n'est toutefois pas optimale. En effet, la reconstruction d'un ensemble de pixels du bloc intra correspond soit à l'ajout d'un résidu de prédiction dans le cas d'un codage sans pertes, offrant donc un taux de compression assez faible, soit à l'ajout d'un résidu de prédiction après transformation inverse et/ou quantification inverse dudit autre ensemble de pixels servant de prédiction. Une telle technique ne permet donc pas de prédire chaque pixel du bloc intra à l'aide d'une fonction locale de prédiction et de reconstruire le pixel prédit avant de prédire un pixel suivant. En effet, cette technique nécessite de reconstruire un ensemble de pixels (ligne/colonne du bloc par exemple) pour prédire un autre ensemble de pixels. Autrement dit, à chaque prédiction et reconstruction d'une partie du bloc, plusieurs pixels du bloc sont prédits et reconstruits.
De plus, dans US9253508, il n'est pas décrit comment faire cohabiter des modes de prédiction intra classiques tels que définis dans le standard HEVC par exemple et le mode de prédiction DPCM.
Il existe donc un besoin pour une nouvelle méthode de codage et de décodage pour améliorer la compression des données image ou vidéo.
3. Exposé de l'invention
L'invention vient améliorer l'état de la technique. Elle concerne à cet effet un procédé de décodage d'un flux de données codées représentatif d'au moins une image découpée en blocs, le procédé de décodage comprend, pour au moins un bloc de l'image, dit bloc courant:
- le décodage d'une information indiquant un mode de codage du bloc courant,
- lorsque le mode de codage du bloc courant correspond à un premier mode de codage, le décodage du bloc courant comprenant:
- le décodage d'un résidu de prédiction associé au bloc courant à l'aide d'un premier groupe d'éléments de syntaxe,
- l'obtention d'une prédiction du bloc courant à partir de pixels reconstruits d'un bloc précédemment décodé, - la reconstruction dudit bloc courant à partir de la prédiction obtenue et dudit résidu de prédiction décodé.
- lorsque le mode de codage du bloc courant correspond à un deuxième mode de codage, le décodage du bloc courant comprenant:
- le décodage du résidu de prédiction associé au bloc courant à l'aide d'un deuxième groupe d'éléments de syntaxe, ledit deuxième groupe étant un sous-groupe d'éléments de syntaxe dudit premier groupe d'éléments de syntaxe,
- la reconstruction dudit bloc courant comprenant:
- pour chaque pixel du bloc courant:
- l'obtention d'une prédiction dudit pixel à partir d'un autre pixel précédemment décodé, ledit autre pixel précédemment décodé appartenant audit bloc courant ou à un bloc de l'image précédemment décodé,
- la reconstruction dudit pixel à partir de la prédiction dudit pixel obtenue et du résidu de prédiction décodé à l'aide du deuxième groupe d'éléments de syntaxe.
Ainsi, selon l'invention, au moins une partie des éléments de syntaxe d'un mode de codage existant peut être utilisée. Ceci permet de mutualiser le traitement des données, car une même unité de traitement peut être utilisée, et de réduire les coûts de mise en œuvre, tant au niveau matériel (hardware) qu'au niveau logiciel (software).
Il est à noter que selon l'invention, le premier groupe d'éléments de syntaxe et le deuxième groupe d'éléments de syntaxe sont distincts. En effet, le deuxième groupe d'éléments de syntaxe étant un sous-groupe du premier groupe, il comprend au moins un élément de syntaxe dudit premier groupe. Le deuxième groupe d'éléments de syntaxe diffère du premier groupe en ce qu'il ne comprend pas tous les éléments de syntaxe du premier groupe. En effet, le deuxième groupe d'éléments de syntaxe comprend un nombre d'éléments de syntaxe strictement inférieur au nombre d'éléments de syntaxe du premier groupe. Ainsi le deuxième groupe d'éléments de syntaxe est un sous-groupe strict du premier groupe d'éléments de syntaxe.
L'invention permet ainsi d'adapter le codage du résidu de prédiction obtenu selon le deuxième mode de codage à la statistique des coefficients à coder. En effet, une telle statistique diffère de la statistique des coefficients du résidu de prédiction obtenu selon le premier mode de codage. La compression des données s'en trouve ainsi améliorée. L'invention concerne également un procédé de codage d'un flux de données codées représentatif d'au moins une image découpée en blocs. Le procédé de codage comprend, pour au moins un bloc de l'image, dit bloc courant:
- le codage d'une information indiquant un mode de codage du bloc courant,
- lorsque le mode de codage du bloc courant correspond à un premier mode de codage, le codage du bloc courant comprenant:
- l'obtention d'une prédiction du bloc courant à partir de pixels reconstruits d'un bloc précédemment décodé,
- l'obtention d'un résidu de prédiction associé au bloc courant obtenu à partir de la prédiction obtenue,
- le codage dudit résidu de prédiction associé au bloc courant à l'aide d'un premier groupe d'éléments de syntaxe,
- lorsque le mode de codage du bloc courant correspond à un deuxième mode de codage, le codage du bloc courant comprenant:
- pour chaque pixel du bloc courant:
- l'obtention d'une prédiction dudit pixel à partir d'un autre pixel précédemment décodé, ledit autre pixel précédemment décodé appartenant audit bloc courant ou à un bloc de l'image précédemment décodé,
- l'obtention d'un résidu de prédiction à partir de la prédiction obtenue pour ledit pixel,
- le codage d'un résidu de prédiction associé au bloc courant comprenant les résidus de prédiction associés aux pixels dudit bloc courant, à l'aide d'un deuxième groupe d'éléments de syntaxe, ledit deuxième groupe étant un sous-groupe d'éléments de syntaxe dudit premier groupe d'éléments de syntaxe.
L'invention concerne également un flux de données codées représentatif d'au moins une image découpée en blocs. Le flux de données codées comprend, pour au moins un bloc de l'image, dit bloc courant:
- une information indiquant un mode de codage du bloc courant,
- lorsque le mode de codage du bloc courant correspond à un premier mode de codage, un résidu de prédiction selon le premier mode de codage codé à l'aide d'un premier groupe d'éléments de syntaxe, le résidu de prédiction selon le premier mode de codage étant obtenu à partir d'une prédiction du bloc courant à partir de pixels reconstruits d'un bloc précédemment décodé,
- lorsque le mode de codage du bloc courant correspond à un deuxième mode de codage, un résidu de prédiction selon le deuxième mode de codage codé à l'aide d'un deuxième groupe d'éléments de syntaxe, ledit deuxième groupe étant un sous- groupe d'éléments de syntaxe dudit premier groupe d'éléments de syntaxe, ledit résidu de prédiction selon le deuxième mode de codage étant obtenu par:
- pour chaque pixel du bloc courant:
- l'obtention d'une prédiction dudit pixel à partir d'un autre pixel précédemment décodé, ledit autre pixel précédemment décodé appartenant audit bloc courant ou à un bloc de l'image précédemment décodé,
- l'obtention d'un résidu de prédiction associé audit pixel à partir de la prédiction obtenue pour ledit pixel.
Un tel flux de données peut être stocké sur tout support d'enregistrement, par exemple une mémoire, ou transmis sous la forme d'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens.
Selon un mode particulier de réalisation de l'invention, le premier groupe d'éléments de syntaxe comprend des éléments de syntaxe de localisation indiquant la localisation d'un premier coefficient non nul du résidu de prédiction associé audit bloc courant, selon un ordre de parcours déterminé des coefficients dudit résidu de prédiction, et ledit deuxième groupe d'éléments de syntaxe ne comprend pas lesdits éléments de syntaxe de localisation.
Lors du décodage ou du codage du résidu de prédiction du bloc courant selon le premier mode de codage, le résidu de prédiction est parcouru à partir du premier coefficient non nul du résidu de prédiction jusqu'au dernier coefficient du résidu de prédiction selon ledit ordre de parcours déterminé.
Selon le mode particulier de réalisation décrit ici, lors du décodage ou du codage du résidu de prédiction du bloc courant selon le deuxième mode de codage, le résidu de prédiction est alors parcouru à partir du premier coefficient du résidu de prédiction jusqu'au dernier coefficient du résidu de prédiction selon ledit ordre de parcours déterminé. Ce mode particulier de réalisation de l'invention permet de réduire le coût de codage du résidu de prédiction selon le deuxième mode de codage lorsque le premier coefficient non nul correspond au premier coefficient du résidu de prédiction.
Selon un autre mode particulier de réalisation de l'invention, le résidu de prédiction associé au bloc courant comprenant au moins un sous-bloc de coefficients, ledit premier groupe d'éléments de syntaxe comprend un élément de syntaxe de sous-bloc associé audit au moins un sous-bloc de coefficients, ledit élément de syntaxe de sous-bloc indiquant si au moins un coefficient du sous-bloc est non nul, et pour chaque sous-bloc de coefficients du résidu de prédiction comprenant au moins un coefficient non nul, un élément de syntaxe de signifiance pour chaque coefficient du sous-bloc, ledit élément de syntaxe de signifiance indiquant si ledit coefficient est nul ou non. Selon cet autre mode particulier de réalisation de l'invention, le deuxième groupe d'éléments de syntaxe comprend un élément de syntaxe de signifiance pour chaque coefficient du résidu de prédiction.
Autrement dit, selon ce mode particulier de réalisation de l'invention, selon le deuxième mode de codage, les coefficients du résidu de prédiction associé au bloc courant ne sont pas regroupés par sous-bloc et l'élément de syntaxe de sous-bloc n'est pas compris dans le deuxième groupe d'éléments de syntaxe.
Selon un autre mode particulier de réalisation de l'invention, le premier groupe d'éléments de syntaxe comprend, pour chaque coefficient non nul du résidu de prédiction parcouru selon un ordre de parcours déterminé:
- un élément de syntaxe indiquant si la valeur absolue du coefficient est égale à 1 ou non,
- pour chaque coefficient pour lequel la valeur absolue du coefficient n'est pas égale à 1 , un élément de syntaxe indiquant si la valeur absolue du coefficient est égale à 2 ou non,
- pour chaque coefficient pour lequel la valeur absolue du coefficient n'est égale ni à 1 , ni à 2, un élément de syntaxe indiquant si la valeur absolue du coefficient diminuée de 3,
- un élément de syntaxe indiquant si le coefficient est positif ou négatif.
Selon cet autre mode particulier de réalisation de l'invention, le deuxième groupe d'éléments de syntaxe comprend pour chaque coefficient non nul du résidu de prédiction parcouru selon un ordre de parcours déterminé, un élément de syntaxe indiquant la valeur absolue du coefficient, et ledit élément de syntaxe indiquant si le coefficient est positif ou négatif.
L'invention concerne également un dispositif de décodage configuré pour mettre en œuvre le procédé de décodage selon l'un quelconque des modes particuliers de réalisation définis ci- dessus. Ce dispositif de décodage pourra bien sûr comporter les différentes caractéristiques relatives au procédé de décodage selon l’invention. Ainsi, les caractéristiques et avantages de ce dispositif de décodage sont les mêmes que ceux du procédé de décodage, et ne sont pas détaillés plus amplement.
Le dispositif de décodage comprend notamment un processeur configuré pour, pour au moins un bloc de l'image, dit bloc courant:
- décoder une information indiquant un mode de codage du bloc courant,
- lorsque le mode de codage du bloc courant correspond à un premier mode de codage, décoder bloc courant via: - le décodage d'un résidu de prédiction associé au bloc courant à l'aide d'un premier groupe d'éléments de syntaxe,
- l'obtention d'une prédiction du bloc courant à partir de pixels reconstruits d'un bloc précédemment décodé,
- la reconstruction dudit bloc courant à partir de la prédiction obtenue et dudit résidu de prédiction décodé.
- lorsque le mode de codage du bloc courant correspond à un deuxième mode de codage, décoder le bloc courant via:
- le décodage du résidu de prédiction associé au bloc courant à l'aide d'un deuxième groupe d'éléments de syntaxe, ledit deuxième groupe étant un sous-groupe d'éléments de syntaxe dudit premier groupe d'éléments de syntaxe,
- la reconstruction dudit bloc courant comprenant:
- pour chaque pixel du bloc courant:
- l'obtention d'une prédiction dudit pixel à partir d'un autre pixel précédemment décodé, ledit autre pixel précédemment décodé appartenant audit bloc courant ou à un bloc de l'image précédemment décodé,
- la reconstruction dudit pixel à partir de la prédiction dudit pixel obtenue et du résidu de prédiction décodé à l'aide du deuxième groupe d'éléments de syntaxe.
Selon un mode particulier de réalisation de l'invention, un tel dispositif de décodage est compris dans un terminal.
L'invention concerne également un dispositif de codage configuré pour mettre en oeuvre le procédé de codage selon l'un quelconque des modes particuliers de réalisation définis ci- dessus. Ce dispositif de codage pourra bien sûr comporter les différentes caractéristiques relatives au procédé de codage selon l’invention. Ainsi, les caractéristiques et avantages de ce dispositif de codage sont les mêmes que ceux du procédé de codage, et ne sont pas détaillés plus amplement.
Le dispositif de codage comprend notamment un processeur configuré pour, pour au moins un bloc de l'image, dit bloc courant:
- coder une information indiquant un mode de codage du bloc courant,
- lorsque le mode de codage du bloc courant correspond à un premier mode de codage, coder le bloc courant via:
- l'obtention d'une prédiction du bloc courant à partir de pixels reconstruits d'un bloc précédemment décodé, - l'obtention d'un résidu de prédiction associé au bloc courant obtenu à partir de la prédiction obtenue,
- le codage dudit résidu de prédiction associé au bloc courant à l'aide d'un premier groupe d'éléments de syntaxe,
- lorsque le mode de codage du bloc courant correspond à un deuxième mode de codage, coder le bloc courant via:
- pour chaque pixel du bloc courant:
- l'obtention d'une prédiction dudit pixel à partir d'un autre pixel précédemment décodé, ledit autre pixel précédemment décodé appartenant audit bloc courant ou à un bloc de l'image précédemment décodé,
- l'obtention d'un résidu de prédiction à partir de la prédiction obtenue pour ledit pixel,
- le codage d'un résidu de prédiction associé au bloc courant comprenant les résidus de prédiction associés aux pixels dudit bloc courant, à l'aide d'un deuxième groupe d'éléments de syntaxe, ledit deuxième groupe étant un sous-groupe d'éléments de syntaxe dudit premier groupe d'éléments de syntaxe.
Selon un mode particulier de réalisation de l'invention, un tel dispositif de codage est compris dans un terminal, ou un serveur.
Le procédé de décodage, respectivement le procédé de codage, selon l'invention peut être mis en oeuvre de diverses manières, notamment sous forme câblée ou sous forme logicielle. Selon un mode particulier de réalisation de l'invention, le procédé de décodage, respectivement le procédé de codage, est mis en oeuvre par un programme d'ordinateur. L'invention concerne également un programme d'ordinateur comportant des instructions pour la mise en oeuvre du procédé de décodage ou du procédé de codage selon l'un quelconque des modes particuliers de réalisation décrits précédemment, lorsque ledit programme est exécuté par un processeur. Un tel programme peut utiliser n’importe quel langage de programmation. Il peut être téléchargé depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur.
Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.
L'invention vise aussi un support d'enregistrement ou support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci- dessus. Les supports d'enregistrement mentionnés ci-avant peuvent être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage tel qu'une mémoire. D'autre part, les supports d'enregistrement peuvent correspondre à un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.
Alternativement, les supports d'enregistrement peuvent correspondre à un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question.
4. Liste des figures
D’autres caractéristiques et avantages de l’invention apparaîtront plus clairement à la lecture de la description suivante d’un mode de réalisation particulier, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels :
- la figure 1 présente des étapes du procédé de codage selon un mode particulier de réalisation de l'invention,
- la figure 2 illustre un exemple de position des blocs voisins d'un bloc courant pour déterminer un mode de prédiction intra selon un mode particulier de réalisation de l'invention,
- la figure 3 illustre un exemple de position des pixels de référence utilisés pour prédire des pixels d'un bloc courant selon un mode particulier de réalisation de l'invention,
- la figure 4 présente des étapes du procédé de décodage selon un mode particulier de réalisation de l'invention,
- la figure 5 illustre un exemple de signal comportant des données codées représentatives d'au moins un bloc d'une image selon un mode particulier de réalisation de l'invention,
- la figure 6 présente la structure simplifiée d’un dispositif de codage adapté pour mettre en œuvre le procédé de codage selon l'un quelconque des modes particuliers de réalisation de l'invention,
- la figure 7 présente la structure simplifiée d’un dispositif de décodage adapté pour mettre en œuvre le procédé de décodage selon l'un quelconque des modes particuliers de réalisation de l'invention,
- la figure 8 illustre le découpage en sous-blocs d'un bloc de coefficients.
5. Description d'un mode de réalisation de l'invention
5.1 Principe général
Le principe général de l'invention est de permettre l'utilisation d'une partie d'un groupe d'éléments de syntaxe utilisés pour coder un résidu de prédiction obtenu à partir d'un mode de codage utilisant une prédiction des pixels à partir d'au moins un bloc précédemment reconstruit, pour coder un résidu de prédiction issu d'une prédiction intra basée pixel, i.e. une prédiction des pixels du bloc à coder à partir de pixels du bloc à coder précédemment reconstruits.
L'invention permet ainsi d'améliorer les performances en compression du mode de codage intra basé pixel et de réduire les coûts de mise en œuvre de ce nouveau mode de codage, notamment en permettant de réutiliser une partie des éléments de syntaxe déjà utilisée par un autre mode de codage.
5. 2 Exemples de mise en œuvre
La figure 1 présente des étapes du procédé de codage selon un mode particulier de réalisation de l'invention. Par exemple, on code une séquence d'images l ; l2, ..., lNb sous la forme d'un flux de données codées STR selon un mode particulier de réalisation de l'invention. Par exemple, un tel procédé de codage est mis en œuvre par un dispositif de codage tel que décrit plus loin en relation avec la figure 6.
Une séquence d'images h , l2, ..., lNb, Nb étant le nombre d'images de la séquence à coder, est fournie en entrée du procédé de codage. Le procédé de codage délivre en sortie un flux de données codées STR représentatif de la séquence d'images fournie en entrée.
De manière connue, le codage de la séquence d'images h , l2, ..., lNb est fait image par image selon un ordre de codage préalablement établi et connu du codeur. Par exemple, les images peuvent être codées dans l'ordre temporel h , l2, ..., lNb ou selon un autre ordre, par exemple I 1 3, I2, , I Nb -
Lors d'une étape E0, une image I, à coder de la séquence d'images ,l2, ..., lNb est découpée en blocs, par exemple en blocs de taille 32x32, ou 64x64 pixels ou plus. Un tel bloc peut être subdivisé en sous-blocs carrés ou rectangulaires, par exemple de taille 16x16, 8x8, 4x4, 16x8, 8x16, ....
Lors d'une étape E1 , un premier bloc ou sous-bloc Xb à coder de l'image I est sélectionné selon un sens de parcours de l'image I prédéterminé. Par exemple, il peut s'agir du premier bloc dans l'ordre lexicographique de parcours de l'image.
Lors d'une étape E2, l’encodeur va choisir le mode de codage pour coder le bloc courant Xb. Selon le mode particulier de réalisation décrit ici, l'encodeur sélectionne le mode de codage pour coder le bloc courant Xb parmi un premier mode de codage M1 et un deuxième mode de codage M2. Des modes de codage supplémentaires (non décrits ici) peuvent être utilisés. Selon le mode particulier de réalisation décrit ici, le premier mode de codage M1 correspond au codage du bloc courant par prédiction intra classique, par exemple tel que défini selon le standard HEVC et le deuxième mode de codage M2 correspond au codage par prédiction In Loop Residual (ILR). Lors de l'étape E2, le codeur peut réaliser une optimisation débit/distorsion pour déterminer le meilleur mode de codage pour coder le bloc courant. Au cours de cette optimisation débit/distorsion, des modes de codage supplémentaires distincts du premier et du deuxième modes de codage peuvent être testés, par exemple un mode de codage en mode inter. Au cours de cette optimisation débit/distorsion, le codeur simule le codage du bloc courant Xb selon les différents modes de codage disponibles afin de déterminer le débit et la distorsion associés à chaque mode de codage et sélectionne le mode de codage offrant le meilleur compromis débit/distorsion, par exemple selon la fonction D+2R, où R représente le débit nécessaire pour coder le bloc courant selon le mode de codage évalué, D la distorsion mesurée entre le bloc décodé et le bloc courant original et l un multiplicateur lagrangien, par exemple entré par l'utilisateur ou défini au codeur.
Lors d'une étape E20, une information indiquant le mode de codage sélectionné pour le bloc courant est codée dans le flux de données STR.
Si le bloc courant Xb est codé selon le premier mode de codage M1 , le procédé passe à l'étape E21 de codage du bloc selon M1 . Si le bloc courant Xb est codé selon le deuxième mode de codage M2, le procédé passe à l'étape E22 de codage du bloc selon M2.
On décrit ci-après l'étape E21 de codage du bloc selon le premier mode de codage M1 , selon un mode particulier de réalisation de l'invention. Selon le mode particulier décrit ici, le premier mode de codage correspond à une prédiction intra classique, telle que celle définie dans le standard HEVC.
Lors d'une étape E210, un pas de quantification ¾ est déterminé. Par exemple, le pas de quantification ¾ peut être fixé par l’utilisateur, ou bien calculé à l’aide d’un paramètre de quantification fixant un compromis entre compression et qualité et entré par l’utilisateur ou défini par le codeur. Ainsi, un tel paramètre de quantification peut être le paramètre L, utilisé dans la fonction de coût débit-distorsion D+ l .R, où D représente la distorsion introduite par le codage et R le débit utilisé pour coder. Cette fonction sert à faire des choix de codage. Classiquement on cherche la façon de coder l'image qui minimise cette fonction.
En variante, le paramètre de quantification peut être le QP, correspondant au paramètre de quantification utilisé classiquement dans les normes AVC ou HEVC. Ainsi, dans la norme HEVC, le pas de quantification ¾ est déterminé par l’équation 51=levelScale[ QP%6 ] « (QP/6)) où levelScale[ k ] = { 40, 45, 51 , 57, 64, 72 } pour k = 0..5. Lors d'une étape E21 1 , une prédiction du bloc courant est déterminée à l'aide d'un mode de prédiction intra classique. Selon cette prédiction intra classique, chaque pixel prédit est calculé uniquement à partir des pixels décodés issus des blocs voisins (pixels de référence) situés au-dessus du bloc courant, et à gauche du bloc courant. La façon dont les pixels sont prédits à partir des pixels de référence dépend d’un mode de prédiction qui est transmis au décodeur, et qui est choisi par le codeur dans un ensemble prédéterminé de modes connus du codeur et du décodeur.
Ainsi, dans HEVC, il y a 35 modes de prédiction possibles : 33 modes qui interpolent les pixels de référence dans 33 directions angulaires différentes, et 2 autres modes: le mode DC dans lequel chaque pixel du bloc prédit est produit à partir de la moyenne des pixels de référence, et le mode PLANAR, qui effectue une interpolation plane et non directionnelle. Cette approche dite « prédiction intra classique » est bien connue et également utilisée dans le standard ITU-T H.264 (où il n’y a que 9 modes différents) ainsi que dans le logiciel expérimental JEM disponible à l’adresse internet ( https ://i vet . h h i .f rau n h of e r . d e/) , où il y a 67 modes de prédiction différents. Dans tous les cas, la prédiction intra classique respecte les deux aspects cités ci-dessus (prédiction des pixels à partir des blocs voisins et transmission au décodeur d'un mode de prédiction optimal).
Au cours de l'étape E21 1 , le codeur choisit donc un des modes de prédiction disponibles dans la liste prédéterminée de modes de prédiction. Une façon de choisir consiste par exemple à évaluer tous les modes de prédiction et à conserver le mode de prédiction qui minimise une fonction de coût telle que, classiquement, le coût débit-distorsion.
Lors d'une étape E212, le mode de prédiction choisi pour le bloc courant est codé à partir des blocs voisins du bloc courant. La figure 2 illustre un exemple de position des blocs voisins Ab et Bb du bloc courant Xb pour coder le mode de prédiction du bloc courant Xb.
Au cours de l'étape E212, le mode de prédiction intra choisi pour le bloc courant est codé en utilisant les modes de prédiction intra associés aux blocs voisins.
Par exemple, l’approche décrite dans la norme HEVC pour coder le mode de prédiction du bloc courant peut être utilisée. Dans l’exemple de la figure 2, une telle approche consiste à identifier le mode de prédiction intra mA associé au bloc Ab situé au-dessus du bloc courant, et le mode de prédiction intra mB associé au bloc Bb situé juste à gauche du bloc courant. En fonction de la valeur de mA et de mB, une liste dite MPM (pour Most Probable Mode), contenant 3 modes de prédiction intra, et une liste dite non-MPM, contenant les 32 autres modes de prédiction, sont créées.
Selon la norme HEVC, afin de coder le mode de prédiction intra du bloc courant, des éléments de syntaxe sont transmis :
-un indicateur binaire indiquant si le mode de prédiction à coder pour le bloc courant est dans la liste MPM ou non,
-si le mode de prédiction du bloc courant appartient à la liste MPM, un index dans la liste MPM correspondant au mode de prédiction du bloc courant est codé,
- si le mode de prédiction du bloc courant n'appartient pas à la liste MPM, un index dans la liste non-MPM correspondant au mode de prédiction du bloc courant est codé. Lors d'une étape E213, le résidu de prédiction R pour le bloc courant est construit.
Au cours de l'étape E213, de manière classique, un bloc prédit P est construit en fonction du mode de prédiction choisi à l'étape E21 1 . Puis le résidu de prédiction R est obtenu en calculant la différence pour chaque pixel, entre le bloc prédit P et le bloc courant original.
Lors d'une étape E214, le résidu de prédiction R est transformé en RT.
Au cours de l'étape E214, une transformée fréquentielle est appliquée au bloc de résidu R de façon à produire le bloc RT comprenant des coefficients transformés. La transformée pourra être une transformée de type DCT par exemple. Il est possible de choisir la transformée à utiliser dans un ensemble prédéterminé de transformées ET et de signaler la transformée utilisée au décodeur.
Lors d'une étape E215, le bloc de résidu transformé RT est quantifié à l'aide par exemple d’une quantification scalaire de pas de quantification
Figure imgf000015_0001
Ceci produit le bloc de résidu de prédiction transformé quantifié RTQ.
Lors d'une étape E216, les coefficients du bloc quantifié RTQ sont codés par un codeur entropique. On peut par exemple utiliser le codage entropique spécifié dans la norme HEVC. Dans ce cas, le codage des coefficients du résidu RTQ fonctionne de la façon suivante.
Un ordre de parcours des coefficients est déterminé. Cet ordre de parcours est le même au codeur et au décodeur. Il est par exemple défini par défaut au sein du codeur et du décodeur. Par exemple, il s'agit d'un parcours du bloc quantifié courant RTQ ligne par ligne et colonne par colonne.
Des éléments de syntaxe sont transmis pour indiquer la localisation du premier coefficient non nul rencontré selon l’ordre de parcours. On appellera ces éléments de syntaxe LastX et LastY (indiquant les coordonnées dudit coefficient dans le bloc courant quantifié courant RTQ) .
Les coefficients sont ensuite parcourus à partir dudit premier coefficient non nul jusqu’au dernier coefficient du bloc quantifié courant RTQ. Les coefficients du bloc quantifié courant RTQ sont groupés en sous-blocs. Par exemple, les coefficients sont groupés en sous-blocs de taille 4x4 contenus dans le bloc quantifié courant RTQ, tel qu'illustré en figure 8 montrant un bloc de résidu de prédiction transformé découpé en sous-blocs de 4x4 coefficients. D'autres tailles de sous-blocs sont bien-entendu possibles.
Pour chaque sous-bloc, un élément de syntaxe coded_sub_block_flag est transmis, indiquant si ce sous-bloc est constitué entièrement de zéros ou non. Autrement dit, cet élément de syntaxe prend la valeur 0 si tous les coefficients du sous-bloc sont nuis et la valeur 1 sinon (au moins un coefficient du sous-groupe est différent de 0).
Pour chaque sous-bloc qui comprend au moins un coefficient non-nul, un élément de syntaxe sig_coeff_flag est transmis pour chaque coefficient (situé après le dernier coefficient du sous-bloc indiqué par LastX et LastY selon l'ordre de parcours déterminé), cet élément de syntaxe indiquant si le coefficient est nul ou pas. Un tel élément de syntaxe n'est pas transmis pour le premier coefficient non nul identifié par LastX et LastY puisque le codeur sait déjà que ce coefficient est non nul.
Pour chaque coefficient non-nul, un élément de syntaxe coeff_abs_level_greater1_flag est transmis, indiquant si le coefficient est égal à 1 ou pas.
Pour chaque coefficient non-nul et non égal à 1 , un élément de syntaxe coeff_abs_level_greater2_flag est transmis, indiquant si le coefficient est égal à 2 ou pas. Pour chaque coefficient non-nul et non égal à 1 et non égal à 2, un élément de syntaxe coeff_abs_level_remaining est transmis, indiquant l’amplitude du coefficient diminuée de 3. Enfin, pour chaque coefficient non nul, un élément de syntaxe coeff_sign_flag est transmis afin d’indiquer si le coefficient est positif ou négatif.
De manière connue, le bloc courant est décodé en dé-quantifiant les coefficients du bloc quantifié RTQ, puis en appliquant la transformée inverse aux coefficients dé-quantifiés pour obtenir le résidu de prédiction décodé. La prédiction est ensuite ajoutée au résidu de prédiction décodé afin de reconstruire le bloc courant et d'obtenir sa version décodée. La version décodée du bloc courant peut ensuite être utilisée ultérieurement pour prédire spatialement d'autres blocs voisins de l'image ou bien pour prédire des blocs d'autres images par prédiction inter-images.
On décrit ci-après l'étape E22 de codage du bloc selon le deuxième mode de codage M2, selon un mode particulier de réalisation de l'invention. Selon le mode particulier décrit ici, le deuxième mode de codage correspond à un codage par prédiction ILR.
Au cours d'une étape E220, un prédicteur local PL pour le bloc courant est déterminé. Selon le mode de codage décrit ici, les pixels du bloc courant sont prédits par des pixels précédemment reconstruits d'un bloc voisin du bloc courant ou du bloc courant lui-même.
De préférence, pour prédire, on choisit des pixels qui sont les plus proches possibles du pixel à prédire. Pour cette raison, on parle de prédicteur local. Le prédicteur local PL peut également être assimilé à un mode de prédiction du bloc courant associé au deuxième mode de codage M2. Selon cette interprétation, dans le mode particulier de réalisation décrit ici, le premier mode de codage utilise un premier groupe de modes de prédiction intra, par exemple les modes de prédiction intra définis par le standard HEVC, et le deuxième mode de codage, ici le mode ILR, utilise un deuxième groupe de modes de prédiction distinct du premier groupe de modes de prédiction intra.
Le prédicteur local PL peut être unique ou il peut être sélectionné dans un ensemble de prédicteurs locaux prédéterminés (deuxième groupe de modes de prédiction). Selon une variante de réalisation, 4 prédicteurs locaux sont définis. Ainsi, si on appelle X un pixel courant à prédire du bloc courant, A le pixel situé immédiatement à gauche de X, B le pixel situé immédiatement à gauche et au-dessus de X, C le pixel situé immédiatement au- dessus de X, tel qu'illustré en figure 3 montrant un bloc courant Xb. 4 prédicteurs locaux PL1 , PL2, PL3, PL4 peuvent être définis comme suit:
PL1 (X) = min(A,B) si C > max(A,B)
max(A,B) si C < min(A,B)
A+B-C sinon
PL2(X) = A
PL3(X) = B
PL4(X) = C
où min(A,B) correspond à la fonction retournant la valeur la plus petite entre la valeur de A et la valeur de B et max(A,B) correspond à la fonction retournant la valeur la plus grande entre la valeur de A et la valeur de B.
Au cours de l'étape E220, on détermine quel prédicteur local PL utiliser pour le bloc courant. Autrement dit, le même prédicteur local sera utilisé pour tous les pixels du bloc courant, i.e. la même fonction de prédiction. Pour cela, plusieurs variantes de réalisation sont possibles. Le codage du bloc courant avec chacun des prédicteurs peut être simulé (de manière similaire à une optimisation pour choisir un mode de codage pour le bloc courant), et le prédicteur local qui optimise une fonction de coût (par exemple, qui minimise la fonction D + A.R, où R est le débit utilisé pour coder le bloc, D est la distorsion du bloc décodé par rapport au bloc original, et l est un paramètre fixé par l’utilisateur) est sélectionné.
Ou bien, afin de limiter la complexité de la sélection d'un prédicteur local pour le bloc courant, une orientation de la texture des pixels précédemment codés est analysée. Par exemple, les pixels précédemment codés dans le bloc qui sont situés au-dessus ou à gauche du bloc courant sont analysés à l’aide d’un opérateur de type Sobel. S'il est déterminé que:
- l'orientation est horizontale, le prédicteur local PL2 est sélectionné,
- l'orientation est verticale, le prédicteur local PL3 est sélectionné,
- l'orientation est diagonale, le prédicteur local PL4 est sélectionné,
- si aucune orientation ne se dégage, le prédicteur local PL1 est sélectionné.
Un élément de syntaxe est codé dans le flux de données STR pour indiquer au décodeur quel prédicteur local a été utilisé pour prédire le bloc courant.
Au cours d'une étape E221 , un pas de quantification d2 est déterminé. Par exemple, le pas de quantification d2 dépend d'un même paramètre de quantification que le pas de quantification ^qui serait déterminé à l'étape E210 si le bloc courant était codé selon le premier mode de codage. Lors d'une étape E222, un résidu de prédiction R1 est calculé pour le bloc courant. Pour cela, une fois le prédicteur local choisi, pour chaque pixel courant du bloc courant:
-le pixel courant X du bloc courant est prédit par le prédicteur local PL sélectionné, à l’aide soit des pixels extérieurs au bloc et déjà reconstruits (et donc disponibles avec leur valeur décodée), soit de pixels précédemment reconstruits dans le bloc courant, soit des deux, afin d’obtenir une valeur prédite PRED. Dans tous les cas, le prédicteur PL utilise des pixels précédemment reconstruits. Sur la figure 3, on voit que les pixels du bloc courant situés sur la première ligne et/ou la première colonne du bloc courant utiliseront comme pixels de référence (pour construire la valeur prédite PRED) des pixels extérieurs au bloc et déjà reconstruits (pixels en gris sur la figure 3) et éventuellement des pixels déjà reconstruits du bloc courant. Pour les autres pixels du bloc courant, les pixels de référence utilisés pour construire la valeur prédite PRED sont situés à l'intérieur du bloc courant ;
-la différence DIFF entre PRED et X est quantifiée en une valeur Q(X), par un quantificateur scalaire de pas de quantification d2 , par Q(X) = ScalarQuant(DIFF) = ScalarQuant(¾ , X- PRED), le quantificateur scalaire étant par exemple un quantificateur scalaire au plus proche voisin tel que: ScalarQuant(A, x) = floor
Figure imgf000018_0001
Q(X) est le résidu quantifié associé à X. Il est calculé dans le domaine spatial, i.e. calculé directement à partir de la différence entre la valeur prédite PRED du pixel X et la valeur originale de X. Un tel résidu quantifié Q(X) pour le pixel X est mémorisé dans un bloc de résidu de prédiction quantifié R1 Q, qui sera codé ultérieurement ;
-la valeur prédite décodée P1 (X) de X est calculée en ajoutant à la valeur prédite PRED la valeur dé-quantifiée du résidu quantifié Q(X). La valeur prédite décodée P1 (X) de X est ainsi obtenue par P1 (X) = PRED + ScalarDequant(¾, Q(X)). Par exemple, la fonction inverse de quantification scalaire au plus proche est donnée par: ScalarDequant(A, x) = D x x.
La valeur prédite décodée P1 (X) permet ainsi de prédire d’éventuels pixels qui restent à traiter dans le bloc courant. Par ailleurs, le bloc P1 comprenant les valeurs décodées/reconstruites des pixels du bloc courant constitue le prédicteur ILR du bloc courant (par opposition au prédicteur intra classique).
Les sous-étapes décrites ci-dessus sont effectuées pour tous les pixels du bloc courant, dans un ordre de parcours qui assure que les pixels utilisés pour la prédiction choisie parmi PL1 ,..., PL4 soient disponibles.
Selon une variante de réalisation, l’ordre de parcours du bloc courant est l’ordre lexicographique, i.e. de gauche à droite, et de haut en bas. Selon une autre variante de réalisation, plusieurs ordres de parcours du bloc courant peuvent être utilisés, par exemple :
-l’ordre lexicographique, ou
-en parcourant la première colonne de haut en bas, puis la colonne juste à sa droite, etc. ou bien,
-en parcourant les diagonales les unes après les autres.
Selon cette autre variante, il est possible de simuler le coût de codage associé à chacun des ordres de parcours et de choisir le meilleur ordre de parcours du bloc courant au sens débit/distorsion, puis de coder pour le bloc courant une information représentative de l’ordre de parcours choisi.
A l’issu de l'étape E222, le bloc de résidu quantifié R1 Q a été déterminé. Ce bloc de résidu quantifié R1 Q doit être codé pour être transmis au décodeur. Le prédicteur P1 du bloc courant a également été déterminé.
Lors d'une étape E223, le bloc de résidu quantifié R1Q est codé afin de le transmettre au décodeur. Il est possible d’utiliser toute approche connue, telle que la méthode décrite dans HEVC pour coder les coefficients quantifiés d'un résidu de prédiction classique.
Selon le mode particulier de réalisation de l'invention décrit ici, les valeurs du bloc de résidu quantifié R1 Q sont codées à l'aide d'un codeur entropique dans le flux de données STR en utilisant au moins une partie des éléments de syntaxe utilisés pour coder un résidu de prédiction issu du mode de codage M1 .
Pour coder le résidu R1 Q, un sous-groupe du groupe d'éléments de syntaxe utilisé pour le résidu RTQ est utilisé.
En effet, la statistique du résidu R1 Q est différente de celle du résidu RTQ Il est donc nécessaire d’adapter le codage entropique du résidu de prédiction R1 Q à cette statistique particulière afin de maximiser la compression. Toutefois, en se limitant à une syntaxe qui est un sous-ensemble de la syntaxe transmise pour un résidu RTQ, il est possible de réutiliser le même composant logiciel ou hardware, ce qui présente un grand intérêt du point de vue du coût d’implémentation.
Selon une variante de réalisation de l'invention, le codage du résidu R1 Q est fait en omettant les éléments de syntaxe LastX et LastY et en parcourant systématiquement tous les coefficients du bloc de résidu de prédiction quantifiés R1 Q.
Dans ce cas, le codage des coefficients du résidu R1Q fonctionne de la façon suivante.
Un ordre de parcours des coefficients est déterminé. Les coefficients sont parcourus à partir du premier coefficient du bloc de résidu quantifié R1 Q jusqu’au dernier coefficient du bloc de résidu quantifié R1 Q. Le reste du codage entropique des coefficients est similaire à celui décrit dans le cas du codage d'un résidu de prédiction transformé issu du mode de codage M1.
Ces coefficients sont groupés par sous-blocs, par exemple des sous-blocs de taille 4x4 contenus dans le bloc de résidu quantifié R1 Q courant. D'autres tailles de sous-blocs sont bien-entendu possibles.
Pour chaque sous-bloc, un élément de syntaxe coded_sub_block_flag est transmis, indiquant si ce sous-bloc est constitué entièrement de zéros ou non. Pour chaque sous-bloc qui contient au moins un coefficient non-nul, un élément de syntaxe sig_coeff_flag est transmis pour chaque coefficient, cet élément de syntaxe indiquant si le coefficient est nul ou pas. Pour chaque coefficient non-nul, un élément de syntaxe coeff_abs_level_greater1_flag est transmis, indiquant si le coefficient est égal à 1 ou pas. Pour chaque coefficient non-nul et non égal à 1 , un élément de syntaxe coeff_abs_level_greater2_flag est transmis, indiquant si le coefficient est égal à 2 ou pas. Pour chaque coefficient non-nul et non égal à 1 et non égal à 2, un élément de syntaxe coeff_abs_level_remaining est transmis, indiquant l’amplitude du coefficient diminuée de 3. Enfin, pour chaque coefficient non nul, un élément de syntaxe coeff_sign_flag est transmis afin d’indiquer si le coefficient est positif ou négatif.
Selon une autre variante du mode particulier de réalisation décrit ici, le codage du résidu quantifié R1 Q est fait en omettant les éléments de syntaxe LastX et LastY et en parcourant systématiquement tous les coefficients du bloc de résidu quantifié R1Q, et en omettant l’élément coded_sub_block_flag. Une valeur de signifiance sig_coeff_flag est donc systématiquement codée pour chaque coefficient du bloc de résidu quantifié R1 Q.
Selon cette variante, le codage des coefficients du résidu R1 Q fonctionne de la façon suivante. Un ordre de parcours des coefficients est déterminé. Les coefficients sont parcourus à partir dudit premier coefficient du bloc de résidu quantifié R1 Q jusqu’au dernier coefficient du bloc de résidu quantifié R1 Q selon l'ordre de parcours déterminé. A cet effet, pour chaque coefficient, un élément de syntaxe sig_coeff_flag est transmis, cet élément de syntaxe indiquant si le coefficient est nul ou pas. Pour chaque coefficient non-nul, un élément de syntaxe coeff_abs_level_greater1_flag est transmis, indiquant si le coefficient est égal à 1 ou pas. Pour chaque coefficient non-nul et non égal à 1 , un élément de syntaxe coeff_abs_level_greater2_flag est transmis, indiquant si le coefficient est égal à 2 ou pas. Pour chaque coefficient non-nul et non égal à 1 et non égal à 2, un élément de syntaxe coeff_abs_level_remaining est transmis, indiquant l’amplitude du coefficient diminuée de 3. Enfin, pour chaque coefficient non nul, un élément de syntaxe coeff_sign_flag est transmis afin d’indiquer si le coefficient est positif ou négatif. Selon une autre variante de réalisation, le codage du résidu R1 Q est réalisé uniquement à l’aide des éléments de syntaxe coeff_abs_level_remaining et coeff_sign_flag. Selon cette variante, tous les coefficients du bloc son systématiquement parcourus et la valeur de chaque coefficient est codée. Le codage des coefficients du résidu R1 Q fonctionne de la façon suivante. Un ordre de parcours des coefficients est déterminé. Les coefficients sont parcourus à partir du premier coefficient du bloc de résidu quantifié R1 Q jusqu’au dernier coefficient du bloc de résidu quantifié R1 Q.
A cet effet, pour chaque coefficient du bloc de résidu quantifié R1 Q, un élément de syntaxe coeff_abs_level_remaining est transmis, indiquant l’amplitude du coefficient, et pour chaque coefficient non nul, un élément de syntaxe coeff_sign_flag est transmis afin d’indiquer si le coefficient est positif ou négatif.
Il apparaît que selon toutes les variantes de réalisation décrites ci-dessus, le codage du résidu de prédiction R1Q est réalisé à patir d'un groupe d'éléments de syntaxe qui est un sous-ensemble strict (c’est-à-dire non égal) et non vide des éléments de syntaxe utilisés pour le résidu « classique » RTQ.
Selon un mode particulier de réalisation de l'invention, il est possible de déterminer et coder un résidu de prédiction additionnel R2 à partir du prédicteur ILR obtenu pour le bloc courant. Le codage d'un résidu de prédiction additionnel R2 est toutefois optionnel. Il est possible en effet de simplement coder le bloc courant par sa version prédite P1 et le résidu quantifié R1q.
Afin de coder un résidu de prédiction additionnel R2 pour le bloc courant, les étapes suivantes sont mises en oeuvre.
Lors d'une étape E224, la différence R2 entre le prédicteur P1 et le bloc courant original Xb est calculée afin de constituer un résidu additionnel R2 : R2= Xb-P1. Les étapes suivantes correspondent aux étapes classiques de codage de ce résidu R2.
Lors d'une étape E225, le résidu R2 est transformé à l'aide d'une transformée fréquentielle de façon à produire le bloc de coefficients R2T.
La transformée peut être une transformée de type DCT par exemple. Il est possible de choisir la transformée à utiliser dans un ensemble prédéterminé de transformées ET2 et de signaler la transformée utilisée au décodeur. Dans ce cas, l’ensemble ET2 peut être différent de l’ensemble ET, afin de s’adapter aux statistiques particulières du résidu R2.
Lors d'une étape E226, le bloc de coefficients R2T est quantifié, par exemple à l’aide d’une quantification scalaire de pas de quantification d. Ceci produit le bloc R2TQ.
Le pas de quantification d peut être fixé par l’utilisateur, il peut également être calculé à l’aide d’un autre paramètre l fixant le compromis entre compression et qualité et entré par l’utilisateur ou le codeur. Par exemple, le pas de quantification d peut correspondre au pas de quantification ¾ ou être déterminé de manière similaire à celui-ci.
Lors d'une étape E227, les coefficients du bloc quantifié R2TQ sont alors transmis de façon codée. On peut par exemple utiliser le codage spécifié dans la norme HEVC.
De manière connue, le bloc courant est décodé en dé-quantifiant les coefficients du bloc quantifié R2TQ, puis en appliquant la transformée inverse aux coefficients dé-quantifiés pour obtenir le résidu de prédiction décodé. La prédiction P1 est ensuite ajoutée au résidu de prédiction décodé afin de reconstruire le bloc courant et d'obtenir sa version décodée Xrec. La version décodée Xrec du bloc courant peut ensuite être utilisée ultérieurement pour prédire spatialement d'autres blocs voisins de l'image ou bien pour prédire des blocs d'autres images par prédiction inter-images.
Lors d'une étape E23, il est vérifié si le bloc courant est le dernier bloc de l'image à traiter par le procédé de codage, compte tenu de l’ordre de parcours défini précédemment. Si oui, le procédé passe au codage (étape E25) de l'image suivante de la vidéo le cas échéant. Si non, lors d'une étape E24, le bloc suivant de l'image à traiter est sélectionné selon le parcours de l'image défini précédemment et le procédé de codage passe à l'étape E2, où le bloc sélectionné devient le bloc courant à traiter.
La figure 4 présente des étapes du procédé de décodage d'un flux STR de données codées représentatif d'une séquence d'images l ; l2, ..., lNb à décoder selon un mode particulier de réalisation de l'invention.
Par exemple, le flux de données STR a été généré via le procédé de codage présenté en relation avec la figure 1 . Le flux de données STR est fourni en entrée d'un dispositif de décodage DEC, tel que décrit en relation avec la figure 7.
Le procédé de décodage procède au décodage du flux image par image et chaque image est décodée bloc par bloc.
Lors d'une étape E40, une image I, à décoder est subdivisée en blocs. Chaque bloc va subir une opération de décodage consistant en une suite d'étapes qui sont détaillées par la suite. Les blocs peuvent être de même taille ou de tailles différentes.
Lors d'une étape E41 , un premier bloc ou sous-bloc Xb à décoder de l'image I, est sélectionné comme bloc courant selon un sens de parcours de l'image I, qui est prédéterminé. Par exemple, il peut s'agir du premier bloc dans l'ordre lexicographique de parcours de l'image.
Lors d'une étape E42, une information indiquant un mode codage pour le bloc courant est lue à partir du flux de données STR. Selon le mode particulier de réalisation décrit ici, cette information indique si le bloc courant est codé selon un premier mode de codage M1 ou selon un deuxième mode de codage M2. Selon le mode particulier de réalisation décrit ici, le premier mode de codage M1 correspond au codage du bloc courant par prédiction intra classique, par exemple tel que défini selon le standard HEVC, et le deuxième mode de codage M2 correspond au codage par prédiction In Loop Residual (ILR).
Dans d'autres modes particuliers de réalisation, l'information lue à partir du flux STR peut également indiquer l'utilisation d'autres modes de codage pour coder le bloc courant (non décrits ici).
On décrit ci-après l'étape E43 de décodage du bloc courant lorsque le bloc courant est codé selon le premier mode de codage M1 .
Lors d'une étape E430, un pas de quantification ¾ est déterminé. Par exemple, le pas de quantification ¾ est déterminé à partir du paramètre de quantification QP lu dans le flux de données STR ou de manière similaire à ce qui a été fait au codeur. Par exemple, le pas de quantification ¾ peut être calculé à l’aide du paramètre de quantification QP lu dans le flux de données STR. Par exemple, le paramètre de quantification QP peut être le paramètre de quantification utilisé classiquement dans les normes AVC ou HEVC. Ainsi, dans la norme HEVC, le pas de quantification ¾ est déterminé par l’équation 51=levelScale[ QP%6 ] « (QP/6)) où levelScale[ k ] = { 40, 45, 51 , 57, 64, 72 } pour k = 0..5.
Lors d'une étape E431 , le mode de prédiction utilisé pour coder le bloc courant est décodé à partir des blocs voisins. Pour cela, comme ce qui a été fait au codeur, le mode de prédiction intra choisi pour le bloc courant est décodé, en utilisant les modes de prédiction intra associés aux blocs voisins du bloc courant.
La construction des deux listes MPM et non-MPM est strictement similaire à ce qui a été fait lors du codage. Selon le standard HEVC, des éléments de syntaxe du type suivant sont décodés :
-un indicateur binaire indiquant si le mode de prédiction à coder pour le bloc courant est dans la liste MPM ou non,
-si le mode de prédiction du bloc courant appartient à la liste MPM, un index dans la liste MPM correspondant au mode de prédiction du bloc courant codé,
- si le mode de prédiction du bloc courant n'appartient pas à la liste MPM, un index dans la liste non-MPM correspondant au mode de prédiction du bloc courant codé.
L'indicateur binaire et l'index du mode de prédiction sont donc lus pour le bloc courant à partir du flux de données STR, pour décoder le mode de prédiction intra du bloc courant.
Lors d'une étape E432, le décodeur construit un bloc prédit P pour le bloc courant à partir du mode de prédiction décodé. Lors d'une étape E433, le décodeur décode les coefficients du bloc quantifié RTQ à partir du flux de données STR, par exemple en utilisant le décodage spécifié dans la norme HEVC. Dans ce cas, le décodage des coefficients du résidu RTQ fonctionne de la façon suivante. Un ordre de parcours des coefficients est déterminé correspondant à l'ordre de parcours utilisé au codeur. Des éléments de syntaxe LastX et LastY indiquant les coordonnées du premier coefficient non nul dans le bloc de résidu RTQ selon l'ordre de parcours déterminé, sont décodés. Les coefficients sont parcourus à partir du premier coefficient non nul jusqu’au dernier coefficient du bloc. A cet effet, ces coefficients sont groupés en sous-blocs de taille 4x4 contenus dans le bloc de résidu quantifié courant RTQ. Pour chaque sous-bloc, un élément de syntaxe coded_sub_block_flag est décodé, indiquant si ce sous-bloc est constitué entièrement de zéros ou non. Pour chaque sous-bloc qui contient au moins un coefficient non-nul, un élément de syntaxe sig_coeff_flag est décodé pour chaque coefficient (situé après le dernier coefficient du bloc indiqué par LastX et LastY), cet élément de syntaxe indiquant si le coefficient est nul ou pas. Pour chaque coefficient non-nul, un élément de syntaxe coeff_abs_level_greater1_flag est décodé, indiquant si le coefficient est égal à 1 ou pas. Pour chaque coefficient non-nul et non égal à 1 , un élément de syntaxe coeff_abs_level_greater2_flag est décodé, indiquant si le coefficient est égal à 2 ou pas. Pour chaque coefficient non-nul et non égal à 1 et non égal à 2, un élément de syntaxe coeff_abs_level_remaining est décodé, indiquant l’amplitude du coefficient diminuée de 3. Enfin, pour chaque coefficient non nul, un élément de syntaxe coeff_sign_flag est décodé afin d’indiquer si le coefficient est positif ou négatif.
Lors d'une étape E434, le bloc décodé RTQ est dé-quantifié, par exemple à l’aide d’une dé quantification scalaire de pas de quantification
Figure imgf000024_0001
Ceci produit le bloc de coefficients dé quantifiés RTQD-
Lors d'une étape E435, une transformée fréquentielle inverse est appliquée au bloc de coefficients dé-quantifiés RTQD de façon à produire le bloc de résidu de prédiction décodé RTQDI. La transformée pourra être une transformée de type DCT inverse par exemple. Il est possible de choisir la transformée à utiliser dans un ensemble prédéterminé de transformées En en décodant un indicateur à partir du flux de données STR.
Lors d'une étape E436, le bloc courant est reconstruit à partir du bloc prédit P obtenu à l'étape E432 et le bloc de résidu décodé RTQDI obtenu à l'étape E435, afin de produire le bloc courant décodé Xrec, par Xrec= P + RTQDI-
On décrit ci-après l'étape E44 de décodage du bloc courant lorsque le bloc courant est codé selon le deuxième mode de codage M2. Lors d'une étape E440, le prédicteur local PL utilisé pour prédire les pixels du bloc courant est déterminé. Dans le cas où un seul prédicteur est disponible, le prédicteur local est par exemple défini par défaut au niveau du décodeur et aucun élément de syntaxe n’a besoin d’être lu dans le flux STR pour le déterminer.
Dans le cas où plusieurs prédicteurs locaux sont disponibles, par exemple les prédicteurs PL1 -PL4 décrits plus haut, un élément de syntaxe est décodé du flux de données STR pour identifier quel prédicteur local a été utilisé pour prédire le bloc courant. Le prédicteur local est donc déterminé à partir de cet élément de syntaxe décodé.
Lors d'une étape E441 , le pas de quantification d2 est déterminé, de manière similaire à ce qui a été fait au codeur.
Lors d'une étape E442, le résidu quantifié R1 Q est décodé à partir du flux de données STR. Selon le mode particulier de réalisation de l'invention décrit ici, les valeurs du bloc de résidu quantifié R1 Q sont décodées à partir du flux de données STR en utilisant au moins une partie des éléments de syntaxe utilisés pour décoder un résidu de prédiction issu du mode de codage M1 . Pour décoder le résidu R1 Q, un sous-groupe du groupe d'éléments de syntaxe utilisé pour le résidu RTQ est utilisé.
Selon une variante de réalisation, le décodage du résidu R1 Q est fait en omettant les éléments de syntaxe LastX et LastY et en parcourant systématiquement tous les coefficients du bloc de résidu quantifié R1 Q. Dans ce cas, le décodage des coefficients du résidu R1 Q fonctionne de la façon suivante. Un ordre de parcours des coefficients est déterminé, correspondant à l'ordre de parcours déterminé au codeur. Les coefficients sont parcourus à partir du premier coefficient du bloc de résidu quantifié R1 Q jusqu’au dernier coefficient du bloc de résidu quantifié R1 Q. A cet effet, ces coefficients sont groupés en sous- blocs de taille 4x4 contenus dans le bloc de résidu quantifié R1 Q. Pour chaque sous-bloc, un élément de syntaxe coded_sub_block_flag est décodé, indiquant si ce sous-bloc est constitué entièrement de zéros ou non. Pour chaque sous-bloc qui contient au moins un coefficient non-nul, un élément de syntaxe sig_coeff_flag est décodé pour chaque coefficient, cet élément de syntaxe indiquant si le coefficient est nul ou pas. Pour chaque coefficient non-nul, un élément de syntaxe coeff_abs_level_greater1_flag est décodé, indiquant si le coefficient est égal à 1 ou pas. Pour chaque coefficient non-nul et non égal à
1 , un élément de syntaxe coeff_abs_level_greater2_flag est décodé, indiquant si le coefficient est égal à 2 ou pas. Pour chaque coefficient non-nul et non égal à 1 et non égal à
2, un élément de syntaxe coeff_abs_level_remaining est décodé, indiquant l’amplitude du coefficient diminuée de 3.
Enfin, pour chaque coefficient non nul, un élément de syntaxe coeff_sign_flag est décodé afin d’indiquer si le coefficient est positif ou négatif. Selon une variante de réalisation, le décodage du résidu R1 Q est fait en omettant les éléments de syntaxe LastX et LastY et en parcourant systématiquement tous les coefficients du bloc de résidu quantifié R1 Q, et en omettant l’élément de syntaxe coded_sub_block_flag et donc en décodant systématiquement une valeur pour chaque coefficient du bloc.
Dans ce cas, le décodage des coefficients du résidu RTQ fonctionne de la façon suivante. Un ordre de parcours des coefficients est déterminé. Les coefficients sont parcourus à partir du premier coefficient du bloc de résidu quantifié R1 Q jusqu’au dernier coefficient du bloc de résidu quantifié R1 Q. Pour chaque coefficient, un élément de syntaxe sig_coeff_flag est décodé, cet élément de syntaxe indiquant si le coefficient est nul ou pas. Pour chaque coefficient non-nul, un élément de syntaxe coeff_abs_level_greater1_flag est décodé, indiquant si le coefficient est égal à 1 ou pas. Pour chaque coefficient non-nul et non égal à
1 , un élément de syntaxe coeff_abs_level_greater2_flag est décodé, indiquant si le coefficient est égal à 2 ou pas. Pour chaque coefficient non-nul et non égal à 1 et non égal à
2, un élément de syntaxe coeff_abs_level_remaining est décodé, indiquant l’amplitude du coefficient diminuée de 3. Enfin, pour chaque coefficient non nul, un élément de syntaxe coeff_sign_flag est décodé afin d’indiquer si le coefficient est positif ou négatif.
Selon une autre variante de réalisation, le décodage du résidu R1 Q est fait uniquement à l’aide des éléments de syntaxe coeff_abs_level_remaining et coeff_sign_flag. Dans ce cas, le décodage des coefficients du résidu R1 Q fonctionne de la façon suivante. Un ordre de parcours des coefficients est déterminé. Les coefficients sont parcourus à partir du premier coefficient du bloc de résidu quantifié R1 Q jusqu’au dernier coefficient du bloc de résidu quantifié R1 Q. A cet effet, pour chaque coefficient un élément de syntaxe coeff_abs_level_remaining est décodé, indiquant l’amplitude du coefficient et pour chaque coefficient non nul, un élément de syntaxe coeff_sign_flag est décodé afin d’indiquer si le coefficient est positif ou négatif.
Lors d'une étape E443, le bloc de résidu quantifié R1Q est dé-quantifié à l’aide du pas de quantification d2, de façon à produire le bloc de résidu dé-quantifié R1 QD.
Lors d'une étape E444, lorsque le bloc de résidu dé-quantifié R1 QD est obtenu, le bloc prédit P1 est construit à l'aide du prédicteur local PL déterminé lors de l'étape E440.
Au cours de l'étape E444, chaque pixel du bloc courant est prédit et reconstruit de la manière suivante:
-le pixel courant X du bloc courant est prédit par le prédicteur PL sélectionné, à l’aide soit des pixels extérieurs au bloc et déjà décodés, soit de pixels précédemment reconstruits du bloc courant, soit des deux, afin d’obtenir une valeur prédite PRED. Dans tous les cas, le prédicteur PL utilise des pixels précédemment décodés ;
-la valeur prédite décodée P1 (X) du pixel courant X est calculée en ajoutant à la valeur prédite PRED, la valeur dé-quantifiée du résidu de prédiction R1 QD, tel que P1 (X) = PRED + R1 QD(X).
Ces étapes sont mises en œuvre pour tous les pixels du bloc courant, dans un ordre de parcours qui assure que les pixels utilisés pour la prédiction choisie parmi PL1 , ... ,PL4 soient disponibles.
Par exemple, l’ordre de parcours est l’ordre lexicographique (de gauche à droite, puis les lignes de haut en bas).
Selon un mode particulier de réalisation de l'invention, le bloc prédit P1 comprenant les valeurs prédites décodées P1 (X) de chaque pixel du bloc courant constitue ici le bloc courant décodé Xrec.
Selon un autre mode particulier de réalisation de l'invention, on considère ici qu'un résidu de prédiction additionnel a été codé pour le bloc courant. Il est donc nécessaire de décoder ce résidu de prédiction additionnel afin de reconstruire la version décodée du bloc courant Xrec. Par exemple, cet autre mode particulier de réalisation peut être activé ou non par défaut au niveau du codeur et du décodeur. Ou bien, un indicateur peut être codé dans le flux de données avec les informations de niveau bloc pour indiquer pour chaque bloc codé selon le mode de codage ILR si un résidu de prédiction additionnel est codé. Ou bien encore un indicateur peut être codé dans le flux de données avec les informations de niveau image ou séquence d'images pour indiquer pour tous les blocs de l'image ou de la séquence d'images codés selon le mode de codage ILR si un résidu de prédiction additionnel est codé.
Lorsqu'un résidu de prédiction additionnel est codé pour le bloc courant, lors d'une étape E445, les coefficients du résidu de prédiction quantifié R2TQ sont décodés du flux de données STR, à l'aide de moyens adaptés à ceux mis en œuvre au codeur, par exemple les moyens mis en œuvre dans un décodeur HEVC.
Lors d'une étape E446, le bloc de coefficients quantifiés R2TQ est dé-quantifié, par exemple à l’aide d’une dé-quantification scalaire de pas de quantification
Figure imgf000027_0001
Ceci produit le bloc de coefficients dé-quantifiés R2TQD.
Lors d'une étape E447, une transformée fréquentielle inverse est appliquée au bloc R2TQD de façon à produire le bloc de résidu de prédiction décodé R2TQD|.
La transformée inverse pourra être une transformée de type DCT inverse par exemple.
Il est possible de choisir la transformée à utiliser dans un ensemble prédéterminé de transformées ET2 et de décoder l’information signalant la transformée à utiliser au décodeur. Dans ce cas, l’ensemble ET2 est différent de l’ensemble ET, afin de s’adapter aux statistiques particulières du résidu R2.
Lors d'une étape E448, le bloc courant est reconstruit en ajoutant le bloc prédit P1 obtenu lors de l'étape E444 au résidu de prédiction décodé R2TQDL
Lors d'une étape E45, il est vérifié si le bloc courant est le dernier bloc de l'image à traiter par le procédé de décodage, compte tenu de l’ordre de parcours défini précédemment. Si oui, le procédé passe au décodage (étape E47) de l'image suivante de la vidéo le cas échéant. Si non, lors d'une étape E46, le bloc suivant de l'image à traiter est sélectionné selon le parcours de l'image défini précédemment et le procédé de décodage passe à l'étape E42, le bloc sélectionné devenant le bloc courant à traiter.
La figure 5 illustre un exemple de signal STR comportant des données codées représentatives d'au moins un bloc d'une image selon un mode particulier de réalisation de l'invention.
Le signal STR comprend un indicateur codé TY indiquant pour un bloc d'une image, un mode de codage pour ce bloc. Lorsque l'indicateur TY indique que le bloc est codé selon le deuxième mode de codage, ici le mode ILR, le signal comprend alors des valeurs de résidus de prédiction quantifiés R1 Q codées à l'aide d'un groupe d'éléments de syntaxe qui est un sous-groupe du groupe d'éléments de syntaxe utilisé pour coder des valeurs de résidus de prédiction issus du premier mode de codage. Un tel sous-groupe comprend des éléments de syntaxe tels que décrits en relation avec la figure 1 ou 4 lorsque le bloc courant est codé selon le deuxième mode de codage.
Le signal comprend éventuellement des valeurs codées de résidus de prédiction transformés quantifiés R2TQ. Lorsque plusieurs prédicteurs locaux sont possibles pour le bloc courant, le signal comprend également un indicateur codé de prédicteur local PL.
Lorsque l'indicateur TY indique que le bloc est codé selon le premier mode de codage, ici le mode de prédiction intra classique, le signal comprend alors des valeurs de résidus de prédiction transformés quantifiés RTQ codées à l'aide d'un groupe d'éléments de syntaxe tel que décrit en relation avec les figures 1 ou 4 lorsque le bloc courant est codé selon le premier mode de codage, un indicateur binaire ÎMPM indiquant si le mode de prédiction à coder pour le bloc courant est dans la liste MPM ou non, et un index idxMpM indiquant l'index du mode de prédiction du bloc courant dans la liste correspondante.
La figure 6 présente la structure simplifiée d’un dispositif de codage COD adapté pour mettre en œuvre le procédé de codage selon l'un quelconque des modes particuliers de réalisation de l'invention. Selon un mode particulier de réalisation de l'invention, les étapes du procédé de codage sont mises en oeuvre par des instructions de programme d'ordinateur. Pour cela, le dispositif de codage COD a l'architecture classique d'un ordinateur et comprend notamment une mémoire MEM, une unité de traitement UT, équipée par exemple d'un processeur PROC, et pilotée par le programme d'ordinateur PG stocké en mémoire MEM. Le programme d'ordinateur PG comprend des instructions pour mettre en oeuvre les étapes du procédé de codage tel que décrit ci-dessus, lorsque le programme est exécuté par le processeur PROC.
A l'initialisation, les instructions de code du programme d'ordinateur PG sont par exemple chargées dans une mémoire RAM (non représentée) avant d'être exécutées par le processeur PROC. Le processeur PROC de l'unité de traitement UT met notamment en oeuvre les étapes du procédé de codage décrit ci-dessus, selon les instructions du programme d'ordinateur PG.
La figure 7 présente la structure simplifiée d’un dispositif de décodage DEC adapté pour mettre en oeuvre le procédé de décodage selon l'un quelconque des modes particuliers de réalisation de l'invention.
Selon un mode particulier de réalisation de l'invention, le dispositif de décodage DEC a l'architecture classique d'un ordinateur et comprend notamment une mémoire MEMO, une unité de traitement UTO, équipée par exemple d'un processeur PROCO, et pilotée par le programme d'ordinateur PGO stocké en mémoire MEMO. Le programme d'ordinateur PGO comprend des instructions pour mettre en oeuvre les étapes du procédé de décodage tel que décrit ci-dessus, lorsque le programme est exécuté par le processeur PROCO.
A l'initialisation, les instructions de code du programme d'ordinateur PGO sont par exemple chargées dans une mémoire RAM (non représentée) avant d'être exécutées par le processeur PROCO. Le processeur PROCO de l'unité de traitement UTO met notamment en oeuvre les étapes du procédé de décodage décrit ci-dessus, selon les instructions du programme d'ordinateur PGO.

Claims

Revendications
1. Procédé de décodage d'un flux de données codées représentatif d'au moins une image, ladite image étant découpée en blocs, le procédé de décodage comprend, pour au moins un bloc de l'image, dit bloc courant:
- le décodage (E42) d'une information indiquant un mode de codage du bloc courant,
- lorsque le mode de codage du bloc courant correspond à un premier mode de codage, le décodage (E43) du bloc courant comprenant:
- le décodage (E433) d'un résidu de prédiction associé au bloc courant à l'aide d'un premier groupe d'éléments de syntaxe,
- l'obtention (E432) d'une prédiction du bloc courant à partir de pixels reconstruits d'un bloc précédemment décodé,
- la reconstruction (E436) dudit bloc courant à partir de la prédiction obtenue et dudit résidu de prédiction décodé.
- lorsque le mode de codage du bloc courant correspond à un deuxième mode de codage, le décodage (E44) du bloc courant comprenant:
- le décodage (E442) du résidu de prédiction associé au bloc courant à l'aide d'un deuxième groupe d'éléments de syntaxe, ledit deuxième groupe étant un sous-groupe d'éléments de syntaxe dudit premier groupe d'éléments de syntaxe,
- la reconstruction (E444) dudit bloc courant comprenant:
- pour chaque pixel du bloc courant:
- l'obtention d'une prédiction dudit pixel à partir d'un autre pixel précédemment décodé, ledit autre pixel précédemment décodé appartenant audit bloc courant ou à un bloc de l'image précédemment décodé,
- la reconstruction dudit pixel à partir de la prédiction dudit pixel obtenue et du résidu de prédiction décodé à l'aide du deuxième groupe d'éléments de syntaxe.
2. Procédé de codage d'un flux de données représentatif d'au moins une image, ladite image étant découpée en blocs, le procédé de codage comprend, pour au moins un bloc de l'image, dit bloc courant:
- le codage (E20) d'une information indiquant un mode de codage du bloc courant,
- lorsque le mode de codage du bloc courant correspond à un premier mode de codage, le codage (E21 ) du bloc courant comprenant:
- l'obtention (E213) d'une prédiction du bloc courant à partir de pixels reconstruits d'un bloc précédemment décodé, - l'obtention (E213) d'un résidu de prédiction associé au bloc courant obtenu à partir de la prédiction obtenue,
- le codage (E216) dudit résidu de prédiction associé au bloc courant à l'aide d'un premier groupe d'éléments de syntaxe,
- lorsque le mode de codage du bloc courant correspond à un deuxième mode de codage, le codage (E22) du bloc courant comprenant:
- pour chaque pixel du bloc courant:
- l'obtention (E222) d'une prédiction dudit pixel à partir d'un autre pixel précédemment décodé, ledit autre pixel précédemment décodé appartenant audit bloc courant ou à un bloc de l'image précédemment décodé,
- l'obtention (E222) d'un résidu de prédiction à partir de la prédiction obtenue pour ledit pixel,
- le codage (E223) d'un résidu de prédiction associé au bloc courant comprenant les résidus de prédiction associés aux pixels dudit bloc courant, à l'aide d'un deuxième groupe d'éléments de syntaxe, ledit deuxième groupe étant un sous-groupe d'éléments de syntaxe dudit premier groupe d'éléments de syntaxe.
3. Procédé selon l'une quelconque des revendications 1 ou 2, dans lequel :
- ledit premier groupe d'éléments de syntaxe comprend des éléments de syntaxe de localisation indiquant la localisation d'un premier coefficient non nul du résidu de prédiction associé audit bloc courant, selon un ordre de parcours déterminé des coefficients dudit résidu de prédiction,
- et ledit deuxième groupe d'éléments de syntaxe ne comprend pas lesdits éléments de syntaxe de localisation.
4. Procédé selon l'une quelconque des revendications 1 -3, dans lequel:
- ledit résidu de prédiction associé au bloc courant comprenant au moins un sous-bloc de coefficients, ledit premier groupe d'éléments de syntaxe comprend:
- un élément de syntaxe de sous-bloc associé audit au moins un sous-bloc de coefficients, ledit élément de syntaxe de sous-bloc indiquant si au moins un coefficient du sous-bloc est non nul, et
- pour chaque sous-bloc de coefficients du résidu de prédiction comprenant au moins un coefficient non nul, un élément de syntaxe de signifiance pour chaque coefficient du sous-bloc, ledit élément de syntaxe de signifiance indiquant si ledit coefficient est nul ou non, et - ledit deuxième groupe d'éléments de syntaxe comprend un élément de syntaxe de signifiance pour chaque coefficient du résidu de prédiction.
5. Procédé selon l'une quelconque des revendications 1 -4, dans lequel:
- ledit premier groupe d'éléments de syntaxe comprend, pour chaque coefficient non nul du résidu de prédiction parcouru selon un ordre de parcours déterminé:
- un élément de syntaxe indiquant si la valeur absolue du coefficient est égale à 1 ou non,
- pour chaque coefficient pour lequel la valeur absolue du coefficient n'est pas égale à 1 , un élément de syntaxe indiquant si la valeur absolue du coefficient est égale à 2 ou non,
- pour chaque coefficient pour lequel la valeur absolue du coefficient n'est égale ni à 1 , ni à 2, un élément de syntaxe indiquant la valeur absolue du coefficient diminuée de 3,
- un élément de syntaxe indiquant si le coefficient est positif ou négatif, et
- ledit deuxième groupe d'éléments de syntaxe comprend pour chaque coefficient non nul du résidu de prédiction parcouru selon un ordre de parcours déterminé:
- un élément de syntaxe indiquant la valeur absolue du coefficient,
- ledit élément de syntaxe indiquant si le coefficient est positif ou négatif.
6. Dispositif de décodage d'un flux de données codées représentatif d'au moins une image, ladite image étant découpée en blocs, le dispositif de décodage comprend un processeur (PROCO) configuré pour, pour au moins un bloc de l'image, dit bloc courant:
- décoder une information indiquant un mode de codage du bloc courant,
- lorsque le mode de codage du bloc courant correspond à un premier mode de codage, décoder bloc courant via:
- le décodage d'un résidu de prédiction associé au bloc courant à l'aide d'un premier groupe d'éléments de syntaxe,
- l'obtention d'une prédiction du bloc courant à partir de pixels reconstruits d'un bloc précédemment décodé,
- la reconstruction dudit bloc courant à partir de la prédiction obtenue et dudit résidu de prédiction décodé.
- lorsque le mode de codage du bloc courant correspond à un deuxième mode de codage, décoder le bloc courant via:
- le décodage du résidu de prédiction associé au bloc courant à l'aide d'un deuxième groupe d'éléments de syntaxe, ledit deuxième groupe étant un sous-groupe d'éléments de syntaxe dudit premier groupe d'éléments de syntaxe,
- la reconstruction dudit bloc courant comprenant:
- pour chaque pixel du bloc courant: - l'obtention d'une prédiction dudit pixel à partir d'un autre pixel précédemment décodé, ledit autre pixel précédemment décodé appartenant audit bloc courant ou à un bloc de l'image précédemment décodé,
- la reconstruction dudit pixel à partir de la prédiction dudit pixel obtenue et du résidu de prédiction décodé à l'aide du deuxième groupe d'éléments de syntaxe.
7. Dispositif de codage d'un flux de données représentatif d'au moins une image, ladite image étant découpée en blocs, le dispositif de codage comprend un processeur (PROC) configuré pour, pour au moins un bloc de l'image, dit bloc courant:
- coder une information indiquant un mode de codage du bloc courant,
- lorsque le mode de codage du bloc courant correspond à un premier mode de codage, coder le bloc courant via:
- l'obtention d'une prédiction du bloc courant à partir de pixels reconstruits d'un bloc précédemment décodé,
- l'obtention d'un résidu de prédiction associé au bloc courant obtenu à partir de la prédiction obtenue,
- le codage dudit résidu de prédiction associé au bloc courant à l'aide d'un premier groupe d'éléments de syntaxe,
- lorsque le mode de codage du bloc courant correspond à un deuxième mode de codage, coder le bloc courant via:
- pour chaque pixel du bloc courant:
- l'obtention d'une prédiction dudit pixel à partir d'un autre pixel précédemment décodé, ledit autre pixel précédemment décodé appartenant audit bloc courant ou à un bloc de l'image précédemment décodé,
- l'obtention d'un résidu de prédiction à partir de la prédiction obtenue pour ledit pixel,
- le codage d'un résidu de prédiction associé au bloc courant comprenant les résidus de prédiction associés aux pixels dudit bloc courant, à l'aide d'un deuxième groupe d'éléments de syntaxe, ledit deuxième groupe étant un sous-groupe d'éléments de syntaxe dudit premier groupe d'éléments de syntaxe.
8. Flux de données codées représentatif d'au moins une image, ladite image étant découpée en blocs, le flux de données codées comprend, pour au moins un bloc de l'image, dit bloc courant:
- une information indiquant un mode de codage du bloc courant, - lorsque le mode de codage du bloc courant correspond à un premier mode de codage, un résidu de prédiction selon le premier mode de codage codé à l'aide d'un premier groupe d'éléments de syntaxe, le résidu de prédiction selon le premier mode de codage étant obtenu à partir d'une prédiction du bloc courant à partir de pixels reconstruits d'un bloc précédemment décodé,
- lorsque le mode de codage du bloc courant correspond à un deuxième mode de codage, un résidu de prédiction selon le deuxième mode de codage codé à l'aide d'un deuxième groupe d'éléments de syntaxe, ledit deuxième groupe étant un sous- groupe d'éléments de syntaxe dudit premier groupe d'éléments de syntaxe, ledit résidu de prédiction selon le deuxième mode de codage étant obtenu par:
- pour chaque pixel du bloc courant:
- l'obtention d'une prédiction dudit pixel à partir d'un autre pixel précédemment décodé, ledit autre pixel précédemment décodé appartenant audit bloc courant ou à un bloc de l'image précédemment décodé,
- l'obtention d'un résidu de prédiction associé audit pixel à partir de la prédiction obtenue pour ledit pixel.
9. Flux de données selon la revendication 8, dans lequel:
- ledit premier groupe d'éléments de syntaxe comprend des éléments de syntaxe de localisation indiquant la localisation d'un premier coefficient non nul dudit résidu de prédiction associé au bloc courant selon un ordre de parcours du résidu de prédiction déterminé,
- et ledit deuxième groupe d'éléments de syntaxe ne comprend pas lesdits éléments de syntaxe de localisation.
10. Flux de données selon l'une quelconque des revendications 8 ou 9, dans lequel:
- ledit résidu de prédiction comprenant au moins un sous-bloc de coefficients, ledit premier groupe d'éléments de syntaxe comprend:
- un élément de syntaxe de sous-bloc associé audit au moins un sous-bloc de coefficients, ledit élément de syntaxe de sous-bloc indiquant si au moins un coefficient du sous-bloc est non nul, et
- pour chaque sous-bloc de coefficients du résidu de prédiction comprenant au moins un coefficient non nul, un élément de syntaxe de signifiance pour chaque coefficient du sous-bloc, ledit élément de syntaxe de signifiance indiquant si ledit coefficient est nul ou non, et
- ledit deuxième groupe d'éléments de syntaxe comprend un élément de syntaxe de signifiance pour chaque coefficient du résidu de prédiction.
1 1. Flux de données selon l'une quelconque des revendications 8-10, dans lequel:
- ledit premier groupe d'éléments de syntaxe comprend, pour chaque coefficient non nul du résidu de prédiction parcouru selon un ordre de parcours déterminé:
- un élément de syntaxe indiquant si la valeur absolue du coefficient est égale à 1 ou non,
- pour chaque coefficient pour lequel la valeur absolue du coefficient n'est pas égale à 1 , un élément de syntaxe indiquant si la valeur absolue du coefficient est égale à 2 ou non,
- pour chaque coefficient pour lequel la valeur absolue du coefficient n'est égale ni à 1 , ni à 2, un élément de syntaxe indiquant la valeur absolue du coefficient diminuée de 3, - un élément de syntaxe indiquant si le coefficient est positif ou négatif, et
- ledit deuxième groupe d'éléments de syntaxe comprend pour chaque coefficient non nul du résidu de prédiction parcouru selon un ordre de parcours déterminé:
- un élément de syntaxe indiquant la valeur absolue du coefficient,
- ledit élément de syntaxe indiquant si le coefficient est positif ou négatif.
12. Programme d'ordinateur comportant des instructions pour la mise en oeuvre du procédé de décodage selon l’une quelconque des revendications 1 ou 3 à 5 ou du procédé de codage selon l'une quelconque des revendications 2 à 5, lorsque ledit programme est exécuté par un processeur.
13. Support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur selon la revendication 12.
PCT/FR2019/052023 2018-09-21 2019-09-03 Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image WO2020058593A1 (fr)

Priority Applications (6)

Application Number Priority Date Filing Date Title
US17/277,938 US11985355B2 (en) 2018-09-21 2019-09-03 Methods and devices for encoding and decoding a data stream representing at least one image
KR1020217008025A KR20210058848A (ko) 2018-09-21 2019-09-03 적어도 하나의 이미지를 표현하는 데이터 스트림을 인코딩 및 디코딩하기 위한 방법들 및 디바이스들
CN201980062059.4A CN112740692B (zh) 2018-09-21 2019-09-03 用于编码和解码表示至少一个图像的数据流的方法和设备
EP19774169.7A EP3854088A1 (fr) 2018-09-21 2019-09-03 Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image
JP2021515494A JP2022500944A (ja) 2018-09-21 2019-09-03 少なくとも1つの画像を表すデータストリームを符号化および復号するための方法およびデバイス
BR112021003210-0A BR112021003210A2 (pt) 2018-09-21 2019-09-03 métodos e dispositivos para codificar e decodificar uma sequência de dados representando pelo menos uma imagem

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1858572A FR3086486A1 (fr) 2018-09-21 2018-09-21 Procedes et dispositifs de codage et de decodage d'un flux de donnees representatif d'au moins une image.
FR1858572 2018-09-21

Publications (1)

Publication Number Publication Date
WO2020058593A1 true WO2020058593A1 (fr) 2020-03-26

Family

ID=65494290

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2019/052023 WO2020058593A1 (fr) 2018-09-21 2019-09-03 Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image

Country Status (7)

Country Link
EP (1) EP3854088A1 (fr)
JP (1) JP2022500944A (fr)
KR (1) KR20210058848A (fr)
CN (1) CN112740692B (fr)
BR (1) BR112021003210A2 (fr)
FR (1) FR3086486A1 (fr)
WO (1) WO2020058593A1 (fr)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9253508B2 (en) 2011-11-04 2016-02-02 Futurewei Technologies, Inc. Differential pulse code modulation intra prediction for high efficiency video coding

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3012714A1 (fr) * 2013-10-25 2015-05-01 Orange Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants
FR3023112A1 (fr) * 2014-06-27 2016-01-01 Bcom Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes
WO2017041271A1 (fr) * 2015-09-10 2017-03-16 Mediatek Singapore Pte. Ltd. Modélisation de contexte efficace pour le codage d'un bloc de données

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9253508B2 (en) 2011-11-04 2016-02-02 Futurewei Technologies, Inc. Differential pulse code modulation intra prediction for high efficiency video coding

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ABDOLI MOHSEN ET AL: "Intra prediction using in-loop residual coding for the post-HEVC standard", 2017 IEEE 19TH INTERNATIONAL WORKSHOP ON MULTIMEDIA SIGNAL PROCESSING (MMSP), IEEE, 16 October 2017 (2017-10-16), pages 1 - 6, XP033271573, DOI: 10.1109/MMSP.2017.8122241 *
CHEN H ET AL: "Description of SDR, HDR and 360° video coding technology proposal by Huawei, GoPro, HiSilicon, and Samsung "" general application scenario", 10. JVET MEETING; 10-4-2018 - 20-4-2018; SAN DIEGO; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ); URL: HTTP://PHENIX.INT-EVRY.FR/JVET/,, no. JVET-J0025-v4, 14 April 2018 (2018-04-14), XP030151192 *
MATTHIAS WIEN: "High Efficiency Video Coding, Coding Tools and Specification", SIGNAIS AND COMMUNICATION TECHNOLOGY, 2015

Also Published As

Publication number Publication date
KR20210058848A (ko) 2021-05-24
FR3086486A1 (fr) 2020-03-27
BR112021003210A2 (pt) 2021-05-11
JP2022500944A (ja) 2022-01-04
CN112740692B (zh) 2024-04-16
CN112740692A (zh) 2021-04-30
US20220046287A1 (en) 2022-02-10
EP3854088A1 (fr) 2021-07-28

Similar Documents

Publication Publication Date Title
EP2991351B1 (fr) Procédé de décodage d&#39;images
EP3209021B1 (fr) Support d&#39;enregistrement mémorisant un flux de données d&#39;images codées
EP3061246B1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
EP3075155B1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
WO2020058594A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
EP3180914A1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
WO2020002796A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
EP3941045A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
EP3854088A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
WO2020002795A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
EP3854085A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
EP3922017A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
FR2957744A1 (fr) Procede de traitement d&#39;une sequence video et dispositif associe
EP3272122A1 (fr) Codage d&#39;images par quantification vectorielle
FR3098070A1 (fr) Procédé d’encodage et de décodage vidéo par signalisation d’un sous-ensemble de candidat
EP3596923A1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19774169

Country of ref document: EP

Kind code of ref document: A1

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112021003210

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 2021515494

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2101001602

Country of ref document: TH

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019774169

Country of ref document: EP

Effective date: 20210421

ENP Entry into the national phase

Ref document number: 112021003210

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20210222