WO2007077178A1 - Procede de codage et de decodage d'une image ou d'une sequence d'images, dispositifs, programmes d'ordinateur, et signal correspondants - Google Patents

Procede de codage et de decodage d'une image ou d'une sequence d'images, dispositifs, programmes d'ordinateur, et signal correspondants Download PDF

Info

Publication number
WO2007077178A1
WO2007077178A1 PCT/EP2006/070210 EP2006070210W WO2007077178A1 WO 2007077178 A1 WO2007077178 A1 WO 2007077178A1 EP 2006070210 W EP2006070210 W EP 2006070210W WO 2007077178 A1 WO2007077178 A1 WO 2007077178A1
Authority
WO
WIPO (PCT)
Prior art keywords
series
coefficients
image
group
type
Prior art date
Application number
PCT/EP2006/070210
Other languages
English (en)
Inventor
Nathalie Cammas
Stéphane PATEUX
Isabelle Amonou
Original Assignee
France Telecom
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom filed Critical France Telecom
Priority to JP2008548987A priority Critical patent/JP2009522891A/ja
Priority to BRPI0620906-8A priority patent/BRPI0620906A2/pt
Priority to EP06841621A priority patent/EP1969854A1/fr
Priority to US12/159,958 priority patent/US20090219988A1/en
Publication of WO2007077178A1 publication Critical patent/WO2007077178A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/34Scalability techniques involving progressive bit-plane based encoding of the enhancement layer, e.g. fine granular scalability [FGS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • the field of the invention is that of encoding and decoding images or image sequences.
  • the invention relates to the coding and decoding of representative coefficients of one or more image (s), resulting from a transformation of the image into one or more blocks.
  • the invention applies in particular, but not exclusively, to the coding and decoding of images or video sequences of scalable images (or "scalable") having a hierarchical structure in layers, or levels.
  • the invention is positioned in a context of scalable video coding based on a temporal transformation with motion compensation and layer representation with inter-layer prediction.
  • a first client can for example access the Internet from a powerful PC, and have a rate of ADSL ("Asymmetric Digital Subscriber Line” for "asymmetrical digital subscriber line”) to 1024 kbits / s while a second client is trying to access the same data at the same time from a PDA ("Personal Digital Assistant") type connected to a low-speed modem.
  • ADSL Asymmetric Digital Subscriber Line
  • PDA Personal Digital Assistant
  • session mobility for example resumption on a PDA of a video session started on a television, or, on a UMTS mobile of a session started on GPRS ("General Packet Radio Service” for "general packet radio service")
  • continuity of session in a context of bandwidth sharing with a new application
  • high-definition television in which a single video encoding must be able to serve both SD standard definition and high definition terminal customers
  • the encoder generates a compressed stream having a layered hierarchical structure, in which each of the layers is nested in a layer of higher level.
  • a first data layer conveys a 256 kbit / s stream, which can be decoded by a PDA type terminal
  • a second complementary data layer conveys a resolution stream greater than 256 kbit / s which can be decoded, complement the first, by a more powerful terminal type PC.
  • the rate required for the transport of these two nested layers is in this example 512 kbit / s.
  • Such coding algorithms are thus very useful for all applications for which the generation of a single compressed stream, organized in several scalability layers, can serve several clients of different characteristics.
  • JSVM Scalable Video Coding
  • AVC Advanced Video Coding
  • the JSVM Encoder 2.2.1 Key Characteristics of the Encoder Figure 1 illustrates the structure of such a JSVM encoder, which has a pyramidal structure.
  • the video input components 10 undergo dyadic subsampling (2D spatial decimation referenced 11).
  • Each of the subsampled flows is then subjected to a temporal decomposition 12 of the "hierarchical image B" type.
  • a low resolution version of the video sequence is encoded up to a given bit rate R_rO_max which corresponds to the maximum decodable bit rate for the low spatial resolution rO (this low resolution version is coded as a base layer with a bit rate R_rO_min, and layers of enhancement, until R_rO_max is reached, this basic level is AVC compatible).
  • the higher levels are then encoded by subtracting the previous reconstructed and oversampled level and encoding the residuals as: a base level; possibly one or more enhancement levels obtained by multi-pass coding of bit planes (hereafter called FGS for "Fine Grain Scalability").
  • FGS enhancement levels obtained by multi-pass coding of bit planes
  • the prediction residue is encoded up to a rate R_ri_max which corresponds to the maximum rate that can be decoded for the resolution ri.
  • the "hierarchical image B" type filtering blocks 12 deliver motion information 16 that feeds a motion coding block 13-15, and texture information 17, which feeds an inter-layer prediction module 18.
  • the predicted data at the output of the inter-layer prediction module 18 feeds an entropy coding and transformation block 20, which works on signal refinement levels.
  • the data from this block 20 serve in particular to carry out a 2D spatial interpolation 19 from the lower level.
  • a multiplexing module 21 orders the different subflows generated in a global compressed data stream.
  • the coding technique used by the JSVM coder is a progressive quantization technique.
  • this technique consists firstly of quantifying with a first coarse quantization step the different representative coefficients of the data to be transmitted. Then, the different coefficients are reconstructed, and the difference between the value of the reconstructed coefficient, and the quantized value is calculated.
  • this difference is then quantized with a second quantization step, finer than the first step.
  • the quantized coefficients are coded in two passes, at each quantization step: a first signifiance pass, which makes it possible to code the new signifying coefficients, that is to say those which have been coded with a zero value at no previous quantization. For these new signifying coefficients, the sign of the coefficient and its amplitude are coded. a second refinement pass, making it possible to refine / code the coefficients that were already significant at the preceding quantization step. For these coefficients, one codes a value 0, +1 or -1 of refinement.
  • a significant coefficient is a coefficient whose coded value is other than zero.
  • the images to be encoded conventionally comprise three components: a luminance component, and two chrominance components, each typically of size y. the luminance component (ie width and height two times smaller). It is recalled that it is also possible to process images comprising only a luminance component.
  • the images are cut into macro blocks of size 16 x 16 pixels, each macro block is then re-cut into blocks.
  • the coding of the refinement layers is then done on 4 ⁇ 4 pixel blocks, or on 8 ⁇ 8 pixel blocks.
  • the coding of the refinement layers is done on 4 x 4 pixel blocks.
  • the first coefficient of the block corresponds to a low frequency (coefficient DC of the discrete cosine transform DCT), and represents the most important information of the group.
  • the other coefficients correspond to the high frequencies (AC coefficients of the discrete cosine transform DCT), the energy of the high frequencies decreasing horizontally, vertically and diagonally.
  • range in order to code a "range” of coefficients, the information of signifiance of all the coefficients remaining non-significant in the "zig-zag” order is first coded until a newly significant coefficient is reached, and then code the newly significant coefficient.
  • range or group are understood to mean a group of coefficients whose positions are consecutive and contained in an interval that begins either at the beginning of a block or after the position of a significant coefficient, and which ends after the next coefficient meaning if we consider a coding (or decoding) pass of significance. In this case, we can speak of a “group of meanings”. If we consider a refinement coding (or decoding) pass, the term “range” or “group of coefficients” is the only coefficient to be refined. In this case, one can speak of a "refinement group”.
  • LS to indicate whether or not one has coded the last significant coefficient of the block.
  • LS can take two values. For example, if LS is 1, it means that this coefficient is the last significant coefficient of the block: all the coefficients positioned after the last coefficient meaning are non-significant. This avoids coding the significance of all these non-significant coefficients.
  • NS, NS, NS, S sign of the signifying coefficient, value (or amplitude) of the signifying coefficient
  • LS sign of the signifying coefficient, value ( or amplitude) of the signifying coefficient, LS.
  • the refined iterations are coded at the next iteration.
  • For each block we study the first coefficient of the block. If the coefficient was already significant at the preceding quantization step (that is to say at the previous iteration), we code its refinement, otherwise we do not code anything. Then we go to the next block, and so on until we have gone through all the blocks.
  • a parameter for controlling the interleaving of the coding of the chrominance and luminance component coefficients is also used.
  • This technique of iteration coding thus makes it possible to interleave the coefficients of the refinement layer, and to ensure a better image reconstruction quality, especially if the refinement layer is truncated.
  • the compressed data stream at the output of the coder, is organized in access units AUs (Access Units), each corresponding to a time instant T, and comprising one or more units of elementary access data.
  • AUs Access Units
  • NALUs from "Network"
  • each NALU is associated with an image or a portion of an image grouping a set of macro blocks (also called “slice”) issue spatio-temporal decomposition, a spatial resolution level, and a quantization level.
  • This structuring in elementary units makes it possible to adapt the bit rate and / or space-time resolution by eliminating the NALUs with too great spatial resolution, or with too long a time frequency, or even with too much encoding quality.
  • each FGS (or refinement layer) of an image is inserted into a NALU.
  • FIG. 3 thus illustrates the access units AU1 31, corresponding to the time TO, and AU2 32, corresponding to the time T1. More specifically, the access unit AU1 31 comprises six NALUs 311 to 316 corresponding to the instant TO.
  • the first NALU 311 is representative of a spatial level SO, and a level FGS / CGS EO.
  • the second NALU 312 is representative of a spatial level SO, and a level FGS / CGS El.
  • the last NALU 316 is representative of a spatial level S2, and a level FGS / CGS El. 3.
  • a disadvantage of this encoding technique of the prior art is that to achieve a target rate, it may be necessary to truncate the constituent data packets, also called NALUs.
  • the traditional technique of coding refinement layers by iteration which makes it possible to interleave the coefficients of the refinement layer, implies a high complexity to the decoder, although in return it offers a better quality of reconstruction when the refinement layers are truncated either at the encoder or during transmission, compared to a method that would process all the macro blocks of an image sequentially.
  • the interleaving of the coefficients of each block implies frequent decoding context changes, and therefore frequent changes in the information contained in the cache of the computer, which leads to an increased complexity in the decoding.
  • the truncation of the refinement layers is not always necessary. Indeed, although it makes it possible to reach a target rate for a coded stream by truncating all the refinement layers with the same ratio, the use of the quality levels of the JSVM coder, as presented by I. Amonou, N Cammas, S. Kervadec, S. Pâteux in the document "JVT-Q081 Layered quality opt of JSVM3 and closed-loop", makes it possible to order the layers of refinement of the images between them and to thus reach a target flow without truncating layers of refinements, while improving the quality compared to the case where the refinement layers are truncated.
  • the iteration coding does not give a gain in compression, but retains a higher complexity.
  • the invention particularly aims to overcome these disadvantages of the prior art.
  • an object of the invention is to provide a coding and decoding technique for images and / or video sequences that makes it possible to adapt the complexity to the decoding level, as a function of the type of coding used.
  • an object of the invention is to provide such a technique constituting an improvement.
  • the JSVM model technique proposed by the JVT working group in JVT-Q202 by J. Reichel, M. Wien and H. Schwarz entitled “Joint Scalable Video Model JSVM-4", October 2005, Nice.
  • Another objective of the invention is to propose such a technique that makes it possible to preserve the complexity of a conventional decoding in cases where image truncation is required, and to reduce the decoding complexity in cases where the truncation of the image is not necessary.
  • Another objective of the invention is to provide such a technique that is simple to implement and inexpensive in terms of resources (bandwidth, processing capabilities, etc.), and which does not introduce any particular complexity or significant processing.
  • the encoding method comprises, for each of the transformed blocks: a step of encoding a series of coefficients corresponding to at least one group of coefficients, said series being determined according to a type of series of coefficients selected from at least two possible types, including: a first type of series according to which the series of coefficients comprises a predetermined number M of groups of coefficients, a second type of series according to which a predetermined maximum position N in the course is identified; series includes the group comprising the maximum position N, and all the preceding groups according to the course, if any, and a step of inserting into the data stream information representative of the type of series of coefficients selected for image or sequence of images, or for a portion of the image.
  • the invention is based on an entirely new and inventive approach to the selection of a type of series of coefficients and the coding of a series of coefficients determined from the selected type, and insertion into the stream of the selected series type, so that at the decoding of the data stream, a decoder can read the type of series of coefficients used in encoding, and automatically adapt to the coding used to reduce the complexity of the decoding.
  • the series of coefficients to be encoded may, according to a first type of series, comprise a predetermined number M of groups of coefficients.
  • the series may correspond to a single group of coefficients, to a predetermined number of groups of coefficients (greater than or equal to 2), or to all the coefficients of the block considered.
  • the series may comprise the group comprising the coefficient positioned at the position N, according to a predetermined reading path, and all the preceding groups, according to the predetermined reading path, the group comprising the coefficient positioned at the position N, if there is any.
  • the reading path is the "zig-zag" path, as described with reference to FIG. 2A.
  • the data stream has a hierarchical structure in nested data layers of successive refinement levels, and the coding method implements an iterative coding, each of the iterations corresponding to one of the levels and implementing the coding step. .
  • the invention is thus particularly well suited to coding scalable video signals.
  • the series when the series comprising the group comprising the maximum position N has been coded at a previous iteration, the series is empty, when the series comprising the group comprising the maximum position N has not been coded at a previous iteration, the series comprises the group comprising the predetermined maximum position and all the preceding groups according to the route not belonging to a series already encoded at a previous iteration, if any.
  • each of the iterations implements at least one of the following passes: a signifiance pass, a refinement pass, the coding step applying to the pass or passes implemented. implement, and a parameter indicating the type of the one or more passes implemented accompanies the information representative of the type of series of coefficients. It is thus possible to code in the stream various information, which will allow the decoder to easily adapt to the coding technique used, and thus to simplify the complexity of the decoding.
  • the predetermined grouping criterion defines a group as a set of non-significant successive coefficients, and ending in the first significant coefficient encountered according to the reading path.
  • the predetermined grouping criterion defines a group as a single significant coefficient.
  • the information representative of the type of series of coefficients is accompanied by implementation information, comprising a vector defining the value of the number M or of the position N for each iteration.
  • This vector can be known by default, so previously determined, or directly encoded in the stream. This vector thus makes it possible to define the positions N of coefficients to be reached at each iteration. For example, this vector is worth [1,3,10,16] for a block of size 4 x 4, or [3,10, 36,64] for a block of size
  • the implementation information may also specify the number of tracks to be encoded (by defining the number of groups M).
  • a source image is decomposed into at least two components to be coded, and the coding is applied to each of the components.
  • an image includes a luminance component and two chrominance components, and the coding is applied to each of these three components.
  • the invention also relates to a device for coding an image or a sequence of images, generating a data stream, each image being divided into at least two image blocks each of which is associated with a transformed block comprising a set of coefficients, the coefficients of a transformed block being distributed in group (s) of coefficients according to a predetermined grouping criterion and a predetermined reading path of the transformed blocks.
  • such a device comprises: means for encoding a series of coefficients corresponding to at least one group of coefficients, the series being determined according to a type of series of coefficients selected from at least two possible types , of which: a first type of series according to which the series of coefficients comprises a predetermined number M of groups of coefficients, a second type of series according to which a predetermined maximum position N in the course is identified, the series comprises the group comprising the position N maximum, and all previous groups depending on the course, if any, and means for inserting into the data stream an information representative of the type of series of coefficients selected for the image or sequence of images, or for a portion of the image.
  • Such a device can in particular implement the coding method as described above.
  • the data stream may present a hierarchical structure in nested data layers of successive refinement levels, and the coding means may implement iterative coding, each of the iterations corresponding to one of the levels.
  • the invention also relates to a method for decoding a data flow representative of an image or a sequence of images, each image being divided into at least two image blocks each of which is associated with a transformed block comprising a set of coefficients, the coefficients of a transformed block being distributed in group (s) of coefficients according to a predetermined grouping criterion and a predetermined reading path of the transformed blocks.
  • such a decoding method comprises: a step of reading a type of series of coefficients applied to the image or sequence of images, or to a portion of the image, among at least two possible types , of which: a first type of series according to which the series of coefficients comprises a predetermined number M of groups of coefficients, - a second type of series according to which a predetermined maximum position N in the course is identified, the series comprises the group comprising the maximum position N, and all preceding group (s) according to the course, if any, and a decoding step taking into account, for each transformed block, a series of coefficients according to the type of series of coefficients delivered by the reading step.
  • Such a decoding method is particularly adapted to receive a coded data stream according to the coding method described above.
  • the data flow can present a hierarchical structure in nested data layers of successive refinement levels.
  • the second type of series has the following: when the series comprising the group comprising the maximum position N has been coded at a previous iteration, the series is empty, - when the series comprising the group comprising the position maximum N has not been encoded at a previous iteration, the series comprises the group comprising the predetermined maximum position, and all the preceding groups according to the course not belonging to a series already encoded at a previous iteration, if there is in a.
  • the invention also relates to a device for decoding a data stream representative of an image or a sequence of images, each image being divided into at least two image blocks each of which is associated with a transformed block comprising a set of coefficients, the coefficients of a transformed block being distributed in group (s) of coefficients according to a predetermined grouping criterion and a predetermined reading path of the transformed blocks.
  • such a decoding device comprises: means for reading a type of series of coefficients applied to the image or sequence of images, or to a portion of the image, among at least two possible types , of which: a first type of series according to which the series of coefficients comprises a predetermined number M of groups of coefficients, a second type of series according to which a predetermined maximum position N in the course is identified, the series comprises the group comprising the position N, and all the preceding groups according to the course, if any, and decoding means taking into account, for each transformed block, a series of coefficients according to the type of series of coefficients delivered by the step of reading.
  • Such a device can in particular implement the decoding method as described above. It is therefore adapted to receive a data stream encoded by the encoding device described above.
  • the data stream may in particular have a hierarchical structure in nested data layers of successive refinement levels.
  • the invention also relates to a signal representative of a data stream, representative of an image or a sequence of images, each image being divided into at least two image blocks, each of which is associated with a transformed block comprising a set of coefficients, the coefficients of a transformed block being divided into group (s) of coefficients according to a predetermined grouping criterion and a predetermined reading path of the transformed blocks.
  • such a signal carries information representative of a type of series of coefficients applied to the image or sequence of images, or to a portion of the image, among at least two possible types, of which: a first type of series according to which the series of coefficients comprises a predetermined number M of groups of coefficients, a second type of series according to which a predetermined maximum position N in the course is identified, said series comprises the group comprising the maximum position N, and all previous groups depending on the course, if any.
  • Such a signal can in particular represent a data stream coded according to the coding method described above.
  • This signal may of course include the various characteristics relating to the coding method according to the invention.
  • the data stream may in particular have a hierarchical structure in nested data layers of successive refinement levels, said flow having undergone iterative coding, each of the iterations corresponding to one of said levels.
  • the series for the second type of series: when the series comprising the group comprising the maximum position N has been encoded at a previous iteration, the series is empty, - when the series comprising the group comprising the maximum position N has not been has not been coded at a previous iteration, the series comprises the group comprising the predetermined maximum position, and all the preceding groups according to the route not belonging to a series already encoded at a previous iteration, if any.
  • the invention relates to a computer program product downloadable from a communication network and / or stored on a computer-readable and / or executable medium by a microprocessor, comprising program code instructions for implementing the encoding method as described above, and a program product of computer downloadable from a communication network and / or stored on a computer-readable and / or executable medium by a microprocessor, comprising program code instructions for the implementation of the decoding method described above.
  • FIG. 1 already described in connection with the prior art, has a JSVM type encoder
  • FIGS. 2A and 2B also presented in relation with the prior art, illustrate the zig-zag path of the coefficients of the blocks composing an image
  • FIG. 3 also presented in relation with the prior art, describes the structure of a SVC type flow according to the prior art
  • FIG. 4 presents the general principle of the coding method according to the invention
  • FIGS. 5A to 5D illustrate different types of possible series for coding the coefficients of a block according to the method of FIG. 4
  • FIG. 5A to 5D illustrate different types of possible series for coding the coefficients of a block according to the method of FIG. 4
  • FIG. 6 shows the frequency bands of a default vector considered for a 4 ⁇ 4 block according to a variant of the invention
  • FIG. 7 describes the general principle of the decoding method according to the invention
  • FIGS. 8 and 9 respectively show the simplified hardware structure of a coding device and a decoding device according to the invention.
  • the general principle of the invention is based on the coding of a series of coefficients among a set of coefficients representative of an image, the series to be coded being determined according to a type of series of coefficients selected from at least two types .
  • An image divided into at least two blocks is considered according to the invention, each of which is associated with a transformed block, for example by means of a discrete cosine transform (DCT).
  • DCT discrete cosine transform
  • block is used hereinafter to mean a block resulting from the cutting and transformation of the image.
  • the coding method according to this preferred embodiment of the invention is advantageously an iterative method, coding at each iteration a level of the hierarchical structure in nested data layers generating the data stream.
  • the block or frames are scanned block by block, and at least some coefficients of each of the blocks are coded, according to the type of series of coefficients, selected from at least two types possible.
  • the coefficients can be coded in one or two passes at each iteration, according to a signifiance pass, making it possible to code the new signifying coefficients, that is to say those that have been encoded with a null value at the previous iteration, and / or according to a refinement pass, to refine / code the coefficients that were already significant at the previous iteration.
  • group of coefficients is thus meant a group of coefficients whose positions are consecutive and contained in an interval that begins either at the beginning of a block or after the position of a significant coefficient. and which ends after the next significant coefficient if we consider a coding (or decoding) pass of significance, the only coefficient to be refined if we consider a refinement coding (or decoding) pass.
  • a "group of significance” is a group obtained during a signifiance pass
  • "refinement group” is a group obtained during a refinement pass.
  • the video input components 41 (image, image sequences, or image portion) first undergo a processing 42 making it possible to cut them into at least two blocks, and to associate to each of these blocks a transformed block comprising a set of coefficients.
  • a type of coefficient series is selected from at least two possible types.
  • the type of series of coefficients is chosen from among several possible types, of which a first type in which a series of coefficients corresponds to M groups of coefficients, where M is a predetermined integer, and a second type in which a series comprises a set of coefficients. group comprising the coefficient positioned at a predetermined maximum position N, and all groups preceding this group in the zig-zag reading path, if any.
  • the series considered at the current iteration is zero.
  • the series considered at the current iteration comprises a group comprising the coefficient positioned at the position N, and all the groups previous this group in the zig-zag reading path, if any.
  • the number N thus corresponds to a position in the block considered, according to the zig-zag course, defined according to the iteration and given by a vector known by default or encoded in the stream.
  • this default vector is [1,3,10,16] for a block of size 4 x 4, or [3,10, 36,64] for a block of size 8 x 8.
  • Mode 1 thereafter); to a set of groups defined according to a maximum position N according to the iteration (we note this coding "mode 2" later); or else - M groups of coefficients (we note this coding "mode 3" later).
  • FIGS. 5A to 5D notably illustrate these different series for coding the coefficients of a block, during a run of the coefficients in the "zig-zag" order as described in relation with the prior art.
  • FIG. 5A thus shows the coding of a series of coefficients of the first type according to the "mode 0".
  • the series 51 corresponds in this case to a single group.
  • an '0' means that the coefficient is not a newly significant coefficient (it has been encoded at the previous iteration as a significant coefficient, or it has been coded as a non-significant coefficient and it remains in the non-meaningful state at this current iteration), and that a 'l' means that the coefficient is new signifier (it was coded to the previous iteration with a null value and becomes significant at the current iteration).
  • the series 51 thus corresponds to the group 0, 0, 0, 1, sign coefficient, value coefficient.
  • FIG. 5B illustrates the coding of a series of second type coefficients according to the "mode 2", considering N equal to 6: the series 52 comprises the group comprising the coefficient located at position 6 (referenced 521 in FIG. 5B ), following the zig-zag course of the block, and the group preceding this group in the order of travel, if these groups do not include coefficients already coded at a previous iteration.
  • FIG. 5D shows the coding of a series of first-type coefficients according to "mode 1", in which the series 54 corresponds to the set of coefficients of the block considered.
  • the coding method codes, for a first level of the hierarchical structure in successive layers (first iteration), during the coding step 44, a series of coefficients of the first block, determined according to the selected type, then the second block, and so on until the last block (45). Then we go to a second level of the hierarchical structure in successive layers (second iteration 46), and again code a series of coefficients of the first block, determined according to the selected type, then the second block, and so on until to the last block (45) of the second level. Thus each data layer of the hierarchical structure is coded.
  • the series is empty, otherwise the series comprises the group comprising the predetermined maximum position, and all the groups previous ones according to the course of reading (if such groups exist). For mode 0 and mode 3, if there are no more groups to code, the series is empty.
  • the coder delivers a global data stream 47 into which information representative of the type of series of coefficients selected for the image or the sequence of images is inserted. or for a portion of the image.
  • a decoder can read the information representative of the type of series of coefficients selected and automatically adapt to the coding mode used, especially for the decoding of the refinement layers.
  • the invention thus offers the possibility of having a low complexity or adaptive complexity decoding.
  • This information representative of the type of series of coefficients selected may also be accompanied by implementation information, comprising for example a vector defining the value of the number M or the position N for each iteration.
  • the coded data stream 47 may carry two pieces of information indicating, on the one hand, the type of series of coefficients selected, used in particular by the decoder for the decoding of the refinement layers, and on the other hand one or more bits for the vector defining the coefficient positions to be reached at each iteration if the coding implements mode 2 (defining the position N), or the number of tracks to be coded if the coding implements mode 3 (by defining the number of groups M).
  • these information elements are inserted in the stream 47 in the header of the data packets relating to a temporal image or an image portion (also called
  • blnterlacedSigRef a parameter, denoted blnterlacedSigRef thereafter, which indicates whether for a given iteration, one encoding groups of significance coefficients and / or groups of refinement coefficients.
  • This method is also remarkable in that it can provide to use only the second type of series to determine the series of coefficients to be coded.
  • the fgs_coding_mode field is used to indicate the type of coefficient series selected during coding, and the decoder may read during the decoding of the compressed data stream, and in particular refinement layers.
  • the second type of series (“mode 2”) determines a series of coefficients comprising: the group comprising the position N and all the groups preceding it according to the reading path (if they exist), if the group comprising the position N n was not coded at a previous iteration; otherwise an empty series.
  • the field fgs_coding_mode takes the value 0, it indicates that the coding is performed according to the first type of series of coefficients, according to the "mode 0", and therefore that the decoding must make it possible to decode a group per block for each of the blocks at each iteration.
  • the value 1 indicates that the coding is performed according to the first type of series of coefficients, according to the "mode 1”, and therefore that the decoding must make it possible to decode all the coefficients of each of the blocks in a single iteration.
  • This "mode 1" corresponds to a low complexity decoding of the refinement layers, where all the groups of the type meaning and / or refined of a block are decoded in an iteration.
  • the value 2 indicates that the coding is carried out according to the second type of series of coefficients, according to the "mode 2", and therefore that the decoding must make it possible to decode at each iteration a set of groups until reaching a position N, this position being defined at each iteration, by default or in a fixed or variable vector.
  • the value 3 indicates that the coding is performed according to the first type of series of coefficients, according to the "mode 3", and therefore that the decoding must make it possible to decode at each iteration a number M of groups. This number M can be constant.
  • the flags vect4x4_presence_flag and vect8x8_presence_flag respectively indicate the presence of vectors defining the maximum position N, in the case of mode 2, for blocks of sizes 4 x 4 pixels and for blocks of sizes 8 x 8 pixels.
  • the num_iter_coded variable indicates the number of values contained in the vector for 4 x 4 blocks and / or for 8 x 8 blocks.
  • the variable scanlndex_blk4x4 [i] indicates the maximum position of a coefficient of a 4 x 4 block up to which groups must be decoded at iteration i.
  • the variable scanlndex_blk.8x8 [i] indicates the maximum position of a coefficient of an 8 x 8 block up to which groups must be decoded at iteration i.
  • this vector is deduced from the vector for an 8 x 8 block (respectively 4 x 4) by dividing the values of this vector by 4 (respectively by multiplying the values of this vector by 4).
  • each default value corresponds to a predetermined frequency zone of the coefficient block, the position index ranging from 1 to 16 for the 4 ⁇ 4 blocks, from 1 to 64 for the 8 ⁇ 8 blocks.
  • FIG. 6 illustrates the frequency bands of the default vector considered for a 4 ⁇ 4 block.
  • the reference 61 designates the position 1 according to the reading path in zig-zag
  • the reference 62 illustrates the position 3
  • the reference 63 illustrates the position 10
  • the position 64 illustrates the position 16, defined in the vector [1,3,10,16].
  • variable num_plage_coded indicates the number of ranges or groups to be decoded at each iteration.
  • the mode 0 at each iteration a range per block is decoded
  • mode 1 at each iteration all the tracks of each block are decoded
  • mode 2 at each iteration, a number of tracks is decoded to reach a position N in the block, N being a function of the iteration
  • mode 3 at each iteration, a constant number M of tracks is decoded.
  • each macro block of the image is scanned.
  • the value of the completeLumaSig variable we look at the value of the completeLumaSig variable during a step 73 "Test completeLumaSig”. If the completeLumaSig variable is FALSE (731), during a step 74, the signifiance pass is decoded for each luminance block of the macro block and then step 75 is passed.
  • the value of the variable completeLumaSig goes to TRUE (732)
  • we look at the value of the interlaced_sig_ref variable, during a test step 75 “test interlaced_sig_ref".
  • blnterlacedChroma test This test makes TRUE (771) if blnterlacedChroma is TRUE, and if iterChroma (iter) makes TRUE, or if completeLumaSig is TRUE and completeLumaRef is TRUE. If the "blnterlacedChrma" test 77 is FALSE (772), then step 82 is proceeded to. If the "blnterlacedChroma test” 77 is TRUE (771), the value of the completeChromaSig variable is examined during a step 78 "Test completeChromaSig". If completeChromaSig is FALSE (781), for each block of chrominance of the macro block, the signifiance pass is decoded during a step 79.
  • the interlaced_sig_ref variable is then tested again during a test step 80. This test returns TRUE (801) if interlaced_sig_ref is TRUE or completeChromaSig is TRUE, and completeChromaRef is FALSE. Otherwise (802) this test makes FALSE. If the test makes TRUE (801), one decodes during a step 81 the refinement pass for each chrominance block of the macro block, then we go to step 82.
  • the considered macro block is the last macro block of the image or of the current portion of the image. If it is not the last one (821), one repeats (83) on the following macro block. If the macro block considered is the last macro block of the image or the current portion of the image (822), proceed to step 84 of updating the variable completeSig, Ref. The fine test 85 is then carried out.
  • Update (84) of the completeSig.Ref variable The step of updating the completeSig, Ref variable updates the completeLumaSig, completeLumaRef, completeChromaSig, and completeChromaRef variables.
  • TRUE (851) if completeLumaSig is TRUE, completeLumaRef is TRUE, completeChromaSig is TRUE, and completeChromaRef is TRUE. If the end test is FALSE (852), we proceed to the next iteration (iter ++), otherwise the decoding ends (86). IterChromadter function):
  • This function makes TRUE if the luminance and chrominance ranges are interleaved and if iteration iterates, chrominance ranges should be decoded. This function is used to control the interleaving of the chrominance and luminance coefficients.
  • the decoding of groups corresponds: in the case of a signifiance pass: to the decoding of all remaining non-significant coefficients positioned between the beginning of the block (or just after a significant coefficient) and just before the next significant coefficient next; and decoding the next new signifier coefficient, in the case of a refinement pass: at the decoding of the refinement of the already significant coefficient.
  • the course of the coefficients is done in zig-zag order.
  • the decoding of the chrominance blocks and the luminance blocks is done in the same way.
  • a group is decoded. If we are at the end of the block, we set the boolean parameter completeCompPassBl of the current block to TRUE, where the Comp variable indicates Luma if the block is a luminance block, or Chroma if the block is a chrominance block, and the variable Pass indicates Sig if the decoded pass is a signifiance pass, and Ref if the decoded pass is a pass of refinement.
  • mode 1 for each block, all groups are decoded and completeCompPassB1 of the current block is set to TRUE.
  • the maximum position N in the block which is equal to scanlndex_blkkxk [i], where i is the number of the current iteration and k X k is the block type (4 x 4 or 8 x 8 for a luminance block, or 4 x 4 for a chrominance block). Then, decodes are decoded as long as the position of the last decoded coefficient is smaller than the position N. If we are at the end of the block, we set completeCompPassB1 of the current block to TRUE.
  • FIG. 8 shows the hardware structure of a coding device for an image or a sequence of images implementing the coding method described above.
  • Such an encoding device comprises a memory M 87, a processing unit P 88, equipped for example with a microprocessor ⁇ P, and driven by the computer program Pg 89.
  • the code instructions of the program of computer Pg 89 are for example loaded into a memory
  • the processing unit P 88 receives as input video input components 41 (image, image sequences, or image portion).
  • the microprocessor ⁇ P of the processing unit 88 implements the steps of the coding method described above in relation with FIG. 4, according to the instructions of the program
  • the processing unit 88 outputs a coded data stream 47.
  • FIG. 9 illustrates the hardware structure of a device for decoding a coded data stream, generated for example by the coding device of FIG. 8.
  • Such a decoding device comprises a memory M 90, a processing unit P 91, equipped for example with a microprocessor ⁇ P, and driven by the computer program Pg 92.
  • the code instructions of the program D 92 computer are for example loaded in a RAM memory before being executed by the processor of the processing unit 91.
  • the processing unit 91 receives as input an encoded data stream 93 to be decoded.
  • the microprocessor ⁇ P of the processing unit 91 implements the steps of the decoding method described above in relation to FIG. 7, according to the instructions of the program Pg 92.
  • the processing unit 91 outputs video components 94 (FIG. image, image sequences, or image portion) decoded.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

L'invention concerne un procédé de codage d'une image ou d'une séquence d'images, générant un flux de données, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé comprenant un ensemble de coefficients, les coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé des blocs transformés. Selon l'invention, un tel procédé comprend, pour chacun des blocs transformés : une étape de codage d'une série de coefficients correspondant à au moins un groupe de coefficients, la série étant déterminée en fonction d'un type de série de coefficients sélectionné parmi au moins deux types possibles, et une étape d'insertion dans le flux de données d'une information représentative du type de série de coefficients sélectionné pour l'image ou la séquence d'images, ou pour une portion de l'image.

Description

Procédés de codage et de décodage d'une image ou d'une séquence d'images, dispositifs, programmes d'ordinateur, et signal correspondants. 1. Domaine de l'invention
Le domaine de l'invention est celui du codage et du décodage d'images ou de séquences d'images.
Plus précisément, l'invention concerne le codage et le décodage de coefficients représentatifs d'une ou plusieurs image(s), issus d'une transformation de l'image en un ou plusieurs blocs.
L'invention s'applique notamment, mais non exclusivement, au codage et au décodage d'images ou de séquences vidéo d'images échelonnables (ou « scalables »), présentant une structure hiérarchique en couches, ou en niveaux.
Selon cette application, l'invention se positionne dans un contexte de codage vidéo scalable basé sur une transformation temporelle avec compensation en mouvement et représentation par couches avec prédiction inter-couches. 2. Art antérieur
Dans un souci de simplification et de clarté, on détaille ci-après uniquement l'art antérieur relatif au codage et au décodage d'images ou de séquences d'images échelonnables.
2.1 Principe général du codage vidéo scalable De nombreux systèmes de transmission de données sont aujourd'hui hétérogènes, en ce sens qu'ils desservent une pluralité de clients disposant de types d'accès aux données très divers. Ainsi, le réseau mondial Internet par exemple, est accessible aussi bien à partir d'un terminal de type ordinateur personnel (PC) que d'un radiotéléphone. Plus généralement, la bande passante pour l'accès au réseau, les capacités de traitement des terminaux clients, la taille de leurs écrans varient fortement d'un utilisateur à l'autre. Ainsi, un premier client peut par exemple accéder au réseau Internet à partir d'un PC puissant, et disposer d'un débit ADSL (« Asymmetric Digital Subscriber Line » pour « Ligne d'abonné numérique à structure asymétrique ») à 1024 kbits/s alors qu'un deuxième client cherche à accéder aux mêmes données au même instant à partir d'un terminal de type PDA (« Personal Digital Assistant » pour « assistant numérique personnel ») connecté à un modem de faible débit.
Or la plupart des codeurs vidéo génèrent un seul flux compressé correspondant à l'intégralité de la séquence codée. Ainsi, si plusieurs clients souhaitent exploiter le fichier compressé pour décodage et visualisation, ils devront télécharger (ou « streamer ») le fichier compressé complet.
Il est donc nécessaire de proposer à ces divers utilisateurs un flux de données qui soit adapté tant en terme de débit que de résolution des images à leurs différents besoins. Cette nécessité s'impose plus largement pour toutes les applications accessibles à des clients disposant de capacités d'accès et de traitement très diverses, et notamment les applications de : service de vidéo à la demande (VOD, en anglais « Video On Demand » pour « vidéo à la carte »), accessibles aux terminaux de radiocommunication de type UMTS (« Universal Mobile Télécommunication Service » pour « service de télécommunication mobile universel »), aux PC ou aux terminaux de télévision avec accès ADSL, etc. ; mobilité de session (par exemple reprise sur un PDA d'une session vidéo commencée sur un téléviseur, ou, sur un mobile UMTS d'une session commencée sur GPRS (« General Packet Radio Service » pour « service général de radiocommunication par paquets »)) ; continuité de session (dans un contexte de partage de la bande passante avec une nouvelle application) ; télévision haute définition, dans laquelle un encodage vidéo unique doit permettre de servir aussi bien des clients disposant d'une définition standard SD que des clients disposant d'un terminal à haute définition
HD ; visioconférence, dans laquelle un encodage unique doit répondre aux besoins de clients disposant d'un accès UMTS et d'un accès Internet ; - etc. Pour répondre à ces différents besoins, des algorithmes de codage d'images échelonnables, ou « scalables » ont été développés, permettant une qualité adaptable et une résolution spatio-temporelle variable. Selon ces techniques, le codeur génère un flux compressé présentant une structure hiérarchique en couches, dans laquelle chacune des couches est emboîtée dans une couche de niveau supérieur. Par exemple, une première couche de données véhicule un flux à 256kbits/s, qui pourra être décodé par un terminal de type PDA, et une deuxième couche de données complémentaire véhicule un flux de résolution supérieure à 256kbits/s qui pourra être décodé, en complément du premier, par un terminal plus puissant de type PC. Le débit nécessaire pour le transport de ces deux couches emboîtées est dans cet exemple de 512 kbits/s.
De tels algorithmes de codage sont ainsi très utiles pour toutes les applications pour lesquelles la génération d'un seul flux compressé, organisé en plusieurs couches de scalabilité, peut servir à plusieurs clients de caractéristiques différentes.
Certains de ces algorithmes de codage vidéo échelonnables sont aujourd'hui en cours d'adoption par la norme MPEG (« Moving Picture Expert Group »), dans le cadre du groupe de travail JVT (« Joint Video Team ») joint entre l'ITU (« International Télécommunication Union » pour « Union Internationale des Télécommunications ») et l'ISO (« International Organization for Standardization » pour « Organisation internationale de normalisation »).
Notamment, le modèle qui a été retenu récemment par le groupe de travail JVT SVC (« Scalable Video Coding » pour « codage vidéo échelonnable ») est appelé JSVM (« Joint Scalable Video Model » pour « modèle vidéo échelonnable joint »), et est fondé sur un codeur échelonnable basé sur des solutions de type AVC (« Advanced Video Coding » pour « codage vidéo avancé »), avec prédiction inter-couches et décomposition temporelle par images B hiérarchiques. Ce modèle est décrit plus en détails dans le document JVT-Q202 de J. Reichel, M. Wien et H. Schwarz, intitulé « Joint Scalable Video Model JSVM-4 », Octobre 2005, Nice. Le groupe de travail JVT a notamment pour objectif de proposer une norme de fourniture de flux échelonnables à grain moyen dans les dimensions temporelle, spatiale et en qualité. 2.2 Le codeur JSVM 2.2.1 Principales caractéristiques du codeur La figure 1 illustre la structure d'un tel codeur JSVM, qui présente une structure pyramidale. Les composantes d'entrée vidéo 10 subissent un sous- échantillonnage dyadique (décimation spatiale 2D référencée 11).
Chacun des flux sous-échantillonnés subit ensuite une décomposition temporelle 12 de type « images B hiérarchiques ». Une version basse résolution de la séquence vidéo est codée jusqu'à un débit donné R_rO_max qui correspond au débit maximum décodable pour la résolution spatiale basse rO (cette version basse résolution est codée en une couche de base avec un débit R_rO_min, et des couches de réhaussement, jusqu'à atteindre le débit R_rO_max ; ce niveau de base est compatible AVC). Les niveaux supérieurs sont ensuite codés par soustraction du niveau précédent reconstruit et sur-échantillonné et codage des résidus sous forme : d'un niveau de base ; éventuellement d'un ou plusieurs niveaux de rehaussement obtenus par codage multipasse de plans de bits (appelé par la suite FGS pour « Fine Grain Scalability », en français « échelonnabilité à grain fin »). Le résidu de prédiction est codé jusqu'à un débit R_ri_max qui correspond au débit maximum décodable pour la résolution ri.
Plus précisément, les blocs de filtrage de type « images B hiérarchiques » 12 délivrent des informations de mouvement 16 qui alimentent un bloc de codage de mouvement 13-15, et des informations de texture 17, qui alimentent un module de prédiction inter-couches 18. Les données prédites, en sortie du module de prédiction inter-couches 18 alimentent un bloc 20 de transformation et de codage entropique, qui travaille sur des niveaux de raffinement du signal. Les données issues de ce bloc 20 servent notamment à réaliser une interpolation spatiale 2D 19 depuis le niveau inférieur. Finalement, un module de multiplexage 21 ordonne les différents sous-flux générés dans un flux de données compressé global. 2.2.2 Codage par quantification progressive
On peut notamment remarquer que la technique de codage utilisée par le codeur JSVM est une technique de quantification progressive.
Plus précisément, cette technique consiste tout d'abord à quantifier avec un premier pas de quantification grossier les différents coefficients représentatifs des données à transmettre. Ensuite, les différents coefficients sont reconstruits, et la différence entre la valeur du coefficient reconstruit, et la valeur quantifiée est calculée.
Selon cette technique de quantification progressive, cette différence est ensuite quantifiée avec un deuxième pas de quantification, plus fin que le premier pas.
On procède ainsi itérativement, avec un certain nombre de pas de quantification. On appelle notamment « passe FGS » le résultat de chaque étape de quantification.
Plus précisément encore, les coefficients quantifiés sont codés en deux passes, à chaque pas de quantification : une première passe de signifiance, permettant de coder les nouveaux coefficients signifiants, c'est-à-dire ceux qui ont été codés avec une valeur nulle au pas de quantification précédent. Pour ces nouveaux coefficients signifiants, on code le signe du coefficient et son amplitude. une deuxième passe de raffinement, permettant de raffiner/coder les coefficients qui étaient déjà signifiants au pas de quantification précédent. Pour ces coefficients, on code une valeur 0, +1 ou -1 de raffinement.
On rappelle notamment qu'un coefficient signifiant est un coefficient dont la valeur codée est différente de zéro. 2.2.3 Codage cyclique des couches FGS Dans un codeur de type JSVM, les images à coder comprennent classiquement trois composantes : une composante de luminance, et deux composantes de chrominance, chacune typiquement de taille y. de la composante de luminance (c'est-à-dire de largeur et hauteur deux fois plus petites). On rappelle qu'il est également possible de traiter des images ne comprenant qu'une composante de luminance.
Classiquement, les images sont découpées en macro blocs de taille 16 x 16 pixels, chaque macro bloc étant ensuite re-découpé en blocs. Pour la composante de luminance, le codage des couches de raffinement est alors fait sur des blocs 4 x 4 pixels, ou bien sur des blocs 8 x 8 pixels. Pour les composantes de chrominance, le codage des couches de raffinement est fait sur des blocs 4 x 4 pixels.
On explique notamment en relation avec la figure 2A l'ordre en « zigzag » de parcours des coefficients pour coder un bloc. Cet ordre s'explique par l'ordonnancement des fréquences spatiales dans un bloc.
Plus précisément, le premier coefficient du bloc correspond à une basse fréquence (coefficient DC de la transformée en cosinus discrète DCT), et représente l'information la plus importance du groupe. Les autres coefficients correspondent aux hautes fréquences (coefficients AC de la transformée en cosinus discrète DCT), l'énergie des hautes fréquences décroissant horizontalement, verticalement et diagonalement.
Ainsi, en suivant le sens de parcours zig-zag illustré en relation avec la figure 2A, on s'assure de suivre la décroissance des hautes fréquences. On obtient de cette manière une grande probabilité d'avoir des coefficients de plus en plus faibles, voire nuls.
Plus précisément, pour coder un coefficient, on code à la fois des informations de signifiance, permettant d'indiquer si un coefficient est signifiant ou non signifiant, et le signe et l'amplitude du coefficient, s'il est signifiant. Classiquement, le codage des coefficients s'effectue à l'aide d'un codage par plage (c'est-à-dire qu'on regroupe tous les coefficients ayant une valeur quantifiée nulle).
Autrement dit, pour coder une « plage » de coefficients, on code tout d'abord l'information de signifiance de tous les coefficients restant non signifiants dans l'ordre « zig-zag » jusqu'à atteindre un coefficient nouvellement signifiant, puis on code le coefficient nouvellement signifiant. Plus précisément, on entend par les termes « plage » ou « groupe » un groupe de coefficients dont les positions sont consécutives et contenues dans un intervalle qui commence soit au début d'un bloc, soit après la position d'un coefficient signifiant, et qui finit après le prochain coefficient signifiant si l'on considère une passe de codage (ou de décodage) de signifiance. On peut notamment parler dans ce cas de « groupe de signifiance ». Si l'on considère une passe de codage (ou décodage) de raffinement, on entend par « plage » ou « groupe de coefficients » le coefficient seul à raffiner. On peut notamment parler dans ce cas de « groupe de raffinement ».
Autrement dit, on définit le codage d'une plage comme le codage d'un coefficient nouvellement signifiant et de tous les coefficients restant non signifiants placés avant lui, si l'on est dans une passe de signifiance, et comme le codage d'un raffinement d'un coefficient déjà signifiant, si l'on est dans une passe de raffinement.
Par exemple, pour coder le bloc illustré en figure 2B, on utilise les notations suivantes :
S pour indiquer qu'un coefficient est signifiant ; - NS pour indiquer qu'un coefficient est non signifiant ;
LS pour indiquer si l'on vient ou non de coder le dernier coefficient signifiant du bloc. Plus précisément, LS peut prendre deux valeurs. Par exemple, si LS vaut 1, cela signifie que ce coefficient est le dernier coefficient signifiant du bloc : tous les coefficients positionnés après le dernier coefficient signifiant sont non signifiants. On évite ainsi de coder la signifiance de tous ces coefficients non signifiants.
Ainsi, en relation avec la figure 2B, on code NS, NS, NS, S, signe du coefficient signifiant, valeur (ou amplitude) du coefficient signifiant, LS, NS, NS, NS, S, signe du coefficient signifiant, valeur (ou amplitude) du coefficient signifiant, LS.
Si lors du parcours du bloc, des coefficients déjà signifiants au pas de quantification précédent (c'est-à-dire à l'itération précédente) sont atteints, on ne code rien pour ces coefficients lors de la passe de signifiance. On rappelle que le codage des couches de raffinement, dans un codeur
JSVM classique tel que défini dans le document « Scalable Video Coding Joint Working Draft 4 », octobre 2005, Nice, Joint Video Team de l'ISO/IEC MPEG et de l'ITU-T VCEG, JVT-Q201, est fait de manière itérative.
Ainsi, à chaque itération, on parcourt l'ensemble des macro blocs de l'image. Pour chaque macro bloc, on parcourt l'ensemble des blocs de luminance et des blocs de chrominance. Pour chaque bloc de luminance et de chrominance, on code une plage selon la technique classique, puis on passe au bloc suivant, et ainsi de suite pour tous les blocs du macro bloc.
Quand tous les macro blocs ont été parcourus, on passe à l'itération suivante, dans laquelle on code pour chaque bloc la deuxième plage de chaque bloc. On itère ainsi jusqu'à ce que tous les coefficients signifiants de tous les blocs de l'image soient codés.
Ainsi, pour l'exemple illustré en relation avec la figure 2B, deux itérations sont nécessaires pour coder tous les coefficients signifiants du bloc. II est à noter que lorsqu'on code un coefficient signifiant, il arrive que l'on code en fait plusieurs coefficients, correspondant aux coefficients non signifiants placés avant le signifiant. Ainsi, le codage du deuxième coefficient signifiant d'un bloc ne signifie pas toujours que l'on code effectivement le coefficient placé en deuxième position dans le bloc suivant l'ordre zig-zag. De même, le n-ième coefficient signifiant à coder d'un bloc n'est pas nécessairement positionné au même endroit pour tous les blocs.
Finalement, quand tous les coefficients signifiants de l'image sont codés, on code à l'itération suivante les coefficients raffinés. Comme précédemment, on parcourt chaque macro bloc de l'image, puis chaque bloc de luminance et de chrominance du macro bloc. Pour chaque bloc, on étudie le premier coefficient du bloc. Si le coefficient était déjà signifiant au pas de quantification précédent (c'est-à-dire à l'itération précédente), on code son raffinement, sinon on ne code rien. On passe ensuite au bloc suivant, et ainsi de suite jusqu'à avoir parcouru tous les blocs.
A l'itération suivante, on code le raffinement du deuxième coefficient à raffiner de tous les blocs. On ré-itère ainsi ces opérations jusqu'à ce que tous les raffinements des coefficients à raffiner soit codés.
Un paramètre permettant de contrôler l'entrelacement du codage des coefficients des composantes de chrominance et de luminance est aussi utilisé. Ainsi, pour une itération donnée, on peut coder des coefficients de luminance uniquement, ou bien des coefficients de luminance et de chrominance.
Cette technique de codage par itération permet ainsi d'entrelacer les coefficients de la couche de raffinement, et d'assurer une meilleure qualité de reconstruction d'une image, notamment si la couche de raffinement est tronquée. 2.3 Syntaxe du flux SVC
On présente maintenant en relation avec la figure 3 la structure du flux SVC, obtenu en sortie du module de multiplexage 21 de la figure 1.
Le flux de données compressé, en sortie du codeur, est organisé en unités d'accès AUs (de l'anglais « Access Units »), correspondant chacune à un instant temporel T, et comprenant une ou plusieurs unités de données élémentaires d'accès pour le réseau (paquet) appelées NALUs (de l'anglais « Network
Abstraction Layer Unit »).
On rappelle que chaque NALU est associée à une image ou une portion d'image regroupant un ensemble de macro blocs (encore appelée « slice ») issue de la décomposition spatio-temporelle, un niveau de résolution spatiale, et un niveau de quantification. Cette structuration en unités élémentaires permet de réaliser une adaptation en débit et/ou résolution spatio-temporelle en supprimant les NALUs de résolution spatiale trop grande, ou de fréquence temporelle trop grande ou bien encore de qualité d'encodage trop grande.
Plus précisément, dans le contexte présenté ici, chaque passe FGS (ou couche de raffinement) d'une image est insérée dans une NALU.
La figure 3 illustre ainsi les unités d'accès AUl 31, correspondant au temps TO, et AU2 32, correspondant au temps Tl. Plus précisément, l'unité d'accès AUl 31 comprend six NALUs 311 à 316, correspondant à l'instant TO. La première NALU 311 est représentative d'un niveau spatial SO, et d'un niveau FGS/CGS EO. La deuxième NALU 312 est représentative d'un niveau spatial SO, et d'un niveau FGS/CGS El. Finalement, la dernière NALU 316 est représentative d'un niveau spatial S2, et d'un niveau FGS/CGS El. 3. Inconvénients de l'art antérieur
Un inconvénient de cette technique de codage de l'art antérieur est que pour atteindre un débit visé, il peut être nécessaire de tronquer les données constitutives des paquets, encore appelées NALUs.
Or la technique classique de codage des couches de raffinement par itération, qui permet d'entrelacer les coefficients de la couche de raffinement, implique une importante complexité au décodeur, bien qu'elle offre en contrepartie une meilleure qualité de reconstruction lorsque les couches de raffinement sont tronquées soit au codeur, soit lors de la transmission, par rapport à une méthode qui traiterait séquentiellement tous les macro blocs d'une image. En effet, l'entrelacement des coefficients de chaque bloc implique des changements de contexte de décodage fréquents, donc des changements fréquents des informations contenues dans le cache de l'ordinateur, ce qui conduit à une complexité accrue au niveau du décodage.
On peut également noter que la troncature des couches de raffinement n'est pas toujours nécessaire. En effet, bien qu'elle permette d'atteindre un débit cible pour un flux codé en tronquant toutes les couches de raffinement avec le même ratio, l'utilisation des niveaux de qualité du codeur JSVM, tel que présenté par I. Amonou, N. Cammas, S. Kervadec, S. Pâteux dans le document « JVT-Q081 Layered quality opt of JSVM3 and closed-loop », permet d'ordonnancer les couches de raffinement des images entre elles et d'atteindre ainsi un débit cible sans tronquer les couches de raffinements, tout en en améliorant la qualité par rapport au cas où les couches de raffinement sont tronquées.
Dans ce contexte, le codage par itération ne donne pas de gain en compression, mais conserve une complexité plus élevée.
4. Objectifs de l'invention
L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur.
Plus précisément, un objectif de l'invention est de fournir une technique de codage et de décodage d'images et/ou de séquences vidéo qui permette d'adapter la complexité au niveau du décodage, en fonction du type de codage utilisé.
Notamment, dans le cadre d'une application au codage et au décodage d'images et/ou de séquences vidéo échelonnable reposant sur une organisation du flux de données en couches, un objectif de l'invention est de fournir une telle technique constituant une amélioration de la technique du modèle JSVM proposé par le groupe de travail JVT dans le document JVT-Q202 de J. Reichel, M. Wien et H. Schwarz, intitulé « Joint Scalable Video Model JSVM-4 », Octobre 2005, Nice.
Un autre objectif de l'invention est de proposer une telle technique qui permette de conserver la complexité d'un décodage classique dans les cas où une troncature de l'image s'impose, et de réduire la complexité de décodage dans les cas où la troncature de l'image ne s'impose pas.
L'invention a encore pour objectif de fournir une telle technique qui soit simple à implémenter et peu coûteuse en termes de ressources (bande passante, capacités de traitement, etc.), et qui n'introduise pas de complexité particulière, ni de traitements importants.
5. Exposé de l'invention
Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'un procédé de codage d'une image ou d'une séquence d'images, générant un flux de données, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé comprenant un ensemble de coefficients, les coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé des blocs transformés.
Selon l'invention, le procédé de codage comprend, pour chacun des blocs transformés : une étape de codage d'une série de coefficients correspondant à au moins un groupe de coefficients, ladite série étant déterminée en fonction d'un type de série de coefficients sélectionné parmi au moins deux types possibles, dont : un premier type de série selon lequel la série de coefficients comprend un nombre M prédéterminé de groupes de coefficients, un deuxième type de série selon lequel une position maximale N prédéterminée dans le parcours étant identifiée, la série comprend le groupe comprenant la position maximale N, et tous les groupes précédents selon le parcours, s'il y en a, et une étape d'insertion dans le flux de données d'une information représentative du type de série de coefficients sélectionné pour l'image ou la séquence d'images, ou pour une portion de l'image. Ainsi, l'invention repose sur une approche tout à fait nouvelle et inventive de la sélection d'un type de série de coefficients et du codage d'une série de coefficients déterminée à partir du type sélectionné, et de l'insertion dans le flux de données du type de série sélectionné, de sorte qu'au niveau du décodage du flux de données, un décodeur puisse lire le type de série de coefficients utilisé au codage, et s'adapter automatiquement au codage utilisé pour réduire la complexité du décodage.
La série de coefficients à coder peut, selon un premier type de série, comprendre un nombre M prédéterminé de groupes de coefficients. Ainsi, la série peut correspondre à un unique groupe de coefficients, à un nombre prédéterminé de groupes de coefficients (supérieur ou égal à 2), ou encore à l'ensemble des coefficients du bloc considéré.
Selon un deuxième type de série, la série peut comprendre le groupe comprenant le coefficient positionné à la position N, selon un parcours de lecture prédéterminé, et tous les groupes précédents, selon le parcours de lecture prédéterminé, le groupe comprenant le coefficient positionné à la position N, s'il y en a.
Avantageusement, le parcours de lecture est le parcours en «zig-zag », tel que décrit en relation avec la figure 2A. Préférentiellement, le flux de données présente une structure hiérarchique en couches de données emboîtées de niveaux de raffinement successifs, et le procédé de codage met en œuvre un codage itératif, chacune des itérations correspondant à un des niveaux et mettant en œuvre l'étape de codage.
L'invention est ainsi particulièrement bien adaptée au codage de signaux vidéo scalables.
Notamment, pour le deuxième type de série : lorsque la série comprenant le groupe comprenant la position maximale N a été codée à une itération précédente, la série est vide, lorsque la série comprenant le groupe comprenant la position maximale N n'a pas été codée à une itération précédente, la série comprend le groupe comprenant la position maximale prédéterminée et tous les groupes précédents selon le parcours n'appartenant pas à une série déjà codée à une itération précédente, s'il y en a.
On peut ainsi tenir compte, au cours des itérations suivantes, des coefficients déjà codés au cours des itérations précédentes. Une série vide indique ainsi qu'à une itération précédente, les groupes compris dans la série ont déjà été codés.
Selon une caractéristique avantageuse de l'invention, chacune des itérations met en œuvre au moins l'une des passes suivantes : - une passe de signifiance, une passe de raffinement, l'étape de codage s 'appliquant à la ou aux passes mises en œuvre, et un paramètre indiquant le type de la ou des passes mises en œuvre accompagne l'information représentative du type de série de coefficients. II est ainsi possible de coder dans le flux diverses informations, qui permettrons au décodeur de s'adapter facilement à la technique de codage utilisée, et donc de simplifier la complexité du décodage.
Notamment, lorsque la passe est une passe de signifiance, le critère de groupement prédéterminé définit un groupe comme un ensemble de coefficients successifs non signifiants, et se terminant par le premier coefficient signifiant rencontré selon le parcours de lecture. Lorsque la passe est une passe de raffinement, le critère de groupement prédéterminé définit un groupe comme un unique coefficient signifiant.
Avantageusement, l'information représentative du type de série de coefficients est accompagnée d'une information de mise en œuvre, comprenant un vecteur définissant la valeur du nombre M ou de la position N pour chaque itération.
Ce vecteur peut être connu par défaut, donc préalablement déterminé, ou directement codé dans le flux. Ce vecteur permet ainsi de définir les positions N de coefficients à atteindre à chaque itération. Par exemple, ce vecteur vaut [1,3,10,16] pour un bloc de taille 4 x 4 , ou [3,10, 36,64] pour un bloc de taille
8 x 8 .
L'information de mise en œuvre peut également préciser le nombre de plages à coder (en définissant le nombre de groupes M). Selon une caractéristique avantageuse de l'invention, une image source est décomposée en au moins deux composantes à coder, et le codage est appliqué à chacune des composantes.
Par exemple, une image comprend une composante de luminance et deux composantes de chrominance, et le codage est appliquée à chacune de ces trois composantes.
L'invention concerne également un dispositif de codage d'une image ou d'une séquence d'images, générant un flux de données, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé comprenant un ensemble de coefficients, les coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé des blocs transformés.
Selon l'invention, un tel dispositif comprend : des moyens de codage d'une série de coefficients correspondant à au moins un groupe de coefficients, la série étant déterminée en fonction d'un type de série de coefficients sélectionné parmi au moins deux types possibles, dont : un premier type de série selon lequel la série de coefficients comprend un nombre M prédéterminé de groupes de coefficients, un deuxième type de série selon lequel une position maximale N prédéterminée dans le parcours étant identifiée, la série comprend le groupe comprenant la position maximale N, et tous les groupes précédents selon le parcours, s'il y en a, et des moyens d'insertion dans le flux de données d'une information représentative du type de série de coefficients sélectionné pour l'image ou séquence d'images, ou pour une portion de l'image.
Un tel dispositif peut notamment mettre en œuvre le procédé de codage tel que décrit précédemment.
Notamment, le flux de données peut présenter une structure hiérarchique en couches de données emboîtées de niveaux de raffinement successifs, et les moyens de codage peuvent mettre en œuvre un codage itératif, chacune des itérations correspondant à un des niveaux.
L'invention concerne également un procédé de décodage d'un flux de données représentatif d'une image ou d'une séquence d'images, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé comprenant un ensemble de coefficients, les coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé des blocs transformés.
Selon l'invention, un tel procédé de décodage comprend : une étape de lecture d'un type de série de coefficients appliqué à l'image ou séquence d'images, ou à une portion de l'image, parmi au moins deux types possibles, dont : un premier type de série selon lequel la série de coefficients comprend un nombre M prédéterminé de groupes de coefficients, - un deuxième type de série selon lequel une position maximale N prédéterminée dans le parcours étant identifiée, la série comprend le groupe comprenant la position maximale N, et tous les groupe(s) précédent(s) selon le parcours, s'il y en a, et une étape de décodage prenant en compte, pour chaque bloc transformé, une série de coefficients selon le type de série de coefficients délivré par l'étape de lecture.
Un tel procédé de décodage est notamment adapté à recevoir un flux de donné codé selon le procédé de codage décrit précédemment.
Ainsi, le flux de données peut présenter une structure hiérarchique en couches de données emboîtées de niveaux de raffinement successifs.
Notamment, si le flux a subi un codage itératif, chacune des itérations correspondant à un des niveaux, on a pour le deuxième type de série : lorsque la série comprenant le groupe comprenant la position maximale N a été codée à une itération précédente, la série est vide, - lorsque la série comprenant le groupe comprenant la position maximale N n'a pas été codée à une itération précédente, la série comprend le groupe comprenant la position maximale prédéterminée, et tous les groupes précédents selon le parcours n'appartenant pas à une série déjà codée à une itération précédente, s'il y en a. L'invention concerne encore un dispositif de décodage d'un flux de données représentatif d'une image ou d'une séquence d'images, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé comprenant un ensemble de coefficients, les coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé des blocs transformés.
Selon l'invention, un tel dispositif de décodage comprend : des moyens de lecture d'un type de série de coefficients appliqué à l'image ou séquence d'images, ou à une portion de l'image, parmi au moins deux types possibles, dont : un premier type de série selon lequel la série de coefficients comprend un nombre M prédéterminé de groupes de coefficients, un deuxième type de série selon lequel une position maximale N prédéterminée dans le parcours étant identifiée, la série comprend le groupe comprenant la position maximale N, et tous les groupes précédents selon le parcours, s'il y en a, et des moyens de décodage prenant en compte, pour chaque bloc transformé, une série de coefficients selon le type de série de coefficients délivré par l'étape de lecture. Un tel dispositif peut notamment mettre en œuvre le procédé de décodage tel que décrit précédemment. Il est par conséquent adapté à recevoir un flux de données codées par le dispositif de codage décrit précédemment.
Le flux de données peut notamment présenter une structure hiérarchique en couches de données emboîtées de niveaux de raffinement successifs. L'invention concerne encore un signal représentatif d'un flux de données, représentatif d'une image ou d'une séquence d'images, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé comprenant un ensemble de coefficients, les coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé des blocs transformés.
Selon l'invention, un tel signal porte une information représentative d'un type de série de coefficients appliqué à l'image ou séquence d'images, ou à une portion de l'image, parmi au moins deux types possibles, dont : - un premier type de série selon lequel la série de coefficients comprend un nombre M prédéterminé de groupes de coefficients, un deuxième type de série selon lequel une position maximale N prédéterminée dans le parcours étant identifiée, ladite série comprend le groupe comprenant la position maximale N, et tous les groupes précédents selon le parcours, s'il y en a.
Un tel signal peut notamment représenté un flux de données codé selon le procédé de codage décrit ci-dessus. Ce signal pourra bien sûr comporter les différentes caractéristiques relatives au procédé de codage selon l'invention.
Ainsi, le flux de données peut notamment présenter une structure hiérarchique en couches de données emboîtées de niveaux de raffinement successifs, ledit flux ayant subi un codage itératif, chacune des itérations correspondant à un desdits niveaux. Dans ce cas, pour le deuxième type de série : lorsque la série comprenant le groupe comprenant la position maximale N a été codée à une itération précédente, la série est vide, - lorsque la série comprenant le groupe comprenant la position maximale N n'a pas été codée à une itération précédente, la série comprend le groupe comprenant la position maximale prédéterminée, et tous les groupes précédents selon le parcours n'appartenant pas à une série déjà codée à une itération précédente, s'il y en a. Finalement, l'invention concerne un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, comprenant des instructions de code de programme pour la mise en œuvre du procédé de codage tel décrit précédemment, et un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, comprenant des instructions de code de programme pour la mise en du procédé de décodage décrit précédemment.
6. 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 préférentiel, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : la figure 1, déjà décrite en relation avec l'art antérieur, présente un codeur de type JSVM ; les figures 2A et 2B, également présentées en relation avec l'art antérieur, illustrent le parcours en zig-zag des coefficients des blocs composant une image ; la figure 3, également présentée en relation avec l'art antérieur, décrit la structure d'un flux de type SVC selon l'art antérieur ; la figure 4 présente le principe général du procédé de codage selon l'invention ; les figures 5A à 5D illustrent différents types de série possibles pour le codage des coefficients d'un bloc selon le procédé de la figure 4 ; - la figure 6 présente les bandes de fréquence d'un vecteur par défaut considéré pour un bloc de taille 4 x 4 selon une variante de l'invention ; le figure 7 décrit le principe général du procédé de décodage selon l'invention ; les figures 8 et 9 présentent respectivement la structure matérielle simplifiée d'un dispositif de codage et d'un dispositif de décodage selon l'invention.
7. Description d'un mode de réalisation de l'invention
Le principe général de l'invention repose sur le codage d'une série de coefficients parmi un ensemble de coefficients représentatifs d'une image, la série à coder étant déterminée en fonction d'un type de série de coefficients sélectionné parmi au moins deux types.
On considère selon l'invention une image découpée en au moins deux blocs, à chacun desquels est associé un bloc transformé, par exemple par l'intermédiaire d'une transformée en cosinus discrète (DCT pour « discrète cosine transform » en anglais). Par souci de simplification et pour la clarté de la description, on entend par la suite par le terme « bloc » un bloc issu du découpage et de la transformation de l'image.
De plus, dans un souci de simplification et de clarté, on détaille ci-après uniquement un mode de réalisation préférentiel de l'invention, permettant le codage et le décodage d'images ou de séquences d'images échelonnables.
L'Homme du Métier étendra facilement cet enseignement au codage et au décodage d'images ou de séquences d'images non échelonnables.
Le procédé de codage selon ce mode de réalisation préférentiel de l'invention est avantageusement un procédé itératif, codant à chaque itération un niveau de la structure hiérarchique en couches de données emboîtées générant le flux de données.
Ainsi, à chaque itération, on parcourt bloc par bloc la ou les images (ou les portions d'images), et on code au moins certains coefficients de chacun des blocs, selon le type de série de coefficients, sélectionné parmi au moins deux types possibles.
Selon ce mode de réalisation préférentiel de l'invention, les coefficients peuvent être codés en une ou deux passes à chaque itération, selon une passe de signifiance, permettant de coder les nouveaux coefficients signifiants, c'est-à-dire ceux qui ont été codés avec une valeur nulle à l'itération précédente, et/ou selon une passe de raffinement, permettant de raffiner/coder les coefficients qui étaient déjà signifiants à l'itération précédente.
On entend ainsi par « groupe » de coefficients (ou « plage ») : un groupe de coefficients dont les positions sont consécutives et contenues dans un intervalle qui commence soit au début d'un bloc, soit après la position d'un coefficient signifiant, et qui finit après le prochain coefficient signifiant si l'on considère une passe de codage (ou de décodage) de signifiance, le coefficient seul à raffiner si l'on considère une passe de codage (ou décodage) de raffinement.
On appelle notamment « groupe de signifiance » un groupe obtenu au cours d'une passe de signifiance, et « groupe de raffinement » un groupe obtenu au cours d'une passe de raffinement.
On présente désormais, en relation avec la figure 4, le principe général du procédé de codage selon ce mode de réalisation préférentiel de l'invention.
Selon ce mode de réalisation préférentiel, les composantes d'entrée vidéo 41 (image, séquences d'images, ou portion d'image) subissent tout d'abord un traitement 42 permettant de les découper en au moins deux blocs, et d'associer à chacun de ces blocs un bloc transformé comprenant un ensemble de coefficients. Au cours d'une étape de sélection 43 suivante, un type de série de coefficients est choisi parmi au moins deux types possibles.
Plus précisément, le type de série de coefficients est choisi parmi plusieurs types possibles, dont un premier type selon lequel une série de coefficients correspond à M groupes de coefficients, où M est un entier prédéterminé, et un second type selon lequel une série comprend un groupe comprenant le coefficient positionné à une position maximale N prédéterminée, et tous les groupes précédents ce groupe dans le parcours de lecture en zig-zag, s'il y en a.
Plus précisément, on considère que lorsque la série comprenant le groupe comprenant le coefficient localisé à la position N a déjà été codée à une itération précédente, la série considérée à l'itération courante est nulle. En revanche, lorsque la série comprenant le groupe comprenant le coefficient localisé à la position N n'a pas déjà été codée à une itération précédente, la série considérée à l'itération courante comprend un groupe comprenant le coefficient positionné à la position N, et tous les groupes précédents ce groupe dans le parcours de lecture en zig-zag, s'il y en a.
Le nombre N correspond ainsi à une position dans le bloc considéré, suivant le parcours zig-zag, définie en fonction de l'itération et donnée par un vecteur connu par défaut ou codé dans le flux. Par exemple, ce vecteur par défaut vaut [1,3,10,16] pour un bloc de taille 4 x 4 , ou [3,10, 36,64] pour un bloc de taille 8 x 8 .
Selon ce mode de réalisation préférentiel de l'invention, une série peut ainsi correspondre : à un groupe de coefficients (par la suite, on note ce codage, selon lequel M = 1, « mode 0 ») ; - à l'ensemble des coefficients du bloc considéré (on note ce codage
« mode 1 » par la suite) ; à un ensemble de groupes défini en fonction d'une position maximale N fonction de l'itération (on note ce codage « mode 2 » par la suite) ; ou encore - à M groupes de coefficients (on note ce codage « mode 3 » par la suite).
Les figures 5A à 5D illustrent notamment ces différentes séries pour le codage des coefficients d'un bloc, lors d'un parcours des coefficients dans l'ordre « zig-zag » comme décrit en relation avec l'art antérieur. La figure 5A présente ainsi le codage d'une série de coefficients de premier type selon le « mode 0 ». La série 51 correspond dans ce cas à un unique groupe. On rappelle qu'un '0' signifie que le coefficient n'est pas un coefficient nouvellement signifiant (on l'a codé à l'itération précédente comme étant un coefficient signifiant, ou on l'a codé comme étant un coefficient non signifiant et il reste dans l'état non signifiant à cette itération courante), et qu'un ' l' signifie que le coefficient est nouvellement signifiant (il a été codé à l'itération précédente avec une valeur nulle et devient signifiant à l'itération courante). La série 51 correspond donc au groupe 0 ,0 ,0 ,1, signe coefficient, valeur coefficient.
La figure 5B illustre le codage d'une série de coefficients de deuxième type selon le « mode 2 », en considérant N égal à 6 : la série 52 comprend le groupe comprenant le coefficient localisé à la position 6 (référencée 521 sur la figure 5B), suivant le parcours zig-zag du bloc, et le groupe précédent ce groupe dans l'ordre de parcours, si ces groupes ne comprennent pas des coefficients déjà codés à une itération précédente. La figure 5C illustre le codage d'une série de coefficients de premier type selon le « mode 3 », selon lequel la série 53 correspond à M groupes de coefficients, avec M = 2.
Finalement, la figure 5D le codage d'une série de coefficients de premier type selon le « mode 1 », selon lequel la série 54 correspond à l'ensemble des coefficients du bloc considéré.
En revenant à la figure 4, une fois le type de série de coefficients sélectionné, le procédé de codage selon ce mode de réalisation préférentiel de l'invention code, pour un premier niveau de la structure hiérarchique en couches successives (première itération), au cours de l'étape de codage 44, une série de coefficients du premier bloc, déterminée en fonction du type sélectionné, puis du deuxième bloc, et ainsi de suite jusqu'au dernier bloc (45). On passe ensuite à un deuxième niveau de la structure hiérarchique en couches successives (deuxième itération 46), et on code de nouveau une série de coefficients du premier bloc, déterminée en fonction du type sélectionné, puis du deuxième bloc, et ainsi de suite jusqu'au dernier bloc (45) du deuxième niveau. On code ainsi chaque couche de données de la structure hiérarchique.
On rappelle que pour le deuxième type de série, si la série comprenant le groupe comprenant la position maximale N a été codée à une itération précédente, la série est vide, sinon la série comprend le groupe comprenant la position maximale prédéterminée, et tous les groupes précédents selon le parcours de lecture (si de tels groupes existent). Pour le mode 0 et le mode 3, si il ne reste plus de groupes à coder, la série est vide.
Une fois les différents niveaux et les différents blocs codés, le codeur selon l'invention délivre un flux de données global 47, dans lequel est inséré une information représentative du type de série de coefficients sélectionné pour l'image ou la séquence d'images, ou pour une portion de l'image.
Ainsi, un décodeur peut lire l'information représentative du type de série de coefficients sélectionné et s'adapter automatiquement au mode de codage utilisé, notamment pour le décodage des couches de raffinement. L'invention offre ainsi la possibilité d'avoir un décodage à faible complexité ou a complexité adaptative.
Cette information représentative du type de série de coefficients sélectionné peut également être accompagnée d'une information de mise en œuvre, comprenant par exemple un vecteur définissant la valeur du nombre M ou la position N pour chaque itération.
Ainsi, le flux de données codées 47 peut porter deux éléments d'information indiquant d'une part le type de série de coefficients sélectionné, utilisé notamment par le décodeur pour le décodage des couches de raffinement, et d'autre part un ou plusieurs bits pour le vecteur définissant les positions de coefficients à atteindre à chaque itération si le codage met en œuvre le mode 2 (en définissant la position N), ou le nombre de plages à coder si le codage met en œuvre le mode 3 (en définissant le nombre de groupes M).
Selon le mode de réalisation préférentiel de l'invention décrit, ces éléments d'information sont insérés dans le flux 47 dans l'en-tête des paquets de données relatives à une image temporelle ou une portion d'image (encore appelée
« slice »), c'est-à-dire dans l'en-tête des paquets de données de chaque couche de la structure hiérarchique.
De plus, il est également possible d'ajouter dans le flux 47 un paramètre, noté blnterlacedSigRef par la suite, qui indique si pour une itération donnée, on code des groupes de coefficients de signifiance et/ou des groupes de coefficients de raffinement.
Ce procédé est également remarquable en ce qu'il peut prévoir de n'utiliser que le deuxième type de série pour déterminer la série de coefficients à coder.
On présente désormais en relation avec l'annexe A, qui fait partie intégrante de la présente description, un exemple de syntaxe de l' en-tête des images scalables, dans laquelle les éléments insérés dans le flux 47 selon l'invention figurent en italique. La sémantique associée à cette syntaxe est plus précisément décrite dans le document « Scalable Video Coding Joint Working Draft 4 », Joint Video Team (JVT) de l'ISO/IEC MPEG et ITTU-T VCEG, JVT- Q201, Octobre 2005, Nice.
On décrit ci-après uniquement la structure des éléments insérés dans le
Figure imgf000027_0001
On utilise notamment le champ fgs_coding_mode pour indiquer le type de série de coefficients sélectionné lors du codage, et que le décodeur pourra lire lors du décodage du flux de données compressé, et notamment des couches de raffinement. On rappelle notamment que le premier type de série détermine une série de coefficients comprenant un nombre M prédéterminé de groupes de coefficients : si M = 1, on note ce codage « mode 0 », si M comprend l'ensemble des coefficients du bloc considéré, on note ce codage « mode 1 », et si M correspond à un entier prédéterminé de groupes de coefficients, on note ce codage « mode 3 ». Le deuxième type de série (« mode 2 ») détermine une série de coefficients comprenant : le groupe comprenant la position N et tous les groupes le précédent selon le parcours de lecture (s'ils existent), si le groupe comprenant la position N n'a pas été codé à une itération précédente ; sinon une série vide.
Par abus de langage, on note également « mode 0 », « mode 1 », « mode 2 » et « mode 3 » les modes de décodage correspondants.
Ainsi, si le champ fgs_coding_mode prend la valeur 0, il indique que le codage est effectué selon le premier type de série de coefficients, selon le « mode 0 », et donc que le décodage doit permettre de décoder un groupe par bloc pour chacun des blocs à chaque itération. La valeur 1 indique que le codage est effectué selon le premier type de série de coefficients, selon le « mode 1 », et donc que le décodage doit permettre de décoder tous les coefficients de chacun des blocs en une seule itération. Ce « mode 1 » correspond à un décodage à faible complexité des couches de raffinement, où tous les groupes de type signifiant et/ou raffiné d'un bloc sont décodés en une itération.
La valeur 2 indique que le codage est effectué selon le deuxième type de série de coefficients, selon le « mode 2 », et donc que le décodage doit permettre de décoder à chaque itération un ensemble de groupes jusqu'à atteindre une position N, cette position étant définie à chaque itération, par défaut ou dans un vecteur fixe ou variable. Finalement, la valeur 3, indique que le codage est effectué selon le premier type de série de coefficients, selon le « mode 3 », et donc que le décodage doit permettre de décoder à chaque itération un nombre M de groupes. Ce nombre M peut être constant. Les drapeaux vect4x4_presence_flag et vect8x8_presence_flag indiquent respectivement la présence de vecteurs définissant la position maximale N, dans le cas du mode 2, pour des blocs de tailles 4 x 4 pixels et pour des blocs de tailles 8 x 8 pixels.
Plus précisément, si la valeur d'un des drapeaux vaut 1, le vecteur correspondant à ce drapeau est présent dans le flux.
De plus, dans le cas du mode 2, la variable num_iter_coded indique le nombre de valeurs contenues dans le vecteur pour les blocs 4 x 4 et/ou pour les blocs 8 x 8 . La variable scanlndex_blk4x4[i] indique la position maximale d'un coefficient d'un bloc 4 x 4 jusqu'à laquelle les groupes doivent être décodés à l'itération i. La variable scanlndex_blk.8x8[i] indique la position maximale d'un coefficient d'un bloc 8 x 8 jusqu'à laquelle les groupes doivent être décodés à l'itération i.
Si le mode est le mode 2, et que le vecteur pour un bloc 4 x 4 (respectivement 8 x 8 ) n'est pas présent, ce vecteur est déduit du vecteur pour un bloc 8 x 8 (respectivement 4 x 4 ) en divisant les valeurs de ce vecteur par 4 (respectivement en multipliant les valeurs de ce vecteur par 4).
Si aucun des vecteurs n'est présent, on choisit d'utiliser des vecteurs par défaut de valeur [1, 3,10,16] pour un bloc 4 x 4 et [3,10, 36,64] pour un bloc 8 x 8 . Ainsi, chaque valeur par défaut correspond à une zone de fréquence prédéterminée du bloc de coefficients, l'indice de position allant de 1 à 16 pour les blocs 4 x 4 , de 1 à 64 pour les blocs 8 x 8 ).
La figure 6 illustre notamment les bandes de fréquence du vecteur par défaut considéré pour un bloc de taille 4 x 4 . La référence 61 désigne ainsi la position 1 selon le parcours de lecture en zig-zag, la référence 62 illustre la position 3, la référence 63 illustre la position 10, et la position 64 illustre la position 16, définies dans le vecteur [1,3,10,16] .
Dans le cas du mode 3, la variable num_plage_coded indique le nombre de plages ou groupes à décoder à chaque itération. Finalement, dans tous les modes 0 à 3 décrits ci-dessus, si la variable interlaced_sig_ref_flag vaut 1, des plages de signifiance et des plages de raffinement sont décodées à chaque itération. Si en revanche interlaced_sig_ref_flag vaut 0, des plages de signifiance ou des plages de raffinement sont décodées à chaque itération. Dans ce dernier cas, les plages de raffinement ne sont décodées que lorsque toutes les plages de signifiance de l'image ont été décodées.
On présente désormais en relation avec la figure 7 le principe général du procédé de décodage selon l'invention.
On rappelle notamment que le choix de la méthode de décodage est donné par la valeur fgs_coding_mode, présente dans le flux de données, et que le décodeur vient lire.
Comme indiqué précédemment, on distingue selon ce mode de réalisation préférentiel de l'invention quatre modes de décodage des couches de raffinement, se distinguant par le nombre de plages à décoder à chaque itération : - le mode 0 : à chaque itération une plage par bloc est décodée ; le mode 1 : à chaque itération toutes les plages de chaque bloc sont décodées ; le mode 2 : à chaque itération, un nombre de plages est décodé jusqu'à atteindre une position N dans le bloc, N étant fonction de l'itération ; - le mode 3 : à chaque itération, un nombre constant M de plages est décodé.
On introduit tout d'abord quelques notations utilisées dans la suite de la description : iter correspond au nombre d'itérations effectuées au cours du décodage ; completeLumaSig est une valeur booléenne indiquant si tous les groupes de signifiance de tous les blocs de luminance ont été décodés ; completeLumaRef est une valeur booléenne indiquant si tous les groupes de raffinement de tous les blocs de luminance ont été décodés ; completeChromaSig est une valeur booléenne indiquant si tous les groupes de signifiance de tous les blocs de chrominance ont été décodés ; completeChromaRef est une valeur booléenne indiquant si tous les groupes de raffinement de tous les blocs de chrominance ont été décodés ; blnterlacedChroma est une valeur booléenne indiquant si des groupes de bloc de chrominance et de luminance sont décodés lors d'une même itération ; interlaced_sig_ref_flag est une valeur booléenne indiquant si les groupes de signifiance et de raffinement sont entrelacés. Sa valeur est décodée du flux ; completeLumaSigBl(iBloc) est une valeur booléenne indiquant si tous les groupes de signifiance d'un bloc de luminance iBloc ont été décodés ; completeLumaRefBl(iBloc) est une valeur booléenne indiquant si tous les groupes de raffinement d'un bloc de luminance iBloc ont été décodés ; completeChromaSigBl(iBloc) est une valeur booléenne indiquant si tous les groupes de signifiance d'un bloc de chrominance iBloc ont été décodés ; completeChromaRefBl(iBloc) est une valeur booléenne indiquant si tous les groupes de raffinement d'un bloc de chrominance iBloc ont été décodés. Initialisation :
Lors d'une étape 71 d'initialisation, le paramètre iter prend la valeur 0, completeLumaSig prend la valeur FAUX, completeLumaRef prend la valeur
FAUX, completeChromaSig prend la valeur FAUX, completeChromaRef prend la valeur FAUX. Pour tous les blocs iBloc de l'image, completeLumaSigBl(iBloc) prend la valeur FAUX, completeLumaRefBl(iBloc) prend la valeur FAUX, completeChromaSigBl(iBloc) prend la valeur FAUX, completeChromaRefBl(iBloc) prend la valeur FAUX. Parcours des macro blocs :
On parcourt ensuite, au cours d'une étape 72, chaque macro bloc de l'image. Pour chaque macro bloc, on regarde la valeur de la variable completeLumaSig au cours d'une étape 73 « Test completeLumaSig ». Si la variable completeLumaSig vaut FAUX (731), on décode au cours d'une étape 74 la passe de signifiance, pour chaque bloc de luminance du macro bloc et l'on passe ensuite à l'étape 75. Quand la valeur de la variable completeLumaSig passe à VRAI (732), on regarde la valeur de la variable interlaced_sig_ref, au cours d'une étape de test 75 « test interlaced_sig_ref ». Ce test rend VRAI (751) si interlaced_sig_ref vaut VRAI ou si completeLumaSig vaut VRAI, et si completeLumaRef vaut FAUX. Sinon (752) ce test rend FAUX. Si le test interlaced_sig_ref vaut VRAI, on décode au cours d'une étape 76 la passe de raffinement, pour chaque bloc de luminance du macro bloc.
On regarde ensuite la variable blnterlacedChroma, au cours d'une étape de test 77 « test blnterlacedChroma ». Ce test rend VRAI (771) si blnterlacedChroma vaut VRAI, et si iterChroma(iter) rend VRAI, ou si completeLumaSig vaut VRAI et completeLumaRef vaut VRAI. Si le "test blnterlacedChrma" 77 vaut FAUX (772), on passe alors à l'étape 82. Si le « test blnterlacedChroma » 77 vaut VRAI (771), on regarde la valeur de la variable completeChromaSig au cours d'une étape 78 « Test completeChromaSig ». Si completeChromaSig vaut FAUX (781), on décode, pour chaque bloc de chrominance du macro bloc, la passe de signifiance, au cours d'une étape 79.
On teste ensuite de nouveau la variable interlaced_sig_ref au cours d'une étape de test 80. Ce test rend VRAI (801) si interlaced_sig_ref vaut VRAI ou si completeChromaSig vaut VRAI, et si completeChromaRef vaut FAUX. Sinon (802) ce test rend FAUX. Si le test rend VRAI (801), on décode au cours d'une étape 81 la passe de raffinement pour chaque bloc de chrominance du macro bloc, puis on va à l'étape 82.
On teste finalement au cours d'une étape 82 si le macro bloc considéré est le dernier macro bloc de l'image ou de la portion courante de l'image. S'il n'est pas le dernier (821), on réitère (83) sur le macro bloc suivant. Si le macro bloc considéré est le dernier macro bloc de l'image ou de la portion courante de l'image (822), on passe à l'étape 84 de mise à jour de la variable completeSig,Ref. On effectue ensuite le test fin 85.
Mise à jour (84) de la variable completeSig.Ref : L'étape de mise à jour de la variable completeSig,Ref met à jour les variables completeLumaSig, completeLumaRef, completeChromaSig et completeChromaRef.
Plus précisément :
- completeLumaSig prend la valeur VRAI si, pour tous les blocs iBloc de l'image, completeLumaSigBl(iBloc) vaut VRAI. completeLumaRef prend la valeur VRAI si, pour tous les blocs iBloc de l'image, completeLumaRefBl(iBloc) vaut VRAI. completeChromaSig prend la valeur VRAI si, pour tous les blocs iBloc de l'image, completeChromaSigBl(iBloc) vaut VRAI. - completeChromaRef prend la valeur VRAI si, pour tous les blocs iBloc de l'image, completeChromaRefBl(iBloc) vaut VRAI. Test fin (85) :
Le test fin rend VRAI (851) si completeLumaSig vaut VRAI, completeLumaRef vaut VRAI, completeChromaSig vaut VRAI, et si completeChromaRef vaut VRAI. Si le test fin vaut FAUX (852), on passe à l'itération suivante (iter++), sinon le décodage se termine (86). Fonction iterChromadter) :
Cette fonction rend VRAI si les plages de luminance et de chrominance sont entrelacées et si, à l'itération iter, des plages de chrominance doivent être décodées. Cette fonction permet de contrôler l'entrelacement des coefficients de chrominance et de luminance.
Par exemple dans le codeur/décodeur JSVM4, tel que défini dans le document « Joint Scalable Video Model JSVM-4 », Octobre 2005, Nice, JVT- Q202, il est proposé de ne décoder une passe de chrominance que toutes les trois passes de décodage de signifiance, soit iterChroma(iter) vaut VRAI si (iter+offset_iter) modulo 3 vaut 0. Le paramètre offset_iter est un paramètre permettant de définir à quelle itération de codage de luminance sera codée la première itération de codage de chrominance. Décodage des passes de signifiance et de raffinement :
On rappelle tout d'abord que le décodage de groupes correspond : dans le cas d'une passe de signifiance : au décodage de tous les coefficients restant non signifiants positionnés entre le début du bloc (ou juste après un coefficient signifiant) et juste avant le coefficient nouvellement signifiant suivant ; et au décodage du coefficient nouvellement signifiant suivant, dans le cas d'une passe de raffinement : au décodage du raffinement du coefficient déjà signifiant. Le parcours des coefficients est fait dans l'ordre zig-zag. Le décodage des blocs de chrominance et des blocs de luminance est fait de la même manière.
Dans le cas du mode 0, pour chaque bloc, on décode un groupe. Si on est à la fin du bloc, on positionne le paramètre booléen completeCompPassBl du bloc courant à VRAI, où la variable Comp indique Luma si le bloc est un bloc de luminance, ou Chroma si le bloc est un bloc de chrominance, et la variable Pass indique Sig si la passe décodée est une passe de signifiance, et Ref si la passe décodée est une passe de raffinement.
Dans le cas du mode 1, pour chaque bloc, on décode tous les groupes et on positionne completeCompPassBl du bloc courant à VRAI. Dans le cas du mode 2, pour chaque bloc, on définit la position maximale N dans le bloc qui est égale à scanlndex_blkkxk[i], où i est le numéro de l'itération courante et k X k est le type du bloc (4 x 4 ou 8 x 8 pour un bloc de luminance, ou 4 X 4 pour un bloc de chrominance). On décode ensuite des plages tant que la position du dernier coefficient décodé est inférieure à la position N. Si on est à la fin du bloc, on positionne completeCompPassBl du bloc courant à VRAI.
Dans le cas du mode 3, pour chaque bloc, on décode un nombre de groupes égal à num_plage_coded (num_plage_coded = M). Si on est à la fin du bloc, on positionne completeCompPassBl du bloc courant à VRAI.
On présente désormais, en relation avec la figure 8, la structure matérielle d'un dispositif de codage d'une image ou d'une séquence d'images mettant en œuvre la méthode de codage décrite ci-dessus.
Un tel dispositif de codage comprend une mémoire M 87, une unité de traitement P 88, équipée par exemple d'un microprocesseur μP, et pilotée par le programme d'ordinateur Pg 89. A l'initialisation, les instructions de code du programme d'ordinateur Pg 89 sont par exemple chargées dans une mémoire
RAM avant d'être exécutées par le processeur de l'unité de traitement P 88.
L'unité de traitement P 88 reçoit en entrée des composantes d'entrée vidéo 41 (image, séquences d'images, ou portion d'image). Le microprocesseur μP de l'unité de traitement 88 met en œuvre les étapes du procédé de codage décrit précédemment en relation avec la figure 4, selon les instructions du programme
Pg 89. L'unité de traitement 88 délivre en sortie un flux de données codées 47.
La figure 9 illustre la structure matérielle d'un dispositif de décodage d'un flux de données codées, généré par exemple par le dispositif de codage de la figure 8.
Un tel dispositif de décodage comprend une mémoire M 90, une unité de traitement P 91, équipée par exemple d'un microprocesseur μP, et pilotée par le programme d'ordinateur Pg 92. A l'initialisation, les instructions de code du programme d'ordinateur 92 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 91. L'unité de traitement 91 reçoit en entrée un flux de données codées 93 à décoder. Le microprocesseur μP de l'unité de traitement 91 met en œuvre les étapes du procédé de décodage décrit précédemment en relation avec la figure 7, selon les instructions du programme Pg 92. L'unité de traitement 91 délivre en sortie des composantes vidéo 94 (image, séquences d'images, ou portion d'image) décodées.
ANNEXE A
Figure imgf000037_0001
Figure imgf000038_0001
Figure imgf000039_0001

