WO2004100557A2 - Procede et dispositif de codage ou decodage d’image avec parallelisation du traitement sur une pluralite de processeurs, programme d’ordinateur et signal de synchronisation correspondants - Google Patents

Procede et dispositif de codage ou decodage d’image avec parallelisation du traitement sur une pluralite de processeurs, programme d’ordinateur et signal de synchronisation correspondants Download PDF

Info

Publication number
WO2004100557A2
WO2004100557A2 PCT/FR2004/001106 FR2004001106W WO2004100557A2 WO 2004100557 A2 WO2004100557 A2 WO 2004100557A2 FR 2004001106 W FR2004001106 W FR 2004001106W WO 2004100557 A2 WO2004100557 A2 WO 2004100557A2
Authority
WO
WIPO (PCT)
Prior art keywords
macro
processing
block
blocks
processor
Prior art date
Application number
PCT/FR2004/001106
Other languages
English (en)
Other versions
WO2004100557A3 (fr
Inventor
Matthieu Muller
Mickaël ROPERT
Alex Macaulay
Erwan Le Bras
Original Assignee
Envivio France
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 Envivio France filed Critical Envivio France
Priority to US10/555,498 priority Critical patent/US7885334B2/en
Publication of WO2004100557A2 publication Critical patent/WO2004100557A2/fr
Publication of WO2004100557A3 publication Critical patent/WO2004100557A3/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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 coding / decoding digital images.
  • a digital image comprises macro-blocks distributed in rows and columns.
  • Each line (or horizontal row) of the image comprises for example macro-blocks of 16 ⁇ 16 pixels.
  • a macro-block is organized into four luminance blocks and into two, four or eight chrominance blocks depending on the type of sampling.
  • the coding or decoding of an image consists in processing all of its macro-blocks, sequentially line by line, from left to right on the same line, and from top to bottom from one line to another.
  • the invention applies in particular, but not exclusively, to the coding or decoding of a video sequence formed from successive images.
  • the coding or decoding technique is implemented in a video compression or decompression algorithm. It then conforms to a compression / decompression standard such as (this list is not exhaustive): the H.263 standard, defined in the standardization document "ITU-T H.263"; - the H.263 + standard, defined in the standardization document “ITU-T
  • H.263 + H.264 standard (also called H.26L or MPEG-4 AVC): defined in the standardization document "ISO MPEG-4 Part 10"
  • MPEG-4 Video standard defined in the standardization document "ISO MPEG-4 Part 2".
  • the present invention can be applied in all cases where there is a context of spatial dependence for the processing of macro-blocks of an image.
  • FIG. 1 illustrates the context of spatial dependence as defined in these standards.
  • This known technique is used in the field of video compression, either according to a global approach, or according to a fine approach.
  • the global approach consists in distributing macro-tasks on each of the processors. For example, we suppose that the coding of an image requires the execution of three tasks A, B and C which must imperatively be ordered as follows: A then B then C. We can then imagine that to best distribute the tasks A , B and C on two processors, we create two execution units (or "thread" in English) Tl and T2,
  • Tl managing only tasks A and B T2 managing only task C.
  • This parallelization can therefore only be done if Tl can work on image N while T2 works on image Nl, N being the number of the image from a video sequence. It can be seen that this distribution is only optimal if the load used by tasks A and B is substantially equivalent to that used by task C (iso-distribution of charges between processors).
  • a disadvantage of the parallelization technique according to the global approach is that the iso-distribution of the charges between processors is almost never verified in practice. In other words, it is very difficult, if not impossible in some cases, to find a perfect balance by separating entire tasks from one another.
  • Another drawback of the parallelization technique according to the global approach is that it requires a particular implementation of the calling program, with the implementation of a stacking mechanism.
  • the fine approach consists in separating each task into as many elementary tasks which can be executed in parallel by several processors, when possible.
  • the fine approach consists in separating each task into as many elementary tasks which can be executed in parallel by several processors, when possible.
  • N horizontal bands
  • the different threads do not have to be synchronized with each other. They simply need to notify a main thread when they have completed their processing. This gives a very fair distribution of loads between processors.
  • the object of the invention is in particular to overcome these various drawbacks of the state of the art.
  • one of the objectives of the present invention is to provide a coding or decoding method and device making it possible to optimize the computation times, while being able to be implemented in a context of spatial dependence as discussed above. -above.
  • the invention also aims to provide such a method and device, the implementation of which is independent of any hardware as well as software architecture.
  • the method comprises a step of parallelizing the processing of macro-blocks on N processors, N> 2, comprising the following steps: separation of the image:
  • N horizontal bands each comprising a plurality of columns and at least one row of macro-blocks, if the processing of the macro-blocks is carried out sequentially column by column; processing by each processor of one of the N bands; - synchronization of the processing carried out by the N processors.
  • the general principle of the invention therefore consists in performing a parallelization according to the fine approach, but by separating the image into bands perpendicular (and not parallel) to the direction of sequential processing of the macro-blocks. This makes it possible to obtain an optimal distribution of the loads between processors.
  • the processing of macro-blocks is carried out sequentially line by line (classic case of a direction of sequential processing which is horizontal, along a line), the image is separated into vertical bands.
  • the processing of the macro-blocks is carried out sequentially column by column (case not classic today but possible in the future of a direction of sequential processing which is vertical, according to a column), the image is separated into horizontal bands.
  • the synchronization of the processing carried out by the N processors allows the implementation of the aforementioned general principle in a context of spatial dependence. Indeed, this synchronization makes it possible to avoid a processor trying to process a given macroblock while other macroblocks on which this given macroblock depends have not yet been processed.
  • processors for example two, four, eight, etc.
  • the synchronization of the treatments carried out by the N processors consists, for each processor of each pair of processors which process two adjacent bands, in: informing the other processor of said pair of each end of processing of a macro-block on which depends a dependent macro-block included in the band processed by said other processor; verifying, before processing a dependent macro-block, that said at least one other macro-block on which the dependent macro-block depends has previously been processed by said processor or said other processor.
  • the processors exchange synchronization signals (system messages) by means of which they inform each other of the macro-blocks that they have processed.
  • said image belongs to the group comprising: images of video sequences formed of successive images; still images.
  • the processing of macroblocks is carried out sequentially line by line, from left to right on the same line and from top to bottom from one line to another.
  • the processing of each dependent macro-block requires the prior processing, when it exists, of at least the macro-block situated to the left of said dependent macro-block.
  • the processor which processes the left vertical band informs the other processor of each end of macro-block processing of the right end of one of the macro lines. -blocks of said left vertical strip.
  • the processing of each dependent macro-block requires the prior processing, when it exists, of at least the macro-block situated above and to the right of said dependent macro-block.
  • the processor which processes the right vertical band informs the other processor of each end of processing of the macro-block of the left end of one of the macro lines. -blocks of said right vertical strip.
  • MB D from a line in the left vertical strip.
  • the invention offers an optimal solution to the classic context of spatial dependence (see discussion above, in relation to Figure 1). It will be noted that the end of the processing of the top macro-block (MB H ) does not require any synchronization information since it is included in the same vertical band as the macro-block (MB) which depends on it (and macro- left and right blocks (MB G , MB D )).
  • the coding or decoding conforms to a standard belonging to the group comprising: H.263, H.263 +, H264 and MPEG-4 Video. This list is not exhaustive.
  • the invention also relates to a computer program comprising program code instructions for executing the steps of the above method, when said program is executed on a computer.
  • the invention also relates to a device for coding or decoding an image comprising macro-blocks distributed in rows and columns, the processing of at least one given macro-block, called dependent macro-block, requiring the prior processing of '' at least one other macro-block on which said dependent macro-block depends, the processing of macro-blocks being carried out sequentially line by line, or column by column, said device comprising N processors, N> 2, and means for parallelizing the macro-block processing on said N processors, said processing parallelization means comprising: image separation means: * in N vertical bands each comprising a plurality of lines and at least one column of macro-blocks, if the processing of macro-blocks is carried out sequentially line by line;
  • N horizontal bands each comprising a plurality of columns and at least one row of macro-blocks, if the processing of the macro-blocks is carried out sequentially column by column; in each processor, means for processing one of the N bands; means for synchronizing the processing carried out by the N processors.
  • the invention also relates to a synchronization signal transmitted from a first to a second processor of a pair of processors which process two adjacent bands of an image, said image comprising macro-blocks distributed in rows and columns and being separated: in N vertical bands each comprising a plurality of lines and at least one column of macro-blocks, if the processing of the macro-blocks is carried out sequentially line by line; in N horizontal bands each comprising a plurality of columns and at least one row of macro-blocks, if the processing of macro-blocks is carried out sequentially column by column, the processing of at least one given macro-block, called macro-block dependent, requiring the prior processing of at least one other macro-block on which said dependent macro-block depends, said first and second processors belonging to a set of N processors each processing in parallel one of the bands of the image, with a view to coding or decoding of the image, said synchronization signal comprising information by which said first processor indicates to the second processor an end of processing by the first processor of a macro-block on which
  • FIG. 1 illustrates the classic context of spatial dependence for the processing of a macro-block of an image
  • FIG. 2 shows an example of an image separated into vertical bands, making it possible to explain a particular embodiment of the method according to the invention.
  • the invention therefore relates to a method of coding or decoding an image comprising a step of parallelizing the processing of macroblocks on N processors.
  • the method according to the invention in view of the aforementioned hypotheses, consists in: separating the image into N vertical bands each comprising a plurality of lines and at least one column of macro-blocks; entrusting the processing of each of these N bands to a separate processor; synchronize the processing carried out by the N processors, to prevent a processor from trying to access (for the purpose of processing a macroblock of the vertical strip which it processes) to another macroblock (of another vertical strip processed by another processor) that has not yet been processed.
  • FIG. 2 a particular embodiment of the method according to the invention. As illustrated in FIG. 2, an image 20 comprising 6 lines and 16 columns is considered by way of example. Each line therefore comprises 16 macro-blocks.
  • the first line includes the macro-blocks MB0 to MB15, the second the macro-blocks MB16 to MB31, etc.
  • processors are therefore used, each processing one of these four vertical bands.
  • processors PI to P4 the numbering of the processors corresponding to the numbering of the bands they process).
  • the processor PI starts and processes (that is to say calculates the information on) the macro-blocks MB0, MB1, MB2 and MB3; - when the macro-block MB3 has been processed, the processor PI informs the processor P2 thereof by a synchronization message, that is to say signals to the processor P2 that it can start and process the macro-block MB4.
  • the macro-block MB 3 is the left macro-block MB G with respect to the macro-block MB4; - in parallel, the PI and P2 processors carry out processing: the PI processor processes the macro-blocks MB16, MB17 and MB18, and the P2 processor processes the macro-blocks MB4, MB5, MB6 and MB7; when the macro-block MB4 has been processed, the processor P2 informs the processor PI thereof, by a synchronization message; - When the processor PI is preparing to process the macro-block MB 19, it verifies that the macro-block MB4 has been processed by the processor P2. Indeed, the macro- block MB4 is the top macro-block on the right MB D relative to the macroblock MB 19.
  • the processor PI has already processed the left macroblock MB G (here MB 18) and the top macro-block MB H (here MB3) compared to the macro-block MB4. If the macro-block MB4 has been processed by the processor P2, the processor PI processes the macro-block MB 19; when the macro-block MB 19 has been processed, the processor PI informs the processor P2 thereof by a synchronization message, that is to say signals to the processor P2 that the latter can start the second line of the vertical strip B2 and process the macro-block MB 20.
  • the macro-block MB 19 is the left macro-block MB G with respect to the macro-block MB20.
  • the processor P2 has itself already processed the top macro-block MB H (here MB4) and the top right macro-block MB D (here MB5) with respect to the macro-block MB 20; when the macro-block MB7 has been processed, the processor P2 informs the processor P3 thereof by a synchronization message, that is to say signals to the processor P3 that the latter can start and process the macro-block MB 8.
  • the macro-block MB7 is the left macro-block MB G with respect to the macro-block MB 8; in parallel, the processors PI, P2 and P3 carry out processing: the processor PI processes the macro-blocks MB31, MB32 and MB33, the processor
  • the processor P2 processes the macro-blocks MB20, MB21 and MB22
  • the processor P3 processes the macro-blocks MB8, MB9, MB 10 and MB 11; and so on until all the macroblocks of all the vertical bands Bl to B4 have been processed by the processors PI to P4.
  • the principle of synchronization of the processing carried out by the processors is based on the use of synchronization messages (system messages). In the example above, there are three synchronization points (one between each pair of processors (Pk, Pk + 1) processing two adjacent vertical bands): one between the processors PI and P2, one between the processors P2 and P3 and one between the processors P3 and P4.
  • the processor PI must ensure that the condition "first macro-block MB4 of the first line of the band B2 has been processed ”has been filled by the P2 processor; at each start of row of row i of the band Bk + 1, the processor Pk + 1 must ensure that the condition “last macro-block of the row of row i of the band Bk has been processed” has been fulfilled by the Pk processor.
  • the processor P2 at the start of the first line of strip B2 (for processing the macroblock MB4), the processor P2 must ensure that the condition "last macro-block MB3 of the first line of strip Bl has been processed" has been filled by the PI processor.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

