Brevet FR2925200A1 — publié le 20090619

PROCEDE DE CONVERSION DE FORMAT D'IMAGE VIDEO ET DISPOSITIF CORRESPONDANT Domaine de l'invention La présente invention concerne un procédé et un dispositif de conversion de format d'image vidéo. Il peut être mis en oeuvre dans un codeur ou décodeur vidéo ou directement dans tout type de dispositif d'affichage. Arrière-plan technoloqique de l'invention Il existe actuellement deux formats associés au standard de la télévision haute définition ou standard HDTV (pour High Definition TV en langue anglaise). Ces deux formats sont le format 720p et le format 1080i. Le format 720p produit des images progressives comportant 720 lignes et 1280 colonnes et le format 1080i produit des images entrelacées comportant 1080 lignes et 1920 colonnes. Chacun de ces formats a des avantages qui lui sont propres. Le format 720p présente une meilleure résolution temporelle et reproduit des objets se déplaçant rapidement sans créer d'effet de flou alors que le format 1080i présente une meilleure résolution spatiale. Les diffuseurs de programmes ont choisi d'utiliser l'un ou l'autre de ces formats mais pas les deux. Il y a donc un réel besoin de traiter, avant affichage, le format des programmes diffusés pour le transformer en un format supporté par le dispositif d'affichage utilisé pour afficher lesdits programmes. Il est connu de changer le format d'une image vidéo en effectuant premièrement une détection de l'orientation locale de contours dans l'image d'entrée puis en effectuant une interpolation en se basant sur les orientations détectées. Une distance représentative de l'orientation de contours est calculée en un point de l'image d'entrée ayant la même position spatiale (c.a.d les mêmes coordonnées spatiales) que le pixel de l'image de sortie à interpoler et cette distance est ensuite utilisée pour calculer la valeur de ce pixel de l'image de sortie. Ce procédé est relativement complexe et consommateur en termes de moyen de calcul. Résumé de l'invention La présente invention a pour but d'améliorer ce procédé. La présente invention concerne un procédé de conversion de format d'une image d'entrée en une image de sortie, comprenant les étapes suivantes -calculer, en au moins un point situé à l'intérieur d'une zone délimitée par un premier ensemble de pixels voisins de l'image d'entrée, une distance représentative d'une orientation de contour en ce point, -déterminer, pour au moins un pixel situé dans une zone de l'image de sortie correspondant à la zone délimitée par le premier ensemble de pixels voisins de ladite image d'entrée, un deuxième ensemble de pixels dans l'image d'entrée à partir de la distance calculée pour ledit point de la zone et de la position dudit pixel de l'image de sortie dans la zone de l'image de sortie, - déterminer la valeur dudit pixel de l'image de sortie à partir de la valeur des pixels du deuxième ensemble de pixels. Selon un mode de réalisation particulier, les pixels voisins du premier ensemble appartiennent à au moins deux lignes ou colonnes consécutives de pixels de l'image d'entrée. Le calcul de la distance représentative d'une orientation de contour est effectué en un seul point de la zone de l'image d'entrée pour réduire le nombre de calculs. Ce point est alors avantageusement situé au centre de ladite zone. Selon l'invention, la distance représentative d'une orientation de contour en un point de l'image d'entrée dépend d'un gradient local des composantes vidéo de l'image d'entrée en ledit point. Selon un mode de réalisation particulier, si la distance calculée dépasse une valeur maximale prédéfinie, la distance est écrêtée à ladite valeur maximale. Selon un autre mode de réalisation particulier, si la distance calculée dépasse une valeur maximale prédéfinie, la distance est ramenée à une valeur nulle. 35 Selon l'invention, la valeur du pixel de l'image de sortie est avantageusement déterminée par interpolation bilinéaire des pixels du deuxième ensemble.30 L'invention concerne également un dispositif de conversion de format d'une image d'entrée en une image de sortie, l'image d'entrée et l'image de sortie comportant des pixels, comprenant - un circuit de calcul pour calculer, en au moins un point situé à l'intérieur d'une zone délimitée par un premier ensemble de pixels voisins de l'image d'entrée, une distance représentative d'une orientation de contour en ce point, et - un circuit d'interpolation pour déterminer, pour au moins un pixel situé dans une zone de l'image de sortie correspondant à la zone délimitée par le premier ensemble de pixels voisins de ladite image d'entrée, un deuxième ensemble de pixels dans l'image d'entrée à partir de la ou des distance(s) calculée(s) pour le ou lesdits points de la zone et de la position du pixel de l'image de sortie dans la zone de l'image de sortie, et déterminer la valeur du pixel de ladite image de sortie à partir de la valeur des pixels du deuxième ensemble de pixels de l'image d'entrée. Brève description des dessins L'invention sera mieux comprise à la lecture de la description qui va suivre, donnée à titre d'exemple non limitatif, et en référence aux dessins annexés parmi lesquels : - la figure 1 illustre les étapes d'un premier mode de réalisation du procédé de l'invention; - la figure 2 illustre la position d'un point P de l'image d'entrée en lequel est calculée une distance représentative d'une orientation de contour, - la figure 3 illustre les paramètres utilisés pour calculer la valeur d'un pixel Pout de l'image de sortie localisé dans la même zone d'image que le pixel P de l'image d'entrée montré à la figure 2; - la figure 4 montre un dispositif apte à mettre en oeuvre le procédé de la figure 1; - la figure 5 illustre les étapes d'un second mode de réalisation du procédé de l'invention; et - la figure 6 montre un dispositif apte à mettre en oeuvre le procédé de la figure 7. Description détaillée de modes de réalisation préférés de l'invention Le procédé de l'invention est utilisé pour effectuer une conversion de format d'une image d'entrée. Le procédé produit une image de sortie ayant un format différent de celui de l'image d'entrée, l'image de sortie comportant un plus grand ou plus petit nombre de lignes et/ou de colonnes que l'image d'entrée. Les lignes et/ou colonnes de l'image de sortie sont générées par interpolation des lignes et/ou colonnes de l'image d'entrée. Selon l'invention, l'interpolation est une interpolation orientée contours, également appelée "edge orientated interpolation" en langue anglaise. Cette interpolation est plus particulièrement réalisée en se basant sur une détection des orientations locales des contours dans l'image d'entrée. Cette détection est effectuée en calculant des distances représentatives de l'orientation de ces contours. Un exemple de calcul de cette distance sera décrit plus loin dans la description. La figure 1 illustre les étapes d'un premier mode de réalisation du procédé de l'invention. Le procédé est appliqué à toute ou partie d'une image d'entrée pour générer une image de sortie de format différent. En référence à la figure 1, le procédé comporte une première étape 110 de calcul d'une distance représentative d'une orientation de contour en au moins un point situé à l'intérieur d'une zone délimitée par un premier ensemble de pixels voisins de l'image d'entrée. Cette zone est par exemple délimitée par 4 pixels adjacents appartenant à deux lignes consécutives et deux colonnes consécutives de l'image d'entrée. Selon l'invention, la distance calculée pour un point dans cette zone de l'image d'entrée est utilisée pour calculer la valeur des pixels de l'image de sortie présents dans cette zone de l'image. Un exemple de calcul de la distance d représentative d'une orientation de contour en un point de l'image d'entrée est décrit ci-après. Cette distance d est calculée en un point P de l'image d'entrée tel qu'illustré à la figure 2. La figure 2 montre 8 pixels de l'image d'entrée répartis sur deux lignes consécutives yn et yn+1 de l'image d'entrée. Ces pixels appartiennent aux colonnes de pixels numérotées xm-1, xm, xm+1 et xm+2 de l'image d'entrée. Les pixels de l'image d'entrée sont representés sur la figure par des points noirs. La distance est calculée en un point P situé à l'intérieur de la zone délimitée par les de coordonnées (xm,yn), (xm+1,yn), (xm+1,yn+1) et (xm,yn-F1). Le pixel P est repéré par les cordonnées (x',y') dans l'image d'entrée. Dans cet exemple, le point P est situé au centre de la zone délimitée par le pixels de coordonnées (xm,yn), (xm+l,yn), (xm+l ,yn+1) et (xm,yn+l). Un gradient horizontal, noté /,(x',y'), et un gradient vertical, noté lj,(x',y'), sont calculés pour la composante vidéo de luminance (Y dans l'espace des couleurs [Y,Cb,Cr] ou [Y,U,V]) en ce point P IX(x',Y') ax ()e,Y') = I(xm+2,Yn) +I(xm+2,Yn+1)-I(xm-1 ,yn)-I(xm-1 ,yn+l ) ly(x',Y') = ay ()es.) = I(xm,Yn+1) +I(xm+1,Yn+l )-I(xm,Yn)-I(xm+1,Yn) où I(x,y) désigne la composante de luminance au pixel de coordonnées (x,y). La distance d au point P est alors prise égale à : l (x' ,Y') d = y I (x',Y') La distance d calculée pour le pixel P est montrée sur la figure 2. Un segment de droite S relie le point de coordonnées (x'+d,yn) et le point de coordonnées (x'-d,yn+1). Selon l'invention, cette distance d calculée au point P est utilisée pour déterminer la valeur de tous les pixels de l'image de sortie appartenant à la zone de l'image de sortie correspondant à la zone délimitée par les points de coordonnées (xm,yn), (xm+1,yn), (xm+l ,yn+1) et (xm,yn+l) dans l'image d'entrée. Il est à noter que les coordonnées (xm,yn), (xm+1,yn), (xm+1,yn+l), (xm,yn+l) sont des coordonnées dans l'image d'entrée. L'image de sortie ayant un nombre de colonnes et un nombre de lignes différents de ceux de l'image d'entrée, les pixels délimitant cette zone ont des coordonnées différentes dans l'image de sortie. Bien entendu, il est possible d'étendre cette zone à toute zone englobant le point P de taille et/ou de forme différente. La conversion de format modifie le nombre et la position des lignes et/ou colonnes de pixels de l'image. Par exemple, dans l'image de sortie, une ligne y" de pixels est présente entre les lignes yn et yn+1 de l'image d'entrée et une colonne de pixels x" est présente entre les colonnes de pixels xm et xm+1 de l'image d'entrée. Un pixel P0Ut de l'image de sortie est présent à l'intersection de la ligne y" et de la colonne x" comme illustrée à la figure 3. Les coordonnées (x",y") sont les coordonnées du pixel Pont dans l'image d'entrée. L'image de sortie ayant un nombre de colonnes et/ou de lignes différents de ceux de l'image d'entrée, le pixel Pont a des coordonnées différentes, notées (xont, yont), dans l'image de sortie. La distance d calculée pour le point P est utilisée pour déterminer la valeurs de tous les pixels Pont présents dans la zone délimitée par les points de coordonnées (xm,yn), (xm+l ,yn), (xm+l ,yn+1) et (xm,yn+l). En se référant de nouveau à la figure 1, le procédé comprend en outre une étape 120 de détermination, pour au moins un pixel de l'image de sortie situé dans cette zone, d'un deuxième ensemble de pixels dans l'image d'entrée à partir de la distance d précédemment calculée et de la position de ce pixel de l'image de sortie dans cette zone. On calcule donc par exemple un deuxième ensemble de pixels de l'image d'entrée pour le pixel Pont. Cette étape est décrite en référence à la figure 3. Pour améliorer la compréhension de cette étape, les notations suivantes sont utilisées : - v est le rapport du nombre de lignes de l'image d'entrée sur le nombre de lignes de l'image de sortie; - r est le rapport du nombre de colonnes de l'image d'entrée sur le nombre de colonnes de l'image de sortie; Pour un pixel Pont de coordonnées (xont,yont) dans l'image de sortie, on détermine les lignes yn et yn+1 de pixels de l'image d'entrée les plus proches de la ligne yont. y" = v.yout yn = E(y") où E(x) désigne la partie entière de la variable x. Une phase verticale cp = y"ûy" représentant la distance entre la ligne y" du pixel Pont et la ligne yn de l'image d'entrée est définie. cp est compris entre 0 et 1 On détermine également les colonnes xm et xm+1 de pixels de l'image d'entrée les plus proches de la colonne xont. X" = r.xont xm = E(x") Une phase horizontale 0 = x"ûxm -0,5 représentant la distance entre la colonne x' du pixel Pont et le pixel P de l'image d'entrée est définie. 0 est compris entre -0,5 et 0,5. Si on translate horizontalement le segment de droite S pour qu'il passe par le pixel Pont, ce segment relie alors le point de coordonnées (xyn,yn) et le point de coordonnées (xyn+1,yn+1). On a alors xyn=x"+2.cp.d+8=x"+dsnp et xyn+l=x"+2.(1-(p).d+8=x"-dinf A noter que Idinf+dsupl= 2d. Le deuxième ensemble de pixels déterminé à l'étape 120 est alors par exemple: - le pixel de coordonnées (E(xyn),yn); - le pixel de coordonnées (E(xyn)+sign(d),yn) - le pixel de coordonnées (E(xyn+1),yn+1) - le pixel de coordonnées (E(xyn+1)-sign(d),yn+1) où sgn(x) est la fonction signe de x -1 if x 0 Dans l'exemple de la figure 3, le pixel de coordonnées (E(xyn),yn) est le pixel de coordonnées (xm+l ,yn), le pixel de coordonnées (E(xyn)+sign(d),yn) est le pixel de coordonnées (xm+2,yn), le pixel de coordonnées (E(xyn+1),yn+1) est le pixel de coordonnées (xm-1,yn+l) et le pixel de coordonnées (E(xyn+1)-sign(d),yn+1) est le pixel de coordonnées (xm-1,yn+1). En se référant de nouveau à la figure 1, l'étape suivante est l'étape 130 qui consiste à calculer la valeur du pixel de sortie Pont de coordonnées xont et yont dans l'image de sortie à partir de la valeur des pixels de l'ensemble déterminé à l'étape 120. Pour cette étape de calcul, on définit les paramètres a et 13 comme suit: a= E(xyn)ùxyn 13 = E(x yn+1) ùxyn+1 La valeur du pixel P de coordonnées (xont, vont) dans l'image de sortie est alors calculée par la formule suivante qui correspond à une interpolation bilinéaire: Iout(xout,yout ) = (1û(p).[(1ûa),Iin(E(xyn ),yn )+a.Iin(E(xyn )+sgn(d),yn )] +~p~(1ûR).lin(E(xyn+1),yn +1)+13.1in(E(xyn+1)+sgn(d),yn +1)1 où -I;n(x,y) désigne la valeur du pixel de coordonnées (x,y) dans l'image d'entrée et I0Ut(x,y) désigne la valeur du pixel de coordonnées (x,y) dans l'image de sortie. Ce calcul est effectué sur chaque composante vidéo du pixel. La distance d calculée pour la composante vidéo de luminance est utilisée pour le calcul de toutes les composantes vidéo du pixel de l'image de sortie. 10 D'autres formules pour le calcul des composantes vidéo des pixels de l'image de sortie peuvent être envisagées. Dans l'exemple ci-dessus, l'interpolation est bilinéaire. On peut envisager d'utiliser une interpolation linéaire ou une interpolation par sélection du plus proche voisin ou une combinaison d'interpolations linéaires ou bilinéaires. Ces interpolations sont 15 bien connues de l'homme du métier. On peut également envisager d'utiliser un plus grand nombre de lignes et/ou de colonnes pour l'interpolation. On peut enfin prévoir de changer de formule d'interpolation en fonction du module de la distance d. 20 La figure 4 illustre un dispositif 400 apte à mettre en oeuvre le procédé de l'invention. Yin, Cb;n et Crin désignent les composantes vidéo de l'image appliquée à l'entrée du dispositif et Y0ut, Cb0Ut et Cr0Ut désignent les composantes vidéo de l'image de sortie du dispositif. Ces composantes sont exprimées dans l'espace des couleurs [Y,Cb,Cr]. Bien entendu, d'autres 25 espaces de couleurs peuvent être employées tels que l'espace [Y,U,V] ou [R,G,B]. Dans le cas de composantes exprimées dans l'espace [R,G,B], une composante de luminance Y est recalculée pour déterminer les gradients locaux nécessaires au calcul de la distance. Le dispositif 400 comporte: - un circuit de calcul 410 des distances représentatives de 30 l'orientation des contours en des points de l'image d'entrée; ce circuit met en oeuvre l'étape 110 du procédé de l'invention; ce circuit délivre une carte de distances, et - un circuit d'interpolation 430 mettant en oeuvre les étapes 120 et 130 du procédé de l'invention à partir de l'image d'entrée et de la carte 35 de distances délivrée par le circuit 410; ce filtre délivre l'image de sortie.5 La figure 5 illustre un second mode de réalisation de l'invention. Ce second mode de réalisation comporte les étapes 501, 510, 520 et 530. Les étapes 510 à 530 sont identiques aux étapes 110 à 130 du premier mode de réalisation illustré par la figure 1. Ce second mode de réalisation comporte une étape supplémentaire, référencée 501, de filtrage de l'image d'entrée. Ce filtrage a pour but d'améliorer le calcul des distances d'orientation des contours de l'image d'entrée. Le filtre utilisé est basé sur un noyau gaussien. Ce filtre est appliqué à la composante Y de luminance du signal de l'image d'entrée. Ci-après, If désigne la composante I filtrée. La composante filtrée est alors : If(x,Y)=G(x,Y,6)*1 (x,Y)= ff JJ G(g,v,6).l (xù�,Yùv)d�dv 1 ( (x2 +y2) avec - G(x, y, 6) = 2n6 exp ù 26 i - 6 2 est la variance du noyau gaussien. Le filtre utilisé est par exemple le filtre à 5x5 coefficients suivant: 1 1 2 4 2 1 2 2 4 8 4 2 1 1 x[l 2 4 2 1]O 4 =x 4 8 16 8 4 100 100 2 2 4 8 4 2 1 1 2 4 2 1 La figure 6 illustre un dispositif 600 apte à mettre en oeuvre ce second mode de réalisation du procédé de l'invention. Yin, Cb;n et Crin désignent les composantes vidéo de l'image appliquée à l'entrée du dispositif et Ynut, Cb0Ut et Cr0Ut désignent les composantes vidéo de l'image de sortie du dispositif. Bien entendu, d'autres espaces de couleurs peuvent être employées tels que l'espace [Y,U,V] ou [R,G,B]. Dans le cas de composantes exprimées dans l'espace [R,G,B], une composante de luminance Y est recalculée pour déterminer les gradients locaux nécessaires au calcul de la distance. Ces composantes sont exprimées dans l'espace des couleurs [Y,Cb,Cr]. Le dispositif 600 comporte: - un premier filtre 601 pour mettre en oeuvre l'étape de filtrage 501; ce filtrage est appliqué à l'une ou à toutes les composantes vidéo du 30 signal de l'image d'entrée; - un circuit 610 de calcul des distances représentatives de l'orientation des contours de l'image d'entrée; ce circuit met en oeuvre l'étape 510 du second mode de réalisation du procédé de l'invention; ce circuit délivre une carte de distances, et - un circuit d'interpolation 620 mettant en oeuvre les étapes 520 et 530 du procédé de l'invention à partir de l'image d'entrée et de la carte de distances délivrée par le filtre 610; Ce circuit délivre l'image de sortie. Dans le procédé de l'invention défini précédemment, la distance calculée à l'étape 110 ou 510 est utilisée telle quelle pour déterminer les pixels du second ensemble. En variante, si la distance calculée dépasse une valeur maximale prédéfinie, cette distance est écrêtée à cette valeur maximale. Cette valeur maximale est par exemple égale à égale à 4 pixels dans le cas d'une image SD (pour "standard definition" en langue anglaise et définition standard en français). En effet, au-delà de cette valeur maximale, la valeur de la distance d peut ne pas être fiable et donc introduire des erreurs dans l'interpolation. Selon une autre variante, si la distance calculée dépasse cette valeur maximale, la distance est ramenée à une valeur nulle. Cette deuxième variante permet de diminuer encore plus les risques d'erreurs tout en étant toutefois moins précis dans l'interpolation sur certains contours. Bien entendu, l'invention ne se limite pas aux modes de réalisation décrits précédemment. Tout procédé ou dispositif de conversion de format dans lequel des distances représentatives d'orientations de contour sont calculés en des points de l'image d'entrée indépendamment de la grille de l'image de sortie, chaque point étant associé à une zone d'image, et dans lequel les valeurs des pixels dans une zone de l'image de sortie sont calculés à partir de la distance calculée pour cette zone et de la position de ces pixels de sortie par rapport au point de l'image d'entrée utilisé pour calculer cette distance tombe dans le champ de la présente invention. REVENDICATIONS 1. Procédé de conversion de format d'une image d'entrée en une image de sortie, caractérisé en ce qu'il comprend les étapes suivantes - calculer, en au moins un point situé à l'intérieur d'une zone délimitée par un premier ensemble de pixels voisins de ladite image d'entrée, une distance représentative d'une orientation de contour en ledit point, - déterminer, pour au moins un pixel situé dans une zone de l'image de sortie correspondant à la zone délimitée par ledit premier ensemble de pixels voisins de ladite image d'entrée, un deuxième ensemble de pixels dans ladite image d'entrée à partir de la calculée pour ledit au moins un point de la zone et de la position dudit pixel de l'image de sortie dans ladite zone de l'image de sortie, - déterminer la valeur dudit au moins un pixel de ladite image de sortie à partir de la valeur des pixels dudit deuxième ensemble de pixels. 2. Procédé selon la revendication 1, dans lequel lesdits pixels voisins dudit premier ensemble appartiennent à au moins deux lignes ou colonnes consécutives de pixels de l'image d'entrée. 3. Procédé selon la revendication 1 ou 2, dans lequel le calcul de la distance représentative d'une orientation de contour est effectué en un seul point de ladite zone de l'image d'entrée. 4. Procédé selon la revendication 3, dans lequel ledit point est situé au centre de ladite zone. 5. Procédé selon l'une quelconque des revendications 2 à 4, dans 30 lequel la distance représentative d'une orientation de contour en un point de l'image d'entrée dépend d'un gradient local de la composante vidéo de luminance de l'image d'entrée en ledit point. 6. Procédé selon l'une quelconque des revendications 2 à 5, dans 35 lequel, si ladite distance calculée dépasse une valeur maximale prédéfinie, ladite distance est écrêtée à ladite valeur maximale.25 7. Procédé selon l'une quelconque des revendications 2 à 5, dans lequel, si ladite distance calculée dépasse une valeur maximale prédéfinie, ladite distance est ramenée à une valeur nulle. 8. Procédé selon l'une quelconque des revendications 2 à 7, dans lequel la valeur dudit au moins un pixel de l'image de sortie est déterminée par interpolation bilinéaire des pixels dudit deuxième ensemble. 9. Dispositif de conversion de format d'une image d'entrée en une image de sortie, l'image d'entrée et l'image de sortie comportant des pixels, caractérisé en ce qu'il comprend - un circuit de calcul pour calculer, en au moins un point situé à l'intérieur d'une zone délimitée par un premier ensemble de pixels voisins de ladite image d'entrée, une distance représentative d'une orientation de contour en ledit point, et - un circuit d'interpolation pour déterminer, pour au moins un pixel situé dans une zone de l'image de sortie correspondant à la zone délimitée par ledit premier ensemble de pixels voisins de ladite image d'entrée, un deuxième ensemble de pixels dans ladite image d'entrée à partir de la distance calculée pour ledit au moins un point de la zone et de la position dudit pixel de l'image de sortie dans ladite zone de l'image de sortie, et déterminer la valeur dudit au moins un pixel de ladite image de sortie à partir de la valeur des pixels dudit deuxième ensemble de pixels.25