Claims

REVENDICATIONS
1. Procédé de codage d'une image ou d'une séquence d'images, générant un flux de données, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé comprenant un ensemble de coefficients, lesdits coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé desdits blocs transformés, caractérisé en ce qu'il comprend, pour chacun desdits blocs transformés : une étape de codage d'une série de coefficients correspondant à au moins un groupe de coefficients, ladite série étant déterminée en fonction d'un type de série de coefficients sélectionné parmi au moins deux types possibles, dont : un premier type de série selon lequel ladite série de coefficients comprend un nombre M prédéterminé de groupes de coefficients, - un deuxième type de série selon lequel une position maximale N prédéterminée dans ledit parcours étant identifiée, ladite série comprend le groupe comprenant ladite position maximale N, et tous les groupes précédents selon ledit parcours, s'il y en a, et une étape d'insertion dans ledit flux de données d'une information représentative dudit type de série de coefficients sélectionné pour ladite image ou séquence d'images, ou pour une portion de ladite image.
2. Procédé de codage selon la revendication 1, caractérisé en ce que ledit flux de données présente une structure hiérarchique en couches de données emboîtées de niveaux de raffinement successifs, et en ce que ledit procédé met en œuvre un codage itératif, chacune des itérations correspondant à un desdits niveaux, et mettant en œuvre ladite étape de codage.
3. Procédé de codage selon la revendication 2, caractérisé en ce que, pour ledit deuxième type de série : lorsque ladite série comprenant ledit groupe comprenant ladite position maximale N a été codée à une itération précédente, ladite série est vide, lorsque ladite série comprenant ledit groupe comprenant ladite position maximale N n'a pas été codée à une itération précédente, ladite série comprend le groupe comprenant ladite position maximale prédéterminée et tous les groupes précédents selon ledit parcours n'appartenant pas à une série déjà codée à une itération précédente, s'il y en a.
4. Procédé de codage selon l'une quelconque des revendications 2 et 3, caractérisé en ce que chacune desdites itérations met en œuvre au moins l'une des passes suivantes : une passe de signifiance, - une passe de raffinement, ladite étape de codage s 'appliquant à la ou auxdites passes mises en œuvre, et en ce qu'un paramètre indiquant le type de la ou desdites passes mises en œuvre accompagne ladite information représentative dudit type de série de coefficients.
5. Procédé de codage selon la revendication 4, caractérisé en ce que lorsque ladite passe est une passe de signifiance, ledit critère de groupement prédéterminé définit un groupe comme un ensemble de coefficients successifs non signifiants, et se terminant par le premier coefficient signifiant rencontré selon ledit parcours de lecture, et lorsque ladite passe est une passe de raffinement, ledit critère de groupement prédéterminé définit un groupe comme un unique coefficient signifiant.
6. Procédé de codage selon l'une quelconque des revendications 2 à 5, caractérisé en ce que ladite information représentative dudit type de série de coefficients est accompagnée d'une information de mise en œuvre, comprenant un vecteur définissant la valeur dudit nombre M ou de ladite position N pour chaque itération.
7. Procédé de codage selon l'une quelconque des revendications 1 à 6, caractérisé en ce qu'une image source est décomposée en au moins deux composantes à coder, et en ce que ledit codage est appliqué à chacune desdites composantes.
8. Dispositif de codage d'une image ou d'une séquence d'images, générant un flux de données, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé comprenant un ensemble de coefficients, lesdits coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé desdits blocs transformés, caractérisé en ce qu'il comprend : des moyens de codage d'une série de coefficients correspondant à au moins un groupe de coefficients, ladite série étant déterminée en fonction d'un type de série de coefficients sélectionné parmi au moins deux types possibles, dont : un premier type de série selon lequel ladite série de coefficients comprend un nombre M prédéterminé de groupes de coefficients, un deuxième type de série selon lequel une position maximale N prédéterminée dans ledit parcours étant identifiée, ladite série comprend le groupe comprenant ladite position maximale N, et tous les groupes précédents selon ledit parcours, s'il y en a, et des moyens d'insertion dans ledit flux de données d'une information représentative dudit type de série de coefficients sélectionné pour ladite image ou séquence d'images, ou pour une portion de ladite image.
9. Dispositif de codage selon la revendication 8, caractérisé en ce que, ledit flux de données présentant une structure hiérarchique en couches de données emboîtées de niveaux de raffinement successifs, les moyens de codage mettent en œuvre un codage itératif, chacune des itérations correspondant à un desdits niveaux, et ce que pour ledit deuxième type de série : lorsque ladite série comprenant ledit groupe comprenant ladite position maximale N a été codée à une itération précédente, ladite série est vide, lorsque ladite série comprenant ledit groupe comprenant ladite position maximale N n'a pas été codée à une itération précédente, ladite série comprend le groupe comprenant ladite position maximale prédéterminée et tous les groupes précédents selon ledit parcours n'appartenant pas à une série déjà codée à une itération précédente, s'il y en a.
10. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en œuvre du procédé de codage de l'une au moins des revendications 1 à 7.
11. Procédé de décodage d'un flux de données représentatif d'une image ou d'une séquence d'images, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé comprenant un ensemble de coefficients, lesdits coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé desdits blocs transformés, caractérisé en ce qu'il comprend : une étape de lecture d'un type de série de coefficients appliqué à ladite image ou séquence d'images, ou à une portion de ladite image, parmi au moins deux types possibles, dont : - un premier type de série selon lequel ladite série de coefficients comprend un nombre M prédéterminé de groupes de coefficients, un deuxième type de série selon lequel une position maximale N prédéterminée dans ledit parcours étant identifiée, ladite série comprend le groupe comprenant ladite position maximale N, et tous les groupes précédents selon ledit parcours, s'il y en a, et une étape de décodage prenant en compte, pour chaque bloc transformé, une série de coefficients selon le type de série de coefficients délivré par ladite étape de lecture.
12. Procédé de décodage selon la revendication 11, caractérisé en ce que ledit flux de données présente une structure hiérarchique en couches de données emboîtées de niveaux de raffinement successifs, ledit flux ayant subi un codage itératif, chacune des itérations correspondant à un desdits niveaux, et en ce que, pour ledit deuxième type de série : lorsque ladite série comprenant ledit groupe comprenant ladite position maximale N a été codée à une itération précédente, ladite série est vide, lorsque ladite série comprenant ledit groupe comprenant ladite position maximale N n'a pas été codée à une itération précédente, ladite série comprend le groupe comprenant ladite position maximale prédéterminée, et tous les groupes précédents selon ledit parcours n'appartenant pas à une série déjà codée à une itération précédente, s'il y en a.
13. Dispositif de décodage d'un flux de données représentatif d'une image ou d'une séquence d'images, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé comprenant un ensemble de coefficients, lesdits coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé desdits blocs transformés, caractérisé en ce qu'il comprend : des moyens de lecture d'un type de série de coefficients appliqué à ladite image ou séquence d'images, ou à une portion de ladite image, parmi au moins deux types possibles, dont : un premier type de série selon lequel ladite série de coefficients comprend un nombre M prédéterminé de groupes de coefficients, - un deuxième type de série selon lequel une position maximale N prédéterminée dans ledit parcours étant identifiée, ladite série comprend le groupe comprenant ladite position maximale N, et tous les groupes précédents selon ledit parcours, s'il y en a, et des moyens de décodage prenant en compte, pour chaque bloc transformé, une série de coefficients selon le type de série de coefficients délivré par ladite étape de lecture.
14. Dispositif de décodage selon la revendication 13, caractérisé en ce que ledit flux de données présente une structure hiérarchique en couches de données emboîtées de niveaux de raffinement successifs, ledit flux ayant subi un codage itératif, chacune des itérations correspondant à un desdits niveaux, et en ce que, pour ledit deuxième type de série : lorsque ladite série comprenant ledit groupe comprenant ladite position maximale N a été codée à une itération précédente, ladite série est vide, lorsque ladite série comprenant ledit groupe comprenant ladite position maximale N n'a pas été codée à une itération précédente, ladite série comprend le groupe comprenant ladite position maximale prédéterminée, et tous les groupes précédents selon ledit parcours n'appartenant pas à une série déjà codée à une itération précédente, s'il y en a.
15. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en œuvre du procédé de décodage de l'une au moins des revendications 11 et 12.
16. Signal représentatif d'un flux de données représentatif d'une image ou d'une séquence d'images, chaque image étant découpée en au moins deux blocs d'image à chacun desquels est associé un bloc transformé comprenant un ensemble de coefficients, lesdits coefficients d'un bloc transformé étant répartis en groupe(s) de coefficients selon un critère de groupement prédéterminé et un parcours de lecture prédéterminé desdits blocs transformés, caractérisé en ce qu'il porte une information représentative d'un type de série de coefficients appliqué à ladite image ou séquence d'images, ou à une portion de ladite image, parmi au moins deux types possibles, dont : - un premier type de série selon lequel ladite série de coefficients comprend un nombre M prédéterminé de groupes de coefficients, un deuxième type de série selon lequel une position maximale N prédéterminée dans ledit parcours étant identifiée, ladite série comprend le groupe comprenant ladite position maximale N, et tous les groupes précédents selon ledit parcours, s'il y en a.
17. Signal selon la revendication 16, caractérisé en ce que ledit flux de données présente une structure hiérarchique en couches de données emboîtées de niveaux de raffinement successifs, ledit flux ayant subi un codage itératif, chacune des itérations correspondant à un desdits niveaux, et en ce que, pour ledit deuxième type de série : lorsque ladite série comprenant ledit groupe comprenant ladite position maximale N a été codée à une itération précédente, ladite série est vide, lorsque ladite série comprenant ledit groupe comprenant ladite position maximale N n'a pas été codée à une itération précédente, ladite série comprend le groupe comprenant ladite position maximale prédéterminée, et tous les groupes précédents selon ledit parcours n'appartenant pas à une série déjà codée à une itération précédente, s'il y en a.
PCT/EP2006/070210 2006-01-06 2006-12-26 Procede de codage et de decodage d'une image ou d'une sequence d'images, dispositifs, programmes d'ordinateur, et signal correspondants WO2007077178A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008548987A JP2009522891A (ja) 2006-01-06 2006-12-26 1つの画像または一連の画像を符号化し、また復号する方法、対応する装置、コンピュータプログラムおよび信号
BRPI0620906-8A BRPI0620906A2 (pt) 2006-01-06 2006-12-26 métodos para codificar e decodificar uma imagem ou uma seqüência de imagens, e dispositivo, programa de computador e sinal correspondentes
EP06841621A EP1969854A1 (fr) 2006-01-06 2006-12-26 Procede de codage et de decodage d'une image ou d'une sequence d'images, dispositifs, programmes d'ordinateur, et signal correspondants
US12/159,958 US20090219988A1 (en) 2006-01-06 2006-12-26 Methods of encoding and decoding an image or a sequence of images, corresponding devices, computer program and signal

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR06/00139 2006-01-06
FR0600139A FR2896117A1 (fr) 2006-01-06 2006-01-06 Procedes de codage et de decodage d'une sequence d'images, dispositifs , programmes d'ordinateur, et signal correspondants

