Brevet FR2865082A1 — publié le 20050715

L'invention concerne un procédé, un dispositif et un programme d'ordinateur pour estimer la qualité perceptuelle d'une image décodée ainsi qu'un support de données contenant le programme d'ordinateur. Dans le domaine de la compression d'images fixes ou animées, il est connu de coder les images par une méthode de codage prédictif spatial ou temporel. Le codage prédictif temporel prévoit la valeur probable d'un élément (pixel ou séquence vidéo) d'une image en se basant sur sa valeur antérieure et code la différence entre les deux valeurs, passée et présente. Le codage prédictif spatial prévoit la valeur probable d'un élément d'une image (pixel ou élément vidéo) à l'aide de la valeur d'un autre élément de cette même image et code la différence entre les valeurs respectives de ces deux éléments. Le codage prédictif permet ainsi une compression effective de l'image. Cependant, il favorise la propagation des erreurs lors du décodage. En effet, si une erreur s'est introduite dans un élément de l'image après le codage de celui-ci, par exemple lors de la transmission de l'image entre un émetteur ayant codé l'image et un récepteur apte à la décoder, cette erreur se répand lors du décodage dans tous les autres éléments d'image prédits sur la base de cet élément erroné. Ainsi, du fait du caractère prédictif spatial et/ou temporel de la méthode de codage des données, les erreurs de transmission se répandent dans l'image spatialement et/ou temporellement. Pour dissimuler les erreurs, il est connu d'utiliser des méthodes de masquage des erreurs consistant, par exemple, à remplacer des données manquantes ou erronées par d'autres données correctes de la même image ou d'une image antérieure. Les méthodes de masquage permettent de réduire les erreurs dans les données décodées et d'améliorer par conséquent la qualité perceptuelle de l'image. Toutefois, elles ne sont pas totalement efficaces. Certaines données demeurent incorrectes même après avoir été masquées. Pour estimer la qualité perceptuelle de l'image décodée, c'est-à-dire la qualité de l'image telle qu'elle est perçue par une personne qui la regarde, les décodeurs mesurent généralement le taux de pertes de données ou la proportion de données non décodées dans l'image, sans tenir compte du phénomène de propagation des erreurs. La présente invention vise à améliorer l'estimation de la qualité perceptuelle d'une image décodée, l'image ayant été codée suivant une méthode de codage prédictif. A cet effet, l'invention concerne un procédé pour estimer la quantité de données mal décodées d'un bloc B; d'une image I, ladite image I ayant été codée suivant une méthode de codage prédictif, dans lequel: - on estime la quantité Q,,; de données non prédites et mal décodées dudit bloc B;, on estime la quantité Q2,i de données du bloc B;, prédites sur la base d'au moins un bloc de données Ai de prédiction et mal décodées, à l'aide de la formule suivante: Q2,i aji QAj où QAi représente la quantité de données mal décodées du bloc Ai de prédiction et ai; représente le coefficient de propagation de l'erreur, et on somme les quantités de données mal décodées Q,,; et Q2,i afin de calculer la quantité totale Q; de données mal décodées dans le bloc B;. L'invention consiste en fait à introduire un coefficient de propagation de l'erreur dans le calcul de la quantité de données mal décodée lors de l'estimation de la qualité perceptuelle de l'image. Ce coefficient de propagation de l'erreur traduit la relation de prédiction entre le bloc de prédiction, c'est-à-dire le bloc sur la base duquel la prédiction est faite, et le bloc prédit. II permet donc de quantifier la propagation des erreurs. Grâce à cela, le calcul de la quantité de données mal décodées tient compte du phénomène de propagation de l'erreur dans le temps et dans l'espace. Par conséquent, l'estimation de la qualité de l'image ainsi calculée correspond mieux à celle effectivement perçue par une personne qui regarde l'image. En définitive, le procédé de l'invention permet de tenir compte du fait que certaines données de l'image ne sont pas décodées correctement parce qu'elles ont été prédites sur la base de données erronées. L'invention concerne également un procédé pour estimer la quantité de données mal décodées d'une image I, ladite image I étant divisée en une pluralité de blocs B; et ayant été codée suivant une méthode de codage prédictif, dans lequel, pour chaque bloc Bi, on exécute le procédé selon la revendication 1 et on somme les quantités Q; de données mal décodées pour l'ensemble des blocs de données B. Dans un mode de réalisation particulier, la valeur du coefficient de propagation de l'erreur entre les blocs A; et B; est calculée à l'aide d'une fonction traduisant la relation de prédiction entre les blocs A, et B;. Dans un autre mode de réalisation, la valeur du coefficient a;; de propagation de l'erreur entre les blocs Ai et B; est comprise entre 0,2 et 0,8 lorsque le bloc B; contient des données prédites et des données non prédites. Dans ce cas, les valeurs du coefficient sont déterminées de façon empirique. L'invention concerne également un dispositif pour estimer la quantité de données mal décodées d'une image I, comprenant des moyens pour exécuter les étapes du procédé défini ci-dessus. De préférence, le dispositif comprend: - des premiers moyens d'estimation agencés pour estimer la quantité Q,,; de données de chaque bloc B;, non prédites et mal décodées, - des seconds moyens d'estimation agencés pour estimer la quantité Q2,i de données de chaque bloc B;, prédites sur la base d'au moins un bloc de données A, de prédiction et mal décodées, l'aide de la formule suivante: Q2,; = où Qa, représente la quantité de données mal décodées du bloc A, de prédiction et oy; représente le coefficient de propagation de l'erreur, - des premiers moyens de calcul agencés pour sommer les quantités de données mal décodées Q,,; et Q2,; afin de calculer la quantité totale Q; de données mal décodées dans le bloc B; et - des seconds moyens de calcul agencés pour sommer les quantités Q; de données mal décodées pour l'ensemble des blocs B; afin de calculer la quantité totale de données mal décodées de l'image. L'invention concerne encore un programme d'ordinateur comprenant des instructions de programme pour faire exécuter le procédé précédemment défini par un ordinateur ainsi qu'un support de données contenant le programme d'ordinateur. L'invention sera mieux comprise à l'aide de la description suivante du procédé pour estimer la quantité de données mal décodées dans une image I et d'un dispositif pour estimer la quantité de données mal décodées dans cette image I, selon un mode de réalisation particulier de l'invention, en référence aux dessins sur lesquels: - la figure 1 représente un organigramme des étapes du procédé pour estimer la quantité de données mal décodées de l'image I, selon le mode de réalisation particulier décrit, la figure 2 représente un schéma bloc fonctionnel du dispositif pour estimer la quantité de données mal décodées de l'image I, selon la forme de réalisation particulière décrite et - la figure 3 représente un dispositif d'émission, un dispositif de réception et un réseau de communication. Dans l'exemple particulier de l'invention, une image I est codée par un dispositif d'émission 1, suivant une méthode de codage prédictif spatial et temporel, puis transmise à travers un réseau de communication 3 vers un dispositif de réception 2, apte à décoder l'image I. Lors de la transmission à travers le réseau 3, certaines données de l'image I sont perdues ou faussées. En réception, le dispositif 2 applique ici une méthode connue de masquage des erreurs afin de réduire la quantité de données erronées ou manquantes. Afin d'évaluer la qualité perceptuelle de l'image, autrement dit la qualité de l'image telle qu'elle est perçue par une personne qui la regarde, le dispositif de réception 2 exécute les étapes 1 à 4, décrites ci-après. Dans l'exemple particulier de la description, l'image est divisée en une pluralité de blocs de données B. Le décodage de chaque bloc de données B; utilise deux types de données: - des données non prédites, provenant directement du réseau 3, et - des données prédites, reconstruites à partir d'un ou de plusieurs blocs de données de prédiction appartenant à la même image (il s'agit dans ce cas d'une prédiction spatiale) ou à une image antérieure (il s'agit dans ce cas d'une prédiction temporelle). Pour estimer la quantité de données mal décodées dans chaque bloc de données B;, le dispositif 2 exécute d'abord les étapes 1 à 3 suivantes: Etape El: le dispositif 2 estime la quantité Q1,; de données du bloc B; non prédites et mal décodées à l'aide de la formule suivante: Q1,i R*Qi max (P1*'2)*Qi max où Qi max représente la quantité maximale de données mal décodées du bloc B;, ici égale à la quantité totale de données du bloc Bi, (31 représente la proportion de données du bloc Bi décodées sans prédiction, sur la base de données provenant directement du réseau 3, et R2 représente la proportion de données mal décodées parmi ces données décodées sans prédiction (à savoir parmi les R2*Qi max données). Si toutes les données utilisées pour décoder le bloc Bi proviennent du réseau, le coefficient (31 est égal à 1. Si toutes les données provenant du réseau sont correctes, le coefficient R2 est égal à O. En revanche, si toutes les données provenant du réseau sont perdues, R2 est égal à 1. Si seulement la moitié des données provenant du réseau sont correctes, 132 est égal à 1A. Etape E2: le dispositif 2 estime la quantité Q2,i de données du bloc Bi, prédites sur la base d'au moins un bloc de données A; de prédiction et mal décodées, à l'aide de la formule suivante: 2,i aji Qqj. Q, est la quantité de données mal décodées du bloc A; de prédiction et ai; est le coefficient de propagation de l'erreur. La quantité Q2,i représente la portion de données mal décodées du bloc B; due au phénomène de propagation de l'erreur lors du décodage. Le coefficient a;; de propagation de l'erreur dépend de la relation de prédiction entre le bloc de prédiction AA et le bloc prédit B. Dans le cas où le bloc B; est totalement prédit sur la base du bloc de prédiction AA, a;; vaut '1, la dépendance entre A; et Bj étant totale Dans le cas contraire où le bloc B; n'est pas prédit sur la base du bloc Agi, al, vaut 0, aucune dépendance de prédiction n'existant entre les blocs AA et Bj. Dans le cas où le bloc B; est partiellement prédit sur la base du bloc Agi, le coefficient ap est compris entre 0,2 et 0,8, sa valeur étant déterminée de façon empirique. Une méthode empirique pour évaluer la valeur du coefficient ai, consiste à faire le lien a posteriori entre les valeurs calculées Q,j de quantités de données mal décodées des blocs de prédiction AA et la qualité perceptuelle globale de l'image reconstruite. On peut, par exemple, attribuer subjectivement des notes à la qualité des images reconstruites et déterminer rétrospectivement la valeur de a;; qui permettrait d'obtenir les valeurs de les plus proches des notes précédemment attribuées. Une valeur de coefficient a;; inférieure à 1 traduit la dispersion de l'erreur dans le temps ou dans l'espace grâce aux données correctes auxquelles les données erronées provenant du bloc AA sont additionnées. En outre, dans le cas où, comme en l'espèce, le dispositif de décodage 2 masque les erreurs, la valeur du coefficient a;; dépend partiellement de l'efficacité de la méthode de masquage des erreurs utilisée. Plus cette méthode est efficace, plus la valeur du coefficient a;; est faible. Dans l'exemple particulier de la description, une méthode de masquage des erreurs étant appliquée, la valeur du coefficient de propagation al, est fixée à 0,7. Des expériences ont montré que cette valeur donne de bons résultats. Dans le cas où le bloc B; est prédit sur la base de plusieurs blocs de prédiction Aj, la quantité Q2,i de données mal décodées, du fait de la propagation de l'erreur, est égale à : Q2,i = E agi ÉQAJ Etape E3: le dispositif 2 somme les quantités de données mal décodées Q,,; et Q2,; afin de calculer la quantité totale Q; de données mal décodées dans le bloc B;. Lors d'une étape E4, le dispositif 2 somme les quantités Q; de données mal décodées pour l'ensemble des blocs de données B; afin de calculer la quantité totale de données mal décodées dans l'image I. Le dispositif de réception 2, représenté sur la figure 2, comprend un module de décodage 20, un module 21 de masquage des erreurs et un module 22 d'estimation de la qualité perceptuelle d'une image. Le module de décodage 20, alimenté en entrée par les données d'image codées reçues par le réseau 3, est destiné à décoder ces données d'image. On rappelle ici que, du fait de la transmission, certaines données d'image, reçues par le dispositif 2, peuvent être manquantes ou erronées. Le module 21 de masquage des erreurs, relié en entrée à une sortie du module de décodage 20, est agencé pour masquer ces données erronées, au moins partiellement, à l'aide d'une technique de masquage d'erreurs connue. Le module 22 d'estimation de la qualité perceptuelle d'une image comprend un premier bloc d'estimation 220, agencé pour estimer la quantité Q,,; de données de chaque bloc B;, non prédites et mal décodées, et un second bloc d'estimation 221, agencé pour estimer la quantité Q2,i de données de chaque bloc B;, prédites sur la base d'au moins un bloc de données Al de prédiction et mal décodées. Les quantités de données mal décodées Q1,; et Q2,i sont calculées à l'aide des formules précédemment indiquées dans la description du procédé. Le module d'estimation 22 comprend également: - un premier bloc de calcul 222, relié aux deux blocs d'estimation 220 et 221, agencé pour sommer les quantités de données mal décodées Q,,; et Q2,; afin de calculer la quantité totale Q; de données mal décodées dans le bloc B; et - un second bloc de calcul 223, relié au premier bloc de calcul 222, agencé pour sommer les quantités Q; de données mal décodées pour l'ensemble des blocs B; afin de calculer la quantité totale Q de données mal décodées de l'image L L'invention qui vient d'être décrite concerne un procédé et un dispositif pour estimer la quantité Q de données mal décodées d'une image I. Dans un mode de réalisation préféré, les étapes du procédé sont exécutées par un ordinateur sous la commande d'instructions du programme. Par conséquent, l'invention concerne également un programme d'ordinateur destiné à être stocké dans ou transmis par un support de données comprenant des instructions de programme pour faire exécuter le procédé par un ordinateur ainsi que le support de données sur lequel le programme est implémenté. Le support de données peut être un support matériel de stockage, par exemple un CD-ROM, une disquette magnétique ou un disque dur, ou bien un support transmissible tel qu'un signal électrique, optique ou radio, ce signal pouvant être transmis à travers un câble électrique, optique ou par voie aérienne. Dans la description qui précède, la valeur du coefficient a; de propagation de l'erreur entre les blocs Al et B; est déterminée de façon empirique, en tenant compte des proportions respectives des données prédites et des données non prédites provenant directement du réseau et de l'efficacité de la méthode de masquage. Dans une autre forme de réalisation, la valeur du coefficient de propagation a1; est calculée, à l'aide d'une fonction traduisant la relation de prédiction entre les blocs Ai et B;. A titre d'exemple illustratif non limitatif, on va maintenant donner un exemple particulier de fonction de calcul du coefficient ali traduisant la relation de prédiction entre les blocs Ai et B; dans le cadre des normes de compression vidéo H.261 (Recommandation UIT-T H.261). Cette fonction de calcul du coefficient de propagation a;; est également applicable aux normes de compression vidéo H.263 (Recommandation UIT-T H.263 rev2) et MPEG-4 Part 2 (ISOIIEC/14496/2 MPEG- 4 visual). Le coefficient de propagation ail est calculé de la manière suivante: - s'il n'y a aucune dépendance entre le bloc de prédiction A; et le bloc prédit B;, alors agi = 0 - sinon a.. =1 NbBiirans 2x NbBi max où NbBitrans représente le nombre de données du bloc B; provenant directement du réseau, autrement dit les données non prédites du bloc B;, et NbBimax représente le nombre maximal de données que peut contenir le bloc B;. On notera dans les normes de compression vidéo ITU-T H.261 , ITU-T H. 263 et ISOIIEC/14496/2 MPEG-4 visual , la quantité de donnésNbBifrp, s est représentée par le nombre de coefficients TCOEFF du bloc en cours et NbBimax est représenté par le nombre maximal de TCOEFF qu'il est possible de transmettre pour ce bloc. A titre d'exemple illustratif, on va expliciter deux cas particuliers de calcul du coefficient de propagation a.. Dans un premier cas, aucune donnée propre au bloc B; ne provient du réseau. II en résulte que NbBir.s = 0 et donc ai, =1. Le bloc prédit B; est totalement dépendant du bloc de prédiction Ai. Dans un second cas, toutes les données du bloc de prédiction B; proviennent du réseau: agi. =1 NbEilr ns = 1_ 1 = 1 Les données de B; sont sommées aux données de 2 x NbB, m. 2 2 A. La proportion de dépendance de B; sur Aj est alors de %. On soulignera que le calcul du coefficient de propagation a1i dépend intimement de la manière dont est faite cette prédiction. Pour la norme H. 264 (ITU-T H.264), il faudrait le calculer de manière encore différente. Dans ce cas, la valeur du coefficient de propagation est déterminée de façon plus précise mais nécessite des calculs beaucoup plus importants. 8 Revendications 1. Procédé pour estimer la quantité de données mal décodées d'un bloc B; d'une image I, ladite image I ayant été codée suivant une méthode de codage prédictif, dans lequel: on estime la quantité Q,,; de données non prédites et mal décodées dudit bloc B; (El), - on estime la quantité Q2,; de données du bloc B;, prédites sur la base d'au moins un bloc de données Ai de prédiction et mal décodées (E2), à l'aide de la formule suivante: Q2,( = agi;*QAT où QA7 représente la quantité de données mal décodées du bloc Ai de prédiction et ail représente le coefficient de propagation de l'erreur, et on somme les quantités de données mal décodées Ql,; et Q2,; (E3) afin de calculer la quantité totale Q; de données mal décodées dans le bloc B. 2. Procédé pour estimer la quantité de données mal décodées d'une image I, ladite image I étant divisée en une pluralité de blocs B; et ayant été codée suivant une méthode de codage prédictif, dans lequel, pour chaque bloc B;, on exécute le procédé selon la revendication 1 et on somme les quantités Q; de données mal décodées pour l'ensemble des blocs de données B; (E4). 3. Procédé selon l'une des revendications 1 et 2, dans lequel la valeur du coefficient a;; de propagation de l'erreur entre les blocs Ai et B; est calculée à l'aide d'une fonction traduisant la relation de prédiction entre les blocs Ai et B. 4. Procédé selon l'une des revendications 1 et 2, dans lequel la valeur du coefficient a;; de propagation de l'erreur entre les blocs A; et B; est comprise entre 0,2 et 0,8 lorsque le bloc B; contient des données prédites et des données non prédites. 5. Procédé selon l'une des revendications 1 à 4, dans lequel, lors de l'étape (E2) d'estimation de la quantité Q2,; de données du bloc B;, dans le cas où les données du bloc B; sont codées sur la base d'une pluralité de blocs de prédiction Ai, la quantité Q2,; de données est égale à : Q2,i = E a,i.QA.i 6. Dispositif pour estimer la quantité de données mal décodées d'une image I, comprenant des moyens pour exécuter les étapes du procédé selon l'une des revendications 2 à 5. 7. Dispositif selon la revendication 6, dans lequel il est prévu: - des premiers moyens d'estimation (220) agencés pour estimer la quantité Q,,; de données de chaque bloc B;, non prédites et mal décodées, - des seconds moyens d'estimation (221) agencés pour estimer la quantité Q2,; de données de chaque bloc B;, prédites sur la base d'au moins un bloc de données A; de prédiction et mal décodées, l'aide de la formule suivante: Q2,; = aji*QAl où QAJ représente la quantité de données mal décodées du bloc A; de prédiction et agi; représente le coefficient de propagation de l'erreur, - des premiers moyens de calcul (222) agencés pour sommer les quantités de données mal décodées Q,,; et Q2,; afin de calculer la quantité totale Q; de données mal décodées dans le bloc B; et - des seconds moyens de calcul (223) agencés pour sommer les quantités Q; de données mal décodées pour l'ensemble des blocs B; afin de calculer la quantité totale de données mal décodées de l'image. 8. Programme d'ordinateur comprenant des instructions de programme pour faire exécuter le procédé selon l'une des revendications 2 à 5 par un ordinateur.