WO2018065698A1 - Procédé de codage d'une image numérique, procédé de décodage, dispositifs, équipement terminal et programmes d'ordinateurs associés - Google Patents

Procédé de codage d'une image numérique, procédé de décodage, dispositifs, équipement terminal et programmes d'ordinateurs associés Download PDF

Info

Publication number
WO2018065698A1
WO2018065698A1 PCT/FR2017/052603 FR2017052603W WO2018065698A1 WO 2018065698 A1 WO2018065698 A1 WO 2018065698A1 FR 2017052603 W FR2017052603 W FR 2017052603W WO 2018065698 A1 WO2018065698 A1 WO 2018065698A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
image
list
transforms
transform
Prior art date
Application number
PCT/FR2017/052603
Other languages
English (en)
Inventor
Thibaud BIATEK
Victorien LORCY
Pierrick Philippe
Original Assignee
B<>Com
Orange
Tdf
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 B<>Com, Orange, Tdf filed Critical B<>Com
Publication of WO2018065698A1 publication Critical patent/WO2018065698A1/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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
    • 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/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
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one

Definitions

  • the field of the invention is that of signal compression, in particular a digital image or a sequence of digital images, divided into blocks of pixels.
  • the invention relates more particularly to the signaling of a transform applied to a block of pixels, in a context of competition of transforms.
  • the encoding / decoding of digital images applies in particular to images from at least one video sequence comprising:
  • the present invention applies similarly to the coding / decoding of 2D or 3D type images.
  • the invention may notably, but not exclusively, apply to the video coding implemented in the current video codecs AVC (for "Advanced Video Coding” in English) and HEVC (for "High Efficiency Video Coding”). and their extensions (MVC, 3D-AVC, MV-HEVC, 3D-HEVC, etc.), and the corresponding decoding.
  • AVC Advanced Video Coding
  • HEVC High Efficiency Video Coding
  • a conventional compression scheme of a digital image is considered, in which the image is divided into blocks of pixels.
  • a current block to be coded which constitutes an initial coding unit, is generally divided into a variable number of sub-blocks according to a predetermined cutting mode.
  • a sequence of digital images Ii,, ⁇ , with a non-zero integer K is considered.
  • An image I k is divided into initial coding units (CTUs) according to the terminology of the HEVC standard, as specified in the document "ISO / IEC 23008-2: 2013 - High efficiency coding and media delivery in heterogeneous environments - Part 2: High efficiency video coding, International Organization for Standardization, published November 2013 or ITU-T H.265 High Efficiency Video Coding, published April 2015.
  • Standard encoders usually offer regular partitioning, based on square or rectangular blocks, called fixed-size “Coding Units” (CUs).
  • the partitioning is always done from the initial, unpartitioned coding unit, and the final partitioning is calculated and reported from this neutral base.
  • Each CU undergoes an encoding or decoding operation consisting of a sequence of operations, including in a non-exhaustive manner a prediction, a residue calculation, a transformation, a quantization and an entropy coding.
  • This series of operations is known from the prior art and presented in connection with FIG. 2.
  • the first block CTU to be processed is selected as current block c.
  • this is the first block (in lexicographic order).
  • This block comprises NxN pixels, with N nonzero integer, for example equal to 64 according to the HEVC standard.
  • a prediction Pr of the original block b is determined. It is a prediction block built by known means, typically by motion compensation (block from a previously decoded reference image), or intra prediction (block built from the decoded pixels belonging to the image ID).
  • the prediction information related to Pr is encoded in the TB bit stream or compressed FC file.
  • P possible prediction modes mi, rr2, ..., m p with P nonzero integer.
  • the prediction mode chosen for the current block c is the mode m p .
  • Some prediction modes are associated with an Intra type prediction, others with an INTER type prediction.
  • a transform is identified which is applied to the residue R obtained.
  • the transformation step plays a crucial role in such a video coding scheme: it is it that concentrates the information before the quantization operation. As a result, a set of residual pixels before encoding is shown on a small number of non-zero frequency coefficients representing the same information. Thus, instead of transmitting a large number of coefficients, only a small number will be needed to faithfully reconstruct a block of pixels.
  • block (4x4, 8x8, etc.) orthogonal or quasi-orthogonal transforms are generally used. The most used transforms are based on cosine bases.
  • the DCT is thus present in most standards for image and video.
  • the HEVC standard has also introduced the DST (for "Discrete Sine Transform") for the coding of particular residues in the case of 4x4 blocks.
  • the transforms used by the HEVC standard on blocks of 4x4 size are presented: These are the DCT and DST transforms.
  • the values presented in this table are to be divided by 128 to find the quasi- orthonormal transformations.
  • the encoder has the choice between T transformed, with T non-zero integer, generally greater than or equal to 2.
  • T non-zero integer generally greater than or equal to 2.
  • the encoder each in turn applies to the current block, then evaluates them according to a rate-distortion criterion.
  • the chosen transform is the one that gets the best performance:
  • the HEVC standard provides for 4x4 blocks the choice between a DST-type transformation or an absence of Transform Skip transforms (that is, the residual coefficients are not transformed).
  • the residue R is transformed into a transformed residue block, called RT, by the identified transform.
  • This is for example a block-type transform (commonly DCT or DST even adapted transformations) or a wavelet transform, all known to those skilled in the art and in particular implemented in JPEG / MPEG standards for the DCT / DST and JPEG2000 for the wavelet transform.
  • these coefficients are scanned in a predetermined order so as to constitute a one-dimensional vector RQ [j], where the index j varies from 0 to Nb-1, with Nb integer equal to the number of pixels in the block c.
  • the index j is called the frequency of the coefficient RQ [j].
  • these coefficients are scanned by globally increasing or decreasing order of frequency values, for example along a zigzag path, which is known from the JPEG fixed image coding standard.
  • the transformed residue RT is quantized by conventional quantization means, for example scalar or vector, into a quantized residual block RQ comprising as many coefficients as the residual block RQ contains pixels, for example Nb, with non-zero integer Nb. .
  • the information relating to the coefficients of the residual block is coded
  • This information comprises at least the amplitude of the coefficients, their sign and a signaling of the transform applied to the block by the encoder.
  • amplitude is meant here the absolute value of the coefficient.
  • the signs of non-zero coefficients are also coded. In general, they are simply encoded by a bit 0 or 1, each value corresponding to a given polarity. Such coding obtains effective performances because, because of the transformation, the values of the amplitudes to be coded are for the most part zero.
  • transform_skip_flag the inverse transform to be applied among the two alternatives DST or absence of transform.
  • the encoder indicates by an indicator (indicator in position 0) whether the transform is a HEVC type transform (according to size, it is a DCT or a DST) or a particular transformation (indicator in position 1). If the indicator indicates a particular transformation, the index of the particular transformation used is reported to the decoder on a fixed length code (2 for the 4x4 blocks and 4 for the 8x8 blocks to indicate respectively the 4 and 16 possible special transformations ).
  • the encoder evaluates the applied transform, under the control of a distortion rate criterion, from the encoded residue.
  • the coded data relating to the current block are inserted in the bit stream TB.
  • Multiplying the number of transforms induces an increased signaling to indicate the transform chosen by the encoder at the decoder.
  • WO2010 / 087807 discloses a method of encoding an image sequence which describes selecting a transform for the current block in a subset of transforms selected from a plurality of subsets known to the art. advance of the encoder and the decoder. The subset is signaled to the decoder in the bitstream. 4. Objectives of the invention
  • the invention improves the situation.
  • the invention particularly aims to overcome these disadvantages of the prior art.
  • an object of the invention is to propose a solution which, by reducing the computing resource requirements and the volume of data transmitted, while preserving the compression performance of a digital image encoder.
  • the method further comprises a step of obtaining information representative of a temporal distance of the current residue block with respect to the at least one reference image, a step of obtaining a list of transformed from among a plurality of predetermined lists at least according to the information representative of a temporal distance obtained, a value or a range of values of said information being associated with a said list of transforms, and the transformation step applies a transformed from the list obtained.
  • the invention proposes to choose the transform to be applied to the current block in a subset of transforms adapted to the current block.
  • the inventors have indeed found that there is a link between the distance of the current block relative to its reference or references, and therefore between the quality of the prediction of the block and the most suitable transforms for compressing the information of the residue obtained. .
  • the invention is therefore based on an entirely new and inventive approach to image coding which consists in grouping the best candidate transforms for coding the residue of a block according to information representative of a variability of the content of the block to be coded and to force the coder to make his choice in this subset.
  • the configuration of the lists can be fixed or evolve over time.
  • the configuration of the lists may be intended for a group of images and its evolution is indicated at the level of the syntax information relating to this group or else the configuration applies to the entire image sequence and its evolution is signaled at the level of syntax information relating to this sequence.
  • the transformation step is repeated for the transforms of the list obtained, the method comprises a step of selecting a transform among the transforms of the list according to a distortion rate criterion and a coding step identification information of the selected transform in the list.
  • the encoder reports a positional index of the selected transform in the list, which assumes that the list is ordered in a manner similar to the encoder and the decoder.
  • the invention also relates to a method of decoding an image of a sequence of images from coded data representative of said image, said image being divided into a plurality of blocks processed in a defined order, said method comprising the following steps, implemented for a block, called current block:
  • Prediction of the current block from at least one previously processed block derived from at least one previous or next reference image Prediction of the current block from at least one previously processed block derived from at least one previous or next reference image; Decoding the encoded data representative of the coefficients of the transformed residue block; Inverse transformation of the transformed residue block;
  • the method comprises a step of obtaining information representative of a temporal distance between the current residue block and said at least one reference image, a step of obtaining a list of transforms among a plurality of predetermined lists at least as a function of the temporal distance information obtained, a value or a range of values of said information being associated with a said list of transforms and a step of identifying the transform to be applied in the list obtained.
  • An advantage of the invention is that the steps of obtaining an indicator of variability of the current block and of obtaining a list of transforms according to this indicator can be carried out at the decoder correspondingly to the encoder, which reduces the signaling.
  • the information representative of a time distance increases or decreases with the time distance between the residue block and the reference image and the number of transforms of the resulting list increases with the temporal distance.
  • the subset associated with a value or a range of time-distance values between current image and reference image can be defined during a preliminary learning phase during which different groups of transforms are tested. For example, a list comprising fewer transforms is determined that the time distance between the current image and the reference image is smaller.
  • the variability of the residues between the two images is supposed to be low enough for a small number of well-targeted transforms to compress the information they contain.
  • the block residue contains little energy and will be easy to compress. A small number of transformations will be enough.
  • the invention propose to adapt the size of the subset of transforms available for the current block to its variability which makes it possible to optimize the signaling of the transform according to the current block. In a context of transform competition, computational costs are also reduced.
  • the images of a group of images of the sequence being distributed between several temporal layers the information representative of a temporal distance is evaluated from a time layer identifier of the picture of the current block in the group.
  • Wien the hierarchical model of temporal layers described by Wien, according to which one aggregates in a same temporal layer the images which are at the same level in the hierarchy of the images serving as references.
  • a first layer comprises the images I or Intra, which are distant from each other, but are not predicted
  • a second layer comprises the images predicted from the images I of the previous layer and which are interposed between the I-images
  • a third layer comprising images temporally interposed between images of the second and images of the first layer and which are predicted with respect to images of the previous layers, etc.
  • the layer number information is information that is known to both the coder and the decoder and is easily accessible.
  • the time slot number information is transmitted in the header of each NAL unit packet (for Network Abstraction Layer), and is therefore directly accessible during decoding (see section 7.4 .2.2 of ITU-T H.265, "NAL unit header semantics").
  • the evaluation of temporal distance on the basis of such information is therefore simple and inexpensive.
  • the information representative of a temporal distance is evaluated by difference between information representative of a time instant associated with the image of the current block and information representative of an associated time instant. to the at least one image of the reference block.
  • An advantage of this information is that they are known to the encoder and the decoder during the processing of a current block.
  • the information representative of a time instant is a sequence number of the current image in the sequence.
  • An advantage of this information is to be easy to obtain.
  • the difference between two numbers of images or delta POC is even directly accessible, without requiring calculation operation.
  • the POC delta is an essential parameter when building the RPS (for Reference Picture Set, in English) as described in section 8.3.2 of the ITU-T H.265 standard HEVC, "Decoding process for reference picture set"), and it is therefore a parameter directly accessible during encoding and decoding.
  • the current block belongs to a group of blocks of an image, of the slice type, its reference image (s) are defined in two lists at the slice segment header (see 7.3.6.2 of the ITU-T H.265 standard). titled HEVC, "Reference picture list modification syntax").
  • Reference picture list modification syntax "Reference picture list modification syntax"
  • the decoding method further comprises a step of decoding an identification information of the transform in the list.
  • the identification information is a positional index of the transform in the sequence.
  • the invention also relates to a coding device adapted to implement the coding method according to any one of the particular embodiments defined above.
  • This coding device may 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 decoding method, and are not detailed further.
  • the invention also relates to a decoding device adapted to implement the decoding method according to any one of the particular embodiments defined above.
  • This decoding device may of course include the various characteristics relating to the decoding method according to the invention. Thus, the characteristics and advantages of this decoding device are the same as those of the decoding method, and are not detailed further.
  • the invention also relates to a terminal equipment comprising a transmission module and a data receiving module to and from a telecommunications network, a coding device and a decoding device according to the invention.
  • the invention also relates to a computer program comprising instructions for implementing the steps of a method of encoding a digital image as described above, when this program is executed by a processor.
  • the invention also relates to a computer program comprising instructions for implementing the steps of a method of decoding a digital image as described above, when this program is executed by a processor.
  • These programs can use any programming language. They can be downloaded from a communication network and / or recorded on a computer-readable medium.
  • the invention finally relates to recording media, readable by a processor, integrated or not integrated with the encoding device of a digital image and the decoding device of a digital image according to the invention, possibly removable, respectively memorizing a computer program implementing an encoding method and a computer program implementing a decoding method, as described above.
  • FIG. 1 (already described) schematically shows a sequence of digital images cut into blocks of pixels;
  • FIGS. 2A and 2B show the DCT and DST transforms implemented by the encoder of the HEVC standard;
  • FIG. 3 schematically shows the steps of a coding method of a digital image according to the invention;
  • FIG. 4 schematically shows the steps of a method of decoding a digital image according to the invention;
  • FIG. 5 schematically shows a model of hierarchical temporal structure of a group of images implemented by one embodiment of the invention;
  • FIG. 7 presents a first example of a table of transforms associating a temporal layer number with a list according to one embodiment of the invention
  • FIGS. 8A and 8B show a second example based on two tables associating, for the first table, a temporal layer number with a number of transforms, to be identified in a list of transforms indicated in the second table, according to a second embodiment of FIG. invention
  • Fig. 9 shows examples of transform list configurations as a function of a time slot number
  • FIG. 10 shows the performances performed by an encoder implementing the coding method according to the invention, when the time distance information used is a temporal layer number
  • Figure 11 shows schematically the hardware structure of a coding device of a digital image according to the invention
  • FIG. 12 schematically shows the hardware structure of a device for decoding a digital image according to the invention.
  • the general principle of the invention is based on a prior association of subsets of transforms with values or ranges of values of a temporal distance from the current block with respect to at least one reference image.
  • This indicator is estimated similarly to the encoder and decoder.
  • the encoder obtains an indicator value for the current block, selects the transform to be applied to the current block in the sub-set of transforms associated with this value of the indicator. If necessary, it then signals to the decoder which transform it has used in this subset.
  • the decoder obtains a time distance value for the current block and accesses the transform subset associated with it. Using the optional signaling, it identifies the transform applied to the current block and applies the inverse transform.
  • an original video consisting of a sequence of K images Ii,, ⁇ ⁇ , with K nonzero integer, such as that already presented in relation to Figure 1.
  • the images are encoded by an encoder, the coded data is inserted a bit stream TB transmitted to a decoder via a communication network, or a compressed file FC, intended to be stored on a hard disk for example.
  • the decoder extracts the coded data, then received and decoded by a decoder in a predefined order known from the encoder and the decoder, for example in the time order Ii, then, then IK, this order being able to differ according to the embodiment .
  • An image I k is divided into CTU blocks (for "Coding Tree Unit", in English) of size, for example equal to 64 ⁇ 64 pixels.
  • a block to be processed is selected.
  • it is a block CU (for "Coding Unit", in English), square or rectangular, of dimensions MxN, with M and N non-zero integers, obtained by partitioning a CTU block.
  • a step is made to predict the block c.
  • This operation is performed from pixels from the image being coded (intra coding) or based on an image already processed by the encoding operation (inter coding).
  • inter coding an image already processed by the encoding operation
  • step E2 the current block of pixels is subtracted, pixel by pixel, from the predicted block during the previous operation.
  • a block of residual pixels R is obtained.
  • a time distance, or indicator of variability IV, of the current block with respect to the reference image (s) is obtained at E3.
  • Possible transforms are identified for the prediction mode considered and the size of the current block.
  • Possible transforms denote a plurality T of transforms available in the memory of the encoder in a preestablished manner, with T being non-zero integer, for example T is equal to 32.
  • this plurality is stored in the form of an ordered L list or not, transformations. Note that this list can be predetermined or adaptive.
  • a plurality of lists Ll to U, with a non-zero integer J has been formed from the available transforms and one of these lists is associated with the obtained temporal distance value IV.
  • a table stored in memory includes records EGj, with j integer less than T, each of which corresponds to a value or a range of particular values of this variability indicator, a list Lj resulting from the list L.
  • a recording EGj of the table associates with each value or range of values of the indicator, a pointer to this list Lj. Examples of tables will be presented hereinafter with reference to FIGS. 7 and 8.
  • the configuration of the lists associated with the different values of temporal distance may vary over time, to adapt to the change of content of the sequence.
  • the table comprises a first record comprising a first list associated with a value or a range of predetermined values of temporal distance. It is assumed that the coder decides, following a change of scene, to replace the first record with a second record comprising a second list, associated with the same range of values. This update must be reported in the bitstream so that the decoder updates its own table.
  • a particular transform Tr is identified in the list Lj obtained.
  • the residual signal R is transformed.
  • a transformed residual signal RTi is obtained.
  • the coefficients of the transformed residual block are scanned in a predetermined order so as to constitute a one-dimensional vector RTi [m], where the index m varies from 0 to Nb. 1, with Nb number of pixels in the current block c.
  • the index m is called the frequency of the coefficient R [m].
  • these coefficients are scanned by globally increasing or decreasing order of frequency values, for example along a zigzag path, which is known from the JPEG fixed image coding standard.
  • This scanning mode can also depend on the applied transform. Since the path mode necessarily influences the final order of the transformed coefficients in the vector RTi [m], it is considered in the following that an identified transform Tn in the list Lj is associated with a particular path mode. In other words, the same transform associated with another path mode will be assigned another transform identifier in the list Lj and will therefore be considered as a separate transform.
  • the components of the vector RTi are then quantized according to a given scalar or vector quantization method known to those skilled in the art, with a quantization parameter QP setting the accuracy of the approximation performed in this step.
  • a quantized vector RTQi is obtained.
  • the information relating to the current block including in particular the quantized data and block description elements such as the prediction mode, are encoded by a known entropy coding technique, such as for example a Huffman coding, arithmetic coding. or CABAC encoding as used in HEVC.
  • a known entropy coding technique such as for example a Huffman coding, arithmetic coding. or CABAC encoding as used in HEVC.
  • the decoder according to the invention is arranged to obtain the list Lj correspondingly to that of the encoder.
  • An advantage of this embodiment is that it is simple to implement and does not require signaling, since the configuration of the list is frozen.
  • the encoder signals to the decoder r a position index POS of the transform Tr1 applied to the current block in the list Lj.
  • the list is advantageously ordered so that the coder and the decoder share the knowledge of the positions of the transforms in the list.
  • an identifier of the transform Sort in a list of four elements is coded on 4 bits (transforms TrO, sort, Tr2 and Tr3 respectively for a code 00, 01, 10, 11) whereas a list of 8 elements would cost 3 bits (000, 001, 010, 011, 100, 101, 110 and 111 respectively for transforms Tr0, Tri, Tr2, Tr3, Tr4, Tr5, Tr6, Tr7 and Tr8), in the case of a fixed length code.
  • An advantage of the invention is that few bits are necessary to signal the transforms Sort in the bit stream, unlike the state of the art which explicitly transmits its full identifier.
  • the coding performances of the current block for this transform Tri are evaluated, in a manner known to those skilled in the art, from a cost function.
  • Step E5 After this is not the case, we return to step E5 after which another transform of the list Lj is identified. Steps E6 to E10 are repeated for the new transform.
  • the coded data corresponding to the chosen transform is inserted into the bit stream or compressed file in E12.
  • step EO we test if there are blocks to process in the current image. If so, the process continues with step EO of selecting a block C to be processed. Otherwise, the processing is finished for this image and we go to the next image according to the encoding order.
  • the compressed file or bit stream produced by the coding method just described is transmitted to a decoder for example via a telecommunications network.
  • bit stream TB has been received by a decoding device implementing a decoding method according to the invention. This decoding method will now be described in relation to FIG. 4.
  • This block contains MxN pixels, with M and N non-zero integers.
  • the block C considered may be a block CTU or a sub-block CU obtained by cutting the block CTU or a block or sub-block residue obtained by subtracting a prediction of the current block at current block.
  • the coded data relating to the current block C are read and decoded.
  • the coded data includes coding parameters, such as, for example, the prediction mode used and the values relating to the amplitudes and signs of the quantized residual coefficients of the current block.
  • the current block is predicted at D2, according to the prediction mode determined from an already processed block.
  • a predicted block Pr ' is obtained.
  • the read data representative of the quantized values, residuals of the current block (values and signs of the coefficients), are decoded in the form of a vector of values RQ '. It is understood that this is the inverse operation of that of entropy encoding previously described in relation to the encoding method.
  • a step D4 the coefficients of the vector RQ 'are dequantized using a predetermined quantization step or read in the compressed file.
  • a temporal distance, or indicator of variability IV, of the current block is obtained with respect to its reference or references, correspondingly to that of the encoder.
  • the obtaining can be carried out once for all the blocks of the same image or the same image group, or must be repeated for each current block.
  • a list of transforms Lj associated with the value of the temporal distance obtained is retrieved. For example, when the configurations of the lists are predetermined, they are known to the decoder and associated respectively with a value or a range of values of the time distance. If the configurations are not predetermined, they are indicated in the bitstream prior to the decoding of the image so as to be known to the decoder.
  • the transform Tri applied to the residual block is identified by the coder.
  • the list Lj contains only one transform.
  • the decoder accesses it directly without the need for additional information; list Lj contains more than one transform.
  • the decoder reads in the bitstream or the compressed file a signaling information of the transform Sort in the list. This is for example a POS position index of the transform in the list.
  • the underlying assumption is that the encoder and decoder share the same knowledge of an order of transforms in the list. .
  • the decoder can be made to identify a sub-blocking transformation CU of the current CTU block.
  • the block c ' is reconstructed from its prediction Pr' and the residual block r '. It is stored in a memory M l, so that it can be used as a prediction for a next block.
  • a step D12 it is tested whether the current block is the last block to process the decoder, given the order of travel defined above. If so, the decoding process has finished processing the current image and moves on to the next image. If not, the next step is the step of selecting the next block DO and the decoding steps D1 to D12 described above are repeated for the next block selected.
  • step E3 for obtaining a time distance of a current block C
  • step E4 for obtaining a list based on this information
  • Wien model a model of hierarchical representation in temporal layers, called Wien model, of a group of images or GoP (for "Group of Pictures", in English) of the sequence, typically implemented implemented by the successive standards of video compression, such as for example H265 or HEVC.
  • the GoP includes 9 images.
  • the images of the GoP are ordered from 10 to 18 with associated time instants such that t0 ⁇ tl ⁇ ... ⁇ t8, corresponding to an order of restitution of the images of the video.
  • these images are processed according to an encoding order that differs from the restitution order.
  • the encoding time structure is based on different types of images, among which are: Intra images, which are encoded independently of other previously processed images and serve as a reference for inter prediction of other GoP images;
  • Inter-images of type P which are coded by temporal prediction from a reference image already processed, which may correspond to a moment of restitution past or future; an image P can itself serve as a temporal reference to another image;
  • Inter-type B images which are coded by temporal prediction from two reference images, a past and a future.
  • An image B can serve as a temporal reference to another image.
  • 10 and 18 are Intra images.
  • the images II to 17 are images B. There is no image P.
  • the GoP is decomposed into several temporal layers: a first layer t10, comprising images 110 and 18.
  • the inventors have found that the more the current image is temporally distant from its references, the more the variability of the block increases. Indeed, the probability that the content of the current image has changed compared to that of its references is then all the greater.
  • the information representative of a temporal distance of the block comprises the temporal layer number to which the current image belongs.
  • this value is available at the encoder level and very easy to obtain on the decoder side because, according to the ITU-T H265 / HEVC for example, this information is specified in the syntax element nuh_temporal_id_plusl located in the head nal_unit_header () as specified in section 7.3.1.2 of the ITU-T H.265 specification High Efficiency Video Coding, published April 2015.
  • the temporal layer number is common to all the blocks of the same image or a subset of this image, for example of "slice" type. Nevertheless, this value is read in a memory for each block to be processed. On the encoder side, the step E3 of obtaining information representative of a time distance is therefore repeated for each current block. On the decoder side, even if the time slot number value is read in the bit stream once and for all, it is stored in memory, so that the decoder can access it for processing the current block.
  • a specific transform list has been created beforehand for each time slot number.
  • a lookup table maps a given time level to such a list.
  • This correspondence is either fixed (known to the coder and the decoder), or adaptive.
  • the adaptive case involves the signaling of the necessary information, for example a pointer to a new list.
  • This information will for example be placed and transmitted for a given sequence of images, for example in the SPS (Sequence Parameter Set) syntax structure described in section 7.3.2.2 of the ITU-T H.265 specification, or in the PPS syntactic structure for (picture parameter set, in English), described in section 7.3.2.3 of the same standard.
  • SPS Sequence Parameter Set
  • PPS syntactic structure for (picture parameter set, in English), described in section 7.3.2.3 of the same standard.
  • the step of obtaining the list Lj as a function of the temporal layer number is thus also performed once for all the blocks of the image or slice considered.
  • JEM-3.0 is the test software currently used in the Joint Video Exploration Team (JVET). trained by experts from MPEG and VCEG, respectively attached to ISO / IEC and ITU).
  • JVET-C1001 is described in JVET-C1001 at http: //phenix.it-sudparis.eu/ivet/doc enduser / documents / 3 Geneva / wql / JVET-ClOOl-v3.zip.
  • tid3 is associated with LO, tid2 with L1, tid1 with L2, and t10 with L3.
  • Figure 8A associates with a list identifier a number of transforms, for example 1 for L3, 3 for L2, 5 for L1 and 7 for LO
  • Figure 8B includes a table composed of several lines, a row or record of the table. associating with particular block size values an ordered sequence of transformed T1's.
  • This table is advantageously stored in the memory of the encoder or decoder. It can be seen that the lists Lj are obtained from this single table.
  • the transformed T1s are arranged in an order inversely proportional to their frequency of membership in the preconfigured lists.
  • the first two transforms of the sequence are part of all 4 lists, the next two of the last 3 lists L2, L1, L0, the next two of the last two lists L1, L0 and the last two of the largest L0 list.
  • a first transformed, in this case the DCT2-2D is common to all the lists and is not indicated in the table.
  • the encoder evaluates that the list associated with a temporal layer is no longer adapted to the content it encodes, for example because it has detected a scene change, then it can choose to signal in the train binary, for example at the level of the PPS header, the information needed to update the lists, in a way that the decoder is configured to decode and interpret.
  • the information representative of a temporal distance between the current block and the reference block corresponds to a number of images separating the current image from its reference.
  • This information is directly known to the coder and is reported to the decoder as the parameter Delta POC for difference of rank between images (Delta Picture Order Count, in English) in a header of the compressed file or bit stream. It is notably transmitted for a given sequence of images, firstly in the parameter set sequence (SPS, see 7.3.2.2 of the ITU-T H265 standard), or secondly in the slice_segment_header (see 7.3.6.1 of ITU-T H265).
  • SPS parameter set sequence
  • slice_segment_header see 7.3.6.1 of ITU-T H265
  • a time difference can be calculated by difference between the time instants associated respectively with the current image and the reference image.
  • This measure of temporal distance is common to all the blocks of the same image and if necessary of the same slice, all blocks share the same references. It can therefore be obtained once for all the blocks of the same image / slice and stored in a memory to which the encoder accesses for the processing of a current block.
  • This correspondence is made beforehand, from an apprenticeship based on a representative set of sequences. It can then be fixed and in this case, known to the coder and the decoder or be adaptive, which requires appropriate signaling.
  • the encoder may choose to transmit in the bitstream the information needed to update the correspondence table.
  • the coder obtains the list associated with the measurement of the temporal distance of the image / slice with its reference (s) and uses it for all the blocks it understands.
  • the encoder For each block of the image, the encoder successively applies the transforms of the list obtained to its residue, selects the best transform and codes an index corresponding to a position of the selected transform in the list. :
  • FIG. 11 shows the simplified structure of a coding device 100 adapted to implement the coding method according to any one of the particular embodiments of the invention, which have just been described in relation with FIGS. and 5.
  • the encoding device 100 is adapted to encode at least one block-cut image as a TB bit stream or compressed FC file.
  • the coding device 100 is notably configured to: predict values of the current block from at least one previously processed block of a previous or next image, called reference image,
  • the device is further configured to: obtain information representative of a temporal distance of the block relative to the at least one reference block;
  • the steps of the coding method are implemented by computer program instructions.
  • the coding device 100 has the conventional architecture of a computer and comprises in particular a memory MEM1, a processing unit UT1, equipped for example with a microprocessor ⁇ , and driven by the computer program Pgl stored in memory MEM1.
  • the computer program Pgl includes instructions for implementing the steps of the encoding method as described above, when the program is executed by the processor ⁇ .
  • the code instructions of the computer program Pgl are for example loaded into a RAM before being executed by the processor PROC.
  • the ⁇ processor of the unit processing UT1 implements in particular the steps of the coding method described above, according to the instructions of the computer program Pg l.
  • the coding method is implemented by modules or functional units (the) s.
  • the coding device 100 further comprises the following modules:
  • the device further comprises a unit for obtaining information representative of a temporal distance from the current block with respect to at least one reference image, a unit for obtaining a list of transforms among a plurality of predetermined lists at least from the information obtained and the transformation unit applies a transform of the determined list.
  • the processing unit UT1 cooperates with the various functional modules described above and the memory MEM 1 in order to implement the steps of the coding method.
  • the device 100 furthermore comprises a unit Mi for storing the tables previously described in the different embodiments of the invention, such as for example a table comprising records associating with a value or a range of values of information a list of transforms.
  • a unit Mi for storing the tables previously described in the different embodiments of the invention, such as for example a table comprising records associating with a value or a range of values of information a list of transforms.
  • These units are driven by the ⁇ processor of the processing unit 110.
  • such a coding device 100 may be integrated with a user terminal equipment TU, such as a personal computer, a tablet, a digital camera, a smart mobile phone (for "smartphone", in English), etc.
  • the device 100 is then arranged to cooperate at least with the following module of the terminal TU: a data transmission / reception module E / R, through which the bit stream TB or the compressed file FC is transmitted in a network telecommunications, for example a wired, radio or wireless network.
  • the various functional modules described above can be in hardware and / or software form.
  • such a functional module may include a processor, a memory, and program code instructions for implementing the function corresponding to the module when the code instructions are executed by the processor.
  • FIG. 12 shows the simplified structure of a decoding device 200 adapted to implement the decoding method according to any one of the particular embodiments of the invention which have just been described with reference to FIGS. 5.
  • the decoding device 200 is adapted to decode a bit stream or a file comprising encoded data representative of at least one image, said image being cut into blocks.
  • the decoding device 200 is notably configured for:
  • it is furthermore configured to obtain information representative of a time distance of the current block with respect to at least one reference image, to obtain a list of transforms among a plurality of predetermined lists at least as a function of the obtained information and identify the transform to be applied in the determined list.
  • the decoding device 200 has the conventional architecture of a computer and notably comprises a memory MEM2, a processing unit UT2, equipped for example with a microprocessor ⁇ 2, and driven by the computer program Pg2 stored in memory MEM2.
  • the computer program Pg2 includes instructions for implementing the steps of the decoding method as described above, when the program is executed by the processor ⁇ 2.
  • the code instructions of the computer program Pg2 are for example loaded into a RAM before being executed by the processor ⁇ 2.
  • the processor ⁇ 2 of the processing unit UT2 notably implements the steps of the decoding method described above, according to the instructions of the computer program Pg2.
  • the decoding method is implemented by functional modules.
  • the decoding device 200 further comprises the following modules:
  • Prediction of a current block from at least one previously processed block of a previous or next image referred to as the reference image
  • it further comprises a unit for obtaining information representative of a temporal distance from the current block with respect to at least one reference image, a unit for obtaining a list of transforms from a plurality of predetermined lists at least according to the information obtained and a unit of identification of the transformed in the list obtained.
  • the processing unit ⁇ 2 cooperates with the various functional modules described above and the memory MEM2 in order to implement the steps of the decoding method.
  • the device 200 further comprises a storage unit M2 of a table associating with a value or value range of the information a list of transforms.
  • a functional module may include a processor, a memory, and program code instructions for implementing the function corresponding to the module when the code instructions are executed by the processor.
  • a functional module can be implemented by any type of suitable encoding circuits, such as, for example and without limitation microprocessors, signal processing processors (DSP for Digital Signal Processor). , application-specific integrated circuits (ASICs for Application Specifies Integrated Circuit in English), FPGAs for Field Programmable Gate Arrays in English, logic unit wiring.
  • DSP Digital Signal Processor
  • ASICs application-specific integrated circuits
  • FPGAs Field Programmable Gate Arrays in English
  • such a device 200 can be integrated in a user terminal TU, for example a decoder, a TV connection box (for "Set-Top-Box", in English), a digital television, a computer, a tablet, a smart mobile phone, etc.
  • the device 200 is then arranged to cooperate at least with the following module of the terminal TU: a data transmission / reception module E / R, through which the bit stream
  • TB or compressed FC file is received from the telecommunications network.
  • a DISP module for displaying decoded digital images.
  • the invention can be used in any image coding system or video.
  • it is intended to be used in a future ITU / MPEG compression standard. It can find many applications, requiring compression of video signal, audio (speech, sound), still images, images acquired by a medical imaging module. It applies for example to two-dimensional (2D), three-dimensional (3D) contents including a depth map, or multispectral images (whose color intensities are different from the three red green blue bands) or finally to full images.
  • 2D two-dimensional
  • 3D three-dimensional
  • multispectral images whose color intensities are different from the three red green blue bands

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