Publications (1)

Publication Number Publication Date
WO2007077178A1 true WO2007077178A1 (fr) 2007-07-12

Family

ID=36942384

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2006/070210 WO2007077178A1 (fr) 2006-01-06 2006-12-26 Procede de codage et de decodage d'une image ou d'une sequence d'images, dispositifs, programmes d'ordinateur, et signal correspondants

Country Status (9)

Country Link
US (1) US20090219988A1 (fr)
EP (1) EP1969854A1 (fr)
JP (1) JP2009522891A (fr)
KR (1) KR20080092940A (fr)
CN (1) CN101356821A (fr)
BR (1) BRPI0620906A2 (fr)
FR (1) FR2896117A1 (fr)
RU (1) RU2008129892A (fr)
WO (1) WO2007077178A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2493669C1 (ru) * 2009-10-28 2013-09-20 Самсунг Электроникс Ко., Лтд. Способ и устройство для кодирования остаточного блока, способ и устройство для декодирования остаточного блока

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BRPI0714127A2 (pt) * 2006-07-13 2012-12-25 Qualcomm Inc codificaÇço de vÍdeo com escalabilidade de granularidade fina utilizando fragmentos alinhados por ciclo.
EP2123052B1 (fr) * 2007-01-18 2010-11-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Flux de donnees video a qualite echelonnable
FR2931025B1 (fr) * 2008-05-07 2010-05-21 Canon Kk Procede de determination d'attributs de priorite associes a des conteneurs de donnees, par exemple dans un flux video, procede de codage, programme d'ordinateur et dispositifs associes
KR20110112168A (ko) * 2010-04-05 2011-10-12 삼성전자주식회사 내부 비트뎁스 확장에 기반한 비디오 부호화 방법 및 그 장치, 내부 비트뎁스 확장에 기반한 비디오 복호화 방법 및 그 장치
BR112013007205A2 (pt) * 2010-09-30 2020-10-06 Samsung Electronics Co., Ltd método de codificação de vídeo para codificar símbolos tendo uma estrutura hierárquica, método de decodificação de vídeo para decodificar símbolos tendo uma estrutura hierárquica, aparelho de codificação
CA2915359C (fr) * 2013-06-14 2018-09-04 Arris Technology, Inc. Re-echantillonnage de filtres pour codage video evolutif
AU2020312302B2 (en) * 2019-07-12 2023-08-17 Lg Electronics Inc. Method and apparatus for coding image on basis of transform

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5674912A (en) * 1991-03-01 1997-10-07 Warner-Lambert Company Sunscreen-wound healing compositions and methods for preparing and using same
NO175080B (no) * 1992-03-11 1994-05-16 Teledirektoratets Forskningsav Fremgangsmåte for koding av bildedata
EP0884045A1 (fr) * 1997-06-06 1998-12-16 Pfizer Products Inc. Formulations autobronzantes de dihydroxyacetone à stabilité améliorée et conférant une administration accrue
US6048533A (en) * 1997-06-30 2000-04-11 Nguyen; Van Bich Turmeric for treating health ailments
US5897865A (en) * 1997-06-30 1999-04-27 Nguyen; Van Bich Turmeric for treating skin disorders
DE69808790T3 (de) * 1997-09-12 2009-07-16 The Procter & Gamble Co., Cincinnati Hautreinigungs- und konditionierungsartikel für haut und haar
US6074630A (en) * 1999-11-23 2000-06-13 Devillez; Richard L. Delivery system for suncare products
US6826232B2 (en) * 1999-12-20 2004-11-30 Koninklijke Philips Electronics N.V. Fine granular scalable video with embedded DCT coding of the enhancement layer
US6950558B2 (en) * 2001-03-30 2005-09-27 Ricoh Co., Ltd. Method and apparatus for block sequential processing
US20030113388A1 (en) * 2001-12-13 2003-06-19 Dung Phan Methods of treatment for skin disorders using turmeric extract and a hydroxy acid
WO2003077566A1 (fr) * 2002-03-07 2003-09-18 Aware, Inc. Codage de bits de signe entrelaces
US6875426B2 (en) * 2002-03-28 2005-04-05 L'oreal Self-tanning composition containing a tetrahydrocurcuminoid and a self-tanning agent
JP4105578B2 (ja) * 2003-03-28 2008-06-25 株式会社リコー 画像圧縮装置
US20050084551A1 (en) * 2003-09-26 2005-04-21 Jensen Claude J. Morinda citrifolia-based oral care compositions and methods
US7205011B2 (en) * 2003-11-14 2007-04-17 Board Of Regents, Acting For And On Behalf Of, University Of Arizona Anti-inflammatory activity of a specific turmeric extract
JP4768728B2 (ja) * 2004-05-13 2011-09-07 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 値のブロックをエンコードする方法および装置
US7471841B2 (en) * 2004-06-15 2008-12-30 Cisco Technology, Inc. Adaptive breakpoint for hybrid variable length coding
US7454073B2 (en) * 2004-06-15 2008-11-18 Cisco Technology, Inc. Video compression using multiple variable length coding processes for multiple classes of transform coefficient blocks
WO2006016029A1 (fr) * 2004-07-13 2006-02-16 France Telecom Procede et dispositif de codage d’une sequence d’images video en coefficients de sous-bandes de frequence de differentes resolutions spatiales
EP1908298A4 (fr) * 2005-07-21 2010-12-29 Nokia Corp Codes a longueur variable pour codage video adaptable
EP2052545B1 (fr) * 2006-07-10 2013-10-02 Orange Dispositif et procede de codage et de decodage echelonnables de flux de donnees d'images, signal et programme d'ordinateur correspondants
KR100809301B1 (ko) * 2006-07-20 2008-03-04 삼성전자주식회사 엔트로피 부호화/복호화 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PURI A ET AL: "Video coding using the H.264/MPEG-4 AVC compression standard", SIGNAL PROCESSING. IMAGE COMMUNICATION, ELSEVIER SCIENCE PUBLISHERS, AMSTERDAM, NL, vol. 19, no. 9, October 2004 (2004-10-01), pages 793 - 849, XP004607150, ISSN: 0923-5965 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2493669C1 (ru) * 2009-10-28 2013-09-20 Самсунг Электроникс Ко., Лтд. Способ и устройство для кодирования остаточного блока, способ и устройство для декодирования остаточного блока
US8811479B2 (en) 2009-10-28 2014-08-19 Samsung Electronics Co., Ltd. Method and apparatus for encoding residual block, and method and apparatus for decoding residual block
US10136149B2 (en) 2009-10-28 2018-11-20 Samsung Electronics Co., Ltd. Method and apparatus for encoding residual block, and method and apparatus for decoding residual block
US10154273B2 (en) 2009-10-28 2018-12-11 Samsung Electronics Co., Ltd. Method and apparatus for encoding residual block, and method and apparatus for decoding residual block
US10171826B2 (en) 2009-10-28 2019-01-01 Samsung Electronics Co., Ltd. Method and apparatus for encoding residual block, and method and apparatus for decoding residual block
US10178401B2 (en) 2009-10-28 2019-01-08 Samsung Electronics Co., Ltd. Method and apparatus for encoding residual block, and method and apparatus for decoding residual block
US10257530B2 (en) 2009-10-28 2019-04-09 Samsung Electronics Co., Ltd. Method and apparatus for encoding residual block, and method and apparatus for decoding residual block

