WO2011042645A1 - Procedes de codage et de décodage d'images, dispositifs de codage et de decodage et programmes d'ordinateur correspondants - Google Patents
Procedes de codage et de décodage d'images, dispositifs de codage et de decodage et programmes d'ordinateur correspondants Download PDFInfo
- Publication number
- WO2011042645A1 WO2011042645A1 PCT/FR2010/052081 FR2010052081W WO2011042645A1 WO 2011042645 A1 WO2011042645 A1 WO 2011042645A1 FR 2010052081 W FR2010052081 W FR 2010052081W WO 2011042645 A1 WO2011042645 A1 WO 2011042645A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- current
- subsequence
- coded
- symbols
- sub
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
- H04N19/197—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Definitions
- the field of the invention is that of encoding and decoding images, and in particular video streams consisting of a series of successive images.
- 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
- Current video encoders use a block representation of the video sequence.
- the images are divided into macro-blocks, each macro-block is itself divided into blocks and each block, or macro-block, is coded by intra-image prediction or inter-image prediction.
- I-images are coded by spatial prediction (intra prediction)
- P and B-images are coded by temporal prediction with respect to other encoded-decoded I, P or B images using motion compensation.
- a residual block corresponding to the original block decreased by a prediction.
- the coefficients of this block are quantized after a possible transformation, then coded by an entropic coder.
- the entropic encoder encodes the information according to their order of arrival. Typically a line-by-line path of the blocks is made, of "raster-scan" type, as illustrated in FIG. 1, starting from the block at the top left of the image. For each block, 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
- arithmetic coding the encoder, as originally described in J. Rissanen and G. G. Langdon Jr, "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: it is a question of adapting the probability of appearance of the symbols to be coded. On the one hand, an on-the-fly learning is done. On the other hand, depending on the state of the previously coded information, a specific context is used for the coding. 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, encoding mode signaling, etc.) and 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 the 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.
- this entropic encoder Due to the use of such a path sequence, this entropic encoder has several disadvantages.
- certain steps implemented in the encoder can be performed in parallel, for example binarization and the definition of contexts, for the same syntax element or symbol.
- This embodiment does not allow a real decoding parallelism of several symbols, since the sequential decoding constraint remains present.
- an image is sliced, called “slices”, and the "CABAC” encoder is initialized at the beginning of each slice, in order to optimize the initialization of the probabilities.
- This embodiment allows slices to be decoded in parallel, but initialization of the encoder at each new slice greatly decreases the performance of the encoder. The lack of local adequacy of probabilities is thus reinforced here.
- the invention proposes a new solution that does not have all of these disadvantages of the prior art, in the form of a method for encoding at least one image, comprising a step of generating a sequence of symbols. according to a predetermined coding path order.
- such a method also comprises the following steps:
- determining subsequences in said sequence a subsequence comprising a predetermined grouping of symbols
- path of the determined subsequences comprising the following substeps, for at least one current subsequence and for at least one context:
- a neighboring group comprising at least two previously coded sub-sequences, said current encoded neighboring group, of which at least one belongs to a coded neighboring group associated with a subsequence, distinct from said current subsequence, said a distinct subsequence not belonging to said coded neighbor group of the current subsequence and said current subsequence not belonging to the encoded neighbor group of said distinct subsequence;
- the invention is based on a new and inventive approach to image coding, and more particularly to entropy coding, which allows both a more efficient learning of the symbol appearance probabilities for coding and a parallel decoding of symbols. coded.
- the invention takes into account, for the coding of the symbols of the current subsequence, a "multidimensional" neighborhood or coded neighboring group, comprising at least two previously coded subsequences, for a better local matching of the probabilities of the appearance of symbols and thus a more efficient learning of probabilities.
- the invention determines the neighborhoods of the subsequences to be coded, so as to guarantee the existence of at least two subsequences, the current subsequence and the distinct sub-sequence not yet coded, which are independent. for decoding and thus able to be decoded by decoders operating in parallel.
- the invention also proposes a pooling of a neighborhood portion of these independent subsequences for decoding, so as to propagate the probability of occurrence between them and thus share knowledge of the probabilities acquired as and when the coding.
- the invention finally realizes a storage of the appearance probabilities associated with each of the contexts used for the coding of the symbols of the current subsequence, at the end of its coding, so as to be able to take them into consideration during a coding subsequent sub-sequence.
- a "Parallel" decoder may advantageously initialize the probabilities of appearance of the symbols of a subsequence to be decoded in at least two of these synchronization points.
- the step of generating a sequence of symbols is obtained using block coding, and the predetermined grouping of symbols is a grouping of blocks of fixed size, denoted by the "super-block" suite.
- the synchronization points correspond to the stored probabilities related to the contexts used for the coding of the symbols of each coded superblock of the image.
- said current encoded neighboring group is located in a rectangle delimited on the one hand by the first coded block of the image according to the predetermined coding path order and on the other hand by the grouping of blocks constituting the sub-code. current sequence.
- the rectangle is thus chosen according to the predetermined coding course order.
- rectangle is well suited to the line or column type of course, for example but not limited to the "raster scan” type of course.
- the at least two non-dependent sub-sequences between them located at the border of the rectangle can be decoded simultaneously.
- said at least two groupings of blocks constituting said at least two previously coded sub-sequences of said current encoded neighboring group are adjacent to the grouping of blocks constituting the current subsequence.
- the two groups of blocks, or superblocks, determined in order to use the probabilities stored at the end of their coding are located in a neighborhood close to the current super-block, that is to say that they contain blocks adjacent to at least one block of the current super-block, so as to allow a better local adaptation of the probabilities of the symbols of the current super-block.
- said initialization step assigns to said current occurrence probability a value equal to a combination of the known appearance probabilities associated with at least two previously coded sub-sequences of said current coded neighbor group.
- the probabilities of the symbols are initialized starting from the values of at least two synchronization points previously obtained, that is to say at from the probabilities stored during the preceding coding of at least two superblocks. For example, for each symbol of the superblock, the probability of appearance of the symbol is initialized to a value equal to an average of the probabilities of occurrence of this symbol stored at the end of the preceding coding of two superblocks located in the neighboring coded group of the considered superblock.
- the advantage is to judiciously reuse the neighborhood learning: instead of taking a single default value or that of a predefined neighbor, we take at least two neighboring values which allows a better initialization and therefore a more efficient coding.
- said combination takes into account the known appearance probabilities associated with a first subsequence of said current encoded neighboring group, to the left of said current subsequence and to a second subsequence said current coded neighbor group, located above said current subsequence.
- the coding method also comprises a step of determining a confidence measure assigned to said current appearance probability after encoding the last symbol of said current subsequence.
- neighboring superblocks may not have symbols of this type.
- the probability of this symbol appearing in the current super-block, which has been inherited from the sub-sequences of the encoded neighbor group, is then not very relevant for neighboring superblocks, and is therefore weighted by a measure of quite weak trust.
- said initialization step assigns to said current occurrence probability a value equal to an average of the known appearance probabilities associated with said subsequences of said current encoded neighboring group, each weighted by a confidence measurement determined during said determination stage.
- the coding method comprises: a step of defining at least two classes of sub-sequences of symbols;
- each sub-stream carrying information representative of the entropic coding of the sub-sequence symbols belonging to said class.
- Signaling can be implemented when classes are defined for subsequences. Thus, all the coded symbols corresponding to the sub-sequences of the same class are grouped in the predetermined coding order. Then, classes are put end-to-end in the stream, taking into account their dependency, and are separated by end-of-class markers in the stream. These are the markers that will be used during decoding, described below.
- Another aspect of the invention relates to a method for decoding a representative stream of at least one coded picture, comprising the steps of: obtaining at least one subsequence comprising a predetermined grouping of symbols;
- the invention is based on a novel and inventive approach to image decoding, and more particularly to entropy decoding, allowing both a more efficient learning of the probabilities of appearance of the symbols for the coding and a parallel decoding of the symbols. coded.
- This decoding method may of course comprise the various characteristics relating to the coding method according to the invention.
- a class being assigned to at least one sub-sequence of symbols during said coding
- said stream is formed of at least two substreams each associated with one of said classes, each sub-stream carrying information representative of the entropic coding of the symbols of the subsequences belonging to said class, and said steps of initialization, decoding and storage for sub-sequences belonging to the same class are implemented sub-stream by sub-stream, said sub-streams being processed in parallel, said initialization, decoding and storage steps for at least one dependency subsequence having been previously implemented.
- the invention allows the decoding in parallel of certain subsequences, by the implementation in parallel of the different decoding steps described above.
- the decoding method can take into account these classes. to decode the different subsequences in parallel.
- the different classes make it possible to define a certain sequencing for the decoding, that is to say the scheduling constraints of the subsequences to be decoded.
- dependency subsequences assigned to a class other than the class assigned to the current subsequence must have been decoded prior to decoding the current subsequence.
- Another aspect of the invention relates to a device for coding at least one image represented by a sequence of symbols generated according to a predetermined coding path order.
- such a coding device comprises:
- determined sub-sequence traversing means comprising, for at least one current subsequence and for at least one context:
- a neighboring group comprising at least two previously coded sub-sequences, said current coded neighboring group, of which at least one belongs to a coded neighboring group associated with a sub-sequence distinct from said current sub-sequence , said distinct subsequence not belonging to said encoded neighbor group of the current subsequence and said current subsequence not belonging to the encoded neighbor group of said distinct subsequence;
- successive entropy coding means for said symbols according to said predetermined coding path sequence, and for each symbol, means for updating said current occurrence probability for the context associated with said symbol;
- Such a coding device is particularly suitable for implementing the coding method described above.
- This is for example an MPEG or H.264 video encoder, or according to a future compression standard.
- This coding device may of course include the various characteristics relating to the coding method according to the invention.
- Yet another aspect of the invention relates to a decoding device a representative stream of at least one coded picture.
- such a decoding device comprises:
- Such a decoding device is particularly suitable for implementing the decoding method described above.
- This is for example a video decoder type MPEG or H.264, or according to a future video compression standard.
- This decoding device may of course include the various characteristics relating to the decoding method according to the invention.
- Another aspect of the invention relates to a computer program comprising instructions for implementing the encoding or decoding method as described above, when said program is executed by a processor.
- the coding method, or the decoding method, according to the invention can be implemented in various ways, in particular in hard-wired form or in software form.
- Another aspect of the invention also relates to a transcoding device.
- such a transcoding device comprises:
- an entropy decoding device capable of decoding the coded symbols of a received sequence.
- This entropy decoding may be similar to that of the invention if the original sequence already contains sub-sequences or conventional if the original sequence is not contained;
- Entropic decoding is therefore followed by a step of entropic re-encoding of the symbols.
- the re-encoding is then similar to the encoding as described in the invention.
- Such a transcoder makes it possible to define new subsequences from a sequence of coded symbols, according to the capabilities of the terminal which will have to perform the decoding.
- the transcoder can adapt the decoding complexity to the capabilities of the terminal.
- the transcoder defines four or eight or N decoding classes according to the capabilities of the decoding terminal (e.g., the number of processors that can operate in parallel).
- FIG. 1 already commented on in relation with the prior art, presents an example of a block path of a "raster-scan" type image
- Figure 2a shows the main steps of the coding method, according to one embodiment of the invention
- FIG. 2b shows other steps of the coding method, according to this embodiment of the invention.
- FIG. 3 shows an exemplary partitioning of the image according to one embodiment of the invention
- FIG. 4a shows the main steps of the decoding method, according to one embodiment of the invention.
- FIG. 4b shows other steps of the decoding method, according to this embodiment of the invention.
- FIGS. 5a, 5b and 5c show examples of possible coding / decoding order according to one embodiment of the invention
- Figures 6 and 7 respectively show the structure of a coding device and a decoding device, according to a particular embodiment of the invention
- FIG. 8 shows the structure of a transcoding device according to one embodiment of the invention.
- the general principle of the invention is based on a "multidimensional" learning of the probabilities of appearance of the symbols, not depending on the order of the image, and allowing a local adaptation of the probabilities of appearance of the symbols and a decoding non-sequential coded symbols.
- learning the probabilities of occurrence of symbols is based on a partitioning of the image into sub-sequences of symbols for which the probability of occurrence of the symbols are stored at the end of coding and used for initializing the probabilities of occurrence of symbols in a close neighborhood, regardless of the order of the image for coding.
- a sequence of symbols corresponding to the image to be encoded is generated, in a predetermined order of travel.
- This generation step 21 can be implemented over water, that is to say that the following steps 22, and 231 to 234, can be implemented in parallel with this step 21.
- sub-sequences of symbols are determined, in a determination step 22, each corresponding to a predetermined grouping of symbols.
- This grouping can correspond for example to a grouping of blocks of the image, noted super-block.
- a grouping of blocks comprising a fixed number of blocks of fixed size. It should be noted, however, that the invention is not limited to this example and could equally well apply to groupings of blocks comprising a variable number of blocks of variable size.
- the first step 231 consists in determining, for the current subsequence, a current encoded neighboring group comprising at least two previously coded sub-sequences. Moreover, among these subsequences previously coded and chosen to belong to the current coded neighbor group, at least one belongs to another coded neighbor group associated with another subsequence distinct from the current subsequence considered and not yet coded.
- a second initialization step 232 for the current subsequence, the occurrence probability (s), denoted (s) probability (s) of current appearance, of a symbol associated with the context is initialized.
- Each current occurrence probability takes account of at least two known appearance probabilities of the symbol, that is to say obtained during the previous coding of at least two subsequences belonging to the coded current neighborhood group determined at the first time. step 231.
- the next encoding step 233 consists in performing a successive entropy coding of the symbols of the subsequence, according to the predetermined travel order used in step 21, and in updating the associated occurrence probability or probabilities. to each symbol.
- the appearance probability (s) are stored, during a storage step 234, with a view to their use for coding other neighboring subsequences, during the next iterations of step 23.
- FIG. 3 illustrates an example of an image path for entropy coding according to this embodiment of the invention, in which a subsequence corresponds to a superblock comprising four blocks.
- Figure 3 shows six super-blocks, numbered from 0 to 5 according to a raster-scan line-by-line super-block order.
- superblocks 1 and 3 constitute the coded neighbor group current.
- the superblock 1 can also be part of a neighboring group encoded for the superblock 2.
- the initialization step defines the value of the initialization occurrence probability PsB, init (i, J) as follows:
- PsB, init (ij) Averaging (PsB, stored (i, j -1); Stored PSB (i-1; j)) ,. with p SB, stored (i, j-1) and PsB, stored (i-1; j) r) espectively the values of the appearance probabilities stored at the end of the coding of the super-blocks (i, j-1) and (i-1; j).
- the initialization appearance probability PsB, init (ij) is a combination obtained from the stored probabilities P SB, stored T o 'es superblocks of the current coded neighboring group.
- the super-block values above are directly used, and in the case where the super-block of the top is not available, then it is used directly the values of the super-block on the left.
- This confidence measure is established by a combination method similar to that described above for PSB, init > from NsB.post values for superblocks of the encoded neighbor group.
- Appendix A which forms an integral part of the present description, presents a less complex implementation of the calculation of the weighted average for the initialization of a probability of appearance of a symbol.
- the coding probability p is initialized to the value P SB .init (I, J) previously defined, and evolves conventionally by the formula:
- the state of the occurrence probability value is then stored in P SB , stored (i, j).
- a measure of confidence can be assigned to this probability, for example as follows:
- the coding method considers classes associated with subsequences, making it possible to code / decode in parallel in several processes, respecting scheduling constraints on the processing of the different super-blocks within these processes.
- a definition step 24 At least two classes c i and c i of subsequences are defined for the subsequences defined previously during step 22.
- a class is assigned to the current sub-sequence, knowing that the latter has in its current coded current group at least one previously coded sub-sequence, denoted dependency subsequence, to which is assigned a class distinct from said current class.
- a sub-flux s-fj is generated per class, during a generation step 26, each sub-stream carrying information representative of the entropic coding of the symbols of the subsequences belonging to said class.
- the sub-streams may be generated by a transcoder, which makes it possible, from a bit stream representing a coded sequence of symbols for an image, to generate a plurality of parallel decodable sub-streams in parallel manner as described in FIG. 'invention.
- the original coded symbol sequence may or may not contain sub-sequences decodable in parallel, that is to say that it may have been generated from an encoder such as that of the invention or by an encoder classic.
- a goal of the transcoder is to define new subsequences, depending on the capabilities of the terminal that will perform the decoding. This therefore makes it possible to adapt the decoding complexity to the capabilities of the terminal.
- the transcoder can thus define four, eight, or x decoding classes according to the capabilities of the decoding terminal.
- transcoding device 81 comprises an entropy decoding device 82 and a coding device 83 according to the invention.
- the entropy decoding device Upon receipt of a first sequence of encoded symbols representative of one or more images, the entropy decoding device provides a decoded symbol sequence, which is transmitted to the encoding device according to the invention for re-encoding into a second sequence of encoded symbols.
- Entropic decoding is similar to that of the invention if the original sequence contains sub-sequences or conventional decoding if the original sequence is not contained.
- Entropic re-encoding is similar to coding as described in the invention.
- the transcoding device 81 is able to define classes according to a priori knowledge, relating to the capabilities of a destination terminal of the second coded symbol sequence, for example in terms of the number of processors available.
- the transcoding device according to the invention provides as many binary sub-streams as previously defined classes.
- FIGS. 5a to 5c illustrate three examples of assigning classes to subsequences, in the case where a subsequence corresponds to a super-block (a super-block is represented by a numbered square).
- a subsequence is obtained comprising a predetermined grouping of symbols to be decoded, denoted current subsequence.
- the appearance probability (s), noted (s) of current occurrence (s), of an symbol of the subsequence associated with the context takes account of at least two known appearance probabilities of the symbol, that is to say obtained during the previous decoding of at least two sub-sequences belonging to a neighborhood of the subsequence common.
- This neighborhood is called current decoded neighbor group and comprises at least two previously decoded subsequences, of which at least one belongs to a decoded neighbor group associated with a subsequence distinct from the current subsequence.
- a subsequence can be used to decode several other subsequences.
- the next decoding step 43 consists in performing a successive entropy decoding of the symbols of the subsequence, according to a browse order implemented during an encoding of the image, and in updating the probability or probabilities of appearance associated with each symbol.
- the appearance probability or probabilities are stored, during a storage step 44, with a view to their use for the decoding of other neighboring subsequences, during the iterations of steps 42 to 44.
- FIG. 4b shows an example of decoding in parallel according to one embodiment of the invention.
- a class has been assigned to at least one sub-sequence of symbols during coding and the stream to be decoded is formed of at least two sub-streams each associated with a class.
- Each sub-stream carries information representative of the entropic coding of the symbols of the subsequences belonging to the class, coding performed according to the coding method of the invention described above.
- the sub-fluxes s-fj to sf can be so treated in parallel, since the subsequences of dependencies, as described previously, have already been decoded.
- Figure 4b also illustrates an example of dependence between several sub-streams.
- the sub-stream s-fi is processed only after the processing of the two substreams sf 1 and s-fj is completed, since the initialization step 42i takes into account the probabilities stored respectively in the steps 44 1 and 44j. This is the case when the sub-sequence corresponding to the sub-flux s-fj has a current decoded neighbor group comprising the two subsequences corresponding to the two sub-fluxes -fj and s-fj.
- FIGS. 5a to 5c particularly illustrate three examples of possible decoding order of the subsequences, corresponding to superblocks in this embodiment.
- FIG. 5a illustrates an exemplary embodiment in which the same class is assigned to all the sub-sequences of the same line of the image, for example the class numbered 0 corresponds to the first line at the top of the image, the class 1 in the second line, etc.
- super-blocks numbered from 0 to 11 on line 0 are all assigned the same class 0, and form a substream 0, likewise for all superblocks of line 4.
- a super-block, to be decoded uses the probabilities stored during the decoding of two neighboring superblocks, those located respectively above and to the left.
- the superblocks of the line 0 must be decoded sequentially, the block to the left to be decoded prior to the decoding of the current block.
- the different lines can therefore be decoded in parallel, respecting the dependence constraint, that is to say by starting the decoding of the line 0 before the decoding of the line 1 and so of after.
- a class is assigned to a half line and can decode the ninety-six blocks of the image in thirty-one moments.
- such an encoding device comprises a memory 60 comprising a buffer memory, a processing unit 62, equipped for example with a ⁇ microprocessor, and driven by the computer program 63, implementing the method coding according to the invention.
- the code instructions of the computer program 63 are for example loaded into a RAM memory before being executed by the processor of the processing unit 62.
- the processing unit 62 receives as input an image represented by a subsequence of symbols.
- the microprocessor of the processing unit 62 implements the steps of the coding method described above, according to the instructions of the computer program 63.
- the coding device comprises, in addition to the buffer memory 60, determination means sub-sequences in said sequence, a subsequence comprising a predetermined grouping of symbols, determined sub-sequence traversing means comprising, for at least one subsequence current and for at least one context, means for determining a neighboring group comprising at least two previously coded sub-sequences, said current encoded neighboring group, of which at least one belongs to a coded neighboring group associated with a subsequence distinct from said current subsequence, said distinct subsequence not belonging to said coded neighbor group of the current subsequence and said current subsequence not belonging to the coded neighbor group of said distinct subsequence, means of initialization of at least one probability of occurrence of a symbol associated with said context, said current occurrence probability, taking account of at least two probabilities of occurrence of said symbol, known as known appearance probabilities, relating to two previously coded sub-sequences
- such a decoding device comprises a memory 70 comprising a buffer memory, a processing unit 72, equipped for example with a microprocessor // P, and driven by the computer program 73, implementing the decoding method according to the invention.
- the code instructions of the computer program 73 are for example loaded into a RAM memory before being executed by the processor of the processing unit 72.
- the processing unit 72 receives as input a stream representative of at least one coded picture.
- the microprocessor of the processing unit 72 implements the steps of the decoding method described above, according to the instructions of the computer program 73.
- the decoding device comprises, in addition to the buffer memory 70, means for obtaining at least one subsequence comprising a predetermined grouping of symbols, and, for at least one subsequence thus obtained and for at least one context, means for initializing at least one probability of occurrence of a symbol associated with said context, said current occurrence probability, taking account of at least two probabilities of occurrence of said symbol, known as known appearance probabilities, relative two previously decoded sub-sequences of a current decoded neighbor group, a decoded neighbor group comprising at least two previously decoded subsequences, of which at least one belongs to a decoded neighbor group associated with a sub-sequence distinct from said sub-sequence a current sequence, means for successive entropy decoding said symbols according to a coding course of instruction implemented during a coding of said image, e t for each symbol, means for updating said current occurrence probability for the context associated with said symbol, and means for storing said current occurrence
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
L'invention concerne un procédé de codage d'une image représentée par une séquence de symboles. Selon l'invention, le procédé comprend les étapes suivantes : détermination de sous-séquences dans ladite séquence; parcours des sous-séquences, comprenant les sous-étapes suivantes, pour une sous-séquence courante : - détermination d'un groupe voisin codé courant comprenant deux sous-séquences précédemment codées, parmi lesquelles une appartient à un groupe voisin codé associé à une sous-séquence distincte de ladite sous-séquence courante; - initialisation d'une probabilité d'apparition courante d'un symbole, tenant compte de deux probabilités d'apparition connues dudit symbole, relatives à deux sous-séquences précédemment codées dudit groupe voisin codé courant; - codage entropique successif desdits symboles, et mise à jour de ladite probabilité d'apparition courante; - stockage de ladite probabilité d'apparition courante, après codage du dernier symbole.
Description
Procédés de codage et de décodage d'images, dispositifs de codage et de décodage et programmes d'ordinateur correspondants.
1. Domaine de l'invention
Le domaine de l'invention est celui du codage et du décodage d'images, et notamment de flux vidéo constitués d'une série d'images successives.
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).
2. Art antérieur
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 macro-bloc, est codé par prédiction intra-images ou inter-images. Ainsi, des images I sont codées par prédiction spatiale (prédiction intra), des images P et B sont codées par prédiction temporelle par rapport à d'autres images I, P ou B codées-décodées à l'aide d'une compensation en mouvement. De plus, pour chaque bloc est 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.
On s'intéresse ici plus particulièrement au codeur entropique. Le codeur entropique 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 1, en partant du bloc 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érents concepts :
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. D'une part, un apprentissage à 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. 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, signalisation de mode de codage, ...) et 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.
Du fait de l'utilisation d'un tel ordre de parcours, ce codeur entropique présente plusieurs inconvénients.
En effet, on peut observer un manque d'adéquation locale de l'apprentissage des probabilités, dû au type de parcours. Par exemple, lors du codage d'un symbole se situant en début d'une ligne, les probabilités utilisées correspondent principalement à celles observées pour les symboles se situant en fin de la ligne précédente. Or, du fait de la possible variation spatiale des probabilités des symboles (par exemple pour un symbole lié à une information de
mouvement, le mouvement situé sur la partie droite d'une image peut être différent de celui observé sur la partie gauche et donc de même pour les probabilités locales en découlant), ce manque d'adéquation locale des probabilités entraîne une perte en efficacité lors du codage.
Pour limiter ce phénomène, des propositions de modifications de l'ordre de parcours des blocs ont été faites, dans le but d'assurer une meilleure cohérence locale, mais le codage et le décodage restent séquentiels.
C'est un deuxième inconvénient de ce type de codeur entropique. En effet, le codage et le décodage d'un symbole étant dépendants de l'état de la probabilité apprise jusque-là, le décodage des symboles ne peut se faire que dans le même ordre que celui utilisé lors du codage. Typiquement, le décodage ne peut alors être que séquentiel, empêchant ainsi un décodage en parallèle de plusieurs symboles (par exemple pour profiter des architectures multi-cœur).
Le document de brevet US2009168868A1, intitulé « Systems and apparatuses for performing cabac parallel encoding and decoding », décrit une méthode permettant un type de parallélisation du codage et/ou du décodage dans un codeur de type « CABAC ».
Selon un premier mode de réalisation décrit dans ce document, certaines étapes mises en œuvre dans le codeur peuvent être effectuées en parallèle, par exemple la binarisation et la définition des contextes, pour un même élément de syntaxe, ou symbole. Ce mode de réalisation ne permet pas un réel parallélisme de décodage de plusieurs symboles, car la contrainte de décodage séquentiel reste présente.
Selon un second mode de réalisation, une image est découpée en tranches, appelées « slices », et le codeur « CABAC » est initialisé à chaque début de slice, afin d'optimiser l'initialisation des probabilités. Ce mode de réalisation permet un décodage en parallèle des slices, mais l'initialisation du codeur à chaque nouvelle slice diminue fortement les performances du codeur. Le manque d'adéquation locale des probabilités est donc ici encore renforcé.
II existe donc un besoin pour une nouvelle technique de codage entropique
d'une séquence de symboles représentative d'une image ou d'une série d'images, permettant notamment d'offrir un décodage non séquentiel des symboles codés, sans perte de performances de compression.
3. Exposé de l'invention
L'invention propose une solution nouvelle qui ne présente pas l'ensemble de ces inconvénients de l'art antérieur, sous la forme d'un procédé de codage d'au moins une image, comprenant une étape de génération d'une séquence de symboles selon un ordre de parcours de codage prédéterminé.
Selon l'invention, un tel procédé comprend également les étapes suivantes :
détermination de sous-séquences dans ladite séquence, une sous-séquence comprenant un regroupement prédéterminé de symboles ;
parcours des sous-séquences déterminées, comprenant les sous-étapes suivantes, pour au moins une sous-séquence courante et pour au moins un contexte :
- détermination d'un groupe voisin comprenant au moins deux sous- séquences précédemment codées, dit groupe voisin codé courant, parmi lesquelles au moins une appartient à un groupe voisin codé associé à une sous-séquence, distincte de ladite sous-séquence courante, ladite sous-séquence distincte n'appartenant pas audit groupe voisin codé de la sous-séquence courante et ladite sous- séquence courante n'appartenant pas au groupe voisin codé de ladite sous-séquence distincte ;
- initialisation d'au moins une probabilité d'apparition d'un symbole associé audit contexte, dite probabilité d'apparition courante, tenant compte d'au moins deux probabilités d'apparition dudit symbole, dites probabilités d'apparition connues, relatives à deux sous- séquences précédemment codées dudit groupe voisin codé courant ;
- codage entropique successif desdits symboles selon ledit ordre de parcours de codage prédéterminé, et pour chaque symbole, mise à
jour de ladite probabilité d'apparition courante pour le contexte associé audit symbole ;
- stockage de ladite probabilité d'apparition courante desdits symboles codés dans la sous-séquence courante, après codage du dernier symbole de ladite sous-séquence courante.
Ainsi, l'invention repose sur une approche nouvelle et inventive du codage d'images, et plus particulièrement du codage entropique, permettant à la fois un apprentissage plus efficace des probabilités d'apparition des symboles pour le codage et un décodage en parallèle des symboles codés.
En effet, l'invention prend en compte, pour le codage des symboles de la sous-séquence courante, un voisinage "multidimensionnel" ou groupe voisin codé, comprenant au moins deux sous-séquences précédemment codées, pour une meilleure adéquation locale des probabilités d'apparition des symboles et donc un apprentissage des probabilités plus efficace.
En outre, l'invention détermine les voisinages des sous-séquences à coder, de façon à garantir l'existence d'au moins deux sous-séquences, la sous-séquence courante et la sous-séquence distincte non encore codée, qui sont indépendantes pour le décodage et donc aptes à être décodées par des décodeurs fonctionnant en parallèle.
L'invention propose également une mise en commun d'une partie de voisinage de ces sous-séquences indépendantes pour le décodage, de façon à propager les probabilités d'apparition entre elles et ainsi partager des connaissances des probabilités acquises au fur et à mesure du codage.
L'invention réalise enfin un stockage des probabilités d'apparition associées à chacun des contextes utilisés pour le codage des symboles de la sous- séquence courante, à la fin de son codage, de façon à pouvoir les prendre en considération lors d'un codage ultérieur d'une autre sous-séquence.
Le stockage des probabilités liées au codage des symboles d'une sous- séquence, à la fin du codage de cette dernière, peut être vu comme un « point de synchronisation » dans le codage, servant ensuite au décodage. En effet, un
décodeur "parallèle" pourra avantageusement initialiser les probabilités d'apparition des symboles d'une sous-séquence à décoder en au moins deux de ces points de synchronisation.
Selon un aspect particulier de l'invention, l'étape de génération d'une séquence de symboles est obtenue à l'aide d'un codage par blocs, et le regroupement prédéterminé de symboles est un regroupement de blocs de taille fixe, noté par la suite « super-bloc ».
Dans ce cas, les points de synchronisation correspondent aux probabilités stockées liées aux contextes utilisés pour le codage des symboles de chaque super- bloc codé de l' image.
En particulier, ledit groupe voisin codé courant est situé dans un rectangle délimité d'une part par le premier bloc codé de l'image selon l'ordre de parcours de codage prédéterminé et d'autre part par le regroupement de blocs constituant la sous-séquence courante. Le rectangle est donc choisi en fonction de l'ordre de parcours de codage prédéterminé.
On notera que le rectangle est bien adapté aux parcours de type ligne ou colonne, par exemple mais de manière non limitative au parcours de type "raster scan".
La contrainte relative au choix d'un groupe voisin codé situé dans ce rectangle permet notamment de diminuer le décalage temporel nécessaire entre le décodage de sous- séquences non-dépendantes.
En effet, , dès que toutes les sous-séquences contenues dans le rectangle sont décodées, les au moins deux sous-séquences non-dépendantes entre elles situées en frontière du rectangle peuvent être décodées simultanément.
Selon un mode de réalisation particulier de l'invention, lesdits au moins deux regroupements de blocs constituant lesdites au moins deux sous-séquences précédemment codées dudit groupe voisin codé courant sont adjacents au regroupement de blocs constituant la sous-séquence courante.
Ainsi, les deux groupes de blocs, ou super-blocs, déterminés afin d'utiliser les probabilités stockées à la fin de leur codage, sont situés dans un voisinage
proche du super-bloc courant, c'est-à-dire qu'ils contiennent des blocs adjacents à au moins un bloc du super-bloc courant, de façon à permettre une meilleure adaptation locale des probabilités des symboles du super-bloc courant.
Cette caractéristique permet également de ne pas tenir compte du codage de super-blocs précédemment codés mais trop éloignés du super-bloc considéré, comme c'est le cas dans le codeur entropique « CABAC » classique lorsque l'on considère un super-bloc en début de ligne par exemple, dont le codage tient compte des blocs précédemment codés situés en fin de ligne précédente.
Selon un aspect particulier de l'invention, ladite étape d'initialisation affecte à ladite probabilité d'apparition courante une valeur égale à une combinaison des probabilités d'apparition connues associées à au moins deux sous-séquences précédemment codées dudit groupe voisin codé courant.
Ainsi, au début du codage d'une sous-séquence, ou d'un super-bloc, les probabilités des symboles sont initialisées à partir des valeurs d'au moins deux points de synchronisation précédemment obtenus, c'est-à-dire à partir des probabilités stockées lors du codage précédent d'au moins deux super-blocs. Par exemple, pour chaque symbole du super-bloc, la probabilité d'apparition du symbole est initialisée à une valeur égale à une moyenne des probabilités d'apparition de ce symbole stockées à la fin du codage précédent de deux super- blocs, situées dans le groupe voisin codé du super-bloc considéré.
L'avantage est de réutiliser judicieusement l'apprentissage du voisinage : au lieu de prendre une seule valeur par défaut ou celle d'un voisin prédéfini, on prend au moins deux valeurs voisines ce qui permet une meilleure initialisation et donc un codage plus efficace.
Selon un mode de réalisation particulier de l'invention, ladite combinaison tient compte des probabilités d'apparition connues associées à une première sous- séquence dudit groupe voisin codé courant, située à gauche de ladite sous- séquence courante et à une seconde sous-séquence dudit groupe voisin codé courant, située au-dessus de ladite sous-séquence courante.
Ainsi, pour un super-bloc donné, on tiendra compte du codage des deux
super-blocs voisins situés respectivement à gauche et en haut du super-bloc donné. Ce choix des deux super-blocs constituant le groupe voisin codé d'un super-bloc est particulièrement adapté à un parcours ligne par ligne, de type « raster-scan », des super-blocs de l'image. En effet, le super-bloc situé en haut et le super-bloc situé à gauche sont déjà codés et suffisamment proches du superbloc considéré pour que les probabilités d'apparition des symboles, stockées à la fin de leurs codages respectifs, soient pertinentes pour le codage du super-bloc considéré.
Si l'on considère un parcours ligne par ligne des super-blocs de l'image, en partant du haut de l'image, mais de droite à gauche, alors le choix des super-blocs du groupe voisin codé se porte au contraire sur les super-blocs situés respectivement à droite et en haut du super-bloc considéré.
Selon un aspect particulier de l'invention, le procédé de codage comprend également une étape de détermination d'une mesure de confiance affectée à ladite probabilité d'apparition courante après codage du dernier symbole de ladite sous- séquence courante.
Ainsi, à chaque probabilité d'apparition d'un symbole stockée à la fin du codage d'une sous-séquence est affectée une mesure de confiance, permettant de tenir compte de la « pertinence » des probabilités obtenues.
Par exemple, lorsqu'un symbole correspond, pour un super-bloc courant, à un coefficient de résidu (dans le cas d'une prédiction inter), il se peut que les super-blocs voisins ne présentent pas de symboles de ce type. La probabilité d'apparition de ce symbole dans le super-bloc courant, qui a été héritée des sous- séquences du groupe voisin codé, n'est alors pas très pertinente pour les super- blocs voisins, et est donc pondérée par une mesure de confiance assez faible.
En particulier, ladite étape d'initialisation affecte à ladite probabilité d'apparition courante une valeur égale à une moyenne des probabilités d'apparition connues associées auxdites sous-séquences dudit groupe voisin codé courant, pondérées chacune par une mesure de confiance déterminée lors de ladite étape de détermination.
Ainsi, lorsqu'une probabilité d'apparition d'un symbole, notée première probabilité, pour une sous-séquence du groupe voisin codé est affectée d'une mesure de confiance supérieure à celle de la probabilité d'apparition, notée seconde probabilité, de ce même symbole pour une autre sous-séquence du groupe voisin codé, alors la probabilité d'apparition courante de ce symbole dans la sous- séquence courante sera initialisée à une valeur tenant plus compte de la première probabilité que de la seconde probabilité.
Selon un autre aspect de l'invention, le procédé de codage comprend : une étape de définition d'au moins deux classes de sous-séquences de symboles ;
une étape d'affectation d'une classe, dite classe courante, à ladite sous- séquence courante, cette dernière ayant dans son groupe voisin codé courant au moins une sous-séquence précédemment codée, notée sous- séquence de dépendance, à laquelle est affectée une classe distincte de ladite classe courante ;
une étape de génération d'un sous- flux par classe, chaque sous-flux portant des informations représentatives du codage entropique des symboles des sous-séquences appartenant à ladite classe.
Ainsi, on peut prévoir de décoder en parallèle les différents sous-flux, tout en respectant un séquencement particulier tenant compte des sous-séquences de dépendance.
De plus, on assure un partage des connaissances entre les processus de décodage des sous-flux, permettant ainsi de limiter les pertes de performances associées en général au décodage parallèle.
Une signalisation peut être mise en œuvre lorsque des classes sont définies pour les sous-séquences. Ainsi, tous les symboles codés correspondant aux sous- séquences d'une même classe sont regroupés, dans l'ordre de codage prédéterminé. Ensuite, les classes sont mises bout à bout dans le flux, en tenant compte de leur dépendance, et sont séparées par des marqueurs de fin de classes dans le flux. Ce sont ces marqueurs qui seront donc utilisés lors du décodage, décrit ci-dessous.
Un autre aspect de l'invention concerne un procédé de décodage d'un flux représentatif d'au moins une image codée, comprenant les étapes suivantes : obtention d'au moins une sous-séquence comprenant un regroupement prédéterminé de symboles ;
et, pour au moins une sous-séquence ainsi obtenue et pour au moins un contexte : initialisation d'au moins une probabilité d'apparition d'un symbole associé audit contexte, dite probabilité d'apparition courante, tenant compte d'au moins deux probabilités d'apparition dudit symbole, dites probabilités d'apparition connues, relatives à deux sous-séquences précédemment décodées d'un groupe voisin décodé courant, un groupe voisin décodé comprenant au moins deux sous-séquences précédemment décodées, parmi lesquelles au moins une appartient à un groupe voisin décodé associé à une sous-séquence distincte de ladite sous-séquence courante, ladite sous- séquence distincte n'appartenant pas audit groupe voisin codé de la sous- séquence courante et ladite sous-séquence courante n'appartenant pas au groupe voisin codé de ladite sous-séquence distincte ;
décodage entropique successif desdits symboles selon un ordre de parcours de codage mis en œuvre lors d'un codage de ladite image, et pour chaque symbole, mise à jour de ladite probabilité d'apparition courante pour le contexte associé audit symbole ;
stockage de ladite probabilité d'apparition courante desdits symboles décodés dans la sous-séquence courante, après décodage du dernier symbole de ladite sous-séquence courante.
Ainsi, l'invention repose sur une approche nouvelle et inventive du décodage d'image, et plus particulièrement du décodage entropique, permettant à la fois un apprentissage plus efficace des probabilités d'apparition des symboles pour le codage et un décodage en parallèle des symboles codés.
Ce procédé de décodage pourra bien sûr comporter les différentes caractéristiques relatives au procédé de codage selon l'invention.
En particulier, une classe étant affectée à au moins une sous-séquence de
symboles lors dudit codage, ledit flux est formé d'au moins deux sous- flux associés chacun à une desdites classes, chaque sous-flux portant des informations représentatives du codage entropique des symboles des sous-séquences appartenant à ladite classe, et lesdites étapes d'initialisation, de décodage et de stockage pour des sous- séquences appartenant à une même classe sont mises en œuvre sous-flux par sous-flux, lesdits sous-flux étant traités en parallèle, lesdites étapes d'initialisation, de décodage et de stockage pour au moins une sous- séquence de dépendance ayant été préalablement mises en œuvre.
Ainsi, l'invention, selon un mode de réalisation, permet le décodage en parallèle de certaines sous-séquences, par la mise en œuvre en parallèle des différentes étapes de décodage décrites ci-dessus.
En particulier, lorsque des classes ont été affectées aux différentes sous- séquences lors du codage et lorsque le flux a été formé de telle façon qu'il comprend des sous-flux correspondants aux classes, alors le procédé de décodage peut tenir compte de ces classes pour décoder les différentes sous-séquences en parallèle. Ainsi, les différentes classes permettent de définir un certain séquencement pour le décodage, c'est-à-dire des contraintes d'ordonnancement des sous-séquences à décoder.
Par exemple, les sous-séquences de dépendance affectées d'une classe différente de la classe affectée à la sous-séquence courante doivent avoir été décodées préalablement au décodage de la sous-séquence courante.
En revanche, toutes les sous-séquences « indépendantes » entre elles, c'est- à-dire n'apparaissant pas dans le groupe voisin décodé d'une autre, et n'ayant pas de sous-séquences de dépendance non encore décodées, peuvent être décodées en parallèle.
Un autre aspect de l'invention concerne un dispositif de codage d'au moins une image représentée par une séquence de symboles générée selon un ordre de parcours de codage prédéterminé.
Selon l'invention, un tel dispositif de codage comprend :
- des moyens de détermination de sous-séquences dans ladite séquence, une
sous-séquence comprenant un regroupement prédéterminé de symboles ; des moyens de parcours des sous-séquences déterminées, comprenant, pour au moins une sous-séquence courante et pour au moins un contexte :
- des moyens de détermination d'un groupe voisin comprenant au moins deux sous-séquences précédemment codées, dit groupe voisin codé courant, parmi lesquelles au moins une appartient à un groupe voisin codé associé à une sous-séquence distincte de ladite sous- séquence courante, ladite sous-séquence distincte n'appartenant pas audit groupe voisin codé de la sous-séquence courante et ladite sous- séquence courante n'appartenant pas au groupe voisin codé de ladite sous-séquence distincte ;
- des moyens d'initialisation d'au moins une probabilité d'apparition d'un symbole associé audit contexte, dite probabilité d'apparition courante, tenant compte d'au moins deux probabilités d'apparition dudit symbole, dites probabilités d'apparition connues, relatives à deux sous-séquences précédemment codées dudit groupe voisin codé courant ;
- des moyens de codage entropique successif desdits symboles selon ledit ordre de parcours de codage prédéterminé, et pour chaque symbole, des moyens de mise à jour de ladite probabilité d'apparition courante pour le contexte associé audit symbole ;
- des moyens de stockage de ladite probabilité d'apparition courante desdits symboles codés dans la sous-séquence courante, après codage du dernier symbole de ladite sous-séquence courante.
Un tel dispositif de codage est notamment adapté à mettre en œuvre le procédé de codage décrit précédemment. Il s'agit par exemple d'un codeur vidéo de type MPEG ou H.264, ou selon une future norme de compression.
Ce dispositif de codage pourra bien sûr comporter les différentes caractéristiques relatives au procédé de codage selon l'invention.
Encore un autre aspect de l'invention concerne un dispositif de décodage
d'un flux représentatif d'au moins une image codée.
Selon l'invention, un tel dispositif de décodage comprend :
- des moyens d'obtention d'au moins une sous-séquence comprenant un regroupement prédéterminé de symboles ;
et, pour au moins une sous-séquence ainsi obtenue et pour au moins un contexte :
- des moyens d'initialisation d'au moins une probabilité d'apparition d'un symbole associé audit contexte, dite probabilité d' apparition courante, tenant compte d'au moins deux probabilités d'apparition dudit symbole, dites probabilités d'apparition connues, relatives à deux sous-séquences précédemment décodées d'un groupe voisin décodé courant, un groupe voisin décodé comprenant au moins deux sous-séquences précédemment décodées, parmi lesquelles au moins une appartient à un groupe voisin décodé associé à une sous-séquence distincte de ladite sous-séquence courante, ladite sous-séquence distincte n'appartenant pas audit groupe voisin codé de la sous-séquence courante et ladite sous- séquence courante n'appartenant pas au groupe voisin codé de ladite sous-séquence distincte ;
- des moyens de décodage entropique successif desdits symboles selon un ordre de parcours de codage mis en œuvre lors d'un codage de ladite image, et pour chaque symbole, des moyens de mise à jour de ladite probabilité d'apparition courante pour le contexte associé audit symbole ;
- des moyens de stockage de ladite probabilité d'apparition courante desdits symboles décodés dans la sous-séquence courante, après décodage du dernier symbole de ladite sous-séquence courante.
Un tel dispositif de décodage est notamment adapté à mettre en œuvre le procédé de décodage décrit précédemment. Il s'agit par exemple d'un décodeur vidéo de type MPEG ou H.264, ou selon une future norme de compression vidéo.
Ce dispositif de décodage pourra bien sûr comporter les différentes caractéristiques relatives au procédé de décodage selon l'invention.
Un autre aspect de l'invention concerne un programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé de codage ou de décodage tel que décrit ci-dessus, lorsque ledit programme est exécuté par un processeur.
On note en effet que le procédé de codage, ou le procédé de décodage, selon l'invention peuvent être mis en œuvre de diverses manières, notamment sous forme câblée ou sous forme logicielle.
Un autre aspect de l'invention concerne également un dispositif de transcodage.
Selon l'invention, un tel dispositif de transcodage comprend :
- un dispositif de décodage entropique apte à décoder les symboles codés d'une séquence reçue. Ce décodage entropique peut être similaire à celui de l'invention si la séquence originale contient déjà des sous-séquences ou classique si la séquence originale n'est contient pas ;
- un dispositif de codage entropique selon l'invention.
Le décodage entropique est donc suivi d'une étape de ré-encodage entropique des symboles. Le ré-encodage est alors similaire au codage tel que décrit dans l'invention.
Un tel transcodeur permet de définir de nouvelles sous-séquences à partir d'une séquence de symboles codés, en fonction des capacités du terminal qui devra effectuer le décodage. En particulier le transcodeur peut adapter la complexité de décodage aux capacités du terminal. Par exemple, le transcodeur définit quatre ou huit ou N classes de décodage selon les capacités du terminal de décodage (par exemple, le nombre de processeurs qui peuvent fonctionner en parallèle).
4. Liste des figures
D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation particulier, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels :
la figure 1 , déjà commentée en relation avec l'art antérieur, présente un exemple de parcours des blocs d'une image de type « raster-scan » ;
la figure 2a présente les principales étapes du procédé de codage, selon un mode de réalisation de l'invention ;
la figure 2b présente d'autres étapes du procédé de codage, selon ce mode de réalisation de l'invention ;
la figure 3 présente un exemple de partitionnement de l'image selon un mode de réalisation de l'invention ;
la figure 4a présente les principales étapes du procédé de décodage, selon un mode de réalisation de l'invention ;
la figure 4b présente d'autres étapes du procédé de décodage, selon ce mode de réalisation de l'invention ;
les figures 5a, 5b et 5c présentent des exemples d'ordre de codage/décodage possible selon un mode de réalisation de l' invention ; les figures 6 et 7 présentent respectivement la structure d'un dispositif de codage et d'un dispositif de décodage, selon un mode de réalisation particulier de l'invention ;
la figure 8 présente la structure d'un dispositif de transcodage selon un mode de réalisation de l'invention.
5. Description d'un mode de réalisation de l'invention
5.1 Principe général
Le principe général de l'invention repose sur un apprentissage « multidimensionnel » des probabilités d'apparition des symboles, non dépendant de l'ordre de parcours de l'image, et permettant une adaptation locale des probabilités d'apparition des symboles et un décodage non séquentiel des symboles codés.
Ainsi, selon l'invention, l'apprentissage des probabilités d'apparition des symboles est basé sur un partitionnement de l'image en sous- séquences de symboles, pour lesquelles les probabilités d'apparition des symboles sont stockées en fin de codage et utilisées pour l'initialisation des probabilités d'apparition des
symboles dans un voisinage proche, quelque soit l'ordre de parcours de l'image pour le codage.
5.2 Description de modes de réalisation du codage
On décrit maintenant, en relation avec la figure 2, les principales étapes du procédé de codage selon un mode de réalisation de l'invention.
Lors d'une étape 21 de génération, une séquence de symboles correspondant à l'image à coder est générée, selon un ordre de parcours prédéterminé.
Cette étape de génération 21 peut être mise en œuvre au fil de l'eau, c'est- à-dire que les étapes suivantes 22, et 231 à 234, peuvent être mises en œuvre en parallèle avec cette étape 21.
A partir de cette séquence de symboles, des sous-séquences de symboles sont déterminées, lors d'une étape 22 de détermination, correspondant chacune à un regroupement prédéterminé de symboles.
Ce regroupement peut correspondre par exemple à un regroupement de blocs de l'image, noté super-bloc. Dans la suite de la description, on considère un regroupement de blocs comprenant un nombre fixe de blocs de taille fixe. On notera toutefois que l'invention n'est pas limitée à cet exemple et pourrait tout aussi bien s'appliquer à des regroupements de blocs comprenant un nombre variable de blocs de taille variable.
Une fois ces sous-séquences déterminées, elles sont parcourues lors d'une étape 23 de parcours, comprenant, pour une sous-séquence courante, et pour un contexte, les étapes 231 à 234 décrites ci-dessous.
On considère à nouveau dans ce mode de réalisation un seul contexte pour la sous-séquence courante, mais le procédé de codage selon l'invention peut être mis en œuvre pour plusieurs contextes.
La première étape 231 consiste à déterminer, pour la sous-séquence courante, un groupe voisin codé courant comprenant au moins deux sous- séquences précédemment codées. De plus, parmi ces sous-séquences précédemment codées et choisies pour appartenir au groupe voisin codé courant,
au moins une appartient à un autre groupe voisin codé associé à une autre sous- séquence distincte de la sous-séquence courante considérée et non encore codée.
Lors d'une deuxième étape d'initialisation 232, on initialise, pour la sous- séquence courante, la ou les probabilités d'apparition, notée(s) probabilité(s) d'apparition courante, d'un symbole associé au contexte. Chaque probabilité d'apparition courante tient compte d'au moins deux probabilités d'apparition connues du symbole, c'est-à-dire obtenues lors du précédent codage d'au moins deux sous-séquences appartenant au groupe voisin codé courant déterminé à l'étape 231.
L'étape suivante 233 de codage consiste à effectuer un codage entropique successif des symboles de la sous-séquence, selon l'ordre de parcours prédéterminé utilisé lors de l'étape 21, et à mettre à jour la ou les probabilités d'apparition associées à chaque symbole.
Enfin, une fois tous les symboles de la sous-séquence ainsi codés, la ou les probabilités d'apparition sont stockées, lors d'une étape 234 de stockage, en vue de leur utilisation pour le codage d'autres sous-séquences voisines, lors des itérations suivantes de l'étape 23.
On notera que le codage peut être fait au fil de l'eau, c'est-à-dire que les étapes décrites ci-dessus peuvent se dérouler en parallèle.
La figure 3 illustre un exemple de parcours de l'image pour un codage entropique selon ce mode de réalisation de l'invention, dans lequel une sous- séquence correspond à un super-bloc comprenant quatre blocs.
La figure 3 montre six super-blocs, numérotés de 0 à 5 selon un ordre de parcours des super-blocs ligne par ligne de type « raster-scan ».
Lors du codage d'un super-bloc, les probabilités d'apparition associées au super-bloc situé à gauche ainsi que celles associées au super-bloc situé au dessus sont donc disponibles. On considère donc que ces deux super-blocs constituent le groupe voisin codé courant pour un super bloc courant considéré.
Par exemple, si l'on considère le super-bloc 4 de la figure 3 comme le super-bloc courant, les super-blocs 1 et 3 constituent le groupe voisin codé
courant. On remarque que le super-bloc 1 peut également faire partie d'un groupe voisin codé pour le super-bloc 2.
Si l'on considère un ordre de parcours des super-blocs différent d'un parcours de type « raster-scan », par exemple un parcours ligne par ligne de droite à gauche, en partant du haut de l'image à droite. On peut alors choisir, pour le super-bloc courant 4, un groupe voisin codé comprenant les super-blocs 1 et 5.
En généralisant, pour un super-bloc courant (i,j) (c'est-à-dire le j-ème super-bloc situé sur la i-ème ligne de super-blocs), l'étape d'initialisation définit la valeur de la probabilité d'apparition d'initialisation PsB,init(i,J) de la manière suivante :
PsB,init(ij) = Averaging( PsB,stockée(i,j -1 ) ; PsB.stockée (i- 1;j )),. avec pSB,stockée(i,j-1) et PsB,stockée (i- 1;j ) r)espectivement les valeurs des probabilités d'apparition stockées à la fin du codage des super-blocs (i, j- 1) et (i-1 ; j).
La probabilité d'apparition d'initialisation PsB,init(ij) correspond à une combinaison obtenue à partir des probabilités stockées PSB, stockée Pour 'es superblocs du groupe voisin codé courant.
Selon une première variante, PsB.init(i,j) est égale à la moyenne de ces deux probabilités, soit : PsB.ini(i,j) = (PSB,stockée (i,j-1) + PSB,stockée(i- j-l))/2.
Selon une autre variante, on affecte à chaque probabilité d'apparition stockée une mesure de confiance, notée Nss,post( · ; · )· On peut alors initialiser PsB,initO>j) avec une valeur égale à une moyenne des deux probabilités stockées à la fin du codage des super-blocs (i, j- 1 ) et (i- 1 ; j), pondérées chacune par une mesure de confiance, soit :
pSB,init (i,j) = ( NSB,stockée(i- j-1).PSB,stockee (i,j-1) + NSB,stockée(i-l. j).PsB,stockée(i-l; j) / (NsB,stockée (i,j-1) + NSB,stockée (i- 1;j )) ·
Dans le cas où le super-bloc de gauche n'est pas présent, on utilise alors directement les valeurs du super-bloc au dessus, et dans le cas où le super-bloc du dessus n'est pas disponible, on utilise alors directement les valeurs du super-bloc à gauche.
Dans le cas où il n'y a pas de super-bloc ni à gauche, ni au-dessus, on
initialise alors à une valeur par défaut, par exemple la valeur de probabilité d'initialisation classiquement utilisée par un codeur « CABAC ».
Selon une variante de réalisation, on peut également définir une mesure de confiance NsB,init Pour ^a probabilité obtenue. Cette mesure de confiance est établie par une méthode de combinaison similaire à celle décrite ci-dessus pour PSB,init> à partir de valeurs NsB.post pour des super-blocs du groupe voisin codé.
On présente en Annexe A, faisant partie intégrante de la présente description, une implémentation à moindre complexité du calcul de la moyenne pondérée pour l'initialisation d'une probabilité d'apparition d'un symbole.
Une fois la probabilité d'apparition du symbole initialisée, on parcourt alors les blocs du super-bloc courant, par exemple selon un ordre de type « raster- scan », comme illustré en figure 3.
La probabilité p de codage est initialisée à la valeur PSB.init(I,J) préalablement définie, et évolue de façon classique par la formule :
A l'issue du codage de tous les blocs d'un super-bloc, l'état de la valeur de probabilité d'apparition est alors stockée dans PSB,stockée(i, j).
Comme déjà indiquée précédemment, une mesure de confiance peut être affectée à cette probabilité, par exemple de la manière suivante :
où a' correspond à un facteur d'atténuation de mise à jour, ou un paramètre de contrôle de la vitesse d'apprentissage, similaire au a utilisé pour la mise à jour des probabilité d'un codeur arithmétique classique de type « CABAC et correspond au nombre de symboles codes pour le
super-bloc considéré.
On présente maintenant, en relation avec la figure 2b, d'autres étapes du procédé de codage selon ce mode de réalisation de l'invention, permettant notamment un décodage en parallèle de certaines sous-séquences.
Ainsi, selon ce mode de réalisation de l' invention, le procédé de codage
considère des classes associées à des sous-séquences, rendant possible le codage/décodage en parallèle dans plusieurs processus, en respectant des contraintes d'ordonnancement sur les traitements des différents super-blocs au sein de ces processus.
Dans un premier temps, lors d'une étape 24 de définition, on définit aux moins deux classes ci et cj de sous-séquences, pour les sous-séquences définies préalablement lors de l'étape 22.
Ensuite, lors d'une étape 25 d'affectation, on affecte une classe à la sous- séquence courante, sachant que cette dernière a dans son groupe voisin codé courant au moins une sous-séquence précédemment codée, notée sous-séquence de dépendance, à laquelle est affectée une classe distincte de ladite classe courante.
Ainsi, on marque ici, au codage, une dépendance entre certaines sous- séquences, par l'affectation d'une classe, qui sera utilisée lors du décodage.
Enfin, on génère un sous-flux s-fj par classe, lors d'une étape 26 de génération, chaque sous-flux portant des informations représentatives du codage entropique des symboles des sous-séquences appartenant à ladite classe.
De cette manière, les sous-séquences ne présentant pas de dépendance peuvent être décodées en parallèle, et le décodage des sous-séquences présentant une dépendance doit être effectuée en respectant cette contrainte de dépendance.
En particulier, les sous-flux peuvent être générés par un transcodeur, qui permet, à partir d'un flux binaire représentant une séquence de symboles codés pour une image, de générer plusieurs sous-flux binaires décodables de manière parallèle tel que décrit dans l'invention.
La séquence de symboles codés originale peut ou non contenir des sous- séquences décodables en parallèle, c'est-à-dire qu'elle peut avoir été générée à partir d'un codeur tel que celui de l'invention ou bien par un codeur classique.
Un but du transcodeur est de définir de nouvelles sous-séquences, en fonction des capacités du terminal qui devra effectuer le décodage. Ceci permet donc d'adapter la complexité de décodage aux capacités du terminal. Par exemple,
le transcodeur pourra ainsi définir quatre, huit, ou x classes de décodage selon les capacités du terminal de décodage.
Un exemple de dispositif de transcodage 81 selon l'invention est maintenant décrit en référence à la figure 8. Π comprend un dispositif de décodage entropique 82 et un dispositif de codage 83 selon l'invention. Sur réception d'une première séquence de symboles codés représentative d'une ou plusieurs images, le dispositif de décodage entropique fournit une séquence de symboles décodés, qui est transmise au dispositif de codage selon l'invention pour ré-encodage en une deuxième séquence de symboles codées. Le décodage entropique est similaire à celui de l'invention si la séquence originale contient des sous- séquences ou à un décodage classique si la séquence originale n'est contient pas. Le ré-encodage entropique est lui similaire au codage tel que décrit dans l'invention.
Selon un aspect de l'invention, le dispositif de transcodage 81 est apte à définir des classes en fonction de connaissances a priori, relatives aux capacités d'un terminal destinataire de la deuxième séquence de symboles codés, par exemple en termes de nombre de processeurs disponibles. Dans ce cas, le dispositif de transcodage selon l'invention fournit autant de sous-flux binaires que de classes précédemment définies.
Les figures 5a à 5c illustrent trois exemples d'affectation de classes à des sous-séquences, dans le cas où une sous-séquence correspond à un super-bloc (un super-bloc est représenté par un carré numéroté).
Elles seront décrites plus en détails ci-dessous.
5.3 Description de modes de réalisation du décodage
On présente donc maintenant, en relation avec les figures 4a et 4b, le procédé de décodage selon des modes de réalisation de l'invention.
Lors d'une première étape 41, on obtient une sous-séquence comprenant un regroupement prédéterminé de symboles à décoder, noté sous-séquence courante.
Ensuite, lors d'une étape d'initialisation 42, on initialise la ou les probabilités d'apparition, notée(s) probabilité(s) d'apparition courante, d'un
symbole de la sous-séquence associé au contexte. Chaque probabilité d'apparition courante tient compte d'au moins deux probabilités d'apparition connues du symbole, c'est-à-dire obtenues lors du précédent décodage d'au moins deux sous- séquences appartenant à un voisinage de la sous-séquence courante.
Ce voisinage est appelé groupe voisin décodé courant et comprend au moins deux sous-séquences précédemment décodées, parmi lesquelles au moins une appartient à un groupe voisin décodé associé à une sous-séquence distincte de la sous-séquence courante. Ainsi, une sous-séquence peut servir au décodage de plusieurs autres sous-séquences.
L'étape suivante 43 de décodage consiste à effectuer un décodage entropique successif des symboles de la sous-séquence, selon un ordre de parcours mis en œuvre lors d'un codage de l'image, et à mettre à jour la ou les probabilités d'apparition associées à chaque symbole.
Enfin, une fois tous les symboles de la sous-séquence ainsi décodés, la ou les probabilités d'apparition sont stockées, lors d'une étape 44 de stockage, en vue de leur utilisation pour le décodage d'autres sous-séquences voisines, lors des itérations des étapes 42 à 44.
On décrit maintenant, en relation avec les figures 4b et 5a à 5c, d'autres étapes du procédé de décodage, selon ce mode de réalisation de l'invention.
La figure 4b présente un exemple de décodage en parallèle selon un mode de réalisation de l'invention.
Selon ce mode de réalisation, une classe a été affectée à au moins une sous-séquence de symboles lors du codage et le flux à décoder est formé d'au moins deux sous-flux associés chacun à une classe. Chaque sous-flux porte des informations représentatives du codage entropique des symboles des sous- séquences appartenant à la classe, codage effectué selon le procédé de codage de l'invention décrit précédemment.
Les étapes 42, 43 et 44 décrites ci-dessus peuvent alors être mises en œuvre sous-flux par sous-flux.
Comme illustré sur la figure 4b, les sous-flux s-fj à s-f; peuvent ainsi être
traités en parallèle, dès lors que les sous-séquences de dépendances, telles que décrit précédemment, ont déjà été décodées.
La figure 4b illustre également un exemple de dépendance entre plusieurs sous-flux. Ainsi, le sous-flux s-fi est traité seulement une fois que le traitement des deux sous-flux s-f 1 et s-fj est terminé, car l'étape d'initialisation 42i tient compte des probabilités stockées respectivement aux étapes 441 et 44j. C'est le cas lorsque la sous-séquence correspondant au sous-flux s-fj a un groupe voisin décodé courant comprenant les deux sous-séquences correspondant aux deux sous-flux -f j et s-fj.
Les figures 5a à 5c illustrent particulièrement trois exemples d'ordre de décodage possible des sous-séquences, correspondant à des super-blocs dans ce mode de réalisation.
La figure 5a illustre un exemple de réalisation dans lequel la même classe est affectée à toutes les sous-séquences d'une même ligne de l'image, par exemple la classe numérotée 0 correspond à la première ligne en haut de l'image, la classe 1 à la deuxième ligne, etc.
Ainsi, les super-blocs numérotés de 0 à 11 sur la ligne 0 sont tous affectés de la même classe 0, et forment un sous-flux 0, de même pour tous les super-blocs de la ligne 4. Selon ce mode de réalisation, on considère qu'un super-bloc, pour être décodé, utilise les probabilités stockées lors du décodage de deux deux superblocs voisins, ceux situés respectivement au-dessus et à gauche. Ainsi, les superblocs de la ligne 0 doivent être décodés séquentiellement, le bloc situé à gauche devant être décodé préalablement au décodage du bloc courant.
En revanche, si l'on considère la ligne 1, on peut voir qu'à partir du moment où les blocs 0 et 1 de la ligne 0 sont décodés, les blocs de la ligne 1 peuvent être décodés également. En effet, le bloc 2 de la ligne 1 a besoin des blocs 1 des lignes 0 et 1 décodés, et ainsi de suite.
Selon ce mode de réalisation, les différentes lignes peuvent donc être décodées en parallèle, en respectant la contrainte de dépendance, c'est-à-dire en commençant le décodage de la ligne 0 avant le décodage de la ligne 1. et ainsi de
suite.
D'un point de vue temporel, si l'on considère que les numéros des blocs correspondent à l'instant auquel ils sont décodés, on peut donc voir qu'à l'instant t=4 par exemple, les blocs 4 des lignes 0, 1, 2 et 3 peuvent être décodés.
Sur la figure 5b, une classe est affectée aux super-blocs d'une même colonne, et un sous-flux correspond donc à une colonne. Le principe est le même que celui décrit en relation avec la figure 5a, avec des colonnes.
Ces deux exemples de réalisation montrent que les quatre-vingt-seize super-blocs de l'image peuvent être décodés en vingt-sept instants, au lieu de quatre-vingt-seize instants pour un décodage classique.
Sur la figure 5c, une classe est affectée à une demie ligne et permet de décoder les quatre-vingt-seize blocs de l'image en trente et un instants.
5.4 Structure des dispositifs de codage et de décodage
On présente finalement, en relation avec les figures 6 et 7, la structure simplifiée d'un dispositif de codage et d'un dispositif de décodage selon les modes de réalisation décrits ci-dessus.
Comme illustré en figure 6, un tel dispositif de codage comprend une mémoire 60 comprenant une mémoire tampon, une unité de traitement 62, équipée par exemple d'un microprocesseur μΡ , et pilotée par le programme d'ordinateur 63, mettant en œuvre le procédé de codage selon l'invention.
A l'initialisation, les instructions de code du programme d'ordinateur 63 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 62. L'unité de traitement 62 reçoit en entrée une image, représentée par une sous-séquence de symboles. Le microprocesseur de l'unité de traitement 62 met en œuvre les étapes du procédé de codage décrit précédemment, selon les instructions du programme d'ordinateur 63. Pour cela, le dispositif de codage comprend, outre la mémoire tampon 60, des moyens de détermination de sous-séquences dans ladite séquence, une sous-séquence comprenant un regroupement prédéterminé de symboles, des moyens de parcours des sous-séquences déterminées, comprenant, pour au moins une sous-séquence
courante et pour au moins un contexte, des moyens de détermination d'un groupe voisin comprenant au moins deux sous-séquences précédemment codées, dit groupe voisin codé courant, parmi lesquelles au moins une appartient à un groupe voisin codé associé à une sous-séquence distincte de ladite sous-séquence courante, ladite sous-séquence distincte n'appartenant pas audit groupe voisin codé de la sous-séquence courante et ladite sous-séquence courante n'appartenant pas au groupe voisin codé de ladite sous-séquence distincte, des moyens d'initialisation d'au moins une probabilité d'apparition d'un symbole associé audit contexte, dite probabilité d'apparition courante, tenant compte d'au moins deux probabilités d'apparition dudit symbole, dites probabilités d'apparition connues, relatives à deux sous-séquences précédemment codées dudit groupe voisin codé courant, des moyens de codage entropique successif desdits symboles selon ledit ordre de parcours de codage prédéterminé, et pour chaque symbole, des moyens de mise à jour de ladite probabilité d'apparition courante pour le contexte associé audit symbole, et des moyens de stockage de ladite probabilité d'apparition courante desdits symboles codés dans la sous-séquence courante, après codage du dernier symbole de ladite sous-séquence courante. Ces moyens sont pilotés par le microprocesseur de l'unité de traitement 62. L'unité de traitement 62 transmet donc, à destination d'au moins un dispositif de décodage, un flux représentatif d'au moins une image codée.
Comme illustré en figure 7, un tel dispositif de décodage comprend quant à lui une mémoire 70 comprenant une mémoire tampon, une unité de traitement 72, équipée par exemple d'un microprocesseur //P , et pilotée par le programme d'ordinateur 73, mettant en œuvre le procédé de décodage selon l'invention.
A l'initialisation, les instructions de code du programme d'ordinateur 73 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 72. L'unité de traitement 72 reçoit en entrée un flux représentatif d'au moins une image codée. Le microprocesseur de l'unité de traitement 72 met en œuvre les étapes du procédé de décodage décrit précédemment, selon les instructions du programme d'ordinateur 73. Pour cela, le
dispositif de décodage comprend, outre la mémoire tampon 70, des moyens d'obtention d'au moins une sous-séquence comprenant un regroupement prédéterminé de symboles, et, pour au moins une sous-séquence ainsi obtenue et pour au moins un contexte, des moyens d'initialisation d'au moins une probabilité d'apparition d'un symbole associé audit contexte, dite probabilité d'apparition courante, tenant compte d'au moins deux probabilités d'apparition dudit symbole, dites probabilités d'apparition connues, relatives à deux sous-séquences précédemment décodées d'un groupe voisin décodé courant, un groupe voisin décodé comprenant au moins deux sous-séquences précédemment décodées, parmi lesquelles au moins une appartient à un groupe voisin décodé associé à une sous-séquence distincte de ladite sous-séquence courante, des moyens de décodage entropique successif desdits symboles selon un ordre de parcours de codage mis en œuvre lors d'un codage de ladite image, et pour chaque symbole, des moyens de mise à jour de ladite probabilité d'apparition courante pour le contexte associé audit symbole, et des moyens de stockage de ladite probabilité d'apparition courante desdits symboles décodés dans la sous-séquence courante, après décodage du dernier symbole de ladite sous-séquence courante. Ces moyens sont pilotés par le microprocesseur de l'unité de traitement 72.
ANNEXE A
Des valeurs typiques des paramètres pour des super-blocs de taille 8x8 blocs (blocs de taille 8x8) sont: Tmin=-20, Tmax=14.
Claims
1. Procédé de codage d'au moins une image représentée par une séquence de symboles générée selon un ordre de parcours de codage prédéterminé, caractérisé en ce qu' il comprend les étapes suivantes :
- détermination de sous-séquences dans ladite séquence, une sous-séquence comprenant un regroupement prédéterminé de symboles ;
parcours des sous-séquences déterminées, comprenant les sous-étapes suivantes, pour au moins une sous-séquence courante et pour au moins un contexte :
- détermination d'un groupe voisin comprenant au moins deux sous- séquences précédemment codées, dit groupe voisin codé courant, parmi lesquelles au moins une appartient à un groupe voisin codé associé à une sous-séquence distincte de ladite sous-séquence courante, ladite sous-séquence distincte n'appartenant pas audit groupe voisin codé de la sous-séquence courante et ladite sous- séquence courante n'appartenant pas au groupe voisin codé de ladite sous-séquence distincte ;
- initialisation d'au moins une probabilité d'apparition d'un symbole associé audit contexte, dite probabilité d'apparition courante, tenant compte d'au moins deux probabilités d'apparition dudit symbole, dites probabilités d'apparition connues, relatives à deux sous- séquences précédemment codées dudit groupe voisin codé courant ;
- codage entropique successif desdits symboles selon ledit ordre de parcours de codage prédéterminé, et pour chaque symbole, mise à jour de ladite probabilité d'apparition courante pour le contexte associé audit symbole ;
- stockage de ladite probabilité d'apparition courante desdits symboles codés dans la sous-séquence courante, après codage du dernier symbole de ladite sous-séquence courante.
2. Procédé de codage selon la revendication 1 , dans lequel l'étape de génération d'une séquence de symboles est obtenue à l'aide d'un codage par blocs, ledit procédé étant caractérisé en ce que le regroupement prédéterminé de symboles est un regroupement de blocs de taille fixe.
3. Procédé de codage selon la revendication 2, caractérisé en ce que ledit groupe voisin codé courant est situé dans un rectangle délimité d'une part par le premier bloc codé de l'image selon l'ordre de parcours de codage prédéterminé et d'autre part par le regroupement de blocs constituant la sous-séquence courante.
4. Procédé de codage selon la revendication 3, caractérisé en ce que lesdits au moins deux regroupements de blocs constituant lesdites au moins deux sous- séquences précédemment codées dudit groupe voisin codé courant sont adjacents au regroupement de blocs constituant la sous-séquence courante.
5. Procédé de codage selon la revendication 1, caractérisé en ce que ladite étape d'initialisation affecte à ladite probabilité d'apparition courante une valeur égale à une combinaison des probabilités d'apparition connues associées à au moins deux sous-séquences précédemment codées dudit groupe voisin codé courant.
6. Procédé de codage selon la revendication 5, caractérisé en ce que ladite combinaison tient compte des probabilités d'apparition connues associées à une première sous-séquence dudit groupe voisin codé courant, située à gauche de ladite sous-séquence courante et à une seconde sous-séquence dudit groupe voisin codé courant, située au-dessus de ladite sous-séquence courante.
7. Procédé de codage selon la revendication 1, caractérisé en ce qu'il comprend également une étape de détermination d'une mesure de confiance affectée à ladite probabilité d'apparition courante après codage du dernier symbole de ladite sous-séquence courante.
8. Procédé de codage selon la revendication 7, caractérisé en ce que ladite étape d'initialisation affecte à ladite probabilité d'apparition courante une valeur égale à une moyenne des probabilités d'apparition connues associées auxdites sous-séquences dudit groupe voisin codé courant, pondérées chacune par une mesure de confiance déterminée lors de ladite étape de détermination.
9. Procédé de codage selon la revendication 1, caractérisé en ce qu'il comprend :
une étape de définition d'au moins deux classes de sous- séquences de symboles ;
- une étape d'affectation d'une classe, dite classe courante, à ladite sous- séquence courante, cette dernière ayant dans son groupe voisin codé courant au moins une sous-séquence précédemment codée, notée sous-séquence de dépendance, à laquelle est affectée une classe distincte de ladite classe courante ; une étape de génération d'un sous-flux par classe, chaque sous-flux portant des informations représentatives du codage entropique des symboles des sous- séquences appartenant à ladite classe.
10. Procédé de décodage d'un flux représentatif d'au moins une image codée, caractérisé en ce qu'il comprend les étapes suivantes :
- obtention d'au moins une sous-séquence comprenant un regroupement prédéterminé de symboles ;
et, pour au moins une sous-séquence ainsi obtenue et pour au moins un contexte :
- initialisation d'au moins une probabilité d'apparition d'un symbole associé audit contexte, dite probabilité d'apparition courante, tenant compte d'au moins deux probabilités d'apparition dudit symbole, dites probabilités d'apparition connues, relatives à deux sous-séquences précédemment décodées d'un groupe voisin décodé courant, un groupe voisin décodé comprenant au moins deux sous-séquences précédemment décodées, parmi lesquelles au moins une appartient à un groupe voisin décodé associé à une sous-séquence distincte de ladite sous-séquence courante ;
- décodage entropique successif desdits symboles selon un ordre de parcours de codage mis en œuvre lors d'un codage de ladite image, et pour chaque symbole, mise à jour de ladite probabilité d'apparition courante pour le contexte associé audit symbole ;
- stockage de ladite probabilité d'apparition courante desdits symboles décodés dans la sous-séquence courante, après décodage du dernier symbole de ladite sous-séquence courante.
11. Procédé de décodage selon la revendication 10, caractérisé en ce que, une classe étant affectée à au moins une sous-séquence de symboles lors dudit codage, ledit flux est formé d'au moins deux sous-flux associés chacun à une desdites classes, chaque sous-flux portant des informations représentatives du codage entropique des symboles des sous-séquences appartenant à ladite classe, et en ce que lesdites étapes d'initialisation, de décodage et de stockage pour des sous-séquences appartenant à une même classe sont mises en œuvre sous-flux par sous-flux, lesdits sous-flux étant traités en parallèle, lesdites étapes d'initialisation, de décodage et de stockage pour au moins une sous-séquence de dépendance ayant été préalablement mises en œuvre.
12. Dispositif de codage d'au moins une image représentée par une séquence de symboles générée selon un ordre de parcours de codage prédéterminé, caractérisé en ce qu'il comprend :
des moyens de détermination de sous-séquences dans ladite séquence, une sous-séquence comprenant un regroupement prédéterminé de symboles ; des moyens de parcours des sous-séquences déterminées, comprenant, pour au moins une sous-séquence courante et pour au moins un contexte :
- des moyens de détermination d'un groupe voisin comprenant au moins deux sous-séquences précédemment codées, dit groupe voisin codé courant, parmi lesquelles au moins une appartient à un groupe voisin codé associé à une sous-séquence distincte de ladite sous- séquence courante, ladite sous-séquence distincte n'appartenant pas audit groupe voisin codé de la sous-séquence courante et ladite sous- séquence courante n'appartenant pas au groupe voisin codé de ladite sous-séquence distincte ;
- des moyens d'initialisation d'au moins une probabilité d'apparition d'un symbole associé audit contexte, dite probabilité d'apparition courante, tenant compte d'au moins deux probabilités d'apparition dudit symbole, dites probabilités d'apparition connues, relatives à deux sous-séquences précédemment codées dudit groupe voisin codé courant ;
- des moyens de codage entropique successif desdits symboles selon ledit ordre de parcours de codage prédéterminé, et pour chaque symbole, des moyens de mise à jour de ladite probabilité d'apparition courante pour le contexte associé audit symbole ;
- des moyens de stockage de ladite probabilité d'apparition courante desdits symboles codés dans la sous-séquence courante, après codage du dernier symbole de ladite sous-séquence courante.
13. Dispositif de décodage d'un flux représentatif d'au moins une image codée,
caractérisé en ce qu'il comprend :
- des moyens d'obtention d'au moins une sous-séquence comprenant un regroupement prédéterminé de symboles ;
et, pour au moins une sous-séquence ainsi obtenue et pour au moins un contexte :
- des moyens d'initialisation d'au moins une probabilité d'apparition d'un symbole associé audit contexte, dite probabilité d'apparition courante, tenant compte d'au moins deux probabilités d'apparition dudit symbole, dites probabilités d'apparition connues, relatives à deux sous-séquences précédemment décodées d'un groupe voisin décodé courant, un groupe voisin décodé comprenant au moins deux sous-séquences précédemment décodées, parmi lesquelles au moins une appartient à un groupe voisin décodé associé à une sous-séquence distincte de ladite sous-séquence courante, ladite sous-séquence distincte n'appartenant pas audit groupe voisin codé de la sous-séquence courante et ladite sous- séquence courante n'appartenant pas au groupe voisin codé de ladite sous-séquence distincte ;
- des moyens de décodage entropique successif desdits symboles selon un ordre de parcours de codage mis en œuvre lors d'un codage de ladite image, et pour chaque symbole, des moyens de mise à jour de ladite probabilité d'apparition courante pour le contexte associé audit symbole ;
- des moyens de stockage de ladite probabilité d'apparition courante desdits symboles décodés dans la sous-séquence courante, après décodage du dernier symbole de ladite sous-séquence courante.
14. Programme d'ordinateur comportant des instructions pour l'exécution des étapes du procédé selon la revendication 1 ou la revendication 10, lorsque ledit programme est exécuté par un ordinateur.
15. Dispositif de transcodage d'au moins une image représentée par une séquence de symboles générée selon un ordre de parcours de codage prédéterminé et codée par un codeur entropique, caractérisé en ce qu' il comprend :
- des moyens de décodage entropique des symboles codés de ladite séquence, aptes à fournir une séquence de symboles décodés;
- un dispositif de codage entropique selon la revendication 12, apte à encoder les symboles de ladite séquence de symboles décodés.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/500,583 US9287894B2 (en) | 2009-10-05 | 2010-10-01 | Methods for encoding and decoding images, corresponding encoding and decoding devices and computer programs |
EP10781948.4A EP2486659B1 (fr) | 2009-10-05 | 2010-10-01 | Procedes de codage et de décodage d'images, dispositifs de codage et de decodage et programmes d'ordinateur correspondants |
CN201080044609.9A CN102648583B (zh) | 2009-10-05 | 2010-10-01 | 用于编码和解码图像的方法、对应的编码和解码装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0956932 | 2009-10-05 | ||
FR0956932 | 2009-10-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2011042645A1 true WO2011042645A1 (fr) | 2011-04-14 |
Family
ID=41666413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/FR2010/052081 WO2011042645A1 (fr) | 2009-10-05 | 2010-10-01 | Procedes de codage et de décodage d'images, dispositifs de codage et de decodage et programmes d'ordinateur correspondants |
Country Status (4)
Country | Link |
---|---|
US (1) | US9287894B2 (fr) |
EP (1) | EP2486659B1 (fr) |
CN (1) | CN102648583B (fr) |
WO (1) | WO2011042645A1 (fr) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012167103A1 (fr) * | 2011-06-03 | 2012-12-06 | Qualcomm Incorporated | Codage s'adaptant au contexte de données vidéo |
WO2012175870A1 (fr) * | 2011-06-24 | 2012-12-27 | France Telecom | Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'ordinateur correspondants |
WO2013010997A1 (fr) * | 2011-07-15 | 2013-01-24 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Codage d'un ensemble d'échantillons pour faible retard |
US9271012B2 (en) | 2011-03-07 | 2016-02-23 | Dolby International Ab | Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto |
RU2777499C1 (ru) * | 2011-07-15 | 2022-08-04 | ДжиИ Видео Компрешн, ЭлЭлСи | Кодирование массива выборок для низкой задержки |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005049957A2 (fr) * | 2003-11-18 | 2005-06-02 | Halliburton Energy Services, Inc. | Systeme d'outils pour hautes temperatures et procede |
CN114445129B (zh) * | 2022-01-13 | 2024-03-19 | 湖北国际物流机场有限公司 | Bim编码系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1355499A2 (fr) * | 2002-04-08 | 2003-10-22 | Broadcom Corporation | Système et méthode de décodage vidéo multi-ligne avec dépendance entre les lignes |
FR2854754A1 (fr) * | 2003-05-06 | 2004-11-12 | Envivio France | Procede et dispositif de codage ou decodage d'image avec parallelisation du traitement sur une pluralite de processeurs, programme d'ordinateur et signal de synchronisation correspondants |
US20040258162A1 (en) * | 2003-06-20 | 2004-12-23 | Stephen Gordon | Systems and methods for encoding and decoding video data in parallel |
US20080074426A1 (en) * | 2006-09-21 | 2008-03-27 | Yosef Stein | Multiprocessor decoder system and method |
US20080219349A1 (en) * | 2006-07-17 | 2008-09-11 | Sony Corporation | Parallel processing apparatus for video compression |
US20090168868A1 (en) | 2007-12-31 | 2009-07-02 | Musa Jahanghir | Systems and apparatuses for performing CABAC parallel encoding and decoding |
FR2931280A1 (fr) * | 2008-05-19 | 2009-11-20 | Envivio France Entpr Uniperson | Procede et dispositif de codage ou decodage d'image avec parallelisatioon du traitement sur plusieurs processeurs et coprocesseurs, programme d'ordinateur et moyen de stockage correspondants. |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1214649C (zh) * | 2003-09-18 | 2005-08-10 | 中国科学院计算技术研究所 | 用于视频预测残差系数编码的熵编码方法 |
US8401082B2 (en) * | 2006-03-27 | 2013-03-19 | Qualcomm Incorporated | Methods and systems for refinement coefficient coding in video compression |
US8848789B2 (en) * | 2006-03-27 | 2014-09-30 | Qualcomm Incorporated | Method and system for coding and decoding information associated with video compression |
CN100596198C (zh) * | 2006-12-05 | 2010-03-24 | 华为技术有限公司 | 一种编码方法及编码器 |
KR101356733B1 (ko) * | 2007-03-07 | 2014-02-05 | 삼성전자주식회사 | 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치 |
US8571104B2 (en) * | 2007-06-15 | 2013-10-29 | Qualcomm, Incorporated | Adaptive coefficient scanning in video coding |
-
2010
- 2010-10-01 US US13/500,583 patent/US9287894B2/en active Active
- 2010-10-01 WO PCT/FR2010/052081 patent/WO2011042645A1/fr active Application Filing
- 2010-10-01 EP EP10781948.4A patent/EP2486659B1/fr active Active
- 2010-10-01 CN CN201080044609.9A patent/CN102648583B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1355499A2 (fr) * | 2002-04-08 | 2003-10-22 | Broadcom Corporation | Système et méthode de décodage vidéo multi-ligne avec dépendance entre les lignes |
FR2854754A1 (fr) * | 2003-05-06 | 2004-11-12 | Envivio France | Procede et dispositif de codage ou decodage d'image avec parallelisation du traitement sur une pluralite de processeurs, programme d'ordinateur et signal de synchronisation correspondants |
US20040258162A1 (en) * | 2003-06-20 | 2004-12-23 | Stephen Gordon | Systems and methods for encoding and decoding video data in parallel |
US20080219349A1 (en) * | 2006-07-17 | 2008-09-11 | Sony Corporation | Parallel processing apparatus for video compression |
US20080074426A1 (en) * | 2006-09-21 | 2008-03-27 | Yosef Stein | Multiprocessor decoder system and method |
US20090168868A1 (en) | 2007-12-31 | 2009-07-02 | Musa Jahanghir | Systems and apparatuses for performing CABAC parallel encoding and decoding |
FR2931280A1 (fr) * | 2008-05-19 | 2009-11-20 | Envivio France Entpr Uniperson | Procede et dispositif de codage ou decodage d'image avec parallelisatioon du traitement sur plusieurs processeurs et coprocesseurs, programme d'ordinateur et moyen de stockage correspondants. |
Non-Patent Citations (1)
Title |
---|
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 |
Cited By (91)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11736723B2 (en) | 2011-03-07 | 2023-08-22 | Dolby International Ab | Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto |
US11343535B2 (en) | 2011-03-07 | 2022-05-24 | Dolby International Ab | Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto |
US10681376B2 (en) | 2011-03-07 | 2020-06-09 | Dolby International Ab | Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto |
US10382784B2 (en) | 2011-03-07 | 2019-08-13 | Dolby International Ab | Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto |
US9628818B2 (en) | 2011-03-07 | 2017-04-18 | Dolby International Ab | Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto |
US9560380B2 (en) | 2011-03-07 | 2017-01-31 | Dolby International Ab | Coding and decoding images using probability data |
US9271012B2 (en) | 2011-03-07 | 2016-02-23 | Dolby International Ab | Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto |
US9379736B2 (en) | 2011-06-03 | 2016-06-28 | Qualcomm Incorporated | Context-adaptive coding video data |
WO2012167103A1 (fr) * | 2011-06-03 | 2012-12-06 | Qualcomm Incorporated | Codage s'adaptant au contexte de données vidéo |
KR20190087671A (ko) * | 2011-06-24 | 2019-07-24 | 돌비 인터네셔널 에이비 | 이미지들을 인코딩 및 디코딩하기 위한 방법, 인코딩 및 디코딩 디바이스, 및 압축 컴퓨터 프로그램들 |
KR20210041123A (ko) * | 2011-06-24 | 2021-04-14 | 돌비 인터네셔널 에이비 | 이미지들을 인코딩 및 디코딩하기 위한 방법, 인코딩 및 디코딩 디바이스, 및 압축 컴퓨터 프로그램들 |
US9319692B2 (en) | 2011-06-24 | 2016-04-19 | Dolby International Ab | Method for encoding and decoding images, encoding and decoding device, and corresponding computer programs |
US9380308B2 (en) | 2011-06-24 | 2016-06-28 | Dolby International Ab | Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto |
WO2012175870A1 (fr) * | 2011-06-24 | 2012-12-27 | France Telecom | Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'ordinateur correspondants |
RU2779843C1 (ru) * | 2011-06-24 | 2022-09-14 | Долби Интернэшнл Аб | Устройство для кодирования и декодирования изображений |
KR102437249B1 (ko) | 2011-06-24 | 2022-08-26 | 돌비 인터네셔널 에이비 | 이미지들을 인코딩 및 디코딩하기 위한 방법, 인코딩 및 디코딩 디바이스, 및 압축 컴퓨터 프로그램들 |
FR2977111A1 (fr) * | 2011-06-24 | 2012-12-28 | France Telecom | Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants |
KR101708982B1 (ko) | 2011-06-24 | 2017-02-21 | 돌비 인터네셔널 에이비 | 이미지들을 인코딩 및 디코딩하기 위한 방법, 인코딩 및 디코딩 디바이스, 및 압축 컴퓨터 프로그램들 |
KR20220000420A (ko) * | 2011-06-24 | 2022-01-03 | 돌비 인터네셔널 에이비 | 이미지들을 인코딩 및 디코딩하기 위한 방법, 인코딩 및 디코딩 디바이스, 및 압축 컴퓨터 프로그램들 |
KR102344519B1 (ko) | 2011-06-24 | 2021-12-29 | 돌비 인터네셔널 에이비 | 이미지들을 인코딩 및 디코딩하기 위한 방법, 인코딩 및 디코딩 디바이스, 및 압축 컴퓨터 프로그램들 |
RU2757543C1 (ru) * | 2011-06-24 | 2021-10-18 | Долби Интернэшнл Аб | Способ кодирования и декодирования изображений, устройство для кодирования и декодирования и соответствующие компьютерные программы |
US9319694B2 (en) | 2011-06-24 | 2016-04-19 | Dolby International Ab | Method for encoding and decoding images, encoding and decoding device, and corresponding computer programs |
US9654783B2 (en) | 2011-06-24 | 2017-05-16 | Dolby International Ab | Method for encoding and decoding images, encoding and decoding device, and corresponding computer programs |
US9661335B2 (en) | 2011-06-24 | 2017-05-23 | Dolby International Ab | Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto |
KR102240333B1 (ko) | 2011-06-24 | 2021-04-13 | 돌비 인터네셔널 에이비 | 이미지들을 인코딩 및 디코딩하기 위한 방법, 인코딩 및 디코딩 디바이스, 및 압축 컴퓨터 프로그램들 |
US9848196B2 (en) | 2011-06-24 | 2017-12-19 | Dolby International Ab | Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto |
RU2739497C1 (ru) * | 2011-06-24 | 2020-12-24 | Долби Интернэшнл Аб | Устройство кодирования и декодирования изображений |
KR20200135580A (ko) * | 2011-06-24 | 2020-12-02 | 돌비 인터네셔널 에이비 | 이미지들을 인코딩 및 디코딩하기 위한 방법, 인코딩 및 디코딩 디바이스, 및 압축 컴퓨터 프로그램들 |
KR102185377B1 (ko) | 2011-06-24 | 2020-12-01 | 돌비 인터네셔널 에이비 | 이미지들을 인코딩 및 디코딩하기 위한 방법, 인코딩 및 디코딩 디바이스, 및 압축 컴퓨터 프로그램들 |
EP3700207A1 (fr) * | 2011-06-24 | 2020-08-26 | Dolby International AB | Procédé et dispositif de codage et décodage d'images |
KR20180004318A (ko) * | 2011-06-24 | 2018-01-10 | 돌비 인터네셔널 에이비 | 이미지들을 인코딩 및 디코딩하기 위한 방법, 인코딩 및 디코딩 디바이스, 및 압축 컴퓨터 프로그램들 |
RU2727171C2 (ru) * | 2011-06-24 | 2020-07-21 | Долби Интернэшнл Аб | Устройство обработки изображений |
KR101851477B1 (ko) | 2011-06-24 | 2018-04-23 | 돌비 인터네셔널 에이비 | 이미지들을 인코딩 및 디코딩하기 위한 방법, 인코딩 및 디코딩 디바이스, 및 압축 컴퓨터 프로그램들 |
US10694186B2 (en) | 2011-06-24 | 2020-06-23 | Dolby International Ab | Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto |
KR20200035182A (ko) * | 2011-06-24 | 2020-04-01 | 돌비 인터네셔널 에이비 | 이미지들을 인코딩 및 디코딩하기 위한 방법, 인코딩 및 디코딩 디바이스, 및 압축 컴퓨터 프로그램들 |
US10033999B2 (en) | 2011-06-24 | 2018-07-24 | Dolby International Ab | Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto |
KR102095329B1 (ko) | 2011-06-24 | 2020-03-31 | 돌비 인터네셔널 에이비 | 이미지들을 인코딩 및 디코딩하기 위한 방법, 인코딩 및 디코딩 디바이스, 및 압축 컴퓨터 프로그램들 |
KR101907043B1 (ko) | 2011-06-24 | 2018-10-11 | 돌비 인터네셔널 에이비 | 이미지들을 인코딩 및 디코딩하기 위한 방법, 인코딩 및 디코딩 디바이스, 및 압축 컴퓨터 프로그램들 |
US9319693B2 (en) | 2011-06-24 | 2016-04-19 | Dolby International Ab | Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto |
KR102003549B1 (ko) | 2011-06-24 | 2019-07-25 | 돌비 인터네셔널 에이비 | 이미지들을 인코딩 및 디코딩하기 위한 방법, 인코딩 및 디코딩 디바이스, 및 압축 컴퓨터 프로그램들 |
KR20140056229A (ko) * | 2011-06-24 | 2014-05-09 | 오렌지 | 이미지들을 인코딩 및 디코딩하기 위한 방법, 인코딩 및 디코딩 디바이스, 및 압축 컴퓨터 프로그램들 |
KR20180113634A (ko) * | 2011-06-24 | 2018-10-16 | 돌비 인터네셔널 에이비 | 이미지들을 인코딩 및 디코딩하기 위한 방법, 인코딩 및 디코딩 디바이스, 및 압축 컴퓨터 프로그램들 |
US10362311B2 (en) | 2011-06-24 | 2019-07-23 | Dolby International Ab | Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto |
AU2017208363B2 (en) * | 2011-07-15 | 2019-09-12 | Ge Video Compression, Llc | Sample array coding for low-delay |
KR102085171B1 (ko) | 2011-07-15 | 2020-03-06 | 지이 비디오 컴프레션, 엘엘씨 | 저-지연을 위한 샘플 배치 코딩 |
KR102039049B1 (ko) | 2011-07-15 | 2019-11-15 | 지이 비디오 컴프레션, 엘엘씨 | 저-지연을 위한 샘플 배치 코딩 |
US10085035B2 (en) | 2011-07-15 | 2018-09-25 | Ge Video Compression, Llc | Sample array coding for low-delay |
KR20140042893A (ko) * | 2011-07-15 | 2014-04-07 | 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. | 저-지연을 위한 샘플 배치 코딩 |
US9860544B2 (en) | 2011-07-15 | 2018-01-02 | Ge Video Compression, Llc | Sample array coding for low-delay |
RU2666628C1 (ru) * | 2011-07-15 | 2018-09-11 | ДжиИ Видео Компрешн, ЭлЭлСи | Кодирование массива выборок для низкой задержки |
KR101882979B1 (ko) | 2011-07-15 | 2018-08-24 | 지이 비디오 컴프레션, 엘엘씨 | 저-지연을 위한 샘플 배치 코딩 |
RU2787846C1 (ru) * | 2011-07-15 | 2023-01-13 | ДжиИ Видео Компрешн, ЭлЭлСи | Кодирование массива выборок для низкой задержки |
KR20200024959A (ko) * | 2011-07-15 | 2020-03-09 | 지이 비디오 컴프레션, 엘엘씨 | 저-지연을 위한 샘플 배치 코딩 |
US10924754B2 (en) | 2011-07-15 | 2021-02-16 | Ge Video Compression, Llc | Sample array coding for low-delay based on position information |
CN108111854A (zh) * | 2011-07-15 | 2018-06-01 | Ge视频压缩有限责任公司 | 解码器和方法、编码器和方法及存储介质 |
US10652564B2 (en) | 2011-07-15 | 2020-05-12 | Ge Video Compression, Llc | Sample array coding for low-delay |
US10659798B2 (en) | 2011-07-15 | 2020-05-19 | Ge Video Compression, Llc | Sample array coding for low-delay |
KR102187171B1 (ko) | 2011-07-15 | 2020-12-04 | 지이 비디오 컴프레션, 엘엘씨 | 저-지연을 위한 샘플 배치 코딩 |
CN107995491A (zh) * | 2011-07-15 | 2018-05-04 | Ge视频压缩有限责任公司 | 解码器和方法、编码器和方法及存储介质 |
RU2643647C1 (ru) * | 2011-07-15 | 2018-02-02 | ДжиИ Видео Компрешн, ЭлЭлСи | Кодирование массива выборок для низкой задержки |
US9866857B2 (en) | 2011-07-15 | 2018-01-09 | Ge Video Compression, Llc | Sample array coding for low-delay |
AU2019275583B2 (en) * | 2011-07-15 | 2020-09-03 | Ge Video Compression, Llc | Sample array coding for low-delay |
KR20200136515A (ko) * | 2011-07-15 | 2020-12-07 | 지이 비디오 컴프레션, 엘엘씨 | 저-지연을 위한 샘플 배치 코딩 |
CN103797793B (zh) * | 2011-07-15 | 2018-01-09 | Ge视频压缩有限责任公司 | 低延迟的样本阵列编码 |
US9860547B2 (en) | 2011-07-15 | 2018-01-02 | Ge Video Compression, Llc | Sample array coding for low-delay |
WO2013010997A1 (fr) * | 2011-07-15 | 2013-01-24 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Codage d'un ensemble d'échantillons pour faible retard |
EP3425805A1 (fr) * | 2011-07-15 | 2019-01-09 | GE Video Compression, LLC | Codage d'un ensemble d'échantillons pour faible retard |
KR101721487B1 (ko) | 2011-07-15 | 2017-03-30 | 지이 비디오 컴프레션, 엘엘씨 | 저-지연을 위한 샘플 배치 코딩 |
KR20180086525A (ko) * | 2011-07-15 | 2018-07-31 | 지이 비디오 컴프레션, 엘엘씨 | 저-지연을 위한 샘플 배치 코딩 |
CN108111854B (zh) * | 2011-07-15 | 2021-04-02 | Ge视频压缩有限责任公司 | 解码器和编解码方法 |
US9729891B2 (en) | 2011-07-15 | 2017-08-08 | Ge Video Compression, Llc | Sample array coding for low-delay |
AU2016200182B2 (en) * | 2011-07-15 | 2017-05-04 | Ge Video Compression, Llc | Sample array coding for low-delay |
US11019352B2 (en) | 2011-07-15 | 2021-05-25 | Ge Video Compression, Llc | Sample array coding for low-delay |
CN103797793A (zh) * | 2011-07-15 | 2014-05-14 | 弗兰霍菲尔运输应用研究公司 | 低延迟的样本阵列编码 |
CN107995491B (zh) * | 2011-07-15 | 2021-12-28 | Ge视频压缩有限责任公司 | 解码器、解码方法以及编码方法 |
RU2682922C1 (ru) * | 2011-07-15 | 2019-03-22 | ДжиИ Видео Компрешн, ЭлЭлСи | Кодирование массива выборок для низкой задержки |
RU2763532C2 (ru) * | 2011-07-15 | 2021-12-30 | ДжиИ Видео Компрешн, ЭлЭлСи | Кодирование массива выборок для низкой задержки |
US9596469B2 (en) | 2011-07-15 | 2017-03-14 | Ge Video Compression, Llc | Sample array coding for low-delay |
KR102385848B1 (ko) | 2011-07-15 | 2022-04-14 | 지이 비디오 컴프레션, 엘엘씨 | 저-지연을 위한 샘플 배치 코딩 |
KR20220047686A (ko) * | 2011-07-15 | 2022-04-18 | 지이 비디오 컴프레션, 엘엘씨 | 저-지연을 위한 샘플 배치 코딩 |
RU2610668C2 (ru) * | 2011-07-15 | 2017-02-14 | ДжиИ Видео Компрешн, ЭлЭлСи | Кодирование массива выборок для низкой задержки |
RU2777499C1 (ru) * | 2011-07-15 | 2022-08-04 | ДжиИ Видео Компрешн, ЭлЭлСи | Кодирование массива выборок для низкой задержки |
AU2012285851B2 (en) * | 2011-07-15 | 2015-11-12 | Ge Video Compression, Llc | Sample array coding for low-delay |
AP3992A (en) * | 2011-07-15 | 2017-01-08 | Ge Video Compression Llc | Sample array coding for low-delay |
KR102444757B1 (ko) | 2011-07-15 | 2022-09-19 | 지이 비디오 컴프레션, 엘엘씨 | 저-지연을 위한 샘플 배치 코딩 |
US10771800B2 (en) | 2011-07-15 | 2020-09-08 | Ge Video Compression, Llc | Sample array coding for low-delay |
US11595675B2 (en) | 2011-07-15 | 2023-02-28 | Ge Video Compression, Llc | Sample array coding for low-delay |
EP4152749A1 (fr) * | 2011-07-15 | 2023-03-22 | GE Video Compression, LLC | Codage d'un ensemble d'échantillons pour faible retard |
KR20190124341A (ko) * | 2011-07-15 | 2019-11-04 | 지이 비디오 컴프레션, 엘엘씨 | 저-지연을 위한 샘플 배치 코딩 |
US11949897B2 (en) | 2011-07-15 | 2024-04-02 | Ge Video Compression, Llc | Sample array coding for low-delay |
RU2825247C2 (ru) * | 2011-07-15 | 2024-08-22 | ДжиИ Видео Компрешн, ЭлЭлСи | Кодирование массива выборок для низкой задержки |
Also Published As
Publication number | Publication date |
---|---|
US9287894B2 (en) | 2016-03-15 |
EP2486659B1 (fr) | 2020-11-25 |
US20120263232A1 (en) | 2012-10-18 |
EP2486659A1 (fr) | 2012-08-15 |
CN102648583B (zh) | 2015-05-20 |
CN102648583A (zh) | 2012-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3209021B1 (fr) | Support d'enregistrement mémorisant un flux de données d'images codées | |
EP2486659B1 (fr) | Procedes de codage et de décodage d'images, dispositifs de codage et de decodage et programmes d'ordinateur correspondants | |
WO2015197945A1 (fr) | Procédé de codage d'une image numérique, procédé de décodage, dispositifs, et programmes d'ordinateurs associés | |
EP3700207A1 (fr) | Procédé et dispositif de codage et décodage d'images | |
FR2894740A1 (fr) | Dispositif de codage, procede de codage, systeme de decodage procede de decodage de donnees video | |
FR2894421A1 (fr) | Procede et dispositif de decodage d'un flux video code suivant un codage hierarchique | |
EP3716623A1 (fr) | Procédé de décodage d'images | |
EP2277318B1 (fr) | Codage et decodage d'une image ou d'une sequence d'images decoupees selon des partitions de pixels de forme lineaire | |
EP2932714B1 (fr) | Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'ordinateur correspondants | |
FR3008840A1 (fr) | Procede et dispositif de decodage d'un train scalable representatif d'une sequence d'images et procede et dispositif de codage correspondants | |
EP3632103B1 (fr) | Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image | |
EP2761871B1 (fr) | Estimation de mouvement au niveau du décodeur par mise en correspondance de modèles | |
EP2633686B1 (fr) | Codage video echelonnable a partir d'un epitome hierarchique | |
WO2017129880A1 (fr) | Procédé de codage et décodage de données, dispositif de codage et décodage de données et programmes d'ordinateur correspondants | |
WO2019180350A1 (fr) | Procédé d'encodage et de décodage vidéo faible latence | |
WO2011131903A1 (fr) | Procede de traitement d'une information de mouvement et procedes de codage | |
EP3520416A1 (fr) | Procédé de codage d'une image, procédé de decodage, dispositifs, equipement terminal et programmes d'ordinateurs associés | |
FR2957744A1 (fr) | Procede de traitement d'une sequence video et dispositif associe | |
WO2013007920A1 (fr) | Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'ordinateur correspondants | |
EP2832093A1 (fr) | Procédé et dispositif de codage et décodage d'images | |
WO2016097556A1 (fr) | Procédé de codage d'une image numérique, procédé de décodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associes | |
FR2927494A1 (fr) | Procede de decodage et codage d'une sequence d'images avec compensation de mouvement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 201080044609.9 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10781948 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2010781948 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 13500583 Country of ref document: US |