Brevet FR3027481A1 — publié le 20160422

DECODEUR, PROCEDE ET SYSTEME DE DECODAGE DE FLUX MULTIMEDIA L'invention concerne un dispositif de décodage, un procédé et un système permettant le décodage de données multimédia au niveau d'un terminal tout en gérant la consommation d'énergie nécessaire au décodage et à la restitution d'un flux de données multimédia. L'invention s'applique pour des décodeurs vidéo, pour des terminaux utilisant les standards H.264/AVC pour Advanced Video Coding ou H.265/HEVC, pour High Efficiency Video Coding. Aujourd'hui les appareils électroniques tels que les téléphones portables, les Smartphones, les tablettes, etc., offrent de plus en plus de fonctionnalités, telles que la vidéo, l'audio, le système de positionnement GPS (Global Positioning System), l'internet et des connectivités variées, par exemple les multi-systèmes de radio avec Wifi, Bluetooth, UMTS (Universal Mobile Telecommunication System), le HSPA (High Speed Packet Access), la technologie réseau LTE-Advanced, ce qui fait que la capacité d'énergie de ces systèmes embarqués est aujourd'hui très sollicitée. Dans les années à venir on estime que 70% au moins des communications mobiles seront des transferts de contenu vidéo. Conscient de ces enjeux, le comité MPEG au sein de l'ISO a lancé une initiative visant à standardiser des moyens permettant à des décodeurs vidéo de minimiser leur consommation en énergie et ainsi d'améliorer leur durée d'utilisation. Ce standard est connu sous la dénomination anglo-saxonne « Green Metadata ». Différentes solutions sont connues de l'art antérieur et décrites dans la norme ISO/IEC DIS 23001-11 du standard « Green Metadata ». Pour gérer au mieux la consommation d'énergie, la société Samsung propose de modifier l'affichage à l'écran de la vidéo et de réduire la tension d'alimentation de l'écran. Une autre méthode proposée par cette société est un contrôle dynamique de la fréquence qui consiste à anticiper et à adapter la puissance de calcul à la complexité de la vidéo à décoder. La société Thomson Video Network propose une méthode de diffusion adaptative ou en anglo-saxon « adaptative streaming » qui consiste à proposer au décodeur plusieurs versions d'une même vidéo sur un serveur DASH, abréviation anglo-saxonne de Dynamic Adaptive streaming over http. La société Morphbius propose un encodeur sous-échantillonné dans lequel on réalise l'encodage des données à qualité réduite. La figure 1 est un rappel du principe mis en oeuvre pour la gestion de l'énergie d'un terminal mobile. Pour augmenter les possibilités d'économie, le standard propose d'échanger des métadonnées d'un encodeur 1 vers un ou plusieurs décodeurs finaux 2 (un seul décodeur est représenté sur la figure pour des raisons de simplification). En plus du flux de données classique généré par le codeur vidéo, les métadonnées Md sont multiplexées au flux de données classique F, pour obtenir un flux de données Fm. Ce flux de données Fm est ensuite transmis vers un récepteur 2 à travers un réseau de communication, par exemple. Le type de réseau utilisé dépend de l'application ou du système considéré. Le protocole mis en place est alors différent. On peut citer comme exemple la télédiffusion plus connue sous le terme de « broadcast » ou la diffusion en flux ou « streaming ». L'insertion des métadonnées dépend alors du protocole ou du mode de transport. Elles peuvent s'insérer dans des informations supplémentaires d'amélioration (ou message SEI abrégé anglo-saxon de Supplemental Enhancement Information) ou bien être encapsulées dans des descriptions de plus haut niveau comme le type connu sous la dénomination anglo-saxonne MPD (Media Presentation Description) pour des applications streaming par exemple de type DASH précité. La fréquence d'émission des métadonnées peut se faire à plusieurs niveaux, par exemple, au niveau trame, au niveau groupe d'images ou GOP (en anglo-saxon Group of Pictures - 17 trames par exemple). Le décodeur testera dans le champ associé dans une trame la présence ou non de la métadonnée pour la séquence à décoder. L'encodeur peut prendre une décision de changement de fréquence de diffusion de métadonnée lorsque des paramètres évoluent comme une évolution de contenu (changement de scène) ou de type de compression (paramètre de quantification). Un préprocesseur 101 analyse le contenu source Fs et un codeur vidéo 102 encode le contenu d'une vidéo d'entrée. Le flux de données contenant les données codées et les métadonnées est transmis au récepteur et décodé par un décodeur vidéo 106 qui transmet les informations décodées à un module d'affichage 109. La métadonnée Md est extraite au moyen d'un analyseur 104 au niveau de l'encodeur vidéo 102 et dans ce cas la métadonnée est encapsulée dans un flux conforme au format de l'encodeur vidéo, ou au niveau 103 du préprocesseur 101 et la métadonnée est alors multiplexée avec le flux. La métadonnée Md est utilisée par le décodeur final 2 pour réduire la puissance nécessaire au décodage et à la présentation des données. Au niveau du décodeur final 2, le décodeur vidéo 106 analyse, 107, le flux Fm contenant le flux multimédia F et les métadonnées Md, et transmet les métadonnées Md à un module de contrôle de puissance ou d'énergie 108. Ce module de contrôle d'énergie va, par exemple, décoder la ou les métadonnées Md puis appliquer des opérations de réduction de consommation d'énergie pour le décodage et l'affichage des flux vidéo, Pc par exemple. Le même module de contrôle d'énergie est présent au niveau du codeur. La figure 2 représente une architecture connue de l'encodeur vidéo comprenant un décodeur vidéo 20. L'entrée vidéo (données compressées) est transmise à un module de transformation 111 dont une sortie est en liaison avec un module d'encodage 112 et un module de quantification et transformation inverse 113. Les données multimédia codées Fc sont transmises à un module de génération de flux 114 qui va aussi recevoir des informations d'estimation de mouvement issues d'un module d'estimation de mouvement 115 qui reçoit, d'une part l'entrée vidéo Ev, et d'autre part une image résultant de l'application d'un filtre de boucle 116 (connu de l'homme du métier) recevant les paramètres ou vecteurs de compensation de mouvement 117 à appliquer aux paramètres de l'image et les paramètres images obtenus par l'application de la transformée inverse de quantification inverse. Une sortie du filtre de boucle génère une sortie vidéo Sv. Le module de génération de flux produit un flux de données compressées qui va être transmis au décodeur. Une mémoire tampon 119 permet le stockage des images vidéo avant transmission au module de compensation de mouvement et au module d'estimation de mouvement 115. Dans la suite de la description, le mot terminal désigne, par exemple, un téléphone mobile, une tablette ou tout dispositif connecté permettant de recevoir des flux multimédia. Le terme flux multimédia peut désigner des programmes variés, tels que des films, de la musique (vidéo clip), qui sont distribués à travers des réseaux de communication. L'objet de la présente invention concerne un procédé et un système permettant de gérer l'énergie nécessaire au décodage d'informations, de données multimédia, de données vidéo. Elle permet aussi de simplifier la complexité des filtres utilisés, la consommation des filtres représentant une partie significative de la consommation d'un décodeur. L'invention concerne un dispositif pour décoder un flux de données multimédia au niveau d'un terminal en gérant l'énergie nécessaire pour le décodage comportant un décodeur des données multimédia, 20 caractérisé en ce que ledit décodeur comporte au moins une chaîne de décodage « basse consommation » comprenant un module d'activation adapté à activer une première chaîne de décodage ou filtre de boucle basse consommation et une chaîne d'interpolation basse consommation en fonction d'au moins un paramètre représentatif de contraintes d'énergie utilisateur 25 et/ou du terminal mobile et d'une ou de plusieurs métadonnées Md associées à une complexité de décodage et/ou à une énergie de décodage. L'invention concerne aussi un système pour décoder un flux de données multimédia au niveau d'un terminal en gérant l'énergie nécessaire pour le décodage caractérisé en ce qu'il comporte au moins les éléments 30 suivants : - un encodeur des données multimédia comprenant au moins un module adapté à générer une ou plusieurs métadonnées Md associées à une complexité de décodage et/ou à une énergie de décodage du flux de données multimédia décodé par le décodeur, - un décodeur comprenant au moins une chaîne de décodage standard, au moins un module d'extraction des métadonnées Md contenues dans le flux de données multimédia, un module d'activation relié à un commutateur adapté à activer une première chaîne de décodage ou filtre de boucle basse consommation et à un commutateur afin d'activer une chaîne d'interpolation basse consommation en fonction d'au moins un paramètre représentatif de contraintes d'énergie et d'une ou de plusieurs métadonnées Md contenues dans le flux de données multimédia. Selon une variante de réalisation, l'encodeur comprend un décodeur modifié comprenant un filtre de boucle basse consommation, un module d'estimation d'énergie, un décodeur standard comprenant un module d'estimation d'énergie, une métadonnée Md est un couple de valeurs (dégradation maximum, gain potentiel en énergie) déterminées à partir des données multimédia Ev, des données Sv2 décodées par le décodeur standard, d'une valeur d'énergie estimée E2 par le décodeur standard, des données décodées Svi par le décodeur modifié, de l'énergie estimée E1 par le décodeur modifié. Selon une variante de réalisation, le module de génération de métadonnées et les décodeurs sont adaptés à: - Déterminer les gains en énergie MGE= 1-(Ei/E2)*100, avec E1 l'énergie estimée par le décodeur modifié, E2 l'énergie estimée par le décodeur standard, - Déterminer la dégradation de qualité en calculant la valeur de rapport puissance sur bruit PSNR sur l'ensemble des images du flux de données à partir d'une image décodée par la chaîne de décodage standard et à partir d'une image décodée par la chaîne de décodage basse consommation, - PQM R -DecodeurReference = 10rlogio(d2/MSE), d correspondant à l'amplitude maximum des pixels, par exemple 255 pour des pixels codés sur 8 bits ou 1023 pour des pixels codés sur 10 bits, MSE correspondant à l'erreur quadratique moyenne (Ev _ Sv2)2 entre le flux de données de référence Ev et le flux de données décodées par le décodeur standard SV2, - PSNRDecodeurModififée- 10*logio(d2/MSE) avec MSE correspondant à l'erreur quadratique moyenne (Ev _ Svi)2entre le flux de données de référence Ev et le flux de données décodées par le décodeur modifié - Calculer la valeur de la dégradation de qualité, Degradation = PSNRDecodeurreference PSNRDecodeurmodifié La métadonnée peut être un couple de valeurs (dégradation maximum, gain potentiel en complexité). Le système considère comme contrainte d'énergie un niveau d'énergie restante mesuré pour la batterie d'un terminal mobile. Selon un mode de réalisation, les filtres basse consommation sont des filtres à réponse impulsionnelle finie. Une métadonnée Md peut être déterminée à partir des valeurs dégradation maximum, gain potentiel, et des valeurs de coefficients de filtres « basse-consommation ». Le système peut aussi comporter un module de prédiction du ou 25 des types de trames présentes dans le flux multimédia, le module d'activation des chaînes de filtrage simplifiées étant activé en fonction d'un type de trame ou de leur position dans le flux de données multimédia. Le décodeur est, par exemple, un décodeur H.264/AVC ou un décodeur H.265/HEVC et le flux de données des images vidéo. 30 L'invention concerne aussi un procédé pour décoder des données d'un flux de données multimédia au niveau d'un terminal en gérant l'énergie nécessaire pour le décodage caractérisé en ce qu'il comporte au moins les étapes suivantes: - Déterminer au moins un paramètre représentatif de contraintes d'énergie utilisateur et/ou associées au fonctionnement du terminal, - En fonction de la valeur de ces paramètres et de valeurs de métadonnées Md associées à une complexité de décodage et/ou à une énergie de décodage activer une chaîne de décodage basse consommation au niveau d'un décodeur de données multimédia ou une chaîne de décodage standard. Le procédé génère une métadonnée correspondant à un couple de valeurs (dégradation maximum, gain potentiel en énergie), ces valeurs étant calculées lors d'une étape de codage des données multimédia en tenant compte des données multimédia Ev, des données Sv2 décodées par un décodeur standard, d'une valeur d'énergie estimée E2 par le décodeur standard, des données décodées Svi par un décodeur modifié, de l'énergie estimée E1 par le décodeur modifié. Selon une variante de réalisation, on calcule une métadonnée de la manière suivante : - Déterminer les gains en énergie MGE= 1-(Ei/E2)*100, avec E1 l'énergie estimée par le décodeur modifié, E2 l'énergie estimée par le décodeur standard, - Déterminer la dégradation de qualité en calculant la valeur de rapport puissance sur bruit PSNR sur l'ensemble des images du flux de données à partir d'une image décodée par la chaîne de décodage standard et à partir d'une image décodée par la chaîne de décodage basse consommation, - PQMR -DecodeurReference = 1Crlogio(d2/MSE), d correspondant à l'amplitude maximum des pixels, MSE correspondant à l'erreur quadratique moyenne (Ev _ 5v2)2 entre le flux de données de référence Ev et le flux de données décodées par le décodeur standard Sv, - PSN RDecodeurModififée- 10*logio(d2/MSE) avec MSE correspondant à l'erreur quadratique moyenne (Ev _ Svi)2 entre le flux de données de référence Ev et le flux de données décodées par le décodeur modifié - Calculer la valeur de la dégradation de qualité, Degradation = PSN R Decodeurreference PSN RDecodeurmodifié. Le procédé prend comme contrainte d'énergie une mesure de niveau d'énergie pour la batterie du terminal. Le procédé est, par exemple, mis en oeuvre dans un décodeur H.264/AVC ou H.265/HEVC et en ce que le flux de données est constitué d'images vidéo. D'autres caractéristiques et avantages de la présente invention apparaîtront mieux à la lecture de la description qui suit donnée à titre illustratif et nullement limitatif annexée des figures qui représentent : - La figure 1, un rappel de schéma d'émetteur récepteur avec échange de métadonnées, - La figure 2, un schéma de codeur vidéo selon l'art antérieur, - La figure 3, un schéma de principe du système selon l'invention, - La figure 4, un schéma montrant la génération de métadonnées selon l'invention, - La figure 5, un détail de l'intégration du décodeur modifié au sein de la structure de l'encodeur, - Les figures 6A et 6B, deux courbes représentant l'économie d'énergie réalisée, - Les figures 7A et 7B, deux courbes comparant la distorsion entre le standard HEVC et le standard HEVC modifié selon l'invention. La description va être donnée à titre d'exemple afin d'illustrer le principe mis en oeuvre par l'invention pour un flux vidéo qu'un utilisateur souhaite télécharger sur son terminal dans le cas du standard HEVC. Le décodeur final va adapter la meilleure stratégie de décodage à ses moyens, en déduisant de métadonnées Md associées à la gestion de l'énergie au niveau de décodage, les gains possibles de consommation d'énergie pouvant être réalisés grâce à l'utilisation de fonctions de filtrage modifiées, notamment par simplification des filtres présents dans la chaîne de décodage vidéo. Une métadonnée peut représenter un gain en complexité de décodage qui permet de déduire une réduction d'énergie ou de puissance instantanée par le décodeur. La figure 3 est un schéma de principe du fonctionnement du système selon l'invention selon des contraintes utilisateurs 301 et/ou selon un niveau de batterie d'un dispositif mobile 302. Le système reçoit un flux F, composé de données compressées F et de métadonnées Md générées par un encodeur modifié détaillé à la figure 4, le flux total Fm est transmis à un démultiplexeur 303 pour générer le flux de données compressées et les métadonnées. Les métadonnées Md sont transmises à un module de décision d'activation 305 de la chaîne de filtrage d'un décodeur vidéo modifié 300. Le module de décision 305 évalue l'opportunité d'activer la chaîne de filtrage modifiée du décodeur vidéo en fonction, par exemple, du niveau de batterie du terminal mesuré par un module approprié, indiquant s'il est nécessaire ou non de faire des gains en énergie et de combien, et/ou des contraintes utilisateurs indiquant par exemple une dégradation maximale autorisée ou un décodage voulu. En fonction d'un ou plusieurs de ces paramètres, la décision d'activation des filtres modifiés, commande Cd, est envoyée au décodeur vidéo modifié 300. Le flux de données compressées F transmis au décodeur vidéo modifié 300 est ensuite décodé par le décodeur vidéo final en passant soit à travers une chaîne de traitement classique ou une chaîne de traitement simplifiée selon l'invention dont un exemple est donné à la figure 5. La décision d'activation peut être modifiée quand une nouvelle métadonnée est envoyée pour la séquence suivante. Une des hypothèses de fonctionnement du système selon l'invention est la suivante: sous compromis de réduction de qualité de la vidéo décodée, des gains significatifs de consommation d'énergie peuvent être réalisés. Ces gains sont atteints notamment grâce à l'utilisation de fonctions de filtrage modifiées (figure 5, par exemple). La figure 4 illustre un exemple de réalisation d'un encodeur vidéo modifié 400 selon l'invention permettant notamment de générer des métadonnées Md utilisées au niveau du décodeur final modifié. Les modules connus de l'homme du métier et présentant des fonctions identiques à celles introduites à la figure 4 portent les mêmes références et ne seront pas détaillés. L'encodeur vidéo 400 comporte par exemple en parallèle un module encodeur vidéo standard comprenant un décodeur de référence 402 et un module d'encodeur modifié comprenant un décodeur modifié 401. Cette structure permet de générer la ou les métadonnées qui seront utilisées au niveau du décodeur pour l'activation de la chaîne de filtre basse consommation. Le décodeur vidéo standard 402 et le décodeur vidéo modifié 401 comporte chacun un module permettant d'estimer l'énergie nécessaire pour le décodage du flux vidéo et sa restitution, par exemple, une sonde d'énergie ou de complexité du flux, 403, 404. En sortie du module encodeur modifié comportant le décodeur 401 on dispose d'une première sortie vidéo modifiée Sv1, et d'une première valeur d'énergie estimée El. En sortie du module décodeur standard 402 on dispose d'une deuxième sortie vidéo de référence Sv2, et d'une deuxième valeur d'énergie 20 de décodage estimée E2. Ces quatre valeurs sont transmises avec l'entrée vidéo Ev à un module de génération de métadonnées 405. La ou les métadonnées sont transmises à un multiplexeur et multiplexées au moyen d'un multiplexeur 406 avec le flux de données compressées. Le flux comprenant le flux de données 25 compressées et la ou les métadonnées est transmis à un décodeur modifié selon l'invention. La figure 4 schématise un détail de décodeur vidéo de l'encodeur modifié. Par rapport à un décodeur standard, le filtre de boucle est modifié, 116b, ainsi que le module de compensation de mouvement qui intègre un 30 module estimant l'énergie 404. Le filtre de boucle modifié 116b est, par exemple, composé de filtres basse consommation un filtre anti-bloc ou en anglo-saxon « deblocking filter» basse consommation 410, suivi d'un filtre introduisant un décalage connu sous l'abréviation anglo-saxonne «SAO » (abréviation anglo-saxonne de « Sample-adaptive Offset ») basse consommation 411 détaillés à la figure 5. Il comporte aussi un module d'estimation d'énergie 403. La ou les métadonnées estimées peuvent être une métadonnée de type Gain en énergie par dégradation en qualité GEDQ, cette métadonnée représente la pente en pourcentage de gain d'énergie par dB de rapport signal à bruit des courbes représentées figure 6A et figure 6B, par exemple, correspondant à l'image ou à la séquence d'images en cours. La métadonnée peut aussi être un gain en complexité par dégradation en qualité GCDQ. La complexité est aisément calculée grâce au nombre de calculs nécessaires pour le décodage. La métadonnée peut également représenter le gain maximum en énergie (MGE) (en pourcentage) lorsque le filtre basse consommation est appliqué à la totalité des images de la vidéo décodée. MGE peut être calculé ainsi : MGE = 1-(E1 / E2)*100. Les métadonnées dépendent de l'architecture matérielle de décodage, notamment du processeur. Il est possible soit de spécifier un couple (GEDQ, MGE) par type de processeur par exemple, soit de spécifier une valeur moyenne pour chaque métadonnée. Il est aussi possible de spécifier des triplets (coefficients de chaque filtre, gain en énergie, dégradation en qualité), ce qui permet à l'encodeur de proposer des formes de filtres qui lui paraissent plus appropriées au décodage. Le générateur de métadonnées estime aussi la dégradation de décodage introduite par le décodeur modifié. Pour cela, il peut utiliser comme métrique le rapport puissance sur bruit ou PSNRyuv sur les trois composantes Y (Luminance) et (U,V) (Chrominance). De manière générale, le PSNR par image exprimé en décibels (dB) est mesuré ainsi : PSNRsvi = 10*log1 0(d2/MSE) avec MSE = (Ev-Sv2)2 correspondant à l'erreur quadratique moyenne mesurée entre la sortie vidéo Sv2 et l'entrée vidéo Ev, , d correspondant à l'amplitude maximum des pixels, par exemple d=255 pour de pixels codés sur 8 bits ou d=1023 pour des pixels codés sur 10 bits. PSNRsv2= 10*log1 0(d2/MSE) avec MSE = (Ev-Sv1)2 correspondant à l'erreur quadratique moyenne mesurée entre la sortie vidéo Svi et l'entrée vidéo Ev. Les différences considèrent par exemple les vidéos, pixel par pixel, allant de 0 à 255. Le PSNR de la séquence est la moyenne de PSNR sur l'ensemble des images de la séquence video considérée. Enfin, la métrique PSNRyuv est une métrique pondérée du PSNR par composante. La pondération 10 suivante peut être adoptée: PSNRyuv = (6*PSNRy + PSNRu + PSNRO / 8. Deux valeurs de PSNR sont ainsi calculées: PSNRsv2 à partir de l'image décodée par le décodeur de référence 401, et PSNRsvi à partir de l'image décodée par le décodeur modifié 402. La métadonnée GEDQ (Gain en Energie par Dégradation en 15 Qualité) peut être calculée de la manière suivante : MGE / (PSNRsv2 - PSN Rsvi ). D'autres métriques mesurant la qualité subjective de l'image peuvent être utilisées comme le score d'opinion moyen ou MOS (Mean Opinion Score) en complément ou alternativement à la métrique de PSNR. 20 Les exemples précédents ont été donnés en exprimant le PSNR normalisé en pourcentage. Ce pourcentage représente le gain entre le schéma standard et le niveau proposé. De manière plus générale, le codage peut utiliser un schéma dédié pour représenter ce gain sur N bits dans le message/protocole. Les gains en énergie peuvent suivre une échelle linéaire, 25 logarithmique ou bien être codé sur une échelle réduite pour limiter l'impact sur le débit du système. Sous compromis de réduction de qualité de l'image décodée, des gains significatifs de consommation d'énergie peuvent être réalisés. Ces gains sont atteints notamment grâce à l'utilisation des fonctions de filtrage 30 modifiées, par exemple en les simplifiant. Le fait de déporter le calcul d'estimation des dégradations en qualité et les gains en énergie du décodeur modifié au niveau de la partie encodeur du système permet de diminuer la consommation en énergie de calcul du côté décodeur du flux. C'est l'encodeur du système qui va transmettre les métadonnées qui sont sources d'information sur le gain potentiel d'énergie sur la séquence de données à décoder et sur la perte éventuelle de qualité. Ceci permet aussi à un même flux d'adresser plusieurs décodeurs, chacun ayant sa propre stratégie de décodage et de gestion de l'énergie. La figure 5 représente un exemple de décodeur modifié selon l'invention. Par rapport à un décodeur vidéo standard le décodeur comporte, en plus, une chaîne de filtre basse consommation qui est activée ou non selon des contraintes d'un utilisateur et/ou selon le niveau de batterie du terminal mobile et d'un indicateur d'activation émis par le module d'activation recevant au moins les métadonnées. L'un des principes mis en oeuvre dans le procédé selon l'invention est d'utiliser au niveau du décodeur final, des filtres dits « basse consommation » en plus du schéma du décodeur vidéo standard. Appliquer le filtrage de boucle « basse consommation » consiste soit à ne pas filtrer le flux de données en cours, une image, soit à utiliser des filtres à réponse impulsionnelle finie dont la longueur est plus faible que les filtres spécifiés dans le standard. Par longueur de filtre on désigne le degré de complexité d'un filtre, sa fenêtre d'observation. Un exemple chiffré de filtres sera donné après un exposé général visant à expliciter comment on définit les filtres basse consommation utilisés. L'activation ou non des filtres « basse consommation » peut être décidée selon un motif correspondant à un profil d'activation ou selon un schéma plus complexe. Le module de décision d'activation peut prendre des choix d'activation des filtres « basse consommation » selon de nombreux critères. Il peut, par exemple, considérer l'énergie restante dans le système (niveau de batterie encore disponible), les contraintes temps réel du décodage, les paramètres DVFS (Dynamic Voltage and Frequency Scaling) du processeur concerné pour adapter la fréquence de fonctionnement au plus près de la situation et des critères de qualité de rendu de la vidéo décodée. La génération des filtres rappelée ci-après est donnée dans le document normatif « CE3 : DCT derived interpolation filter test by 5 Samsung », JCTVC-F247: Génération de filtres pairs 1 ( m 2M-1( 2 ((2M-1±2M)2rk ( (2a -1+2M )71-k FiltrePairm Al (a) = -cos 71- cos N _1 ) 11,4) cos 4M 4M ) Génération de filtres impairs : 2ina\ 2M r (2m +1+ 2M) rt-1( 2(2M+1) cos r (2a +1+2M)rt-1( - 2(2M +1) 10 Filtrelmpairm(a)= cos Tt- Ii 2M +1 N 1 , k_o avec les définitions suivantes - m : indice du coefficient du filtre généré - 2.M : Taille du filtre pair - 2.M+1 : Taille du filtre impair - Ck=1/-\12 si k=0, Ck=1 sinon. - a : la position interpolée (par ex, 1/4, 2/4, 3/4) - N : facteur de lissage fixé à 9.5 (comme dans l'état de l'art). 15 Pour une implémentation matérielle de ces filtres sur des processeurs à faible consommation, on convertit les coefficients générés en valeur entière avec la formule suivante : Filtrem (a) = PartieEntiere(Filtrem (a).26) Par exemple, en fixant M=4 pour un filtre pair et a=1/2 on peut 20 générer un des filtres de référence de la norme. En fixant M=1 pour un filtre impair et a=1/2 on obtient les coefficients du filtre basse consommation. Le tableau ci-dessous donne un exemple de valeurs pour les filtres selon le standard et pour un filtre basse consommation selon l'invention : a Filtre de référence Filtre basse consommation Filtres d'interpolation des luminances 1/4 (-1, 4, -10, 58, 17, -5, 1) (-7, 58, 13) 1/2 (-1, 4, -11, 40, 40, -11, 4, -1) (-9, 41, 32) Filtres d'interpolation des chrominances 1/8 (-2, 58, 10, -2) 64 1/4 (-4, 54, 16, -2) 64 3/8 (-6, 46, 28, -4) 64 1/2 (-4, 36, 36, -4) 64 Selon une autre variante de réalisation, on va travailler avec une valeur donnée pour le paramètre M qui définit la taille du filtre et on va choisir un paramètre de quantification, nombre de bits sur lequel on quantifie la représentation décimale des coefficients, avec pour objectif de réduire la complexité des filtres utilisés. Dans cette variante de mise en oeuvre, pour une implémentation matérielle de ces filtres sur des processeurs à faible consommation, on convertit les coefficients générés en valeur entière avec la formule suivante : Filtre',(a)= PartieEntiere(Filtrem(a).2a) où a est un coefficient qui définit le nombre de bits sur lequel la quantification est réalisée, la valeur de a est choisie inférieure au coefficient de quantification de la norme, actuellement égal à 6. Pour exemple, actuellement l'implantation d'un filtre de la norme pour l'interpolation utilise une quantification sur six bits, et on obtient un filtre comportant les coefficients suivants : Filtrev2_6b = (-1, 4, -11, 40, 40, -11, 4, -1) En quantifiant sur cinq bits, a=5, il est possible d'obtenir le filtre suivant : Filtrev2_5b = (0, 2, -6, 20, 20, -6, 2, 0) ; la génération des coefficients nuls permet de diminuer le nombre d'opérations réalisées au niveau du filtre et donc la complexité du filtre. En quantifiant sur quatre bits, a=4, on peut obtenir le filtre suivant : Filtrev2_4b = (0, 0, -2, 10,10, -2, 0, 0). 302 74 8 1 16 Dans les exemples donnés, le changement des quantifications fait apparaître des coefficients nuls qui seront ignorés lors du calcul de filtre. De fait, cela revient à réduire le nombre de coefficients à traiter et donc réduire la complexité du filtre. 5 Selon une autre manière de réalisation, réduire la complexité d'implantation consiste à arrondir les coefficients vers leur arrondi en base de 2 le plus proche. Cette variante de réalisation peut être mise en oeuvre quelque soit le coefficient de quantification utilisé, six pour la norme actuelle, ou inférieur à six. Tous les coefficients du filtre ou au moins la majorité des 10 coefficients sont arrondis à la puissance de 2 la plus proche de leur valeur. Ainsi, le Filtre112 de référence (interpolation des luminances) donné dans le tableau précédent (-1, 4,-11, 40, 40, -11, 4, -1) devient alors Filtrev2_base2 = (-20, 22, _23, 25, 25, _23, 22, _20). Afin de garantir un gain de filtrage équivalent à celui obtenu 15 actuellement par la norme, une compensation est nécessaire. Dans cet exemple, la compensation sera obtenue par la valeur (26/ EFiltre1/2_base2 ), ou de manière plus générale par (2a/ EFiltre_base2 ) avec EFiltre_base2 représentant la somme des coefficients du filtre. Pour le filtre obtenu avec une quantification a=4, on obtiendra 20 Filtre1/2_4b_base2 = (-21, 23, 23, -21), avec une compensation (24/ EFiltrev2_4b _base2 =16/(-2+8+8-2)=16/14=8/7). Dans cette réalisation de filtre, la réduction de complexité vient avec la simplification des opérations de filtrage. En effet, les multiplications nécessaires entre les coefficients et les échantillons sont remplacées par des simples « décalages de bits ». En fonction de la cible choisie pour le décodeur vidéo, le nombre nécessaire de cycles « machine » peut être drastiquement réduit, par exemple, divisé par 2 lorsqu'on suppose que la multiplication et l'addition représentent une complexité équivalente sur la cible. Au niveau du décodeur final 500, le flux de données compressées F issu du démultiplexeur 551 est transmis à un premier module 501 de décodage entropique, le flux décodé est transmis à un module de quantification inverse et transformation inverse 502, et à un module de décodage du type de trame lnter/intra, 503. Les données reconstruites Fr sont transmises à un filtre de boucle 504 qui comprend une première chaîne de filtrage 505 composée d'un filtre de « deblocking » de référence 506 suivi d'un filtre SAO de référence 507 dont la sortie est liée à une sortie vidéo 508, et une deuxième chaîne de filtrage basse consommation 509 qui comprend un premier filtre de « deblocking » basse consommation 510 suivi d'un deuxième filtre SAO basse consommation 511. Un premier commutateur 512 permet d'aiguiller les données reconstruites à travers la première chaîne de filtre standard ou la deuxième chaîne de filtre basse consommation en fonction d'un drapeau d'activation Cd généré par le module d'activation 520, un deuxième commutateur 514 aiguillant les données filtrées vers la sortie vidéo. Sans sortir du cadre de l'invention, il est possible d'envisager de remplacer les filtres basse consommation par une ligne ne comportant aucun filtre et assurant uniquement la transmission des données. La sortie vidéo Sv est reliée à un dispositif d'affichage non représenté et une partie des images est aussi stockée dans une mémoire tampon 521 dont une sortie est reliée à un module de compensation de mouvement 530. Le module de compensation de mouvement comporte un commutateur 538 recevant l'indicateur d'activation Cd afin de choisir la chaîne de filtre à utiliser. Le module de compensation 530 comprend une première chaine 531 standard comportant un premier module d'interpolation de la luminance 532 suivi d'un premier module d'interprétation de la chrominance 533 dont la sortie est reliée à un module de compensation de vecteur de mouvement 534. Une deuxième chaîne de filtre basse consommation 535 comprend par exemple un module d'interpolation basse consommation 536 suivi d'un module d'interpolation chroma 537. Un premier commutateur 538 reçoit une commande d'activation Cd et permet le passage des images vidéo mémorisées soit dans la chaîne de filtrage basse consommation, soit dans la chaîne standard, et un deuxième commutateur 539 reliant soit le module d'interpolation chroma standard 531, soit le module d'interpolation chroma basse consommation 535 au module de compensation de mouvement. La sortie du module de compensation est transmise au module de sélection de mode intra/inter à appliquer pour la reconstruction des données. Sans sortir du cadre de l'invention, les commutateurs de la chaîne de décodage basse consommation peuvent être pilotés de manière indépendante, on peut activer la chaîne de filtre de boucle basse 10 consommation indépendamment de la chaîne basse consommation du filtre d'interpolation. Il est aussi possible d'envisager un schéma dans lequel les filtres basses consommation du filtre de boucle sont remplacés par une ligne de transmission des données sans action sur les données, ceci en fonction de la ou des métadonnées et/ou des contraintes de fonctionnement fixées 15 par l'utilisateur. Niveau d'activation Le niveau d'activation, exprimé en pourcentage, spécifie la part des images pour lesquelles le filtrage « basse consommation » est appliqué. Par exemple, un taux d'activation de 25% signifie qu'une image décodée sur 20 quatre est décodée avec le mode de filtrage « basse consommation ». Ces images sont réparties de façon homogène sur une période donnée. Par exemple, en choisissant une période de 12 images, des indices d'image de 1 à 12 et un taux d'activation de 25%, les images 2, 6 et 10 seront décodées avec le mode de filtrage « basse consommation » et les images 1, 3, 4, 5, 7, 25 8, 9, 11 et 12 seront décodées avec le mode de filtrage de référence de la norme HEVC, par exemple. Le motif d'activation ainsi défini peut s'écrire [2, 6, 10]. Dans cet exemple, les motifs [1, 5, 9], [3, 7, 11] et [4, 8, 12] sont également valides. On constate figure 6A, figure 6B que l'effet du niveau d'activation 30 sur le rapport signal à bruit de la vidéo décodée dépend du taux de compression de la vidéo. Les figures 7A, 7B illustrent la conséquence du niveau d'activation des filtres basse consommation sur le rapport signal à bruit de la vidéo décodée. Le niveau d'activation permet de sélectionner les filtres basse consommation à appliquer. Un réglage plus fin des paramètres de filtrage est possible, par exemple en choisissant les images sur lesquels on va appliquer ou non le filtrage basse consommation. Pour cela, le module de décision reçoit une information sur le type de trames contenues dans le flux de données en cours. Une décision va donc être prise au niveau de la trame pour décider si le procédé applique les filtres non modifiés ou les filtres modifiés. Par exemple, les types d'images (I (intra), P (prédites) et B (bidirectionnel)) peuvent être utilisés pour sélectionner des types d'image dont le filtrage est fixé au filtrage de référence ou fixé au filtrage « basse consommation ». Il est possible de définir les profils d'activation suivants selon les types des images encodées : Profil Images de Images de Images de type d'activation type I type P B Tout Selon motif Selon motif Selon motif Sauf_l Référence Selon motif Selon motif Sauf_IP Référence Référence Selon motif Toujours_B Référence Référence Basse consommation Toujours_BP Référence Basse Basse consommation consommation Dans le cas de l'utilisation d'un profil d'activation, l'information 550 du type d'image décodée est transmise au bloc de décision d'activation par le décodage entropique. Les filtres d'interpolation et de boucle « basse consommation » peuvent être activés selon le même niveau d'activation et le même motif d'activation. Il est également possible d'activer indépendamment les filtres d'interpolation et les filtres de boucle. Dans ce cas, un motif et/ou profil différent est utilisé pour chaque filtre. Dans l'exemple qui suit pour illustrer le procédé selon l'invention, douze niveaux d'activation sont proposés pour obtenir un maximum de 0.1 dB de distorsion. En mettant ActivationLevel {0...12}, le décodeur peut utiliser dynamiquement les filtres. Le module fonctionnel est adapté pour décider du moment et des trames qui doivent être soumises aux filtres simplifiés. Par exemple, le tableau qui suit indique des numéros de trame sur lesquelles le procédé de filtre simplifié s'applique : Niveau d'activation Index numéro de trame 0 Non activé - HEVC 1 (0) 2 (0,6) 3 (0, 4, 8) 4 (0, 3, 6, 9) 5 (1, 3, 7, 9, 11) 6 (1, 3, 5, 7, 9, 11) 7 (0, 2, 4, 5, 6, 8, 10) 8 (1, 2, 4, 5, 7, 8, 10,11) 9 (1, 2, 3, 5, 6, 7, 9, 10, 11) (1, 2, 3, 4, 5, 7, 9, 10, 11, 12) 11 (0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11) 12 Nouveaux blocs toujours activés 10 Le système selon l'invention permet un ajustement de la puissance d'énergie consommée avec une connaissance a priori de la qualité vidéo, sans augmenter la complexité du côté décodeur. La partie « données » du flux ou « bitstream » reste inchangée par rapport à l'état de l'art. Ainsi, tous les décodeurs lisant ce flux peuvent adapter leur décodage à leur niveau de batterie. Dans le système selon l'invention, en fonctionnement normal, on ne modifie pas les filtres de la partie standard de l'encodeur contrairement à une implémentation qui consiste à utiliser les mêmes filtres pour le côté encodeur et le côté décodeur. REVENDICATIONS1. Dispositif pour décoder un flux de données multimédia au niveau d'un terminal en gérant l'énergie nécessaire pour le décodage comportant un décodeur (300, 500) des données multimédia, caractérisé en ce que ledit décodeur (300, 500) comporte au moins une chaîne de décodage « basse consommation » comprenant un module d'activation (305, 520) adapté à activer une première chaîne de décodage ou filtre de boucle basse consommation (509, 510, 511) et une chaîne d'interpolation basse consommation (535, 536, 537) en fonction d'au moins un paramètre représentatif de contraintes d'énergie utilisateur (301) et/ou du terminal mobile (302) et d'une ou de plusieurs métadonnées Md associées à une complexité de décodage et/ou à une énergie de décodage. 2 - Système pour décoder un flux de données multimédia au niveau d'un terminal en gérant l'énergie nécessaire pour le décodage caractérisé en ce qu'il comporte au moins les éléments suivants : - un encodeur (400) des données multimédia comprenant au moins un module (405) adapté à générer une ou plusieurs métadonnées Md associées à une complexité de décodage et/ou à une énergie de décodage du flux de données multimédia décodé par un décodeur (500), - un décodeur (500) comprenant au moins une chaîne de décodage standard (505, 506, 533, 532), au moins un module d'extraction (551) des métadonnées Md contenues dans le flux de données multimédia, un module d'activation (520) relié à un commutateur (531) adapté à activer une première chaîne de décodage ou filtre de boucle basse consommation (509, 510, 511) et à un commutateur (538) afin d'activer une chaîne d'interpolation basse consommation (535, 536, 537) en fonction d'au moins un paramètre représentatif de contraintesd'énergie et d'une ou de plusieurs métadonnées Md contenues dans le flux de données multimédia. 3 - Système selon la revendication 2 caractérisé en ce que l'encodeur (400) 5 comprend un décodeur modifié (401) comprenant un filtre de boucle basse consommation (116b), un module d'estimation d'énergie (404), un décodeur standard (402) comprenant un module d'estimation d'énergie (403), et en ce qu'une métadonnée Md est un couple de valeurs (dégradation maximum, gain potentiel en énergie) déterminées à partir des données multimédia Ev, 10 des données Sv2 décodées par le décodeur standard (402), d'une valeur d'énergie estimée E2 par le décodeur standard, des données décodées Svi par le décodeur modifié (401), de l'énergie estimée E1 par le décodeur modifié (401). 15 4 - Système selon la revendication 3 caractérisé en ce que le module de génération de métadon nées (405) et les décodeurs (401, 402) sont adaptés a: - Déterminer les gains en énergie MGE= 1-(Ei/E2)*100, avec E1 l'énergie estimée par le décodeur modifié (401), E2 l'énergie estimée 20 par le décodeur standard (402), - Déterminer la dégradation de qualité en calculant la valeur PSNR sur l'ensemble des images du flux de données à partir d'une image décodée par la chaîne de décodage standard et à partir d'une image décodée par la chaîne de décodage basse consommation, 25 - PQMR -DecodeurReference = 10rlogio(d2/MSE), d correspondant à l'amplitude maximum des pixels, MSE correspondant à l'erreur quadratique moyenne (Ev _ 5v2)2 entre le flux de données de référence Ev et le flux de données décodées par le décodeur standard Sv, - PSN RDecodeurModififée- 10*logio(d2/MSE) avec MSE correspondant à 30 l'erreur quadratique moyenne (Ev _ Svi)2entre le flux de données de référence Ev et le flux de données décodées par le décodeur modifiéSvi, - Calculer la valeur de la dégradation de qualité, Dégradation = PSNRDecodeurreference - PSNRDecodeurmodifié. 5 - Système selon la revendication 2 caractérisé en ce qu'une métadonnée Md est un couple de valeurs (dégradation maximum, gain potentiel en complexité). 6 - Système selon l'une des revendications 2 à 5 caractérisé en que la contrainte d'énergie est un niveau d'énergie restante mesuré pour la batterie d'un terminal mobile. 7 - Système selon l'une des 2 à 6 caractérisé en ce que les filtres basse consommation sont des filtres à réponse impulsionnelle finie. 8 - Système selon la revendication 2 caractérisé en ce qu'une métadonnée Md est déterminée à partir des valeurs dégradation maximum, gain potentiel, et valeurs de coefficients de filtres « basse-consommation ». 9 - Système selon l'une des revendications 2 à 8 caractérisé en ce qu'il comporte un module de prédiction (550) du ou des types de trames présentes dans le flux multimédia, le module d'activation des chaînes de filtrage simplifiées étant activé en fonction d'un type de trame ou de leur position dans le flux de données multimédia. 10- Système selon l'une des 2 à 9 caractérisé en ce que le décodeur est un décodeur H.264/AVC ou H.265/HEVC et le flux de données des images vidéo. 11 - Procédé pour décoder des données d'un flux de données multimédia au niveau d'un terminal en gérant l'énergie nécessaire pour le décodage caractérisé en ce qu'il comporte au moins les étapes suivantes: - Déterminer au moins un paramètre représentatif de contraintes d'énergie utilisateur et/ou associées au fonctionnement du terminal, - En fonction de la valeur de ces paramètres et de valeurs de métadonnées Md associées à une complexité de décodage et/ou à une énergie de décodage, activer une chaîne de décodage basse consommation au niveau d'un décodeur de données multimédia ou une chaîne de décodage standard. 12 - Procédé selon la revendication 11 caractérisé en ce qu'une métadonnée Md est un couple de valeurs (dégradation maximum, gain potentiel en énergie) et en ce que ladite valeur est calculée lors d'une étape de codage des données multimédia en tenant compte des données multimédia Ev, des données Sv2 décodées par un décodeur standard (402), d'une valeur d'énergie estimée E2 par le décodeur standard, des données décodées Svi par un décodeur modifié (401), de l'énergie estimée E1 par le décodeur modifié (401). 13 - Procédé selon la revendication 12 caractérisé en ce que l'on calcule la valeur d'une métadonnée de la manière suivante : - Déterminer les gains en énergie MGE= 1-(Ei/E2)*100, avec E1 l'énergie estimée par le décodeur modifié (401), E2 l'énergie estimée par le décodeur standard (402), - Déterminer la dégradation de qualité en calculant la valeur PSNR sur l'ensemble des images du flux de données à partir d'une image décodée par la chaîne de décodage standard et à partir d'une image décodée par la chaîne de décodage basse consommation, - SNIR P . -DecodeurReference = 10rlogio(d2/MSE), d correspondant à l'amplitude maximum des pixels, MSE correspondant à l'erreur quadratiquemoyenne (Ev _ Sv2)2entre le flux de données de référence Ev et le flux de données décodées par le décodeur standard SV2, - PSNRcecodeurmodififée- 10*logio(d2/MSE) avec d correspondant à l'amplitude maximum des pixels, MSE correspondant à l'erreur quadratique moyenne (Ev- Svi)2entre le flux de données de référence Ev et le flux de données décodées par le décodeur modifié Svi, - Calculer la valeur de la dégradation de qualité, Degradation = PSNR Decodeurreference PSN RDecodeurmodifié 14 - Procédé selon la revendication 13 caractérisé en ce que l'on choisit d égal à 255. - Procédé selon la revendication 11 caractérisé en ce que l'on utilise comme contrainte d'énergie une mesure de niveau d'énergie pour la batterie 15 du terminal. 16 - Procédé selon l'une des revendications 11 à 15 caractérisé en ce qu'il est mis en oeuvre dans un décodeur H.264/AVC ou H.265/HEVC et en ce que le flux de données est constitué d'images vidéo.20