Brevet FR2903271A1 — publié le 20080104

L'invention concerne un procédé et un dispositif de codage d'une image en mode trame ou bitrame, le mode bitrame pouvant exploiter localement dans l'image, pour un groupe de macroblocs, le mode trame. La vidéo entrelacée est le format le plus utilisé pour la télévision. Une image bitrame ou frame en anglais se compose de deux trames paire et impaire aussi appelées haute et basse, top field et bottom field en anglais, qui représentent respectivement les lignes paires et impaires de l'image. La trame haute et la trame basse étant acquises à deux instants différents, certaines images d'une séquence présentent des artefacts d'entrelacement dus à un mouvement entre les deux acquisitions. Pour mieux supporter ce format, le standard MPEG 4 ou H264 permet de coder une image selon trois mode différents : bitrame , trame , MBAFF selon l'acronyme de l'expression anglaise Macro Block Adaptive Field Frame . En mode bitrame, l'image est codée telle quelle, en mode trame, les deux trames sont codés séparément. Le mode MBAFF peut être utilisé en addition du mode bitrame pour améliorer ce mode en permettant de séparer localement les trames de l'image. La figure 1 représente un groupe de macroblocs d'une image ou SuperMacroBloc SMB constitué de deux macroblocs MB verticaux, codé en mode trame ou en mode bitrame. Le codage du supermacrobloc en mode bitrame consiste à coder des macroblocs référencés 1 et 2 constitués chacun d'une alternance de lignes d'une première et d'une deuxième trame. Le codage du supermacrobloc en mode trame consiste à coder des macroblocs référencés 3 et 4 constitués chacun d'une succession de lignes appartenant respectivement à la première et à la deuxième trame. La figure 2 représente une image référencée 5 pour laquelle un balayage image est effectué par paire de macroblocs ou supermacrobloc référencé 6 permettant ce choix de codage en local. Se pose donc le problème de la sélection du mode, mode de codage trame ou bitrame pour l'image et, pour le mode de codage bitrame de l'image, mode de codage trame ou bitrame des supermacroblocs de l'image, qui permet d'optimiser la compression d'un point de vue débit/qualité de l'image. Deux types de solutions existent actuellement pour résoudre ce problème, celles qui reposent sur un critère a posteriori et celles qui reposent sur un critère a priori. Dans le cadre d'un algorithme a posteriori, le codage s'effectue en deux passes, une en mode trame et l'autre en mode bitrame ou bitrame + MBAFF. Le codeur mémorise alors les résultats obtenus après chacune des passes puis les compare à 2903271 2 l'aide d'une fonction d'optimisation basée sur un compromis débit/qualité de l'image. L'inconvénient de ce type de méthode est son coût en temps de calcul. Plusieurs approches a priori existent: Une première approche à priori est décrite dans le document intitulé Fast 5 decision on picture adaptive frame /field coding for H.264 , auteurs P. Yin, A. Tourapis, J. Boyce. L'algorithme décrit se propose de résoudre le problème dans le cas où le codeur a le choix entre les modes bitrame et trame uniquement. Il est basé sur l'hypothèse que les zones d'une image qui sont en mouvement sont très souvent mieux codées en mode trame qu'en mode bitrame. 10 L'idée principale est de détecter les supermacroblocs, constitués de 2 macroblocs verticaux, qui appartiennent à une région en mouvement, en utilisant le filtre de détection de mouvement présenté dans le document intitulé "A Robust Motion Detection and Estimation Filter For Video Signais", auteurs M. Latzel, J. K. Tsotsos, Proceedings of the 2003 SPIE Conf. on Image and Video Communication and 15 Processing, Jan. 2003. Si l'image est majoritairement composée de macroblocs en mouvement , l'algorithme prend la décision de la coder en mode trame, en mode bitrame dans l'autre cas. Le filtre détecteur de mouvement utilisé est donné par ses coefficients 20 KBP = [ù1,2,ù3,4,ù3,2,ù1]. Ce filtre est appliqué verticalement à l'imagel(x,y), c'est à dire aux valeurs de luminance de l'image, pour, en sortie, donner l'image IBP (x, y). Une image de masque est ensuite construite de la manière suivante: 1 si Il BP (x, y)l > Tl 0 sinon 25 avec T1, seuil prédéfini. Un supermacrobloc est considéré en mouvement si les pixels x,y de ce supermacrobloc SMB sont tels que: E M(x, y) > T2 x,yeSMB 30 avec T2, seuil prédéfini. Le ratio S de supermacroblocs en mouvement par rapport aux supermacroblocs dans l'image est alors calculé ainsi que la moyenne de la valeur absolue de la différence D en luminance entre l'image courante et sa référence. La décision bitrame/trame est prise pour toute l'image, comme suit: 35 - si l'image est de type intra et si S 0,5) OU ((S>0,3 ET D>4,5) ET (D REVENDICATIONS 1. Procédé de codage d'images (5) en mode trame ou bitrame, le mode bitrame 5 image (1, 2) pouvant exploiter localement dans l'image, pour un groupe de macroblocs, le mode trame (3, 4), caractérisé en ce qu'il comporte les étapes suivantes : - calcul, pour un groupe de macroblocs en mode trame, des activités spatiales de chaque macrobloc le constituant et de l'activité temporelle entre les macroblocs de 10 chaque trame le constituant, - calcul d'un indice d'activité relative du groupe qui est une fonction croissante de l'activité temporelle et une fonction décroissante des activités spatiales calculées, - comparaison (10) de l'indice d'activité relative du groupe à un seuil prédéfini pour le définir comme groupe avec activité (11), 15 - codage de l'image en mode trame ou bitrame (15, 16) en fonction du nombre de groupes de macroblocs détectés avec activité (14) par rapport au nombre de groupes de macroblocs dans l'image. 2. Procédé selon la revendication 1, caractérisé en ce que l'activité temporelle 20 est une fonction du gradient inter-trame (8) entre les macroblocs trames du groupe de macroblocs en mode trame et en ce que l'activité spatiale est une fonction du gradient intra-trame (7) entre les lignes prises deux à deux de chacun des macroblocs trames du groupe de macroblocs en mode trame. 25 3. Procédé selon la revendication 2, caractérisé en ce que l'indice d'activité est une fonction croissante du gradient inter-trame et une fonction décroissante de la somme des gradients intra-trame. 4. Procédé selon la revendication 1, caractérisé en ce que le dit groupe de 30 macroblocs est un supermacrobloc et en ce que le mode trame ou bitrame au niveau du groupe de macroblocs est le mode MBAFF, acronyme de l'anglais MacroBlock Adaptive Field Frame. 5. Procédé selon la revendication 4, caractérisé en ce que l'activité relative a 35 pour valeur : FLADInterMB 1 + FLADIntrrMBä + FLADIntraMBä_1 15 15 avec FLADInterMB =: E E I FYn(i, j) ùFYn -1(i, j) 1, j=o i=o R= 2903271 11 ~7+ 15 FLADIntraMBn = !~ FYn(i,2 j) -FYn(i,2j + 1) 1, j=0 i=0 FYn(i, j) représentant la valeur de luminance du pixel de coordonnée horizontale i et de coordonnée verticale j de la trame n du supermacrobloc. 6. Procédé selon la revendication 1, caractérisé en ce que, si le rapport du nombre de groupes de macroblocs déclarés avec activité sur le nombre total de groupes de macroblocs est supérieur à un seuil prédéterminé (14), l'image est codée en mode trame (15), l'image étant codée en mode bitrame MBAFF (16) dans le cas contraire. 7. Procédé selon la revendication 6, caractérisé en ce que le seuil prédéterminé (14) est Y2. 8. Dispositif pour la mise en oeuvre du procédé selon la revendication 1, comprenant un circuit de préanalyse pour effectuer un algorithme de décision de codage, relié à un circuit de codage pour le codage proprement dit d'une image en mode trame ou bitrame, caractérisé en ce que le circuit de codage reçoit du circuit de préanalyse une information de codage en mode trame ou bitrame en fonction du nombre de groupes de macroblocs détectés avec activité, dans l'image.