Brevet FR2857205A1 — publié le 20050107

I L'invention concerne un dispositif et un procédé de codage de données vidéo. L'invention s'applique plus particulièrement au codage d'images entrelacées, c'est à dire composées de deux trames échantillonnées à des instants distincts. Le codage d'images vidéo est nécessaire pour la transmission des données vidéo numériques dans les réseaux à bande passante limitée ainsi que pour les applications où le stockage constitue une limite. La compression des données vidéo numériques sans dégradation significative de la qualité est possible lorsque les séquences vidéo affichent un degré élevé de redondance spatiale, de redondance spectrale, de redondance temporelle, de redondance psycho-visuelle. Au cours des dernières années, l'intérêt pour le multimédia a conduit à l'émergence de nouveaux standards de compression et a vu le développement de standards tels que MPEG-2 et plus récemment H.264 défini sous la référence: ITU-T Rec. H.264 J ISOIIEC 14496-10 AVC. Ces normes visent un vaste éventail d'applications aux exigences variées quant au débit binaire, à la qualité d'image, à la complexité, à la résilience à l'erreur et au délai ainsi qu'à l'amélioration des rapports de compression. Le standard de compression H.264 a introduit, à l'image de ce qui était fait dans MPEG-2, la notion de structure de codage image ( frame en anglais) entrelaçant les lignes de l'image ou trame ( field en anglais) séparant deux trames de l'image. L'image ou la trame est constituée de rangées horizontales, chacune contenant 16 lignes de pixels. Dans chaque rangée, on trouve des macroblocs, chacun étant de dimension 16*16. Un macrobloc est organisé en 4 blocs de luminance et en 2, 4 ou 8 blocs de chrominance selon le type d'échantillonnage. Dans un schéma de compression formatant les données en mode image dans un macrobloc, les deux trames restent entrelacées dans un bloc commun. Dans le mode de codage de type trame, les deux trames sont séparées dans le macrobloc: un bloc correspond à la trame paire et un autre correspond à la trame impaire. On retrouve dans la norme H.264 les types d'image connus et définis dans la norme MPEG-2, à savoir: - Les images I (intra) dont le codage ne dépend d'aucune autre image, - Les images P (prédictives) dont le codage dépend d'images 10 reçues précédemment, - Les images B (bi-prédictives) qui dépendent d'images reçues précédemment et/ou postérieurement. Le groupe d'images entre deux images I est appelé GOP (acronyme anglais de Group Of Pictures signifiant groupe d'images), sa taille est variable et sa structure interne en terme de type d'images est également libre. Le modèle de référence de la norme H.264 a fait le choix de codage dit à posteriori, c'est-à-dire après codage de l'image dans les structures image ou trame. Le codage ayant fourni le meilleur compromis débit/distorsion est retenu. Un tel mode de codage est peu envisageable pour des applications temps réel car il est trop coûteux en temps ou en moyen de calculs: il impose le calcul des prédictions trames en structure image, des prédictions images en structure image, des prédictions trames en structure trame, soit 3 fois plus de calculs que le codage d'une source progressive (prédictions images en structure image) qui est déjà critique pour un format de télévision standard dans l'état actuel de la technologie. D'autre part, le modèle de référence du standard implémente une structure de GOP fixe, ce qui ne garantie pas que le choix de codage, bien qu'effectué en à postériori, permette d'obtenir le codage le meilleur en terme de compromis débit/distorsion. La présente invention propose un dispositif de codage dans lequel les choix de codage en mode trame ou image sont réalisés avant le codage. A cet effet, l'invention propose un dispositif de codage de séquences d'images vidéo, comportant - des moyens de mesurer l'activité spatiale des images vidéo à coder, - des moyens de mesurer l'activité temporelle des images vidéo à coder, - des moyens de coder les images en structure image ou en structure trame, Selon l'invention, les moyens de coder les images en structure image ou en structure trame sont aptes à choisir dynamiquement la structure trame ou image en fonction des mesures d'activité spatiale et temporelle de ladite image. L'invention peut rendre possible une réduction du nombre de calculs de 30 à 60% par rapport à l'approche du modèle de référence. Cette optimisation des calculs ne se fait pas au détriment de la qualité de codage: l'invention vise plus particulièrement des applications de qualité de codage élevée. Selon un mode préféré de réalisation, les moyens de codage étant aptes à coder les séquences vidéo sous forme de groupes d'images, ledit dispositif comporte des moyens de choisir la structure du groupe d'images (GOP) en fonction des mesures d'activité spatiale et temporelle. De cette manière, les séquences présentant une faible activité temporelle peuvent être codées en utilisant des groupes d'images comportant des séquences d'images B consécutives plus importantes que les séquences présentant une forte activité temporelle. Le couplage du choix de la structure de codage image/trame et de la structure GOP peut permettre de dépasser les performances du modèle de référence du standard. Dans une forme de réalisation préférée, le dispositif comporte des moyens de décider si les séquences vidéo sont de type entrelacé ou de type progressif. De cette manière, ceci rend possible de coder en structure image une séquence d'images de type progressif. En effet, les séquences progressives présentent une forte corrélation spatiale et il est donc préférable de les coder en structure image. Selon un mode préféré de réalisation, les groupes d'images comportant des images codées en mode intra, en mode prédictif et en mode bi-prédictif, les images de type bi-prédictif sont aptes à servir d'image de référence pour le codage de certaines images du groupe d'images. Préférentiellement, les groupes d'images sont aptes à comporter des 15 séquences composées d'un nombre quelconque d'images consécutives codées en mode bi-prédictif. Ceci est particulièrement intéressant dans le cas de séquences présentant une activité temporelle faible, le codage en mode bi-prédictif étant 20 peu coûteux. Selon un mode préféré de réalisation, lorsque la séquence d'entrée est de type entrelacée, les images de type I sont codées en structure trame, la seconde trame de l'image devenant une trame de type P (prédictif) par rapport à la première trame de l'image. Ceci peut rendre possible une réduction du coût de codage et donc une amélioration du débit de codage. L'invention concerne également un procédé de codage de données 30 vidéo, comportant les étapes de: - mesure de l'activité spatiale des images vidéo à coder, - mesure de l'activité temporelle des images vidéo à coder, codage des images en structure image ou en structure trame, Selon l'invention, le codage des images en structure image ou en structure trame choisit dynamiquement une structure trame ou image en fonction des mesures d'activité spatiale et temporelle de ladite image. L'invention concerne également un produit programme d'ordinateur caractérisé en ce qu'il comprend des instructions de code de programme aptes à mettre en oeuvre le procédé selon l'invention lorsque le programme est exécuté sur un ordinateur. L'invention sera mieux comprise et illustrée au moyen d'exemples de modes de réalisation et de mise en oeuvre avantageux, nullement limitatifs, en référence aux figures annexées sur lesquelles: - la figure 1 représente un dispositif de codage selon un mode préféré de réalisation de l'invention, - la figure 2 représente un mode préféré de réalisation d'un bloc diagramme fonctionnel de l'invention, - la figure 3 représente un mode préféré de calcul des corrélations intra et inter trames, - La figure 4 représente un groupe d'images (GOP) selon un mode préféré de réalisation de l'invention dans le cas de séquences à faible mouvement. La figure 1 représente un dispositif de codage selon le mode préféré de réalisation. Le dispositif de codage comporte un module 1 de pré-analyse qui reçoit en entrée les séquences d'images provenant du flux vidéo à coder. Le flux vidéo est également transmis à l'entrée d'un module 3 de réorganisation des images. La sortie du module 3 de réorganisation des images est connectée à l'entrée d'une boucle de codage 4 dont la sortie est connectée à un module de codage entropique 5 qui fournit en sortie le flux de données vidéo codées. Le module 1 de pré-analyse est connecté en sortie à l'entrée d'un module 2 de contrôle de codage qui fournit au module 5 de codage entropique des données de contrôle, qui fournit au module 3 de réorganisation des images le type d'image à coder et qui fournit à la boucle de codage 4 le type de structure de codage, à savoir un codage de type image ou trame. Le module 5 de codage entropique fournit en sortie le flux vidéo codé. 5 La boucle de codage 4 est une boucle de codage conforme aux boucles de codage définies dans la norme H.264. Selon d'autres modes de réalisation, cette boucle de codage peut obéir à d'autres normes de codage telles MPEG2 par exemple ou tout autre type de codage. Les fonctions des différents modules sont détaillées en référence aux figures suivantes. La figure 2 représente une décomposition en blocs fonctionnels des modules de pré-analyse 1 et de contrôle du codage 2 représentés en figure 1. Les blocs fonctionnels représentés peuvent ou non correspondre à des entités physiquement distinguables. Par exemple, ces modules ou certains d'entre eux peuvent être regroupés dans un unique composant ou constituer des fonctionnalités d'un même logiciel. A contrario, certains modules peuvent éventuellement être composés d'entités physiques séparées. Les modules 6 et 7 sont des modules de pré-analyse et les modules 8, 9 et 10 sont des modules permettant le contrôle du codage. Le module 6 effectue des calculs de corrélations trame. La figure 3 explique le schéma de corrélation utilisé par le module 6. La module 6 effectue une évaluation de l'activité spatiale comme indiqué ci-après. Le module 6 effectue une corrélation intra-trame de l'image courante en mesurant la corrélation intra-trame de chaque trame de l'image. La corrélation intra-trame de la trame paire est notée Clntra[0] et la corrélation intra-trame de la trame impaire est notée Clntra[1] comme indiqué en figure 3. j=nblines / 2 1 i=nbpels 1 CIntra[0] = Fn - Zj * 2, i) Fn - A * 2 + 1, i) j=0 i=0 j=nblines /2 1 i=nbpels 1 Clntra[1]= E Fn(j* 2,i) Fn(j* 2+1,i) j=o i=o j représente le nombre de lignes de chaque trame, considérée 5 séparément. F représente la valeur de la luminance du pixel (i,j). Le module 6 effectue une évaluation de l'activité temporelle comme indiqué ci-dessous. La période entre deux trames est notée T. Lors d'un signal à 50 Hz, la période trame est de 1/50 s et dans le cas d'un signal 60Hz, la période trame est de 1/60 s. Le module 6 effectue une mesure de la corrélation inter-trame entre la 15 première trame de l'image courante et la dernière trame de l'image précédente notée C T[0]. j=nblines 1 i=nbpels 1 C T[0]= E E Fn - 1(j, i) -Fn - 2(j, i) j=o i=o Le module 6 effectue une mesure de la corrélation inter trame entre la première trame de l'image courante et la première trame de l'image précédente notée C_2T[0]. j=nblines 1 i=nbpels 1 C 2T[O] = E E Fn - 1(j, i) Fn - 3(j,i) j=0 i=0 Le module 6 effectue une mesure de la corrélation inter trame entre la seconde trame de l'image courante et la première trame de l'image courante notée C_T[1]. j=nblines 1 i=nbpels 1 CT[1]= 1 E IFn(j,i) Fn-1(j,i) j=0 i=0 Le module 6 effectue une mesure de la corrélation inter trame entre la seconde trame de l'image courante et la seconde trame de l'image 5 précédente notée C_2T[1]. j=nblines 1 i=nbpels 1 C_2T[1]= E 1I Fn(j,i) Fn-2(j,i) j=0 i=0 Le module 6 fournit les mesures de corrélation inter-trame et intra-10 trame au module 7. Le module 7 comporte un module de décision progressiflentrelacé 11 et un module 12 de calcul de l'activité temporelle pondérée. Le module 11 détermine si la séquence courante reçue en entrée du dispositif de codage est issue d'une source progressive (un film par exemple) 15 ou d'une source vidéo entrelacée. A cet effet, il effectue la comparaison suivante: Si (0.9 * (C_Intra[0]+ C_Intra[1]) > C_T[1]), alors la séquence est considérée comme étant progressive, sinon la séquence est considérée comme étant entrelacée. Le module 12 effectue un calcul de l'activité temporelle pondérée par l'activité spatiale. Le codage de type image est approprié pour les séquences d'images à faible mouvement, c'est-à-dire les séquences d'images dont l'activité 25 temporelle est faible. Le codage de type trame est approprié, à l'inverse, pour les séquences d'images à fort mouvement, c'est-à-dire les séquences d'images dont l'activité temporelle est forte. L'activité temporelle est pondérée par l'activité spatiale. En effet, 30 lorsque les séquences sont très texturées et présentent donc une activité spatiale forte, le codage de type image, gardant toutes les lignes, donne de meilleurs résultats qu'un codage en mode trame qui lui ne garde qu'une ligne sur deux. L'activité temporelle pondérée est calculée selon la formule suivante: 1+min{C_T[0},C_T[1]} Act 2 + 0.5 * max{taille _ image, (C _ int ra[0]+ C int ra[l])} Les valeurs 2 et 0.5 sont données à titre indicatif et peuvent être modifiées dans d'autres modes de réalisation. Ensuite, le codage est effectué selon un mode trame ou un mode image en fonction de la valeur de Act et de la détection du type de codage, progressif ou entrelacé faite par le module 11. Le choix du codage est réalisé par le module 8 qui reçoit en entrée le type de séquence détecté et l'activité temporelle pondérée. Si le module 11 a détecté une séquence entrelacée pour la paire de trames (l'image) courantes, et pour la paire de trames précédentes, alors l'image courante peut être codée en utilisant un codage de type trame, sinon, l'image courante sera codée en utilisant un codage de type image. Si le mode de codage trame est possible, alors: Si Act > 3, l'image est codée en mode trame. Sinon, l'image est codée en mode image. Dans d'autres modes de réalisation la valeur de seuil égale à 3 peut être différente. Une modification de la valeur du seuil peut permettre de favoriser l'un ou l'autre des modes de codage. Ensuite le module 8 effectue le choix de la structure du groupe d'images (GOP). Si le module 8 a pris la décision de codage en mode trame, alors le GOP comportera entre chaque image P, une seule image B. La seule structure de GOP possible est alors. 10,0 10,1 B1,o B11 1 P2,0 P2,1 B3,0 B3,1 P4,0 P4, 1 B5,0 B5,1 P6,O P6,1. Où i,j dans X;i représentent respectivement le numéro d'image et le numéro de trame. La longueur du GOP n'est pas fixe. Si le module 8 a pris la décision de coder l'image en mode image, alors le nombre d'images B consécutives à l'intérieur du GOP peut être supérieur à 1. Dans ce cas, le module 8 calcule dans un premier temps, le nombre optimal d'images B consécutives en calculant la période I/P optimale T11p opt, c'est-à-dire la période entre une image I et l'image P suivante. T,/Popt = 7 2 * Act + 0.5 les valeurs 7, 2 et 0.5 sont données à titre indicatif et peuvent être modifiées dans d'autres modes de réalisation. Ensuite le module 8 calcule le nombre effectif d'images B: Le nombre effectif d'images B consécutives est parfois différent du nombre optimal d'images B en fonction des contraintes de l'application. La période I/P maximale peut en effet être imposée par des exigences de temps de traitement court dans la chaîne de codage-décodage. La période I/P est ainsi bornée par l'intervalle [2, période I/P maxi. La valeur 2 correspond à une image de type B entre une image de type I et une image de type P. Le module 8 transmet au module de décision finale 9 la proposition de type et structure d'image. Le module 9 reçoit également via le module 10 l'historique de décisions sur les dernières images codées. Si la structure et le type de codage du GOP courant sont différents de ceux proposés par le module 8, le module 9 ne tiendra compte de cette dernière proposition que si la structure du GOP courant ainsi que le type de codage peuvent être modifiés. Dans ce cas, un même GOP peut contenir des images codées en structure trame ou en structure image. Selon un mode préféré de réalisation, le GOP peut être raccourci afin de permettre le passage d'un codage de type trame vers un codage de type image ou inversement. Dans ce cas, chaque GOP possède une structure de codage, de type image ou trame, et une structure de GOP associée, constantes. Lorsque l'on change de structure, on change alors de GOP en codant la première image en mode intra. Ceci permet d'obtenir une qualité de codage performante et d'une grande stabilité et facilite également l'implémentation d'une régulation de débit pour un codage en boucle fermée. Le module 9 transmet ensuite les informations nécessaires au codage au module 3 de réorganisation des images représenté en figure 3 et à la 10 boucle de codage 4 représentée en figure 4 ainsi que des données de contrôle au module de codage entropique 5 représenté en figure 5. Les données de contrôle sont constituées par exemple des paramètres de haut niveau, indiquant le mode de codage entropique ( cabac ou cavlc en codage H.26L), le nombre d'images de référence pour les prédictions, la taille 15 de l'image (largeur, hauteur), le profil et le niveau ( level en anglais). Plus précisément, le module 2 de contrôle de codage transmet au module 3 de réorganisation des images le type dans lequel l'image suivante doit être codée (intra, bi-prédictif ou prédictif) et transmet à la boucle de 20 codage 4 la structure de l'image (trame ou image). Selon un mode préféré de réalisation de l'invention, l'image de type I est toujours codée en mode trame (avec la deuxième trame de l'image codée en type P par rapport à la première trame), quels que soient la structure et le 25 mode de codage du GOP courant, à partir du moment où la séquence est considérée de type entrelacé. Selon un mode préféré de réalisation de l'invention, lorsque le nombre d'images B insérées dépasse 2 (séquences à faible mouvement), les images 30 B seront utilisées comme images de référence possibles des autres images B. La figure 4 représente un exemple de groupe d'images selon ce mode préféré de réalisation. 2857205 12 La période entre une image I et une image P est de 4, c'est-àdire qu'il y a 3 images B entre une image I et une image P. L'image B2 centrale, comprise entre les deux autres images B est une image de référence pour le codage des deux images B l'entourant. Cette image B2 est codée, avant l'image B1, à partir de l'image 10 précédente du GOP courant et de l'image P4 suivante du GOP courant. L'image B1 est codée à partir de l'image IO précédente de l'image B2 suivante et de l'image P4 suivante. L'image B3 est codée à partir de l'image 10, de l'image B2, de l'image P4. Revendications 1. Dispositif de codage de séquences d'images vidéo, comportant - des moyens (1) de mesurer l'activité spatiale des images vidéo à coder, des moyens (1) de mesurer l'activité temporelle des images vidéo à coder, des moyens (2) de coder les images en structure image ou en 10 structure trame, caractérisé en ce que les moyens (2) de coder les images en structure image ou en structure trame sont aptes à choisir dynamiquement la structure trame ou image en fonction des mesures d'activité spatiale et temporelle de ladite image. 2. Dispositif de codage selon la revendication 1 caractérisé en ce que les moyens de codage étant aptes à coder les séquences vidéo sous forme de groupes d'images (GOP), ledit dispositif comporte des moyens de choisir la structure du groupe d'images (GOP) en fonction des mesures d'activité spatiale et temporelle. 3. Dispositif selon l'une des revendications précédentes caractérisé en ce qu'il comporte des moyens (11) de décider si les séquences vidéo sont de type entrelacé ou de type progressif. 4. Dispositif selon l'une des revendications précédentes caractérisé en ce que les groupes d'images comportant des images codées en mode intra (I) , en mode prédictif (P) et en mode bi-prédictif (B), les images de type biprédictif (B) sont aptes à servir d'image de référence pour le codage de certaines images du groupe d'images (GOP). 5. Dispositif selon la revendication 3 caractérisé en ce que les groupes d'images (GOP) sont aptes à comporter des séquences composées d'un nombre quelconque d'images consécutives codées en mode bi-prédictif (B). 6. Dispositif selon la revendication 3 caractérisé en ce que, lorsque la séquence d'entrée est de type entrelacé, les images de type intra (I) sont codées en structure trame, la seconde trame de l'image devenant une trame de type prédictif (P) par rapport à la première trame de l'image. 7. Procédé de codage de données vidéo, comportant les étapes de - mesure de l'activité spatiale des images vidéo à coder, - mesure de l'activité temporelle des images vidéo à coder, - codage des images en structure image ou en structure trame, caractérisé en ce que le codage des images en structure image ou en structure trame est choisit dynamiquement en fonction des mesures d'activité spatiale et temporelle de ladite image. 8. Produit programme d'ordinateur caractérisé en ce qu'il comprend des instructions de code de programme aptes à mettre en oeuvre le procédé selon la revendication 7 lorsque le programme est exécuté sur un ordinateur.