WO2013007920A1 - Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'ordinateur correspondants - Google Patents

Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'ordinateur correspondants Download PDF

Info

Publication number
WO2013007920A1
WO2013007920A1 PCT/FR2012/051551 FR2012051551W WO2013007920A1 WO 2013007920 A1 WO2013007920 A1 WO 2013007920A1 FR 2012051551 W FR2012051551 W FR 2012051551W WO 2013007920 A1 WO2013007920 A1 WO 2013007920A1
Authority
WO
WIPO (PCT)
Prior art keywords
updating
symbol
probability
predetermined
symbols
Prior art date
Application number
PCT/FR2012/051551
Other languages
English (en)
Inventor
Felix Henry
Stéphane PATEUX
Gordon Clare
Original Assignee
France Telecom
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 France Telecom filed Critical France Telecom
Publication of WO2013007920A1 publication Critical patent/WO2013007920A1/fr

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3071Prediction
    • 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
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • H03M7/4018Context adapative binary arithmetic codes [CABAC]

Definitions

  • the present invention relates generally to the field of image processing, and more specifically to the encoding and decoding of digital images and digital image sequences.
  • the invention can thus, in particular, apply to the video coding implemented in current (MPEG, H.264, etc.) or future video encoders (ITU-T / VCEG (H.265) or ISO / MPEG ( HVC).
  • current MPEG, H.264, etc.
  • future video encoders ITU-T / VCEG (H.265)
  • ISO / MPEG HVC
  • each macroblock is itself divided into blocks and each block, or macroblock, is coded by intra-image prediction or inter-image prediction.
  • intra-image prediction some images are coded by spatial prediction (intra prediction), while other images are coded by temporal prediction (inter prediction) with respect to one or more coded-decoded reference images, by means of compensation. in motion known to those skilled in the art.
  • inter prediction temporal prediction
  • for each block can be coded a residual block corresponding to the original block minus a prediction.
  • the coefficients of this block are quantized after a possible transformation, then coded by an entropic coder.
  • Intra prediction and inter prediction require that some blocks that have been previously coded and decoded be available, so as to be used, both at the decoder and the encoder, to predict the current block.
  • a schematic example of such a predictive coding is shown in FIG. 1A, in which an image IE is divided into blocks, a current block B of this image being subjected to a predictive coding with respect to a predetermined number of three blocks previously encoded and decoded.
  • the three aforementioned blocks specifically include block B 0 located immediately at left of the current block B ,, and the two blocks B 3 and B 4 respectively located immediately above and to the right above the current block B ,.
  • entropic coder which encodes the information according to their order of arrival.
  • a line-by-line path of the blocks is made, of "raster-scan" type, as illustrated in FIG. 1A by the reference PRS, starting from the block B1 located at the top left of the image.
  • PRS raster-scan
  • the various information necessary for the representation of the block (block type, prediction mode, residual coefficients, ...) are sent sequentially to the entropy coder.
  • CABAC Context Adaptive Binary Arithmetic Coder
  • This entropic encoder implements various features:
  • arithmetic coding the coder, as initially described in J. Rissanen and G. G. Langdon, "Universal modeling and coding,” IEEE Trans. Inform. Theory, vol. IT-27, pp. 12-23, Jan. 1981, uses, to encode a symbol, a probability of appearance of this symbol;
  • Adaptation to the context is to adapt the probability of appearance of the symbols to be coded from the probabilities of appearance of previously coded symbols. On the one hand, a learning of the probabilities on the fly is realized. On the other hand, depending on the state of the previously coded information, a specific context is used for encoding the symbols.
  • Each context corresponds to a probability of appearance of the symbol itself.
  • a context corresponds to a type of coded symbol (the representation of a coefficient of a residue, the coding mode signaling, etc.) according to a given configuration, or a neighborhood state (for example the number of "intra" modes selected in the vicinity, ...);
  • binarization a setting in the form of a sequence of bits of the symbols to be encoded is performed. Subsequently, these different bits are successively sent to the binary entropic coder.
  • this entropic coder implements, for each context used, a system for learning on-the-fly probabilities with respect to symbols previously coded for the context in question. This learning is based on the coding order of these symbols. Typically, the image is scanned according to a "raster-scan" type order, described above.
  • FIG. 1A A schematic example of such an entropy coding is shown in FIG. 1A, in which a current block B of the current image IE is subjected to entropy coding.
  • the current block Bi is the first block of the image
  • an interval representative of the probability of occurrence of a symbol contained in a predetermined set of symbols is initialized. This step is symbolized in FIG. 1A by a black dot represented on the first block.
  • the symbol appearance probabilities used are those obtained after coding a previously coded block.
  • the CABAC coder implements a quantization of the symbol appearance probabilities in the following manner. During the aforementioned initialization step, it is determined in the predetermined set of symbols:
  • the CABAC coder defines, for a given context model, the probability of an LPS as being able to take 64 possible values p n included in the probability interval [0.01875, 0.5], according to the following equation:
  • p n represents the updated value of the probability of occurrence of a given symbol and p n -i represents the value of the probability of appearance of symbol estimated at the last appearance of this symbol.
  • CABAC coder operates according to two transition tables allowing the updating of the probability of appearance of symbol, the choice of one or the other of the tables being a function of the type of coded symbol, MPS or LPS.
  • the transition table for an MPS contains the following 63 values:
  • TM ⁇ 0,1, 2,3,4,5,6,7,8,9,10,1 1, 12,13,14,15,16,17,18,19,20,21, 22, 23.24,2 5,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47 , 48.49, 0.51, 52.53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 62, 63).
  • the transition table for an LPS contains the following 63 values:
  • TL ⁇ 0,0,1,2,2,4,4,5,6,7,8,9,9,1,1,1,1,12,13,13,15,15,16,16,18 , 18,19,19,21, 21, 22,22,23,24,24,25,26,26,27,27,28,29,29,30,30,31, 32,32,33 , 33,33,34,34, 35,35,35,36,36,36,37,37,37,38,38,63 ⁇ .
  • the new probability is
  • Such a probability estimation method has the disadvantage that the transition speed to move from one probability state to another remains fixed.
  • said transition tables respectively allow only one way to change the probability when an encoded symbol is an LPS, and only one way to change the probability when a symbol coded is an MPS.
  • the video compression performance is not optimized, especially when the video signal have different variations over time, slow or fast.
  • a probability estimation method is proposed in which the learning speed of probabilities varies adaptively.
  • a "risk factor” is calculated each time a symbol is encoded, based on a predetermined number of previously encoded symbols. The probability of occurrence of said symbol is then estimated using the calculated risk factor, such probability being used later to code the next symbol.
  • the probability estimation method described in this document can produce a gain in compression of the signal, it nevertheless requires to recalculate a risk factor for each new coded symbol, which is costly in terms of calculation complexity to the coding , as in decoding.
  • the probability estimated from the recalculated risk factor can take any value between 0 and 1, which greatly increases the number of possible variations in the probability learning rate. This results in a very high complexity of the arithmetic coder in terms of software and hardware resources, which affects the speed of operation of the latter.
  • One of the aims of the invention is to overcome disadvantages of the state of the art mentioned above.
  • an object of the present invention relates to a method of encoding at least one image capable of containing a plurality of predetermined symbols, comprising, for at least one current symbol to be encoded, the steps of:
  • the method according to the invention is remarkable in that it further comprises the steps of:
  • Such an arrangement allows easy and fast hardware implementation of an entropy coder as it allows for a limited and predetermined choice of probability learning methods. Thanks to the lightness of such an implementation, the software complexity of the arithmetic encoder is greatly reduced, which increases its speed of execution.
  • the predetermined criterion for selecting one or the other of the updating methods depends on the result of a comparison between the number of symbols already coded and a predetermined number.
  • the predetermined criterion for selecting one or the other of the update methods depends on the result of a comparison between the number of symbols already encoded according to the determined context and a predetermined number.
  • the fastest update method is selected if the number of symbols already encoded according to the determined context is less than or equal to the predetermined number
  • the fastest update method is selected if the number of symbols already coded according to the context determined in the subset considered is less than or equal to the predetermined number, - The method of updating the slowest is selected otherwise.
  • Such an arrangement makes it possible to obtain an arithmetic coder conforming to the H.264 / MPEG-4 AVC standard and whose complexity in terms of hardware and software resources is optimized.
  • the coding method comprises, prior to the step of updating the estimated probability, a step of determining a first and a second set containing each of the symbols previously coded according to the determined context. the first set containing a number of symbols which is greater than the number of symbols of the second set, the update method selecting step of choosing:
  • the fastest updating method if the difference between the frequency of appearance of the current symbol in the first set and the frequency of appearance of the current symbol in the second set is greater than a predetermined threshold
  • Such an arrangement makes it possible to increase the compression performance of the arithmetic coder, since transitions in the video signal are taken into account after observation of a predetermined number of times when the same symbol has been coded.
  • the predetermined criterion for selecting one or the other of the updating methods depends on the result of a comparison between an estimate of the probability of appearance of a symbol corresponding to a first mode and a simulated estimate of the probability of appearance of a second mode symbol, the update method selection step of choosing:
  • the fastest updating method if the difference between the simulated probability and the estimated probability is greater than a predetermined threshold
  • the invention also relates to a device for encoding at least one image capable of containing a plurality of predetermined symbols, comprising, for at least one current symbol to be encoded:
  • Such a coding device is remarkable in that it furthermore comprises:
  • the invention also relates to a method for decoding a representative stream of at least one coded picture capable of containing a plurality of coded predetermined symbols, comprising the steps of:
  • Such a decoding method is remarkable in that it further comprises the steps of: selecting a method for updating the estimated probability among at least two different methods, according to a predetermined criterion,
  • the predetermined criterion for selecting one or the other of the updating methods depends on the result of a comparison between the number of decoded symbols and a predetermined number.
  • the predetermined criterion for selecting one or the other of the update methods depends on the result of a comparison between the number of symbols decoded according to the determined context and a predetermined number.
  • the fastest update method is selected if the number of symbols decoded according to the determined context is less than or equal to the predetermined number
  • the current symbol to be decoded belongs to a block of a subset of blocks of the image, such an image having been previously divided into a plurality of blocks, and the blocks having been grouped into a predetermined number of subsets of blocks:
  • the fastest update method is selected if the number of symbols decoded according to the context determined in the subset is less than or equal to the predetermined number
  • the decoding method comprises, prior to the updating step, a step of determining a first and a second set each containing decoded symbols according to the determined context, the first set containing a a number of symbols that is greater than the number of symbols in the second set, the update method selection step of choosing:
  • the fastest updating method if the difference between the frequency of appearance of the current symbol in the first set and the frequency of appearance of the current symbol in the second set is greater than a predetermined threshold
  • the predetermined criterion for selecting one or the other of the updating methods depends on the result of a comparison between an estimate of the probability of appearance of a symbol corresponding to a first mode and a simulated estimate of the probability of appearance of a second mode symbol, the update method selection step of choosing:
  • the fastest updating method if the difference between the simulated probability and the estimated probability is greater than a predetermined threshold
  • the invention also relates to a device for decoding a stream representative of at least one coded picture capable of containing a plurality of coded predetermined symbols, comprising:
  • Such a decoding device is remarkable in that it furthermore comprises: means for selecting a method for updating the estimated probability among at least two different methods, according to a predetermined criterion,
  • the invention also relates to a computer program comprising instructions for executing the steps of the above coding or decoding method, when the program is executed by a computer.
  • Such a program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any another desirable form.
  • Still another object of the invention is directed to a computer readable recording medium, and including computer program instructions as mentioned above.
  • the recording medium may be any entity or device capable of storing the program.
  • a medium may comprise storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording medium, for example a floppy disk or a Hard disk.
  • such a recording medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means.
  • the program according to the invention can be downloaded in particular on an Internet type network.
  • such a recording medium may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute the method in question or to be used in the execution of the latter.
  • the coding device, the decoding method, the decoding device and the aforementioned computer programs have at least the same advantages as those conferred by the coding method according to the present invention. Brief description of the drawings
  • FIG. 1A represents an image coding scheme of the prior art
  • FIG. 1B represents the evolution of the symbol appearance probabilities in a CABAC coder of the prior art
  • FIG. 2A represents the main steps of the coding method according to the invention
  • FIG. 2B shows in detail the coding implemented in the coding method of FIG. 2A
  • FIG. 3A represents a first embodiment of a coding device according to the invention
  • FIG. 3B represents a coding unit of the coding device of FIG. 3A
  • FIG. 4 represents an image coding / decoding scheme according to a preferred embodiment
  • FIG. 5A represents the main steps of the decoding method according to the invention.
  • FIG. 5B shows in detail the decoding implemented in the decoding method of FIG. 5A
  • FIG. 6A represents an embodiment of a decoding device according to the invention
  • FIG. 6B represents a decoding unit of the decoding device of FIG. 6A.
  • the coding method according to the invention is used to code a sequence of images according to a bit stream close to that obtained by a coding according to the H standard. .264 / MPEG-4 AVC.
  • the coding method according to the invention is for example implemented in a software or hardware way by modifications of an encoder initially conforming to the H.264 / MPEG-4 AVC standard.
  • the coding method according to the invention is represented in the form of an algorithm comprising steps C1 to C4, represented in FIG. 2A.
  • the coding method according to the invention is implemented in a coding device CO, an embodiment of which is shown in FIG. 3A.
  • the first coding step C1 is the cutting of an image IE of a sequence of images to be encoded in a predetermined order, into a plurality Z of blocks or macroblocks B ; B 2 , ..., Bi, ..., B z , as shown in Figure 1A.
  • Said blocks are able to contain one or more symbols, said symbols forming part of a predetermined set of symbols.
  • said blocks have a square shape and are all the same size.
  • the last blocks on the left and the last blocks on the bottom may not be square.
  • the blocks may be for example of rectangular size and / or not aligned with each other.
  • Each block or macroblock can also be itself divided into sub-blocks that are themselves subdividable.
  • Such splitting is performed by a partitioning PCO module shown in FIG. 3A which uses, for example, a partitioning algorithm that is well known as such.
  • the second coding step C2 which is optional and which for this reason is represented in dotted lines in FIG. 2A, is the grouping of the aforementioned blocks into a predetermined number P of consecutive subset subsets SE1 , SE2, .., SEk, ..., SEP to be coded sequentially or in parallel.
  • P 6
  • the six subsets of blocks are each represented in dashed line and consist respectively of the first six lines of blocks of the IE image.
  • the third coding step C3 consists in the coding of each of the blocks of the picture or of said subsets of blocks SE1 to SE6 if a grouping of the blocks has been implemented at the step C2 above.
  • the blocks are coded according to, for example, the "raster scan" path.
  • the blocks are encoded in a predetermined order of travel, which is for example sequential type.
  • the blocks of a subset SEk current (1 ⁇ k ⁇ P) are coded one after the other, from left to right, as indicated by the arrow PS.
  • such coding is implemented by a coding unit UC as represented in FIG. 3A.
  • the coder CO comprises a buffer memory MT which is adapted to contain the symbol appearance probabilities such as progressively updated as the coding of a current block progresses.
  • the coding unit UC comprises:
  • An entropy coding module of said current block by using at least one symbol appearance probability calculated for said previously coded and decoded block, denoted ECM.
  • the predictive coding module MCP is a software module that is able to carry out a predictive coding of the current block, according to conventional prediction techniques, such as for example in Intra and / or Inter mode.
  • the entropic coding module MCE is CABAC type, but modified according to the present invention as will be described later in the description.
  • the CABAC encoder operates in different different predefined contexts.
  • For each predetermined set of symbols to be encoded for example, motion vectors, quantized coefficients of the residue, etc.
  • For most predetermined sets of symbols there are actually several contexts each corresponding to a particular environment of the symbol to be encoded.
  • the environment consists, for example, in the previously coded blocks which are close to the current block to be coded or else in the previously coded blocks of another image than that containing the current block to be coded.
  • a symbol to be encoded is always in a known context of the decoder and the encoder.
  • the role of contexts is to identify sets of symbols corresponding to a homogeneous statistic. A common probability of symbol occurrence is then determined for each context. This requires maintaining as many common probabilities of symbols as contexts.
  • the fourth coding step C4 consists of constructing a stream F representing, in binary form, the processed blocks compressed by the above-mentioned coding unit UC, as well as a decoded version of said processed blocks. Said decoded processed blocks may be reused by the encoding unit UC shown in Fig. 3A or 3B.
  • bit stream F is implemented in a CF module of flow construction, as shown in FIG. 3A.
  • the stream F is then transmitted by a communication network (not shown) to a remote terminal.
  • FIG. 2B the different specific sub-steps of the invention, as implemented during the aforementioned coding step C3, in the coding unit UC.
  • the entropic coding module MCE initializes its state variables. According to the example shown, which uses the arithmetic coding described above, it is an initialization of an interval representative of the current occurrence probability p (Cj) of a symbol contained in the predetermined set of symbols for each of the M contexts C1, C2, ..., Cj, ..., CM.
  • this interval is initialized with two terminals L and H, respectively lower and upper.
  • the value of the lower bound L is set to 0, while the value of the upper bound is set to 1, which corresponds to the probability of occurrence of a first symbol among all the symbols of the predetermined set of symbols. .
  • the initialized interval is further conventionally partitioned into a plurality of predetermined sub-intervals which are respectively representative of the appearance probabilities of the symbols of the predetermined set of symbols.
  • the coding unit UC selects as current block B, the first block Bi to be coded from the current image IE. As shown in FIG. 1A or 4, this is the first block on the left of the IE image.
  • a step C33 the coding unit UC proceeds to the coding of the first current block B-i.
  • Such a step comprises a plurality of sub-steps C331 to C343 which will be described below.
  • the predictive coding module MCP performs the predictive coding of the current block Bi by known intra and / or inter prediction techniques, during which the block Bi is predicted with respect to at least one block previously coded and decoded. It goes without saying that other intra prediction modes as proposed in the H.264 standard are possible.
  • the current block B may also be subjected to predictive coding in inter mode, during which the current block is predicted with respect to a block resulting from a previously coded and decoded picture.
  • predictive coding in inter mode, during which the current block is predicted with respect to a block resulting from a previously coded and decoded picture.
  • Other types of prediction are of course conceivable.
  • the optimal prediction is chosen according to a distortion flow criterion well known to those skilled in the art.
  • Said aforementioned predictive coding step makes it possible to construct a predicted block Bp which is an approximation of the current block B-,.
  • the information relating to this predictive coding will subsequently be written in the stream F transmitted to the decoder.
  • Such information includes in particular the type of prediction (inter or intra), and if appropriate, the intra prediction mode, the type of partitioning of a block or macroblock if the latter has been subdivided, the image index of reference and displacement vector used in the inter prediction mode. This information is compressed by the CO encoder.
  • the predicted block Bpi of the current block Bi is subtracted to produce a residue block Bn.
  • the residue block ⁇ is transformed according to a conventional direct transformation operation such as, for example, a discrete cosine transformation of the DCT type, in order to produce a transformed Bt-i block.
  • the transformed block Bti is quantized according to a standard quantization operation, such as, for example, a scalar quantization.
  • a block of quantized coefficients Bqi is then obtained.
  • the set of quantized coefficients of the block Bq represent the symbols to be encoded of the block B-. Such symbols are denoted x1, x2, ..., xl, ..., xL, with 1 ⁇ l ⁇ l
  • the entropic coding module MCE selects as the current symbol x1 to encode the first symbol x1 of the block Bi.
  • a context Cj associated with said symbol x1 is determined from among the predetermined set of contexts C1, C2, ..., Cj, ..., CM. Such a step is conventional as such.
  • the context Cj is deduced from the type of the symbol x1 and the other available data, such as, for example, the values of the motion vectors, the prediction mode used, the values of the pixels, etc.
  • the probability p (Cj) of the appearance of the selected symbol x1 is determined as a function of the context Cj determined.
  • the arithmetic coding of the current symbol x1 is performed in the entropy module MCE using the estimated probability p (Cj).
  • one of said update methods is that implemented in the two transition tables TL and TR of a CABAC encoder of the prior art, as described above in the description ,
  • the other of said updating methods is that implemented in two transition tables TLR and TMR specific to the invention.
  • the two transition tables TLR and TMR make it possible to update the probability of occurrence of a symbol much faster than that carried out in the two transition tables TL and TM of the prior art, the choice of one or the other other tables depending on the type of coded symbol, MPS or LPS.
  • the TMR transition table for an MPS, contains the following values:
  • TMR ⁇ 0,0,0,1, 1, 2,3,4,4,5,6,7,7,8,9,9,10,1 1,1,1,12,13,13,14 , 14,15,16,16,1 7,17,18,18,19,19,20,20,20,21,21,22,22,22,23,23,23,24,24,24,24,25,25,25,25,26, 2 6,26,26,27,27,27,27,27,28,28,63 ⁇ .
  • the TLR transition table for an LPS, contains the following values:
  • TLR ⁇ 2,3,4,5,6,7,8,9,10,1 1, 12,13,14,15,16,17,18,19,20,21, 22,23,24, 25, 26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49, 50, 51, 52.53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 62, 62, 63).
  • the fast updating method is selected if the number of symbols already coded for all said contexts C1 to CM is less than or equal to the predetermined number N1,
  • the fast updating method is selected if the number of symbols already encoded according to said determined context Cj is less than or equal to said predetermined number N2,
  • the fast updating method is selected if the number of symbols already encoded according to said determined context Cj, in a current line SEk, is less than or equal to said predetermined number N2,
  • the fast updating method is selected if the difference between the frequency of appearance of said current symbol in the first set and the frequency of appearance of said current symbol in the second set is greater than a predetermined threshold S,
  • S is an integer that is for example equal to 0.5.
  • the steps of estimating the probability of appearance of the current symbol, entropic coding of said current symbol and updating of the estimated probability using the table are conventionally carried out. of transition TL or TM according to the type of coded current symbol.
  • the fast updating method is selected if the difference between said other estimated probability and said estimated probability is greater than a predetermined threshold S ',
  • S ' is an integer which is for example equal to 0.5.
  • the estimated probability p (Cj) of the current symbol is updated in the same way as in the prior art, using one of the aforementioned TL and TM transition tables.
  • the fast updating method is selected, during the substep C340b), the estimated probability p (Cj) of the current symbol is updated at using the aforementioned TLR and TMR fast transition tables.
  • steps C335 to C341 are iterated for 1 ⁇ I ⁇ L.
  • the coding unit UC tests whether the coded current block is the last block of the image IE.
  • the coding process is terminated.
  • the entropy coding steps C335 to C340a) / C340b) are implemented once all the symbols x1, x2, .., x1,. xL of a block were obtained at the end of the quantification step C334 mentioned above.
  • the decoding method according to the invention is represented in the form of an algorithm comprising steps D1 to D3 represented in FIG. 5A.
  • the decoding method according to the invention is implemented in a decoding device DO shown in FIG. 6A.
  • the first decoding step D1 is the identification, in said stream F, of the blocks B ; B 2 , ..., B ,, ..., B z which have been encoded by the CO encoder.
  • said blocks are square in shape and all of the same size.
  • the last blocks on the left and the last blocks on the bottom may not be square.
  • the blocks may be for example of rectangular size and / or not aligned with each other.
  • Each block or macroblock can also be itself divided into sub-blocks that are themselves subdividable.
  • Such identification is performed by an EXDO flow analysis software module, as shown in FIG. 6A.
  • the decoding step D1 consists in identifying in said stream F sub-streams respectively containing the P subsets of blocks SE1, SE2, ..., SEk, ..., SEP coded previously.
  • the predetermined number P is equal to 6.
  • the second decoding step D2 is the decoding of the previously coded blocks B 1 to B M , or optionally of each of said subsets of blocks SE 1, SE 2, SE 3, SE 4, SE 5, SE 6. previously coded, the blocks of a subset considered being then decoded according to a predetermined PS sequential travel order.
  • the blocks of a subset SEk current (1 ⁇ k ⁇ P) are decoded one after the other, from left to right, as indicated by the arrow PS.
  • BD 1; BD 2 BD ,, ..., BD Z are obtained.
  • the decoder DO comprises a buffer memory MT which is adapted to contain the symbol appearance probabilities such as progressively updated as a current block is decoded.
  • the decoder DO comprises a buffer memory MT which is adapted to contain the symbol appearance probabilities such as progressively updated as a current block is decoded.
  • the UD decoding unit comprises:
  • an entropy decoding module of said current block by learning at least one symbol appearance probability calculated for at least one previously decoded block, denoted MDE,
  • CDM a predictive decoding module of a current block with respect to said previously decoded block
  • the predictive decoding module MDP is able to perform a predictive decoding of the current block, according to conventional prediction techniques, such as for example in Intra and / or Inter mode.
  • the entropy decoding module MDE is CABAC type, but modified according to the present invention as will be described later in the description.
  • the third decoding step D3 is the reconstruction of a decoded picture ID from the decoded blocks BD ; BD 2 ,..., BD k ,..., BD Z obtained at the decoding step D2. More specifically, the decoded blocks are transmitted to an image reconstruction URI unit as shown in FIG. 6A. During this step D3, the URI unit writes the decoded blocks in a decoded image as these blocks become available, so as to deliver a fully decoded ID image.
  • the entropy decoding module MDE initializes its state variables. According to the example shown and in the same way as in the aforementioned coding step C31, it is an initialization of an interval representative of the current occurrence probability p (Cj) of a content symbol in the predetermined set of symbols, for each of the M contexts C1, C2, ..., Cj, ..., CM.
  • the decoding unit UD selects as current block B, the first block Bi to be decoded in the stream F. As represented in FIG. 1A or 4, this is the first block on the left IE image.
  • the decoding unit UD decodes the first current block B-i.
  • Such a step comprises a plurality of substeps D231 to D243 which will be described below.
  • the entropy decoding module MDE selects as the current symbol x1 to decode the first symbol x1 of the block B ⁇
  • a context Cj associated with said symbol x1 is determined from among the predetermined set of contexts C1, C2, ..., Cj, ..., CM. Such a step is conventional as such.
  • the context Cj is deduced from the type of the symbol x1 and the other available data, such as, for example, the values of the motion vectors, the prediction mode used, the values of the pixels, etc.
  • estimation of the probability p (Cj) of appearance of the selected symbol x1 is carried out as a function of the context Cj determined.
  • the arithmetic decoding of the current symbol x1 is performed in the entropy decoding module MDE using the estimated probability p (Cj).
  • one of said updating methods is the conventional method used in the aforementioned coding step C340a),
  • the other of said updating methods is the fast method used in the aforementioned coding step C340b), which is implemented in the two transition tables TLR and TMR specific to the invention.
  • D232 to D234 are reiterated for each of the contexts C1 to CM above, the selection of one or the other of said updating methods is a function of the result of a comparison between the number of decoded symbols for all said contexts C1 to CM and a predetermined number N1, for example with
  • the fast updating method is selected if the number of symbols decoded for all said contexts C1 to CM is less than or equal to the predetermined number N1,
  • the fast updating method is selected if the number of symbols decoded according to said determined context Cj is less than or equal to said predetermined number N2,
  • the fast updating method is selected if the number of symbols decoded according to said determined context Cj, in a current line SEk, is less than or equal to said predetermined number N2,
  • determination is made of first and second sets respectively containing numbers Q and R of symbols previously decoded according to said determined context Cj, the number Q of symbols of the first set being higher than the number R of symbols of said second set.
  • the fast updating method is selected if the difference between the frequency of appearance of said current symbol in the first set and the frequency of appearance of said current symbol in the second set is greater than a predetermined threshold S,
  • S is an integer that is for example equal to 0.5.
  • the steps of estimating the probability of appearance of the current symbol, of entropy decoding of said current symbol and of updating the estimated probability using the table are conventionally carried out.
  • the fast updating method is selected if the difference between said other estimated probability and said estimated probability is greater than a predetermined threshold S ',
  • S ' is an integer which is for example equal to 0.5.
  • the estimated probability p (Cj) of the current symbol is updated by the same way as in the prior art, using one of the aforementioned TL and TM transition tables.
  • the fast update method is selected, during the substep D239b), the estimated probability p (Cj) of the current symbol is updated to using the aforementioned TLR and TMR fast transition tables.
  • next substep D237 it is tested whether the decoded current symbol x1 is the last symbol of the current block B-i.
  • the predictive decoding of the current block Bi is carried out in the predictive decoding module MDP.
  • Such predictive decoding is performed conventionally by known intra and / or inter prediction techniques, in which block B is predicted with respect to at least one previously decoded block.
  • the predictive decoding is performed using the syntax elements decoded in the previous step and including in particular the type of prediction (inter or intra), and if appropriate, the intra prediction mode, the type of partitioning of a block or macroblock if the latter has been subdivided, the reference image index and the displacement vector used in the inter prediction mode.
  • Said aforementioned predictive decoding step makes it possible to construct a predefined block Bp-.
  • the predictive decoding module MDP is used to construct a quantized residual block Bqi using previously decoded syntax elements.
  • dequantization of the quantized residue block Bqi is carried out according to a conventional dequantization operation which is the inverse operation of the quantization performed at the coding step C334 mentioned above, to produce a block Dequantized decoded BDt-i.
  • the inverse transformation of the dequantized block BDti is carried out which is the inverse operation of the direct transformation carried out at the coding in the aforementioned step C333.
  • a decoded residue block BDn is then obtained.
  • the decoded block BD is constructed by adding or block predicts Bp the decoded residue block BDn.
  • the decoding unit UD tests whether the decoded current block is the last block identified in the stream F.
  • the decoding process is terminated. If this is not the case, it is proceeded to the selection of the next block B, to be decoded according to the order of raster scan above, by iteration of steps D22 to D243, for 1 ⁇ i ⁇ Z.
  • the selection of an updating method is not necessarily limited to a set of only two possible methods.
  • three updating methods could alternatively be selected:
  • slow method A method of updating slower than the conventional update method, called slow method.