L'invention concerne un procédé de codage d'une image d'une séquence d'images numériques, ladite image étant divisée en une pluralité de blocs depixels traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc, dit bloc courant, de l'image courante, de dimensions prédéterminées : - Prédiction (E1) des valeurs du bloc courant à partir d'au moins un bloc précédemment traité d'une image précédente ou suivante, dite image de référence, - Calcul (E2) d'un bloc résidu (R) par soustraction des valeurs prédites aux valeurs originales du bloc courant, - Transformation (E6) du bloc résidu par application d'une transformée, la transformée appartenant à une liste prédéterminée de transformées; - Codage (E7) du bloc résidu transformé et d'une information d'identification de la transformée appliquée; Selon l'invention, le procédé comprend en outre une étape (E3) d'obtention d'une information représentative d'une distance temporelle du bloc par rapport à la au moins une image de référence, une étape (E4) d'obtention d'une liste de transformées parmi une pluralité de listes prédéterminés au moins en fonction de l'information obtenue et l'étape de transformation applique une transformée de la liste obtenue.

Description

Procédé de codage d'une image numérique, procédé de décodage, dispositifs, équipement terminal et programmes d'ordinateurs associés
1. Domaine de l'invention Le domaine de l'invention est celui de la compression de signal, en particulier d'une image numérique ou d'une séquence d'images numériques, divisée en blocs de pixels.
L'invention concerne plus particulièrement la signalisation d'une transformée appliquée à un bloc de pixels, dans un contexte de compétition de transformées.
Le codage/décodage d'images numériques s'applique notamment à des images issues d'au moins une séquence vidéo comprenant :
- des images issues d'une même caméra et se succédant temporellement (codage/décodage de type 2D),
- des images issues de différentes caméras orientées selon des vues différentes (codage/décodage de type 3D),
- des composantes de texture et de profondeur correspondantes (codage/décodage de type 3D),
- etc.
La présente invention s'applique de manière similaire au codage/décodage d'images de type 2D ou 3D.
L'invention peut notamment, mais non exclusivement, s'appliquer au codage vidéo mis en œuvre dans les codeurs vidéo actuels AVC (pour « Advanced Video Coding », en anglais) et HEVC (pour « High Efficiency Video Coding », en anglais) et leurs extensions (MVC, 3D-AVC, MV-HEVC, 3D-HEVC, etc), et au décodage correspondant.
2. Présentation de l'art antérieur On considère un schéma de compression classique d'une image numérique, selon lequel l'image est divisée en blocs de pixels. Un bloc courant à coder, qui constitue une unité de codage initiale, est généralement découpé en un nombre variable de sous-blocs selon un mode de découpage prédéterminé.
En relation avec la Figure 1, on considère une séquence d'images numériques Ii, , Ικ, avec K entier non nul. Une image Ik est découpée en unités de codage initiales ou CTU (pour « Coding Tree Unit » en anglais) selon la terminologie de la norme HEVC, telle que spécifiée dans le document "ISO/IEC 23008-2 : 2013 - High efficiency coding and média delivery in heterogeneous environments -- Part 2: High efficiency video coding », International Organization for Standardization, publié en novembre 2013 ou dans la spécification ITU-T H.265 intitulée « High Efficiency Video Coding », publiée en avril 2015.
Les codeurs standards proposent généralement un partitionnement régulier, qui s'appuie sur des blocs carrés ou rectangulaires, appelés CU (pour « Coding Units », en anglais) de taille fixe. Le partitionnement se fait toujours à partir de l'unité de codage initiale, non partitionnée, et le partitionnement final est calculé puis signalé à partir de cette base neutre.
Chaque CU subit une opération d'encodage ou de décodage consistant en une suite d'opérations, comprenant de manière non exhaustive une prédiction, un calcul de résidu, une transformation, une quantification et un codage entropique. Cette suite d'opérations est connue de l'art antérieur et présentée en relation avec la Figure 2.
On sélectionne comme bloc courant c le premier bloc CTU à traiter. Par exemple, il s'agit du premier bloc (dans l'ordre lexicographique). Ce bloc comporte NxN pixels, avec N entier non nul, par exemple égal à 64 selon la norme HEVC. Au cours d'une étape El, on détermine une prédiction Pr du bloc original b. Il s'agit d'un bloc de prédiction construit par des moyens connus, typiquement par compensation de mouvement (bloc issu d'une image de référence précédemment décodée), ou par prédiction intra (bloc construit à partir des pixels décodés appartenant à l'image ID). Les informations de prédiction liées à Pr sont codées dans le train binaire TB ou fichier compressé FC. On suppose ici qu'il y a P modes de prédiction possibles mi, rri2,..., mp, avec P entier non nul. Par exemple, le mode de prédiction choisi pour le bloc courant c est le mode mp. Certains modes de prédiction sont associés à une prédiction de type Intra, d'autres à une prédiction de type INTER.
Au cours d'une étape E2, un résidu original R est formé, par soustraction R = c-Pr de la prédiction Pr du bloc courant c au bloc courant c. En E3, on identifie une transformée à appliquer au résidu R obtenu.
L'étape de transformation joue un rôle crucial dans un tel schéma de codage vidéo : en effet c'est elle qui concentre l'information avant l'opération de quantification. Il en résulte qu'un ensemble de pixels résiduel avant encodage se voit représenté sur un faible nombre de coefficients fréquentiels non-nuls représentant la même information. Ainsi, au lieu de transmettre un grand nombre de coefficients, seul un petit nombre sera nécessaire pour reconstituer avec fidélité un bloc de pixels. En codage d'image et vidéo, on utilise généralement des transformées blocs (4x4, 8x8 etc), orthogonales ou quasi-orthogonales. Les transformées les plus employées sont à base de bases cosinus. La DCT est ainsi présente dans la plupart des standards pour l'image et la vidéo. Récemment la norme HEVC a également introduit la DST (pour « Discrète Sine Transform », en anglais) pour le codage de résidus particuliers dans le cas de blocs de taille 4x4.
Dans les faits, ce sont des approximations de ces transformées qui sont employées, les calculs étant effectués sur des entiers. En général, les bases de transformées sont approximées à l'entier le plus proche, sur une précision donnée (généralement de 8 bits).
A titre d'exemple on présente en relation avec les Figures 2A et 2B, les transformées utilisées par la norme HEVC sur les blocs de taille 4x4 : Il s'agit des transformées DCT et DST. Les valeurs présentées dans ce tableau sont à diviser par 128 pour retrouver les transformations quasi- orthonormales.
Plus récemment la notion de compétition de transformées a été introduite. Pour une taille de bloc et un mode de prédiction donnés, l'encodeur a le choix entre T transformées, avec T entier non nul, généralement supérieur ou égal à 2. De la même manière que pour le partitionnement d'un bloc, il les applique chacune à leur tour au bloc courant, puis les évalue selon un critère débit-distorsion. La transformée choisie est celle qui obtient les meilleures performances :
La norme HEVC prévoit, pour les blocs 4x4, le choix entre une transformation de type DST ou une absence de transformée « Transform Skip » (c'est-à-dire que les coefficients résiduels ne subissent pas de transformée).
Dans la publication de A. Arrufat et al, intitulée « Rate-distortion optimised transform compétition for intra coding in HEVC », publiée dans les Proceedings de la conférence IEEE Visual Communication on Image Processing, en décembre 2014, qui s'est tenue à La Valette, Malta. pp.73, l'encodeur a le choix entre de multiples transformées. Par exemple, il est proposé 5 transformées pour les blocs de taille 4x4 et 17 transformées pour les blocs de taille 8x8. L'étape E3 identifie donc une transformées parmi celles disponibles en fonction de la taille du bloc courant.
Au cours d'une étape E4, le résidu R est transformé en un bloc résidu transformé, appelé RT, par la transformée identifiée. Il s'agit par exemple d'une transformée de type block (communément DCT voire DST voire des transformations adaptées) ou d'une transformée en ondelettes, toutes connues de l'homme de métier et notamment mises en œuvre dans les normes JPEG/MPEG pour la DCT/DST et JPEG2000 pour la transformée en ondelettes. En E5, de façon connue dans l'état de l'art, ces coefficients sont scannés dans un ordre prédéterminés de façon à constituer un vecteur monodimensionnel RQ[j], où l'indice j varie de 0 à Nb-1, avec Nb entier égal au nombre de pixels du bloc c. L'indice j est appelé fréquence du coefficient RQ[j] . Classiquement, on scanne ces coefficients par ordre globalement croissant ou décroissant de valeurs de fréquence, par exemple selon un parcours en zigzag, qui est connu de la norme de codage d'image fixes JPEG.
En E6, le résidu transformé RT est quantifié par des moyens classiques de quantification, par exemple scalaire ou vectorielle, en un bloc résidu quantifié RQ comprenant autant de coefficients que le bloc résidu RQ contient de pixels, par exemple Nb, avec Nb entier non nul. Lors d'une étape E7, on vient coder les informations relatives aux coefficients du bloc résidu
RQ par codage entropique, par exemple selon une technique de codage de Huffman ou de codage arithmétique. Ces informations comprennent au moins l'amplitude des coefficients, leur signe et une signalisation de la transformée appliquée au bloc par l'encodeur. Par amplitude, on entend ici la valeur absolue du coefficient. Classiquement, on peut coder pour chaque coefficient une information représentative du fait que le coefficient est non nul . Ensuite, pour chaque coefficient non nul, une ou plusieurs informations relatives à l'amplitude sont codées. On obtient les amplitudes codées CA. On code aussi les signes des coefficients non nuls. En général, ils sont simplement codés par un bit 0 ou 1, chaque valeur correspondant à une polarité donnée. Un tel codage obtient des performances efficaces, car, du fait de la transformation, les valeurs des amplitudes à coder sont en grande majorité nulles.
Concernant la transformée appliquée, dans le cas de la norme HEVC, on indique au décodeur par un bit, appelé transform_skip_flag, la transformée inverse à appliquer parmi les deux alternatives DST ou absence de transformée.
Dans le cas de la publication de A. Arrufat et al, on la signale au décodeur par une approche indicateur plus signalisation explicite : l'encodeur signale par un indicateur (indicateur en position 0) si la transformée est une transformée de type HEVC (selon la taille, il s'agit d'une DCT ou d'une DST) ou une transformation particulière (indicateur en position 1). Si l'indicateur indique une transformation particulière, l'indice de la transformation particulière utilisée est signalé au décodeur sur un code de longueur fixe (2 pour les blocs 4x4 et 4 pour les blocs 8x8 afin de signaler respectivement les 4 et 16 transformations particulières possibles).
Grâce à l'augmentation du nombre de transformées, la performance de codage est améliorée, car chaque transformée est adaptée à la statistique d'un type de signal résiduel donné. Des gains sur les signaux de type texte et graphique sont rapportés par la technique « transform skip » et sur des signaux de nature quelconque (images contenant des textes, graphiques synthétiques, ou représentant des scènes filmées naturelles) par la technique présentée dans la publication A. Arrufat.
En E8, l'encodeur évalue la transformée appliquée, sous contrôle d'un critère débit distorsion, à partir du résidu encodé.
On répète les étapes précédentes El à E8 appliquées au bloc courant c pour les T transformée disponibles à l'encodeur.
En E9, une fois que toutes les transformées disponibles ont été appliquées, elles sont mises en compétition selon un critère débit-distorsion Les résidus transformés quantifiés associés à chaque transformée candidate sont donc décodés pour évaluer une mesure de performance et la transformée qui maximise ce critère est finalement retenue.
En E10, les données codées relatives au bloc courant sont insérées dans le train binaire TB.
Les autres blocs de l'image II sont traités de la même façon, de même pour les images suivantes de la séquence. 3. Inconvénients de l'art antérieur
Les inconvénients de l'art antérieur sont les suivants :
• la multiplication du nombre de transformées induit une signalisation accrue pour indiquer la transformée choisie par l'encodeur au décodeur.
• ce coût accru en signalisation, qui est pris en compte lors de la compétition entre transformées, impacte les performances de compression.
On connaît du document publié sous le numéro EP 2 418 855 une méthode pour réduire le nombre de transformées disponibles dans une liste prédéterminée de transformées d'une même famille, par exemple DCT, mais de tailles différentes, pour le codage d'un bloc issu du partitionnement d'un macrobloc. La réduction est réalisée en éliminant les transformées dont la taille n'est pas compatible avec le format du bloc. L'opération est reproduite par le décodeur ce qui permet au codeur de ne rien signaler.
On connaît du document publié sous le numéro WO2010/087807 un procédé de codage d'une séquence d'images qui décrit le fait de sélectionner une transformée pour le bloc courant dans un sous-ensemble de transformées choisi parmi plusieurs sous-ensembles connus à l'avance du codeur et du décodeur. Le sous-ensemble est signalé au décodeur dans le train binaire. 4. Objectifs de l'invention
L'invention vient améliorer la situation.
L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur.
Plus précisément, un objectif de l'invention est de proposer une solution qui, en réduise les besoins en ressources de calcul et le volume de données transmises, tout en préservant les performances de compression d'un codeur d'images numériques.
5. Exposé de l'invention
Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'un procédé de codage d'une image d'une séquence d'images, ladite image étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc, dit bloc courant, de l'image courante:
Prédiction des valeurs du bloc courant à partir d'au moins un bloc précédemment traité d'une image précédente ou suivante, dite de référence,
Calcul d'un bloc résidu par soustraction des valeurs prédites aux valeurs originales du bloc courant,
Transformation du bloc résidu par application d'une transformée;
Codage du bloc résidu transformé;
Selon l'invention, le procédé comprend en outre une étape d'obtention d'une information représentative d'une distance temporelle du bloc résidu courant par rapport à la au moins une image de référence, une étape d'obtention d'une liste de transformées parmi une pluralité de listes prédéterminées au moins en fonction de l'information représentative d'une distance temporelle obtenue, une valeur ou une plage de valeurs de ladite information étant associée à une dite liste de transformées, et l'étape de transformation applique une transformée de la liste obtenue.
L'invention propose de choisir la transformée à appliquer au bloc courant dans un sous ensemble de transformées adapté au bloc courant. Les inventeurs ont en effet constaté qu'il existait un lien entre la distance du bloc courant par rapport à sa ou ses références, et donc entre la qualité de la prédiction du bloc et les transformées les mieux adaptées pour compresser l'information du résidu obtenu. L'invention repose donc sur une approche tout-à-fait nouvelle et inventive du codage d'images qui consiste à regrouper les meilleures transformées candidates pour le codage du résidu d'un bloc en fonction d'une information représentative d'une variabilité du contenu du bloc à coder et à imposer au codeur de faire son choix dans ce sous-ensemble.
En choisissant la transformée dans un sous-ensemble de l'ensemble initial de transformées disponible au niveau du codeur, on réduit nécessairement le coût de l'information à transmettre.
Avantageusement, la configuration des listes peut être figée ou bien évoluer au cours du temps.
Si elle est figée, sa connaissance est partagée par le codeur et le décodeur et ne nécessite pas de signalisation. Si elle est adaptative, son évolution au cours du temps doit être signalée. Par exemple, la configuration des listes peut être destinée à un groupe d'images et son évolution est signalée au niveau des informations de syntaxe relatives à ce groupe ou bien la configuration vaut pour la séquence d'images entière et son évolution est signalée au niveau des informations de syntaxe relatives à cette séquence.
Selon un aspect de l'invention, l'étape de transformation est répétée pour les transformées de la liste obtenue, le procédé comprend une étape de sélection d'une transformée parmi les transformées de la liste selon un critère débit distorsion et une étape de codage d'une information d'identification de la transformée sélectionnée dans la liste.
Par exemple, le codeur signale un index de position de la transformée sélectionnée dans la liste, ce qui présuppose que la liste est ordonnée de façon similaire au codeur et au décodeur.
Dans un contexte de compétition de transformées, le fait d'avoir moins de transformées à tester réduit la complexité de l'encodeur et du décodeur. Cet avantage de l'invention s'ajoute à celui d'avoir moins d'informations à signaler car le nombre de transformées candidates est réduit.
De façon correspondante, l'invention concerne aussi un procédé de décodage d'une image d'une séquence d'images à partir de données codées représentatives de ladite image, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc, dit bloc courant :
Prédiction du bloc courant à partir d'au moins un bloc précédemment traité issu d'au moins une image précédente ou suivante, dite de référence; Décodage des données codées représentatives des coefficients du bloc résidu transformé ; Transformation inverse du bloc résidu transformé;
Reconstruction du bloc décodé à partir du bloc résidu et de la prédiction du bloc courant; Selon l'invention, le procédé comprend une étape d'obtention d'une information représentative d'une distance temporelle entre le bloc résidu courant et à ladite au moins une image de référence, une étape d'obtention d'une liste de transformées parmi une pluralité de listes prédéterminées au moins en fonction de l'information de distance temporelle obtenue, une valeur ou une plage de valeurs de ladite information étant associée à une dite liste de transformées et une étape d'identification de la transformée à appliquer dans la liste obtenue. Un avantage de l'invention est que les étapes d'obtention d'un indicateur de variabilité du bloc courant et d'obtention d'une liste de transformées en fonction de cet indicateur peuvent être réalisées au niveau du décodeur de façon correspondante au codeur, ce qui permet de réduire la signalisation. elon un aspect de l'invention, l'information représentative d'une distance temporelle augmente ou diminue avec la distance temporelle entre le bloc résidu et l'image de référence et le nombre de transformées de la liste obtenue augmente avec la distance temporelle.
En effet, la variabilité des résidus générés par la prédiction augmente avec l'éloignement temporel. Le sous-ensemble associé à une valeur ou une plage de valeurs de distance temporelle entre image courante et image de référence peut être défini lors d'une phase préalable d'apprentissage au cours de laquelle différents regroupements de transformées sont testés. Par exemple, on détermine une liste comprenant d'autant moins de transformées que la distance temporelle entre l'image courante et l'image de référence est plus faible. En effet, la variabilité des résidus entre les deux images est supposée être suffisamment faible pour qu'un petit nombre de transformées bien ciblé permette de bien compresser l'information qu'ils contiennent.
Avec une distance temporelle et donc une variabilité faible, le résidu du bloc contient peu d'énergie et sera facile à compresser. Un petit nombre de transformées sera suffisant. Au contraire, avec un indicateur de variabilité élevée, on peut s'attendre à un résidu de bloc comprenant beaucoup d'énergie et difficile à compresser. En conséquence, on choisira de tester un plus grand nombre de transformées. Ainsi l'invention proposer d'adapter la taille du sous-ensemble de transformées disponibles pour le bloc courant à sa variabilité ce qui permet d'optimiser la signalisation de la transformée en fonction du bloc courant. Dans un contexte de compétition de transformées, les coûts de calcul sont aussi réduits.
Selon un autre aspect de l'invention, les images d'un groupe d'images de la séquence étant réparties entre plusieurs couches temporelles, l'information représentative d'une distance temporelle est évaluée à partir d'un identifiant de couche temporelle de l'image du bloc courant dans le groupe. On connaît le modèle hiérarchique de couches temporelles décrit par Wien, selon lequel on regroupe dans une même couche temporelle les images qui sont au même niveau dans la hiérarchie des images servant de références. Par exemple, une première couche comprend les images I ou Intra, qui sont éloignées les unes des autres, mais ne sont pas prédites, une deuxième couche comprend les images prédites à partir des images I de la couche précédente et qui s'intercalent entre les images I, une troisième couche comprenant des images qui s'intercalent temporellement entre des images de la deuxième et des images de la première couche et qui sont prédites par rapport à des images des couches précédentes, etc.
On comprend que plus on monte dans les couches plus la distance temporelle entre l'image courante et sa référence diminue.
L'information de numéro de couche est une information qui est connue du codeur, comme du décodeur et qui est facilement accessible. Par exemple, dans H .265/HEVC, l'information de numéro de couche temporelle est transmise dans l'en-tête de chaque paquet NAL unit (pour Network Abstraction Layer), et est donc directement accessible lors du décodage (voir section 7.4.2.2 de la norme ITU-T H.265, « NAL unit header semantics »). L'évaluation de distance temporelle sur la base d'une telle information est donc simple et peu coûteuse.
Selon encore un autre aspect de l'invention, l'information représentative d'une distance temporelle est évaluée par différence entre une information représentative d'un instant temporel associé à l'image du bloc courant et une information représentative d'un instant temporel associé à la au moins une image du bloc de référence.
Un avantage de ces informations est qu'elles sont connues du codeur et du décodeur lors du traitement d'un bloc courant.
Par exemple, l'information représentative d'un instant temporel est un numéro d'ordre de l'image courante dans la séquence. Un avantage de cette information est d'être facile à obtenir. La différence entre deux numéros d'images ou delta POC est même directement accessible, sans nécessiter d'opération de calcul. Par exemple dans H.265/HEVC le delta POC est un paramètre essentiel lors de la construction du RPS (pour Référence Picture Set, en anglais) comme décrit dans la section 8.3.2 de la norme ITU-T H.265 intitulée HEVC, « Decoding process for référence picture set »), et il s'agit donc un paramètre directement accessible lors de l'encodage et du décodage.
Si le bloc courant appartient à un groupe de blocs d'une image, de type slice, sa ou ses images de référence sont définies dans deux listes au niveau du slice segment header (voir 7.3.6.2 de la norme ITU-T H.265 intitulée HEVC, "Référence picture list modification syntax"). On peut imaginer une image découpée en plusieurs slices ayant chacune des listes distinctes. Il se peut donc que deux slices d'une même image n'utilisent pas les mêmes images de références pour leurs blocs, et donc que l'information de distance temporelle ne prenne pas la même valeur.
Selon un autre aspect de l'invention, la liste comprenant plusieurs transformées, le procédé de décodage comprend en outre une étape de décodage d'une information d'identification de la transformée dans la liste.
Par exemple, lorsque la liste comprend une séquence ordonnée de transformées, l'information d'identification est un index de position de la transformée dans la séquence.
Les différents modes ou caractéristiques de réalisation mentionnés ci-après peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, aux caractéristiques du procédé de décodage et/ou du procédé de codage définis ci-dessus.
L'invention concerne également un dispositif de codage adapté pour mettre en œuvre 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 décodage, et ne sont pas détaillés plus amplement.
L'invention concerne également 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 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.
Corrélativement, l'invention concerne aussi un équipement terminal comprenant un module d'émission et un module de réception de données vers et en provenance d'un réseau de télécommunications, un dispositif de codage et un dispositif de décodage selon l'invention.
L'invention concerne encore un programme d'ordinateur comportant des instructions pour la mise en œuvre des étapes d'un procédé de codage d'une image numérique tel que décrit précédemment, lorsque ce programme est exécuté par un processeur.
L'invention concerne aussi un programme d'ordinateur comportant des instructions pour la mise en œuvre des étapes d'un procédé de décodage d'une image numérique tel que décrit précédemment, lorsque ce programme est exécuté par un processeur.
Ces programmes peuvent utiliser n'importe quel langage de programmation. Ils peuvent être téléchargés depuis un réseau de communication et/ou enregistrés sur un support lisible par ordinateur.
L'invention se rapporte enfin à des supports d'enregistrement, lisibles par un processeur, intégrés ou non au dispositif de codage d'une image numérique et au dispositif de décodage d'une image numérique selon l'invention, éventuellement amovible, mémorisant respectivement un programme d'ordinateur mettant en œuvre un procédé de codage et un programme d'ordinateur mettant en œuvre un procédé de décodage, tels que décrits précédemment.
6. Liste des figures
D'autres avantages et caractéristiques de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation particulier de l'invention, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : la figure 1 (déjà décrite) présente de façon schématique une séquence d'images numériques découpées en blocs de pixels ; les figures 2A et 2B (déjà décrites) présentent les transformées DCT et DST mises en œuvre par l'encodeur de la norme HEVC ; la figure 3 présente de façon schématique les étapes d'un procédé de codage d'une image numérique selon l'invention ; la figure 4 présente de façon schématique les étapes d'un procédé de décodage d'une image numérique selon l'invention ; la figure 5 présente de façon schématique un modèle de structure temporelle hiérarchique d'un groupe d'images mis en œuvre par un mode de réalisation de l'invention ; la figure 7 présente un premier exemple de table de transformées associant un numéro de couche temporelle à une liste selon un mode de réalisation de l'invention ; les figure 8A et 8B présente un deuxième exemple basé sur deux tables associant pour la première table un numéro de couche temporelle à un nombre de transformées, à identifier dans une liste de transformées indiquées dans la deuxième table, selon un deuxième mode de réalisation de l'invention ; la figure 9 présente des exemples de configurations de listes de transformées en fonction d'un numéro de couche temporelle ; la figure 10 présente les performances réalisées par un codeur mettant en œuvre le procédé de codage selon l'invention, lorsque l'information de distance temporelle utilisée est un numéro de couche temporelle ; la figure 11 présente de façon schématique la structure matérielle d'un dispositif de codage d'une image numérique selon l'invention ; et la figure 12 présente de façon schématique la structure matérielle d'un dispositif de décodage d'une image numérique selon l'invention.
7. Description d'un mode de réalisation particulier de l'invention
Le principe général de l'invention repose sur une association préalable de sous-ensembles de transformées à des valeurs ou à des plages de valeurs d'une distance temporelle du bloc courant par rapport à au moins u ne image de référence. Cet indicateur est estimé de façon similaire au codeur et au décodeur. Le codeur obtient une valeur d'indicateur pour le bloc courant, choisit la transformée à appliquer au bloc courant dans le sous ensemble de transformées associé à cette valeur de l'indicateur. Si besoin, il signale ensuite au décodeur quelle transformée il a utilisé dans ce sous- ensemble. De façon correspondante, le décodeur obtient une valeur de distance temporelle pour le bloc courant et accède au sous-ensemble de transformée qui lui est associé. A l'aide de la signalisation éventuelle, il identifie la transformée appliquée au bloc courant et applique la transformée inverse.
Dans la suite de la description, on considère une vidéo originale constituée d'une suite de K images Ii, ,■■■Ικ, avec K entier non nul, telle que celle déjà présentée en relation avec la Figure 1. Les images sont encodées par un encodeur, les données codées sont insérées un train binaire TB transmis à un décodeur via un réseau de communication, ou un fichier compressé FC, destiné à être stocké sur un disque dur par exemple. Le décodeur extrait les données codées, puis reçues et décodées par un décodeur dans un ordre prédéfini connu de l'encodeur et du décodeur, par exemple dans l'ordre temporel Ii, puis , puis IK, cet ordre pouvant différer suivant le mode de réalisation.
Dans la suite de la description, on se place dans un contexte de compétition de transformées, selon lequel le codeur teste les transformées d'un sous-ensemble de transformées et choisit pour le bloc courant celle qui réalise les meilleures performances de compression selon un critère débit- distorsion. 7.1 Procédé de codage d'une image d'une séquence
En relation avec la Figure 3, on considère maintenant les étapes d'un procédé de codage selon un mode de réalisation de l'invention. Dans la suite de la description, on se place en particulier dans un contexte de compétition de transformées.
Une image Ik est découpée en blocs CTU (pour « Coding Tree Unit », en anglais) de taille, par exemple égale à 64x64 pixels.
Au cours d'une étape E0, on sélectionne un bloc à traiter, dit bloc courant c. Par exemple, il s'agit d'un bloc CU (pour « Coding Unit », en anglais), carré ou rectangulaire, de dimensions MxN, avec M et N entiers non nuls, obtenu par partitionnement d'un bloc CTU.
Au cours d'une étape El, il est procédé à une étape de prédiction du bloc c. Cette opération, conforme à l'art antérieur, est réalisée à partir de pixels issus de l'image en cours de codage (codage intra) ou reposant sur une image déjà traitée par l'opération d'encodage (codage inter). On obtient un bloc prédit Pr. Dans la suite de la description, on suppose que le bloc courant est prédit selon un mode de prédiction inter, c'est-à-dire par rapport à un ou plusieurs images précédemment traitées, dites images de référence.
Au cours d'une étape E2, le bloc de pixels courant est soustrait, pixel à pixel, au bloc prédit au cours de l'opération précédente. On obtient un bloc de pixels résiduels R.
Selon l'invention, on obtient en E3 une distance temporelle, ou indicateur de variabilité IV du bloc courant par rapport au(x) images de référence. Plusieurs modes de réalisation de cette étape seront détaillés ci-après.
Au cours d'une étape E4, on identifie les transformées possibles pour le mode de prédiction considéré et la taille du bloc courant. On désigne par transformées possibles une pluralité T de transformées disponibles en mémoire de l'encodeur de façon préétablie, avec T entier non nul, par exemple T est égal à 32. Par exemple, cette pluralité est stockée sous forme d'une liste L ordonnée ou non, de transformées. On notera que cette liste peut être prédéterminée ou adaptative.
Selon l'invention, une pluralité de listes Ll à U, avec J entier non nul, a été formée à partir des transformées disponibles et on associe à la valeur de distance temporelle IV obtenue une de ces listes. Par exemple, une table stockée en mémoire comprend des enregistrements EGj, avec j entier inférieur à T qui font chacun correspondre à une valeur ou une plage de valeurs particulières de cet indicateur de variabilité, une liste Lj issue de la liste L. Avantageusement, un enregistrement EGj de la table associe à chaque valeur ou plage de valeurs de l'indicateur, un pointeur vers cette liste Lj. Des exemples de tables seront présentés ci-après en relation avec les figures 7 et 8.
Dans certains cas, la configuration des listes associées aux différentes valeurs de distance temporelle peut varier au cours du temps, pour s'adapter au changement de contenu de la séquence. Par exemple, la table comprend un premier enregistrement comprenant une première liste associée à une valeur ou une plage de valeurs prédéterminées de distance temporelle. On suppose que le codeur décide, suite à un changement de scène, de remplacer le premier enregistrement par un deuxième enregistrement comprenant une deuxième liste, associée à la même plage de valeurs. Cette mise à jour doit être signalée dans le train binaire afin que le décodeur mette à jour sa propre table.
Au cours d'une étape E5, on identifie une transformée Tri particulière dans la liste Lj obtenue.
Au cours d'une étape E6, pour la transformée Tn identifiée, avec i entier non nul compris entre 0 et T-1, il est procédé à la transformation du signal résiduel R. Un signal résiduel transformé RTi est obtenu . En E7, de façon connue dans l'état de l'art, les coefficients du bloc résiduel transformé sont scannés dans un ordre prédéterminé de façon à constituer un vecteur monodimensionnel RTi[m], où l'indice m varie de 0 à Nb-1, avec Nb nombre de pixels dans le bloc courant c. L'indice m est appelé fréquence du coefficient R[m] . Classiquement, on scanne ces coefficients par ordre globalement croissant ou décroissant de valeurs de fréquence, par exemple selon un parcours en zigzag, qui est connu de la norme de codage d'image fixes JPEG. Ce mode de parcours (pour « scanning » en anglais) peut aussi dépendre de la transformée appliquée. Comme le mode de parcours influence nécessairement l'ordre final des coefficients transformés dans le vecteur RTi[m], on considère dans la suite qu'une transformée identifiée Tn dans la liste Lj est associée à un mode de parcours particulier. Autrement dit, la même transformée associée à un autre mode de parcours se verra affecter un autre identifiant de transformée dans la liste Lj et sera de ce fait considérée comme une transformée distincte.
Les composantes du vecteur RTi sont ensuite quantifiées suivant une méthode de quantification donnée, scalaire ou vectorielle connue de l'homme de l'art, avec un paramètre de quantification QP réglant la précision de l'approximation réalisée dans cette étape. On obtient un vecteur quantifié RTQi.
En E8, les informations relatives au bloc courant, comprenant notamment les données quantifiées et des éléments de description du bloc tels que le mode de prédiction, sont encodées par une technique de codage entropique connue, telle que par exemple un codage de Huffman, codage arithmétique ou encore codage CABAC tel qu'utilisé dans la norme HEVC.
Au cours de cette étape, on examine s'il est nécessaire de signaler une information d'identification de la transformée Tri appliquée au bloc courant. On distingue deux cas :
Lorsque la liste Lj ne comprend qu'un seul identifiant de transformée, il n'est pas nécessaire de signaler quoi que ce soit. En effet, comme nous le verrons ci-après, le décodeur selon l'invention est agencé pour obtenir la liste Lj de façon correspondante à celle de l'encodeur.
Un avantage de ce mode de réalisation est qu'il est simple à mettre en œuvre et qu'il ne nécessite pas de signalisation, dans la mesure où la configuration de la liste est figée.
Lorsque la liste Lj comprend plus d'un identifiant de transformée, le codeur signale au décodeu r un index de position POS de la transformée Tri appliquée au bloc courant dans la liste Lj. Pour ce faire, la liste est avantageusement ordonnée de telle sorte que le codeur et le décodeur partagent la connaissance des positions des transformées dans la liste. Par exemple un identifiant de la transformée Tri dans une liste de quatre éléments est codé sur 4 bits (transformées TrO, tri, Tr2 et Tr3 respectivement pour un code 00, 01, 10, 11) alors qu'une liste de 8 éléments coûterait 3 bits (000, 001, 010, 011, 100, 101, 110 et 111 respectivement pour les transformées TrO, Tri, Tr2, Tr3, Tr4, Tr5, Tr6, Tr7 et Tr8), dans le cas d'un code à longueur fixe.
Un avantage de l'invention est que peu de bits sont nécessaires pour signaler la transformées Tri dans le train binaire, contrairement à l'état de l'art qui transmet explicitement son identifiant complet. En E9, les performances de codage du bloc courant, pour cette transformée Tri sont évaluées, de façon connue de l'homme du métier, à partir d'une fonction de coût. La transformée choisie est celle qui maximise les performances de compression, selon un critère débit distorsion. Par exemple à travers une mesure de coût Lagrangien J = D + A x R, où D est la distorsion mesu rée su r le bloc reconstruit, R le débit généré lors du codage et λ le multiplicateur de Lagrange. En E10, on vérifie si toutes les transformées de la liste Lj ont été appliquées.
Si ce n'est pas le cas, on retourne à l'étape E5 au cou rs de laquelle une autre transformée de la liste Lj est identifiée. Les étapes E6 à E10 sont répétées pour la nouvelle transformée.
Si c'est le cas, on décide au cours de l'étape Eli de la meilleure transformée, à partir des valeurs de fonction de coût obtenues par chacune des transformées de la liste Lj et selon un critère d'optimisation débit-distorsion.
On notera que dans le cas d'un bloc CTU, la compétition de transformées est imbriquée avec la sélection du meilleur découpage en sous-blocs CU, c'est-à-dire qu'au cours de l'étape El i on choisit la meilleure transformée pour chacun des sous-blocs CU du bloc courant CTU.
Les données codées correspondant à la transformée choisie sont insérées dans le train binaire ou fichier compressé en E12.
En E13, on teste s'il reste des blocs à traiter dans l'image courante. Si oui, le procédé continue avec l'étape EO de sélection d'un bloc C à traiter. Sinon, le traitement est terminé pour cette image et on passe à l'image suivante selon l'ordre d'encodage. Le fichier compressé ou train binaire produit par le procédé de codage qui vient d'être décrit est transmis à un décodeur par exemple via un réseau de télécommunications.
7.2 Procédé de décodage d'image d'une séquence d'images
On suppose que le train binaire TB a été reçu par un dispositif de décodage mettant en œuvre un procédé de décodage selon l'invention. Ce procédé de décodage va maintenant être décrit en relation avec la Figure 4.
En DO, on commence par sélectionner comme bloc courant C le premier bloc à traiter. Par exemple, il s'agit du premier bloc (dans l'ordre lexicographique). Ce bloc comporte MxN pixels, avec M et N entiers non nuls.
Comme décrit pour le procédé d'encodage, le bloc C considéré peut être un bloc CTU ou un sous-bloc CU obtenu par découpage du bloc CTU ou encore un bloc ou sous-bloc résidu obtenu par soustraction d'une prédiction du bloc courant au bloc courant.
Au cours d'une étape Dl, les données codées relatives au bloc courant C sont lues et décodées. Les données codées, comprennent des paramètres de codage, tels que par exemple le mode de prédiction utilisé et les valeurs relatives aux amplitudes et aux signes des coefficients résidus quantifiés du bloc courant.
Lorsque le mode de prédiction déterminé indique qu'une prédiction a été faite par l'encodeur, le bloc courant est prédit en D2, selon le mode de prédiction déterminé à partir d'un bloc déjà traité. Un bloc prédit Pr' est obtenu .
Au cours d'une étape D3, on décode les données lues représentatives des valeurs quantifiées, résiduelles du bloc courant (valeurs et signes des coefficients), sous la forme d'un vecteur de valeurs RQ'. On comprend qu'il s'agit de l'opération inverse de celle de codage entropique précédemment décrite en relation avec le procédé d'encodage.
Au cours d'une étape D4, on déquantifie les coefficients du vecteurs RQ' à l'aide d'un pas de quantification prédéterminé ou lu dans le fichier compressé.
En D5, on reconstruit un bloc résidu transformé RT' à partir du vecteur déquantifié.
En D6, selon l'invention, on obtient une distance temporelle, ou indicateur de variabilité IV, du bloc courant par rapport à sa ou ses références, de façon correspondante à celle du codeur. Plusieurs modes de réalisation vont être détaillés ci-après. On verra que, selon les mises en œuvre considérées, l'obtention peut être réalisée une fois pour tous les blocs d'une même image ou d'un même groupe d'image, ou bien doit être répétée pour chaque bloc courant.
En D7, on récupère une liste de transformées Lj associée à la valeur de la distance temporelle obtenue. Par exemple, lorsque les configurations des listes sont prédéterminées, elles sont connues du décodeur et associées respectivement à une valeur ou une plage de valeurs de la distance temporelle. Si les configurations ne sont pas prédéterminées, elles sont signalées dans le train binaire préalablement au décodage de l'image de façon à être connues du décodeur.
En D8, on identifie la transformée Tri appliquée au bloc résidu par le codeur. Deux cas sont envisagés : la liste Lj ne contient qu'une seule transformée. Le décodeur y accède directement sans besoin d'information supplémentaire ; la liste Lj contient plus qu'une transformée. Le décodeur lit dans le train binaire ou le fichier compressé une information de signalisation de la transformée Tri dans la liste. Il s'agit par exemple d'un index de position POS de la transformée dans la liste. L'hypothèse sous-jacente est que le codeur et le décodeur partagent une même connaissance d'un ordre des transformées dans la liste. .
De façon correspondante au codage, on note que le décodeur peut être amené à identifier une transformée Tri par sous-bloc CU du bloc CTU courant.
En D9, la transformée inverse de Tri est appliqué au bloc résidu R'. Un bloc résidu de pixels r' est obtenu.
En D10, le bloc c' est reconstruit à partir de sa prédiction Pr' et du bloc résidu r'. Il est stocké dans une mémoire M l, de façon à pouvoir servir de prédiction pour un bloc suivant.
Au cours d'une étape D12, on vient tester si le bloc courant est le dernier bloc à traiter le décodeur, compte tenu de l'ordre de parcours défini précédemment. Si oui, le procédé de décodage a terminé le traitement de l'image courante et passe à l'image suivante. Si non, l'étape suivante est l'étape de sélection du bloc suivant DO et les étapes de décodage Dl à D12 précédemment décrites sont répétées pour le bloc suivant sélectionné.
7.3 Obtention d'une information représentative d'une distance temporelle entre le bloc courant et au moins un bloc de référence On décrit maintenant plusieurs modes de réalisation de l'étape E3 d'obtention d'une distance temporelle d'un bloc courant C et de l'étape E4 d'obtention d'une liste en fonction de cette information. De façon correspondante ces modes de réalisation s'appliquent aux étapes D6 et D7 du procédé de décodage selon l'invention.
7.3.1 premier mode de réalisation
En relation avec la Figure 4, on considère un modèle de représentation hiérarchique en couches temporelles, dit modèle de Wien, d'un groupe d'images ou GoP (pour « Group of Pictures », en anglais) de la séquence, typiquement mise en œuvre par les normes successives de compression vidéo, telles que par exemple H265 ou HEVC.
Dans l'exemple représenté, le GoP comprend 9 images. Dans la séquence d'entrée, les images du GoP sont ordonnées de 10 à 18 avec des instants temporels associés tel que t0<tl <...<t8, correspondant à un ordre de restitution des images de la vidéo. A l'encodage, ces images sont traitées selon un ordre d'encodage qui diffère de l'ordre de restitution. La structure temporelle d'encodage s'appuie sur différents types d'images, parmi lesquels on distingue : les images Intra, qui sont codées indépendamment d'autres images précédemment traitées et servent de référence pour la prédiction inter d'autres images du GoP ;
les images Inter de type P, qui sont codées par prédiction temporelle à partir d'une image de référence déjà traitée, qui peut correspondre à un instant de restitution passé ou futur ; une image P peut servir elle-même de référence temporelle à une autre image ;
les images Inter de type B, qui sont codées par prédiction temporelle à partir de deux images de référence, une passée et une future. Une image B peut servir de référence temporelle à une autre image.
Dans l'exemple représenté, 10 et 18 sont des images Intra. Les images II à 17 sont des images B. Il n'y a pas d'image P.
Selon le modèle de Wien, on décompose le GoP en plusieurs couches temporelles : une première couche tidO, comprenant les images 110 et 18 . L'image 10 est codée la première, elle a donc le rang de codage rcO = 0 et l'image 18 est codée en deuxième, son rang est rc8 = 1 ;
une deuxième couche tid l, comprenant l'image 14 de type B. Ses images de référence sont 10 et 18. Son rang de codage est rc4 = 2 ; une troisième couche tid2, comprenant les images 12 et 16 de type B. 12 a pour références 10 et 14. 16 a pour références 14 et 18. Leurs rangs de codage sont rc2 = 3 et rc6 = 4 ;
une quatrième couche tid 3 comprenant les images II, 13, 15 et 17. Il a pour références 10 et 12, son rang de codage vaut rcl = 5 ; 13 a pour références 12 et 14, son rang de codage vaut rc3 = 6 ; 15 a pour références 14 et 16, son rang de codage vaut rc5 = 7 ; 17 a pour références
16 et 18, son rang de codage vaut rc 7.
On constate qu'une image est d'autant plus éloignée de ses références qu'elle appartient à une couche temporelle plus basse.
Or les inventeurs ont constaté que plus l'image courante est éloignée temporellement de ses références, plus la variabilité du bloc augmente. En effet, la probabilité que le contenu de l'image courante ait changé par rapport à celui de ses références est alors d'autant plus grande.
Selon ce mode de réalisation de l'invention, l'information représentative d'une distance temporelle du bloc comprend le numéro de couche temporelle à laquelle l'image courante appartient. Un avantage est que cette valeur est disponible au niveau du codeur et très facile à obtenir côté décodeur car, selon la norme ITU-T H265/HEVC par exemple, cette information est spécifiée dans l'élément de syntaxe nuh_temporal_id_plusl situé dans l'en-tête nal_unit_header() tel que spécifié dans la section 7.3.1.2 de la spécification ITU-T H .265 intitulée « High Efficiency Video Coding », publiée en avril 2015.
Le numéro de couche temporelle est commun à tous les blocs d'une même image ou d'un sous- ensemble de cette image, par exemple de type « slice ». Néanmoins, cette valeur est lue dans une mémoire pour chaque bloc à traiter. Côté codeur, l'étape E3 d'obtention d'une information représentative d'une distance temporelle est donc répétée pour chaque bloc courant. Côté décodeur, même si la valeur de numéro de couche temporelle est lue dans le train binaire une fois pour toutes, elle est stockée en mémoire, de telle sorte que le décodeur puisse y accéder pour le traitement du bloc courant.
En E4, on obtient donc une liste Lj de transformées associées au numéro de couche temporelle tidj du bloc courant.
On a donc créé au préalable une liste de transformées spécifique pour chaque numéro de couche temporelle. Par exemple, une table de correspondance fait correspondre un niveau temporel donné à une telle liste. Cette correspondance est soit fixe (connue du codeur et du décodeur), ou bien adaptative. Le cas adaptatif implique la signalisation des informations nécessaires, par exemple un pointeur vers une nouvelle liste. Ces informations seront par exemple placées et transmises pour une séquence d'images donnée, par exemple dans la structure syntaxique SPS (pour Séquence Parameter Set, en anglais) décrite dans la section 7.3.2.2 de la spécification ITU-T H.265, ou encore dans la structure syntaxique PPS pour (picture parameter set, en anglais), décrite dans la section 7.3.2.3 de la même norme. Ces structures syntaxiques sont transmises au décodeur dans le train binaire préalablement aux informations de décodage de la séquence d'images ut (comprenant les données codées représentatives des résidus, vecteurs de mouvements, modes de prédictions, filtres, etc).
L'étape d'obtention de la liste Lj en fonction du numéro de couche temporelle est donc elle aussi réalisée une fois pour tous les blocs de l'image ou de la slice considérée.
On détaille maintenant un exemple de mise en œuvre de ce mode de réalisation de l'invention dans le cadre du JEM-3.0, qui est le logiciel de test utilisé actuellement dans le grou pe de normalisation JVET (pour Joint Video Exploration Team, groupe conjoint formé par des experts de MPEG et VCEG, respectivement rattachés à l'ISO/IEC et l'ITU). Ce logiciel est décrit dans le document JVET-C1001 à l'adresse http ://phenix.it-sudparis.eu/ivet/doc end user/documents/3 Geneva/wql l/JVET-ClOOl- v3.zip.
On considère à titre d'exemples 4 listes de transformées distinctes, de tailles croissantes :
• LO : DCT-2
• Ll : DCT-2 + {TO, Tl>
· L2 : DCT-2 + {TO, Tl, T2, T3}
• L3 : DCT-2 + {TO, Tl, T2, T3, T4, T5, T6, T7}.
En relation avec la Figure 7, on présente un exemple d'association de liste avec un numéro de couche temporelle : tid3 est associé avec LO, tid2 avec Ll, tidl avec L2 et tidO avec L3.
En variante, ces listes peuvent être obtenues à partir des tables des Figures 8A et 8B. La Figure 8A associe à un identifiant de liste un nombre de transformées, par exemple 1 pour L3, 3 pour L2, 5 pour Ll et 7 pour LO et la Figure 8B comprend une table composée de plusieurs lignes, une ligne ou enregistrement de la table associant à des valeurs particulières de taille du bloc une séquence ordonnées de T-l transformées. Cette table est avantageusement stockée en mémoire du codeur ou du décodeur. On voit que les listes Lj sont obtenues à partir de cette unique table. Les T-l transformées sont rangées selon un ordre inversement proportionnel à leur fréquence d'appartenance aux listes préconfigurées. Autrement dit, les deux premières transformées de la séquence font partie de toutes les 4 listes, les deux suivantes des 3 dernières listes L2, Ll, L0, les deux encore suivantes des 2 dernières listes Ll, L0 et les deux dernières de la plus grande liste L0. Une première transformée, en l'espèce la DCT2-2D est commune à toutes les listes et n'est pas indiquée dans le tableau .
On comprend que pour récupérer les identifiants des transformées d'une liste Lj, il suffit dans ce mode de réalisation d'aller lire dans la table de la figure 8A le nombre de transformées qu'elle comprend et de lire le nombre d'identifiants correspondant dans la bonne ligne de la table de la figure 8B
On note que la table de la Figure 8B indique des couples de transformées plutôt que des transformées uniques ce qui correspond au fait qu'en codage d'image et vidéo, les transformées les plus utilisées sont généralement des transformées blocs linéaires et orthogonales, applicables aussi bien aux lignes qu'aux colonnes du bloc courant. Dans ce cas on spécifie un couple de transformées L-C lesquelles s'appliquent respectivement aux lignes et aux colonnes du résidu selon la relation exprimée dans l'équation ci-dessous :
X = L (C χ)' , avec x bloc résidu de pixels et X bloc résidu transformé.
En relation avec la table de la Figure 9, on considère maintenant des exemples de configurations de listes par couche temporelle. Ces différentes configurations sont mises à disposition d'un codeur type JEM-3 :
Ces différentes configurations ont été testées dans le codeu r et le décodeur JEM-3.0 et ont conduit aux résultats de la Figure 10. On constate qu'une configuration de liste adaptée permet d'améliorer les performances de codage du codeur JEM-3.0. Ici, la configuration est mise à jour pour chaque nouvelle séquence.
Par exemple, pour la séquence ClassD-S02-BQSquare_416x240_60, les configurations suivantes sont utilisées :
• pour les pas de quantification QP22 et QP32, utilisation de la configuration 0 ;
• pour le pas de quantification QP27 -> utilisation de la configuration 2 ;
· pour le pas de quantification QP37 -> utilisation de la configuration 5. Sur les séquences testées, ce mode de réalisation de l'invention permet d'améliorer en moyenne de débit de 0.14% avec des résultats plus élevés su r certaines séquences (jusqu'à -0.33%). Dans cet exemple, la configuration des listes et leur association aux numéros de couches temporelles par séquence est signalée dans l'en-tête SPS. On note qu'une augmentation du niveau de granularité (par exemple en passant au niveau image ou PPS) avec une mise à jour plus régulière des listes rendrait le système encore plus performant, puisque plus adapté aux variations temporelles du contenu et donc plus à même de traiter la variété et le type de résidus rencontrés. Par exemple, si l'encodeur évalue que la -liste associée à une couche temporelle n'est plus adaptée au contenu qu'il encode, par exemple parce qu'il a détecté un changement de scène, alors il peut choisir signaler dans le train binaire, par exemple au niveau de l'en-tête PPS, les informations nécessaires à la mise à jour des listes, d'une façon que le décodeur est configuré pour décoder et interpréter.
Avantageusement, le codeur insère systématiquement un bit dans le PPS pour indiquer au décodeur si une mise à jour des listes associées aux numéros de couches temporelles doit être faite ou non. Si ce bit est à 1, alors la signalisation suivante doit être décodée (exemple pour le cas ou J =2N listes sont disponibles) :
• Couche temporelle tidO -> N bits pour signaler le numéro de liste.
• Couche temporelle tid l -> N bits pour signaler le numéro de liste.
• Couche temporelle tid2 -> N bits pour signaler le numéro de liste.
· Couche temporelle tid 3 -> N bits pour signaler le numéro de liste.
7.3.2 Deuxième mode de réalisation
Selon un deuxième mode de réalisation de l'invention, l'information représentative d'une distance temporelle entre le bloc courant et le bloc de référence correspond à un nombre d'images séparant l'image courante de sa référence. Cette information est directement connue du codeur et elle est signalée au décodeur sous le nom de paramètre Delta POC pour différence de rang entre images (Delta Picture Order Count, en anglais) dans un en-tête du fichier compressé ou du train binaire. Elle est notamment transmise pour une séquence d'images donnée, d'une part dans le séquence parameter set (SPS, voir 7.3.2.2 de la norme ITU-T H265), ou d'autre part dans le slice_segment_header (voir 7.3.6.1 de la norme ITU-T H265). Plus précisément cette information est dérivée directement lors du décodage du short-term référence picture set (st_ref_pic_set, voir 7.3.7 de la norme ITU-T H265), qui est inclus dans le SPS et le slice_segment_header. Un avantage de cette information est qu'elle est directement disponible, sans nécessiter de calcul préalable.
En variante, on peut calculer une distance temporelle par différence entre les instants temporels associés respectivement à l'image courante et à l'image de référence.
Pour une image B, deux références sont utilisées. On peut par exemple faire une moyenne entre les deux distances temporelles obtenues ou encore conserver la distance la plus grande.
Cette mesure de distance temporelle est commune à tous les blocs d'une même image et le cas échéant d'une même slice, dont tous les blocs partagent les mêmes références. Elle peut donc être obtenue une fois pour tous les blocs de la même image/slice et stockée dans une mémoire à laquelle le codeur accède pour le traitement d'un bloc courant.
Dans ce deuxième mode de réalisation de l'invention, des listes sont donc associées aux différentes valeurs de distances temporelles obtenues.
Cette correspondance est faite préalablement, à partir d'un apprentissage basé sur un ensemble représentatif de séquences. Elle peut ensuite être fixe et dans ce cas, connue du codeur et du décodeur ou bien être adaptative, ce qui nécessite une signalisation appropriée. L'encodeur peut choisir de transmettre dans le train binaire les informations nécessaires à la mise à jour de la table de correspondance.
Le codeu r obtient la liste associée à la mesure de distance temporelle de l'image /slice avec sa ou ses références et l'utilise pour tous les blocs qu'elle comprend.
Pour chaque bloc de l'image, le codeur applique successivement les transformées de la liste obtenue à son résidu, choisit la meilleure transformée et code un index correspondant à une position de la transformée choisie dans la liste. :
Les procédés de codage et de décodage décrits précédemment peuvent être intégrés dans des codeurs/décodeurs vidéo standards tels que HEVC/H.265, AVC/H.264, les codeurs/décodeurs d'une norme à venir ou tout type de codeurs/décodeurs vidéo propriétaires. Les procédés de codage et de décodage selon l'invention s'appliquent également à tous types de signaux utilisant un codage prédictif. La figure 11 présente la structure simplifiée d'un dispositif de codage 100 adapté pour mettre en œuvre le procédé de codage selon l'un quelconque des modes particuliers de réalisation de l'invention, qui viennent d'être décrits en relation avec les figures 3 et 5. Le dispositif de codage 100 est adapté pour coder au moins une image découpée en blocs sous la forme d'un train binaire TB ou fichier compressé FC.
Le dispositif de codage 100 est notamment configuré pour: prédire des valeurs du bloc courant à partir d'au moins un bloc précédemment traité d'une image précédente ou suivante, dite image de référence,
calculer un bloc résidu (R) par soustraction des valeurs prédites aux valeurs originales du bloc courant,
transformer un bloc résidu par application d'une transformée, la transformée appartenant à une liste prédéterminée de transformées;
coder le bloc résidu transformé et d'une information d'identification de la transformée appliquée ;
Selon l'invention, le dispositif est en outre configuré pour : obtenir une information représentative d'une distance temporelle du bloc par rapport du au moins un bloc de référence ;
obtenir une liste de transformées parmi une pluralité de listes prédéterminées au moins en fonction de l'information obtenue ; et
- appliquer une transformée identifiée appartenant à la liste obtenue.
Selon un mode particulier de réalisation de l'invention, les étapes du procédé de codage sont mises en œuvre par des instructions de programme d'ordinateur. Pour cela, le dispositif de codage 100 a l'architecture classique d'un ordinateur et comprend notamment une mémoire MEM1, une unité de traitement UT1, équipée par exemple d'un microprocesseur μΐ, et pilotée par le programme d'ordinateur Pgl stocké en mémoire MEM1. Le programme d'ordinateur Pgl comprend des instructions pour mettre en œuvre les étapes du procédé de codage tel que décrit ci-dessus, lorsque le programme est exécuté par le processeur μΐ.
A l'initialisation, les instructions de code du programme d'ordinateur Pgl sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur PROC. Le processeur μΐ de l'unité de traitement UT1 met notamment en œuvre les étapes du procédé de codage décrit ci-dessus, selon les instructions du programme d'ordinateur Pg l.
Selon un autre mode particulier de réalisation de l'invention, le procédé de codage est mis en œuvre par des modules ou unités fonctionnel(le)s. Pour cela, le dispositif de codage 100 comprend en outre les modules suivants:
Prédiction des valeurs du bloc courant à partir d'au moins un bloc précédemment traité d'une image précédente ou suivante, dite image de référence,
Calcul d'un bloc résidu par soustraction des valeurs prédites aux valeurs originales du bloc courant,
- Transformation du bloc résidu par application d'une transformée;
Codage du bloc résidu transformé ;
Selon l'invention, le dispositif comprend en outre une unité d'obtention d'une information représentative d'une distance temporelle du bloc courant par rapport à au moins une image de référence, une unité d'obtention d'une liste de transformées parmi une pluralité de listes prédéterminées au moins à partir de l'information obtenue et l'unité de transformation applique une transformée de la liste déterminée.
L'unité de traitement UT1 coopère avec les différents modules fonctionnels décrits ci-dessus et la mémoire MEM 1 afin de mettre en œuvre les étapes du procédé de codage.
Selon un mode de réalisation de l'invention, le dispositif 100 comprend en outre une unité Mi de stockage des tables précédemment décrites dans les différents modes de réalisation de l'invention, telles que par exemple une table comprenant des enregistrements associant à une valeur ou une plage de valeurs de de l'information une liste de transformées.
Ces unités sont pilotées par le processeur μι de l'unité de traitement 110.
De façon avantageuse, un tel dispositif de codage 100 peut être intégré à un équipement terminal d'utilisateur TU, tel qu'un ordinateur personnel, une tablette, une caméra numérique, un téléphone mobile intelligent (pour « smartphone », en anglais), etc. Le dispositif 100 est alors agencé pour coopérer au moins avec le module suivant du terminal TU : un module E/R d'émission/réception de données, par l'intermédiaire duquel le train binaire TB ou le fichier compressé FC est transmis dans un réseau de télécommunications, par exemple un réseau filaire, radio, ou hertzien. Les différents modules fonctionnels décrits ci-dessus peuvent être sous forme matérielle et/ou logicielle. Sous une forme logicielle, un tel module fonctionnel peut comprendre un processeur, une mémoire et des instructions de code de programme pour mettre en œuvre la fonction correspondante au module lorsque les instructions de code sont exécutées par un le processeur. Sous une forme matérielle, un tel module fonctionnel peut mis en œuvre par tout type de circuits d'encodage adaptés, tels que par exemple et de manière non limitative des microprocesseurs, des processeurs de traitement du signal (DSP pour Digital Signal Processor en anglais), des circuits intégrés spécifiques à des applications (ASICs pour Application Spécifie Integrated Circuit en anglais), des circuits FPGA pour Field Programmable Gâte Arrays en anglais, un câblage d'unités logiques. La figure 12 présente la structure simplifiée d'un dispositif de décodage 200 adapté pour mettre en œuvre le procédé de décodage selon l'un quelconque des modes particuliers de réalisation de l'invention qui viennent d'être décrits en relation avec les Figures 4 et 5. Le dispositif de décodage 200 est adapté pour décoder un train binaire ou un fichier comprenant des données codées représentatives d'au moins une image, ladite image étant découpée en blocs. Le dispositif de décodage 200 est notamment configuré pour:
Prédire un bloc courant à partir d'au moins un bloc précédemment traité d'une image précédente ou suivante, dite image de référence;
Décoder des valeurs codées des coefficients du bloc résidu transformé extraites du train binaire ;
- Réaliser une transformation inverse du bloc résidu transformé;
Reconstruire le bloc décodé à partir du bloc résidu et de la prédiction du bloc courant;
Selon l'invention, il est en outre configuré pour obtenir une information représentative d'une distance temporelle du bloc courant par rapport à au moins une image de référence, obtenir une liste de transformées parmi une pluralité de listes prédéterminées au moins en fonction de l'information obtenue et identifier la transformée à appliquer dans la liste déterminée.
Selon un mode particulier de réalisation de l'invention, le dispositif de décodage 200 a l'architecture classique d'un ordinateur et comprend notamment une mémoire MEM2, une unité de traitement UT2, équipée par exemple d'un microprocesseur μ2, et pilotée par le programme d'ordinateur Pg2 stocké en mémoire MEM2. Le programme d'ordinateur Pg2 comprend des instructions pour mettre en œuvre les étapes du procédé de décodage tel que décrit ci-dessus, lorsque le programme est exécuté par le processeur μ2. A l'initialisation, les instructions de code du programme d'ordinateur Pg2 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur μ2. Le processeur μ2 de l'unité de traitement UT2 met notamment en œuvre les étapes du procédé de décodage décrit ci- dessus, selon les instructions du programme d'ordinateur Pg2. Selon un autre mode particulier de réalisation de l'invention, le procédé de décodage est mis en œuvre par des modules fonctionnels. Pour cela, le dispositif de décodage 200 comprend en outre les modules suivants :
Prédiction d'un bloc courant à partir d'au moins un bloc précédemment traité d'une image précédente ou suivante, dite image de référence;
- Décodage des valeurs codées des coefficients du bloc résidu transformé extraites du train binaire ;
Transformation inverse du bloc résidu transformé par application d'une transformée;
Reconstruction du bloc décodé à partir du bloc résidu et de la prédiction du bloc courant;
Selon l'invention, il comprend en outre une unité d'obtention d'une information représentative d'une distance temporelle du bloc courant par rapport à au moins une image de référence, une unité d'obtention d'une liste de transformées parmi une pluralité de listes prédéterminées au moins en fonction de l'information obtenue et une unité d'identification de la transformée dans la liste obtenue.
L'unité de traitement μ2 coopère avec les différents modules fonctionnels décrits ci-dessus et la mémoire MEM2 afin de mettre en œuvre les étapes du procédé de décodage. Le dispositif 200 comprend en outre une unité M2 de stockage d'une table associant à une valeur ou plage de valeur de l'information une liste de transformées.
Ces unités sont pilotées par le processeur μ2 de l'unité de traitement μ2.
Les différents modules fonctionnels décrits ci-dessus peuvent être sous forme matérielle et/ou logicielle. Sous une forme logicielle, un tel module fonctionnel peut comprendre un processeur, une mémoire et des instructions de code de programme pour mettre en œuvre la fonction correspondante au module lorsque les instructions de code sont exécutées par un le processeur. Sous une forme matérielle, un tel module fonctionnel peut mis en œuvre par tout type de circuits d'encodage adaptés, tels que par exemple et de manière non limitative des microprocesseurs, des processeurs de traitement du signal (DSP pour Digital Signal Processor en anglais), des circuits intégrés spécifiques à des applications (ASICs pour Application Spécifie Integrated Circuit en anglais), des circuits FPGA pour Field Programmable Gâte Arrays en anglais, un câblage d'unités logiques. De façon avantageuse, un tel dispositif 200 peut être intégré à un terminal d'utilisateur TU, par exemple un décodeur, un boîtier de connexion TV (pour « Set-Top-Box », en anglais), un téléviseur numérique, un ordinateur, une tablette, un téléphone mobile intelligent, etc. Le dispositif 200 est alors agencé pour coopérer au moins avec le module suivant du terminal TU : - un module E/R d'émission/réception de données, par l'intermédiaire duquel le train binaire
TB ou le fichier compressé FC est reçu du réseau de télécommunications. un module DISP d'affichage des images numériques décodées.
L'invention qui vient d'être présentée peut être utilisée dans tout système de codage d'images ou de vidéo. Notamment elle a vocation à être valorisée dans un futur standard de compression ITU/MPEG. Elle peut trouver de nombreuses applications, nécessitant une compression de signal vidéo, audio (paroles, son), d'images fixes, d'images acquises par u n module d'imagerie médicale. Elle s'applique par exemple aussi bien aux contenus bidimensionnels (2D), tridimensionnels (3D) incluant une carte de profondeur, ou encore d'images multispectrales (dont les intensités de couleur sont différentes des trois bandes rouge vert bleu) ou enfin d'images intégrales. L'invention.
Il va de soi que les modes de réalisation qui ont été décrits ci-dessus ont été donnés à titre purement indicatif et nullement limitatif, et que de nombreuses modifications peuvent être facilement apportées par l'homme de l'art sans pour autant sortir du cadre de l'invention.

Claims

REVENDICATIONS
1. Procédé de codage d'une image d'une séquence d'images numériques, ladite image étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc, dit bloc courant, de l'image courante, de dimensions prédéterminées :
Prédiction (El) des valeurs du bloc courant à partir d'au moins un bloc précédemment traité issu d'au moins une image précédente ou suivante, dite de référence,
Calcul (E2) d'un bloc résidu (R) par soustraction des valeurs prédites aux valeurs originales du bloc courant,
Transformation (E6) du bloc résidu par application d'une transformée;
Codage (E7) du bloc résidu transformé; caractérisé en ce que le procédé comprend en outre une étape (E3) d'obtention d'une information représentative d'une distance temporelle du bloc résidu courant par rapport à la au moins une image de référence, une étape d'obtention (E4) d'une liste de transformées parmi une pluralité de listes prédéterminées au moins en fonction de l'information représentative d'une distance temporelle obtenue, une valeur ou une plage de valeurs de ladite information étant associée à une dite liste de transformées, et en ce que l'étape de transformation applique une transformée de la liste obtenue.
2. Procédé de décodage d'une image d'une séquence d'images à partir de données codées représentatives de ladite image, ladite image (Ik) étant divisée en une pluralité de blocs traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc (C), dit bloc courant :
Prédiction (D2) du bloc courant à partir d'au moins un bloc précédemment traité d'au moins une image précédente ou suivante, dite image de référence;
Décodage (D3) des données codées représentatives des coefficients du bloc résidu transformé ;
Transformation inverse (D9) du bloc résidu transformé;
Reconstruction (D10) du bloc décodé à partir du bloc résidu et de la prédiction du bloc courant; ledit procédé étant caractérisé en ce qu'il comprend une étape (D6) d'obtention d'une information représentative d'une distance temporelle entre le bloc résidu courant et à ladite au moins une image de référence, une étape d'obtention (D7) d'une liste de transformées parmi une pluralité de listes prédéterminées au moins en fonction de l'information de distance temporelle obtenue, une valeur ou une plage de valeurs de ladite information étant associée à une dite liste de transformées et une étape d'identification (D8) de la transformée à appliquer dans la liste obtenue.
Procédé selon l'une des revendications 1 ou 2, caractérisé en ce que, l'information représentative d'une distance temporelle augmente ou diminue avec la distance temporelle entre le bloc résidu et l'image de référence et en ce que le nombre de transformées de la liste obtenue augmente avec la distance temporelle.
Procédé selon la revendication 1 à 3, caractérisé en ce que, les images d'un grou pe d'images de la séquence étant réparties entre plusieurs couches temporelles, l'information représentative d'une distance temporelle comprend un identifiant de couche temporelle de l'image du bloc courant dans le groupe d'images, ledit identifiant étant associé à une liste de transformées dans une table.
Procédé selon la revendication 1 à 4, caractérisé en ce que l'information représentative d'une distance temporelle est obtenue par différence entre une information représentative d'un instant temporel associé à l'image du bloc courant et une information représentative d'un instant temporel associé à ladite au moins une image de référence.
Procédé de codage d'une image selon l'une des revendications 1 et 3 à 5, caractérisé en ce que, lorsque la liste obtenue comprend une séquence ordonnée de plusieurs transformées, l'étape de transformation est répétée pour les transformées de la liste, le procédé comprend une étape de sélection d'une transformée parmi les transformées de la liste appliquées au bloc courant selon un critère débit distorsion et une étape de codage d'une information représentative d'un index de position de la transformée sélectionnée dans la liste obtenue.
Procédé de décodage d'une image numérique selon l'une des revendications 2 à 5, caractérisé en ce que, lorsque la liste comprend plusieurs transformées, l'étape d'identification de la transformée comprend en outre une étape de décodage d'une information d'identification de la transformée dans la liste.
Dispositif (100) de codage d'une image numérique, ladite image (Ik) étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, ledit dispositif comprenant une machine de calcul dédiée à et configurée pour :
Prédire (PRED) des valeurs du bloc courant à partir d'au moins un bloc précédemment traité d'une image précédente ou suivante, dite image de référence,
Calculer (CALC) un bloc résidu (R) par soustraction des valeurs prédites aux valeurs originales du bloc courant,
Transformer (TRANSF) le bloc résidu par application d'une transformée;
Coder (COD) le bloc résidu transformé ; caractérisé en ce que la machine de calcul est en outre configurée pour obtenir (OBT IV) une information représentative d'une distance temporelle entre le bloc résidu courant et ladite au moins une image de référence, obtenir (OBT L) une liste de transformées parmi une pluralité de listes prédéterminées au moins en fonction de l'information de distance temporelle obtenue, une valeur ou une plage de valeurs de ladite information étant associée à une dite liste de transformées, et pour appliquer au bloc résidu une transformée identifiée dans la liste obtenue.
Dispositif (200) de décodage d'une image d'une séquence d'images à partir de données codées représentatives de ladite image, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, ledit dispositif comprenant une machine de calcul dédiée à et configurée pour :
Prédire (PRED) un bloc courant à partir d'au moins un bloc précédemment traité d'une image précédente ou suivante, dite image de référence;
Décoder (DEC) des valeurs codées des coefficients du bloc résidu transformé extraites du train binaire ;
Réaliser une transformation inverse (TRANS-1) du bloc résidu transformé;
Reconstruire (RECONST) le bloc décodé à partir du bloc résidu et de la prédiction du bloc courant; ledit dispositif étant caractérisé en ce que la machine de calcul est en outre configurée pour obtenir (OBT IV) une information représentative d'une distance temporelle entre le bloc résidu courant et ladite au moins une image de référence, obtenir (OBT L) une liste de transformées parmi une pluralité de listes prédéterminées au moins en fonction de l'indicateur obtenu, une valeur ou une plage de valeurs de l'indicateur étant associée à une dite liste de transformées, et identifier (ID TR) la transformée dans la liste obtenue.
10. Equipement terminal (TU) caractérisé en ce qu'il comprend un module d'émission (E/R) et un module (E/R) de réception de données vers et en provenance d'un réseau de télécommunications, un dispositif (100) de codage d'une image numérique selon la revendication 8 et un dispositif de décodage (200) selon la revendication 9.
11. Programme d'ordinateur (Pgl) comprenant des instructions pour la mise en œuvre du procédé de codage d'une image numérique selon l'une des revendications 1 et 3 à 6, lorsqu'il est exécuté par un processeur.
12. Programme d'ordinateur comprenant des instructions pour la mise en œuvre du procédé de décodage d'une image numérique selon l'une des revendications 2 à 5 et 7, lorsqu'il est exécuté par un processeur.
PCT/FR2017/052603 2016-10-04 2017-09-27 Procédé de codage d'une image numérique, procédé de décodage, dispositifs, équipement terminal et programmes d'ordinateurs associés WO2018065698A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1659589A FR3057131A1 (fr) 2016-10-04 2016-10-04 Procede de codage d'une image numerique, procede de decodage, dispositifs, terminal et programmes d'ordinateurs associes
FR1659589 2016-10-04

Publications (1)

Publication Number Publication Date
WO2018065698A1 true WO2018065698A1 (fr) 2018-04-12

Family

ID=58501458

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2017/052603 WO2018065698A1 (fr) 2016-10-04 2017-09-27 Procédé de codage d'une image numérique, procédé de décodage, dispositifs, équipement terminal et programmes d'ordinateurs associés

Country Status (2)

Country Link
FR (1) FR3057131A1 (fr)
WO (1) WO2018065698A1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010087807A1 (fr) 2009-01-27 2010-08-05 Thomson Licensing Procédés et appareil de sélection de transformée en codage et décodage vidéo
EP2418855A1 (fr) 2009-04-08 2012-02-15 Sharp Kabushiki Kaisha Dispositif de codage vidéo et dispositif de décodage vidéo

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014045434A (ja) * 2012-08-28 2014-03-13 Nippon Hoso Kyokai <Nhk> 画像符号化装置、画像復号装置及びそれらのプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010087807A1 (fr) 2009-01-27 2010-08-05 Thomson Licensing Procédés et appareil de sélection de transformée en codage et décodage vidéo
EP2418855A1 (fr) 2009-04-08 2012-02-15 Sharp Kabushiki Kaisha Dispositif de codage vidéo et dispositif de décodage vidéo

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A. ARRUFAT ET AL.: "Rate-distortion optimised transform compétition for intra coding in HEVC", PROCEEDINGS DE LA CONFÉRENCE IEEE VISUAL COMMUNICATION ON IMAGE PROCESSING, December 2014 (2014-12-01)
GARY J. SULLIVAN ET AL: "Overview of the High Efficiency Video Coding (HEVC) Standard", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY., vol. 22, no. 12, 1 December 2012 (2012-12-01), US, pages 1649 - 1668, XP055284729, ISSN: 1051-8215, DOI: 10.1109/TCSVT.2012.2221191 *

Also Published As

Publication number Publication date
FR3057131A1 (fr) 2018-04-06

Similar Documents

Publication Publication Date Title
CN108632625B (zh) 一种视频编码方法、视频解码方法和相关设备
US10448032B2 (en) Signaling of down-sampling location information in scalable video coding
CN104904216B (zh) 在视频译码中具有时间可扩缩性支持的逐渐解码刷新
US9420280B2 (en) Adaptive upsampling filters
WO2020055279A1 (fr) Codage et décodage hybrides de vidéo et de caractéristique
RU2559691C2 (ru) Способ декодирования, декодер, программный продукт, программное приложение для мобильного устройства беспроводной связи и электронный потребительский продукт
CN105052142B (zh) 仅高级语法shvc中的一般化残余预测及其信令和管理
EP3183879A1 (fr) Procédé de codage d&#39;une image numérique, procédé de décodage, dispositifs, et programmes d&#39;ordinateurs associés
CN105379286A (zh) 跨层的图片分割的位流限制
CN104641645A (zh) 用于视频译码的交错视频数据的指示
FR3038196A1 (fr) Procede de codage d&#39;une image numerique, procede de decodage, dispositifs et programmes d&#39;ordinateurs associes
CN104798372A (zh) 在视频译码中针对高效率视频译码(hevc)扩展对多个层的低复杂性支持
KR102562209B1 (ko) 포인트 클라우드 코딩에서의 효율적인 패치 회전
EP3061246A1 (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
FR3050598A1 (fr) Procede de decodage d&#39;une image numerique, procede de codage, dispositifs, et programmes d&#39;ordinateurs associes
WO2011072893A1 (fr) Codage vidéo au moyen des flux de pixels
FR3046321A1 (fr) Procede de codage d&#39;une image numerique, procede de decodage, dispositifs, terminal d&#39;utilisateur et programmes d&#39;ordinateurs associes
WO2016102804A1 (fr) Procede de codage d&#39;une image numerique, procede de decodage, dispositifs et programmes d&#39;ordinateurs associes
Kavitha et al. A survey of image compression methods for low depth-of-field images and image sequences
WO2018065698A1 (fr) Procédé de codage d&#39;une image numérique, procédé de décodage, dispositifs, équipement terminal et programmes d&#39;ordinateurs associés
EP3685283A1 (fr) Procedes de codage et de decodage d&#39;une image
CN114762339A (zh) 基于变换跳过和调色板编码相关高级语法元素的图像或视频编码
JP2022526770A (ja) ビデオコーディングのための変換ユニット区分方法
FR3057130B1 (fr) Procede de codage d&#39;une image, procede de decodage, dispositifs, equipement terminal et programmes d&#39;ordinateurs associes

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: 17792109

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17792109

Country of ref document: EP

Kind code of ref document: A1