L'invention concerne un procédé de codage ou décodage d'une image comprenant des macro-blocs répartis en lignes et en colonnes, le traitement d'au moins un macro-bloc donné, dit macro-bloc dépendant, nécessitant le traitement préalable d'au moins un autre macro-bloc dont dépend le macro-bloc dépendant, le traitement des macro-blocs étant effectué séquentiellement ligne par ligne, ou colonne par colonne. Selon l'invention, le procédé comprend une étape de parallélisation du traitement des macro-blocs sur N processeurs, N > 2, comprenant les étapes suivantes : séparation de l'image en N bandes verticales comprenant chacune une pluralité de lignes et au moins une colonne de macro-blocs, si le traitement des macro-blocs est effectué séquentiellement ligne par ligne, en N bandes horizontales comprenant chacune une pluralité de colonnes et au moins une ligne de macro-blocs, si le traitement des macro­blocs est effectué séquentiellement colonne par colonne ; traitement par chaque processeur de l'une des N bandes ; synchronisation des traitements effectués par les N processeurs.

Description

Procédé et dispositif de codage ou décodage d'image avec parallélisation du traitement sur une pluralité de processeurs, programme d'ordinateur et signal de synchronisation correspondants.
Le domaine de l'invention est celui du codage/décodage d'images numériques. Typiquement, une image numérique comprend des macro-blocs répartis en lignes et en colonnes. Chaque ligne (ou rangée horizontale) de l'image comprend par exemple des macro-blocs de 16x16 pixels. Classiquement, un macro-bloc est organisé en quatre blocs de luminance et en deux, quatre ou huit blocs de chrominance selon le type d'échantillonnage. Traditionnellement, le codage ou décodage d'une image consiste à traiter l'ensemble de ses macro-blocs, séquentiellement ligne par ligne, de gauche à droite sur une même ligne, et de haut en bas d'une ligne à l'autre.
L'invention s'applique notamment, mais non exclusivement, au codage ou décodage d'une séquence vidéo formée d'images successives. Dans ce cas, la technique de codage ou décodage est mise en œuvre dans un algorithme de compression ou décompression vidéo. Elle est alors conforme à une norme de compression/décompression telle que (cette liste n'est pas exhaustive) : la norme H.263, définie dans le document de normalisation « ITU-T H.263 » ; - la norme H.263+, définie dans le document de normalisation « ITU-T
H.263+ » ; la norme H.264 (aussi appelé H.26L ou MPEG-4 AVC) : définie dans le document de normalisation « ISO MPEG-4 Part 10 » ; la norme MPEG-4 Video : définie dans le document de normalisation « ISO MPEG-4 Part 2 ».
Il est clair cependant que l'invention s'applique également au codage ou décodage d'une image fixe.
D'une façon générale, la présente invention peut s'appliquer dans tous les cas où il existe un contexte de dépendance spatiale pour le traitement des macro-blocs d'une image. En d'autres termes, on suppose que pour traiter chaque macro-bloc de l'image, on doit connaître le résultat du traitement préalable d'autres macro-blocs de la même image.
Un tel contexte de dépendance spatiale existe notamment, mais non exclusivement, dans les procédés de codage ou décodage conformes aux normes de compression/décompression précités et basés sur une estimation de mouvement. La figure 1 illustre le contexte de dépendance spatiale tel que défini dans ces normes. Pour traiter un macro-bloc donné MB, on doit connaître le résultat du traitement du macrobloc de gauche (MBG), de celui du dessus (MBH) et de celui du dessus à droite (MBD).
Il apparaît que le traitement de l'ensemble des macro-blocs d'une image par un unique processeur n'est pas optimale en temps de calcul.
On connaît par ailleurs la technique de parallélisation (ou « multithreading » en anglais) qui consiste à répartir de façon optimale (c'est-à-dire paralléliser) les charges de calcul d'un traitement sur une pluralité de processeurs disponibles.
Cette technique connue est utilisée dans le domaine de la compression vidéo, soit selon une approche globale, soit selon une approche fine.
L'approche globale consiste à répartir des macro-tâches sur chacun des processeurs. Par exemple, on suppose que le codage d'une image nécessite l'exécution de trois tâches A, B et C qui doivent impérativement être ordonnées comme suit : A puis B puis C. On peut alors imaginer que pour répartir au mieux les tâches A, B et C sur deux processeurs, on crée deux unités d'exécution (ou « thread » en anglais) Tl et T2,
Tl gérant uniquement les tâches A et B, T2 gérant uniquement la tâche C. Cette parallélisation ne peut donc être faite que si Tl peut travailler sur l'image N alors que T2 travaille sur l'image N-l, N étant le numéro de l'image d'une séquence vidéo. On voit que cette répartition n'est optimale que si la charge utilisée par les tâches A et B est sensiblement équivalente à celle utilisée par la tâche C (iso-répartition des charges entre processeurs).
Un inconvénient de la technique de parallélisation selon l'approche globale est que l'iso-répartition des charges entre processeurs n'est quasiment jamais vérifiée dans la pratique. En d'autres termes, il est très difficile, voire impossible dans certains cas, de trouver un équilibre parfait en séparant des tâches entières les unes des autres. Un autre inconvénient de la technique de parallélisation selon l'approche globale est qu'elle nécessite une implémentation particulière du programme appelant, avec mise en œuvre d'un mécanisme d'empilage.
Encore un autre inconvénient de la technique de parallélisation selon l'approche globale est qu'elle n'est pas applicable dans le cas d'un contexte de dépendance spatiale tel que discuté ci-dessus.
L'approche fine consiste à séparer chaque tâche en autant de tâches élémentaires qui peuvent être exécutées en parallèle par plusieurs processeurs, lorsque cela est possible. Par exemple, dans le domaine de la compression vidéo ou de la compression d'image (avec l'ordre de traitement séquentiel classique précité : ligne par ligne, de gauche à droite sur une même ligne, et de haut en bas d'une ligne à l'autre), on peut séparer l'image en N bandes horizontales et faire traiter chacune d'entre elles par l'un de N processeurs. Dans ce cas, il n'est pas nécessaire que les différentes unités d'exécution (« thread ») soient synchronisées entre elles. Elles doivent simplement informer une unité d'exécution principale lorsqu'elles ont terminé leur traitement. On obtient ainsi une répartition très équitable des charges entre processeurs.
Toutefois, un inconvénient majeur de la technique de parallélisation selon l'approche fine est qu'elle n'est pas applicable dans le cas d'un contexte de dépendance spatiale tel que discuté ci-dessus. En effet, dans ce contexte, chaque première ligne d'une bande horizontale donnée (bande inférieure) de l'image ne peut pas être traitée tant que la dernière ligne de la bande horizontale située au-dessus (bande supérieure) n'a pas été traitée. Les processeurs ne pourraient donc agir que successivement, et non pas simultanément, ce qui ôte tout intérêt à l'utilisation de cette technique dans ce contexte.
L'invention a notamment pour objectif de pallier ces différents inconvénients de l'état de la technique.
Plus précisément, l'un des objectifs de la présente invention est de fournir un procédé et un dispositif de codage ou décodage permettant d'optimiser les temps de calcul, tout en pouvant être mis en œuvre dans un contexte de dépendance spatiale tel que discuté ci-dessus. L'invention a également pour objectif de fournir de tels procédé et dispositif dont l' implémentation est indépendante de toute architecture matérielle ainsi que logicielle.
Ces différents objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints selon l'invention à l'aide d'un procédé de codage ou décodage d'une image comprenant des macro-blocs répartis en lignes et en colonnes, le traitement d'au moins un macro-bloc donné, dit macro-bloc dépendant, nécessitant le traitement préalable d'au moins un autre macro-bloc dont dépend ledit macro-bloc dépendant, le traitement des macro-blocs étant effectué séquentiellement ligne par ligne, ou colonne par colonne. Selon l'invention, le procédé comprend une étape de parallélisation du traitement des macro-blocs sur N processeurs, N > 2, comprenant les étapes suivantes : séparation de l'image :
* en N bandes verticales comprenant chacune une pluralité de lignes et au moins une colonne de macro-blocs, si le traitement des macro-blocs est effectué séquentiellement ligne par ligne ;
* en N bandes horizontales comprenant chacune une pluralité de colonnes et au moins une ligne de macro-blocs, si le traitement des macro-blocs est effectué séquentiellement colonne par colonne ; traitement par chaque processeur de l'une des N bandes ; - synchronisation des traitements effectués par les N processeurs.
Le principe général de l'invention consiste donc à effectuer une parallélisation selon l'approche fine, mais en séparant l'image en bandes perpendiculaires (et non pas parallèles) à la direction de traitement séquentiel des macro-blocs. Ceci permet d'obtenir une répartition optimale des charges entre processeurs. En d'autres termes, si le traitement des macro-blocs est effectué séquentiellement ligne par ligne (cas classique d'une direction de traitement séquentiel qui est horizontale, selon une ligne), on sépare l'image en bandes verticales. En revanche, si le traitement des macro-blocs est effectué séquentiellement colonne par colonne (cas non classique aujourd'hui mais possible dans le futur d'une direction de traitement séquentiel qui est verticale, selon une colonne), on sépare l'image en bandes horizontales. La synchronisation des traitements effectués par les N processeurs permet la mise en œuvre du principe général précité dans un contexte de dépendance spatiale. En effet, cette synchronisation permet d'éviter qu'un processeur tente de traiter un macrobloc donné alors que d'autres macro-blocs dont dépend ce macro-bloc donné n'ont pas encore été traités.
Il est à noter que la présente invention peut être mise en œuvre avec un nombre quelconque de processeurs (par exemple deux, quatre, huit, ...).
Préférentiellement, la synchronisation des traitements effectués par les N processeurs consiste, pour chaque processeur de chaque paire de processeurs qui traitent deux bandes adjacentes, à : informer l'autre processeur de ladite paire de chaque fin de traitement d'un macro-bloc dont dépend un macro-bloc dépendant compris dans la bande traitée par ledit autre processeur ; vérifier, avant de traiter un macro-bloc dépendant, que ledit au moins un autre macro-bloc dont dépend le macro-bloc dépendant a préalablement été traité par ledit processeur ou ledit autre processeur.
Ainsi, les processeurs échangent des signaux de synchronisation (messages système) par l'intermédiaire desquels ils s'informent mutuellement des macro-blocs qu'ils ont traités. De façon avantageuse, ladite image appartient au groupe comprenant : des images de séquences vidéo formées d'images successives ; des images fixes.
Dans un mode de réalisation avantageux de l'invention, le traitement des macroblocs est effectué séquentiellement ligne par ligne, de gauche à droite sur une même ligne et de haut en bas d'une ligne à l'autre. Avantageusement, le traitement de chaque macro-bloc dépendant nécessite le traitement préalable, quand il existe, d'au moins le macro-bloc situé à gauche dudit macro-bloc dépendant. En outre, dans chaque paire de processeurs qui traitent deux bandes verticales adjacentes, le processeur qui traite la bande verticale de gauche informe l'autre processeur de chaque fin de traitement du macro-bloc de l'extrémité droite d'une des lignes de macro-blocs de ladite bande verticale de gauche. Selon une caractéristique avantageuse, le traitement de chaque macro-bloc dépendant nécessite le traitement préalable, quand il existe, d'au moins le macro-bloc situé au-dessus et à droite dudit macro-bloc dépendant. En outre, dans chaque paire de processeurs qui traitent deux bandes verticales adjacentes, le processeur qui traite la bande verticale de droite informe l'autre processeur de chaque fin de traitement du macro-bloc de l'extrémité gauche d'une des lignes de macro-blocs de ladite bande verticale de droite.
Il est à noter que cette caractéristique (information sur la fin du traitement du macro-bloc de gauche (MBG) d'une ligne de la bande verticale de droite) peut être combinée à la précédente (information sur la fin du traitement du macro-bloc de droite
(MBD) d'une ligne de la bande verticale de gauche). L'invention offre alors une solution optimale au contexte classique de dépendance spatiale (voir discussion ci-dessus, en relation avec la figure 1). On notera que la fin du traitement du macro-bloc de dessus (MBH) ne nécessite aucune information de synchronisation puisqu'il est compris dans la même bande verticale que le macro-bloc (MB) qui dépend de lui (et des macro-blocs de gauche et de droite (MBG, MBD)).
De façon avantageuse, le codage ou décodage est conforme à une norme appartenant au groupe comprenant : H.263, H.263+, H264 et MPEG-4 Video. Cette liste n'est pas exhaustive. L'invention concerne également un programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé précité, lorsque ledit programme est exécuté sur un ordinateur.
L'invention concerne aussi un dispositif de codage ou décodage d'une image comprenant des macro-blocs répartis en lignes et en colonnes, le traitement d'au moins un macro-bloc donné, dit macro-bloc dépendant, nécessitant le traitement préalable d'au moins un autre macro-bloc dont dépend ledit macro-bloc dépendant, le traitement des macro-blocs étant effectué séquentiellement ligne par ligne, ou colonne par colonne, ledit dispositif comprenant N processeurs, N > 2, et des moyens de parallélisation du traitement des macro-blocs sur lesdits N processeurs, lesdits moyens de parallélisation du traitement comprenant : des moyens de séparation de l'image : * en N bandes verticales comprenant chacune une pluralité de lignes et au moins une colonne de macro-blocs, si le traitement des macro-blocs est effectué séquentiellement ligne par ligne ;
* en N bandes horizontales comprenant chacune une pluralité de colonnes et au moins une ligne de macro-blocs, si le traitement des macro-blocs est effectué séquentiellement colonne par colonne ; dans chaque processeur, des moyens de traitement d'une des N bandes ; des moyens de synchronisation des traitements effectués par les N processeurs. L'invention concerne encore un signal de synchronisation transmis depuis un premier vers un second processeur d'une paire de processeurs qui traitent deux bandes adjacentes d'une image, ladite image comprenant des macro-blocs répartis en lignes et en colonnes et étant séparée : en N bandes verticales comprenant chacune une pluralité de lignes et au moins une colonne de macro-blocs, si le traitement des macro-blocs est effectué séquentiellement ligne par ligne ; en N bandes horizontales comprenant chacune une pluralité de colonnes et au moins une ligne de macro-blocs, si le traitement des macro-blocs est effectué séquentiellement colonne par colonne, le traitement d'au moins un macro-bloc donné, dit macro-bloc dépendant, nécessitant le traitement préalable d'au moins un autre macro-bloc dont dépend ledit macro-bloc dépendant, lesdits premier et second processeurs appartenant à un ensemble de N processeurs traitant chacun en parallèle une des bandes de l'image, en vue du codage ou décodage de l'image, ledit signal de synchronisation comprenant des informations par lesquelles ledit premier processeur indique au second processeur une fin de traitement par le premier processeur d'un macro-bloc dont dépend un macro-bloc dépendant compris dans la bande traitée par le second processeur, de façon que le second processeur puisse vérifier, avant de traiter ledit macro- bloc dépendant, que ledit au moins un autre macro-bloc dont dépend le macro-bloc dépendant a préalablement été traité par le premier processeur. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante d'un mode de réalisation préférentiel de l'invention, donné à titre d'exemple indicatif et non limitatif, et des dessins annexés, dans lesquels : la figure 1 illustre le contexte classique de dépendance spatiale pour le traitement d'un macro-bloc d'une image ; la figure 2 présente un exemple d'image séparée en bandes verticales, permettant d'expliciter un mode de réalisation particulier du procédé selon l'invention. L'invention concerne donc un procédé de codage ou décodage d'une image comprenant une étape de parallélisation du traitement des macro-blocs sur N processeurs.
Dans la suite de la description, on suppose que, de façon classique, le traitement des macro-blocs est effectué séquentiellement ligne par ligne, de gauche à droite sur une même ligne et de haut en bas d'une ligne à l'autre. Il est clair cependant, comme déjà indiqué ci-dessus, que la présente invention peut également s'appliquer dans le cas (inhabituel aujourd'hui) où le traitement des macro-blocs est effectué séquentiellement colonne par colonne.
On suppose également que l'image à laquelle est appliquée le procédé selon l'invention est comprise dans une séquence vidéo et que le procédé selon l'invention est conforme à l'une des norme de compression/décompression suivantes : H.263, H.263+, H.264, MPEG-4 Vidéo, ... On suppose donc que le traitement des macro-blocs d'une image s'effectue dans le contexte de dépendance spatiale illustré sur la figure 1 et déjà discuté ci-dessus. Pour mémoire, le traitement d'un macro-bloc donné MB nécessite la connaissance du résultat du traitement du macro-bloc situé sur sa gauche (MBG), de celui situé au-dessus (MBH) et de celui situé au-dessus à droite (MBD). Le procédé selon l'invention, au vu des hypothèses précitées, consiste à : séparer l'image en N bandes verticales comprenant chacune une pluralité de lignes et au moins une colonne de macro-blocs ; confier le traitement de chacune de ces N bandes à un processeur distinct ; synchroniser les traitements effectués par les N processeurs, pour éviter qu'un processeur tente d'accéder (pour le besoin du traitement d'un macrobloc de la bande verticale qu'il traite) à un autre macro-bloc (d'une autre bande verticale traitée par un autre processeur) qui n'aurait pas encore été traité. On présente maintenant en détail, en relation avec la figure 2, un mode de réalisation particulier du procédé selon l'invention. Comme illustré sur la figure 2, on considère à titre d'exemple une image 20 comprenant 6 lignes et 16 colonnes. Chaque ligne comprend donc 16 macro-blocs. Pour les seules trois premières lignes (dans un souci de simplification), on a inséré dans chaque case représentant un macro-bloc le numéro de ce macro-bloc. La première ligne comprend les macro-blocs MB0 à MB15, la seconde les macro-blocs MB16 à MB31, etc.
Dans cet exemple, l'image est séparée en quatre bandes verticales (N = 4) d'égale largeur (quatre macro-blocs) et appelées ci-après bandes Bl à B4 (les bandes étant numérotées de gauche à droite). On utilise donc quatre processeurs traitant chacun l'une de ces quatre bandes verticales. Ces quatre processeurs sont appelés ci-après processeurs PI à P4 (la numérotation des processeurs correspondant à la numérotation des bandes qu'ils traitent).
Le fonctionnement du procédé selon l'invention peut être résumé comme suit : le processeur PI démarre et traite (c'est-à-dire calcule les informations sur) les macro-blocs MB0, MB1, MB2 et MB3 ; - quand le macro-bloc MB3 a été traité, le processeur PI en informe le processeur P2 par un message de synchronisation, c'est-à-dire signale au processeur P2 que celui-ci peut démarrer et traiter le macro-bloc MB4. En effet, le macro-bloc MB 3 est le macro-bloc de gauche MBG par rapport au macro-bloc MB4 ; - parallèlement, les processeurs PI et P2 effectuent des traitements : le processeur PI traite les macro-blocs MB16, MB17 et MB18, et le processeur P2 traite les macro-blocs MB4, MB5, MB6 et MB7 ; quand le macro-bloc MB4 a été traité, le processeur P2 en informe le processeur PI, par un message de synchronisation ; - lorsque le processeur PI s'apprête à traiter le macro-bloc MB 19, il vérifie que le macro-bloc MB4 a été traité par le processeur P2. En effet, le macro- bloc MB4 est le macro-bloc de dessus à droite MBD par rapport au macrobloc MB 19. Par ailleurs, le processeur PI a lui-même déjà traité le macrobloc de gauche MBG (ici MB 18) et le macro-bloc de dessus MBH (ici MB3) par rapport au macro-bloc MB4. Si le macro-bloc MB4 a été traité par le processeur P2, le processeur PI traite le macro-bloc MB 19 ; quand le macro-bloc MB 19 a été traité, le processeur PI en informe le processeur P2 par un message de synchronisation, c'est-à-dire signale au processeur P2 que celui-ci peut démarrer la deuxième ligne de la bande verticale B2 et traiter le macro-bloc MB 20. En effet, le macro-bloc MB 19 est le macro-bloc de gauche MBG par rapport au macro-bloc MB20. Par ailleurs, le processeur P2 a lui-même déjà traité le macro-bloc de dessus MBH (ici MB4) et le macro-bloc de dessus à droite MBD (ici MB5) par rapport au macro-bloc MB 20 ; quand le macro-bloc MB7 a été traité, le processeur P2 en informe le processeur P3 par un message de synchronisation, c'est-à-dire signale au processeur P3 que celui-ci peut démarrer et traiter le macro-bloc MB 8. En effet, le macro-bloc MB7 est le macro-bloc de gauche MBG par rapport au macro-bloc MB 8 ; parallèlement, les processeurs PI, P2 et P3 effectuent des traitements : le processeur PI traite les macro-blocs MB31, MB32 et MB33, le processeur
P2 traite les macro-blocs MB20, MB21 et MB22, et le processeur P3 traite les macro-blocs MB8, MB9, MB 10 et MB 11 ; et ainsi de suite jusqu'à ce que tous les macro-blocs de toutes les bandes verticales Bl à B4 aient été traités par les processeurs PI à P4. D'une façon générale, le principe de synchronisation des traitements effectués par les processeurs repose sur une utilisation de messages de synchronisation (messages système). Dans l'exemple ci-dessus, il y a trois points de synchronisation (un entre chaque paire de processeurs (Pk, Pk+1) traitant deux bandes verticales adjacentes) : un entre les processeurs PI et P2, un entre les processeurs P2 et P3 et un entre les processeurs P3 et P4. A chaque point de synchronisation correspond deux types de conditions : à chaque fin de ligne de rang i+1 de la bande Bk (qui correspond à un quart de ligne d'image), le processeur Pk doit s'assurer que la condition « premier macro-bloc de la ligne de rang i de la bande Bk+1 (qui correspond aussi à un quart de ligne d'image) a été traité » a été remplie par le processeur Pk+1. Par exemple, à la fin de la deuxième ligne de la bande Bl (pour le traitement du macro-bloc MB 19), le processeur PI doit s'assurer que la condition « premier macro-bloc MB4 de la première ligne de la bande B2 a été traité » a été remplie par le processeur P2 ; à chaque début de ligne de rang i de la bande Bk+1, le processeur Pk+1 doit s'assurer que la condition « dernier macro-bloc de la ligne de rang i de la bande Bk a été traité » a été remplie par le processeur Pk. Par exemple, au début de la première ligne de la bande B2 (pour le traitement du macrobloc MB4), le processeur P2 doit s'assurer que la condition « dernier macro-bloc MB3 de la première ligne de la bande Bl a été traité » a été remplie par le processeur PI .

