Brevet FR2851111A1 — publié le 20040813

L'invention concerne un dispositif et une méthode de codage double passe d'un flux de données vidéo. De nouveaux standards de compression émergent et engendrent des 5 cots et des complexités de codage accrus tout en améliorant considérablement la qualité de codage. Le développement des applications multimédia et la multiplicité des réseaux de données, rendent les systèmes de codage de données de plus en plus complexes. Dans un contexte d'images sources, de nombreuses techniques de 10 codage double passe ont été développées, la première passe de codage permettant d'assurer une connaissance précise des complexités des images à coder, la deuxième passe codant alors les images en fonction de cette complexité. De telles techniques de codage double passe sont très performantes 15 mais onéreuses notamment dans le cas d'un codeur conforme à la norme H26L (encore désignée par H.264) définie dans le standard ITU-T Rec. H.264 ISO/IEC 14496-10AVC. L'invention propose un dispositif de codage double passe d'un flux de 20 données vidéo comportant: - des moyens de codage d'un premier type assurant la première passe de codage, - des moyens de codage d'un second type assurant la seconde passe de codage. Selon l'invention - les moyens de codage de second type sont différents des moyens de codage de premier type et - les moyens de codage de second type utilisent des informations de codage issues de la première passe de codage. 30 Ainsi, au lieu d'utiliser deux passes de codage effectuant un codage de même type ou un codeur simple passe, on utilise un codeur double passe dont les deux passes de codage appliquent un codage de type différent. La possibilité d'utiliser deux passes de codage de type différent peut permettre éventuellement un gain de cot d'implémentation, tout en préservant la qualité de codage offerte par un codeur double-passe et en améliorant la qualité de prédiction des complexités par rapport à un codage simple passe. Selon un mode préféré de réalisation, - les moyens de codage d'un premier type comportent: - des moyens de mesure des cots de codage de la première passe pour chaque image du flux vidéo à coder, - des moyens de mémoriser les cots de codage de la première 10 passe de codage de plusieurs images définissant une période de référence, - les moyens de codage d'un second type comportent: - des moyens de mesure des cots de codage de la seconde passe pour chaque image du flux vidéo à coder, - des moyens de mémoriser les cots de codage de la seconde passe de codage de plusieurs images définissant une période de référence. La première passe de codage permet d'assurer une connaissance 20 précise des complexités de codage des images et de la période de référence. L'utilisation d'une période de référence permet de garantir la stabilité de la seconde passe de codage. Selon un mode préféré de réalisation, le dispositif comporte des 25 moyens de régulation de débit du flux de données issu des moyens de codage de seconde passe. Selon un mode préféré de réalisation, les moyens de régulation de débit comportent: - des moyens de prédiction qui calculent le poids relatif de l'image à coder dans la période de référence, - des moyens de régulation qui calculent un cot de consigne de l'image à coder par les moyens de codage de second type en fonction - d'une consigne de débit reçue des moyens de codage de seconde type et, - du poids relatif de l'image à coder dans la période de référence, - des moyens de quantification de codage de second type qui calculent le pas de quantification à appliquer à chaque image à coder par les moyens de codage de second type en fonction du cot de consigne de l'image. Selon un mode préféré de réalisation, - les cots de codage de la première passe et de la seconde passe comportent au moins pour chaque image à coder et pour chaque période de référence: - le cot compressible, - le cot non compressible, - et les moyens de codage de la première passe et de la seconde passe calculent pour chaque image à coder, la complexité de codage comme étant le produit du cot compressible par le pas de quantification. Selon un mode préféré de réalisation, les moyens de prédiction comportent: - des moyens de calcul d'un rapport, dit rapport de cot non compressible, du cot non compressible de codage de la première passe sur 25 le cot non compressible de codage de la seconde passe pour chaque image à coder, des moyens de calcul d'un rapport, dit rapport de complexité, de la complexité de codage de la première passe sur la complexité de codage de la seconde passe pour chaque image à coder, - des moyens de mettre à jour un rapport de complexité moyenné en fonction du rapport de complexité des dernières images codées et - des moyens de mettre à jour un rapport de cot non compressible moyenné en fonction du rapport de cot non compressible des dernières images codées, - des moyens d'estimer la complexité de l'image courante à coder par les moyens de codage de second type en fonction du rapport de complexité moyenné et de la complexité de codage de second type de ladite image, - des moyens d'estimer le cot non compressible de l'image courante à 5 coder par les moyens de codage de second type en fonction du rapport de cot non compressible moyenné et du cot non compressible de codage de premier type de ladite image, - des moyens de calculer le cot non compressible de la période de référence à laquelle appartient l'image courante, - des moyens de calculer la complexité de la période de référence à laquelle appartient l'image courante, - des moyens de calculer le poids relatif de l'image courante comme étant le rapport entre la complexité de l'image courante et la complexité totale de la période de référence à laquelle appartient l'image courante. Selon un mode préféré de réalisation, le débit moyen du flux de données issu des moyens de codage de première passe est supérieur de 30 pourcent à 50 pourcent à la consigne de débit reçue des moyens de codage de seconde passe. Selon un mode préféré de réalisation, le dispositif de codage comporte des moyens de quantification de codage de première passe calculant un pas de quantification en fonction de la consigne de débit reçue des moyens de codage de seconde passe. Selon un mode préféré de réalisation, les moyens de codage de première passe codent l'image conformément à la norme MPEG-2 et les moyens de codage de seconde passe codent l'image conformément à la norme H.264. L'étude des cots compressibles et des cots de syntaxe d'image en image sur un schéma de codage H.264 montre que, comme en MPEG-2,: - les cots compressibles d'une image intra (1) ou prédictive (P) à l'autre peuvent être très instables, - les cots de syntaxe d'une image P ou bidirectionnelle (B) à l'autre sont souvent très instables. Par conséquent, des prédictions de complexités basées sur les dernières images de même type codées ne peuvent être considérées fiables. Par contre, l'étude des rapports des cots compressibles et des cots de syntaxe d'image en image en MPEG-2 et en H.264 montre que ces rapports sont d'une stabilité assez remarquable pour chacun des types 10 d'image. Dès lors, l'idée d'ajouter une première passe de codage MPEG-2 à un codage H.264 pour améliorer la qualité de prédiction des complexités prend tout son sens. Le principe mis en oeuvre est d'associer deux organes de mesure de complexité d'images, l'un sur la première passe de codage MPEG-2, l'autre 15 sur la seconde passe de codage H.264. La profondeur de mesure entre les deux passes de codage doit être d'un GOP pour permettre des prédictions relatives optimales. La combinaison d'une première passe de codage de type MPEG-2 à 20 une seconde passe de codage de type H.264 permet de réduire les cots d'implémentation d'un codeur double passe conforme à la norme H.264 tout en approchant les performances d'un tel codeur. L'invention concerne également un procédé de codage double passe 25 d'un flux de données vidéo comportant les étapes de: - codage selon un premier type assurant la première passe de codage, - codage selon un second type assurant la seconde passe de codage. Selon l'invention, - le codage de second type est différent du codage de premier type et - l'étape de codage de second type utilise des informations de codage issues de la première passe de codage. L'invention concerne également un produit programme 5 d'ordinateur, caractérisé en ce qu'il comprend des instructions de code de programme pour l'exécution des étapes du procédé selon l'invention lorsque ledit programme est exécuté sur un ordinateur. Par " produit programme d'ordinateur " , on entend un support de programme d'ordinateur, qui peut consister non seulement en un espace de stockage contenant le programme, 10 tel qu'une disquette ou une cassette, mais aussi en un signal, tel qu'un signal électrique ou optique. L'invention sera mieux comprise et illustrée au moyen d'exemples de modes de réalisation et de mise en oeuvre avantageux, nullement limitatifs, 15 en référence aux figures annexées sur lesquelles: - la figure 1 représente un dispositif de codage selon un mode de réalisation de l'invention, - la figure 2 représente un module de régulation de débit selon un 20 mode de réalisation de l'invention. Le dispositif de codage comporte des moyens 5 de codage de première passe. Selon un mode préféré de réalisation, ces moyens de codage effectuent un codage selon la norme MPEG-2. Ces moyens 5 de codage sont reliés à un moyen 6 de mesure MPEG2. Le dispositif de codage comporte également des moyens 1 générant un retard du flux de données vidéo en entrée de moyens 2 de codage de seconde passe. Selon un mode préféré de réalisation et décrit ci-après, les moyens 2 de codage de seconde passe effectuent un codage selon la norme H.264. La sortie des moyens 2 de codage de seconde passe est reliée à l'entrée de moyens 4 de mesure d'informations de codage de seconde passe. La sortie des moyens 4 de mesure H.264 est reliée à une entrée d'un organe 3 de régulation de débit. Cet organe 3 de régulation de débit reçoit également en entrée un signal de consigne de débit de sortie ainsi que des signaux de mesure issus 5 du moyen 6 de mesure MPEG-2. Les signaux de mesure issus du moyen 6 sont également transmis à une entrée d'un moyen de quantification 7. Ce moyen 7 de quantification reçoit également en entrée le signal de consigne de débit de sortie. Ce moyen 7 de quantification assure la pseudo-régulation du débit de sortie des moyens 5 de codage de première passe et transmet un 10 pas de quantification QMPEG-2 au moyen 5 de codage de première passe. Le moyen 5 de codage effectue un codage en boucle ouverte, le flux généré par ce moyen de codage ne respectant pas de consigne de débit précise par image. Selon un mode préféré de réalisation, le pas de quantification utilisé par le moyen 5 de codage de première passe est corrigé en fonction de la consigne de débit fixée pour le moyen 2 de codage de seconde passe. Avantageusement, le débit moyen à la sortie du moyen 5 de codage de première passe est de 30% à 50 % supérieur à la consigne de débit fixée 20 pour le moyen 4 de codage H.264 pour obtenir un fonctionnement optimal du codeur. L'organe 3 de régulation de débit est représenté sur la figure 2. Il peut être décomposé en: - un organe 10 de prédiction des cots et complexités de codage - un organe 9 de régulation de niveau image, prenant en compte l'état d'un buffeur décodeur virtuel, - un organe 8 de quantification. Le flux de données vidéo est reçu en entrée du moyen 5 de codage assurant la première passe de codage. Dans le cas d'un codage MPEG-2 ou MPEG-4 ASP, le cot compressible est d principalement aux coefficients de la transformation en cosinus discrète DCT. Dans le cas d'un codage H.264, le cot compressible est d à la transformation entière approximant une transformation en DCT. Dans le mode de réalisation préféré décrit ici, dans lequel la première 5 passe de codage est réalisée par des moyens de codage conformes à la norme MPEG-2, les images peuvent être codées selon trois modes, intra (1), bidirectionnel (B) ou prédictif (P). Dans le cas d'un codage de type MPEG-2, la granularité de quantification est parfois plus fine qu'une granularité de type image et peut se 10 situer au niveau macrobloc. Dans ce cas, chaque macrobloc de l'image est codé avec son propre pas de quantification. Le moyen 5 de codage effectue un codage conforme à la norme MPEG-2. Il fournit au moyen 6, pour chaque macrobloc de l'image, les 15 paramètres suivants: - Le cot compressible, noté EncCostMPEG2. - Le cot non compressible encore appelé cot de syntaxe, noté OverheadMPEG220 Le moyen 6 calcule pour chaque macrobloc des images du flux vidéo: - la complexité, exprimée comme le produit du cot compressible par le pas de quantification, notée XMPEG2. Ensuite, pour calculer le cot compressible et la complexité de chaque 25 image, il effectue respectivement le cumul des cots compressibles et des complexités de chaque macrobloc. Afin d'assurer la qualité de codage des images au cours du temps, le codage est régulé au cours du temps, sur une période de référence. Dans des codages de type MPEG-2 ou H.264, le GOP (acronyme 30 anglais de " Group Of Pictures ") constitue une période de référence appropriée. Le moyen 6 calcule donc aussi par cumul sur la période de référence: - les cots non compressibles de l'ensemble des images, par type d'image, sur la période de référence, notés IGOPOverheadMPEG2, BGOPOverheadMPEG2, PGOPOverheadMpEG2, respectivement pour les images 1, B et P. - la complexité de l'ensemble des images, par type d'image, de la période de référence, notés IGOPXMPEG2, BGOPXMPEG2, PGOPXMPEG2, - le cot total, incluant le cot compressible et le cot non compressible, de l'ensemble des images de la période de référence, par type d'image. Le moyen 2 de codage de seconde passe effectue un codage conforme à la norme H.264. Il fournit au moyen 4 de mesure les paramètres suivants pour chaque macrobloc de l'image: - Le cot compressible, noté EncCostH264 - Le pas de quantification, Le moyen 4 de mesure calcule la complexité macrobloc XH264 en faisant le produit du cot compressible par le pas de quantification. Le moyen 4 de mesure calcule pour chaque macrobloc, le cumul des 20 cots compressibles et de la complexité. Il en déduit le cot non compressible, noté OverheadH264. La figure 2 représente l'organe 3 de régulation de débit. 25 L'organe 3 de régulation de débit comporte: - Un organe 10 de prédiction des cots et complexités relatifs de l'image courante à coder, - Un organe 9 de régulation niveau image, - Un organe 8 de quantification. L'organe 10 de prédiction des cots et complexités relatifs de l'image courante à coder calcule un estimé du cot non compressible et de la complexité, à la fois pour l'image courante et pour la période de référence définie précédemment, afin de fournir à l'organe 9 de régulation niveau image, le poids relatif de l'image à coder. La suite d'opérations effectuées par l'organe 10 de prédiction est la suivante: - calcul du rapport entre le cot non compressible du codage effectué par le moyen 5 de codage de première passe et le cot non compressible du codage effectué par le moyen 2 de codage seconde passe pour la dernière image codée: Ratiooverhead = OverheadH.264 OverheadMPEG -2 - calcul du rapport entre la complexité du codage effectué par le moyen de codage de première passe et la complexité du codage effectué par le 15 moyen 2 de codage seconde passe pour la dernière image codée: Ratio = XH. 264 XMPEG-2 Le module 10 met à jour, à partir des derniers rapports ainsi 20 mémorisés, un rapport de complexité moyenné, SmoothedRatiox, et un rapport de cot non compressible moyenné, SmoothedRatiooverhead. Les rapports Ratiox et Ratiooverhead utilisés sont évalués sur une période différente de la période de référence. Ces ratios sont calculés pour les différents modes de codage, un ratio étant calculé par type de codage. Pour les images de type Intra (I): Smoothedratiooverhead = Ratiooverhead Smoothedratiox = Ratiox Pour les images de type bidirectionnel (B) ou prédictif (P): Smoothedratiooerhed 2 x SmoothedRatioOverhead + Ratioverhead Soothedratio = 2 x SmoothedRatioX + Ratiox Smoothedratiox =3 Smoothedratiooverhead et smoothedratiox étant initialisés respectivement à la valeur Ratiooverhead et Ratiox. Ensuite, le module 10 calcule le cot non compressible et la complexité 10 de l'image courante à coder à partir des mesures de l'organe de mesure 6. - cot non compressible de l'image courante à coder: OverheadH 264 = SmoothedRatiooverhead [mode] x OverheadMPEG-2 - complexité de l'image courante à coder: XH.264 = SmoothedRatiox [mode]x XMPEC-2 Le module 10 calcule également le cot non compressible et la complexité de codage de la période de référence courante: - cot non compressible: GOPOverhead.264 =SmoothedRatiooverhe,d [I]x IGOPOverheadmEG_2 + SmoothedRatiooerhead [B]x BGOPOverheadMpEGc 2 + SmoothedRatiooverhed [P]x BGOPOverheadMpE-2 complexité: GOPXH 264 = ZI x SmootedRatioX [I]x IGOPXMPEG-2 + Zp x SmootedRatiox [P]x PGOPXMpEc-2 + ZB x SmootedRatiox [B]x BGOPXMpEGc-2 Z, Zp et ZB sont des constantes de pondération. Ces constantes traduisent le fait que pour avoir une impression de qualité de codage constante, il faut quantifier différemment les images 1, B et P, les images B étant quantifiées plus durement. L'organe 9 de régulation au niveau image calcule un cot de consigne image en fonction de la consigne de débit de sortie fournie par un organe de supervision (non représenté) et du poids relatif de l'image à coder dans la 10 période de référence considérée. Z[mod e]XH.264 T argetCost = GOPT g etCost GOPXH.264 avec: GOPTagetCost = (MeanBppH.264 x Nbimages) - GOPOverheadH.264 Avec - TargetCost: cot de consigne image, - GlobalTargetCost: cot global de la période de référence, - MeanBppH.264: cot moyen par image selon consigne de débit, Nbimages: nombre d'images dans la période de référence. L'organe de régulation corrige éventuellement le cot de consigne image précédent en fonction de l'état du buffeur décodeur virtuel qu'il gère. L'organe 8 de quantification calcule la quantification à appliquer dans l'image lors du codage de seconde passe, en fonction de la consigne de cot image fournie par l'organe de régulation niveau image. La granularité de quantification peut être de niveau image ou rangée de macroblocs ou 30 macroblocs individuels, au choix de l'implémenteur. Le dispositif de codage double passe décrit ci-dessus dans le cadre d'un codage de première passe selon la norme MPEG-2 et d'un codage de seconde passe dans le cadre de la norme H.264, peut bien entendu être étendu à d'autres types de codage et notamment à des codages de type hybride combinant: - un codage par transformée sur de blocs de taille fixe ou adaptative, pour supprimer les redondances spatiales, - des prédictions compensées en mouvement, pour supprimer les redondances temporelles, Et possédant les mêmes types d'images, à savoir: - des images intra (I), utilisant le premier des deux codages mentionnés précédemment (codage spatial), - des images prédites (P), utilisant les deux codages spatial et temporel, avec des prédictions par rapport à des images de référence situées 15 dans le passé exclusivement, - des images bi-prédites (B), utilisant les deux codages spatial et temporel, avec des prédictions par rapport à des images de référence situées dans le passé et dans le futur. Revendications 1. Dispositif de codage double passe d'un flux de données vidéo comportant: - des moyens (5, 6) de codage d'un premier type assurant la première passe de codage, - des moyens (2, 4) de codage d'un second type assurant la seconde passe de codage, caractérisé en ce que - les moyens (2, 4) de codage de second type sont différents des moyens (5, 6) de codage de premier type et - les moyens (2, 4) de codage de second type utilisent des informations de codage issues de la première passe de codage. 2. Dispositif de codage selon la revendication 1 caractérisé en ce que les moyens (5, 6) de codage d'un premier type comportent: - des moyens (6) de mesure des cots de codage de la première passe pour chaque image du flux vidéo à coder, - des moyens (6) de mémoriser les cots de codage de la première passe de codage de plusieurs images définissant une période de référence, - les moyens (2, 4) de codage d'un second type comportent: des moyens (4) de mesure des cots de codage de la seconde 25 passe pour chaque image du flux vidéo à coder, - des moyens (4) de mémoriser les cots de codage de la seconde passe de codage de plusieurs images définissant une période de référence. 3. Dispositif de codage selon l'une des revendications 1 ou 2 caractérisé en ce qu'il comporte des moyens (3) de régulation de débit du flux de données issu des moyens de codage de seconde passe. 4. Dispositif selon la revendication 3 caractérisé en ce que les moyens (3) de régulation de débit comportent: - des moyens (10) de prédiction qui calculent le poids relatif de l'image à coder dans la période de référence, - des moyens (9) de régulation qui calculent un cot de consigne de l'image à coder par les moyens (2, 4) de codage de second type en fonction - d'une consigne de débit reçue des moyens (2, 4) de codage de seconde type et, - du poids relatif de l'image à coder dans la période de référence, - des moyens (8) de quantification de codage de second type qui calculent le pas de quantification à appliquer à chaque image à coder par les moyens de codage (2, 4) de second type en fonction du cot 15 de consigne de l'image. 5. Dispositif selon l'une des revendications précédentes caractérisé en ce que - les cots de codage de la première passe et de la seconde passe 20 comportent au moins pour chaque image à coder et pour chaque période de référence: - le cot compressible, - le cot non compressible, - et les moyens (2, 4, 5, 6) de codage de la première passe et de la 25 seconde passe calculent pour chaque image à coder, la complexité de codage comme étant le produit du cot compressible par le pas de quantification. 6. Dispositif selon la revendication 4 ou 5 caractérisé en ce que les 30 moyens (10) de prédiction comportent: - des moyens de calcul d'un rapport, dit rapport de cot non compressible, du cot non compressible de codage de la première passe sur le cot non compressible de codage de la seconde passe pour chaque image à coder, - des moyens de calcul d'un rapport, dit rapport de complexité, de la complexité de codage de la première passe sur la complexité de codage de la seconde passe pour chaque image à coder, des moyens de mettre à jour un rapport de complexité moyenné en fonction du rapport de complexité des dernières images codées et - des moyens de mettre à jour un rapport de cot non compressible moyenné en fonction du rapport de cot non compressible des dernières images codées, - des moyens d'estimer la complexité de l'image courante à coder par les 10 moyens de codage de second type en fonction du rapport de complexité moyenné et de la complexité de codage de second type de ladite image, - des moyens d'estimer le cot non compressible de l'image courante à coder par les moyens de codage de second type en fonction du rapport de cot non compressible moyenné et du cot non compressible de codage 15 de premier type de ladite image, - des moyens de calculer le cot non compressible de la période de référence à laquelle appartient l'image courante, - des moyens de calculer la complexité de la période de référence à laquelle appartient l'image courante, - des moyens de calculer le poids relatif de l'image courante comme étant le rapport entre la complexité de l'image courante et la complexité totale de la période de référence à laquelle appartient l'image courante. 7. Dispositif selon l'une des revendications précédentes caractérisé en 25 ce qu'il comporte des moyens (7) de quantification de codage de première passe calculant un pas de quantification en fonction de la consigne de débit reçue des moyens (2, 4) de codage de seconde passe. 8. Dispositif selon l'une des revendications précédentes caractérisé en ce que les moyens (5, 6) de codage de première passe codent l'image conformément à la norme MPEG-2 et les moyens (2, 4) de codage de seconde passe codent l'image conformément à la norme H.264. 9. Procédé de codage double passe d'un flux de données vidéo comportant les étapes de: - codage selon un premier type assurant la première passe de codage, - codage selon un second type assurant la seconde passe de codage, caractérisé en ce que - le codage de second type est différent du codage de premier type et - l'étape de codage de second type utilise des informations de codage issues de la première passe de codage. 10. Produit programme d'ordinateur, caractérisé en ce qu'il comprend des instructions de code de programme pour l'exécution des étapes du 15 procédé selon la revendication 9 lorsque ledit programme est exécuté sur un ordinateur.