Also Published As

Publication number Publication date
KR20080092940A (ko) 2008-10-16
RU2008129892A (ru) 2010-02-20
FR2896117A1 (fr) 2007-07-13
US20090219988A1 (en) 2009-09-03
CN101356821A (zh) 2009-01-28
JP2009522891A (ja) 2009-06-11
BRPI0620906A2 (pt) 2011-11-29
EP1969854A1 (fr) 2008-09-17

Similar Documents

Publication Publication Date Title
EP1839442B1 (fr) Dispositifs et procedes de codage et de decodage echelonnables de flux de donnees d'images, signal, programme d'ordinateur et module d'adaptation de qualite d'image correspondants
EP1969854A1 (fr) Procede de codage et de decodage d'une image ou d'une sequence d'images, dispositifs, programmes d'ordinateur, et signal correspondants
US7062096B2 (en) Apparatus and method for performing bitplane coding with reordering in a fine granularity scalability coding system
EP1721470B1 (fr) Procede de codage et de decodage d'une sequence d'images par analyse temporelle hierarchique
FR2931610A1 (fr) Procede et un dispositif de transmission de donnees d'images
EP2052545B1 (fr) Dispositif et procede de codage et de decodage echelonnables de flux de donnees d'images, signal et programme d'ordinateur correspondants
FR2903556A1 (fr) Procedes et des dispositifs de codage et de decodage d'images, un systeme de telecommunications comportant de tels dispositifs et des programmes d'ordinateur mettant en oeuvre de tels procedes
FR2939593A1 (fr) Procede et dispositif de codage video
WO2010043811A1 (fr) Procede et dispositif de codage d'une sequence d'image mettant en oeuvre des blocs de taille differente, signal, support de donnees, procede et dispositif de decodage, et programmes d'ordinateur correspondants
EP2011340A2 (fr) Procede et dispositif de codage de donnees en un flux scalable
FR2854019A1 (fr) Embrouillage, desembrouillage et distribution securisee de sequences audiovisuelles issues de codeurs videos bases sur un traitement par ondelettes
WO2002060184A1 (fr) Procede de codage et de decodage d'images, dispositifs et applications 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
EP1600003B1 (fr) Procede de codage d'une image video prenant en compte la parite relative a une composante du vecteur de mouvement
FR2768003A1 (fr) Procede de codage d'un signal de forme binaire
EP1181668B1 (fr) Procede de codage/decodage d'images
WO2012056148A1 (fr) Codage video echelonnable a partir d'un epitome hierarchique
FR2956789A1 (fr) Procede et dispositif de traitement d'une sequence video
EP3918798A1 (fr) Procédé et dispositif de codage et de décodage de données correspondant à une séquence vidéo
FR2911233A1 (fr) Procedes et dispositifs de codage et de decodage d'un flux d de donnees scalable tenant compte d'une classe de scalabilite, produits programme d'ordinateur, signal et support de donnees correspondants.
FR2891966A1 (fr) Dispositifs et procedes de codage et de decodage echelonnables de flux de donnees d'images, signal, programme d'ordinateur et module d'adaptation de qualite d'images correspondants
Trocan Décompositions spatio-temporelles et allocation de débit utilisant les coupures des graphes pour le codage vidéo scalable
EP3815366A1 (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
FR2903554A1 (fr) Dispositif et procede de codage et de decodage echelonnables de flux de donnees d'images, signal et programme d'ordinateur correspondants.
FR2903555A1 (fr) Dispositif et procede de codage et de decodage echelonnables de flux de donnees d'images, signal et programme d'ordinateur correspondants.

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006841621

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 3270/CHENP/2008

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 200680050461.3

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2008548987

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2008129892

Country of ref document: RU

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1020087019294

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2006841621

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 12159958

Country of ref document: US

ENP Entry into the national phase

Ref document number: PI0620906

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20080704