Claims

REVENDICATIONS
1. Procédé de codage ou décodage d'une image comprenant des macro-blocs répartis en lignes et en colonnes, le traitement d'au moins un macro-bloc donné (MB), dit macro-bloc dépendant, nécessitant le traitement préalable d'au moins un autre macro- bloc (MBG, MBH, MBD) dont dépend ledit macro-bloc dépendant, le traitement des macro-blocs étant effectué séquentiellement ligne par ligne, ou colonne par colonne, caractérisé en ce que ledit procédé comprend une étape de parallélisation du traitement des macro-blocs sur N processeurs, N > 2, comprenant les étapes suivantes : - séparation de l'image :
* en N bandes verticales comprenant chacune une pluralité de lignes et au moins une colonne de macro-blocs, si le traitement des macro-blocs est effectué séquentiellement ligne par ligne ;
* en N bandes horizontales comprenant chacune une pluralité de colonnes et au moins une ligne de macro-blocs, si le traitement des macro-blocs est effectué séquentiellement colonne par colonne ; traitement par chaque processeur de l'une des N bandes ; synchronisation des traitements effectués par les N processeurs.
2. Procédé selon la revendication 1, caractérisé en ce que la synchronisation des traitements effectués par les N processeurs consiste, pour chaque processeur de chaque paire de processeurs qui traitent deux bandes adjacentes, à : informer l'autre processeur de ladite paire de chaque fin de traitement d'un macro-bloc dont dépend un macro-bloc dépendant compris dans la bande traitée par ledit autre processeur ; - vérifier, avant de traiter un macro-bloc dépendant, que ledit au moins un autre macro-bloc dont dépend le macro-bloc dépendant a préalablement été traité par ledit processeur ou ledit autre processeur.
3. Procédé selon l'une quelconque des revendications 1 et 2, caractérisé en ce que ladite image appartient au groupe comprenant : - des images de séquences vidéo formées d'images successives ; des images fixes.
4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que le traitement des macro-blocs est effectué séquentiellement ligne par ligne, de gauche à droite sur une même ligne et de haut en bas d'une ligne à l'autre.
5. Procédé selon la revendication 4, caractérisé en ce que le traitement de chaque macro-bloc dépendant (MB) nécessite le traitement préalable, quand il existe, d'au moins le macro-bloc (MBG) situé à gauche dudit macro-bloc dépendant, et en ce que, dans chaque paire de processeurs qui traitent deux bandes verticales adjacentes, le processeur qui traite la bande verticale de gauche informe l'autre processeur de chaque fin de traitement du macro-bloc de l'extrémité droite d'une des lignes de macro-blocs de ladite bande verticale de gauche.
6. Procédé selon l'une quelconque des revendications 4 et 5, caractérisé en ce que le traitement de chaque macro-bloc dépendant (MB) nécessite le traitement préalable, quand il existe, d'au moins le macro-bloc (MBD) situé au-dessus et à droite dudit macrobloc dépendant, et en ce que, dans chaque paire de processeurs qui traitent deux bandes verticales adjacentes, le processeur qui traite la bande verticale de droite informe l'autre processeur de chaque fin de traitement du macro-bloc de l'extrémité gauche d'une des lignes de macro-blocs de ladite bande verticale de droite.
7. Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que le codage ou décodage est conforme à une norme appartenant au groupe comprenant :
H.263, H.263+, H264 et MPEG-4 Video.
8. Programme d'ordinateur, caractérisé en ce qu'il comprend des instructions de code de programme pour l'exécution des étapes du procédé selon l'une quelconque des revendications 1 à 7, lorsque ledit programme est exécuté sur un ordinateur.
9. Dispositif de codage ou décodage d'une image comprenant des macro-blocs répartis en lignes et en colonnes, le traitement d'au moins un macro-bloc donné, dit macro-bloc dépendant, nécessitant le traitement préalable d'au moins un autre macrobloc dont dépend ledit macro-bloc dépendant, le traitement des macro-blocs étant effectué séquentiellement ligne par ligne, ou colonne par colonne, caractérisé en ce que ledit dispositif comprend N processeurs, N > 2, et des moyens de parallélisation du traitement des macro-blocs sur lesdits N processeurs, lesdits moyens de parallélisation du traitement comprenant : des moyens de séparation de l'image : * en N bandes verticales comprenant chacune une pluralité de lignes et au moins une colonne de macro-blocs, si le traitement des macro-blocs est effectué séquentiellement ligne par ligne ; * en N bandes horizontales comprenant chacune une pluralité de colonnes et au moins une ligne de macro-blocs, si le traitement des macro-blocs est effectué séquentiellement colonne par colonne ; dans chaque processeur, des moyens de traitement d'une des N bandes ; des moyens de synchronisation des traitements effectués par les N processeurs.
10. Signal de synchronisation transmis depuis un premier vers un second processeur d'une paire de processeurs qui traitent deux bandes adjacentes d'une image, ladite image comprenant des macro-blocs répartis en lignes et en colonnes et étant séparée : en N bandes verticales comprenant chacune une pluralité de lignes et au moins une colonne de macro-blocs, si le traitement des macro-blocs est effectué séquentiellement ligne par ligne ; - en N bandes horizontales comprenant chacune une pluralité de colonnes et au moins une ligne de macro-blocs, si le traitement des macro-blocs est effectué séquentiellement colonne par colonne, le traitement d'au moins un macro-bloc donné, dit macro-bloc dépendant, nécessitant le traitement préalable d'au moins un autre macro-bloc dont dépend ledit macro-bloc dépendant, lesdits premier et second processeurs appartenant à un ensemble de N processeurs traitant chacun en parallèle une des bandes de l'image, en vue du codage ou décodage de l'image, caractérisé en ce que ledit signal de synchronisation comprend des informations par lesquelles ledit premier processeur indique au second processeur une fin de traitement par le premier processeur d'un macro-bloc dont dépend un macro-bloc dépendant compris dans la bande traitée par le second processeur, de façon que le second processeur puisse vérifier, avant de traiter ledit macro-bloc dépendant, que ledit au moins un autre macro-bloc dont dépend le macro-bloc dépendant a préalablement été traité par le premier processeur.
PCT/FR2004/001106 2003-05-06 2004-05-06 Procede et dispositif de codage ou decodage d’image avec parallelisation du traitement sur une pluralite de processeurs, programme d’ordinateur et signal de synchronisation correspondants WO2004100557A2 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/555,498 US7885334B2 (en) 2003-05-06 2004-05-06 Image coding or decoding device and method involving multithreading of processing operations over a plurality of processors, and corresponding computer program and synchronisation signal

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR03/05531 2003-05-06
FR0305531A FR2854754B1 (fr) 2003-05-06 2003-05-06 Procede et dispositif de codage ou decodage d'image avec parallelisation du traitement sur une pluralite de processeurs, programme d'ordinateur et signal de synchronisation correspondants

