FR 2902265 A1 20071214 FR 0605254 A 20060613 DÉTECTION DE LA CADENCE D'UNE SÉQUENCE DE TRAMES VIDÉO L'invention concerne la détection de la cadence d'une séquence de trames vidéo. La détection de la cadence d'une séquence de trames est basée sur la recherche d'un motif de cadence, par exemple 10010 parmi une séquence de bits représentatifs du mouvement d'une trame à l'autre. Par cadence d'une séquence de trames, on entend donc une répétition d'au moins un motif de cadence dans la séquence de bits représentatifs du mouvement d'une trame à l'autre. La détection de cadence peut permettre de trouver le format source 10 d'une séquence de trames vidéo, ou de détecter une éventuelle absence de mouvement d'objet dans les images ("still pictures" en anglais). Il existe en effet plusieurs formats source. Par exemple, une caméra vidéo peut permettre de capturer 50 ou 60 images par seconde. Le format film prévoit que les images filmées sur pellicule sont capturées avec une 15 fréquence de 24 ou 25 images par seconde. Le nombre d'images par seconde peut être encore plus faible, par exemple autour de 8 images par seconde pour certains dessins animés japonais. II existe également plusieurs formats d'affichage. Le standard PAL ("Phase Alternating Line" en anglais), principalement utilisé en Europe, 20 prévoit l'affichage de 50 images par seconde. Le format NTSC ("National Television Standards Committee" en anglais), principalement utilisé aux Etats-Unis, prévoit l'affichage de 60 images par seconde. Par ailleurs, les standards usuellement utilisés en télévision prévoient un codage des images source en trames entrelacées (d'une demi- 25 image) successives comprenant des trames ayant des lignes de pixels paires d'une image à afficher donnée entrelacées, c'est-à-dire alternées, avec des trames ayant seulement des lignes de pixels impaires d'une image à afficher suivante. Plus généralement, selon le mode de balayage, une image est 30 décomposée en une trame, deux trames, voire davantage. Dans la présente 2 demande, le terme "trame" recouvre aussi bien une image complète qu'une demi-image, voire une plus petite fraction d'image. Par "séquence de trames vidéo", on n'entend pas se limiter au format vidéo en particulier, mais simplement indiquer qu'une trame correspond à 5 une image ou à une portion d'image. Ainsi, lorsqu'une séquence d'images au format film à 25 images par seconde est encodée selon le format PAL à 50 Hz, chaque image filmée est décomposée en deux trames entrelacées. Selon un autre exemple, lorsqu'une séquence d'images vidéo à 50 10 images par seconde est encodée selon le standard PAL, les images sont réduites chacune à une trame d'une demi-image, de parités respectives alternées. Selon un autre exemple, lorsqu'une séquence d'images au format film à 24 images par secondes est encodée selon le format NTSC à 60 15 images par seconde, chaque séquence de quatre images filmées consécutives est convertie en une séquence de dix trames d'une demi-image. Parmi ces dix trames, les trois premières proviennent par exemple d'une même première image filmée, les deux trames suivantes proviennent d'une deuxième image filmée, etc. Ainsi, deux des trois premières trames 20 sont identiques. Une telle conversion est dite conversion 3:2 ("3-2 pulldown" en anglais). II existe bien d'autres types de conversion. On peut citer la conversion 2:2 ("2-2 pulldown" en anglais) d'un format film à 24 ou 25 images par seconde vers le format PAL à 50 Hz, la conversion 2:3 ("2-3 25 pulldown" en anglais) d'un format à 24 images par seconde vers un format NTSC, les conversions 3:2:3:2:2 lorsqu'une station de télévision élimine une trame sur douze d'une séquence provenant d'images au format film, les conversions 2:2:2:4 et 2:3:3:2 d'images capturées selon un format DVCAM, les conversions 5:5, 6:4 ou 8:7 pour la conversion d'images de dessins 30 animés, etc. La détection de cadence est basée sur des comparaisons de pixels appartenant à des trames successives, indicées n, afin de déterminer l'existence de mouvements d'une trame à l'autre. En effet, une conversion 3 conduit typiquement à des variations brutales du mouvement. Par exemple, dans le cas d'une conversion 3:2, trois premières trames n-3, n-2, n-1, proviennent d'une même image filmée, de sorte que sensiblement aucun mouvement n'est détecté de l'une à l'autre de ces trames. Les deux trames suivantes n, n+1 proviennent d'une autre image filmée : un mouvement relativement élevé peut être détecté entre la troisième trame n-1 et la quatrième trame n, tandis que le mouvement entre la quatrième trame n et la cinquième trame n+1 est sensiblement nul. En analysant une séquence de bits représentatifs du mouvement, dite séquence de mouvements, déterminée par des comparaisons de pixels sur une séquence de trames, on peut repérer une répétition d'un motif et donc détecter qu'une conversion a été effectuée. La détection de cadence est ainsi basée sur une analyse de séquence de mouvements. La détection de cadence peut être utilisée dans des applications variées. Par exemple, un détecteur de cadence peut être couplé à un dispositif de désentrelacement, ou bien encore à un dispositif de compression. En effet, si une cadence particulière est détectée, le traitement peut être effectué relativement simplement, par de simples fusions de trames dans le cas d'un désentrelacement par exemple. Toutefois, en plus d'une conversion, une séquence d'images peut subir des répétitions et/ou suppressions de trames plus ou moins régulières. En particulier, il peut être nécessaire d'adapter des paramètres de balayage ("scanning parameters" en anglais) d'un format source à un format d'affichage. Les paramètres de balayage comprennent entre autres le nombre de trames pour une image (typiquement une ou deux), le nombre de lignes par image, le nombre de lignes pour une trame impaire et pour une trame paire, le nombre de lignes actives par image, le nombre d'échantillons par ligne, le nombre d'échantillons actifs par ligne, la fréquence d'horloge d'échantillonnage ("sample rate" en anglais), la fréquence de synchronisation horizontale ("line rate" en anglais), la fréquence de synchronisation verticale ("field rate" en anglais), un déphasage entre un signal de synchronisation horizontale et un signal de synchronisation verticale, etc. 4 Pour adapter ces paramètres de balayage d'un format source à un format d'affichage, on peut procéder à des répétitions ou suppressions régulières de trames. On parle de conversion de format de balayage. Par exemple, pour adapter un format à 50 images par secondes vers un format à 60 images par seconde, on peut procéder à une répétition d'une trame toutes les cinq trames. Pour d'autres formats source et/ou d'affichage, par exemple un format source à 59,94 images par seconde et un format d'affichage à 60 images par secondes, une régulation de flux peut être mise en oeuvre à l'aide d'une boucle de régulation. Plus généralement, il existe de nombreux traitements d'image, par exemple des traitements d'amélioration du contraste, de la qualité, des traitements de désentrelacement et autres, qui conduisent à une mémorisation provisoire des données d'images dans des mémoires tampon. Là encore, une boucle de régulation de flux peut être utilisée pour contrôler le remplissage des mémoires tampon et en particulier éviter tout dépassement ("overflow" en anglais). Une boucle de régulation permet d'asservir tout ou partie de ces paramètres au format désiré. Des ordres de régulation sont utilisés, par exemple des ordres de régulation d'horloge agissant sur la fréquence d'horloge d'échantillonnage, ou bien des ordres de régulation de lignes qui contrôlent le nombre de lignes balayées par trame en agissant par exemple sur la fréquence de synchronisation horizontale. Les ordres de régulation peuvent également comprendre des ordres de régulation de trames, qui conduisent à répéter ou à supprimer une trame. Ces opérations au niveau des trames peuvent en particulier avoir lieu lorsque la boucle de régulation est en régime transitoire, afin d'accélérer l'établissement d'un régime permanent. Une boucle de régulation de flux peut ainsi conduire à des répétitions/suppressions irrégulières de trames. Ainsi, des suppressions ou répétitions de trames peuvent être effectuées, en particulier à des fins de régulation de flux. Ces suppressions ou répétitions de trames affectent la détection de cadence. En effet, pour par exemple une séquence de trames résultant d'une conversion 3:2, on peut s'attendre à une séquence de mouvements du type 100101001010010... . Une suppression de la troisième trame par exemple conduit à une séquence de mouvement 10101001010010... , ce qui correspond à une conversion 2:2 sur les six premières trames. Une 5 répétition de la troisième trame conduit à une séquence de mouvement 1000101001010010... . Dans ces deux cas, on risque une fausse détection de rupture de cadence, voire une fausse détection de cadence. L'invention vise à s'affranchir des effets des suppressions ou répétitions de trames sur la détection de cadence. Selon un premier aspect, l'invention a pour objet un procédé de détection de cadence d'une séquence de trames vidéo, basé sur au moins une recherche de motif de cadence dans une séquence de bits représentatifs du mouvement d'au moins une partie de trame d'une trame à l'autre de la séquence de trames. Le procédé utilise une signalisation d'ordres de suppression et/ou d'ordres de répétition de trames préalablement appliqués aux trames de la séquence d'images. L'utilisation de cette signalisation de ces ordres permet une détection de cadence qui est relativement peu affectée par les éventuelles suppressions ou répétitions de trames. Classiquement, ce procédé est appliqué à chaque trame de la séquence. On peut toutefois prévoir de ne l'appliquer que périodiquement, par exemple à un rythme de une trame sur dix. Le procédé peut n'utiliser qu'une signalisation d'ordres de suppression de trames seulement. Alternativement, on peut n'utiliser qu'une signalisation d'ordres de répétition de trames. Alternativement encore, on peut utiliser une signalisation des ordres de suppression et des ordres de répétition de trame. Avantageusement, on utilisera un signal pour la signalisation des ordres de suppression de trames, et un autre signal pour la signalisation des ordres de répétition de trames. Ces signaux peuvent être binaires. Alternativement, on peut par exemple utiliser un seul signal sur au moins trois niveaux, pour signaler à la fois les ordres de répétition de trame et les ordres de suppression de trame. 6 La signalisation des ordres de suppression et/ou des ordres de répétition de trame peut par exemple comprendre une signalisation d'ordres de régulation de trames. Un ordre de régulation de trames conduit à répéter ou à supprimer une trame de la séquence de trames dans le cadre de la régulation de flux, et est appliqué par une boucle de régulation de flux. La signalisation peut également comprendre une signalisation d'ordres réguliers de suppression et/ou d'ordres réguliers de répétition de trames, effectués par exemple à des fins de conversion de format de balayage. Par exemple, pour adapter un format à 50 images par secondes vers un format à 60 images par seconde, un ordre régulier de répétition de trame peut être appliqué à la séquence de trames toutes les cinq trames. Bien entendu, l'invention n'est pas limitée par ces exemples de signalisations d'ordres de suppression et/ou d'ordres de répétition de trames. Le procédé de détection de cadence comprend typiquement, pour chaque trame courante de la séquence de trames, une comparaison de chaque pixel de la trame courante à au moins un pixel d'au moins une trame précédente. Ces comparaisons permettent d'attribuer à chaque pixel de la trame courante une valeur de phase de mouvement de pixel. Ces valeurs peuvent être utilisées pour décider d'une valeur de phase de mouvement d'au moins une partie de trame. Cette valeur est utilisée pour mettre à jour un historique des valeurs de phase de mouvement de cette trame ou partie de trame sur la séquence de trames. Chaque historique comprend ainsi une séquence de bits représentatifs du mouvement d'au moins une partie de trame d'une trame à l'autre. Un ou plusieurs motifs de cadence sont recherchés sur cet historique. A cet effet, pour chaque motif de cadence recherché, on génère des flots de bits de cadence ("bits stream" en anglais), chaque flot correspondant à une phase de cadence de ce motif de cadence. L'historique est comparé à chaque flot de bits de cadence. En cas de concordance avec un flot, on considère qu'il y a détection du motif de cadence correspondant à ce flot. Par abus de langage, on utilisera l'expression phase de mouvement pour désigner une valeur de phase de mouvement. 7 L'historique peut comprendre une séquence de bits représentatifs du mouvement de la trame complète : on réalise ainsi une détection de cadence par trame ("field-based cadence detection" en anglais). Alternativement, plusieurs historiques sont utilisés afin de réaliser plusieurs détections pour chaque trame, par exemple une détection pour chaque bloc de 80x80 pixels de la trame. On peut effectuer dans ce cas plusieurs recherches de motif de cadence par trame. En particulier, une image affichée peut être réalisée à partir de plusieurs sources mixées. C'est par exemple le cas lorsque des soustitres sont incrustés dans une séquence d'images d'un film, ou bien lorsque l'image est partitionnée afin de faire apparaître des zones distinctes, par exemple des cours de valeurs d'actions en bourse, ou bien encore des graphiques. Les trames d'une séquence donnée peuvent ainsi comprendre des zones émanant de différentes sources, par exemple une zone film ayant subi une conversion 3:2 et une zone vidéo directement acquise à 60 images par seconde. En outre, certains algorithmes de compression appliquent un encodage tel qu'une conversion 2:2 peut être localement introduite. Dans ces cas, une détection de cadence effectuée de façon locale peut permettre d'éviter une fausse détection pour certaines zones de l'image. Par exemple, chaque partie de trame peut comprendre un bloc de pixels, de sorte que la détection est effectuée par bloc ("block-based cadence detection" en anglais). Alternativement, chaque partie de trame peut comprendre une région comprenant des blocs pour lesquels une même cadence a été détectée, ou bien encore un objet, un objet étant défini en ce que les pixels d'un même objet se déplacent dans ces images suivant un même modèle de mouvement. La présente invention n'est donc pas limitée par la partie de trame au niveau de laquelle on effectue la détection. La signalisation d'ordres de suppression et/ou d'ordres de répétition de trames peut être utilisée lors de l'étape de mise à jour du ou des historiques. Par exemple, on peut prévoir un drapeau de répétition de trame positionné à 1 en cas d'ordre de répétition de trame : si ce drapeau est positionné, la mise à jour de l'historique est bloquée jusqu'à la trame suivante. 8 Selon un autre exemple, en cas de signalisation d'un ordre de suppression, on décale le ou les historiques d'un bit, puis on écrit dans le ou les espaces ainsi libérés une valeur arbitraire, par exemple zéro. Alternativement, si une cadence a été détectée pour un historique, on peut écrire la valeur attendue de phase de mouvement de trame ou partie de trame. Bien entendu, on peut utiliser la signalisation en amont de la mise à jour de l'historique. Par exemple, si le drapeau de répétition de trame est positionné, aucune comparaison de pixel n'est effectuée pour cette trame courante, ni aucune autre étape conduisant à la mise à jour d'un ou plusieurs historiques. La signalisation d'ordres de suppression et/ou d'ordres de répétition de trames peut être utilisée lors des étapes de comparaisons du ou des historiques à des flots de bits. Par exemple, le ou les historiques sont mis à jour sans tenir compte jusque là du drapeau de répétition de trame. Si ce dernier est positionné, alors on considère lors des comparaisons aux flots de bits qu'il y a concordance pour le bit correspondant à la trame répétée sur chaque historique. Tous les flots de bits sont ensuite décalés d'un bit afin de prendre en compte l'ordre de répétition. Selon un autre exemple, en cas de signalisation d'un ordre de suppression, on considère lors des comparaisons aux flots de bits qu'il y a concordance pour le bit correspondant à la trame supprimée sur chaque flot de bits. Tous les flots de bits sont ensuite décalés. Alternativement, en cas de signalisation d'un ordre de suppression, 25 on peut supprimer un bit à chaque flot de bits généré, puis procéder aux comparaisons. De manière générale, la présente invention n'est pas limitée par la manière dont la signalisation des ordres de suppression et/ou des ordres de répétition de trames est utilisée lors de la détection de cadence. 30 Selon un deuxième aspect, l'invention a pour objet un dispositif de détection de cadence d'une séquence de trames vidéo, comprenant des moyens de recherche de motif de cadence dans une séquence de bits représentatifs du mouvement d'au moins une partie de trame d'une trame à 9 l'autre de la séquence de trames. Ce dispositif de détection de cadence est agencé pour utiliser une signalisation d'ordres de suppression et/ou d'ordres de répétition de trames préalablement appliqués aux trames de la séquence de trames. Le dispositif peut par exemple comprendre des moyens de détection de mouvement de phase pour déterminer une valeur de phase de mouvement pour chaque trame courante ou partie de la trame courante, ainsi qu'une unité de contrôle de la détection pour mettre à jour le ou les historiques, cette unité étant reliée aux moyens de recherche de motif de cadence. Le dispositif peut également comprendre une mémoire pour stocker des registres partagés comprenant en particulier la ou les historiques. L'unité de contrôle de la détection, la mémoire et/ou les moyens de recherche de motif de cadence peuvent être agencée pour recevoir et traiter une signalisation d'ordres de suppression et/ou d'ordres de répétition de trames. Selon un troisième aspect, l'invention a pour objet un système de traitement comprenant, outre le dispositif selon le deuxième aspect de l'invention, un dispositif de traitement couplé au dispositif de détection de cadence. Le dispositif de traitement peut par exemple comprendre un dispositif de désentrelacement, un dispositif de compression, ou autre. Le système de traitement peut comprendre une boucle de régulation de flux pour adapter le format de la séquence d'images à un format de référence. La boucle de régulation de flux est agencée pour générer des ordres de régulation de trames à appliquer aux trames de la séquence d'images, et le dispositif de détection de cadence est agencé pour recevoir une signalisation de ces ordres de régulation de trames. Bien entendu, la signalisation des ordres de suppression et/ou des ordres de répétition de trames ne se limite pas à la signalisation d'ordres de régulation de trames. Selon un quatrième aspect, l'invention a pour objet un poste de télévision incorporant un système de traitement selon le troisième aspect de l'invention. 10 Selon un cinquième aspect, l'invention a pour objet un décodeur de télévision numérique incorporant un système de traitement selon le troisième aspect de l'invention. Bien entendu, le système de traitement peut alternativement être incorporé dans d'autres dispositifs. D'autres particularités et avantages de la présente invention apparaîtront dans la description ci-après. La figure 1 montre schématiquement un exemple de système de traitement selon un mode de réalisation de l'invention. La figure 2 montre schématiquement un exemple de système de traitement selon un autre mode de réalisation de l'invention. La figure 3 montre schématiquement un exemple de système de traitement selon un mode de réalisation de l'invention. La figure 4 montre schématiquement et de façon plus détaillée le détecteur de cadence illustré sur la figure 3. La figure 5 est un organigramme de procédé exécutable par l'unité de contrôle de détection représentée sur la figure 4. Exemple de système de traitement La figure 1 montre un exemple de système de traitement. Sur les figures 1 à 4, les flux vidéo sont représentés par des flèches en traits épais, tandis que les signaux de contrôle sont représentés par des flèches en traits fins. Une séquence de trames entrelacées issue d'une source 10 est reçue par une unité de traitement d'images 11 visant par exemple à désentrelacer les images de la séquence. Les données d'images correspondant à cette séquence de trames sont mémorisées provisoirement dans une mémoire tampon 12. Une boucle de régulation de flux 13 peut être utilisée pour contrôler le remplissage de la mémoire tampon et en particulier éviter tout dépassement de capacité ("overflow" en anglais). La boucle de régulation de flux 13 comprend un générateur de format 14 commandé par un vecteur de commande C. Un vecteur de mesure M est comparé à un vecteur de référence R issu d'un générateur de format de 11 référence 16. Un dispositif correcteur 15 permet de déterminer le vecteur de commande C à partir du résultat de la comparaison. Le vecteur de commande C comprend des ordres de régulation, par exemple des ordres de régulation d'horloge ou bien des ordres de régulation de lignes. Les ordres de régulation peuvent également comprendre des ordres de régulation de trames, qui conduisent à répéter ou à supprimer une trame. Le système représenté sur la figure 1 comprend également un détecteur de cadence 17 et un dispositif de traitement 18, par exemple un 10 dispositif de désentrelacement ou DEI. Dans le mode de réalisation illustré, seuls les pixels de luminance Y ("luma pixels" en anglais) sont utilisés par le détecteur de cadence 17. Alternativement, une détection du mouvement plus complexe et plus fiable pourrait être mise en oeuvre sur la base de comparaisons de pixels de 15 chrominance ("chroma pixels" en anglais). Le détecteur de cadence 17 est agencé pour utiliser une partie du vecteur de commande C, à savoir les éventuels ordres de régulation de trames. Ainsi, le détecteur de cadence 17 peut par exemple recevoir le vecteur de commande C en entrée. 20 Le détecteur 17 transmet des données au dispositif de désentrelacement 18, typiquement un motif de cadence éventuellement détecté. Ainsi, si par exemple une conversion depuis un format film est détectée, la séquence peut être reconstruite relativement facilement, en effectuant une fusion de deux trames successives correspondant initialement 25 à la même image filmée. La séquence désentrelacée est ensuite reçue par un dispositif d'affichage 19. Tout ou partie du système de traitement de la figure 1 peut être intégré dans un poste de télévision, ou dans un décodeur par exemple. 30 Autre exemple de système de traitement En référence à la figure 2, un dispositif de désentrelacement 21 ou DEI permet de convertir une séquence de trames vidéo d'un format entrelacé 12 à 480 lignes par image (noté 480i ) vers un format progressif (noté 480p ). Un dispositif de re-échantillonnage 22 ou H&V SRC (de l'anglais "sample rate converter" ou "rescaler") permet de passer à un format progressif à 1080 lignes par image (noté 1080p ). Le système de traitement comprend également un dispositif d'amélioration de la qualité d'image 23 ou 1OI (de l'anglais "image quality improvement"). Un dispositif d'entrelacement 24 ou P2I (de l'anglais "progressive to interlace") permet de passer à un format entrelacé à 1080 lignes par image (noté 1080i ). Le désentrelaceur 21 utilise deux trames ou plus pour reconstruire une image complète. Aussi le flux vidéo est-il temporairement mémorisé dans une mémoire tampon accessible par l'interface 20. Les données mémorisées sont adressées par un bus 28. Le bus 28 est commandé par des registres de commande 27, eux-mêmes contrôlés par un processeur de VBS 26 (de l'anglais "video buffer sequence") comprenant un automate. Si un détecteur de cadence 25 comprenant des moyens de recherche de motifs de cadence détecte une conversion, par exemple une conversion 2:2, l'automate du processeur 26 interprète un micro-code, stocké par exemple sous la forme d'un tableau (non représenté), et correspondant à la conversion détectée, pour réaliser une séquence VBS. La séquence VBS comprend des séquences d'indices de trames qui doivent être adressées par le bus 28 pour que le désentrelacement soit effectué de façon optimale par le DEI 21. Les dispositifs 25, 26 et 27 sont synchronisés par un signal de synchronisation verticale Vsync. Le processeur de VBS 26 mémorise ainsi un tableau pour chaque conversion détectable. Si en outre le nombre d'images par seconde doit passer de 50 à 60, le tableau comprend une ou des instructions de répétition régulière de trame. Ainsi, à intervalles réguliers, le bus 28 adresse deux fois les mêmes trames, et ce afin de passer à 60 images par seconde. Toutefois, les trames reçues par l'interface 20 sont également utilisées par le détecteur de cadence 25. Le processeur de VBS 26 applique ainsi des ordres de répétition de trames préalablement à la détection de cadence. 13 Le détecteur de cadence 25 est agencé pour recevoir en entrée un signal Vrepeat comprenant une indication d'un ordre de répétition de trame du fait du processeur de VBS 26. L'utilisation du signal Vrepeat permet d'éviter les fausses détections de cadence dues à des répétitions régulières de trames. Le détecteur de cadence 25 est en outre agencé pour recevoir en entrée un signal Vskip indiquant des ordres de suppression de trame. Ainsi, si par exemple le nombre d'images par seconde doit passer de 60 à 50, le détecteur de cadence prend en compte les ordres de suppression de trame du fait du processeur de VBS 26. On peut en outre doter le processeur de VBS 26 d'une entrée pour recevoir un signal de régulation C provenant d'une boucle de régulation de flux (non représentée sur la figure 2). Le processeur de VBS interprète les ordres de régulation de flux afin d'adapter la séquence d'adressage des trames et de générer les signaux Vrepeat et Vskip. Les signaux Vrepeat et Vskip indiquent ainsi les ordres de répétition de trame et les ordres de suppression de trame respectivement, non seulement du fait du processeur de VBS 26, mais également du fait de la boucle de régulation de flux. Tout ou partie du système de traitement de la figure 2 peut être intégré dans un poste de télévision, ou dans un décodeur par exemple. Autre exemple de système de traitement La figure 3 montre un exemple de système de traitement d'une séquence de trames entrelacées. La système comprend un détecteur de cadence 31 et un dispositif de désentrelacement 32. Bien entendu, le détecteur de cadence selon l'invention peut être utilisé dans d'autres applications. A titre d'exemple, le détecteur de cadence peut être relié à un dispositif de compression, afin de permettre de repérer des trames redondantes et de contribuer ainsi à une compression efficace. Le détecteur de cadence 31 comprend une entrée de synchronisation 30 verticale pour recevoir un signal de synchronisation verticale Vsync marquant le passage d'une trame à l'autre. 14 Le détecteur de cadence 31 comprend également une entrée d'ordre de répétition de trame, pour recevoir une signalisation d'ordres de répétition de trames préalablement appliqués aux trames de la séquence d'images. Cette signalisation comprend un signal Vrepeat. Le détecteur de cadence 31 comprend également une entrée de d'ordres desuppression de trame, pour recevoir une signalisation d'ordres de suppression de trames préalablement appliqués aux trames de la séquence d'images. Cette signalisation comprend un signal Vskip. Les signaux Vrepeat et Vskip peuvent être binaires, un '1' indiquant un ordre de répétition et un ordre de suppression respectivement. Le détecteur de cadence 31 peut transmettre au DEI 32 un motif de cadence (ou CP, de l'anglais "cadence pattern") éventuellement détecté pour une trame ou une partie de trame, et des données de statut (ou CD(n-1), de l'anglais "cadence data"). Détecteur de cadence La figure 4 montre de façon plus détaillée le détecteur de cadence 31 représenté sur la figure 3. Le détecteur de cadence 31 comprend un détecteur de mouvement 41 ou MD (de l'anglais "motion detector") recevant en entrée des trames de luminance courante Y(n), précédente Y(n-1) et suivante Y(n+1). Dans le mode de réalisation illustré par la figure 4, la détection de cadence est effectuée par bloc ("block-based cadence detection" en anglais). Les trames sont en effet découpées en blocs de 16x8 pixels, c'est-à- dire que les images correspondantes sont partagées en blocs de 16x16 pixels. Le format 16x16 pixels est classiquement utilisé en compression, de sorte que l'utilisateur est habitué à voir apparaître des artefacts sur les frontières de blocs de cette taille. En outre, les zones provenant de sources différentes ont souvent des frontières communes avec ce découpage classique en blocs de 16x16 pixels. On limite ainsi le nombre de blocs à cheval sur plusieurs zones. Bien entendu, l'invention n'est pas limitée par la taille des blocs. 15 Ainsi, le détecteur de mouvement 41 permet de déterminer une valeur de phase de mouvement de bloc B(n) pour chaque bloc de la trame courante. Le détecteur de cadence 31 comprend en outre une unité de contrôle de la détection 42 ou DCU (de l'anglais "detection control unit"). Le DCU 42 effectue une détection de cadence pour chaque bloc en utilisant des données de cadence et des motifs de cadence mémorisés dans des registres d'une unité de contrôle 44. Ces registres sont partagés entre le DCU 42 et un détecteur de mode film 43 ou FMD (de l'anglais "film mode detector"). Certains des registres destinés à stocker des données de cadence sont doubles ("double-buffered registers" en anglais) et synchronisés sur le signal de synchronisation verticale VSync. On peut ainsi à la fois mettre à jour un registre lors du traitement de la trame courante n et utiliser la valeur de ce registre pour la trame précédente n-1. Certains des registres destinés à stocker des données de cadence, par exemple un historique des valeurs de mouvements de phase de bloc mis à jour par le DCU 42, sont prévus en autant d'exemplaires que de blocs par trame, afin de permettre une détection par bloc. Pour chaque bloc, le FMD 43 permet de détecter un éventuel mode film en effectuant une recherche de motif de cadence dans chaque historique des valeurs de mouvements de phase de bloc. En cas de détection d'un mode film sur un bloc, un drapeau de mode film correspondant à ce bloc est positionné. Les blocs identifiés comme résultant d'une conversion depuis un format film sont destinées à être désentrelacés par le DEI par une simple fusion de trames ("field merging" en anglais). De façon avantageuse, on peut prévoir en outre un détecteur d'image fixe (non représenté) ou SMD (de l'anglais "still mode detector"). Pour chaque bloc, le SMD positionne un drapeau d'image fixe lorsqu'une absence de mouvement est détectée pour ce bloc. La valeur de ce drapeau est transmise au DEI, de sorte que le désentrelacement peut également être effectué de façon relativement simple. 16 Détecteur de mouvement Le détecteur de mouvement 41 met en jeu des comparaisons de trames, et utilise différentes métriques à cet effet. Toutefois, même dans le cas de trames identiques, les différences mesurées risquent d'être non nulles du fait du bruit. Aussi utilise-t-on avantageusement un détecteur de mouvement capable de fonctionner avec des signaux sur plusieurs niveaux plutôt que simplement des signaux binaires. Dit autrement, on préférera travailler avec des probabilités de mouvement plutôt qu'avec une simple indication de la présence ou de l'absence du mouvement. En outre, afin de réduire le nombre d'erreurs de détection dans des zones sans mouvement, le détecteur de mouvement 41 peut comprendre un filtre passe-bas (non représenté) sur les pixels de luminance ou LLPF (de l'anglais "luma low-pass filter"). Ce filtrage d'entrée peut se révéler insuffisant, en particulier lorsque le contraste est relativement faible. Des seuils, de valeurs déterminables empiriquement, peuvent être introduits pour réduire le taux de fausse détection. On peut également prévoir de rendre ces valeurs de seuil variables en fonction d'une estimation du contraste et du bruit de l'image. Ainsi, si les objets sont peu contrastés, les valeurs des seuils peuvent être relativement faibles. Les mouvements sont ainsi détectables même pour de relativement faibles valeurs de métriques ou de différences de métriques. On peut aussi prévoir de rendre ces valeurs variables en fonction de la taille des valeurs de luminance (8 bits ou 10 bits). Dans le mode de réalisation illustrée par les figures 3 et 4, les métriques BBD ("block-based sum of the luma differences" en anglais) et CFD ("consecutive field difference" en anglais) sont utilisées. On utilise les indices x, y respectivement de colonne et de ligne, pour situer un pixel dans une trame. Les trames sont elles-mêmes indicées n. Pour chaque pixel situé à une position (x,y) sur une trame n, des métriques de mouvement sont ainsi calculées. Pour plus de clarté, on appellera respectivement A(x,y,n), B(x,y,n), C(x,y,n) et D(x,y,n) les valeurs filtrées de pixels de luminance F(x,y,n+1), F(x,y+1,n), F(x,y-1,n) et F(x,y,n-1) à partir desquelles sont effectuées les comparaisons entre trames. Les métriques BBD et CFD sont ainsi définies par : BBD = A - D(1), et bloc CFD=EMIN( A-B A-C ) bloc De façon générale, dans le cas d'une détection de cadence par partie de trame, on calcule la somme des différences absolues entre A(x,y,n) et D(x,y,n) sur toute la partie de trame, et on calcule la somme des minima MIN(A-B, A-C ) sur toute la partie de trame : BBD= EA-D partie CFD= MIN( A-B,A-C) partie Dans le cas non représenté d'une détection de cadence par trame, on peut calculer les sommes sur les blocs de la trame des métriques BBD et CFD calculés à l'aide des relations (1) et (2) respectivement. On peut par exemple choisir des blocs de 80x80 pixels. En outre, on définit les métriques de mouvement M12, M23 et M13 comme les mouvements respectivement entre les trames précédente (n-1) et courante (n), entre les trames courante (n) et suivante (n+1), et entre les trames précédentes (n-1) et suivante (n+1). M12 est calculée en tant que somme, pour la trame précédente (n-1), et sur toute la partie de trame ou sur toute la trame, des minima MIN(A-B, A-C ) supérieurs à un seuil de bruit. M13 est calculée en tant que somme, pour la trame courante (n), et sur toute la partie de trame ou sur toute la trame, des différences absolues 25 entre A(x,y,n) et D(x,y,n). M23 est calculée en tant que somme, pour la trame courante (n), et sur toute la partie de trame ou sur toute la trame, des minima MIN(A - BI, A -C ) supérieurs au seuil de bruit. Dans ce mode de réalisation, les valeurs de M12, M23 et M13 sont ensuite utilisées pour déterminer la valeur d'un seuil programmable k_cfd Si M13 > k_cfd3 , le seuil k_cfd3 prenant par exemple la valeur 0,6, alors le seuil programmable k_cfd prend la valeur d'un seuil k cfd1, par exemple 2,1. Dans le cas contraire, le seuil programmable k_cfd prend la valeur d'un seuil k_cfd2, par exemple 1,1. Dans une variante, on utilisera plutôt le test suivant pour programmer la valeur du seuil k_cfd : M1M1M23 Si > kcfd3 , le seuil k_cfd prend la valeur k_cfd1. Dans le 3 cas contraire, le seuil k_cfd prend la valeur k_cfd2. Le seuil programmable k_cfd peut ensuite être utilisé pour déterminer la valeur de mouvement de phase de la partie de trame, en utilisant par exemple le test suivant : M23 Si > k _ cfd , bMove = 0, et bMove=1 dans le cas contraire. Le bit bMove est appelé bit de mouvement. Le bit bMove représente le mouvement entre deux trames successives. Avantageusement, on utilise également une représentation du mouvement entre deux trames de même parité, c'est-à-dire une trame (n-2) et une trame (n) par exemple. Cette représentation comprend un bit de bRepeat dont la valeur est estimée à partir des comparaisons entre les pixels A(x,y,n) et D(x,y,n). Par exemple, le bit bRepeat est positionné si le BBD sur la partie de trame est inférieur à un seuil t_repeat, représentatif d'une répétition entre la trame (n-2) et la trame (n). Dans le cas d'une détection de cadence par trame, on peut pour chaque bloc de 80x80 pixels, calculer les métriques BBD et CFD pour ce bloc, à l'aide des relations (1) et (2). La BBD de chaque bloc de 80x80 pixels est comparée au seuil t_repeat. Un seul bit bRepeat est positionné pour toute la trame si et seulement si toutes les BBD sont inférieures au seuil t repeat. 19 La phase de mouvement de partie de trame ou de trame P(n) ainsi déterminée est un vecteur comprenant les bits bMove et bRepeat pour cette partie de trame ou pour cette trame. Dans le cas d'une détection par bloc, la phase de mouvement de bloc 5 B(n) de chaque bloc est un vecteur comprenant les bits bMove et bRepeat pour ce bloc. Registres de contrôle et de statuts L'unité de contrôle (référence 44 sur la figure 4) permet de stocker un certain nombre de registres, utilisables par le DCU 42 et le FMD 43. Le 10 tableau ci-dessous représente les registres de cadence ainsi stockés : Taille Nom description 1x40 bits tbMove 1 en cas de détection de mouvement entre deux trames successives 1x40 bits tbSkip 1 en cas d'ordre de suppression préalable de trame 1x40 bits tbRepeat 1 en cas de détection d'absence de mouvement entre deux trames de même parité 1 bit bFilmMode 1 si mode film 8 bits ucPattern Indice de motif 8 bits ucPhase Indice de phase de cadence Pour chaque bloc, on prévoit un jeu de registres comprenant un registre tbMove, un registre bFilmMode, un registre ucPattern et un registre ucPhase. Ces trois derniers registres sont doubles, afin que leur valeur pour 15 une trame précédente puisse être utilisée tandis que leur valeur pour la trame courante est écrite. Par ailleurs, l'unité de contrôle permet également de mémoriser, pour chaque motif de cadence, un jeu de registres de motifs de cadence comprenant les registres ucLength, ucDelay et tbPhase. Ces registres sont 20 décrits plus loin. 20 Unité de contrôle de la détection (DCU) Pour chaque bloc, le DCU commande la détection de cadence en utilisant la valeur de la phase de mouvement de bloc B(n) calculée pour la trame courante (n). Le DCU met à jour des registres de cadence de par exemple 40 bits tbRepeat, tbMove et tbSkip. Ces registres sont mémorisés dans l'unité de contrôle (référence 44 sur la figure 4). On compte un seul registre tbSkip. En revanche, on dénombre autant de registres tbMove et tbRepeat que de blocs par trame. Le DCU prend en compte les signaux Vskip et Vrepeat de signalisation d'ordres de suppression et de répétition de trame respectivement. L'organigramme de la figure 5 montre un exemple de procédé de mise à jour de ces registres, effectué pour chaque trame courante. Le procédé comprend des étapes, référencées 51, pour affecter une valeur à une variable ifield en fonction des valeurs des signaux Vskip et Vrepeat. La variable ifield prend la valeur -1 si Vskip est positionné, 1 si Vrepeat est positionné, et 0 si aucun des signaux Vskip, Vrepeat n'est positionné. Une boucle 53 est mise en oeuvre, et indicée par une variable i prenant initialement la valeur de la variable ifield (étape 52). Le nombre d'exécutions de la boucle dépend de la valeur de la variable ifield. Un test 59 est effectué quant à la valeur de la variable i, de sorte qu'en cas d'ordre de répétition de trame, la boucle 53 n'est pas exécutée. Dit autrement, les registres de cadence tbRepeat, tbMove et tbSkip ne sont pas mis à jour. La trame répétée est ainsi ignorée et ne perturbe pas davantage la détection de cadence. Si la variable i est nulle, c'est-à-dire si aucun ordre de répétition ni de suppression de trame n'a été appliqué au niveau de la trame courante, alors la boucle 53 est exécutée une seule fois (étapes 60 et 59 d'incrémentation et de test). Si la variable i est initialement égale à -1, c'est-à-dire si un ordre de suppression de trame été appliqué au niveau de la trame courante, alors la 21 boucle 53 est exécutée deux fois (étapes 60 et 59 d'incrémentation et de test). Lors d'une exécution de la boucle 53, on procède à des décalages d'un bit des registres de cadence tbRepeat, tbMove et tbSkip (étape 54). Si c'est la première fois que la boucle est exécutée (étapes d'initialisation 52 et de test 61), alors on écrit dans les espaces libérés par les décalages des registres tbSkip et tbRepeat une valeur nulle et la valeur courante du bit bRepeat pour ce bloc respectivement (étape 56). Le registre tbRepeat est ainsi mis à jour. Le registre tbMove est également mis à jour en écrivant dans l'espace libéré par le décalage de l'étape 54 la valeur du bit bMove (étape 57). Avantageusement, cette écriture n'est pas effectuée si aucun mouvement n'est détecté entre les trois dernières trames de même parité (test 62 quant aux dernières valeurs du registre tbRepeat). On suppose alors qu'un éventuel bit bMove à 1 indiquant un mouvement inter-trames résulterait d'une erreur de détection et on préfère affecter au dernier bit du registre bMove une valeur nulle (étape 58). Avantageusement, l'étape 57 n'est pas non plus exécutée si un ordre de suppression de trame a été appliqué (test 62 quant à l'avant-dernière valeur du registre tbSkip). On suppose en effet que cette suppression conduit à une estimation faussée du bit bMove lors des comparaisons de trame, et on préfère affecter au dernier bit du registre bMove une valeur nulle (étape 58). Si la boucle 53 est exécutée pour la deuxième fois, c'est-à-dire si un ordre de suppression de trame été appliqué au niveau de la trame courante (étapes 60 et 61), les décalages d'un bit des registres de cadence tbRepeat, tbMove et tbSkip de l'étape 54 sont effectués à nouveau. Du fait de la signalisation de l'ordre de suppression de trame, ces registres sont ainsi décalés deux fois. On affecte aux bits ainsi libérés des registres tbRepeat et tbMove une valeur nulle (étape 55). Le dernier bit du registre tbSkip est positionné (étape 55). Ce dernier positionnement permet de prendre en compte la signalisation de l'ordre de suppression de trame à un stade 22 ultérieur, typiquement lors de la recherche de motif de cadence effectuée par le FMD. Détecteur de mode film (FMD) Pour chaque bloc, le FMD effectue une recherche de motifs parmi les 5 bits du registre tbMove. En effet, pour par exemple une région résultant d'une conversion 3:2, le registre tbMove correspondant peut comprendre, outre des '0' significatifs d'une absence de mouvement au niveau de la région, des motifs '10010'. Pour une région résultant d'une acquisition vidéo, on n'observera 10 probablement pas de motifs à proprement parler, mais des séquences de '1'. Le tableau ci-dessous montre quelques exemples de conversions et les motifs associés : Nom Longueur Motif Usage du motif 2:2 2 10 Conversion d'images film 3:2 5 10010 Conversion d'images film 2:2:2:4 10 1010101000 DVCAM 2:3:3:2 10 1010010010 DVCAM 5:5 10 1000010000 Animation 6:4 10 1000001000 Animation 3:2:3:2:2 12 100101001010 Diffusion accélérée pour laisser davantage de temps aux publicités 8:7 15 100000001000000 Animations japonaises La recherche de motifs met en oeuvre un certain nombre de registres 15 de motifs de cadence. On peut citer, pour chaque motif détectable : un registre de par exemple 20 bits tbPhase destiné à recevoir ledit motif, par exemple 10010 ; un registre ucLength de par exemple 8 bits pour mémoriser la longueur du motif, par exemple 5, et 23 un registre ucDelay de par exemple 8 bits, pour mémoriser un paramètre de longueur intervenant dans le délai de la détection, par exemple, la longueur des flots de bits de cadence ("cadence bit-stream" en anglais) auxquels le contenu du registre tbMove est comparé bit par bit. Pour chaque conversion détectable, et pour chaque phase de cadence, le FMD génère un flot de bits de cadence, par exemple les cinq flots 1001010010... , 0010100101001... , 010100101001... , 101001010010... et 01001010010... dans le cas d'une conversion 3:2. Si l'un de ces flots de bits concorde avec le flot de bits mémorisé dans le registre tbMove, alors une cadence film est détectée. On peut utiliser l'équation logique suivante: bHitl = (bPhase AND bMove) OR (NOT(bPhase) AND NOT(bMove)) OR (bSkip), où bHitl est un bit de succès représentant une concordance au niveau d'un bit, où bMove représente le bit du registre tbMove comparé, où bPhase est la valeur du registre tbPhase pour une phase de cadence donnée, compte tenu du paramètre de longueur ucDelay. Dit autrement, pour un bit bMove du registre tbMove donné, bPhase représente la valeur attendue de ce bit pour un motif de cadence donné et une phase de cadence donnée, et où bSkip représente la valeur du bit du registre tbSkip correspondant au bit bMove comparé. On remarque que si la signalisation d'ordres de suppression de trames indique qu'une suppression a préalablement été effectuée, alors la comparaison est automatiquement un succès (bHitl =1). Les ordres de suppression de trames sont ainsi pris en compte lors des comparaisons. Lorsque, pour un bloc donné, tous les bits d'un flot de longueur définie dans le registre ucDelay concordent avec les bits du registre tbMove de ce bloc, le drapeau bFilmMode de ce bloc est positionné, et un indice du motif correspondant à ce flot est mémorisé dans le registre ucPattern de ce bloc. 24 La phase de cadence correspondant au flot donné est mémorisée dans un registre ucPhase. On considère alors que la cadence est verrouillée, c'est-à-dire qu'il ne suffit pas d'un bit bHitl de succès à zéro pour abaisser le drapeau bFilmMode. On utilise un bit bHit2 défini ci-dessous. Lorsque le drapeau bFilmMode est positionné à '1', l'indice du motif et la phase de cadence respectivement mémorisés dans les registres ucPattern et ucPhase sont utilisés pour générer un prochain bit attendu bPhase. Ce bit attendu est comparé à une phase de mouvement détectable afin de repérer une éventuelle rupture de cadence. On peut utiliser l'équation logique suivante : bHit2 = bHitl OR (NOT(bMove)) (1) Dit autrement, même dans le cas où bHitl = 0, si aucun mouvement n'est détecté, on ne détecte pas de non concordance. On considère en effet qu'une image fixe ne constitue pas une condition de rupture. En cas de rupture de cadence pour un bloc, c'est-à-dire bHit2 = 0, le drapeau bFilmMode correspondant à ce bloc est remis à zéro. Une détection de mode film recommence pour ce bloc, avec une recherche de motif pour chaque phase de cadence de chaque motif détectable. Avantageusement, le registre tbRepeat mémorisant une séquence de mouvements entre trames de même parité est également utilisé. On peut par exemple comparer les deux derniers mouvements de phase attendus, lus dans le registre tbPhase, à la dernière valeur du registre tbRepeat, selon l'équation : bHit3 = ((NOT(bPhase[0]) AND (NOT(bPhase[1]) AND bRepeat) OR ((bPhase[0] OR bPhase[1]) AND (NOT(bRepeat)) OR bSkip, où bHit3 est un bit de succès représentant une concordance au niveau d'un bit, où bPhase[0] représente la phase de mouvement attendue entre les trames successives (n) et (n-1), où bPhase[1] représente la phase de mouvement attendue entre les trames successives (n-1) et (n-2), 25 et où une valeur de bRepeat à 1 représente l'absence de mouvement entre les trames de même parité (n) et (n-2). On remarque que là encore, si la signalisation d'ordres de suppression de trames indique qu'une suppression a préalablement été effectuée, alors la comparaison est automatiquement un succès (bHit3=1). Les ordres de suppression de trames sont ainsi pris en compte lors des comparaisons. La valeur du bit bHit3 peut intervenir comme condition de verrouillage par exemple. Avantageusement, on peut utilise une connaissance a priori du format de la source pour limiter le nombre de motifs de cadence pour lesquels on effectue une recherché sur l'historique tbMove. Par exemple, si on sait qu'au moins une partie de l'image provient d'une source film à 50 images par secondes et que le format d'affichage est également à 50 images par seconde, on peut effectuer des recherches pour le motif 2:2 seulement.15 REVENDICATIONS 1. Procédé de détection de cadence d'une séquence de trames vidéo, basé sur au moins une recherche de motif de cadence dans une séquence de bits représentatifs du mouvement d'au moins une partie de trame d'une trame à l'autre de la séquence de trames, le procédé utilisant une signalisation d'ordres de suppression (Vskip) et/ou d'ordres de répétition de trames (Vrepeat) préalablement appliqués aux trames de la séquence de trames. 2. Procédé de détection de cadence selon la revendication 1, dans lequel la signalisation d'ordres de suppression et/ou d'ordres de répétition de trames comprend une signalisation d'ordres de régulation de trames (C) appliqués aux trames de la séquence de trames par une boucle de régulation de flux (13). 3. Procédé de détection de cadence selon l'une quelconque des revendications 1 et 2, dans lequel la signalisation d'ordres de suppression et/ou d'ordres de répétition de trames comprend une signalisation d'ordres réguliers de suppression et/ou d'ordres réguliers de répétition de trames appliqués lors d'une conversion de format de balayage. 4. Procédé de détection de cadence selon l'une quelconque des revendications 1 à 3, comprenant, pour chaque trame une étape de mise à jour (53) de la séquence de bits représentatifs du mouvement, ladite étape de mise à jour utilisant la signalisation d'ordres de suppression (Vskip) et/ou d'ordres de répétition de trames (Vrepeat). 27 5. Procédé de détection de cadence selon l'une quelconque des revendications 1 à 4, comprenant, pour chaque trame une étape de comparaison de la séquence de bits représentatifs du mouvement à une pluralité de flots de bits, chaque flot de bits correspondant à un motif de cadence et à une phase de cadence donnés, et dans lequel ladite étape de comparaison utilise la signalisation d'ordres de suppression et/ou d'ordres de répétition de trames. 6. Dispositif de détection de cadence (31) d'une séquence de 10 trames vidéo, comprenant des moyens de recherche (43) de motif de cadence dans une séquence de bits représentatifs du mouvement d'au moins une partie de trame d'une trame à l'autre de la séquence de trames, ledit dispositif de détection de cadence étant agencé pour utiliser une 15 signalisation d'ordres de suppression (Vskip) et/ou d'ordres de répétition de trames (Vrepeat) préalablement appliqués aux trames de la séquence de trames. 7. Système de traitement d'une séquence de trames vidéo, 20 comprenant un dispositif de détection de cadence (17, 25, 31) selon la revendication 6, et un dispositif de traitement (18, 21, 32) couplé au dispositif de détection de cadence. 25 8. Système de traitement selon la revendication 7, dans lequel le dispositif de traitement comprend un dispositif de désentrelacement (18, 21, 32). 30 9. Système de traitement selon l'une quelconque des revendications 7 et 8, comprenant en outre une boucle de régulation de flux (13) pour adapter le format de la séquence de trames à un format de référence,10 28 et dans lequel la boucle de régulation de flux est agencée pour générer des ordres de régulation de trames (C) à appliquer aux trames de la séquence de trames, et le dispositif de détection de cadence est agencé pour recevoir une signalisation des ordres de régulation de trames. 10. Poste de télévision comprenant un système de traitement selon l'une quelconque des revendications 7 à 9. 11. Décodeur de télévision numérique comprenant un système de traitement selon l'une quelconque des revendications 7 à 9.