FR 2936926 A1 20100409 FR 0805513 A 20081006 SYSTEME ET PROCEDE DE DETERMINATION DE PARAMETRES DE CODAGE L'invention concerne notamment un outil de supervision et de s détermination des paramètres de codage pour une allocation de débit disponible entre une opération de codage de source et une opération de protection par ajout de codage correcteur d'erreur, appelé pour des raisons de simplification, contrôleur conjoint permettant de réaliser efficacement et de manière réaliste une allocation du débit disponible lors io de la transmission de données entre d'une part la compression (codage de source de la donnée vidéo) et d'autre part l'ajout de protection (codage de canal ou insertion de redondance) pour des données vidéo pouvant se présenter sous la forme d'images ou trames ou encore d'un groupement d'images, plus connu sous l'abréviation anglo-saxonne GOP. 15 L'architecture proposée selon l'invention s'inscrit notamment dans le monde du codage conjoint, où une information de qualité du canal de transmission (qu'il s'agisse d'un débit, d'un taux d'erreur, d'un taux de perte...) permet la mise en place d'une stratégie d'optimisation de la donnée vidéo transmise pour faire face au canal de transmission estimé, 20 afin d'obtenir au niveau du récepteur une meilleure qualité d'image vidéo perçue par l'utilisateur. L'invention trouve notamment son application au niveau d'un serveur de données vidéo, agissant comme une pompe de diffusion intelligente qui contrôlera les niveaux de compression et de protection introduits afin 25 d'améliorer la qualité moyenne reçue, ceci en fonction des informations sur les conditions de transmission reçues. Dans la description, l'expression � milieu contraint � correspond à des conditions de transmission de données vidéo au travers un canal avec erreurs ou pertes et aussi au fait que le débit ne soit pas illimité (existence 30 d'une limitation ou contrainte de débit maximal). La notion de point de travail ou de point de fonctionnement d'un système fait référence aux conditions de transmission pour lesquelles le réglage su système est effectué. Les procédés généralement mis en oeuvre dans l'art antérieur pour offrir un codage conjoint optimisé afin de réaliser efficacement une allocation de débit disponible entre d'une part la compression et d'autre part l'ajout de protection reposent principalement sur : • Le théorème de séparation (établi par Shannon) qui dit qu'une optimisation indépendante de chacun des éléments de la chaîne de transmission est suffisante ; io • La mise en place d'éventuelles solutions de codage tandem, c'est-à-dire, la concaténation de codeur de source et de codeur de canal, pour un ou plusieurs points de fonctionnement pré-établis. Cette seconde approche présente comme inconvénient d'être statique au sens où elle ne permet pas de s'adapter aux variations des 15 conditions de transmission. En général, les procédés et les dispositifs selon l'art antérieur ne permettent pas de s'adapter rapidement aux variations des conditions de transmission qui sont souvent fréquentes au cours d'une transmission sans fil. L'adaptation se fait en général pour un point de fonctionnement 20 donné, correspondant typiquement à un débit moyen autorisé/disponible pour un taux de pertes ou d'erreur résiduelles subies par le flux transmis. De plus, l'approche de séparation en couches protocolaires introduites par le modèle OSI bien connu de l'Homme de l'art conduit à privilégier une approche sans communication inter-couche, amenant à requérir de 25 chaque couche inférieure un fonctionnement parfait (sans pertes ou erreurs) qui n'est généralement pas efficace dans le cas des transmissions multimédia et qui contrairement aux transmissions de données non multimédia peuvent accepter des erreurs. Lorsque les conditions de transmission sont meilleures que le point de fonctionnement 30 retenu, une partie du débit disponible est allouée inutilement à la protection du flux transmis, alors qu'elle pourrait, soit être épargnée, soit être utilisée pour émettre à un débit utile plus important. Inversement, lorsque les conditions de transmission sont moins bonnes que le point de fonctionnement retenu, une trop grande partie du débit est employée par la donnée utile non protégée, ce qui conduit à des pertes inévitables en réception, c'est-à-dire qu'une partie des données ne peut être protégée car l'allocation de débit pour la protection se révèle en pratique insuffisante. L'idée de l'invention repose sur une nouvelle approche permettant d'optimiser l'utilisation des ressources (radio en particulier) utilisées et io permettant, par comparaison avec le cas adapté pour un point de fonctionnement fixe, soit de fournir une augmentation dans la qualité perçue par l'utilisateur final pour une utilisation similaire des ressources soit de n'utiliser qu'une partie des ressources disponibles tout en fournissant une qualité perçue identique. C'est-à-dire que qu'il y a un gain 15 obtenu soit en utilisant moins de bande à même qualité perçue, soit en obtenant une meilleure qualité en utilisant la bande allouée initialement, par rapport au cas non contrôlé selon l'invention. L'objet de l'invention est de proposer un procédé et un dispositif qui ne 20 travaillent plus uniquement sur les vidéos à compresser elles-mêmes. Le procédé met en oeuvre des fichiers de référence ou abaques utilisés comme modèles de comportement du codeur et une boucle d'itération qui permet d'adapter la prédiction à la séquence vidéo en cours de traitement. L'approche proposée est valable pour n'importe quel codeur et pour tout 25 standard existant actuellement dans le domaine du codage, en effectuant un changement d'abaques. L'invention offre aussi des fonctionnalités supplémentaires. Ainsi, le dispositif selon l'invention peut non seulement effectuer une prédiction de débit suite à la compression, mais aussi déterminer le rapport optimal entre le débit alloué à la donnée compressée 30 et celui alloué à une insertion de codage correcteur dans le cas où le point de fonctionnement du système implique la présence de pertes ou d'erreurs causées par la transmission. Dans la suite de la description, l'expression � vidéos de référence � concerne toutes les références qui sont utilisées pour créer les abaques et qui sont des fichiers fournis, par exemple, par l'ITU-T comme référence commune pour l'ensemble de la communauté du traitement vidéo pour réaliser des tests. Par exemple, la séquence 'Foreman' est la plus connue et la plus utilisée dans ce domaine technique. io L'objet de la présente invention concerne un procédé pour optimiser une transmission vidéo en milieu contraint comprenant un codeur vidéo adapté pour coder les données vidéo à transmettre, caractérisé en ce qu'il comporte au moins une étape de détermination d'un ou plusieurs paramètres de compression pour le codeur vidéo considéré afin de 15 transmettre lesdites données vidéo à un débit donné Di ou pour une qualité donnée Qi en exécutant au moins les étapes suivantes : - définir et utiliser des abaques de référence pour ledit codeur considéré, - prédire pour la partie de la séquence vidéo en cours de compression, et au moyen des dites abaques de références, des paramètres de 20 compression à utiliser, au moins le pas de quantification QP, par sélection d'un abaque dans la représentation (QP, débit) ou (QP, PSNR) qui pour la gamme de débit Di ou de qualité visée Qi, est le plus proche en distance de ladite partie de la séquence à compresser, en respectant une marge donnée, 25 - mettre à jour par un procédé itératif l'étape de prédiction afin de converger sur le meilleur choix de paramétrage, ledit procédé d'itération étant composé d'au moins une étape de compression suivie d'une étape de vérification, - compresser les données vidéo à transmettre avec lesdits paramètres. 30 Selon un mode de réalisation, le procédé comprend une étape de protection contre les erreurs de transmission, les paramètres de protection étant déterminés en tenant compte du canal de transmission des données et des paramètres de compression. L'invention concerne aussi un système pour optimiser une transmission vidéo en milieu contraint comprenant un codeur vidéo adapté pour coder les données vidéo à transmettre, les données étant transmises via un canal de communication éventuellement non parfait, caractérisé en ce qu'il comporte au moins un codeur pourvu d'un processeur adapté à exécuter les étapes du procédé selon l'invention. io D'autres caractéristiques et avantages de la présente invention apparaîtront mieux de la lecture de la description d'un exemple de réalisation donné à titre illustratif et nullement limitatif annexé des figures qui représentent : • La figure 1, un schéma représentatif d'un exemple de système is selon l'invention, • La figure 2, le principe d'un premier type d'abaque représentant la qualité vidéo en fonction des pas de quantification, • La figure 3, le principe d'un deuxième type d'abaques schématisant le débit exprimé en fonction des pas de quantification, 20 • La figure 4, une manière de sélectionner un pas de quantification d'un abaque de référence, • Les figures 5A, 5B, 5C et 5D, un raffinement du choix de pas de quantification à utiliser lorsque plusieurs paramètres de quantification peuvent être utilisés, 25 • La figure 6, deux exemples de raffinement du choix du pas de quantification à utiliser lorsque plusieurs paramètres de quantification sont candidats, • La figure 7, l'illustration de l'impact de la perte de trames dans un GOP ; distorsions correspondantes à des pertes de trames ou 30 PSNR sur GOP partiel, • La figure 8, un organigramme montrant les étapes exécutées dans le mode � total �, • La figure 9, un organigramme montrant les étapes exécutées pour le mode � partiel et essais �, • La figure 10, un organigramme décrivant les étapes exécutées pour le mode � aveugle �, • La figure 11, un exemple de l'évolution du PSNR avec le temps pour le mode � total � et dans le cas non adaptatif pour un débit cible de 180 kbps et un rapport signal à bruit variable sur le canal sans fil (séquence vidéo ITU-T, 'Foreman', QCIF 15 Hz, 17 premiers GOPs), • La figure 12, un exemple de l'évolution du PSNR avec le temps pour le mode � partiel et essais � dans le cas non adaptatif, pour un débit cible de 180 kbps et un rapport signal à bruit variable sur le canal sans fil (séquence vidéo ITU-T 'Foreman', QCIF 15 Hz, 17 premiers GOPs), • La figure 13, un jeu d'abaques traçant le PSNR en fonction du débit obtenu pour des séquences vidéo au format QCIF 15 Hz PSNR, • La figure 14, un jeu d'abaques traçant le débit en fonction du QP obtenu pour des séquences vidéo au format QCIF 15 Hz, • La figure 15, un jeu d'abaques traçant la fonction d'Intra dans le débit du GOP en fonction du débit total obtenu pour des séquences vidéo au format QCIF 15 Hz, • La figure 16, un jeu d'abaques traçant la fraction d'Intra dans le débit du GOP en fonction du PSNR obtenu pour des séquences vidéo au format QCIF 15 Hz, et • La figure 17, un exemple d'estimation de PSNR, une comparaison des résultats d'expérimentaux avec la prédiction obtenue grâce aux abaques (1er GOP de la séquence de référence ITU-T 'Foreman' au format QCIF 15 Hz). De manière à mieux faire comprendre l'idée mise en oeuvre par l'invention, l'exemple qui suit pour l'illustrer à titre non limitatif fait appel à des vidéos de référence, qui sont celles utilisées pour créer des abaques et qui sont des fichiers fournis par l'ITU-T comme référence commune de test pour l'ensemble de la communauté de traitement vidéo. Par exemple, la séquence 'Foreman' qui est utilisée dans l'exemple est la plus connue. Les abaques peuvent aussi sans sortir du cadre de l'invention, être construites à partir d'un jeu de séquences représentatives du type de données correspondant au scénario du système mis en place. io Ces abaques de référence sont déterminés à l'avance une fois pour toutes. Elles sont réalisées, de préférence, sur le codeur vidéo qui sera effectivement utilisé dans le système, afin que la prédiction soit de bonne qualité. Les éléments intervenant dans la présente description sont soit la 15 séquence que l'on cherche à transmettre qui peut être une séquence quelconque, soit les séquences de référence qui auront servi au préalable et une unique fois pour toute, à établir des abaques. C'est l'utilisation de ces diverses abaques construits à partir de fichiers vidéos de référence ou extraits de séquences typiques de l'application 20 considérée qui, grâce à la boucle de prédiction introduite dans le procédé selon l'invention, permet notamment de prédire précisément les paramètres à utiliser pour obtenir une qualité vidéo cible, un débit cible et ce, y compris lorsque l'on travaille sur un canal non parfait, et donc face à des pertes ou erreurs contre lesquelles on ajoutera la prédiction du niveau 25 de protection à appliquer. Sans sortir du cadre de l'invention le procédé peut être utilisé au niveau d'un serveur de données vidéo, agissant comme une pompe intelligente de diffusion qui contrôlera les niveaux et les modes (e.g. choix de paquétisation, type de codage, ...) de compression et de protection 30 introduits, afin d'améliorer la qualité moyenne reçue, ceci en fonction des informations sur les conditions de transmission reçues. La figure 1 schématise un exemple de dispositif de transmission, dans lequel le procédé et l'outil selon l'invention peuvent être mis en oeuvre. Un tel dispositif va comporter un codeur 1 de source, recevant les données ou le flux de données FI, et adapté à réaliser l'opération de compression, optionnellement un processeur 2 permettant de mettre en oeuvre un codage correcteur d'erreur, et un processeur 3 adapté à exécuter les étapes selon l'invention, un canal de transmission 4 qui peut être un lien physique ou un médium sans fil de transmission, un récepteur 5 ayant notamment une fonction de décodage des données ou de la séquence io vidéo ayant transitées par le canal de transmission et générant un flux F2. Le dispositif comporte aussi des moyens de stockage d'une ou plusieurs abaques de séquences vidéo, ainsi que des tables ou des abaques contenant les débits et la qualité vidéo à appliquer à une séquence de données. Le mot contrôleur sera utilisé dans la description pour désigner 15 le processeur mettant en oeuvre les étapes du procédé. Deux configurations matérielles au moins sont envisageables, un ordinateur réalisant l'opération de codage via un logiciel, ce logiciel étant alors de fait commandé par un contrôleur/superviseur choisissant les paramètres ou une carte de compression vidéo, qui doit également 20 intégrer un processeur accueillant la partie logicielle du contrôleur/superviseur. Les étapes d'émission, de réception et de transmission de données vidéo étant connues de l'Homme du métier, elles ne seront pas décrites dans ce document. Seules les étapes constituant l'originalité du procédé et de son 25 outil selon l'invention permettant d'allouer un débit disponible entre d'une part le codage de source de la donnée vidéo à transmettre et d'autre part l'ajout de protection à ces données pour lutter contre les erreurs de transmission seront détaillées. Les contraintes sur le procédé d'optimisation sont données en termes de 30 débit ou de qualité vidéo espérée, c'est-à-dire un niveau de qualité estimée par une mesure objective ayant pour but de représenter la vision humaine. En pratique, en comparant à un cas non optimisé (pour lequel, les paramètres du dispositif sont fixés à des valeurs par défaut), ceci correspond à faire une bonne utilisation des ressources (radio en particulier) utilisées et permettant, soit de fournir une augmentation dans la qualité perçue par l'utilisateur final pour une utilisation similaire des ressources soit de n'utiliser qu'une partie des ressources disponibles tout en fournissant une qualité perçue identique. Dans l'exemple pris pour illustrer la présente demande de brevet, la mesure utilisée pour estimer la qualité perçue est, par exemple, le PSNR io acronyme de Peak Signal to Noise Ratio, qui est une mesure objective de distorsion utilisée en image numérique tout particulièrement en compression d'image. Elle est définie par : PSNR =10 log, o 2552 (MSE) où M S E =Em É , (pl'(i, j)ù pl(i, j))2 M,Q sont les dimensions (largeur et -1 MxQ 15 hauteur) des images vidéo, et pl(i, j) (pl`) donne la luminance du pixel à position (i,j) original (ou reconstruit) dans l'image. Afin d'illustrer le procédé et l'outil de mise en oeuvre, la description va maintenant détailler trois modes de réalisation permettant de couvrir un 20 nombre important de scénarios. Ces modes ne sont donnés qu'à titre illustratif et pour permettre au lecteur de mieux comprendre l'invention. Principe 25 Les paramètres à prendre en considération seront fonction de l'application, c'est-à-dire des contraintes à prendre en compte pour la réalisation d'une application de type multimédia (où les parties vidéo et audio sont par exemple multiplexées) ou de flux de données vidéo seules, et de l'information disponible pour l'optimisation à réaliser. Ces différentes i0 conditions, incluant en particulier les contraintes de complexité et de fonctionnement en temps-réel (selon que l'on dispose d'un délai faible ou élevé, et selon le débit à délivrer) mais aussi la vie de fonctionnement de la vidéo elle-même (en allant du flux pré-enregistré qui peut être régulièrement téléchargé pour une transmission en temps réel réalisée une unique fois), vont nécessiter différentes stratégies pratiques pour le procédé d'optimisation selon l'invention. En considérant prudemment les différents modes d'opération qui peuvent être discriminés, il est possible de distinguer trois cas principaux : en allant io du cas optimal (d'un point de vue du contrôle) où la connaissance a priori sur le flux de données multimédia à transmettre est complète, au cas où certaines informations sur le flux sont connues mais pour lequel les contraintes temporelles permettront au contrôleur ou dispositif selon l'invention de tester quelques configurations avant de décider des is paramètres à utiliser, au cas le plus difficile où le contrôleur doit décider immédiatement des paramètres à utiliser en ayant seulement une connaissance limitée des configurations passées. En pratique, en fonction du scénario considéré pour une application, le meilleur mode possible d'opération est sélectionné et les choix de 20 contrôle/optimisation effectués en fonction de ce mode de réalisation de l'invention. 1 û Mode � total � Ce terme est retenu pour le cas où le contrôleur, qui est le mécanisme contrôlant et dirigeant le fonctionnement du codeur de source a une 25 connaissance totale de la séquence des données pour transmettre l'information. Par exemple, dans le cas d'un serveur de données vidéos, pourront être stockées différentes versions compressées d'une séquence à des débits et/ou résolutions différentes de la même séquence originale, ou simplement pourra être stockée la séquence peu ou pas compressée 30 ainsi qu'une table ou abaque contenant précisément les débits et qualité vidéo attendus pour un ensemble de paramètres de compression à Il appliquer à la séquence. Plus généralement, on entend donc par connaissance de la séquence le fait de connaître le débit obtenu pour différentes configurations de codage (paramètre de quantification, résolution spatiale, résolution temporelle..) mais aussi les proportions relatives des différentes parties du flux (trame intra I, trame prédite P,..) pour ces différentes configurations. Ce mode est réaliste lorsque l'on considère des séquences mémorisées de diffusion terme plus connu sous la dénomination anglo-saxonne � streaming/broadcasting � qui pourront par exemple avoir été pré-codées avec des débits différents, et pour io lesquelles le contrôleur pourra simplement choisir le plus adapté pour la transmission sur le canal à un temps t. 2 - Mode � partiel et essais � Ce cas correspond à un mode pour lequel les mécanismes de contrôle auront une connaissance de base sur le codage vidéo lui-même. 15 Typiquement la connaissance repose sur les abaques fournissant une information statistique sur les débits et les courbes de qualité vidéo pour des paramètres de compression donnés (paramètre de quantification, résolution spatiale, résolution temporelle,...) et utilise une approche reposant sur un ou plusieurs essais pour atteindre le point de 20 fonctionnement optimal. Naturellement, seul un nombre limité de tests est à considérer, typiquement un ensemble de trois tests peut être considéré. Ce mode est réaliste lorsque l'on considère des flux avec des contraintes de délais limitées, i.e. lorsque le temps d'exécution nécessaire pour exécuter plus d'une fois le procédé d'encodage est acceptable, et lorsque 25 l'information statistique a été pré-déterminée pour le standard ou le codeur vidéo considéré. 3 - Mode � aveugle � Ce mode correspond au cas où le mécanisme de contrôle selon l'invention doit travailler sans la connaissance complète du flux à venir, ou sans la 30 possibilité de tester plusieurs configurations avant d'avoir à choisir l'utilisation de l'une d'entre elle. Notamment ayant la connaissance des paramètres de codage du précédent GOP, le mode aveugle est le moins efficace mais aussi le plus simple et le plus rapide à implémenter. II reposera largement soit sur l'usage de paramètres par défaut (en particulier au début d'une séquence) soit sur les paramètres des moments précédents pour déterminer les meilleurs paramètres de codage à utiliser à un instant t donné. Ce mode correspond à des solutions de faible complexité temps-réel et il est particulièrement adapté pour un flux de données en temps réel tel que la vidéo conférence. Dans tous les cas précités, le procédé de contrôle résultera dans la décision, des meilleurs choix de paramètres pour la compression des données et éventuellement de paramètres d'ajout de protection pour les conditions de débit et des conditions de transmission (état du réseau et/ou information de l'état du canal) disponibles. Pour les modes � partiel et essais � et le mode � aveugle �, une seconde étape d'adaptation pourra être exécutée afin de s'assurer que le débit cible est respecté. Cette étape de post-traitement s'appliquera, par exemple, en supprimant un nombre de trames ou paquets qui, s'ils étaient conservés, amèneraient à dépasser de manière exagérée le débit cible. Cette opération de coupe est utilisée seulement lorsqu'elle est nécessaire, une marge d'adaptation étant définie (5 à 10% de dépassement pouvant être déclaré acceptable). Cette marge pourra souvent en pratique être compensée en moyenne sur la durée de la séquence soit en tirant partie d'avoir également certaines prédictions amenant des débits inférieurs à la cible, soit en fixant des contraintes plus strictes sur les parties ultérieures de la séquence vidéo lorsque le dépassement devient trop important. La description va maintenant expliciter les outils et les étapes mis en oeuvre par le procédé selon l'invention et par l'outil de supervision ou de contrôle. Outils et fonctions pour une adaptation pour une définition spatiale et une résolution temporelle Les mesures utilisées pour l'optimisation de la transmission des données vidéo sont : la qualité de la vidéo perçue à la réception, ou PQoS qualité 5 de service perçue par l'utilisateur final. Comme il a été proposé dans la référence [2], l'expression de la moyenne espérée pour la distorsion de bout en bout après le codage de la source, la mise en paquets dans le réseau, l'opération de codage canal, suivi par l'impact du canal (modélisé) et des opérations converses, peuvent être 10 utilisées comme une mesure pour comparer différentes réalisations dans les choix de compression/protection pour la séquence à transmettre. De façon à obtenir assez de données pour opérer, ceci en particulier dans le cas d'une application avec protection inégale aux erreurs, pour laquelle il est important de prédire les proportions relatives de chacune des 15 partitions, mais pour assurer que la prédiction du débit de compression fonctionne et surtout est moyennée sur plusieurs trames, l'optimisation proposée dans ce qui suit est exécutée sur la base d'un débit calculé groupe d'image (GOP) par groupe d'image. Sans sortir du cadre de l'invention, il est bien entendu qu'avec des modifications mineures, les 20 explications qui vont suivre peuvent s'appliquer pour des images qui ne sont pas constituées en groupe d'image mais qui se présentent sous un autre format. De manière plus générale, les données peuvent être des données audio ou des données vidéo. Ainsi, une possibilité est de mettre en oeuvre le procédé sur un codeur de type MPEG-4. 25 Le document [2] enseigne que la � sensibilité � pour un GOP fait de trames intra I suivies par N trames prédites P est exprimée en tenant compte du fait que, en pratique, les sensibilités des trames P dépendent des trames précédentes : si une trame P n'est pas correctement reçue, alors les suivantes, même si elles ont été transmises correctement ne 30 seront pas reconstruites correctement. Le terme de sensibilité pour une image ou une trame fait ici référence à la mesure de la distorsion introduite par rapport à la séquence vidéo originale non compressée dans le cas où l'image ou trame en question est perdue ou erronée. En pratique, on retient dans le calcul de la sensibilité l'hypothèse que lorsqu'une trame est perdue, sa distorsion partielle dégrade suffisamment la distorsion moyenne du GOP pour que la contribution de la distorsion des trames suivantes éventuelles devienne négligeable. L'impact des trames précédentes qui n'ont pas été correctement reçues est en conséquence pris en compte en utilisant une probabilité conditionnelle sur les précédentes à corriger. Ceci conduit à l'expression pour la séquence codée standard au format IPN (Intra, Prédite) pour la distorsion moyenne d'un GOP N N i-1 Dgop=[J(1ùPe)R"'.Do+ E[[J(1ùP)Qi.ni .(1ù(1ùPe)fn').Dross,] (1) i=o i=o i=o avec ni la taille de la ii'' P-trame, avec D,oss, la distorsion observée lorsque la P-trame est perdue alors que les trames précédentes sont correctes, avec Do ûDo, la distorsion moyenne du GOP sans erreur , avec /3, la fraction de la trame qui peut être partiellement bruitée sans désynchronisation du flux et pour un canal sans mémoire avec une probabilité d'erreur pour le bit P . Avec les valeurs expérimentales estimées dans [5] pour les paramètres , soit : 1ûA 0.25 et 1û /3i 0.15 ), il apparaît que l'équation (1) est exploitable une fois que sont connues, pour tous les i, les valeurs de la taille de la i`'' P-trame n, , la distorsion observée lorsque la id' P-trame est perdue alors que les trames précédentes sont correctes D,oss, et enfin la distorsion moyenne du GOP sans erreur Do . Naturellement, dans le cas où une correction d'erreur est introduite, l'expression de la probabilité d'erreur Pe devra aussi être établie. Par exemple, l'emploi de codes convolutifs poinçonnés à rendements compatibles (RCPC) sur canal Gaussien avec décodage à entrées souples nous permettra d'utiliser la borne de la probabilité d'erreur établie dans [6]: Pe io qui peuvent être en particulier utilisés dans le cas où une protection inégale aux erreurs est considérée, telle que celle décrite dans la demande de brevet du Demandeur FR 2 903 253. Prédiction de débit et de qualité pour les modes autres que le mode � total � 15 Alors que pour le mode � total �, la connaissance du flux est parfaite, et en conséquence toutes les valeurs nécessaires pour déterminer la qualité de la métrique sont disponibles, le mode � partiel et essais � et le mode � aveugle � sont causals et l'information future n'est pas disponible per se. Dans ces deux derniers modes, la connaissance statistique du mode de 20 codage vidéo de l'opération peut être obtenue, par exemple, via un ensemble d'abaques, qui indiqueront, pour un choix de résolution temporelle et de résolution spatiale (correspondant au choix de format et rythme de l'image) ainsi que pour un choix de compression donné, une prédiction de la qualité vidéo obtenue après reconstruction et le débit 25 obtenu. Bien entendu, la connaissance statistique pourra aussi être obtenue d'approches plus théoriques, mais le principe reste le même. Pour ces deux derniers modes, la représentation des statistiques du codeur vidéo sera plus facilement gérée en utilisant comme paramètre de référence le paramètre de compression (en particulier, le pas de quantification (QP) pour les différentes configurations temporelles et spatiales possibles. La figure 2 illustre le principe du premier ensemble d'abaques, qui donnent l'information sur la qualité vidéo en fonction du paramètre de quantification pour différentes réalisations de flux vidéo. La figure 3 illustre le principe du second ensemble d'abaques, fournissant une information sur le débit en fonction du paramètre de quantification pour les mêmes réalisations de flux vidéo. II doit être noté que l'abaque ici considéré peut seulement être un abaque à deux dimensions si une règle prédéfinie est établie pour lier les paramètres de quantification utilisés pour les différents types de trame (pour les standards offrant des pas de quantification potentiellement différents selon les types de trames). Typiquement, dans les tests effectués, les règles suivantes seront utilisées : QP, = QP QPP =QP+2 QPB = QP + 2 (si utilisé) pour respectivement les trames Intra, les trames prédites P et les trames bidirectionnelles B. Ces règles proposées reposent sur des essais et simulations réalisées pour établir des règles intéressantes pour la quantification, en dehors du fait que les trames les moins importantes devraient être quantifiées en utilisant des étapes de quantification égales ou plus grandes. De plus, il a été établi que les principes établis restent valables pour les autres règles, aussi bien dans le cas où les règles non pré-définies existent, dans ce cas, l'abaque et l'interpolation ne sont pas en deux dimensions 2D mais en trois dimensions 3D ou quatre dimensions 4D (si un QPB existe et est différent des autres QPs). Les figures 2 et 3 représentent respectivement l'expression de la qualité vidéo en fonction du paramètre de quantification et l'expression du débit en fonction du paramètre de quantification. Ces abaques permettent, pour tout point de départ (valeurs par défaut, information du GOP précédente, ..) d'établir la courbe de référence qui sera utilisée pour déterminer le débit espéré basé sur les paramètres de quantification QP possibles et la qualité vidéo correspondante espérée. L'utilisation des courbes pratiquement peut être la suivante : - Trouver le paramètre de quantification QP possible pour un débit cible io sur une courbe identifiée, - Pour une courbe identifiée, l'abaque est lu et le meilleur QP correspondant (le candidat le plus proche de l'abaque) est sélectionné pour l'essai. Bien que l'abaque porte sur une large gamme de QP et de débit possibles, ces valeurs ne sont pas continues, ainsi basiquement il 15 est possible soit : 1) de trouver une réalisation du débit assez proche du débit cible pour respecter sa définition à la marge près, 2) de ne pas être en position pour sélectionner un candidat immédiatement. 20 Dans le premier cas, illustré par le candidat QPB sur la figure 4, le candidat QPdosest est immédiatement sélectionné et peut être utilisé pour l'encodage de la séquence. Le candidat QPB est le candidat le plus proche du débit cible Dcible pour l'abaque i, dans le présente exemple, ceci correspond au débit cible. 25 Dans les autres cas, une étape de raffinement doit être exécutée qui est précisée ci-dessous. Raffinement de la sélection du meilleur paramètre de quantification QP Une étape de raffinement peut être nécessaire, soit lorsqu'il n'est pas possible de trouver un candidat intermédiaire à partir de l'abaque initial de 30 l'opération de lecture, ou encore lorsque ayant exécuté plusieurs essais avec l'algorithme � partiel et essais �, différents couples de réalisations (débit, QP) ont été obtenus à partir des essais sur la portion courante de la séquence. Plusieurs essais peuvent être exécutés, qui permettront de déterminer plus précisément le comportement de la portion (GOP) de la séquence courante, typiquement si le choix de la courbe initiale de prédiction n'était pas bon. Toutefois, du fait du nombre limité d'essais qu'imposent nécessairement les contraintes du temps réel et d'exploitation pratique, le choix final du paramètre de quantification QP devra souvent être fait sans avoir trouvé de QP correspondant parfaitement à la cible débit ou qualité, ce qui signifie qu'un choix doit être fait avec seulement la io connaissance disponible. Différents cas peuvent être envisagés qui ont été représentés sur les figures 5A, 5B, 5C, 5D et 6 : Cas 1 û tous les QP testés (sur une ou plusieurs courbes) dépassent la cible de manière significative, Cas 2 - tous les QP testés (sur une ou plusieurs courbes) arrivent en 15 dessous de la cible de manière significative Cas 3 - le débit de la cible est trouvé entre 2 QP, trouvé au-dessus une courbe unique Cas 4 - le débit cible est trouvé entre 2 QP, trouvés au-dessus de deux courbes différentes, 20 Pour les cas 1 et 2, différentes stratégies, de la plus sécuritaire à la plus risqué, peuvent être implémentées. Ces stratégies correspondent à une approche similaire : soit prendre la valeur testée la plus proche et l'utiliser, ou essayer avec une autre, en faisant totalement confiance à l'abaque supposée le meilleur. 25 En effet, alors qu'on pourrait croire au premier abord que l'abaque doit donner immédiatement le meilleur QP, il ne faut pas oublier que le vrai problème est de déterminer à partir des informations des GOP précédents, quel abaque correspond le mieux pour le GOP courant de la séquence vidéo à coder. Une séquence vidéo pouvant grandement 30 changer d'un moment à un autre (changement de scène, augmentation ou diminution forte du mouvement, détails nouveaux introduits, ...) l'abaque valable à un certain instant t peut en effet se révéler fausse au moment suivant t+1, et donc ne pas permettre une bonne prédiction. Dans la suite de la description, une approche ayant un niveau de risque contrôlé sera utilisée : - dans le cas 1, utiliser QPleplusproche+l - dans le cas 2, utiliser QPleplusproche -1 sachant que d'autres adaptations peuvent être considérées ; par exemple en choisissant l'incrément en fonction de la distance relative entre le débit atteint avec QPleplusproche comparé au débit cible ; - dans le cas 3, utiliser une relation de barycentre : QP + ratec,ble ù ra teint x (Qi P ù Q p ) mf `l su mf / rate sup ù rateinf où ratecible est le débit cible, et pour les deux couples candidats (QP1, débit1) et (QP2, débit2), rateinf représente le débit le plus faible, ratesup le débit le plus élevé, QP;nf représente le pas de quantification le plus faible et QPsup le pas le plus élevé ; dans le cas 4 qui correspond au cas le plus difficile, ce qui en pratique correspond à un scénario où l'abaque correct pour la séquence devant être codée n'a pu être déterminé. Ici à nouveau, l'opération de calcul du barycentre proposé pour le cas 3 est possible, mais pourra se révéler moins efficace si la courbe optimale a une pente très différente de la courbe sélectionnée ou bien des deux courbes sélectionnés. Une autre solution consiste, par exemple, à insérer dans l'interpolation un troisième point (s'il est disponible) : les trois couples (débit, QP) étant utilisés pour définir une courbe sur laquelle une interpolation peut être effectuée directement. Dans les tests décrits ci-après, c'est la formule du barycentre qui sera utilisée. Estimation de la longueur et des informations de distorsions partielles Ayant établi la nécessité d'estimer les longueurs respectives de chaque trame (n; ), la distorsion observée lorsque la i" P-trame est perdue (D,oss, ) et la distorsion du GOP (Do), et ayant proposé l'utilisation d'un abaque pour prédire le débit et la qualité pour les approches "partiel et essais" et "aveugle", la suite de la description détaille comment obtenir l'information manquante: Do (la distorsion du GOP) est facilement connue grâce à l'abaque io (type 1) puisqu'il s'agit de la valeur du PSNR du GOP pour le QP considéré, La longueur totale l,0,n, du GOP est facilement connue grâce à l'abaque (type 2) en faisant une simple division du débit par le nombre d'images par seconde. En effet, la résolution temporelle de 15 la séquence est connue pour chaque abaque. La longueur Intra lln,ra est aussi connue de l'abaque (type 2) comme une information supplémentaire (les rapports pour les intra/prédites sont mémorisés), comme illustré par les figures 16 et 17. Dans l'exemple de mise en oeuvre, la fraction en plus des 20 informations de l'abaque est stockée, comme illustrée au niveau des figures précitées. La question qui reste est d'exprimer la contribution relative pour chaque trame en terme de longueur, c'est à dire lP et en terme de distorsion, c'est-à-dire D,oss, . Comme illustré à la figure 7, la qualité partielle (exprimée 25 en termes de distorsion partielle) est une fonction croissante avec le nombre d'images décodées. Faisant suite à des observations expérimentales (incluant les remarques faites dans la référence [2]) les expressions suivantes sont proposées: 21 D/osso = 3 D0 i l Dlass; = Dlass~ + GOP . x (Do ù Dlass, ), stze 1 = "total ù llntra GOPs,ze -1 Contraintes imposées et définition d'une marge de fonctionnement Ayant définis les paramètres et les données, et comment les obtenir, la description va maintenant donner les marges à respecter. Débit cible Le concept de contrôle de débit n'est pas nouveau, et de nombreux algorithmes ont été proposés dans la littérature du codage vidéo. Leur but commun est d'assurer qu'une séquence donnée atteigne un débit cible moyen sur la durée de la séquence, et leur approche générale est de réagir sans changement brutal en dépit de la qualité des limitations de la largeur de bande et des évolutions complexes de la séquence. Le contrôleur qui utilisera l'algorithme proposé dans ce brevet a 1s notamment pour but d'être plus réactif (dans le sens d'une évolution rapide pour satisfaire ou atteindre le débit cible). En effet, les conditions de l'état du canal peuvent être fortes et imposer de fortes variations des débits de protection, ce qui introduirait de gros déséquilibres pour la séquence compressée (trop de débit consommé ou au contraire trop peu) 20 si l'on attendait que les algorithmes d'adaptation lente du débit (tels que ceux proposés dans le codeur de référence H.264) s'adaptent à ces variations. De plus, une adaptation lente n'est valable que lorsque les conditions de transmission ou de débit varient encore plus lentement, et passe toujours 25 par une phase initiale avec des paramètres peu adéquats. Dans le cas d'une transmission sans fil sur canal variable, y compris lorsque le taux d'erreur résiduel est négligeable et que le problème de l'introduction de protection ne se pose pas, une telle approche risque de fournir des résultats très mauvais. Adaptation à une séquence variable : définition de la marqe acceptable Ayant établi l'importance de réaliser un contrôle de débit relativement régulier, il est aussi important de se rappeler que des marges doivent être définies pour éviter d'avoir à appliquer des post-traitements trop stricts ou trop fréquents (comme il sera détaillé ci-après). En pratique, on utilisera une marge de tolérance de 10%, qui a été employée avec succès dans les expériences mises en oeuvre par le Demandeur dont certains exemples io sont donnés plus loin dans la description et illustrés aux figures 11 à17. II est recommandé d'implémenter, ensemble, avec cette marge, un algorithme d'observation qui note le débit réel utilisé par rapport au débit cible, et qui sera ensuite capable de mettre à jour le débit cible en fonction de la réalité passée. Typiquement, si un débit utilisé pour un certain laps 15 de temps est trop faible, le débit cible pour les GOP suivants pourrait être augmenté ou inversement réduit dans le cas où le débit réellement utilisé précédemment serait trop important. Dans le cas où l'algorithme de contrôle vise une qualité cible et non plus un débit cible, cet algorithme d'observation du débit utilisé aurait aussi un sens, puisque les applications 20 pratiques orientées qualité ont tout de même en général une contrainte de débit maximal à ne pas dépasser. Une remarque intéressante considérant la définition de la marge et des règles pour une amélioration possible de la qualité vidéo perçue par l'utilisateur pourrait être de recommander, lorsque différents candidats QP 25 sont trouvés équivalent par le contrôleur joint, de sélectionner celui qui est le plus proche (idéalement qui est égal) au dernier utilisé, afin de limiter les effets de scintillement possibles lorsque la quantification varie trop souvent. Opérations de post-traitement (pour les modes � partiel et essais � et � aveugle �) Ayant choisi les paramètres à utiliser pour les opérations de codage (compression, protection), le codage est réalisé, mais il peut s'avérer que les contraintes ne soient pas vérifiées. Typiquement, en dépit des efforts faits, un excès de débit dépassant la marge acceptable peut apparaître. De façon à limiter l'impact de telles erreurs de prédiction, une opération de post traitement est proposée, qui correspondra à couper la ou les dernière(s) trame(s) (ayant le moins d'impact sur la séquence). io Ce post-traitement pourra être fait d'une manière propre au niveau du codeur, conduisant typiquement pour le codeur H.264/AVC à l'insertion de trames artificiellement vides (tous les macro-blocks se voyant prédire une différence nulle avec leur référence par exemple) ce qui permettra au décodeur de recevoir le bon nombre de trames, même s'il n'a pas 15 l'information initiale qu'elles contenaient. Il n'y aura alors pas de risque d'apparition d'une désynchronisation. Une autre opération spécifique de post-traitement est envisagée lorsque les conditions opératoires sont difficiles. En pratique, il peut être souvent observé que lorsque le débit total autorisé est réduit, la sélection de 20 paramètres obtenue amène pour des conditions de transmissions mauvaises à un choix de très forte compression, donc à des séquences avec très peu d'information utiles qui ont tout de même un fort risque d'arriver corrompues à la réception. De ce fait, il est proposé de définir un seuil PSNRmini au-dessous duquel la transmission ne sera pas tentée, sauf 25 éventuellement quelques symboles pilotes (pour maintenir la connexion, obtenir des informations sur l'état du canal, ...). Cette approche permettra de récupérer de la bande qui pourra en conséquence être disponible pour les futures périodes grâce à l'approche de d'observation et contrôle du débit moyen. Ayant introduit les outils mentionnés précédemment, les 3 modes d'opération peuvent maintenant être définis précisément et leur diagramme établi. Procédé mode total Comme il a été mentionné ci-dessus, le procédé "total" correspond à la sélection du meilleur couple (compression, protection) en fonction de l'information de retour (état de canal, bande disponible, ...) disponible. La figure 8 présente l'organigramme complet de ce mode d'opération. Etape 8.1 Initialisation: to Prendre les valeurs par défaut pour les paramètres de compression et l'information de retour sur l'état de la transmission Etape 8.2 Paramètres de la séquence Lire pour chaque réalisations disponibles du GOP entrant les informations (débit, QP) afin d'obtenir la courbe réelle précise (C) de débit pour le 15 prochain GOP de la séquence courante. Etape 8.3 Doit-on introduire de la protection au niveau applicatif ? NON Etape 8.4 Paramètres de compression: En fonction du débit disponible, sélectionner le couple (débit, QP) sur la 20 courbe (C) qui correspond le mieux aux contraintes de débit et de qualité vidéo. Sélectionner les paramètres correspondants et déclencher le procédé de codage. OUI 25 Etape 8.5 Répartition de débit Compression/Protection : Pour chaque rendement de protection, sélectionner un jeu (S) de couples (débit, QP) sur la courbe (C) permettant de respecter les contraintes de débit. Pour chaque élément de (S), prédire la longueur du GOP et les distorsions 30 correspondants aux pertes de trames (Dloss) et en déduire la mesure vidéo du PSNRgop du GOP estimée à la réception, comparer cette valeur avec la meilleure valeur courante PSNR. Sélectionner le meilleur PSNRgop et déclencher le procédé de codage des données avec les paramètres de codage (compression, protection) s correspondantes. Etape 8.6 Fin du codage du GOP: - Emettre les paquets générés - Mémoriser la valeur en cours réelle du couple (débit, QP) dans la liste des couples précédents (débit, QP) io - S'il y en a, lire les nouvelles informations de retour sur l'état de la transmission. Etape 8.7 Opération de contrôle pour le GOP suivant Mode � partiel et essais � Le mode � partiel et essais � est utilisé lorsqu'une approche en plusieurs 15 essais peut être utilisé, bien que limité à un certain nombre de cas. La performance de l'algorithme et donc la pertinence des choix de paramètres et la performance finale dépendent naturellement du nombre d'essais autorisés, que nous proposons de limiter à trois tests dans nos simulations. 20 En pratique, la complexité du codage est multipliée par ce nombre d'essai. De façon à limiter la complexité il est recommandé de stocker chaque résultat du procédé de codage et d'utiliser le résultat sélectionné si le choix du codage final est l'un des essais précédents. De plus, si un des tests (y compris le premier) offre un résultat dans les contraintes fixées, il 25 est recommandé de le sélectionner et de lancer le processus de codage avec les paramètres en question, sans plus faire d'essais. La figure 9 présente l'organigramme complet de ce mode d'opération. Etape 9.1 Initialisation: Prendre les valeurs par défaut pour les paramètres de compression et 30 l'information de retour sur l'état de la transmission Etape 9.2 Identification de Séquence : A partir des {n} dernières couples (débit, QP), identifier la courbe de débit (C) la plus probable pour la séquence courante Etape 9.3 Nb essais += 1 Etape 9.4 Doit-on introduire de la protection au niveau applicatif ? 5 NON Etape 9.5 Paramètres de compression: En fonction du débit disponible, sélectionner le couple (débit, QP) sur la courbe (C) qui correspond le mieux aux contraintes de débit et de qualité vidéo. io Sélectionner les paramètres correspondants et déclencher le procédé de codage. OUI Etape 9.6 Répartition de débit Compression/Protection : Pour chaque rendement de protection, sélectionner un jeu (S) de couples 15 (débit, QP) sur la courbe (C) permettant de respecter les contraintes de débit. Pour chaque élément de (S), prédire la longueur du GOP et les distorsions correspondantes aux pertes de trames (Dloss) et en déduire la mesure vidéo du PSNRgop du GOP estimée à la réception, comparer cette valeur 20 avec la meilleure valeur courante PSNR. Sélectionner le meilleur PSNRgop et déclencher le procédé de codage des données avec les paramètres de codage (compression, protection) correspondantes. Etape 9.7 Contrôle du résultat du procédé de codage: 25 Mémoriser la valeur en cours réelle du couple (débit, QP) et la comparer avec la courbe (C). S'il n'y a pas correspondance, déterminer la nouvelle meilleure courbe (Cgop) pour le GOP courant et mettre à jour en fonction la valeur (C). Au contraire, si le couple de valeurs actuelles (débit, QP) satisfait aux 30 contraintes, mettre le nombre d'essais à MAX. Etape 9.8 Le nombre d'essais maximal est-il atteint , est-il supérieur à une valeur prédéterminée? NON alors retour à l'étape 9.3 OUI Etape 9.9 Sélectionner les meilleurs paramètres de codaqe: Parmi les couples de valeurs réelles (débit, QP) et leur protection correspondante, chercher la meilleure combinaison qui respecte les contraintes et si elle existe, déclencher le procédé de codage des données avec les paramètres de codage (compression, protection) to correspondants. Dans le cas contraire, procéder au raffinement, si nécessaire, du choix des meilleurs paramètres de codage selon la méthode applicable (barycentre ou valeur de QP la plus proche +1- 1) et déclencher le procédé de codage des données avec les paramètres de codage (compression, protection). 15 Etape 9.10: Le processus de codage respecte-t-il les contraintes ? NON Etape 9.11 Contrôle a posteriori du codaqe: Limiter le débit utilisé à une valeur maximale +marge soit en insérant un contrôle de QP au sein du codeur, soit par post-traitement en supprimant 20 les trames amenant à dépasser la limite du débit + marge. OUI Etape 9.12 Fin du codage du GOP: - Emettre les paquets générés - Mémoriser la valeur en cours réelle du couple (débit, QP) dans la liste 25 des couples précédents (débit, QP) - S'il y en a, lire les nouvelles informations de retour sur l'état de la transmission. Opération de contrôle pour le GOP suivant 9.13 Mode aveugle 30 II est important de comprendre que le terme "aveugle" se réfère au fait que le contrôleur n'est pas conscient du futur, et non qu'il ne dispose pas d'information. Manifestement un contrôleur avec strictement aucune information en termes de débit disponible pour la transmission, de connaissance des conditions de transmission ou du codeur multimédia lui-même ne pourrait simplement offrir quelque chose de différent du paramétrage par défaut, ce qui a peu de chance d'être réellement proche de l'optimum pour la transmission. En pratique donc, dans le mode "aveugle" le contrôleur dispose d'une information sur les conditions de transmission mais possède aussi une information statistique sur le codage vidéo. Il est même possible qu'il ait io une connaissance sur le choix des étapes codées précédemment (paramètres employés et résultats obtenus avec ces paramètres, en termes de débit et qualité Do ). Naturellement les données multimédia varient dans le temps, ce qui signifie que les paramétrages peuvent ne plus être représentatifs de la donnée courante à transmettre, rendant la 15 seconde étape de l'adaptation mentionnée (opération de post-traitement avec coupes) ci-dessus encore plus nécessaire. Comme dans le mode "partiel et essais", le procédé � aveugle � reposera sur la connaissance statistique du codec vidéo de façon à assurer que les paramètres ne sont pas totalement irréalistes. Choisir les paramètres tels 20 que le QP initial sans un minimum de précautions peut en effet conduire à de mauvais résultats pour le premier GOP. Etape 10.1 Initialisation: Prendre les valeurs par défaut pour les paramètres de compression et l'information de retour sur l'état de la transmission 25 Etape 10.2 Identification de Séquence : A partir des {n} dernières couples (débit, QP), identifier la courbe de débit (C) la plus probable pour la séquence courante Etape 10.3 Doit-on introduire de la protection au niveau applicatif ? NON 30 Etape 10.4 Paramètres de compression: En fonction du débit disponible, sélectionner le couple (débit, QP) sur la courbe (C) qui correspond le mieux aux contraintes de débit et de qualité vidéo. Sélectionner les paramètres correspondants et déclencher le procédé de 5 codage. OUI Etape 10.5 Répartition de débit Compression/Protection : Pour chaque rendement de protection, sélectionner un jeu (S) de couples (débit, QP) sur la courbe (C) permettant de respecter les contraintes de io débit. Pour chaque élément de (S), prédire la longueur du GOP et les distorsions correspondantes aux pertes de trames (D,oss) et en déduire la mesure vidéo du PSNR9op du GOP estimée à la réception, comparer cette valeur avec la meilleure valeur courante PSNR. 15 Sélectionner le meilleur PSNR9op et déclencher le procédé de codage des données avec les paramètres de codage (compression, protection) correspondantes. Etape 10.6 Lors du procédé de codage, vérifier si le flux produit respecte le débit et les contraintes de marges? 20 OUI Etape 10.7 Contrôle a posteriori du codage: Limiter le débit utilisé à une valeur maximale +marge soit en insérant un contrôle de QP au sein du codeur, soit par post-traitement en supprimant les trames amenant à dépasser la limite du débit + marge. 25 NON Etape 10.8 Fin du codage du GOP: - Emettre les paquets générés - Mémoriser la valeur en cours réelle du couple (débit, QP) dans la liste des couples précédents (débit, QP) 30 - S'il y en a, lire les nouvelles informations de retour sur l'état de la transmission. Etape 10.9 Opération de contrôle pour le GOP suivant Extension permettant la comparaison de différents modes de codage: normal, partitionnement de données et mélange de trames Comme mentionné précédemment, les différents algorithmes présentés peuvent être employés soit avec un mode de codage "normal", c'est à dire pour le cas de compression le plus habituel, avec des trames Infra, Prédites et éventuellement Bidirectionnelles, ou avec un mode permettant un partitionnement de données (par exemple le mode DP du standard H.264 faisant partie du profil X étendu) qui permet de séparer les données selon io leur importance pour la reconstruction ou encore selon le mode mélange de trames (FS) défini dans la demande de brevet du demandeur EP 1 779 689 ou la publication de THALES [3] dès lors que le mode en question possède ses jeux d'abaques. Une extension simple du brevet consiste donc à calculer les résultats 15 obtenus pour deux ou plusieurs de ces configurations lors de la phase � répartition du débit entre compression et protection �, et à choisir le meilleur mode. En pratique d'autres contraintes pourront être introduites pour éviter que le changement de mode soit trop fréquent. 20 Les figures 11 à 17 illustrent différents essais effectués au moyen du procédé selon l'invention. Les simulations présentées ci-dessous ont été réalisées pour d'une part le mode opératoire � total � et d'autre part le mode opératoire � partiel et essais �. Dans les deux cas, des gains de plusieurs dBs en moyenne ont 25 pu être observés par rapport au cas sans adaptation (utilisation des paramètres par défaut). Le mode � total � est clairement optimal, dans le sens où une connaissance complète des possibilités de compression est disponible, ainsi qu'une information statistique sur l'état du canal. Néanmoins, le 30 système demeure réaliste dans le sens où il reste causal, la connaissance du canal réel n'étant pas disponible à l'avance (seules des valeurs statistiques sont connues). Ce mode peut être compare au cas sans adaptation, pour lequel les paramètres de compression et de protection sont fixés en référence à un point de fonctionnement donné pour le système. Naturellement, l'optimisation est supposée fonctionner mieux, sauf dans quelques cas exceptionnels pour lesquels des réalisations inattendues du canal peuvent, par hasard, favoriser le cas non-adapté. La figure 11 illustre les gains obtenus avec ce mode dans le cas d'une séquence Foreman ITU-T, Qcif, 15 Hz, 17 premiers GOPs. Le mode opératoire � partiel et essais � introduit dans ce brevet peut être comparé d'une part au mode non adapté décrit précédemment, et d'autre part au mode � total �, qui représente la qualité maximale atteignable en moyenne, puisqu'il correspond à la meilleure prédiction possible. La distance entre les résultats du mode � partiel et essais � et du mode � total � permettra de nous indiquer l'efficacité de l'algorithme de prédiction et nous a également permis de valider la définition de certains paramètres comme le nombre de tests recommandés. La figure 12 illustre les gains obtenus avec ce mode opératoire. L'exemple de l'évolution pour le PSNR est donné avec une séquence de référence Foreman ITU-T, Qcif, 15 Hz et 17 premiers GOPs. Afin de montrer l'efficacité de la méthode de contrôle de débit proposé, quelques figures sont données ci-après à titre illustratif. Tout d'abord, les abaques qui ont été utilisées sont fournies en figure 14 et figure 15 pour l'expression du PSNR (qualité vidéo) en fonction du débit et du débit en fonction du QP. Comme mentionné précédemment, on garde également l'information de la proportion de trames Infra dans les séquences, ce qui peut être vu comme une abaque spécifique pour l'Intra, comme illustré en figure 16 et en figure 17. Ces abaques permettent de prédire un PSNR cible précis, comme illustré par la figure 17. Le procédé et le système selon l'invention présentent notamment les avantages suivants : permettre, dans le cas plus général de la prise en compte d'un canal erroné de réaliser une répartition optimisée du débit disponible entre la compression et l'ajout de protection grâce à la double prédiction du débit vidéo et de l'impact des erreurs. to Références [1] M.G. Martini, M. Mazzotti, C. Lamy-Bergot, J. Huusko and P. Amon, "Content adaptive network aware joint optimization of wireless video transmission", IEEE Communications Magazine, pp.84--90, January 2007. [2] C. Bergeron and C. Lamy-Bergot, "Modelling H.264/AVC sensitivity for 15 error protection in wireless transmissions", Proceedings of the International Workshop on Multimedia Processing (MMSP'06), pp.302--305, Victoria, Canada, Oct 2006. [3] C. Bergeron, C. Lamy-Bergot, G. Pau and B. Pesquet-Popescu, Temporal Scalability through Adaptive M-Band Filter Banks for Robust 20 H.264/MPEG-4 AVC Video Coding, EURASIP Journal on Applied Signal Processing 2006 (2006), Article ID 21930, 11 pages. [4] ITU-T and ISO/IEC JTC 1, Advanced video coding for generic audiovisual services, ITU-T Recommendation H.264 and ISO/IEC 14496-10 (MPEG-4 AVC), Version 1: May 2003. 25 [5] C. Bergeron and C. Lamy-Bergot, "Compliant selective encryption for H.264/AVC video streams", Proc. Int. Workshop on Multimedia Processing (MMSP'05), pp. 477-480, Shanghai, China, Oct-Nov 2005. [6] J. Hagenauer, "Rate-compatible punctured convolutional codes (RCPC codes) and their application," in IEEE Trans. on Comm., vol. 36, n. 4, 30 pp. 339-400, April 1988. REVENDICATIONS1 - Procédé pour optimiser une transmission vidéo en milieu contraint comprenant un codeur vidéo adapté pour coder les données vidéo à transmettre, caractérisé en ce qu'il comporte au moins une étape de détermination d'un ou plusieurs paramètres de compression pour le codeur vidéo considéré afin de transmettre lesdites données vidéo à un débit donné Di ou pour une qualité donnée Qi en exécutant au moins les étapes suivantes : io - définir et utiliser des abaques de référence pour ledit codeur considéré, - prédire pour la partie de la séquence vidéo en cours de compression, et au moyen des dites abaques de références, des paramètres de compression à utiliser, au moins le pas de quantification QP, par sélection d'un abaque dans la représentation (QP, débit) ou (QP, PSNR) qui pour la 15 gamme de débit Di ou de qualité visée Qi, est le plus proche en distance de ladite partie de la séquence à compresser, en respectant une marge donnée, - mettre à jour par un procédé itératif l'étape de prédiction afin de converger sur le meilleur choix de paramétrage, ledit procédé d'itération 20 étant composé d'au moins une étape de compression suivie d'une étape de vérification, - compresser les données vidéo à transmettre avec lesdits paramètres. 2 û Procédé selon la revendication 1 caractérisé en ce qu'il comporte une 25 étape de protection contre les erreurs de transmission, les paramètres de protection étant déterminés avec les paramètres de compression en tenant compte du canal de transmission des données. 3 û Procédé selon la revendication 1 caractérisé en ce qu'elle comporte 30 une étape de post traitement après la compression finale.4 û Procédé selon la revendication 1 caractérisé en ce que les données à transmettre peuvent se mettre sous la forme de GOP ou groupement d'images et en ce que dans le mode total, les étapes du procédé exécutées sont les suivantes: Etape 8.1 Initialisation: Prendre les valeurs par défaut pour les paramètres de compression et l'information de retour sur l'état de la transmission Etape 8.2 Paramètres de la séquence Lire pour chaque réalisations disponibles du GOP entrant les informations io (débit, QP) afin d'obtenir la courbe réelle précise (C) de débit pour le prochain GOP de la séquence courante. Etape 8.3 Doit-on introduire de la protection au niveau applicatif ? NON Etape 8.4 Paramètres de compression: 15 En fonction du débit disponible, sélectionner le couple (débit, QP) sur la courbe (C) qui correspond le mieux aux contraintes de débit et de qualité vidéo. Sélectionner les paramètres correspondants et déclencher le procédé de codage. 20 OUI Etape 8.5 Répartition de débit Compression/Protection : Pour chaque rendement de protection, sélectionner un jeu (S) de couples (débit, QP) sur la courbe (C) permettant de respecter les contraintes de débit. 25 Pour chaque élément de (S), prédire la longueur du GOP et les distorsions correspondantes aux pertes de trames (Dloss) et en déduire la mesure vidéo du PSNRgop du GOP estimée à la réception, comparer cette valeur avec la meilleure valeur courante PSNR. Sélectionner le meilleur PSNRgop et déclencher le procédé de codage 30 des données avec les paramètres de codage (compression, protection) correspondantes.Etape 8.6 Fin du codaqe du GOP: - Emettre les paquets générés - Mémoriser la valeur en cours réelle du couple (débit, QP) dans la liste des couples précédents (débit, QP) - S'il y en a, lire les nouvelles informations de retour sur l'état de la transmission. Etape 8.7 Opération de contrôle pour le GOP suivant 5 ù Procédé selon la revendication 1 caractérisé en ce que les données à io transmettre sont des données vidéo transitant au sein d'un canal de transmission et en ce qu'il comporte au moins les étapes suivantes: Etape 9.1 Initialisation: Prendre les valeurs par défaut pour les paramètres de compression et l'information de retour sur l'état de la transmission 15 Etape 9.2 Identification de Séquence : A partir des {n} dernières couples (débit, QP), identifier la courbe de débit (C) la plus probable pour la séquence courante Etape 9.3 Nb essais += 1 Etape 9.4 Doit-on introduire de la protection au niveau applicatif ? 20 NON Etape 9.5 Paramètres de compression: En fonction du débit disponible, sélectionner le couple (débit, QP) sur la courbe (C) qui correspond le mieux aux contraintes de débit et de qualité vidéo. 25 Sélectionner les paramètres correspondants et déclencher le procédé de codage. OUI Etape 9.6 Répartition de débit Compression/Protection : Pour chaque rendement de protection, sélectionner un jeu (S) de couples 30 (débit, QP) sur la courbe (C) permettant de respecter les contraintes de débit.Pour chaque élément de (S), prédire la longueur du GOP et les distorsions correspondantes aux pertes de trames (Dloss) et en déduire la mesure vidéo du PSNRgop du GOP estimée à la réception, comparer cette valeur avec la meilleure valeur courante PSNR. Sélectionner le meilleur PSNRgop et déclencher le procédé de codage des données avec les paramètres de codage (compression, protection) correspondantes. Etape 9.7 Contrôle du résultat du procédé de codage: Mémoriser la valeur en cours réelle du couple (débit, QP) et la comparer io avec la courbe (C). S'il n'y a pas correspondance, déterminer la nouvelle meilleure courbe (Cgop) pour le GOP courant et mettre à jour en fonction la valeur (C). Au contraire, si le couple de valeurs actuelles (débit, QP) satisfait aux contraintes, mettre le nombre d'essais à MAX. 15 Etape 9.8 Le nombre d'essais maximal est-il atteint , est-il supérieur à une valeur prédéterminée? NON alors retour à l'étape 9.3 OUI Etape 9.9 Sélectionner les meilleurs paramètres de codage: 20 Parmi les couples de valeurs réelles (débit, QP) et leur protection correspondante, chercher la meilleure combinaison qui respecte les contraintes et si elle existe, déclencher le procédé de codage des données avec les paramètres de codage (compression, protection).correspondants. Dans le cas contraire, procéder au 25 raffinement, si nécessaire, du choix des meilleurs paramètres de codage selon la méthode applicable (barycentre ou valeur de QP la plus proche +1- 1) et déclencher le procédé de codage des données avec les paramètres de codage (compression, protection). Etape 9.10: Le processus de codage respecte-t-il les contraintes ? 30 NON Etape 9.11 Contrôle a posteriori du codaqe:Limiter le débit utilisé à une valeur maximale +marge soit en insérant un contrôle de QP au sein du codeur, soit par post-traitement en supprimant les trames amenant à dépasser la limite du débit + marge. OUI Etape 9.12 Fin du codaqe du GOP: - Emettre les paquets générés - Mémoriser la valeur en cours réelle du couple (débit, QP) dans la liste des couples précédents (débit, QP) - S'il y en a, lire les nouvelles informations de retour sur l'état de la lo transmission. Etape 9.13 Opération de contrôle pour le GOP suivant. 6 ù Procédé selon la revendication 5 caractérisé en ce que le nombre d'essais est choisi au plus égal à 3. 15 7 ù Procédé selon la revendication 1 caractérisé en ce que les données à transmettre se présentent sous la forme de groupement d'images et en qu'i comporte au moins les étapes suivantes Etape 10.1 Initialisation: 20 Prendre les valeurs par défaut pour les paramètres de compression et l'information de retour sur l'état de la transmission Etape 10.2 Identification de Séquence : A partir des {n} dernières couples (débit, QP), identifier la courbe de débit (C) la plus probable pour la séquence courante 25 Etape 10.3 Doit-on introduire de la protection au niveau applicatif ? NON Etape 10.4 Paramètres de compression: En fonction du débit disponible, sélectionner le couple (débit, QP) sur la courbe (C) qui correspond le mieux aux contraintes de débit et de qualité 30 vidéo.Sélectionner les paramètres correspondants et déclencher le procédé de codage. OUI Etape 10.5 Répartition de débit Compression/Protection : Pour chaque rendement de protection, sélectionner un jeu (S) de couples (débit, QP) sur la courbe (C) permettant de respecter les contraintes de débit. Pour chaque élément de (S), prédire la longueur du GOP et les distorsions correspondantes aux pertes de trames (Dioss) et en déduire la mesure to vidéo du PSNR9oP du GOP estimée à la réception, comparer cette valeur avec la meilleure valeur courante PSNR. Sélectionner le meilleur PSNR9oP et déclencher le procédé de codage des données avec les paramètres de codage (compression, protection) correspondantes. 15 Etape 10.6 Lors du procédé de codage, vérifier si le flux produit respecte le débit et les contraintes de marges? OUI Etape 10.7 Contrôle a posteriori du codage: Limiter le débit utilisé à une valeur maximale +marge soit en insérant un 20 contrôle de QP au sein du codeur, soit par post-traitement en supprimant les trames amenant à dépasser la limite du débit + marge. NON Etape 10.8 Fin du codage du GOP: - Emettre les paquets générés 25 - Mémoriser la valeur en cours réelle du couple (débit, QP) dans la liste des couples précédents (débit, QP) - S'il y en a, lire les nouvelles informations de retour sur l'état de la transmission. Etape 10.9 Opération de contrôle pour le GOP suivant 30i0 39 8 ù Procédé selon l'une des revendications 5 et 7 caractérisé en ce qu'ayant choisi les paramètres à utiliser pour les opérations de codage (compression, protection), le codage est réalisé, une opération de post traitement est exécutée qui correspondra à couper la ou les dernière(s) trame(s) (ayant le moins d'impact sur la séquence). 9 ù Procédé selon la revendication 8 caractérisé en ce que l'étape de post traitement est exécuté au niveau du codeur, conduisant typiquement pour le codeur H.264/AVC à l'insertion de trames artificiellement vides. ù Procédé selon l'une des revendications 4 à 7 caractérisé en ce que le code correcteur d'erreur utilisé est un code convolutif poinçonné à rendement compatible. 11 ù Système pour optimiser une transmission vidéo en milieu contraint comprenant un codeur vidéo adapté à coder les données vidéo à transmettre, les données étant transmises via un canal de communication caractérisé en ce qu'il comporte au moins un codeur pourvu d'un processeur adapté à exécuter les étapes selon l'une des revendications 1 à 9.