Brevet FR2881898A1 — publié le 20060811

L'invention concerne un procédé et un dispositif de codage d'une image vidéo d'une séquence d'images mettant en oeuvre des modes 5 de codage intra et inter de blocs d'image. Le domaine est celui de la compression vidéo exploitant plus particulièrement des algorithmes de codage inter et intra basés respectivement sur la compensation de mouvement entre images, la compensation spatiale et sur les transformées par blocs. Le contexte visé o est le standard MPEG-4 AVC, aussi appelé MPEG-4 partiel0 ou H.264. Le standard de codage vidéo MPEG-4 AVC introduit un codage intra beaucoup plus sophistiqué que dans les précédents standards, dans la mesure où il fait intervenir une compensation spatiale: est codé, non pas le macrobloc source, mais la différence entre ce macrobloc source et les pixels issus des macroblocs voisins déjà codés. Le codage différentiel intra en luminance peut être fait sur un bloc unique de taille 16 x 16 ou bien sur 16 blocs indépendants de taille 4 x 4. Le nombre de prédictions possibles est très riche, puisque 9 modes sont définis pour les blocs 4 x 4 et 4 modes sont définis pour les blocs 16 x 16. La figure 1 représente de manière schématique les différents modes de codage intra en luminance pour des blocs 4 x 4. La figure 2 représente les différents modes de codage intra en luminance pour des blocs 16 x 16. Le document ITU -T Rec. H.264 (2002 E), aussi référencé ISO/IEC FCD 1449610, décrit au chapitre 8.5 intitulé intra prediction ces différents modes de codage. La figure reprend les termes anglais de la norme afin de pouvoir s'y reporter plus facilement. Il est à noter que le mode intra pur n'existe pas, tous les modes intra de la norme sont des modes différentiels. Le codage intra en chrominance est fait sur un bloc unique de taille 8x8, avec une prédiction choisie parmi les 4 possibilités définies pour le mode intra 16 x 16. La décision de codage intra est donc d'une complexité considérablement accrue par rapport aux standards précédents. Outre la complexité de calcul, l'implémentation du codage intra pose un problème de causalité, puisque les pixels voisins utilisés dans les prédictions sont des pixels reconstruits, c'est à dire précédemment codés, en inter ou en intra, puis décodés. Le modèle de codage de référence du standard, qui est un modèle générique, décrit une syntaxe générale qui ne prend pas en compte les contraintes de fonctionnement en temps réel. La complexité de calcul et le lien de causalité du codage intra ne sont pas l'objet de ce modèle. Lorsque l'on vise des applications temps réel, par exemple en s format de télévision standard, des problèmes de temps de traitement apparaissent, du fait du grand nombre de modes de codage à tester. Le codage des macroblocs de l'image se fait selon un balayage télévision, le test des modes intra du macrobloc courant ne peut être effectué qu'après le traitement du macrobloc précédent. Le problème apparaît lors de la lo réalisation matérielle, les tests étant effectués de rnanière séquentielle. Un des buts de l'invention est de pallier les inconvénients précités. L'invention a pour objet un procédé de codage d'une image vidéo en mode inter ou intra comportant - une étape de conversion de l'image en macroblocs d'image, - une étape de sélection, pour un macrobloc courant, en fonction d'un critère coût et/ou facteur de qualité, d'un mode de codage au moins parmi des modes inter dépendant d'une découpe du macrobloc en blocs et exploitant une compensation en mouvement de ces blocs dans une ou des images précédemment codées et des modes intra dépendant d'une découpe du macrobloc en blocs et exploitant la compensation spatiale de ces blocs dans l'image, compensations utilisées pour le calcul de valeurs prédites et de résidus correspondant à coder, un mode de codage inter ou intra d'un macrobloc correspondant à la combinaison des modes de codage inter ou intra des blocs constituant le macrobloc, caractérisé en ce que l'étape de sélection est décomposée en deux étapes séquentielles, une étape de présélection du mode de codage intra pour présélectionner un mode intra pour le macrobloc courant parmi les modes de codage intra, et en une étape de décision de codage, partie du codage effectif du macrobloc courant, pour sélectionner le mode de codage du macrobloc courant parmi les modes inter et le mode intra présélectionné et en ce que l'étape de présélection pour le macrobloc courant est effectuée pendant l'étape de décision de codage pour un macrobloc précédent. Selon une mise en oeuvre particulière, le macrobloc précédent appartient à une image précédente et le macrobloc courant appartient à une image courante, l'image courante étant mémorisée pendant le codage effectif des macroblocs de l'image précédente. Selon une mise en oeuvre particulière, le macrobloc précédent appartient à une rangée précédente de macroblocs de l'image courante et le macrobloc courant appartient à une rangée courante de macroblocs, la rangée courante de macroblocs étant mémorisée pendant le codage effectif des macroblocs d'une rangée précédente. Selon une mise en oeuvre particulière, l'étape de présélection comporte une ou plusieurs découpes des macroblocs de l'image en blocs de différentes tailles sur lesquels sont effectués les compensations spatiales pour le calcul des résidus, le coût de codage du macrobloc étant la somme des coûts de codage des blocs le constituant. Selon une mise en oeuvre particulière, des modes intra sont relatifs au choix des pixels à partir des valeurs desquels sont calculées les 15 valeurs prédites. Selon une mise en oeuvre particulière, les modes intra des blocs sont au moins les modes intra 16 x 16 et 4 x 4 définis dans la norme H264. Selon une mise en oeuvre particulière, le coût et/ou le facteur de qualité d'un mode intra pour un bloc d'un macrobloc sont obtenus en effectuant le codage du bloc selon le procédé de codage effectif des blocs lorsque ce mode de codage intra est sélectionné pour le bloc du macrobloc. Selon une mise en oeuvre particulière, le coût et/ou le facteur de qualité d'un mode intra pour un bloc d'un macrobloc sont obtenus en effectuant une estimation à partir, respectivement, de la syntaxe du flux relative aux données codées selon le mode intra et de la différence entre le bloc source à coder et le bloc prédit selon le mode intra. L'invention concerne également un dispositif de codage d'une image vidéo en mode inter avec compensation de mouvement ou en mode intra avec compensation spatiale, parmi des modes de codage inter et des modes de codage intra, selon un critère coût et/ou distorsion, caractérisé en ce qu'il comporte - un circuit de codage intra première passe effectuant un codage intra d'une image ou partie d'image pour sélectionner un mode de 35 codage parmi un ensemble de modes de codage intra, - une mémoire pour la mémorisation de l'image ou partie d'image pendant la première passe, - un circuit de décision de codage pour l'image ou partie d'image mémorisée transmise par la mémoire, entre des modes de codage de type inter et le mode de codage de type intra sélectionné transmis par le circuit de codage intra première passe. La solution proposée consiste à prendre la décision de codage intra dans un contexte de codage intra de toute l'image et de ré-utiliser cette décision intra dans le processus final de décision de codage des images P et B. Ce processus final peut alors se limiter à sélectionner le meilleur mode to de prédiction entre N modes de prédiction inter possibles et 1 mode de prédiction intra, celui sélectionné lors de la première passe de codage. Grâce à la mise en oeuvre d'une première passe de codage intra de l'image, il n'est plus nécessaire d'attendre la fin de traitement d'un macrobloc pour calculer les coûts de codage du rnacrobloc suivant dans les différents modes intra. D'autres particularités et avantages de l'invention apparaîtront clairement dans la description suivante donnée à titre d'exemple non limitatif, et faite en regard des figures annexées qui représentent: - la figure 1, des modes de codage intra 4 x 4, selon l'art antérieur, - la figure 2, des modes de codage intra 16 x 16, selon l'art antérieur, - la figure 3, un schéma du circuit de codage, - la figure 4, un schéma du circuit de codage intra première 25 passe. La figure 3 décrit un dispositif de codage pour la mise en oeuvre du procédé selon l'invention. Dans l'exemple décrit, la première passe de codage intra est effectuée image par image, générant un retard d'une période image. Les modes intra sélectionnés sont associés à chacun des macroblocs de l'image. De même, l'estimation de mouvement est effectuée pour une image complète, le champ de vecteurs mouvement généré associant des vecteurs mouvement à chaque macrobloc de l'image. Une séquence d'image est traitée par un circuit de prétraitement, de la séquence, non représenté :sur la figure, qui effectue entre autres la structuration en groupes d'images ou GOP, acronyme de l'expression anglaise Group Of Pictures, le choix du type de chaque image, I, P ou B, c'est à dire intra, prédictionnelle anticipée ou différée ou bien bidirectionnelle, et le réordonnancement des images. Chaque image source de la séquence vidéo, après réordonnancement, est transmise à l'entrée du dispositif représenté sur la figure 3, entrée reliée à un circuit de codage intra première passe référencé 1, à un circuit à retard et de conversion en blocs image référencé 2 et à un circuit d'estimation de mouvement référencé 3. Le circuit de codage intra première passe 1 effectue un codage en mode intra des blocs de l'image vidéo reçue, qu'elle soit de type I, P ou B. Les différents modes de codage intra 16 x 16 et intra 4 x 4 tels que précédemment décrits, sont ainsi testés pour chacun des macroblocs, le circuit sélectionnant un mode intra 16 x 16 pour le macrobloc ou un mode intra 4 x 4 pour chacun des blocs du macrobloc, à partir d'une fonction coût/facteur de qualité qui prend en considération le coût de codage et la distorsion du macrobloc codé. Le circuit d'estimation de mouvement 3 reçoit l'image source sur une première entrée et une image reconstruite d'une mémoire d'images reconstruites 11 sur une deuxième entrée. Il associe à chacun des macroblocs de l'image, des vecteurs mouvement correspondant à un calcul de corrélation des blocs du macrobloc de l'image source avec des blocs d'une image reconstruite. Il peut s'agir de l'image précédente ou suivante ou une combinaison des deux selon le type de l'image à coder. Les vecteurs mouvement associés correspondent aux différentes découpes du macrobloc en blocs, ce sont par exemple les vecteurs issus de la corrélation de blocs de taille 16 x 16, 16 x 8, 8 x 8... constituant le macrobloc. Les informations relatives au mode de codage intra sélectionné lors du codage intra première passe sont transmises à un circuit de décision de codage au niveau macrobloc référencé 4. La fonction de ce circuit est de faire le choix, pour les macroblocs des différentes images de type P ou B, entre le mode de codage intra sélectionné et un mode de codage de type inter. Le circuit à retard et de conversion en blocs image référencé 2 mémorise chaque image pendant le codage intra première passe. L'image ainsi retardée est également découpée en macroblocs et blocs. Les macroblocs sont transmis à un circuit de décision de codage au niveau macroblocs 4. Egalement, et de manière classique, chaque bloc source 4 x 4 du macrobloc à coder est transmis à un soustracteur 5 qui reçoit, sur une deuxième entrée, le bloc prédit correspondant. Le bloc de luminance 4 x 4 en sortie du soustracteur, appelé bloc d'erreur de prédiction, est transmis à un circuit de transformation cosinus discrète ou DCT entière et de quantification, référencé 6, pour fournir des blocs de coefficients quantifiés ou blocs de résidus, puis à un circuit de codage entropique 7 qui réalise un codage entropique des valeurs quantifiées et sérialisées et à une mémoire tampon 8 en sortie du dispositif. Le taux de remplissage de la mémoire tampon 8 est exploité par un circuit de régulation 9 qui agit sur le pas de quantification du quantificateur 6 pour réguler le débit du flux de données du io codeur. Lorsque le mode inter est sélectionné par le circuit de décision de codage au niveau macrobloc 4, ce dernier positionne un interrupteur 17 de manière à relier la sortie d'un circuit de compensation de mouvement 16 au soustracteur 5. Le circuit de compensation de mouvement, à partir du mode de codage inter transmis par le circuit de décision de codage au niveau macrobloc et des vecteurs mouvement transmis par le circuit d'estimation de mouvement pour le macrobloc, va chercher, dans la mémoire d'images reconstruites 11, le ou les blocs d'image reconstruits correspondant à ce ou ces vecteurs mouvement pour calculer le bloc prédit 4 x 4 à transmettre sur la deuxième entrée du soustracteur, bloc d'image prédit correspondant au bloc 4 x 4 du macrobloc traité, présent sur la première entrée du soustracteur. Lorsque le mode intra est sélectionné par le circuit de décision de codage au niveau macrobloc 4, ce dernier positionne l'interrupteur 17 de manière à relier la sortie d'un circuit de compensation spatiale 16 au soustracteur 5. Est alors transmis, sur la deuxième entrée du soustracteur, un bloc d'image prédit correspondant au bloc 4 x 4 du macrobloc traité présent sur la première entrée du soustracteur. Le circuit de compensation spatiale 16 va chercher dans une mémoire de rangée de macroblocs 15, les valeurs de luminance des pixels correspondant au bloc prédit défini par le mode de codage intra sélectionné, mode transmis par le circuit de décision de codage au niveau du macrobloc 4. Le bloc de coefficients quantifiés en sortie du circuit de transformation cosinus discrète et quantification 6 est également transmis à un circuit de quantification inverse et transformation cosinus discrète inverse référencé 12 pour fournir un bloc de luminance. A. ce bloc est ajouté le bloc prédit, par l'intermédiaire d'un additionneur 13. Le bloc ainsi reconstruit est transmis à un mémoire de rangées de macroblocs 15 qui mémorise la dernière rangée de macroblocs. Il est également transmis à un filtre 14 qui atténue les effets de bloc. Le bloc filtré est mémorisé dans la mémoire d'images reconstruites 11. Le circuit de codage intra première passe 1 peut baser la sélection du meilleur mode intra, lors de cette passe de codage intra, sur différents modèles, par exemple sur un codage réel, c'est le modèle a posteriori ou bien sur une estimation du doublet coût/distorsion, c'est le io modèle à priori . Dans le premier cas, un module de décision de mode intra du circuit de codage intra première passe effectue un codage complet de chaque bloc 4 x 4 en utilisant les 9 modes intra 4 x 4 possibles et les 4 modes intra 16 x 16. Pour chaque mode intra 4 x 4 de chaque bloc du macrobloc, un coût de codage est calculé ainsi qu'une distorsion fonction de la différence entre le bloc source et le bloc reconstruit. Le mode correspondant au meilleur compromis coût / distorsion est choisi pour chacun des blocs du macrobloc. Le coût et la distorsion de codage au niveau du macrobloc global correspondant à la cornbinaison des modes intra 4 x 4 choisis est ensuite comparé au coût et distorsion pour les modes intra 16 x 16. Ce module est donc constitué d'un ensemble de blocs dont les fonctions réalisent les différentes opérations de codage intra, entre autres un soustracteur, un circuit de calcul de DCT et un quantificateur pour fournir des résidus, des circuits inverses de DCT et quantification, un additionneur pour reconstruire le bloc, une mémoire, une compensation de mouvement pour calculer le bloc prédit comme décrit plus loin en regard de la figure 4. Dans le deuxième cas, le modèle à priori, le module de décision de mode intra se contente d'estimer le coût de codage/distorsion sans effectuer un calcul du bloc reconstruit, à parti de l'erreur de prédiction. Une telle solution est proposée dans le modèle de référence du standard AVC. Les valeurs de prédiction sont extraites du bloc source et non du bloc reconstruit. Par exemple, la fonction SATD, acronyme de l'expression anglaise Sum of Absolute Transform Difference, est utilisée. Les différents modes de codage intra 4 x 4 et 16 x 16 sont mis en oeuvre pour donner, pour chacun des blocs 4 x 4 constituant le macrobloc, des erreurs de prédiction en soustrayant aux luminances sources les luminances prédites correspondant à ces modes. Une transformée de Hadamard des blocs d'erreurs de prédiction fournit ensuite des coefficients ou résidus qui sont sommés en valeur absolue. II est également possible d'effectuer la somme des carrés des erreurs de prédiction. La somme obtenue est indicative, en première approximation, de la distorsion. Le calcul du coût peut se limiter à celui de la syntaxe, c'est à dire les entêtes du macrobloc, sans prendre en compte le coût de codage des coefficients. Ce module comprend, entre autres, un soustracteur, un circuit de calcul de transformée. De même que pour la sélection du mode de codage intra dans la première passe de codage intra, la sélection du meilleur mode de codage inter/intra, réalisée par le circuit de décision de codage au niveau macrobloc 4, peut être basée sur un codage réel ou sur une estimation du couple coût/distorsion. Dans le premier cas, codage réel, le circuit comprend l'ensemble des blocs précédemment décrits permettant de calculer le coût de codage inter et intra et donc les blocs prédits du macrobloc et les résidus. II s'agit, entre autres, d'un soustracteur, un circuit de calcul de DCT, un quantificateur, des circuits inverses de DCT et quantification, un additionneur pour reconstruire le bloc et macrobloc, une compensation de mouvement pour calculer le bloc prédit. En ce qui concerne plus particulièrement le mode intra, le calcul du bloc de prédiction est en effet nécessaire, si l'on souhaite un calcul précis, car différent du bloc de prédiction calculé lors de la première passe pour ce bloc et mode intra sélectionné. Le mode intra première passe effectue un codage intra pur, c'est à dire que l'ensemble des macroblocs de l'image sont codés en mode intra. Le mode effectif de codage choisi par le circuit de décision de codage au niveau macrobloc peut être le mode inter ou intra et il est donc tout à fait possible que les valeurs de prédiction pour le calcul du mode intra soient issues de macroblocs codés en mode inter et donc de valeurs reconstruites différentes de celles calculées lors de la première passe. Dans le deuxième cas, valeurs estimées, le coût et la distorsion peuvent être estimées respectivement sur le seul coût de la syntaxe et sur la différence entre un bloc source et le bloc de prédiction. Toutefois, dans une variante permettant une architecture simplifiée, l'estimation de la distorsion, pour le mode intra, peut se faire en exploitant les valeurs de prédiction du bloc source et non du bloc reconstruit, en utilisant les informations coût/distorsion calculées par le circuit de codage intra première passe pour le mode intra sélectionné. Un circuit de codage intra première passe 1 selon le modèle 5 a posteriori est maintenant décrit à l'aide de la figure 4. L'entrée du circuit est alimentée par l'image source. Un circuit de conversion en blocs image fournit des blocs de dimensions 4 x 4 pixels au circuit soustracteur 22 qui alimente le circuit de transformation cosinus discrète et de quantification 23. Ce circuit est relié au circuit de codage to entropique 24 et au circuit de quantification inverse et transformation inverse 25. Un bloc prédit est transmis sur la deuxième entrée du soustracteur 22. Le circuit de quantification inverse et transformation cosinus discrète inverse 25 réalise les opérations inverses du circuit 23. L'additionneur 26 reçoit le bloc codé puis décodé provenant du circuit 25 sur une première entrée et le 1s bloc prédit sur une deuxième entrée pour fournir, en sa sortie un bloc intra reconstruit. Ce bloc d'image intra est mémorisé dans une mémoire de rangées de macroblocs 27. Un circuit de compensation spatiale 28 va chercher dans la mémoire 27, en fonction du mode de codage intra à tester reçu d'un circuit de décision de codage intra au niveau macrobloc référencé 21, les valeurs de prédiction du bloc à tester se trouvant sur la première entrée du circuit soustracteur 22, pour le calcul du bloc prédit présenté sur le deuxième entrée du soustracteur 22. Le circuit de décision de codage intra 21 passe en revue les différents modes de codage intra au niveau du macrobloc. II reçoit du circuit de codage entropique le flux de donnée permettant le calcul du coût de codage à partir de Ila syntaxe. L'estimation de mouvement décrite est effectuée sur l'image complète pendant le codage intra 1 ére passe. Il est tout aussi envisageable de réaliser cette estimation de mouvement de manière plus classique, macrobloc par macrobloc, lors du codage du macrobloc. De même, la première passe intra est effectuée, selon la description précédente, image par image. II est tout aussi envisageable de réaliser cette première passe, rangée de macroblocs par rangée de macroblocs. Si la norme exploitée permet une partition de l'image en paires de macroblocs, comme décrit par exemple au paragraphe 6.3 intitulé calculation of the macroblock address du document ITU -T Rec. H.264 (2002 E), le traitement première passe se fait alors par deux rangées de macroblocs. Le retard occasionné par ce traitement dit première passe correspond alors non plus à une image complète niais à une rangée ou deux rangées de macroblocs. Le circuit à retard 2 permet de mémoriser l'image courante à coder, la ou les rangées de macroblocs à coder pendant le traitement ou préanalyse relatif à la première passe. Le retard correspond donc à la durée d'une image, d'une ou deux rangées de macroblocs dans ces exemples. C'est pendant la mémorisation de l'image, de la rangée ou des rangées de macroblocs qu'est réalisé le codage effectif de l'image précédente, de la rangée ou des rangées précédentes, codage comportant l'étape de décision de codage au niveau macrobloc. Le partitionnement d'un macrobloc en blocs d'images a été décrit pour des blocs de dimensions 4 x 4 pixels. Tout partitionnement du macrobloc en des blocs de dimensions autres, pour la définition de modes intra, fait partie du domaine de l'invention, invention qui a d'ailleurs d'autant plus d'intérêt que le nombre de modes intra possibles d'un macrobloc, qui est au moins égal au nombre de combinaisons possibles des modes intra des blocs constituant le macrobloc, est important. Il est bien sûr également envisageable de considérer des modes correspondant à des découpes du macrobloc en blocs de tailles différentes entre eux. Le standard MPEG4 AVC propose un profil appelé high profile qui permet le codage de blocs de dimensions 8 x 8 de manière semblable aux 9 rnodes de prédiction intra 4 x 4 décrits. Selon les exemples de réalisation, l'image source est partitionnée en macroblocs d'image, un macrobloc étant défini par la norme MPEG. Il s'agit bien sûr d'exemples et l'invention s'applique également à tout type de partitionnement de l'image en blocs d'image, un macrobloc devant alors être considéré de façon plus générale, c'est à dire comme un ensemble de blocs, chaque bloc pouvant être l'objet d'un mode de codage intra particulier, la combinaison de ces modes définissant le mode de codage intra pour le macrobloc. Les pertes de qualité de codage dues à la mise en oeuvre du procédé restent mesurées. Ce dernier permet de paralléliser les processus de décisions et de supprimer, le cas échéant, le lien de causalité contraignant existant entre un macrobloc et son entourage pour le calcul de la prédiction intra. Le domaine de l'invention est celui des schémas de codage reposant sur l'utilisation de compensation de mouvement et de compensation spatiale. En particulier, il comprend le standard MPEG-4 AVC et les architectures matériel permettant le développement de produits de codage temps réel d'images de télévision standarcl. Le procédé proposé ne remet pas en cause l'intégrité du flux produit, puisqu'il affecte le processus de sélection du mode de codage mais pas le codage lui-même. En particulier, si le mode de codage intra est finalement retenu dans le processus de décisions inter / intra, le macrobloc to ou bloc sera codé en utilisant les pixels voisins précédemment codés et décodés, de façon à respecter le standard. 12 REVENDICATIONS 1 Procédé de codage d'une image vidéo en mode inter ou intra 5 comportant - une étape de conversion de l'image en macroblocs d'image -une étape de sélection (4), pour un macrobloc courant, en fonction d'un critère coût et/ou facteur de qualité, d'un mode de codage au moins parmi des modes inter dépendant d'une découpe du macrobloc en blocs et exploitant une compensation en mouvement (10) de ces blocs dans une ou des images précédemment codées et des modes intra dépendant d'une découpe du macrobloc en blocs et exploitant la compensation spatiale (16) de ces blocs dans l'image, compensations utilisées pour le calcul de valeurs prédites et de résidus correspondant à coder, un mode de codage inter ou intra d'un macrobloc correspondant à la combinaison des modes de codage inter ou intra des blocs constituant le macrobloc, caractérisé en ce que l'étape de sélection (4) est décomposée en deux étapes séquentielles, une étape de présélection (1) du mode de codage intra pour présélectionner un mode intra pour le macrobloc courant parmi les modes de codage intra, et en une étape de décision de codage, partie du codage effectif du macrobloc courant (4), pour sélectionner le mode de codage du macrobloc courant parmi les modes inter et le mode intra présélectionné et en ce que l'étape de présélection pour le macrobloc courant (1) est effectuée pendant l'étape de décision de codage pour un macrobloc précédent (4). 2 Procédé selon la revendication 1, caractérisé en ce que le macrobloc précédent appartient à une image précédente et le macrobloc courant appartient à une image courante, l'image courante étant mémorisée (2) pendant le codage effectif des macroblocs de l'image précédente. 3 Procédé selon la revendication 1, caractérisé en ce que le macrobloc précédent appartient à une rangée précédente de macroblocs de l'image courante et le macrobloc courant appartient à une rangée courante de macroblocs, la rangée courante de macroblocs étant mémorisée (2) pendant le codage effectif des macroblocs d'une rangée précédente. 4 Procédé selon la revendication 1, caractérisé en ce que l'étape de présélection (1) comporte une ou des découpes des macroblocs de l'image en blocs de différentes tailles sur lesquels sont effectuées les compensations spatiales pour le calcul des résidus, le coût de codage du macrobloc étant la somme des coûts de codage des blocs le constituant. io 5 Procédé selon la revendication 1, caractérisé en ce que des modes intra sont relatifs au choix des pixels à partir des valeurs desquels sont calculées les valeurs prédites. 6 Procédé selon la revendication 1, caractérisé en ce que les 15 modes intra des blocs, sont au moins les modes intra 16 x16 et 4 x 4 définis dans la norme H264. 7 Procédé selon la revendication 1, caractérisé en ce que le coût et/ou le facteur de qualité d'un mode intra pour un bloc d'un macrobloc sont obtenus en effectuant le codage du bloc selon le procédé de codage effectif des blocs lorsque ce mode de codage intra est sélectionné pour le bloc du macrobloc. 8 Procédé selon la revendication 1, caractérisé en ce que le coût et/ou le facteur de qualité d'un mode intra pour un bloc d'un macrobloc sont obtenus en effectuant une estimation à partir, respectivement, de la syntaxe du flux relative aux données codées selon le mode intra et de la différence entre le bloc source à coder et le bloc prédit selon le mode intra. 9 Dispositif de codage d'une image vidéo en mode inter avec compensation de mouvement ou en mode intra avec compensation spatiale, parmi des modes de codage inter et des modes de codage intra, selon un critère coût et/ou distorsion, caractérisé en ce qu'il comporte - un circuit de codage intra première passe (1) effectuant un 35 codage intra d'une image ou partie d'image pour sélectionner un mode de codage parmi un ensemble de modes de codage intra, - une mémoire (2) pour la mémorisation de l'image ou partie d'image pendant la première passe - un circuit de décision de codage (4) pour l'image ou partie d'image mémorisée transmise par la mémoire, entre des modes de codage de type inter et le mode de codage de type intra sélectionné transmis par le circuit de codage intra première passe. io