Publications (2)

Publication Number Publication Date
WO2004100557A2 true WO2004100557A2 (fr) 2004-11-18
WO2004100557A3 WO2004100557A3 (fr) 2006-10-05

Family

ID=33306196

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2004/001106 WO2004100557A2 (fr) 2003-05-06 2004-05-06 Procede et dispositif de codage ou decodage d’image avec parallelisation du traitement sur une pluralite de processeurs, programme d’ordinateur et signal de synchronisation correspondants

Country Status (3)

Country Link
US (1) US7885334B2 (fr)
FR (1) FR2854754B1 (fr)
WO (1) WO2004100557A2 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2216994A3 (fr) * 2009-02-05 2011-01-05 Sony Corporation Système et procédé pour traitement d'images
US8000388B2 (en) 2006-07-17 2011-08-16 Sony Corporation Parallel processing apparatus for video compression

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008072647A (ja) * 2006-09-15 2008-03-27 Toshiba Corp 情報処理装置、デコーダおよび再生装置の動作制御方法
FR2931280B1 (fr) * 2008-05-19 2011-01-07 Envivio France Procede et dispositif de codage ou decodage d'image avec parallelisatioon du traitement sur plusieurs processeurs et coprocesseurs, programme d'ordinateur et moyen de stockage correspondants.
US8340194B2 (en) * 2008-06-06 2012-12-25 Apple Inc. High-yield multi-threading method and apparatus for video encoders/transcoders/decoders with dynamic video reordering and multi-level video coding dependency management
US20100246679A1 (en) * 2009-03-24 2010-09-30 Aricent Inc. Video decoding in a symmetric multiprocessor system
US8559733B2 (en) * 2009-03-31 2013-10-15 Citrix Systems, Inc. Methods and systems for approximating progressive image encoding using image partitioning
JP5343703B2 (ja) * 2009-05-22 2013-11-13 ソニー株式会社 復号処理装置、復号処理方法、およびプログラム
US20100312828A1 (en) * 2009-06-03 2010-12-09 Mobixell Networks Ltd. Server-controlled download of streaming media files
EP2486659B1 (fr) 2009-10-05 2020-11-25 Orange Procedes de codage et de décodage d'images, dispositifs de codage et de decodage et programmes d'ordinateur correspondants
US8527649B2 (en) * 2010-03-09 2013-09-03 Mobixell Networks Ltd. Multi-stream bit rate adaptation
WO2012004990A1 (fr) * 2010-07-07 2012-01-12 パナソニック株式会社 Processeur
US8832709B2 (en) 2010-07-19 2014-09-09 Flash Networks Ltd. Network optimization
US8688074B2 (en) 2011-02-28 2014-04-01 Moisixell Networks Ltd. Service classification of web traffic
US11425395B2 (en) 2013-08-20 2022-08-23 Google Llc Encoding and decoding using tiling

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999063751A1 (fr) * 1998-05-30 1999-12-09 The Board Of Trustees Of The Leland Stanford Junior University Processeur parallele basse puissance et circuit integre d'imageur
US6263023B1 (en) * 1998-10-15 2001-07-17 International Business Machines Corporation High definition television decoder

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11346366A (ja) * 1998-06-01 1999-12-14 Sony Corp 符号化装置とその方法および復号化装置とその方法
US8401084B2 (en) * 2002-04-01 2013-03-19 Broadcom Corporation System and method for multi-row decoding of video with dependent rows
US7634776B2 (en) * 2004-05-13 2009-12-15 Ittiam Systems (P) Ltd. Multi-threaded processing design in architecture with multiple co-processors
US20070086528A1 (en) * 2005-10-18 2007-04-19 Mauchly J W Video encoder with multiple processors

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999063751A1 (fr) * 1998-05-30 1999-12-09 The Board Of Trustees Of The Leland Stanford Junior University Processeur parallele basse puissance et circuit integre d'imageur
US6263023B1 (en) * 1998-10-15 2001-07-17 International Business Machines Corporation High definition television decoder

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KOLINUMMI P ET AL: "Scalaible implementation of H.263 video encoder on a parallel DSP system" ISCAS 2000 - IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS, vol. 1, 28 mai 2000 (2000-05-28), - 31 mai 2000 (2000-05-31) pages I551-I554, XP010503257 Geneva, Switzerland *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8000388B2 (en) 2006-07-17 2011-08-16 Sony Corporation Parallel processing apparatus for video compression
EP2216994A3 (fr) * 2009-02-05 2011-01-05 Sony Corporation Système et procédé pour traitement d'images
US8340506B2 (en) 2009-02-05 2012-12-25 Sony Corporation System and method for signal processing

