Brevet FR3005385A1 — publié le 20141107

La présente invention se rapporte principalement au domaine des animations du type images animées multipages. Il existe des formats d'animation du type images animées multipages, notamment celui connu sous l'acronyme GIF, pour « Graphics Interchange Format » (en français, « format d'échange d'images »). Les animations de type « GIF » proposent un intermédiaire intéressant entre l'image et la vidéo: elles permettent de stocker séparément plusieurs images fixes successives, d'où l'appellation multipages, et de les afficher à intervalles réguliers. Ceci permet d'avoir des animations nécessitant un traitement informatique beaucoup plus léger qu'une vidéo. Ces animations sont généralement jouées de façon cyclique, de sorte que chaque image revient à intervalle normalement régulier. Dans une vidéo, on peut compresser les images en fonction d'une autre image, par exemple grâce à des fonctions prédictives du mouvement, tel que dans les formats de la famille MPEG. Au contraire, pour une animation du type multipages, chaque image fixe est indépendante des autres images fixes ; ainsi, l'inconvénient de ces formats est que, lorsque la taille des images devient importante, le média correspondant est lourd et difficilement transportable et partageable. De ce fait, une animation constituée de telles images, lors de sa publication sur un site internet ou de son envoi vers un appareil mobile, peut être longue à charger ou à s'afficher. - 2 - L'invention a pour but de proposer un procédé qui permet d'obtenir une animation qui intègre les avantages des animations du type GIF tout en étant plus fluide et rapidement téléchargeable. Selon l'invention, un tel procédé comprend l'utilisation d'images fixes scalables, c'est-à-dire d'images ayant des propriétés de scalabilité, de préférence pour l'ensemble des images ; de préférence, chacune des images fixes est sauvegardée en au moins deux niveaux, le premier niveau comprenant peu de détails et chaque niveau suivant apportant des détails supplémentaires au niveau qui le précède. Avantageusement, pour jouer une image, on lit d'abord un niveau avant le niveau de rang supérieur, de préférence en commençant par le premier niveau de l'image. Pour chaque image on décompresse et affiche les données contenues dans tous les niveaux disponibles pour ladite image, ou, on décompresse et affiche les données correspondant uniquement aux niveaux disponibles pour l'ensemble des images, ou, on décompresse et affiche seulement les données correspondant au plus petit ensemble de niveaux permettant d'atteindre au moins une résolution d'affichage donnée de l'image. De préférence, pour chacune des images, chacun de ses niveaux est situé, dans l'ordre de lecture du média, avant le niveau suivant. Le média de l'animation peut comprendre, dans l'ordre de lecture dudit média, tous les niveaux d'un premier rang selon l'ordre dans lequel les images de l'animation sont prévues d'être jouées, puis tous les niveaux de rang immédiatement supérieur, de préférence en commençant par les premiers niveaux. Une image peut être jouée selon les données issues d'un niveau de ladite image avant que les données du niveau de rang supérieur aient été lues, puis traitées. L'image traitée est avantageusement redimensionnée, avant d'être jouée, pour atteindre la résolution d'affichage souhaitée. Les images fixes sont avantageusement préalablement compressées par une méthode par ondelettes. Le média image est préférablement un fichier. L'invention porte aussi sur un média pour la mise en oeuvre d'un procédé selon l'invention, caractérisé en ce qu'il comprend, dans l'ordre de lecture dudit média, toutes les niveaux d'un premier rang selon l'ordre dans lequel les images de l'animation sont prévues d'être jouées, puis tous les niveaux de rang immédiatement supérieur, de préférence en commençant par les premiers niveaux. L'invention porte encore sur un procédé pour sélectionner une image fixe d'un tel média d'animation, où l'on utilise un niveau d'un rang pour afficher un aperçu des images du média sans lire ou sans lire et traiter les images des rangs supérieurs. L'invention porte encore sur un procédé, caractérisé en ce que l'on crée un média image fixe à partir des niveaux de l'image fixe sélectionnée La scalabilité permet, pour les formats de compression qui l'utilisent, d'obtenir un aperçu de l'image avec uniquement une partie des données et d'obtenir, par niveaux, des aperçus de plus en plus précis de l'image au fur et à mesure que les données sont décompressées. Une telle scalabilité est utilisée de manière statique, c'est-à-dire pour - 3 - une image isolée, par exemple dans les formats Jpeg2000 et PGF. Le format GIF, quant à lui, permet le stockage de plusieurs images au sein d'un même média, mais pas la scalabilité. On appellera « niveau » un ensemble d'informations cohérentes créé lors de la compression permettant, combiné aux niveaux précédents de décompresser l'image à une résolution définie. Avantageusement, ce niveau contient toutes les couches de l'image pour ce niveau. Par exemple, si l'image est de type YCbCr, le niveau contient avantageusement des données pour la couche Y, la couche Cb et la couche lo Cr pour ce niveau. Ainsi, les informations contenues dans un niveau, combinées aux informations des niveaux précédents, permettent de décompresser et afficher l'image à la résolution voulue. Plusieurs modes d'exécution de l'invention seront décrits ci-après, à titre 15 d'exemples non limitatifs, en référence aux dessins annexés dans lesquels : la figure 1 illustre schématiquement les niveaux d'une image fixe compressée, représentée en deux dimensions. La taille de chacun des rectangles représente la résolution de l'image, une fois que l'ensemble des niveaux jusqu'à celui représenté par le rectangle sont 20 décompressés ; la figure 2 illustre une animation multipage, comprenant cinq images compressées de trois niveaux de résolution équivalente pour chacune des images, selon le mode de la figure 1 ; la figure 3 illustre l'organisation des données de l'animation de la figure 25 2, selon un premier mode de mise en oeuvre de l'invention, où les images sont stockées les unes après les autres, et par niveaux successifs au sein de chaque image ; la figure 4 illustre l'organisation des données de l'animation de la figure 2, selon un deuxième mode de mise en oeuvre de l'invention, où les 30 niveaux de même rang de toutes les images sont stockées les uns après les autres, des premiers jusqu'aux derniers niveaux ; les figures 5 et 6 illustrent, respectivement selon une représentation en une et deux dimensions, un mode d'affichage possible de l'animation, selon un procédé de l'invention dans le mode de mise en oeuvre de la 35 figure 4. La figure 1 illustre la résolution obtenue lors de la décompression de chacun de trois niveaux successifs N1-N3 compressés préalablement. Ainsi, la décompression d'un seul premier niveau Ni, comprenant le moins de détails, 40 génèrera une image de résolution telle que celle de la zone occupant le coin supérieur gauche de la matrice M. Cette image partiellement décompressée peut évidemment être redimensionnée pour atteindre la résolution d'affichage de l'image, ou la taille d'un écran par exemple. La décompression des données d'un deuxième niveau N2, combinée à celles du premier niveau N1, génèrera une image plus détaillée, dont la résolution sera égale à l'ensemble de la zone occupant le coin supérieur gauche de la matrice M, plus la zone intermédiaire de la matrice M, située en bas et à droite de celle-ci. Enfin, la décompression s de l'ensemble des niveaux N1, N2 et N3, combinés entre eux génèrera une image complète dont la résolution est proportionnelle à la surface de la matrice M. Dans l'exemple illustré : 10 - le premier niveau N1 couvre 1/16 de la taille de la matrice M, c'est-à- dire que si l'on décompresse seulement le premier niveau N1, on obtient une image qui représente 1/16 de la taille de l'image d'origine ; - les données des premier et deuxième niveaux N1, N2 couvrent 1/4 de la taille de la matrice M, c'est-à-dire que si l'on décompresse seulement les 15 deux premiers niveaux N1,N2, on obtient une image qui représente 1/4 de la taille de l'image d'origine ; - les données des premier, deuxième et troisième niveaux N1-N3 couvrent la totalité de la taille de la matrice M, c'est-à-dire que si l'on décompresse les trois niveaux N1-N3, on obtient l'ensemble de l'image 20 d'origine ; Chaque niveau possède des données représentant l'image, avec une résolution moins importante que le niveau suivant. Chaque niveau utilise les données du niveau précédent en même temps que des données propres. Une telle image est donc scalable, elle possède la propriété de scalabilité, c'est-à-dire qu'il est 25 donc possible de décompresser un niveau après le précédent, sans avoir à décompresser le ou les éventuels niveaux suivants. Il est plus rapide de décompresser le premier niveau pour obtenir un premier aperçu de l'image plutôt que d'attendre la décompression des trois niveaux ; 30 une fois la décompression du deuxième niveau effectuée on peut obtenir un aperçu amélioré de l'image pendant la décompression du troisième niveau ; c'est ainsi que s'exprime la propriété de scalabilité d'une telle image. Dans la suite, on va décrire comment on utilise, selon l'invention, la propriété de scalabilité des images. La figure 2 illustre une animation multipages A comprenant une suite de cinq images Pl-P5 compressées selon le mode de la figure 1, en trois niveaux N1-N3. Dans la description, pour chaque image Pn de l'animation A, le niveau Nm est noté Pn:Nm avec, dans le cas d'espèce, n variant de 1 à 5 et in variant de 1 à 3. Les images Pn sont un ensemble d'images encodées avec de la scalabilité, ou un ensemble d'images qu'on encode ou ré-encode avec de la scalabilité pour les besoins de l'application. Elles peuvent par exemple être issues d'un ensemble d'images JPEG dans une galerie d'image ou d'images provenant d'une caméra. On appellera par la suite « media » l'ensemble des données permettant de décompresser et afficher une image. Ces données peuvent être contenues dans un fichier, dit « fichier » ou « fichier image ». Elles peuvent également être contenues dans la mémoire d'un appareil mobile, par exemple un téléphone ou un appareil photo numérique, ou envoyées via un protocole réseau. La figure 3 illustre la disposition d'un média AM pour l'animation A, selon un premier mode de mise en oeuvre de l'invention. Le média AM comprend cinq 25 pages AM1-AM5, chacune correspondant, dans l'ordre de leur affichage, à une image respective Pl-P5. Dans chaque page AMn, les données sont classées dans l'ordre des niveaux N1-N3, de sorte que les données du premier niveau Pn:Nl d'une image Pn sont disposées avant celles du deuxième niveau Pn:N2, elles-mêmes avant celles du troisième niveau Pn:N3. Ainsi, pour chaque 30 image, chaque niveau peut être lu et décompressé avant le suivant. Pour chaque page AMn correspond un temps d'affichage donné, correspondant au rythme de l'animation. Cette représentation par niveau permet, pour chaque image, de ne décompresser et afficher que la résolution nécessaire. Par exemple, si la décompression des niveaux Ni et N2 de chaque image est suffisante pour afficher chaque image à la résolution de l'écran de l'appareil sur lequel l'animation est lue, il est possible, avec cette représentation des données, de ne décompresser et afficher que les niveaux Ni et N2 de chaque image, économisant ainsi des ressources par rapport à la décompression complète de l'ensemble des niveaux. Dans un second mode de mise en oeuvre de l'invention, les données des niveaux sont réorganisées telles qu'illustré à la figure 4, dans un média animé AG spécifique, de sorte que tous les premiers niveaux Ni sont copiés en début du média AG, dans l'ordre des images Pn, suivis des deuxièmes niveaux N2 puis des troisièmes niveaux N3, dans le même ordre. Dans cette disposition, l'ensemble des premiers niveaux Pn:Nl sont lus avant les deuxièmes Pn:N2, puis les troisièmes Pn:N3. Dans cette configuration, il est possible d'afficher la première image dès que le premier niveau Pl:N1 correspondant a été lu et décompressé, et ainsi de suite, de sorte que celui qui visionne une telle animation, n'ait pas besoin d'attendre la décompression complète de l'image correspondante. Chaque fois qu'une image Pn est prévue d'être jouée, elle peut être jouée en utilisant, si cela est souhaité, toutes les données disponibles pour cette image. Ainsi, il est possible de jouer l'animation selon plusieurs modes : on peut par exemple décompresser pour chaque image devant être jouée l'ensemble des niveaux disponibles, pour cette image. Ce mode de lecture est représenté aux figures 5 et 6. A l'étape illustrée à la figure 5, l'ensemble des premiers niveaux Pn:Nl a été lu et décompressé, et seuls les deuxièmes niveaux des deux premières images P 1:N2 et P2:N2 l'ont aussi été. Alors, l'animation A peut être jouée telle qu'à la figure 6, les deux premières images Pl, P2 étant jouées dans leur résolution intermédiaire, correspondant aux détails du deuxième niveau N2, les images suivantes P3-P5, sont jouées dans leur résolution la plus faible, correspondant aux détails de leur premier niveau N1 respectif. On peut également décompresser l'image en utilisant la résolution la plus grande disponible pour l'ensemble des images. Par exemple, si le niveau N1 de l'ensemble des images P est disponible, mais seulement une partie des niveaux N2, on peut ne décompresser et afficher que le niveau N1 pour chaque image, pour ne pas provoquer de changement de résolution entre deux images successives. Ainsi, dans le cas illustré en figure 5, toutes les images seraient jouées suivant la résolution des niveaux Ni. Il est également possible de décompresser une image jusqu'à obtenir la résolution « utile », c'est-à-dire la résolution au moins égale à la résolution dans laquelle l'animation est jouée. Une information temporelle pouvant être associée au média AM,AG, indiquant le nombre d'images devant être jouées chaque seconde, l'animation peut être jouée suivant l'information temporelle donnée. Il peut être prévu des moyens et des étapes pour modifier le rythme d'affichage du média lors de l'écriture et / ou de la lecture du média, pour pouvoir utiliser des effets de « slow motion », c'est-à-dire de ralenti, ou d'accélération, ou encore en restituant tout ou partie de chaque image dès que l'utilisateur ou une application le requiert. Il est aussi possible, à partir des données du média animé AM,AG, d'extraire les données correspondant à une image Pn parmi les images de l'animation. Ainsi, l'image Pn peut être restituée en tant qu'image fixe selon les besoins, en extrayant, ou en lisant, et réorganisant les niveaux Pn :N1, Pn :N2, etc... de l'image, en gardant les données compressées telles quelles. Plutôt que d'être joué temporellement, sous la forme de l'animation, le média animé AG peut être utilisé comme un répertoire des images P1-P5. Les niveaux inférieurs Ni ou intermédiaires N2 peuvent être utilisés pour être affichés sous forme d'icônes, et un utilisateur ayant choisi une image Pn parmi les images P1-P5, seule l'image Pn sera complètement lue et décompressée pour être affichée de façon fixe dans sa plus grande résolution, à partir des informations correspondant au troisième niveau Pn:N3. Dans un mode d'exécution de l'invention, un tel média est utilisé pour la prise de vue de plusieurs images fixes en rafale. Cette capture peut se faire via un appareil photo/caméra, ou bien à partir de screenshots successifs. Après avoir été capturée, elle est compressée et stockée suivant plusieurs niveaux. Lorsque la capture est terminée l'utilisateur sélectionne, parmi les images stockées, celles qu'il souhaite transformer en image animée. Cette sélection peut porter sur l'ensemble des images, d'une image sur deux, de la seconde moitié des images, etc.. L'utilisateur peut associer une vitesse de lecture à ce média, pouvant correspondre à la vitesse de capture, mais aussi à une vitesse plus ou moins importante pour créer des effets de « slow motion » ou d'accélération. L'application crée alors, à partir des images compressées, un média image organisé par niveaux, tel le média animé AG de la figure 4. Une image extraite du média peut aussi être stockée indépendamment, sous forme d'un média contenant une image unique, fixe. Bien sûr, l'invention n'est pas limitée aux exemples qui viennent d'être décrits. - 9 - Ainsi, le nombre de niveaux n'est pas limité à 3, il peut être de 2 ou 4 ou plus de 4 ; ainsi, on peut grâce au procédé selon l'invention, afficher rapidement des images d'une taille progressivement beaucoup plus importante que celles généralement utilisées dans les GIF, notamment en augmentant le nombre de niveaux. L'invention propose donc des procédés de compression et décompression d'images animées utilisant la scalabilité. Ces procédés permettent au récepteur de l'animation de l'afficher à partir de données déjà arrivées, sans nécessairement avoir tout reçu. REVENDICATIONS1. Procédé pour réaliser une animation (A) du type multipages, caractérisé en ce que le média (AM,AG) de l'animation comprend des images (Pn) fixes ayant des propriétés de scalabilité, de préférence pour l'ensemble des images. 2. Procédé selon la revendication 1, caractérisé en ce que, chacune des images scalables est stockée en au moins deux niveaux (Nm), le premier lo niveau (Ni) comprenant le moins de détails et chaque niveau suivant (Nm) apportant des détails supplémentaires au niveau (Nm-1) qui le précède. 3. Procédé selon la revendication 2, caractérisé en ce que pour jouer une image (Pn), on lit d'abord un niveau (Nm) avant le niveau de rang 15 supérieur (Nm+i), de préférence en commençant par le premier niveau de l'image (Pn:Nl). 4. Procédé selon la revendication 3, caractérisé en ce que pour chaque image (Pn) on décompresse et affiche les données contenues dans tous 20 les niveaux disponibles pour ladite image (Pn). 5. Procédé selon la revendication 3, caractérisé en ce que l'on décompresse et affiche les données correspondant uniquement aux niveaux disponibles pour l'ensemble des images. 25 6. Procédé selon la revendication 3, caractérisé en ce que l'on décompresse et affiche seulement les données correspondant au plus petit ensemble de niveaux permettant d'atteindre au moins une résolution d'affichage donnée de l'image. 30. Procédé selon l'une des revendications 1 à 6, caractérisé en ce que, pour chacune des images (Pn), chacun de ses niveaux (Pn:Nm) est situé, dans l'ordre de lecture du média, avant le niveau suivant (Pn:Nm+i). 8. Procédé selon la revendication 7, caractérisé en ce que le média (AG) de l'animation (A) comprend, dans l'ordre de lecture dudit média, tous les niveaux (Nm) d'un premier rang (m) selon l'ordre dans lequel les images (Pn) de l'animation sont prévues d'être jouées, puis tous les niveaux de rang immédiatement supérieur (Nm+i), de préférence en commençant par les premiers niveaux (Pn:N1). 9. Procédé selon l'une des revendications 1 à 8, caractérisé en ce qu'une image (Pn) est jouée selon les données issues d'un niveau de ladite image (Pn:Nm) avant que les données du niveau de rang supérieur (Pn:Nm+i) aient été lues, puis traitées. 10. Procédé selon l'une des revendications précédentes, caractérisé en ce que l'image traitée est redimensionnée, avant d'être jouée, pour atteindre la résolution d'affichage souhaitée. 11. Procédé selon l'une des revendications 2 à 10, caractérisé en ce que les images fixes ont été préalablement compressées par une méthode par ondelettes. 12. Procédé selon l'une des revendications précédentes, caractérisé en ce que le média image est un fichier. 13. Média (AG) pour la mise en oeuvre d'un procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comprend, dans l'ordre de lecture dudit média, toutes les niveaux (Nm) d'un premier rang (m) selon l'ordre dans lequel les images (Pn) de l'animation sont prévues d'être jouées, puis tous les niveaux de rang immédiatement- 12 - supérieur (Nm+1), de préférence en commençant par les premiers niveaux (Pn:N1). 14. Procédé pour sélectionner une image fixe d'un média d'animation (AM,AG) la revendication 13, caractérisé en ce que l'on utilise un niveau d'un rang (m) pour afficher un aperçu des images du média (AG) sans lire ou sans lire et traiter les images des rangs supérieurs (>m). 15. Procédé selon la revendication 14, caractérisé en ce que l'on crée un média image fixe à. partir des niveaux de l'image fixe sélectionnée.