Abstract

L'invention concerne un procédé de codage d'au moins une image apte à contenir une pluralité de symboles prédéterminés, comprenant, pour au moins un symbole courant à coder, les étapes de : détermination (C336) d'un contexte (Cj) associé audit symbole courant, parmi un ensemble prédéterminé de contextes (C1, C2,...,Cj,...., CM), estimation (C337) d'une probabilité p(Cj) d'apparition dudit symbole courant en fonction du contexte déterminé, codage entropique (C338) dudit symbole courant à l'aide de ladite probabilité estimée. Selon l'invention, un tel procédé comprend en outre les étapes de : sélection (C339) d'une méthode de mise à jour de ladite probabilité estimée p(Cj) parmi au moins deux méthodes différentes, en fonction d'un critère prédéterminé, mise à jour (C240a) ou C240b)) de ladite probabilité estimée p(Cj) à l'aide de ladite méthode sélectionnée.

Description

PROCÉDÉ DE CODAGE ET DÉCODAGE D'IMAGES, DISPOSITIF DE CODAGE ET DÉCODAGE ET PROGRAMMES D'ORDINATEUR
CORRESPONDANTS Domaine de l'invention
La présente invention se rapporte de manière générale au domaine du traitement d'images, et plus précisément au codage et au décodage d'images numériques et de séquences d'images numériques.
L'invention peut ainsi, notamment, s'appliquer au codage vidéo mis en œuvre dans les codeurs vidéo actuels (MPEG, H.264, etc) ou à venir (ITU- T/VCEG (H.265) ou ISO/MPEG (HVC).
Arrière-plan de l'invention
Les codeurs vidéo actuels (MPEG, H264, ...) utilisent une représentation par blocs de la séquence vidéo. Les images sont découpées en macro-blocs, chaque macro-bloc est lui-même découpé en blocs et chaque bloc, ou macrobloc, est codé par prédiction intra-images ou inter-images. Ainsi, certaines images sont codées par prédiction spatiale (prédiction intra), tandis que d'autres images sont codées par prédiction temporelle (prédiction inter) par rapport à une ou plusieurs images de référence codées-décodées, à l'aide d'une compensation en mouvement connue par l'homme de l'art. De plus, pour chaque bloc peut être codé un bloc résiduel correspondant au bloc original diminué d'une prédiction. Les coefficients de ce bloc sont quantifiés après une éventuelle transformation, puis codés par un codeur entropique.
La prédiction intra et la prédiction inter nécessitent que certains blocs qui ont été précédemment codés et décodés soient disponibles, de façon à être utilisés, aussi bien au décodeur qu'au codeur, pour prédire le bloc courant. Un exemple schématique d'un tel codage prédictif est représenté à la figure 1A, dans laquelle une image IE est divisée en blocs, un bloc courant B, de cette image étant soumis à un codage prédictif par rapport à un nombre prédéterminé de trois blocs précédemment codés et décodés. Les trois blocs précités comprennent spécifiquement le bloc B 0 situé immédiatement à gauche du bloc courant B,, et les deux blocs B3 et B4 situés respectivement immédiatement au-dessus et à droite au-dessus du bloc courant B,.
On s'intéresse ici plus particulièrement au codeur entropique qui encode les informations suivant leur ordre d'arrivée. Typiquement un parcours ligne par ligne des blocs est réalisé, de type « raster-scan », comme illustré sur la figure 1A par la référence PRS, en partant du bloc B1 situé en haut à gauche de l'image. Pour chaque bloc, les différentes informations nécessaires à la représentation du bloc (type de bloc, mode de prédiction, coefficients de résidu, ...) sont envoyées séquentiellement au codeur entropique.
On connaît déjà un codeur arithmétique efficace et de complexité raisonnable, appelé « CABAC » ("Context Adaptive Binary Arithmetic Coder" en anglais), introduit dans le standard de compression AVC (aussi connu sous le nom de ISO-MPEG4 partie 10 et ITU-T H.264).
Ce codeur entropique met en œuvre différentes fonctionnalités :
- le codage arithmétique : le codeur, tel que décrit initialement dans le document J. Rissanen and G. G. Langdon Jr, "Universal modeling and coding," IEEE Trans. Inform. Theory, vol. IT-27, pp. 12-23, Jan. 1981 , utilise, pour coder un symbole, une probabilité d'apparition de ce symbole ;
- l'adaptation au contexte : il s'agit ici d'adapter la probabilité d'apparition des symboles à coder à partir des probabilités d'apparition de symboles précédemment codés. D'une part, un apprentissage des probabilités à la volée est réalisé. D'autre part, suivant l'état des informations préalablement codées, un contexte spécifique est utilisé pour le codage des symboles. A chaque contexte correspond une probabilité d'apparition propre du symbole. Par exemple un contexte correspond à un type de symbole codé (la représentation d'un coefficient d'un résidu, la signalisation de mode de codage, ...) suivant une configuration donnée, ou un état du voisinage (par exemple le nombre de modes « intra » sélectionnés dans le voisinage, ...) ;
- la binarisation : une mise sous la forme d'une suite de bits des symboles à coder est réalisée. Par la suite, ces différents bits sont envoyés successivement au codeur entropique binaire.
Ainsi, ce codeur entropique met en œuvre, pour chaque contexte utilisé, un système d'apprentissage des probabilités à la volée par rapport aux symboles précédemment codés pour le contexte considéré. Cet apprentissage est basé sur l'ordre de codage de ces symboles. Typiquement, l'image est parcourue selon un ordre de type « raster-scan », décrit ci-dessus.
Un exemple schématique d'un tel codage entropique est représenté à la figure 1A, dans laquelle un bloc courant B, de l'image courante IE est soumis à un codage entropique. Dans le cas où le bloc courant Bi est le premier bloc de l'image, il est procédé à une initialisation d'un intervalle représentatif de la probabilité d'apparition d'un symbole contenu dans un ensemble prédéterminé de symboles. Cette étape est symbolisée sur la figure 1A par un point noir représenté sur le premier bloc. Dans le cas où le bloc courant Bi est un bloc quelconque autre que le premier bloc, par exemple le troisième bloc de la deuxième ligne horizontale de blocs, les probabilités d'apparition de symboles utilisées sont celles obtenues après codage d'un bloc précédemment codé et décodé, qui est celui qui précède immédiatement le bloc courant B, conformément au parcours ligne par ligne des blocs de type « raster scan » précité. Un tel apprentissage basé sur la dépendance bloc à bloc est représenté sur la figure 1A pour certains blocs seulement dans un souci de clarté de la figure, par les flèches en trait fin.
Plus précisément, le codeur CABAC met en œuvre une quantification des probabilités d'apparition de symboles de la façon suivante. Au cours de l'étape d'initialisation précitée, il est déterminé dans l'ensemble prédéterminé de symboles :
- le symbole binaire qui a la probabilité d'apparition la plus élevée, ce symbole étant appelé symbole le plus probable, dits MPS (de l'anglais
« most probable symbol »),
- le symbole binaire qui a la probabilité d'apparition la moins élevée, ce symbole étant appelé symbole le moins probable LPS (de l'anglais « least probable symbol »).
Comme représenté sur la figure 1 B, le codeur CABAC définit, pour un modèle de contexte donné, la probabilité d'un LPS comme pouvant prendre 64 valeurs possibles pn comprises dans l'intervalle de probabilité [0.01875, 0.5], selon l'équation suivante :
Figure imgf000006_0001
où n est un entier tel que n=1 , 2, ..., 63, et où cc=(0.01875/0.5)1/63 « 0.95, et où p0=0.5
pn représente la valeur mise à jour de la probabilité d'apparition d'un symbole donné et pn-i représente la valeur de la probabilité d'apparition de symbole estimée lors de la dernière apparition de ce symbole.
Par ailleurs, le codeur CABAC fonctionne selon deux tables de transition permettant la mise à jour de la probabilité d'apparition de symbole, le choix de l'une ou l'autre des tables étant fonction du type de symbole codé, MPS ou LPS.
La table de transition pour un MPS, notée TM sur la figure 1 B, contient les 63 valeurs suivantes :
TM={0,1 , 2,3,4,5,6,7,8,9,10,1 1 ,12,13,14,15,16,17,18,19,20,21 ,22,23,24,2 5,26,27,28,29,30,31 ,32,33,34,35,36,37,38,39,40,41 ,42,43,44,45,46,47,48,49,5 0,51 ,52,53,54,55,56,57,58,59,60,61 ,62,62,63 }.
L'évolution des probabilités selon la table TM est représentée en trait plein sur la figure 1 B.
La table de transition pour un LPS, notée TL sur la figure 1 B, contient les 63 valeurs suivantes :
TL={0,0,1 , 2,2,4,4,5,6,7,8,9,9,1 1 ,1 1 ,12,13,13,15,15,16,16,18,18,19,19,21 ,21 ,22,22,23,24,24,25,26,26,27,27,28,29,29,30,30,30,31 ,32,32,33,33,33,34,34, 35,35,35,36,36,36,37,37,37,38,38,63}.
L'évolution des probabilités selon la table TL est représentée en traits pointillés sur la figure 1 B.
Lorsque un symbole LPS possède une probabilité estimée pe, et qu'un nouveau symbole est codé (ou décodé), la mise à jour de la probabilité du nouveau symbole codé est effectuée de la façon suivante :
- si le nouveau symbole est un LPS, la nouvelle probabilité est
- si le nouveau symbole est un MPS, alors, si la probabilité pe vaut Po, les symboles binaires MPS et LPS sont inversés et la nouvelle probabilité reste p0 comme indiqué par la première flèche de gauche en pointillés sur la figure 1 B, sinon la nouvelle probabilité est miey
Une telle méthode d'estimation de probabilités présente l'inconvénient que la vitesse de transition pour passer d'un état de probabilité à l'autre demeure fixe. Ainsi, pour un modèle de contexte donné, lesdites tables de transition ne permettent respectivement qu'une seule façon de faire évoluer la probabilité lorsqu'un symbole codé est un LPS, et qu'une seule façon de faire évoluer la probabilité lorsqu'un symbole codé est un MPS. Avec une telle méthode, les performances de compression vidéo ne sont donc pas optimisées, en particulier lorsque le signal vidéo présentent au cours du temps différentes variations, lentes ou rapides.
Dans le document A. Zandi, G. G. Langdon, « Adaption for Non- Stationary Binary Sources for Data Compression », il est proposé une méthode d'estimation de probabilités selon laquelle la vitesse d'apprentissage des probabilités varie de façon adaptative. Dans la méthode proposée, un « facteur de risque » est calculé à chaque fois qu'un symbole est codé, en fonction d'un nombre prédéterminé de symboles précédemment codés. La probabilité d'apparition dudit symbole est ensuite estimée à l'aide du facteur de risque calculé, une telle probabilité étant utilisée ultérieurement pour coder le prochain symbole.
Bien que la méthode d'estimation de probabilités décrite dans ce document permette de produire un gain en compression du signal, elle nécessite toutefois de recalculer un facteur de risque pour chaque nouveau symbole codé, ce qui est coûteux en termes de complexité de calcul au codage, comme au décodage. Par ailleurs, la probabilité estimée à partir du facteur de risque recalculé peut prendre n'importe quelle valeur entre 0 et 1 , ce qui multiplie grandement le nombre de variations possibles de la vitesse d'apprentissage de probabilité. Il en résulte une complexité très élevée du codeur arithmétique en termes de ressources logicielles et matérielles, ce qui nuit à la rapidité de fonctionnement de ce dernier. Objet et résumé de l'invention
Un des buts de l'invention est de remédier à des inconvénients de l'état de la technique précité.
A cet effet, un objet de la présente invention concerne un procédé de codage d'au moins une image apte à contenir une pluralité de symboles prédéterminés, comprenant, pour au moins un symbole courant à coder, les étapes de :
- détermination d'un contexte associé au symbole courant, parmi un ensemble prédéterminé de contextes,
- estimation d'une probabilité d'apparition du symbole courant en fonction du contexte déterminé,
- codage entropique du symbole courant à l'aide de la probabilité estimée.
Le procédé selon l'invention est remarquable en ce qu'il comprend en outre les étapes de :
- sélection d'une méthode de mise à jour de la probabilité estimée parmi au moins deux méthodes différentes, en fonction d'un critère prédéterminé,
- mise à jour de la probabilité estimée à l'aide de la méthode sélectionnée.
Une telle disposition permet une implémentation matérielle facile et rapide d'un codeur entropique car elle permet un choix restreint et prédéterminé de méthodes d'apprentissage de probabilité. Grâce à la légèreté d'une telle implémentation, la complexité logicielle du codeur arithmétique s'en trouve grandement réduite, ce qui augmente sa rapidité d'exécution.
Une telle disposition permet en outre d'augmenter les performances de compression en faisant évoluer les probabilités selon deux méthodes différentes. En effet, lorsque le signal a une évolution lente (stationnarité), il est intéressant de faire évoluer lentement les probabilités, pour profiter d'une estimation précise. En revanche, lorsque le signal subit des transitions rapides et irrégulières (non-stationnarités), il est intéressant de faire évoluer rapidement l'estimation de probabilité pour acquérir rapidement les nouvelles statistiques. Dans un mode de réalisation particulier, le critère prédéterminé pour sélectionner l'une ou l'autre des méthodes de mise à jour est fonction du résultat d'une comparaison entre le nombre de symboles déjà codés et un nombre prédéterminé.
Une telle disposition permet d'obtenir un codeur arithmétique fonctionnant selon un très bon compromis entre une implémentation matérielle relativement simple à mettre en œuvre et une performance de compression élevée, ce qui est lié au fait que les symboles codés comptabilisés ont chacun été codés pour tous les contextes de l'ensemble.
Dans un autre mode de réalisation particulier, le critère prédéterminé pour sélectionner l'une ou l'autre des méthodes de mise à jour est fonction du résultat d'une comparaison entre le nombre de symboles déjà codés selon le contexte déterminé et un nombre prédéterminé.
Une telle disposition permet d'obtenir un codeur arithmétique fonctionnant selon un bon compromis entre une implémentation matérielle très simple à mettre en œuvre et une performance de compression satisfaisante, ce qui est lié au fait que les symboles codés comptabilisés ont chacun été codés pour un seul des contextes de l'ensemble.
Selon une première variante de réalisation :
- la méthode de mise à jour la plus rapide est sélectionnée si le nombre de symboles déjà codés selon le contexte déterminé est inférieur ou égal au nombre prédéterminé,
- la méthode de mise à jour la moins rapide est sélectionnée sinon.
Une telle disposition permet d'obtenir un codeur arithmétique dont la complexité en termes de ressources matérielles et logicielles est optimisée.
Selon une deuxième variante de réalisation, lorsque le symbole courant à coder appartient à un bloc d'un sous-ensemble de blocs de l'image, cette image ayant été préalablement découpée en une pluralité de blocs, et les blocs ayant été regroupés en un nombre prédéterminé de sous-ensembles de blocs :
- la méthode de mise à jour la plus rapide est sélectionnée si le nombre de symboles déjà codés selon le contexte déterminé dans le sous- ensemble considéré est inférieur ou égal au nombre prédéterminé, - la méthode de mise à jour la moins rapide est sélectionnée sinon.
Une telle disposition permet d'obtenir un codeur arithmétique conforme à la norme H.264/MPEG-4 AVC et dont la complexité en termes de ressources matérielles et logicielles est optimisée.
Selon une troisième variante de réalisation, le procédé de codage comprend préalablement à l'étape de mise à jour de la probabilité estimée, une étape de détermination d'un premier et d'un deuxième ensemble contenant chacun des symboles précédemment codés selon le contexte déterminé, le premier ensemble contenant un nombre de symboles qui est plus élevé que le nombre de symboles du deuxième ensemble, l'étape de sélection de méthode de mise à jour consistant à choisir :
- la méthode de mise à jour la plus rapide si la différence entre la fréquence d'apparition du symbole courant dans le premier ensemble et la fréquence d'apparition du symbole courant dans le deuxième ensemble est supérieure à un seuil prédéterminé,
- la méthode de mise à jour la moins rapide sinon.
Une telle disposition permet d'augmenter les performances de compression du codeur arithmétique, puisqu'il est tenu compte des transitions dans le signal vidéo après observation d'un nombre prédéterminé de fois où un même symbole a été codé.
Dans encore un autre mode de réalisation particulier, le critère prédéterminé pour sélectionner l'une ou l'autre des méthodes de mise à jour est fonction du résultat d'une comparaison entre une estimation de la probabilité d'apparition de symbole conforme à un premier mode et une estimation simulée de la probabilité d'apparition de symbole conforme à un deuxième mode, l'étape de sélection de méthode de mise à jour consistant à choisir:
- la méthode de mise à jour la plus rapide si la différence entre la probabilité estimée de façon simulée et la probabilité estimée est supérieure à un seuil prédéterminé,
- la méthode de mise à jour la moins rapide sinon. Une telle disposition permet d'obtenir un codeur arithmétique particulièrement efficace pour détecter des transitions rapides dans le signal vidéo.
Corrélativement, l'invention concerne encore un dispositif de codage d'au moins une image apte à contenir une pluralité de symboles prédéterminés, comprenant, pour au moins un symbole courant à coder :
- des moyens de détermination d'un contexte associé au symbole courant, parmi un ensemble prédéterminé de contextes,
- des moyens d'estimation d'une probabilité d'apparition du symbole courant en fonction du contexte déterminé,
- des moyens de codage entropique du symbole courant à l'aide de la probabilité estimée.
Un tel dispositif de codage est remarquable en ce qu'il comprend en outre :
- des moyens de sélection d'une méthode de mise à jour de la probabilité estimée parmi au moins deux méthodes différentes, en fonction d'un critère prédéterminé,
- des moyens de mise à jour de la probabilité estimée à l'aide de la méthode sélectionnée.
De façon correspondante, l'invention concerne aussi un procédé de décodage d'un flux représentatif d'au moins une image codée apte à contenir une pluralité de symboles prédéterminés codés, comprenant les étapes de :
- identification dans le flux d'au moins un symbole codé courant, - détermination d'un contexte associé au symbole codé courant identifié, parmi un ensemble prédéterminé de contextes,
- estimation d'une probabilité d'apparition du symbole courant en fonction du contexte déterminé,
- décodage entropique du symbole courant à l'aide de la probabilité estimée.
Un tel procédé de décodage est remarquable en ce qu'il comprend en outre les étapes de : - sélection d'une méthode de mise à jour de la probabilité estimée parmi au moins deux méthodes différentes, en fonction d'un critère prédéterminé,
- mise à jour de la probabilité estimée à l'aide de la méthode sélectionnée.
Dans un mode de réalisation particulier, le critère prédéterminé pour sélectionner l'une ou l'autre des méthodes de mise à jour est fonction du résultat d'une comparaison entre le nombre de symboles décodés et un nombre prédéterminé.
Dans un autre mode de réalisation particulier, le critère prédéterminé pour sélectionner l'une ou l'autre des méthodes de mise à jour est fonction du résultat d'une comparaison entre le nombre de symboles décodés selon le contexte déterminé et un nombre prédéterminé.
Selon une première variante de réalisation :
- la méthode de mise à jour la plus rapide est sélectionnée si le nombre de symboles décodés selon le contexte déterminé est inférieur ou égal au nombre prédéterminé,
- la méthode de mise à jour la moins rapide est sélectionnée sinon.
Selon une deuxième variante de réalisation, lorsque le symbole courant à décoder appartient à un bloc d'un sous-ensemble de blocs de l'image, une telle image ayant été préalablement découpée en une pluralité de blocs, et les blocs ayant été regroupés en un nombre prédéterminé de sous-ensembles de blocs :
- la méthode de mise à jour la plus rapide est sélectionnée si le nombre de symboles décodés selon le contexte déterminé dans le sous- ensemble est inférieur ou égal au nombre prédéterminé,
- la méthode de mise à jour la moins rapide est sélectionnée sinon.
Selon une troisième variante de réalisation, le procédé de décodage comprend préalablement à l'étape de mise à jour, une étape de détermination d'un premier et d'un deuxième ensemble contenant chacun des symboles décodés selon le contexte déterminé, le premier ensemble contenant un nombre de symboles qui est plus élevé que le nombre de symboles du deuxième ensemble, l'étape de sélection de méthode de mise à jour consistant à choisir :
- la méthode de mise à jour la plus rapide si la différence entre la fréquence d'apparition du symbole courant dans le premier ensemble et la fréquence d'apparition du symbole courant dans le deuxième ensemble est supérieure à un seuil prédéterminé,
- la méthode de mise à jour la moins rapide sinon.
Dans encore un autre mode de réalisation particulier, le critère prédéterminé pour sélectionner l'une ou l'autre des méthodes de mise à jour est fonction du résultat d'une comparaison entre une estimation de la probabilité d'apparition de symbole conforme à un premier mode et une estimation simulée de la probabilité d'apparition de symbole conforme à un deuxième mode, l'étape de sélection de méthode de mise à jour consistant à choisir:
- la méthode de mise à jour la plus rapide si la différence entre la probabilité estimée de façon simulée et la probabilité estimée est supérieure à un seuil prédéterminé,
- la méthode de mise à jour la moins rapide sinon.
Corrélativement, l'invention concerne encore un dispositif de décodage d'un flux représentatif d'au moins une image codée apte à contenir une pluralité de symboles prédéterminés codés, comprenant :
- des moyens d'identification dans le flux d'au moins un symbole codé courant,
- des moyens de détermination d'un contexte associé au symbole codé courant identifié, parmi un ensemble prédéterminé de contextes,
- des moyens d'estimation d'une probabilité d'apparition du symbole courant en fonction du contexte déterminé,
- des moyens de décodage entropique du symbole courant à l'aide de la probabilité estimée.
Un tel dispositif de décodage est remarquable en ce qu'il comprend en outre : - des moyens de sélection d'une méthode de mise à jour de la probabilité estimée parmi au moins deux méthodes différentes, en fonction d'un critère prédéterminé,
- des moyens de mise à jour de la probabilité estimée à l'aide de la méthode sélectionnée.
L'invention vise également un programme d'ordinateur comportant des instructions pour l'exécution des étapes du procédé de codage ou de décodage ci-dessus, lorsque le programme est exécuté par un ordinateur.
Un tel programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.
Encore un autre objet de l'invention vise aussi un support d'enregistrement lisible par un ordinateur, et comportant des instructions de programme d'ordinateur tel que mentionné ci-dessus.
Le support d'enregistrement peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, un tel support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy dise) ou un disque dur.
D'autre part, un tel support d'enregistrement peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.
Alternativement, un tel support d'enregistrement peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter le procédé en question ou pour être utilisé dans l'exécution de ce dernier.
Le dispositif de codage, le procédé de décodage, le dispositif de décodage et les programmes d'ordinateur précités présentent au moins les mêmes avantages que ceux conférés par le procédé de codage selon la présente invention. Brève description des dessins
D'autres caractéristiques et avantages apparaîtront à la lecture de deux modes de réalisation préférés décrits en référence aux figures dans lesquelles:
- la figure 1 A représente un schéma de codage d'image de l'art antérieur,
- la figure 1 B représente l'évolution des probabilités d'apparition de symboles dans un codeur CABAC de l'art antérieur,
- la figure 2A représente les principales étapes du procédé de codage selon l'invention,
- la figure 2B représente en détail le codage mis en œuvre dans le procédé de codage de la figure 2A,
- la figure 3A représente un premier mode de réalisation d'un dispositif de codage selon l'invention,
- la figure 3B représente une unité de codage du dispositif de codage de la figure 3A,
- la figure 4 représente un schéma de codage/décodage d'image selon un mode de réalisation préférentiel,
- la figure 5A représente les principales étapes du procédé de décodage selon l'invention,
- la figure 5B représente en détail le décodage mis en œuvre dans le procédé de décodage de la figure 5A,
- la figure 6A représente un mode de réalisation d'un dispositif de décodage selon l'invention,
- la figure 6B représente une unité de décodage du dispositif de décodage de la figure 6A.
Description détaillée de la partie codage
Un mode de réalisation de l'invention va maintenant être décrit, dans lequel le procédé de codage selon l'invention est utilisé pour coder une séquence d'images selon un flux binaire proche de celui qu'on obtient par un codage selon la norme H.264/MPEG-4 AVC. Dans ce mode de réalisation, le procédé de codage selon l'invention est par exemple implémenté de manière logicielle ou matérielle par modifications d'un codeur initialement conforme à la norme H.264/MPEG-4 AVC. Le procédé de codage selon l'invention est représenté sous la forme d'un algorithme comportant des étapes C1 à C4, représentées à la figure 2A.
Selon le mode de réalisation de l'invention, le procédé de codage selon l'invention est implémenté dans un dispositif de codage CO dont un mode de réalisation est représenté sur la figure 3A.
En référence à la figure 2A, la première étape de codage C1 est le découpage d'une image IE d'une séquence d'images à coder dans un ordre prédéterminé, en une pluralité Z de blocs ou macro-blocs B ; B2, ...,Bi, ..., Bz, comme représenté sur la figure 1A. Lesdits blocs sont aptes à contenir un ou plusieurs symboles, lesdits symboles faisant partie d'un ensemble prédéterminé de symboles. Dans les exemples représentés, lesdits blocs ont une forme carrée et ont tous la même taille. En fonction de la taille de l'image qui n'est pas forcément un multiple de la taille des blocs, les derniers blocs à gauche et les derniers blocs en bas peuvent ne pas être carrés. Dans un mode alternatif de réalisation, les blocs peuvent être par exemple de taille rectangulaire et/ou non alignés les uns avec les autres.
Chaque bloc ou macrobloc peut par ailleurs être lui-même divisé en sous blocs qui sont eux-mêmes subdivisibles.
Un tel découpage est effectué par un module PCO de partitionnement représenté à la figure 3A qui utilise par exemple un algorithme de partitionnement bien connu en tant que tel.
En référence à la figure 2A, la deuxième étape de codage C2, qui est optionnelle et qui pour cette raison est représentée en pointillés sur la figure 2A, est le regroupement des blocs précités en un nombre prédéterminé P de sous-ensembles de blocs consécutifs SE1 , SE2,.., SEk, ...,SEP destinés à être codés séquentiellement ou en parallèle. Dans l'exemple représenté sur la figure 4, P=6. Les six sous-ensembles de blocs sont chacun représentés en trait pointillé et sont constitués respectivement par les six premières lignes de blocs de l'image IE.
Un tel regroupement est effectué par un module de calcul GRCO représenté à la figure 3A, à l'aide d'un algorithme bien connu en soi. Le module GRCO étant optionnel, il est représenté en pointillé sur la figure 3A. En référence à la figure 2A, la troisième étape de codage C3 consiste dans le codage de chacun des blocs de l'image ou bien desdits sous- ensembles de blocs SE1 à SE6 si un regroupement des blocs a été mis en œuvre à l'étape C2 précitée. Dans le cas de la figure 1A, les blocs sont codés selon par exemple le parcours « raster scan ». Dans le cas de la figure 4, les blocs sont codés selon un ordre de parcours prédéterminé, qui est par exemple de type séquentiel. Dans l'exemple représenté sur la figure 4, les blocs d'un sous-ensemble SEk courant (1≤k≤P) sont codés les uns après les autres, de la gauche vers la droite, comme indiqué par la flèche PS.
D'autres types de parcours que celui qui vient d'être décrit ci-dessus sont bien sûr possibles. Ainsi, il est possible de découper l'image IE en plusieurs sous-images et d'appliquer indépendamment un découpage de ce type sur chaque sous-image. Il est également possible de coder non pas une succession de lignes, comme expliqué ci-dessus, mais une succession de colonnes. Il est également possible de parcourir les lignes ou colonnes dans un sens ou dans l'autre.
Selon l'invention, un tel codage est mis en œuvre par une unité de codage UC tel que représentée sur la figure 3A. De façon connue en tant que telle, le codeur CO comprend une mémoire tampon MT qui est adaptée pour contenir les probabilités d'apparition de symboles telles que progressivement remises à jour au fur et à mesure du codage d'un bloc courant.
Comme représenté plus en détail sur la figure 3B, l'unité de codage UC comprend :
• un module de codage prédictif d'un bloc courant par rapport à au moins un bloc précédemment codé et décodé, notée MCP;
• un module de codage entropique dudit bloc courant par utilisation d'au moins une probabilité d'apparition de symbole calculée pour ledit bloc précédemment codé et décodé, notée MCE.
Le module de codage prédictif MCP est un module logiciel qui est apte à effectuer un codage prédictif du bloc courant, selon les techniques de prédiction classiques, telles que par exemple en mode Intra et/ou Inter. Le module de codage entropique MCE est quant à lui de type CABAC, mais modifié selon la présente invention comme cela sera décrit plus loin dans la description.
Comme cela a déjà été mentionné plus haut dans la description, le codeur CABAC fonctionne selon différents contextes prédéfinis différents. Pour chaque ensemble prédéterminé de symboles à coder (par exemple, les vecteurs de mouvement, les coefficients quantifiés du résidu, etc .), il existe au moins un contexte. Pour la plupart des ensembles prédéterminés de symboles, il existe en réalité plusieurs contextes correspondant chacun à un environnement particulier du symbole à coder. L'environnement consiste par exemple dans les blocs précédemment codés qui avoisinent le bloc courant à coder ou bien encore dans les blocs précédemment codés d'une autre image que celle contenant le bloc courant à coder. Ainsi, un symbole à coder se trouve toujours dans un contexte connu du décodeur et du codeur.
Le rôle des contextes est d'identifier des ensembles de symboles correspondant à une statique homogène. Une probabilité courante d'apparition de symbole est alors déterminée pour chaque contexte. Ceci nécessite de maintenir à jour autant de probabilités courantes d'apparition de symboles que de contextes.
Selon l'invention, il est supposé exister M contextes différents {C1 , C2,
Cj, ..., CM}, où M est un entier supérieur ou égal à 1 et où 1 <j<M, avec p(Cj) la probabilité estimée courante d'apparition de symbole associée au contexte Cj.
En référence à la figure 2A, la quatrième étape de codage C4 consiste à construire un flux F représentant, sous forme binaire, les blocs traités compressés par l'unité de codage UC précitée, ainsi qu'une version décodée desdits blocs traités. Lesdits blocs traités décodés sont susceptibles d'être réutilisés par l'unité de codage UC représentée sur la figure 3A ou 3B.
La construction du flux binaire F est mise en œuvre dans un module CF de construction de flux, tel que représenté sur la figure 3A. Le flux F est ensuite transmis par un réseau de communication (non représenté), à un terminal distant. Celui-ci comporte un décodeur qui sera décrit plus en détail dans la suite de la description.
On va maintenant décrire, en référence à la figure 2B, les différentes sous-étapes spécifiques de l'invention, telles que mises en œuvre lors de l'étape C3 de codage précitée, dans l'unité de codage UC.
Au cours d'une étape C31 , le module de codage entropique MCE procède à une initialisation de ses variables d'état. Selon l'exemple représenté, qui utilise le codage arithmétique décrit précédemment, il s'agit d'une initialisation d'un intervalle représentatif de la probabilité d'apparition courante p(Cj) d'un symbole contenu dans l'ensemble prédéterminé de symboles, pour chacun des M contextes C1 , C2, ..., Cj, ...,CM.
De façon connue en tant que telle, cet intervalle est initialisé avec deux bornes L et H, respectivement inférieure et supérieure. La valeur de la borne inférieure L est fixée à 0, tandis que la valeur de la borne supérieure est fixée à 1 , ce qui correspond à la probabilité d'apparition d'un premier symbole parmi tous les symboles de l'ensemble prédéterminé de symboles. La taille R de cet intervalle est donc définie à ce stade par R=H-L=1 . L'intervalle initialisé est en outre partitionné classiquement en une pluralité de sous intervalles prédéterminés qui sont représentatifs respectivement des probabilités d'apparition des symboles de l'ensemble prédéterminé de symboles.
Au cours d'une étape C32, l'unité de codage UC sélectionne comme bloc courant B, le premier bloc Bi à coder de l'image courante IE. Comme représenté à la figure 1A ou 4, il s'agit du premier bloc de gauche de l'image IE.
Au cours d'une étape C33, l'unité de codage UC procède au codage du premier bloc courant B-i. Une telle étape comprend une pluralité de sous- étapes C331 à C343 qui vont être décrites ci-dessous.
Au cours de la première sous-étape C331 , le module de codage prédictif MCP procède au codage prédictif du bloc courant Bi par des techniques connues de prédiction intra et/ou inter, au cours duquel le bloc Bi est prédit par rapport à au moins un bloc précédemment codé et décodé. Il va de soi que d'autres modes de prédiction intra tels que proposés dans la norme H.264 sont possibles.
Le bloc courant B peut être également soumis à un codage prédictif en mode inter, au cours duquel le bloc courant est prédit par rapport à un bloc issu d'une image précédemment codée et décodée. D'autres types de prédiction sont bien entendu envisageables. Parmi les prédictions possibles pour un bloc courant, la prédiction optimale est choisie selon un critère débit distorsion bien connu de l'homme du métier.
Ladite étape de codage prédictif précitée permet de construire un bloc prédit Bp qui est une approximation du bloc courant B-, . Les informations relatives à ce codage prédictif seront ultérieurement inscrites dans le flux F transmis au décodeur. De telles informations comprennent notamment le type de prédiction (inter ou intra), et le cas échéant, le mode de prédiction intra, le type de partitionnement d'un bloc ou macrobloc si ce dernier a été subdivisé, l'indice d'image de référence et le vecteur de déplacement utilisés dans le mode de prédiction inter. Ces informations sont compressées par le codeur CO.
Au cours de la sous-étape suivante C332, il est procédé à la soustraction du bloc prédit Bpi du bloc courant Bi pour produire un bloc résidu Bn.
Au cours de la sous-étape suivante C333, il est procédé à la transformation du bloc résidu Βη selon une opération classique de transformation directe telle que par exemple une transformation en cosinus discrètes de type DCT, pour produire un bloc transformé Bt-i.
Au cours de la sous-étape suivante C334, il est procédé à la quantification du bloc transformé Bti selon une opération classique de quantification, telle que par exemple une quantification scalaire. Un bloc de coefficients quantifiés Bqi est alors obtenu. L'ensemble de coefficients quantifiés du bloc Bq représentent les symboles à coder du bloc B-,. De tels symboles sont notés x1 , x2, ...,xl, ...,xL, avec 1 <l<l
Au cours de la sous-étape suivante C335, le module de codage entropique MCE sélectionne comme symbole courant xl à coder le premier symbole x1 du bloc B-i. Au cours de la sous-étape suivante C336, il est procédé, dans le module de codage entropique MCE, à la détermination d'un contexte Cj associé audit symbole xl, parmi l'ensemble prédéterminé de contextes C1 , C2, ..., Cj, ...,CM. Une telle étape est classique en tant que telle. Le contexte Cj est déduit du type du symbole xl et des autres données disponibles, telles que par exemple les valeurs des vecteurs de mouvement, le mode de prédiction utilisé, les valeurs des pixels, etc....
Au cours de la sous-étape suivante C337, il est procédé, dans le module de codage entropique MCE, à l'estimation de la probabilité p(Cj) d'apparition du symbole xl sélectionné, en fonction du contexte Cj déterminé.
Au cours de la sous-étape suivante C338, il est procédé, dans le module de codage entropique MCE, au codage arithmétique du symbole courant xl à l'aide de la probabilité estimée p(Cj).
Au cours de la sous-étape suivante C339, il est procédé avantageusement selon l'invention à la sélection d'une méthode de mise à jour de ladite probabilité estimée p(Cj) parmi au moins deux méthodes différentes, en fonction d'un critère prédéterminé.
Dans l'exemple représenté :
- l'une desdites méthodes de mise à jour, appelée méthode classique, est celle qui est mise en œuvre dans les deux tables de transition TL et TR d'un codeur CABAC de l'art antérieur, telles que décrites plus haut dans la description,
- l'autre desdites méthodes de mise à jour, appelée méthode rapide, est celle qui est mise en œuvre dans deux tables de transition TLR et TMR spécifiques à l'invention.
Les deux tables de transition TLR et TMR permettent une mise à jour de la probabilité d'apparition de symbole beaucoup plus rapide que celle effectuée dans les deux tables de transition TL et TM de l'art antérieur, le choix de l'une ou l'autre des tables étant fonction du type de symbole codé, MPS ou LPS.
La table de transition TMR, pour un MPS, contient les valeurs suivantes :
TMR={0,0,0,1 , 1 ,2,3,4,4,5,6,7,7,8,9,9,10,1 1 ,1 1 ,12,13,13,14,14,15,16,16,1 7,17,18,18,19,19,20,20,20,21 ,21 ,22,22,22,23,23,23,24,24,24,25,25,25,25,26,2 6,26,26,27,27,27,27,27,27,28,28,63}.
La table de transition TLR, pour un LPS, contient les valeurs suivantes :
TLR={2,3,4,5,6,7,8,9,10,1 1 ,12,13,14,15,16,17,18,19,20,21 ,22,23,24,25, 26,27,28,29,30,31 ,32,33,34,35,36,37,38,39,40,41 ,42,43,44,45,46,47,48,49,50, 51 ,52,53,54,55,56,57,58,59,60,61 ,62,62,62,63}.
Les différents critères prédéterminés pour sélectionner l'une ou l'autre des méthodes de mise à jour sont explicités ci-dessous.
Selon un premier mode préféré de réalisation, dans le cas où les étapes C336 à C338 sont réitérées pour chacun des contextes C1 à CM précités, la sélection de l'une ou l'autre desdites méthodes de mise à jour est fonction du résultat d'une comparaison entre le nombre de symboles déjà codés pour tous lesdits contextes C1 à CM et un nombre N1 prédéterminé, avec par exemple N1 =5.
Selon ce premier mode :
- la méthode de mise à jour rapide est sélectionnée si le nombre de symboles déjà codés pour tous lesdits contextes C1 à CM est inférieur ou égal au nombre N1 prédéterminé,
- la méthode de mise à jour classique est sélectionnée sinon.
Selon un deuxième mode préféré de réalisation, la sélection de l'une ou l'autre desdites méthodes de mise à jour est fonction du résultat d'une comparaison entre le nombre de symboles déjà codés uniquement selon ledit contexte déterminé Cj et un nombre N2 prédéterminé, avec par exemple N2=5.
Dans l'exemple représenté sur la figure 1A :
- la méthode de mise à jour rapide est sélectionnée si le nombre de symboles déjà codés selon ledit contexte déterminé Cj est inférieur ou égal audit nombre N2 prédéterminé,
- la méthode de mise à jour classique est sélectionnée sinon.
Dans l'exemple représenté sur la figure 4 :
- la méthode de mise à jour rapide est sélectionnée si le nombre de symboles déjà codés selon ledit contexte déterminé Cj, dans une ligne courante SEk, est inférieur ou égal audit nombre N2 prédéterminé,
- la méthode de mise à jour classique est sélectionnée sinon. Selon encore un autre exemple, il est procédé à la détermination de premier et deuxième ensembles contenant respectivement des nombres Q et R de symboles précédemment codés selon ledit contexte déterminé Cj, le nombre Q de symboles du premier ensemble étant plus élevé que le nombre R de symboles dudit deuxième ensemble. Dans l'exemple représenté, Q=20 et R=5.
A la suite de cette étape :
- la méthode de mise à jour rapide est sélectionnée si la différence entre la fréquence d'apparition dudit symbole courant dans le premier ensemble et la fréquence d'apparition dudit symbole courant dans le deuxième ensemble est supérieure à un seuil S prédéterminé,
- la méthode de mise à jour classique est sélectionnée sinon. Dans cet exemple, S est un entier qui est par exemple égal à 0,5.
Selon un deuxième mode préféré de réalisation, il est procédé classiquement aux étapes d'estimation de la probabilité d'apparition du symbole courant, de codage entropique dudit symbole courant et de la mise à jour de la probabilité estimée à l'aide de la table de transition TL ou TM selon le type de symbole courant codé.
Parallèlement à ces étapes classiques, sont mises en œuvre par simulation les étapes de :
- estimation d'une autre probabilité du symbole courant en fonction du contexte déterminé Cj, ladite autre probabilité étant adaptée pour être mise à jour selon la méthode rapide précitée,
- codage entropique dudit symbole à l'aide de ladite autre probabilité estimée.
A la suite de ces étapes :
- la méthode de mise à jour rapide est sélectionnée si la différence entre ladite autre probabilité estimée et ladite probabilité estimée est supérieure à un seuil S' prédéterminé,
- la méthode de mise à jour classique est sélectionnée sinon.
Dans cet exemple, S' est un entier qui est par exemple égal à 0,5.
Si à l'issue de l'étape de sélection C339 précitée, la méthode de mise à jour classique est sélectionnée, au cours de la sous-étape C340a), la probabilité estimée p(Cj) du symbole courant est mise à jour de la même façon que dans l'art antérieur, à l'aide de l'une des tables de transition TL et TM précitées.
Si à l'issue de l'étape de sélection C339 précitée, la méthode de mise à jour rapide est sélectionnée, au cours de la sous-étape C340b), la probabilité estimée p(Cj) du symbole courant est mise à jour à l'aide des tables de transition rapide TLR et TMR précitées.
Une telle mise à jour rapide de la probabilité estimée du symbole courant codé est effectuée de la façon suivante :
- si le symbole courant codé est un LPS, la nouvelle probabilité
Figure imgf000024_0001
- si le symbole courant codé est un MPS, alors, si la probabilité p(Cj) vaut po, les symboles MPS et LPS sont inversés et la nouvelle probabilité reste p0, sinon la nouvelle probabilité est PTMRM- Au cours de la sous-étape suivante C341 , il est testé si le symbole xl courant codé est le dernier symbole du bloc courant B-, .
Si tel n'est pas le cas, il est procédé à l'itération des étapes C335 à C341 , pour 1 <I<L.
Si tel est le cas, au cours d'une sous-étape C342, l'unité de codage UC teste si le bloc courant codé est le dernier bloc de l'image IE.
Si le bloc courant est le dernier bloc de l'image IE, au cours d'une étape C343, il est mis fin au procédé de codage.
Si tel n'est pas le cas, il est procédé à la sélection du bloc suivant B, à coder conformément à l'ordre de parcours raster scan précité, par itération des étapes C32 à C342, pour 1 <i<Z.
Dans l'exemple de procédé de codage qui vient d'être décrit, les étapes de codage entropique C335 à C340a)/C340b) sont mises en œuvre une fois que tous les symboles x1 , x2,..,xl,...,xL d'un bloc ont été obtenus à l'issue de l'étape C334 de quantification précitée.
A titre d'alternative, dès qu'un symbole est obtenu à l'issue de l'étape
C334, les étapes de codage entropique C335 à C340a)/C340b) peuvent directement être mises en œuvre relativement à ce symbole. Description détaillée de la partie décodage
Un mode de réalisation du procédé de décodage selon l'invention va maintenant être décrit, dans lequel le procédé de décodage est implémenté de manière logicielle ou matérielle par modifications d'un décodeur initialement conforme à la norme H.264/MPEG-4 AVC.
Le procédé de décodage selon l'invention est représenté sous la forme d'un algorithme comportant des étapes D1 à D3 représentées à la figure 5A.
Selon le mode de réalisation de l'invention, le procédé de décodage selon l'invention est implémenté dans un dispositif de décodage DO représenté à la figure 6A.
En référence à la figure 5A, la première étape de décodage D1 est l'identification, dans ledit flux F, des blocs B ; B2, ..., B,, ..., Bz qui ont été codés par le codeur CO. Dans l'exemple représenté sur la figure 1A ou 4, lesdits blocs ont une forme carrée et ont tous la même taille. En fonction de la taille de l'image qui n'est pas forcément un multiple de la taille des blocs, les derniers blocs à gauche et les derniers blocs en bas peuvent ne pas être carrés. Dans un mode alternatif de réalisation, les blocs peuvent être par exemple de taille rectangulaire et/ou non alignés les uns avec les autres.
Chaque bloc ou macrobloc peut par ailleurs être lui-même divisé en sous blocs qui sont eux-mêmes subdivisibles.
Une telle identification est effectuée par un module logiciel EXDO d'analyse de flux, tel que représenté à la figure 6A.
Dans le cas où l'étape de codage optionnelle C2 précitée a été mise en œuvre de façon à obtenir le regroupement des blocs précités en un nombre prédéterminé P de sous-ensembles de blocs consécutifs SE1 , SE2,.., SEk, ...,SEP, l'étape de décodage D1 consiste à identifier dans ledit flux F des sous-flux contenant respectivement les P sous-ensembles de blocs SE1 , SE2, ...,SEk, ..., SEP codés précédemment.
Dans l'exemple représenté sur la figure 4, le nombre prédéterminé P est égal à 6.
En référence à la figure 5A, la deuxième étape de décodage D2 est le décodage des blocs Bi à BM précédemment codés, ou optionnellement de chacun desdits sous-ensembles de blocs SE1 , SE2, SE3, SE4, SE5, SE6 précédemment codés, les blocs d'un sous-ensemble considéré étant alors décodés selon un ordre de parcours séquentiel PS prédéterminé. Dans l'exemple représenté sur la figure 4, les blocs d'un sous-ensemble SEk courant (1≤k≤P) sont décodés les uns après les autres, de la gauche vers la droite, comme indiqué par la flèche PS. A l'issue de l'étape D2, des blocs décodés
BD1 ; BD2 BD,, ..., BDZ sont obtenus.
Selon l'invention, un tel décodage est mis en œuvre par une unité de décodage UD tel que représentée sur la figure 6A. De façon connue en tant que telle, le décodeur DO comprend une mémoire tampon MT qui est adaptée pour contenir les probabilités d'apparition de symboles telles que progressivement remises à jour au fur et à mesure du décodage d'un bloc courant.
De façon connue en tant que telle, le décodeur DO comprend une mémoire tampon MT qui est adaptée pour contenir les probabilités d'apparition de symboles telles que progressivement remises à jour au fur et à mesure du décodage d'un bloc courant.
Comme représenté plus en détail sur la figure 6B, l'unité de décodage UD comprend :
- un module de décodage entropique dudit bloc courant par apprentissage d'au moins une probabilité d'apparition de symbole calculée pour au moins un bloc précédemment décodé, notée MDE,
- un module de décodage prédictif d'un bloc courant par rapport audit bloc précédemment décodé, notée MDP.
Le module de décodage prédictif MDP est apte à effectuer un décodage prédictif du bloc courant, selon les techniques de prédiction classiques, telles que par exemple en mode Intra et/ou Inter.
Le module de décodage entropique MDE est quant à lui de type CABAC, mais modifié selon la présente invention comme cela sera décrit plus loin dans la description.
Selon l'invention, de la même manière qu'au codage décrit plus haut, il est supposé, au décodage, exister M contextes différents {C1 , C2, Cj, ..., CM}, où M est un entier supérieur ou égal à 1 et où 1 <j<M, avec p(Cj) la probabilité estimée courante d'apparition de symbole associée au contexte Cj. En référence à la figure 5A, la troisième étape de décodage D3 est la reconstruction d'une image décodée ID à partir des blocs décodés BD ; BD2, ..., BDk, ..., BDZ obtenus à l'étape de décodage D2. Plus précisément, les blocs décodés sont transmis à une unité URI de reconstruction d'image telle que représentée à la figure 6A. Au cours de cette étape D3, l'unité URI écrit les blocs décodés dans une image décodée au fur et à mesure que ces blocs deviennent disponibles, de façon à délivrer une image ID entièrement décodée.
On va maintenant décrire, en référence à la figure 5B, les différentes sous-étapes spécifiques de l'invention, telles que mises en œuvre lors de l'étape D2 de décodage précitée, dans l'unité de décodage UD.
Au cours d'une étape D21 , le module de décodage entropique MDE procède à une initialisation de ses variables d'état. Selon l'exemple représenté et de la même façon qu'à l'étape de codage C31 précitée, il s'agit d'une initialisation d'un intervalle représentatif de la probabilité d'apparition courante p(Cj) d'un symbole contenu dans l'ensemble prédéterminé de symboles, pour chacun des M contextes C1 , C2, ..., Cj, ...,CM.
Au cours d'une étape D22, l'unité de décodage UD sélectionne comme bloc courant B, le premier bloc Bi à décoder dans le flux F. Comme représenté à la figure 1 A ou 4, il s'agit du premier bloc de gauche de l'image IE.
Au cours d'une étape D23, l'unité de décodage UD procède au décodage du premier bloc courant B-i . Une telle étape comprend une pluralité de sous-étapes D231 à D243 qui vont être décrites ci-dessous.
Au cours de la sous-étape D231 , le module de décodage entropique MDE sélectionne comme symbole courant xl à décoder le premier symbole x1 du bloc B^
Au cours de la sous-étape suivante D232, il est procédé, dans le module de décodage entropique MDE, à la détermination d'un contexte Cj associé audit symbole xl, parmi l'ensemble prédéterminé de contextes C1 , C2, ..., Cj, ...,CM. Une telle étape est classique en tant que telle. Le contexte Cj est déduit du type du symbole xl et des autres données disponibles, telles que par exemple les valeurs des vecteurs de mouvement, le mode de prédiction utilisé, les valeurs des pixels, etc.... Au cours de la sous-étape suivante D233, il est procédé, dans le module de décodage entropique MDE, à l'estimation de la probabilité p(Cj) d'apparition du symbole xl sélectionné, en fonction du contexte Cj déterminé.
Au cours de la sous-étape suivante D234, il est procédé, dans le module de décodage entropique MDE, au décodage arithmétique du symbole courant xl à l'aide de la probabilité estimée p(Cj).
Au cours de la sous-étape suivante D235, il est procédé avantageusement selon l'invention à la sélection d'une méthode de mise à jour de ladite probabilité estimée p(Cj) parmi au moins deux méthodes différentes, en fonction d'un critère prédéterminé.
Dans l'exemple représenté :
- l'une desdites méthodes de mise à jour est la méthode classique utilisée à l'étape de codage C340a) précitée,
- l'autre desdites méthodes de mise à jour est la méthode rapide utilisée à l'étape de codage C340b) précitée, laquelle est mise en œuvre dans les deux tables de transition TLR et TMR spécifiques à l'invention.
Les deux tables de transition TLR et TMR ayant déjà été décrites lors de la description du procédé de codage précité, elles ne seront donc pas à nouveau décrites ici.
Les différents critères prédéterminés pour sélectionner l'une ou l'autre des méthodes de mise à jour sont explicités ci-dessous.
Selon un premier mode préféré de réalisation, dans le cas où les étapes
D232 à D234 sont réitérées pour chacun des contextes C1 à CM précités, la sélection de l'une ou l'autre desdites méthodes de mise à jour est fonction du résultat d'une comparaison entre le nombre de symboles décodés pour tous lesdits contextes C1 à CM et un nombre N1 prédéterminé, avec par exemple
N1 =5.
Selon ce premier mode :
- la méthode de mise à jour rapide est sélectionnée si le nombre de symboles décodés pour tous lesdits contextes C1 à CM est inférieur ou égal au nombre N1 prédéterminé,
- la méthode de mise à jour classique est sélectionnée sinon. Selon un deuxième mode préféré de réalisation, la sélection de l'une ou l'autre desdites méthodes de mise à jour est fonction du résultat d'une comparaison entre le nombre de symboles décodés uniquement selon ledit contexte déterminé Cj et un nombre N2 prédéterminé, avec par exemple N2=5.
Dans l'exemple représenté sur la figure 1A :
- la méthode de mise à jour rapide est sélectionnée si le nombre de symboles décodés selon ledit contexte déterminé Cj est inférieur ou égal audit nombre N2 prédéterminé,
- la méthode de mise à jour classique est sélectionnée sinon.
Dans l'exemple représenté sur la figure 4 :
- la méthode de mise à jour rapide est sélectionnée si le nombre de symboles décodés selon ledit contexte déterminé Cj, dans une ligne courante SEk, est inférieur ou égal audit nombre N2 prédéterminé,
- la méthode de mise à jour classique est sélectionnée sinon.
Selon encore un autre exemple, il est procédé à la détermination de premier et deuxième ensembles contenant respectivement des nombres Q et R de symboles précédemment décodés selon ledit contexte déterminé Cj, le nombre Q de symboles du premier ensemble étant plus élevé que le nombre R de symboles dudit deuxième ensemble. Dans l'exemple représenté, Q=20 et R=5.
A la suite de cette étape :
- la méthode de mise à jour rapide est sélectionnée si la différence entre la fréquence d'apparition dudit symbole courant dans le premier ensemble et la fréquence d'apparition dudit symbole courant dans le deuxième ensemble est supérieure à un seuil S prédéterminé,
- la méthode de mise à jour classique est sélectionnée sinon.
Dans cet exemple, S est un entier qui est par exemple égal à 0,5.
Selon un deuxième mode préféré de réalisation, il est procédé classiquement aux étapes d'estimation de la probabilité d'apparition du symbole courant, de décodage entropique dudit symbole courant et de la mise à jour de la probabilité estimée à l'aide de la table de transition TL ou TM selon le type de symbole courant décodé.
Parallèlement à ces étapes classiques, sont mises en œuvre par simulation les étapes de : - estimation d'une autre probabilité du symbole courant en fonction du contexte déterminé Cj, ladite autre probabilité étant adaptée pour être mise à jour selon la méthode rapide précitée,
- décodage entropique dudit symbole courant à l'aide de ladite autre probabilité estimée.
A la suite de ces étapes :
- la méthode de mise à jour rapide est sélectionnée si la différence entre ladite autre probabilité estimée et ladite probabilité estimée est supérieure à un seuil S' prédéterminé,
- la méthode de mise à jour classique est sélectionnée sinon.
Dans cet exemple, S' est un entier qui est par exemple égal à 0,5.
Si à l'issue de l'étape de sélection D235 précitée, la méthode de mise à jour classique est sélectionnée, au cours de la sous-étape D236a), la probabilité estimée p(Cj) du symbole courant est mise à jour de la même façon que dans l'art antérieur, à l'aide de l'une des tables de transition TL et TM précitées.
Si à l'issue de l'étape de sélection D235 précitée, la méthode de mise à jour rapide est sélectionnée, au cours de la sous-étape D239b), la probabilité estimée p(Cj) du symbole courant est mise à jour à l'aide des tables de transition rapide TLR et TMR précitées.
Une telle mise à jour rapide de la probabilité estimée du symbole courant codé est effectuée de la façon suivante :
- si le symbole courant codé est un LPS, la nouvelle probabilité
Figure imgf000030_0001
- si le symbole courant codé est un MPS, alors, si la probabilité p(Cj) vaut p0, les symboles MPS et LPS sont inversés et la nouvelle probabilité reste p0, sinon la nouvelle probabilité est PTMRM-
Au cours de la sous-étape suivante D237, il est testé si le symbole xl courant décodé est le dernier symbole du bloc courant B-i .
Si tel n'est pas le cas, il est procédé à l'itération des étapes D231 à
D237, pour 1 <I<L. Si tel est le cas, au cours de la sous-étape D238, il est procédé, dans le module de décodage prédictif MDP, au décodage prédictif du bloc courant B-i. Un tel décodage prédictif est effectué classiquement par des techniques connues de prédiction intra et/ou inter, au cours duquel le bloc B est prédit par rapport à au moins un bloc précédemment décodé.
Il va de soi que d'autres modes de prédiction intra tels que proposé dans la norme H.264 sont possibles.
Au cours de cette étape, le décodage prédictif est effectué à l'aide des éléments de syntaxe décodés à l'étape précédente et comprenant notamment le type de prédiction (inter ou intra), et le cas échéant, le mode de prédiction intra, le type de partitionnement d'un bloc ou macrobloc si ce dernier a été subdivisé, l'indice d'image de référence et le vecteur de déplacement utilisés dans le mode de prédiction inter.
Ladite étape de décodage prédictif précitée permet de construire un bloc prédit Bp-,.
Au cours de la sous-étape suivante D239, il est procédé, dans le module de décodage prédictif MDP, à la construction d'un bloc résidu quantifié Bqi à l'aide des éléments de syntaxe décodés précédemment.
Au cours de la sous-étape suivante D240, il est procédé à la déquantification du bloc résidu quantifié Bqi selon une opération classique de déquantification qui est l'opération inverse de la quantification effectuée au codage à l'étape C334 précitée, pour produire un bloc déquantifié décodé BDt-i.
Au cours de la sous-étape suivante D241 , il est procédé à la transformation inverse du bloc déquantifié BDti qui est l'opération inverse de la transformation directe effectuée au codage à l'étape C333 précité. Un bloc résidu décodé BDn est alors obtenu.
Au cours de la sous-étape suivante D242, il est procédé à la construction du bloc décodé BD en ajoutant ou bloc prédit Bp le bloc résidu décodé BDn.
Au cours de la sous-étape D243, l'unité de décodage UD teste si le bloc courant décodé est le dernier bloc identifié dans le flux F.
Si le bloc courant est le dernier bloc du flux F, au cours de la sous-étape D244, il est mis fin au procédé de décodage. Si tel n'est pas le cas, il est procédé à la sélection du bloc suivant B, à décoder conformément à l'ordre de parcours raster scan précité, par itération des étapes D22 à D243, pour 1≤i≤Z.
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.
Ainsi, la sélection d'une méthode de mise à jour n'est pas obligatoirement limitée à un ensemble de seulement deux méthodes possibles.
Dans un mode de réalisation alternatif, trois méthodes de mise à jour pourraient être sélectionnées alternativement :
- une méthode de mise à jour classique, celle de l'art antérieur,
- la méthode de mise à jour rapide telle que mentionnée plus haut dans la description,
- une méthode de mise à jour moins rapide que la méthode de mise à jour classique, appelée méthode lente.