Also Published As

Publication number Publication date
WO2004100557A3 (fr) 2006-10-05
US20070053437A1 (en) 2007-03-08
FR2854754A1 (fr) 2004-11-12
FR2854754B1 (fr) 2005-12-16
US7885334B2 (en) 2011-02-08

Similar Documents

Publication Publication Date Title
WO2004100557A2 (fr) Procede et dispositif de codage ou decodage d’image avec parallelisation du traitement sur une pluralite de processeurs, programme d’ordinateur et signal de synchronisation correspondants
EP1868383B1 (fr) Détection de la phase de mouvement d'une séquence de trames vidéo
JP5546082B2 (ja) オーバーラップする境界に基づくマルチメディアのスライストランスコーディング方法およびシステム、記録媒体
EP2778896B1 (fr) Processeur d'informations, plate-forme Cloud, procédé de traitement d'informations et programme informatique associé
EP0369854B1 (fr) Procédé et circuit de traitement par bloc de signal bidimensionnel d'images animées
FR2818862A1 (fr) Procede de traitement de donnees
HUE033017T2 (en) Compatible stereoscopic video delivery
FR2810492A1 (fr) Methodes evolutives et appareil d'encodage/de decodage pour la creation d'image fixe utilisant la transformation par ondelettes
EP1432246B1 (fr) Procede et dispositif de decodage et d'affichage en marche arriere d'images mpeg, circuit pilote video et boitier decodeur incorporant un tel dispositif
EP1246469A2 (fr) Procédé de réduction de format et de décodage similtanés de signaux vidéo codés
EP1246471A1 (fr) Dispositif implémentant conjointement un post-traitement et un décodage de données
EP1202577B1 (fr) Procédé de traîtement de données vidéo
FR3053555A1 (fr) Procede de codage d'une image numerique, procede de decodage, dispositifs, terminal et programmes d'ordinateurs associes
FR3032297A1 (fr) Procede et dispositif de compression d'une image numerique couleur
EP0702327B1 (fr) Dispositif d'estimation de mouvement
EP0674444B1 (fr) Filtre de matrices de pixels
FR2944936A1 (fr) Procedes de codage et de decodage d'un bloc de donnees images, dispositifs de codage et de decodage implementant lesdits procedes
FR2699780A1 (fr) Dispositif de traitement récursif de signal vidéo comprenant une pluralité de branches.
FR3098073A1 (fr) Procédé de codage et de décodage d’une image d’une séquence vidéo et dispositif associé
FR2828614A1 (fr) Methode de codage et de decodage video pour pallier les pertes de donnees dans un signal video code transmis sur un canal
EP2901411A1 (fr) Dispositif de decomposition d'images par transformee en ondelettes
FR2965444A1 (fr) Transmission de video 3d sur une infrastructure de transport historique
FR2823338A1 (fr) Procede et dispositif de post traitement d'images numeriques
FR2651405A1 (fr) Procede et dispositif de traitement d'images a estimation de mouvement amelioree.
EP2561679A1 (fr) Procédé de traitement d'une information de mouvement et procédés de codage

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

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

Country of ref document: US

Ref document number: 10555498

Country of ref document: US

122 Ep: pct application non-entry in european phase
WWP Wipo information: published in national office

Ref document number: 10555498

Country of ref document: US