Brevet FR3004053A1 — publié le 20141003

PROCEDE DE REPARTITION DES NIVEAUX DE QUALITE ALLOUES A UNE PLURALITE DE CANAUX VIDEO L'invention concerne un procédé de répartition des niveaux de qualité 5 alloués à une pluralité de canaux vidéo et s'applique notamment au domaine du codage vidéo. Une séquence vidéo comporte de par sa nature même une importante redondance statistique tant dans le domaine temporel que spatial. La volonté d'utiliser toujours plus efficacement la bande passante des média de 10 transmissions sur lesquels transitent ces séquences et les objectifs de réduction du coût de leur stockage ont posé très tôt la question de la compression vidéo. Les techniques classiques de compression vidéo peuvent généralement se diviser en deux étapes. La première vise à réduire la redondance spatiale et pour cela à compresser une image fixe. L'image 15 est tout d'abord divisée en blocs de pixels (de tailles différentes en fonction des standards considérés, par exemple MPEG-1 /2/4, H264 ou H265), un passage dans le domaine fréquentiel puis une quantification permettent d'approximer ou de supprimer les hautes fréquences auxquelles l'oeil est moins sensible, et enfin les données quantifiées sont codées 20 entropiquement. La seconde a pour but de réduire la redondance temporelle. Cette technique permet de prédire une image à partir d'une ou plusieurs autre(s) image(s) de référence(s) précédemment décodée(s) au sein de la même séquence (prédiction de mouvement). Cette technique consiste à chercher dans ces images de référence le bloc qui correspond le mieux à 25 celui à prédire, et seul est conservé un vecteur estimation de mouvement correspondant au déplacement du bloc entre les deux images ainsi qu'une erreur résiduelle permettant de raffiner le rendu visuel. Aujourd'hui, des serveurs de calcul permettent de coder des canaux vidéo en temps réel à l'aide d'algorithmes de compression mis en oeuvre par 30 logiciel. La compression vidéo en temps réel par des solutions logicielles est rendue possible grâce aux évolutions des architectures de serveurs à base de CPU (Central Processing Unit). En effet, des architectures évoluées comprenant plusieurs coeurs de calcul et fonctionnant à haute fréquence sont aujourd'hui habituelles. En outre, des améliorations en termes de mémoire ou de taille de vecteur SIMD (Single Instruction Multiple Data) permettent également d'améliorer les performances de calcul. Un exemple de codeur vidéo pouvant être mis en oeuvre dans ce type de serveur est un codeur s'appuyant sur la norme de codage H264. Cependant, lorsque que des décodeurs vidéo sont mis en oeuvre par logiciel sur une architecture de serveur donné, il faut tenir compte de la puissance de calcul disponible. En effet, les contraintes ne sont pas les mêmes que celles rencontrées avec des serveurs s'appuyant sur une architecture matérielle dédiée utilisant par exemple des ASIC (ApplicationSpecific Integrated Circuit) ou des FPGA (Field-Programmable Gate Array). En effet, les images sont habituellement décomposées en blocs, comme par exemple des macroblocs. Ensuite, pour ces différents blocs plusieurs modes de codage sont testés. Le mode de codage permettant de minimiser le nombre de bits après compression tout en garantissant la meilleure qualité vidéo possible est alors sélectionné. Dans le cas d'une architecture de serveurs comprenant des composants dédiés dimensionnés de manière appropriée, il est possible de tester l'ensemble des modes de codage pour une pluralité de canaux vidéo sans avoir à se soucier du respect des contraintes de temps réel. Des techniques sont adaptées pour la mise en oeuvre de codeurs vidéo logiciels. On peut citer en particulier les techniques ETA (Early Termination Algorithms) et EPZS (Enhanced Predictive Zonal Search). Il est à noter par ailleurs que les ressources de traitement requises pour le codage peuvent varier en fonction du contenu vidéo. Ainsi, si un canal vidéo présente des caractéristiques non complexes, celui-ci sera encodé rapidement ce qui signifie que des ressources de traitement peuvent être allouées à d'autres canaux vidéo. Les ressources de traitement peuvent également être impactées par d'autres facteurs. En effet, d'autres traitements peuvent être mis en oeuvre sur le même serveur, ce qui peut générer des surcharges. Au contraire, des traitements peuvent être abandonnés ou se terminer ce qui peut se traduire par une disponibilité soudaine de ressources de traitement. Ainsi, les architectures de serveurs ayant pour objectif de coder plusieurs canaux vidéo sont habituellement surdimensionnés de manière à prendre en compte ces différentes variations de ressources de traitement tout en garantissant que les différents canaux de vidéo encodée puissent l'être en temps réel. Un but de l'invention est notamment de pallier les inconvénients précités. A cet effet l'invention a pour objet un procédé d'adaptation de la qualité d'une pluralité de canaux vidéo encodés par un serveur de codage vidéo, un canal vidéo étant associé à un codeur vidéo paramétré de manière à obtenir un niveau de qualité adaptable dynamiquement, le procédé comprenant les étapes suivantes : détermination de la quantité de ressources de traitement disponibles Rdisp dans le serveur ; sélection d'un canal vidéo ; pour le canal vidéo sélectionné, remplacement de son niveau de qualité courant par un niveau de qualité supérieur, ledit niveau étant choisi en fonction de la quantité de ressources de traitement disponibles Rdisp ; contrôle du temps de codage pour l'ensemble des canaux vidéo de manière à déterminer si le codage vidéo en temps réel est garanti avec les niveaux de qualité courants leur étant associés, le niveau de qualité courant étant remplacé par un niveau de qualité inférieure pour les canaux vidéo ne garantissant pas un codage vidéo en temps réel. Ce procédé permet d'adapter la qualité d'une pluralité de canaux vidéo de manière à ce que l'ensemble de ces canaux atteigne des performances temps réel. Avantageusement, ce procédé adapte la qualité des différents canaux vidéo quand les ressources de traitement manquent mais également lorsque les ressources de traitement disponibles sont détectées. Dans un mode de réalisation, le procédé comprend une étape d'homogénéisation des niveaux de qualité est appliquée après l'étape de contrôle du temps de codage, les niveaux de qualité alloués aux différents canaux étant adaptés pour partager les ressources de traitement disponibles Rdisp équitablement entre les canaux vidéo. A titre d'exemple, une étape détermine un budget de ressources supplémentaires BRS correspondant à la différence entre le nombre total de blocs pouvant être traités par unité de temps pour l'ensemble des canaux vidéo en utilisant la quantité de ressources de traitement disponibles Rdisp et le nombre de blocs pouvant être traité par unité de temps lorsqu'un niveau de qualité par défaut est alloué auxdits canaux vidéo, ce budget BRS étant utilisé pour distribuer les ressources supplémentaires en adaptant les niveaux de qualité des canaux vidéo. Selon un aspect de l'invention, les niveaux de qualité sont choisis lors de 20 l'étape d'homogénéisation de manière à ce que la différence entre le niveau de qualité choisi et le niveau de qualité par défaut pour les différents canaux vidéo soit la même. Selon un autre aspect de l'invention, les niveaux de qualité sont choisis lors de l'étape d'homogénéisation de manière à ce qu'ils soient égaux pour 25 l'ensemble des canaux vidéo. Selon un aspect de l'invention, pour augmenter le niveau de qualité courant Ns du canal sélectionné (304), ledit niveau Ns est remplacé par un niveau de qualité correspondant au niveau Ns augmenté d'un nombre N_Q de niveaux. 30 A titre d'exemple, K paramètres N_01, N_02, ..., N_QK sont respectivement associés à K canaux vidéo à encoder, lesdits paramètres étant utilisés pour augmenter les niveaux de qualité desdits canaux, leurs valeurs étant choisies en fonction de la priorité des canaux vidéo les uns par rapport aux autres. Dans un mode de réalisation, le canal sélectionné est le canal dont le 5 niveau de qualité courant est le plus faible comparé aux niveaux de qualité alloués aux autres canaux vidéo. Alternativement, le canal sélectionné est par exemple le canal dont le niveau de qualité est le plus proche de son niveau de qualité par défaut. Selon un aspect de l'invention, les étapes du procédé sont appliquées 10 périodiquement au rythme des trames vidéo du canal vidéo présentant le débit de trames le plus élevé. Dans un mode de réalisation, le contrôle du temps de codage se base pour chaque canal sur une estimation du temps de codage d'un groupe de trames à encoder. 15 Dans un autre mode de réalisation, le contrôle du temps de codage se base pour chaque canal sur une mesure du temps de codage d'un groupe de trames. L'invention a aussi pour objet un serveur de codage vidéo comprenant au moins une unité de traitement adaptée pour mettre en oeuvre le procédé 20 décrit précédemment. L'invention a aussi pour objet un programme d'ordinateur comportant des instructions pour l'exécution du procédé d'adaptation de la qualité décrit précédemment, lorsque le programme est exécuté par un module de traitement de données. 25 D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit donnée à titre illustratif et non limitatif, faite en regard des dessins annexés parmi lesquels : 30 - la figure 1 donne un exemple de procédé de contrôle du temps de codage pour un canal vidéo temps réel ; - la figure 2 présente un ensemble de jeux de paramètres permettant de faire varier la qualité de l'encodage d'un canal vidéo par un codeur vidéo ; - la figure 3 illustre schématiquement un procédé de répartition de la qualité d'une pluralité de canaux vidéo ; - les figures 4a, 4b et 4c donnent un exemple simple d'application du procédé de répartition des niveaux de qualité sur un ensemble de trois canaux vidéo ; - les figures 5a et 5b donnent un exemple simple d'application du procédé de répartition des niveaux de qualité sur un ensemble de trois canaux vidéo, le niveau de qualité d'un canal ayant été abaissé au préalable de manière à garantir le temps réel. La figure 1 donne un exemple de procédé de contrôle du temps de codage pour un canal vidéo temps réel. Ce type de procédé est habituellement utilisé pour diminuer le niveau de qualité sur l'encodage du canal vidéo traité lorsque le temps réel ne peut pas être garanti. Lorsque que les ressources de traitement disponibles sont suffisantes, le niveau de qualité sélectionné est un niveau de qualité par défaut. Dans cet exemple, une image est décomposée en plusieurs groupes de huit trames vidéo. Ainsi, le codeur vidéo logiciel traite les images du canal 25 vidéo par groupe de huit trames. Un premier groupe est sélectionné 100 puis encodé 101. Si 102 l'encodage du canal est terminé, le procédé s'arrête. Sinon, une étape 103 détermine le temps qui a été nécessaire pour encoder les huit trames du groupe de trames venant juste d'être compressé. 30 Après cela, une étape 104 est appliquée pour déterminer un délai D correspondant au délai entre le temps mesuré et le rythme des trames du canal vidéo avant encodage. Pour cela, l'expression suivante peut être utilisée : D = MT - Nf/FPS dans laquelle : MT représente le temps de codage mesuré pour le groupe de trame courant ; Nf représente le nombre de trame dans un groupe ; FPS représente le nombre moyen de trame par seconde à encoder pour que 10 le codage soit effectué en temps réel. Un test 105 est ensuite effectué sur la valeur D. Si le délai mesuré et positif, cela signifie que le temps réel ne pourra pas être respecté si cette qualité de codage est maintenue. Il faut alors diminuer le niveau de qualité 106. Dans ce cas, le procédé détermine un 15 ensemble d'au moins un paramètre permettant d'ajuster la manière dont le codeur logiciel compresse les groupes de trames afin que la qualité après compression soit diminuée. Ce jeu de paramètres est appliqué pour paramétrer le codeur vidéo logiciel pour le prochain groupe de trames à traiter. 20 Si le délai mesuré est négatif ou nul, cela signifie que le temps réel est respecté avec ce niveau de qualité. En outre des ressources de traitement (exprimées par exemple en cycles CPU) sont potentiellement disponibles. Dans ce cas 107, un niveau de qualité par défaut alloué au canal vidéo est soit maintenu soit réalloué. 25 La figure 2 présente un exemple de jeux de paramètres permettant de faire varier la qualité de l'encodage d'un canal vidéo par un codeur logiciel. La consommation de ressources de traitement par des algorithmes de codage vidéo dépend de la complexité du contenu dans le ou les canaux 30 vidéo à coder. Pour un contenu vidéo complexe, l'estimation de mouvement EPZS doit réaliser un nombre important d'itérations pour converger vers la meilleure solution. Il est possible de faire varier artificiellement la consommation de ressources de traitement en modifiant le paramétrage des codeurs vidéo. 5 Plusieurs paramètres peuvent être utilisés pour augmenter ou diminuer la consommation de ressources de traitement par un codeur vidéo logiciel. Dans cet exemple, vingt niveaux de qualité 200 numérotés de moins douze à neuf ont été définis. Un identifiant numérique 201 est utilisé pour désigner chaque niveau 10 pour le codage intra- trames. Un premier ensemble de paramètres 210 est utilisé pour le codage des trames inter et des trames intra. Ainsi, un paramètre 201 est utilisé pour paramétrer la manière dont une fonction de coût estime la complexité du codage d'un groupe de trame. Il est en effet possible d'obtenir un résultat 15 d'estimation du coût de codage précis au prix d'un calcul complexe ou bien d'obtenir une estimation moins précise mais ayant le mérite de pouvoir être rapidement calculée. Un autre paramètre 202 permet de déterminer la manière dont les images sont découpées notamment en ce qui concerne la taille des partitions des blocs. 20 Un deuxième ensemble de paramètres 220 permet de modifier la manière dont les trames inter sont codées. Un paramètre 203 permet de fixer le nombre d'itérations maximum à mettre en oeuvre pour l'estimation de mouvement EPZS. Un autre paramètre 204 permet de choisir le nombre d'images de référence à utiliser pour cette estimation de mouvement. 25 Pour chaque niveau de qualité 200, le nombre de blocs par seconde (MB/s) pouvant être présenté en entrée de l'ensemble des codeurs vidéo logiciels mis en oeuvre par le serveur est indiqué 205. Pour les niveaux de qualité les plus bas, le nombre de blocs pouvant être traités par seconde pour l'ensemble des canaux vidéo est plus élevé que pour les niveaux les 30 plus hauts. Cela signifie qu'un plus grand nombre de canaux vidéo peuvent être encodés. La figure 3 illustre schématiquement un exemple de procédé de répartition de la qualité d'une pluralité de canaux vidéo. Ce procédé permet d'adapter la qualité d'une pluralité de canaux vidéo de manière à ce que l'ensemble de ces canaux atteigne des performances temps réel. Avantageusement, ce procédé adapte la qualité des différents canaux vidéo quand les ressources de traitement manquent mais également lorsque les ressources de traitement disponibles sont détectées. Les ressources de traitement peuvent décroître si la complexité d'un canal vidéo décroît, par exemple si le canal vidéo correspond à un dessin animé ou à un contenu relativement statique. Par ailleurs, la configuration du serveur peut dans certains cas être telle qu'une proportion significative de ses ressources de traitement sont disponibles. C'est le cas par exemple lorsque que le nombre maximum de canaux n'est pas utilisé ou lorsque des prétraitements habituellement appliqués ne le sont pas pour certains canaux vidéo comme par exemple un filtrage numérique. Le procédé de contrôle du temps de codage décrit précédemment (figure 1) permet de garantir le temps réel pour un canal vidéo donné en diminuant sa qualité lorsqu'il n'y a pas assez de ressources de calcul à disposition pour cela. Le procédé décrit ci-après permet d'allouer dynamiquement un niveau de qualité pour une pluralité de canaux vidéo traité par un ensemble de codeurs vidéo logiciels. Ce procédé permet d'utiliser au mieux les ressources de traitement disponibles au niveau du serveur mettant en oeuvre lesdits codeurs vidéo logiciels tout en garantissant un encodage en temps réel pour les différents canaux vidéo. Pour un canal vidéo donné, les images sont décomposées en plusieurs groupes de trames. A titre d'exemple, un groupe comprend huit trames. Dans un mode de réalisation, le procédé est appliqué de manière synchronisée avec le traitement des groupes de trames du canal vidéo portant un flux vidéo dont le nombre de trames par seconde est le plus élevé. Le procédé est appliqué à un canal vidéo donné. Un niveau de qualité par défaut est alloué pour chacun des canaux vidéo à encoder. La quantité de ressources de traitement disponibles Rdisp dans le serveur est déterminée 300. Cette quantité de ressources de traitement peut 5 être estimée grâce à des fonctions habituellement proposées dans les systèmes d'exploitation utilisés par les serveurs de codage vidéo. A titre d'exemple, la fonction « sysload » d'Unix peut être utilisée pour cela. Le résultat de cette étape correspond par exemple à un pourcentage de l'ensemble des ressources de traitement du serveur de codage utilisées à un 10 instant donné. La quantité de ressources disponibles peut donc être déduite directement de cette mesure. Une étape 302 permet ensuite de déterminer un nombre N_Q correspondant au nombre de niveaux de qualité à ajouter au niveau de qualité Q courant d'un canal vidéo. Pour cela, la quantité de ressources de 15 traitement disponible Rdisp peut être comparée à au moins une valeur de seuil. 20 Par exemple : 85 %, N_Q = 3; N_Q = 2; N_Q = 1 ; N_Q = 0; - si Rdisp > 85 %, 50 %, - si 50 % Dans cet exemple, la qualité du canal vidéo Cl est augmentée d'un pas plus important que pour les canaux C2 et C3. Une étape 303 sélectionne ensuite l'un des canaux vidéo présentant le niveau de qualité le plus faible. Ensuite, un niveau de qualité supérieure est alloué 304 à ce canal avec une incrémentation de N_Q niveaux. Par exemple, si le niveau de qualité du canal ainsi sélectionné est de -2 et que N_Q = 3, alors ce canal se verra allouer un niveau de qualité égal à +1. Alternativement, l'étape 303 sélectionne l'un des canaux vidéo dont le niveau de qualité est le plus proche de son niveau de qualité par défaut. Dans ce cas, un niveau de qualité supérieure peut également être alloué à 15 ce canal avec une incrémentation de N_Q niveaux. Il apparaît qu'un serveur de codage vidéo mettant en oeuvre ce procédé doit comprendre des moyens pour connaître à tout instant les niveaux de qualité courants alloués aux différents canaux vidéo. Dans le cas de codeurs vidéo logiciels, ces moyens sont par exemple des canaux de 20 communications interprocessus. Un contrôle du temps de codage 305 est effectué de manière à savoir si le temps réel peut être respecté pour l'ensemble des canaux vidéo avec la qualité vidéo allouée à ce stade. Pour cela, le procédé de contrôle du temps de codage décrit à l'aide de la figure 1 peut être utilisé. 25 Un aspect déterminant de l'invention est qu'une adaptation globale des niveaux de qualité est effectuée sur l'ensemble des canaux vidéo afin d'utiliser les ressources disponibles du serveur avec en parallèle un mécanisme de contrôle agissant individuellement sur chacun des canaux vidéo de manière à garantir que les flux vidéo portés par ces canaux soient 30 encodés en temps réel. Avantageusement, les ressources de traitement du serveur sont exploitées à leur maximum pour des niveaux de qualité optimaux tout en se protégeant de la perte du temps réel (dans le cas par exemple d'une augmentation de charge de traitements imprévisible). Une étape 306 détermine alors un budget de ressources supplémentaires BRS. Ce BRS correspond par exemple au nombre de blocs 5 pouvant être traités par seconde pour l'ensemble des canaux vidéo au-delà du nombre de blocs traités si le niveau de qualité alloué par défaut aux canaux vidéo était appliqué. Cela signifie que si l'ensemble des canaux vidéo se voit allouer son niveau de qualité par défaut, le budget BRS est nul. Il devient supérieur à zéro dès que la qualité et augmentée pour au moins l'un 10 des canaux vidéo à encoder. Un test 307 est ensuite appliqué de manière à déterminer si lors de l'étape 305 la qualité a été abaissée (voir l'étape 106). Si le résultat du test 307 est négatif, il est vérifié 308 si le procédé doit être de nouveau appliqué 300. 15 Si le résultat du test 307 est positif, cela signifie qu'au moins un canal vidéo s'est vu allouer un niveau de qualité inférieur à l'étape 305 au niveau après l'application de l'étape 304. Dans ce cas, une étape 309 est appliquée de manière à homogénéiser les niveaux de qualité alloués aux différents canaux vidéo. Pour cela, le budget BRS est utilisé. Celui-ci peut être vu 20 comme un budget en termes de ressources de codage supplémentaire allant à répartir entre les différents canaux vidéo pour aller au-delà de leur niveau de qualité par défaut. Avantageusement, les ressources disponibles peuvent bénéficier à l'ensemble des canaux vidéo. Au contraire, si les niveaux de qualité doivent 25 être abaissés en dessous des niveaux par défaut, un canal vidéo ne sera pas plus lésé que son voisin. Dans un mode de réalisation préféré, les niveaux de qualité sont choisis lors de l'étape 309 de manière à ce que la différence entre le niveau de qualité ainsi choisi et le niveau de qualité par défaut pour les différents 30 canaux vidéo soit la même. A titre d'exemple, les niveaux de qualité peuvent être choisis lors de l'étape 309 de manière à ce qu'ils soient égaux pour l'ensemble des canaux vidéo. Alternativement ils peuvent être choisis de manière à ce que la 5 différence de niveaux de qualité entre deux canaux vidéo ne dépasse pas NO. Alternativement ils peuvent être choisis de manière à ce que la différence de niveaux de qualité entre deux canaux ne dépasse pas un. Un test 308 est alors appliqué afin de vérifier si d'autres groupes de 10 trames doivent être encodés. Si c'est le cas, les étapes 300 et suivantes sont appliquées pour le prochain groupe à traiter. Sinon, le procédé s'arrête jusqu'à ce qu'il soit exécuté de nouveau par le serveur. Ce procédé peut être appliqué indépendamment pour chacun des canaux ou bien de manière centralisée au rythme des trames vidéo du canal 15 vidéo présentant le débit de trames le plus élevé. Les figures 4a, 4b et 4c donnent un exemple simple d'application du procédé de répartition des niveaux de qualité sur un ensemble de trois canaux vidéo. 20 Dans cet exemple, trois canaux vidéo CH1, CH2, CH3 sont actifs. De manière à simplifier l'exposé, le niveau de qualité par défaut est le même pour ces trois canaux et est égal à zéro. Le procédé de répartition des niveaux de qualité est applicable également lorsque que différents niveaux de qualité par défaut sont alloués aux canaux vidéo pris en charge par un 25 serveur donné. Par ailleurs, il est supposé que l'étape 305 n'a pas pour conséquence de diminuer le niveau de qualité des canaux vidéo. Un premier groupe de trames est traité (figure 4a) et il apparaît que des ressources de traitement sont disponibles pour augmenter la qualité 30 d'encodage des canaux vidéo. Pour N_Q = 1, l'un des canaux peut voir son niveau de qualité augmenter 400 d'une unité. Dans cet exemple, le canal CH1 passe du niveau de qualité zéro au niveau de qualité un. La conséquence de ce changement de niveau est que l'encodage du canal CH1 nécessitera plus de ressources de traitement. Ce surplus de ressources correspond par exemple à un traitement supplémentaire de 1000 MB/s en plus du nombre de blocs par seconde devant être traités pour le niveau de qualité par défaut. Le budget BRS est alors égal à la 1000 MB/s. Un second groupe de trames est ensuite traité (figure 4b). Cette fois, du fait d'une détection de ressources supplémentaires, c'est le canal CH2 qui voit son niveau de qualité augmenter 401. Il est supposé que les canaux CH1 et CH2 sont de même type. Le budget BRS est mis à jour en conséquence à 2000 MB/s. Un troisième groupe de trames est ensuite traité (figure 4c) et le procédé de répartition selon invention est appliqué. Il est supposé qu'à ce stade il reste des ressources de traitement disponibles. Ainsi, la qualité du canal CH3 peut être augmentée 402 à son tour. Dans cet exemple il est supposé que le canal CH3 est un canal haute définition. En conséquence, le passage du niveau de qualité zéro au niveau de qualité à requiert une quantité importante de ressources de traitement. A titre d'exemple, il est considéré que pour passer du niveau zéro au niveau un, une capacité de traitement supplémentaire équivalente à 6000 MB/s est requise. Ainsi, le budget BRS est mis à jour et atteint 8000 MB/s. Les figures 5a et 5b donnent un exemple simple d'application du procédé de répartition de niveaux de qualité sur un ensemble de trois canaux 25 vidéo, le niveau de qualité d'un canal ayant été abaissé de manière à garantir le temps réel. Dans cet exemple, le canal CH1 est passé de son niveau de qualité par défaut fixé à zéro à un niveau de qualité inférieure -1 suite à l'application de l'étape 305. Si le budget BRS était auparavant égal à 8000 MB/s, celui-ci 30 est par exemple réduit à 7000 MB/s du fait de cette baisse de niveau de qualité. Le résultat est que le niveau de qualité CH1, CH2, CH3 des trois canaux est hétérogène. CH1 a son niveau à -1, CH2 à +2 et CH3 à +1. De manière à ce que le niveau de qualité allouée à ces canaux soit le plus homogène possible, le procédé de répartition des niveaux de qualité selon l'invention comprend une étape d'homogénéisation de ces niveaux (étape 307). Pour cela, les niveaux de qualité des canaux CH1 et CH2 sont respectivement augmenté 500 et diminué 501 de manière à ce que l'écart entre le niveau de qualité le plus élevé alloué un canal et le niveau de qualité de moins élevé allouait un canal soit minimisé tout en maintenant le budget BRS constant. L'articulation du procédé de répartition des niveaux de qualité selon invention avec les mécanismes classiques de contrôle de temps de codage permet de garantir le temps réel pour chacun des canaux tout en profitant au mieux des ressorts de traitement disponibles. En outre, le mécanisme d'homogénéisation des niveaux de qualité permet de répartir équitablement le surplus de ressources de traitement pour l'ensemble des canaux vidéo. La figure 6 présente un serveur de codage vidéo pouvant mettre en oeuvre le procédé d'attribution de données temporaires d'authentification. Ce dispositif comprend au moins une unité centrale de traitement (CPU) 601 reliée à un bus de communication interne 600. Une mémoire à accès aléatoire (RAM) 607 est également connectée au BUS. Le serveur comprend en outre un contrôleur de périphérique de stockage de masse 602 dont la fonction est de gérer les accès à une 25 mémoire de masse, tels qu'un disque dur 603. La mémoire de masse mémorise des instructions de programmes informatiques et des données permettant la mise en oeuvre du procédé d'attribution de données temporaires d'authentification. La mémoire de masse peut être composée de toutes les formes 30 de mémoire non-volatile, comme par exemple des EPROM, des EEPROM, des mémoires flash, des disques magnétiques tels que disques durs internes et des disques amovibles, des disques magnéto-optiques, et des disques CD-ROM 604. Le serveur comporte également un adaptateur de réseau 605 gérant l'accès à un réseau de télécommunication 606. De manière optionnelle, le serveur peut également comporter un équipement haptique 609 tel qu'un dispositif de commande de curseur, un clavier ou tout autre équipement similaire. Un équipement de commande de curseur peut ainsi être utilisé dans le dispositif pour permettre à l'utilisateur de positionner un curseur à un emplacement donné sur un écran 608. En outre, le dispositif de contrôle du curseur permet à l'utilisateur de sélectionner diverses commandes et de générer des signaux de contrôle. Le dispositif de commande de curseur peut être une souris, l'un des boutons de ladite souris étant utilisé pour déclencher la génération des signaux d'entrée. REVENDICATIONS1- Procédé d'adaptation de la qualité d'une pluralité de canaux vidéo encodés par un serveur de codage vidéo, un canal vidéo étant associé à un codeur vidéo paramétré de manière à obtenir un niveau de qualité adaptable dynamiquement, le procédé comprenant les étapes suivantes : détermination (300) de la quantité de ressources de traitement disponibles Rdisp dans le serveur ; sélection (303) d'un canal vidéo ; pour le canal vidéo sélectionné, remplacement (304) de son niveau de qualité courant par un niveau de qualité supérieur, ledit niveau étant choisi en fonction de la quantité de ressources de traitement disponibles Rdisp ; contrôle du temps de codage (305) pour l'ensemble des canaux vidéo de manière à déterminer si le codage vidéo en temps réel est garanti avec les niveaux de qualité courants leur étant associés, le niveau de qualité courant étant remplacé par un niveau de qualité inférieure pour les canaux vidéo ne garantissant pas un codage vidéo en temps réel. 2- Procédé selon la revendication 1 dans lequel une étape d'homogénéisation (309) des niveaux de qualité est appliquée après l'étape de contrôle du temps de codage (305), les niveaux de qualité alloués aux différents canaux étant adaptés pour partager les ressources de traitement disponibles Rdisp (300) équitablement entre les canaux vidéo. 3- Procédé selon la revendication 2 dans lequel une étape (306) détermine un budget de ressources supplémentaires BRS correspondant à la différence entre le nombre total de blocs pouvantêtre traités par unité de temps pour l'ensemble des canaux vidéo en utilisant la quantité de ressources de traitement disponibles Rdisp et le nombre de blocs pouvant être traité par unité de temps lorsqu'un niveau de qualité par défaut est alloué auxdits canaux vidéo, ce budget BRS étant utilisé pour distribuer les ressources supplémentaires en adaptant les niveaux de qualité des canaux vidéo. 4- Procédé selon l'une des revendications 2 ou 3 dans lequel les niveaux de qualité sont choisis lors de l'étape d'homogénéisation (309) de manière à ce que la différence entre le niveau de qualité choisi et le niveau de qualité par défaut pour les différents canaux vidéo soit la même. 5- Procédé selon l'une des revendications 2 ou 3 dans lequel les niveaux de qualité sont choisis lors de l'étape d'homogénéisation (309) de manière à ce qu'ils soient égaux pour l'ensemble des canaux vidéo. 6- Procédé selon l'une des revendications précédentes dans lequel pour augmenter le niveau de qualité courant Ns du canal sélectionné (304), ledit niveau Ns est remplacé par un niveau de qualité correspondant au niveau Ns augmenté d'un nombre N_Q de niveaux. 7- Procédé selon la revendication 6 dans lequel K paramètres N_01, N_02, ..., N_QK sont respectivement associées à K canaux vidéo à encoder, lesdits paramètres étant utilisés pour augmenter le niveau de qualité desdits canaux, leurs valeurs étant choisies en fonction de la priorité des canaux vidéo les uns par rapport aux autres. 8- Procédé selon l'une des revendications précédentes dans lequel le canal sélectionné (303) est le canal dont le niveau de qualité courant est le plus faible comparé aux niveaux de qualité alloués aux autres canaux vidéo. 9- Procédé selon l'une des revendications précédentes dans lequel le canal sélectionné (303) est le canal dont le niveau de qualité est le plus proche de son niveau de qualité par défaut. 10-Procédé selon l'une des revendications précédentes dans lequel ses étapes sont appliquées périodiquement au rythme des trames vidéo du canal vidéo présentant le débit de trames le plus élevé. 11-Procédé selon l'une des revendications précédentes dans lequel le contrôle du temps de codage (305) se base pour chaque canal sur une estimation du temps de codage d'un groupe de trames à encoder. 12- Procédé selon l'une des revendications 1 à 10 dans lequel le contrôle du temps de codage (305) se base pour chaque canal sur une mesure du temps de codage d'un groupe de trames. 13- Serveur de codage vidéo comprenant au moins une unité de traitement adaptée pour mettre en oeuvre le procédé selon l'une quelconque des revendications 1 à 12. 14- Programme d'ordinateur comportant des instructions pour l'exécution du procédé d'adaptation de la qualité selon l'une quelconque des revendications 1 à 12, lorsque le programme est exécuté par un module de traitement de données.