Claims

REVENDICATIONS
1 . Procédé de codage d'au moins une image apte à contenir une pluralité de symboles prédéterminés, comprenant, pour au moins un symbole courant à coder, les étapes de :
- détermination (C336) d'un contexte (Cj) associé audit symbole courant, parmi un ensemble prédéterminé de contextes (C1 , C2, ...,Cj, ...., CM),
- estimation (C337) d'une probabilité p(Cj) d'apparition dudit symbole courant en fonction du contexte déterminé,
- codage entropique (C335-C338) dudit symbole courant à l'aide de ladite probabilité estimée,
ledit procédé étant caractérisé en ce qu'il comprend en outre les étapes de :
- sélection (C339) d'une méthode de mise à jour de ladite probabilité estimée p(Cj) parmi au moins deux méthodes différentes, en fonction d'un critère prédéterminé,
- mise à jour (C340a) ou C340b)) de ladite probabilité estimée p(Cj) à l'aide de ladite méthode sélectionnée.
2. Procédé de codage selon la revendication 1 , le critère prédéterminé pour sélectionner l'une ou l'autre desdites méthodes de mise à jour étant fonction du résultat d'une comparaison entre le nombre de symboles déjà codés et un nombre (N1 ) prédéterminé.
3. Procédé de codage selon la revendication 1 , le critère prédéterminé pour sélectionner l'une ou l'autre desdites méthodes de mise à jour étant fonction du résultat d'une comparaison entre le nombre de symboles déjà codés selon ledit contexte déterminé et un nombre (N2) prédéterminé.
4. Procédé selon la revendication 3, selon lequel lorsque ledit symbole courant à coder appartient à un bloc d'un sous-ensemble de blocs de l'image, ladite image ayant été préalablement découpée en une pluralité de blocs, et lesdits blocs ayant été regroupés en un nombre prédéterminé de sous- ensembles de blocs :
- la méthode de mise à jour la plus rapide est sélectionnée si le nombre de symboles déjà codés selon ledit contexte déterminé dans ledit sous- ensemble est inférieur ou égal audit nombre (N2) prédéterminé,
- la méthode de mise à jour la moins rapide est sélectionnée sinon.
5. Procédé de codage selon la revendication 3, comprenant préalablement à l'étape de mise à jour de la probabilité estimée, une étape de détermination d'un premier et d'un deuxième ensemble contenant chacun des symboles précédemment codés selon ledit contexte déterminé, le premier ensemble contenant un nombre (Q) de symboles qui est plus élevé que le nombre (R) de symboles dudit deuxième ensemble, ladite étape de sélection de méthode de mise à jour consistant à choisir :
- la méthode de mise à jour la plus rapide si la différence entre la fréquence d'apparition dudit symbole courant dans le premier ensemble et la fréquence d'apparition dudit symbole courant dans le deuxième ensemble est supérieure à un seuil (S) prédéterminé,
- la méthode de mise à jour la moins rapide sinon.
6. Procédé de codage selon la revendication 1 , le critère prédéterminé pour sélectionner l'une ou l'autre desdites méthodes de mise à jour étant fonction du résultat d'une comparaison entre une estimation de ladite probabilité d'apparition de symbole conforme à un premier mode et une estimation simulée de ladite probabilité d'apparition de symbole conforme à un deuxième mode,
ladite étape de sélection de méthode de mise à jour consistant à choisir:
- la méthode de mise à jour la plus rapide si la différence entre ladite probabilité estimée de façon simulée et ladite probabilité estimée est supérieure à un seuil (S') prédéterminé,
- la méthode de mise à jour la moins rapide sinon.
7. Dispositif de codage (CO) d'au moins une image apte à contenir une pluralité de symboles prédéterminés, comprenant, pour au moins un symbole courant à coder :
- des moyens (MCE) de détermination d'un contexte (Cj) associé audit symbole courant, parmi un ensemble prédéterminé de contextes (C1 ,
C2, ...,Cj, ...., CM),
- des moyens (MCE) d'estimation d'une probabilité p(Cj) d'apparition dudit symbole courant en fonction du contexte déterminé,
- des moyens (MCE) de codage entropique dudit symbole courant à l'aide de ladite probabilité estimée,
ledit dispositif de codage étant caractérisé en ce qu'il comprend en outre :
- des moyens de sélection d'une méthode de mise à jour de ladite probabilité estimée p(Cj) parmi au moins deux méthodes différentes, en fonction d'un critère prédéterminé,
- des moyens de mise à jour de ladite probabilité estimée p(Cj) à l'aide de ladite méthode sélectionnée.
8. Procédé de décodage d'un flux (F) représentatif d'au moins une image codée apte à contenir une pluralité de symboles prédéterminés codés, comprenant les étapes de :
- identification (D1 ) dans ledit flux d'au moins un symbole codé courant,
- détermination (D232) d'un contexte (Cj) associé audit symbole codé courant identifié, parmi un ensemble prédéterminé de contextes (C1 , C2, ...,Cj, ...., CM),
- estimation (D233) d'une probabilité p(Cj) d'apparition dudit symbole courant en fonction du contexte déterminé,
- décodage (D234) entropique dudit symbole courant à l'aide de ladite probabilité estimée,
ledit procédé étant caractérisé en ce qu'il comprend en outre les étapes de :
- sélection (D235) d'une méthode de mise à jour de ladite probabilité estimée p(Cj) parmi au moins deux méthodes différentes, en fonction d'un critère prédéterminé, - mise à jour (D236a) ou D236b)) de ladite probabilité estimée p(Cj) à l'aide de ladite méthode sélectionnée.
9. Procédé de décodage selon la revendication 8, le critère prédéterminé pour sélectionner l'une ou l'autre desdites méthodes de mise à jour étant fonction du résultat d'une comparaison entre le nombre de symboles décodés et un nombre (N1 ) prédéterminé.
10. Procédé de décodage selon la revendication 8, le critère prédéterminé pour sélectionner l'une ou l'autre desdites méthodes de mise à jour étant fonction du résultat d'une comparaison entre le nombre de symboles décodés selon ledit contexte déterminé et un nombre (N2) prédéterminé.
1 1 . Procédé de décodage selon la revendication 10, selon lequel lorsque ledit symbole courant à décoder appartient à un bloc d'un sous-ensemble de blocs de l'image, ladite image ayant été préalablement découpée en une pluralité de blocs, et lesdits blocs ayant été regroupés en un nombre prédéterminé de sous-ensembles de blocs :
- la méthode de mise à jour la plus rapide est sélectionnée si le nombre de symboles décodés selon ledit contexte déterminé dans ledit sous- ensemble est inférieur ou égal audit nombre (N2) prédéterminé,
- la méthode de mise à jour la moins rapide est sélectionnée sinon.
12. Procédé de décodage selon la revendication 10, comprenant préalablement à l'étape de mise à jour, une étape de détermination d'un premier et d'un deuxième ensemble contenant chacun des symboles décodés selon ledit contexte déterminé, le premier ensemble contenant un nombre (Q) de symboles qui est plus élevé que le nombre (R) de symboles dudit deuxième ensemble, ladite étape de sélection de méthode de mise à jour consistant à choisir :
- la méthode de mise à jour la plus rapide si la différence entre la fréquence d'apparition dudit symbole courant dans le premier ensemble et la fréquence d'apparition dudit symbole courant dans le deuxième ensemble est supérieure à un seuil (S) prédéterminé,
- la méthode de mise à jour la moins rapide sinon.
13. Procédé de décodage selon la revendication 8, le critère prédéterminé pour sélectionner l'une ou l'autre desdites méthodes de mise à jour étant fonction du résultat d'une comparaison entre une estimation de ladite probabilité d'apparition de symbole conforme à un premier mode et une estimation simulée de ladite probabilité d'apparition de symbole conforme à un deuxième mode,
ladite étape de sélection de méthode de mise à jour consistant à choisir:
- la méthode de mise à jour la plus rapide si la différence entre ladite probabilité estimée de façon simulée et ladite probabilité estimée est supérieure à un seuil (S') prédéterminé,
- la méthode de mise à jour la moins rapide sinon.
14. Dispositif (DO) de décodage d'un flux (F) représentatif d'au moins une image codée apte à contenir une pluralité de symboles prédéterminés codés, comprenant :
- des moyens (EXDO) d'identification dans ledit flux d'au moins un symbole codé courant,
- des moyens (MDE) de détermination d'un contexte (Cj) associé audit symbole codé courant identifié, parmi un ensemble prédéterminé de contextes (C1 , C2, ...,Cj, ...., CM),
- des moyens (MDE) d'estimation d'une probabilité p(Cj) d'apparition dudit symbole courant en fonction du contexte déterminé,
- des moyens (MDE) de décodage entropique dudit symbole courant à l'aide de ladite probabilité estimée,
ledit dispositif de décodage étant caractérisé en ce qu'il comprend en outre :
- des moyens de sélection d'une méthode de mise à jour de ladite probabilité estimée p(Cj) parmi au moins deux méthodes différentes, en fonction d'un critère prédéterminé, - des moyens de mise à jour de ladite probabilité estimée p(Cj) à l'aide de ladite méthode sélectionnée.
15. Programme d'ordinateur comportant des instructions pour mettre en œuvre le procédé de codage selon l'une quelconque des revendications 1 à 6 ou bien le procédé de décodage selon l'une quelconque des revendications 8 à 13, lorsque ledit procédé de codage ou de décodage est exécuté sur un ordinateur.
PCT/FR2012/051551 2011-07-12 2012-07-03 Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'ordinateur correspondants WO2013007920A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1156344 2011-07-12
FR1156344A FR2978005A1 (fr) 2011-07-12 2011-07-12 Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants

Publications (1)

Publication Number Publication Date
WO2013007920A1 true WO2013007920A1 (fr) 2013-01-17

Family

ID=46579216

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2012/051551 WO2013007920A1 (fr) 2011-07-12 2012-07-03 Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'ordinateur correspondants

Country Status (2)

Country Link
FR (1) FR2978005A1 (fr)
WO (1) WO2013007920A1 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111049527B (zh) * 2019-12-23 2023-03-17 云南大学 一种图像编码解码方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011022047A1 (fr) * 2009-08-21 2011-02-24 Thomson Licensing Méthodes et appareil pour mises à jour explicites de probabilités de symboles de codeur ou de décodeur entropique

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011022047A1 (fr) * 2009-08-21 2011-02-24 Thomson Licensing Méthodes et appareil pour mises à jour explicites de probabilités de symboles de codeur ou de décodeur entropique

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
A. ZANDI ET AL: "Adaptation for non-stationary binary sources for data compression", CONFERENCE RECORD OF THE TWENTY-NINTH ASILOMAR CONFERENCE ON SIGNALS, SYSTEMS AND COMPUTERS, vol. 1, 1 January 1996 (1996-01-01), pages 224 - 228, XP055012865, ISBN: 978-0-81-867370-2, DOI: 10.1109/ACSSC.1995.540545 *
BIN GUO ET AL: "A High Speed CABAC Algorithm Based on Probability Estimation Update", INTERNATIONAL CONFERENCE ON IMAGE AND GRAPHICS, 2007, 1 August 2007 (2007-08-01), pages 195 - 199, XP031131284, ISBN: 978-0-7695-2929-5 *
J. RISSANEN; G. G. LANGDON JR: "Universal modeling and coding", IEEE TRANS. INFORM. THEORY, vol. IT-27, January 1981 (1981-01-01), pages 12 - 23, XP000563276, DOI: doi:10.1109/TIT.1981.1056282
MARPE D ET AL: "Context-based adaptive binary arithmetic coding in the H.264/AVC video compression standard", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 13, no. 7, 1 July 2003 (2003-07-01), pages 620 - 636, XP011099255, ISSN: 1051-8215, DOI: 10.1109/TCSVT.2003.815173 *
MICHAEL ADAMS ET AL: "The JPEG-2000 Still Image Compression Standard", JOINT PHOTOGRAPHIC EXPERT GROUP CONFERENCE, CROWBOROUGH : JPEG FORUM LTD, GB, 14 January 2002 (2002-01-14), XP017206008 *
TAUBMAN D S ET AL: "JPEG2000: image compression fundamentals, standards and practice", 1 January 2002, JPEG2000 IMAGE COMPRESSION FUNDAMENTALS, STANDARDS AND PRACTICE; [KLUWER INTERNATIONAL SERIES IN ENGINEERING AND COMPUTER SCIENCE], NORWELL, MA : KLUWER ACADEMIC PUBL, US, PAGE(S) 71 - 77, ISBN: 978-0-7923-7519-7, XP002566993 *

Also Published As

Publication number Publication date
FR2978005A1 (fr) 2013-01-18

Similar Documents

Publication Publication Date Title
EP3182707B1 (fr) Procédé et support d&#39;enregistrement mémorisant un flux de données d&#39;images codées
EP3209021B1 (fr) Support d&#39;enregistrement mémorisant un flux de données d&#39;images codées
EP2684366A1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
WO2012175870A1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
EP2932714B1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
EP4311240A2 (fr) Procédé de partitionnement et procédé de signalisation de partitionnement d&#39;une unité d&#39;arborescence de codage
EP3180914A1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
EP2716045B1 (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
WO2013007920A1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
EP3259909B1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
FR3033114A1 (fr) Procede de codage et decodage d&#39;images, dispositif de codage et decodage et programmes d&#39;ordinateur correspondants
EP2832093A1 (fr) Procédé et dispositif de codage et décodage d&#39;images

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

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

Country of ref document: EP

Kind code of ref document: A1