FR3099975A1 - Procédé de fourniture d’un contenu comportant au moins une image, format de fichier - Google Patents

Procédé de fourniture d’un contenu comportant au moins une image, format de fichier Download PDF

Info

Publication number
FR3099975A1
FR3099975A1 FR1909186A FR1909186A FR3099975A1 FR 3099975 A1 FR3099975 A1 FR 3099975A1 FR 1909186 A FR1909186 A FR 1909186A FR 1909186 A FR1909186 A FR 1909186A FR 3099975 A1 FR3099975 A1 FR 3099975A1
Authority
FR
France
Prior art keywords
coefficients
file
image
sets
graphic element
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1909186A
Other languages
English (en)
Other versions
FR3099975B1 (fr
Inventor
Stéphane BACRI
Eric Leandri
Martin GERVAIS
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qwoo
Original Assignee
Qwoo
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qwoo filed Critical Qwoo
Priority to FR1909186A priority Critical patent/FR3099975B1/fr
Priority to EP20768276.6A priority patent/EP4014494A1/fr
Priority to PCT/EP2020/072802 priority patent/WO2021028550A1/fr
Publication of FR3099975A1 publication Critical patent/FR3099975A1/fr
Application granted granted Critical
Publication of FR3099975B1 publication Critical patent/FR3099975B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/645Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission by grouping of coefficients into blocks after the transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Facsimiles In General (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Le procédé (500) de fourniture d’un contenu comportant au moins une image, comporte :- une étape (505) d’hébergement, dans une mémoire informatique, d’un fichier informatique représentatif d’au moins un élément graphique d’au moins une image, dit « fichier permanent », ledit fichier stockant, dans une trame unique, au moins deux paquets distincts représentatifs d’un même élément graphique, chaque dit paquet étant représentatif de l’élément graphique selon une résolution d’image différente,- une étape (510) d’émission, par un équipement informatique, d’une requête de réception d’un fichier informatique temporaire, ladite requête comportant au moins une valeur de résolution et/ou au moins un identifiant d’élément graphique à inclure dans le fichier temporaire,- une étape (515) de génération, d’un fichier informatique temporaire à partir du fichier permanent en fonction d’au moins une valeur de résolution et/ou au moins un identifiant d’élément graphique comportée dans la requête de réception, ladite étape de génération comportant :- une étape (520) de duplication sélective d’au moins un paquet, en fonction d’au moins une valeur de résolution et/ou au moins un identifiant d’élément graphique comportée dans la requête de réception, dans le fichier temporaire,- une étape (525) de création d’une information d’en-tête du fichier temporaire en fonction des données dupliquées et- une étape (530) de fourniture du fichier temporaire à l’équipement informatique émetteur de la requête de réception. Figure pour l'abrégé : Figure 8

Description

PROCÉDÉ DE FOURNITURE D’UN CONTENU COMPORTANT AU MOINS UNE IMAGE, FORMAT DE FICHIER
La présente invention vise un procédé d’encodage d’un fichier informatique de type image, un procédé de décodage d’un fichier informatique de type image et un format de fichier obtenu par la mise en œuvre du procédé objet de la présente invention. Elle s’applique, notamment, à l’encodage d’images destinées à une transmission numérique.
Les formats les plus usités sur internet sont JPEG (pour « Joint Photographic Experts Group », traduit par « Comité d’experts de la photographie »), PNG (pour « Portable Network Graphic », traduit par « Image réseau portable ») et GIF (pour « Graphic Interchange Format », traduit par « Format d’échange d’images »). Le WebP de Google (Marque déposée) essaie de se faire une place depuis près de 10 ans sans vraiment y parvenir à ce jour.
Le JPEG est excellent pour les photos mais gère très mal les images synthétiques (dessins, graphiques, etc). Il ne gère pas la transparence. Un mode progressif et une version sans perte existent, mais ne sont pas universellement supportés. La vitesse de compression est excellente, tout comme celle de décompression.
Le PNG est un format sans perte qui restitue donc une image identique pixel à pixel à l’originale. Il gère très bien les images synthétiques (dont celles avec transparence), et correctement les photos pour les cas où il est nécessaire d’en conserver la qualité d’origine. Un mode progressif est possible, ainsi que d’utiliser des couleurs indexées. Une variante non officielle et non supportée par les navigateurs, appelée APNG (pour « Animated Portable Network Graphic », traduit par « Image réseau portable animée »), permet de faire des images animées. Sa vitesse de compression est moyenne (5 à 10x plus lente que le JPEG), celle de décompression excellente.
Le GIF est particulièrement destiné aux images animées. Utilisant des couleurs indexées sur 8 bits, il est limité à 255 couleurs + transparence ou 256 couleurs, ce qui donne parfois des résultats visuellement médiocres avec des contenus issus de vidéo. Il ne permet pas l’affichage progressif. Ce format est également très rapide à compresser comme à décompresser.
Le WebP étant plus récent que les formats précédents, il réunit l’essentiel des possibilités de chacun des formats précédents, tout en améliorant les taux de compression. Il permet ainsi de compresser avec ou sans perte(s), supporte la couche alpha ainsi que les couleurs indexées, et gère les animations. Cependant, il n’a pas de mode progressif. Sa vitesse de compression est mauvaise (jusqu’à 60x plus lent que le JPEG), et sa vitesse de décompression bonne.
D’autres travaux existent, comme le BPG (pour « Better Portable Graphics », traduit par « Meilleures images portables »), basé sur le codec vidéo HEVC (pour « High Efficiency Video Coding », traduit par « Encodage vidéo à haute efficacité »), ou le FLIF (pour « Free Lossless Image Format », traduit par « Format d’image sans perte libre »), dont les résultats en compression sans perte sont très élevés en terme de taux, mais au prix de temps de calculs irréalistes, et aucun ne semble vraiment attirer l’attention. L’arrivée du codec vidéo AV-1 pourrait faire apparaître une version image. Ce codec ayant le support de toute l’industrie du Web, peut-être aurait-t-elle plus d’avenir. Cependant, l’aspect extrêmement calculatoire du codec devra quasi obligatoirement s’appuyer sur des accélérateurs matériels, ce qui en limitera l’accès au moins pendant un certain temps.
La présente invention vise à proposer un format réunissant les qualités de tous les formats existants sans leurs inconvénients ou restrictions, soit, un format gérant la compression avec ou sans perte(s), les photos comme les images synthétiques, les couleurs indexées et la transparence, les animations, l’affichage progressif, tout en apportant des taux de compression intéressants et à des excellentes vitesses de compression et décompression. Il vise aussi à élargir les possibilités en s’appuyant sur les capacités des navigateurs modernes, celles-ci étant de plus rendues disponibles pour des applications dédiées et multi-plateformes par des technologies comme npm/electron (un gestionnaire de paquets) ou webview.
Selon un premier aspect, la présente invention vise un procédé de fourniture d’un contenu comportant au moins une image, qui comporte :
- une étape d’hébergement, dans une mémoire informatique, d’un fichier informatique représentatif d’au moins un élément graphique d’au moins une image, dit « fichier permanent », ledit fichier stockant, dans une trame unique, au moins deux paquets distincts représentatifs d’un même élément graphique, chaque dit paquet étant représentatif de l’élément graphique selon une résolution d’image différente,
- une étape d’émission, par un équipement informatique, d’une requête de réception d’un fichier informatique temporaire, ladite requête comportant au moins une valeur de résolution et/ou au moins un identifiant d’élément graphique à inclure dans le fichier temporaire,
- une étape de génération, d’un fichier informatique temporaire à partir du fichier permanent en fonction d’au moins une valeur de résolution et/ou au moins un identifiant d’élément graphique comportée dans la requête de réception, ladite étape de génération comportant :
- une étape de duplication sélective d’au moins un paquet, en fonction d’au moins une valeur de résolution et/ou au moins un identifiant d’élément graphique comportée dans la requête de réception, dans le fichier temporaire,
- une étape de création d’une information d’en-tête du fichier temporaire en fonction des données dupliquées et
- une étape de fourniture du fichier temporaire à l’équipement informatique émetteur de la requête de réception.
Grâce à ces dispositions, seule la partie nécessaire de l’image est fournie à l’équipement informatique, réduisant la taille du fichier au nécessaire et ainsi le temps d’occupation du canal de transmission entre la mémoire et l’équipement informatique. Selon les actions d’un utilisateur, un fichier temporaire secondaire peut être requis par l’équipement informatique, sans modification du format de l’image hébergée dans la mémoire informatique.
Dans des modes de réalisation, le fichier permanent comporte une information d’en-tête comportant au moins une valeur de décalage d’octet entre deux paquets représentatif de l’élément graphique selon une résolution d’image différente, le procédé objet de la présente invention comportant, de plus, une étape de conversion d’une valeur de résolution de la requête émise par l’équipement informatique en une valeur de décalage d’octet dans la trame, ladite valeur de décalage étant mise en œuvre au cours de l’étape de duplication sélective.
Ces modes de réalisation permettent d’obtenir très rapidement un fichier éphémère à fournir par lecture sélective de bits dans la trame représentative de l’image.
Dans des modes de réalisation, le procédé objet de la présente invention comporte une étape d’encodage d’un fichier informatique de type image, qui comporte :
- une étape de transformée en ondelettes discrète de l’image pour produire :
- un premier ensemble de coefficients d’ondelettes,
- un deuxième ensemble de coefficients d’ondelettes,
- un troisième ensemble de coefficients d’ondelettes et
- un quatrième ensemble de coefficients d’ondelettes,
- pour chaque ensemble de coefficients, une étape de quantification des coefficients,
- une étape de codage arithmétique indépendante pour chacun des premier, deuxième, troisième et quatrième ensemble de coefficients quantifiés et
- une étape d’enregistrement du premier ensemble encodé et
- une étape d’enregistrement d’au moins un regroupement des deuxième, troisième et quatrième ensembles encodés dans des paquets de données indépendants d’une trame de données unique, formant avec le premier ensemble enregistré un dit « fichier permanent », chaque ensemble encodé étant associé dans la trame à une valeur de décalage à appliquer lors de la lecture de la trame pour décoder sélectivement un ensemble de coefficients.
Grâce à ces dispositions, le format de fichier généré permet un affichage progressif de l’image en sélectionnant le ou les paquets de données nécessaires à l’affichage de l’image selon des critères d’affichage déterminés. Ceci permet un gain de temps de traitement puisque l’ensemble des données d’une trame représentative de l’image n’a pas à être nécessairement lue pour afficher l’image selon les critères déterminés. Le format de fichier ainsi généré comporte, en son sein, plusieurs versions de la même image selon des critères d’affichage déterminés, une version pouvant être lue indépendamment des autres versions comportées par le format de fichier. Ainsi, avec une seule trame représentative de l’image, il est possible de réaliser une pluralité d’affichages distincts selon les contraintes à appliquer à l’image. Ce format est particulièrement adapté à l’affichage dans un navigateur internet car, en fonction des besoins d’affichage sur une page internet, telle ou telle version de l’image encodée et générée par le procédé objet de la présente invention peut être utilisée. Une vignette, par exemple, peut mettre en œuvre une version de l’image de faibles dimensions tandis qu’un clic sur la vignette peut entraîner l’affichage d’une version de l’image dans des dimensions plus élevées, ces deux versions étant inclues dans le même fichier d’image.
Dans des modes de réalisation, l’étape de transformée en ondelettes est itérative, chaque itération formant un ensemble de coefficients d’un ordre supérieur, les itérations ultérieures à la première utilisant en guise d’image le premier ensemble de coefficients ou l’image initiale, au moins un ensemble de coefficients obtenu pour une itération déterminée étant enregistré dans un paquet de données indépendant et associé à une valeur de décalage.
Ces modes de réalisation permettent d’obtenir une pluralité de versions d’une même image dans un même fichier, chaque version pouvant être appelée indépendamment par lecture sélective du format de fichier généré par le procédé objet de la présente invention.
Dans des modes de réalisation, le procédé objet de la présente invention comporte, en aval de l’étape de transformée en ondelettes et des étapes de quantification des deuxième, troisième et quatrième ensembles de coefficients et en amont de l’étape de quantification du premier ensemble de coefficients, une étape de compensation du premier ensemble en fonction des deuxième, troisième et troisième ensembles quantifiés.
Ces modes de réalisation permettent d’augmenter la qualité de l’image encodée.
Dans des modes de réalisation, le procédé objet de la présente invention comporte :
- une étape de déquantification du premier ensemble compensé,
- pour chaque deuxième, troisième et quatrième ensembles quantifiés d’un ordre déterminé, une étape de déquantification dudit deuxième, troisième et quatrième ensembles quantifiés,
- une étape supplémentaire de transformée en ondelette discrète inverse en fonction dudit deuxième, troisième et quatrième ensembles déquantifiés et du premier ensemble compensé déquantifié,
- pour chaque deuxième, troisième et quatrième ensembles de coefficients quantifiés, une étape de classification des coefficients en fonction du résultat de l’étape de transformée en ondelette discrète inverse et
les étapes de codage arithmétique étant configurées pour encoder les deuxième, troisième et quatrième ensembles classifiés.
Ces modes de réalisation permettent d’obtenir un gain d’efficacité de compression. En effet, il y a alors deux phases itératives, l’une de décomposition en ondelettes, puis une phase de reconstruction équivalente à celle que va faire le décodeur, afin de pouvoir classifier avec les mêmes informations que celles dont disposera le décodeur, puisque les quantifications successives font qu’on ne peut pas savoir à l’avance quels seront les coefficients du premier groupe pour le décodeur.
Dans des modes de réalisation, le procédé objet de la présente invention comporte, en amont de l’étape de transformée en ondelettes, une étape de conversion d’espace colorimétrique et d’indexation des couleurs de chaque composant.
L’avantage de ces modes de réalisation provient du fait que l’espace de départ étant généralement le RVB (pour « Rouge Vert Bleu »), il y a une forte corrélation entre les valeurs dans les composantes, puisqu’une variation de luminosité induit une variation proportionnelle dans rouge, de vert et de bleu. Ainsi, changer l’espace pour que celui-ci s’apparente à la luminosité d’une part et de deux composantes qui définissent la couleur d’autre part réduit le nombre de valeurs à traiter.
Dans des modes de réalisation, le procédé objet de la présente invention comporte, en amont de l’étape d’enregistrement du premier ensemble quantifié, une étape de prédiction de pixel dans le premier ensemble quantifié.
Ces modes de réalisation permettent de limiter le nombre de bits en amont de la compression en ne comprimant qu’une valeur d’écart par rapport à une prédiction, par nature minime au regard de la valeur à encoder.
La prédiction de pixel utilise les pixels (ou coefficients) voisins connus par le décodeur (afin qu’il puisse faire la même prédiction) pour prédire le pixel courant.
On n’encode ensuite que la différence par rapport à la prédiction.
Ce faisant, on augmente très fortement la quantité et donc la probabilité des valeurs proches ou égales à zéro, et on diminue la quantité et donc la probabilité des valeurs plus éloignées.
Si on était capable de prédire exactement chaque pixel à 1 près, on aurait juste à encoder, hormis pour le premier pixel, 0 ou 1 au lieu d’une multitude de valeurs. Un encodeur arithmétique, positionné en amont, fonctionnant très bien pour des valeurs dont l’apparition est très probable.
Dans des modes de réalisation, le procédé objet de la présente invention comporte, en amont d’une étape d’enregistrement, une étape de réarrangement des données à enregistrer.
Une telle étape consiste en le réarrangement des coefficients à encoder pour maximiser la longueur des chaines de coefficients nuls qui sont encodés par groupe.
Préférentiellement, un réarrangement en W est utilisé. Un tel réarrangement arrange les coefficients pour un groupe de lignes, avant de changer de colonne, puis à nouveau un groupe de lignes.
Ces modes de réalisation permettent de limiter la taille des données enregistrées.
Dans des modes de réalisation, le procédé objet de la présente invention comporte une étape de décodage d’un fichier informatique de type image encodé selon un procédé d’encodage, qui comporte :
- une étape de décodage d’un premier, deuxième, troisième et quatrième ensemble de coefficients d’ondelette et
- une étape de transformée en ondelette discrète inverse pour fournir une image.
Les avantages, buts et inconvénients du procédé de décodage objet de la présente invention étant similaires à ceux du procédé objet de la présente invention, ils ne sont pas rappelés ici.
Selon un deuxième aspect, la présente invention vise un format de fichier d’image obtenu par la mise en œuvre du procédé objet de la présente invention, qui comporte :
- un ensemble de paquets de données représentatifs, chacun, d’un ensemble indépendant de coefficients obtenus par transformée en ondelette discrète, chaque dit paquet étant encodé arithmétiquement,
- au moins une valeur de décalage à appliquer pour lire sélectivement un dit paquet de données.
Les avantages, buts et inconvénients du format objet de la présente invention étant similaires à ceux du procédé d’encodage objet de la présente invention, ils ne sont pas rappelés ici.
D’autres avantages, buts et caractéristiques particulières de l’invention ressortiront de la description non limitative qui suit d’au moins un mode de réalisation particulier des procédés et du format objets de la présente invention, en regard des dessins annexés, dans lesquels :
représente, schématiquement, et sous forme d’un logigramme, une succession d’étapes particulière d’une étape d’encodage du procédé objet de la présente invention,
représente, schématiquement, et sous forme d’un logigramme, une succession d’étapes particulière d’une étape de décodage du procédé objet de la présente invention
représente, schématiquement, une image décomposée en ondelettes de premier ordre,
représente, schématiquement, une image décomposée en ondelettes de deuxième ordre,
représente, schématiquement, une image décomposée en ondelettes de troisième ordre,
représente un exemple image décomposée en ondelettes de troisième ordre,
représente un exemple de trame obtenu par le procédé d’encodage objet de la présente invention et
représente, schématiquement et sous forme d’un logigramme, une succession d’étapes particulière du procédé objet de la présente invention.
DESCRIPTION DE MODE DE RÉALISATION DE L’INVENTION
La présente description est donnée à titre non limitatif, chaque caractéristique d’un mode de réalisation pouvant être combinée à toute autre caractéristique de tout autre mode de réalisation de manière avantageuse.
On note dès à présent que les figures ne sont pas à l’échelle.
On observe, sur la figure 8, schématiquement, un mode de réalisation particulier du procédé 500 objet de la présente invention. Ce procédé 500 de fourniture d’un contenu comportant au moins une image, comporte :
- une étape 505 d’hébergement, dans une mémoire informatique, d’un fichier informatique représentatif d’au moins un élément graphique d’au moins une image, dit « fichier permanent », ledit fichier stockant, dans une trame unique, au moins deux paquets distincts représentatifs d’un même élément graphique, chaque dit paquet étant représentatif de l’élément graphique selon une résolution d’image différente,
- une étape 510 d’émission, par un équipement informatique, d’une requête de réception d’un fichier informatique temporaire, ladite requête comportant au moins une valeur de résolution et/ou au moins un identifiant d’élément graphique à inclure dans le fichier temporaire,
- une étape 515 de génération, d’un fichier informatique temporaire à partir du fichier permanent en fonction d’au moins une valeur de résolution et/ou au moins un identifiant d’élément graphique comportée dans la requête de réception, ladite étape de génération comportant :
- une étape 520 de duplication sélective d’au moins un paquet, en fonction d’au moins une valeur de résolution et/ou au moins un identifiant d’élément graphique comportée dans la requête de réception, dans le fichier temporaire,
- une étape 525 de création d’une information d’en-tête du fichier temporaire en fonction des données dupliquées et
- une étape 530 de fourniture du fichier temporaire à l’équipement informatique émetteur de la requête de réception.
L’étape 505 d’hébergement est réalisée, par exemple, par la mise en œuvre d’un serveur informatique accessible sur un réseau de données de type internet.
On appelle ici « fichier permanent » un fichier à partir duquel au moins un fichier temporaire peut être généré par duplication sélective d’au moins une partie des données du fichier permanent. Un « fichier temporaire » désigne un fichier à durée de vie courte, c’est-à-dire configuré pour être lu puis supprimé dans un délai généralement plus court que le délai d’utilisation puis suppression d’un fichier permanent.
Un « fichier temporaire » est ainsi stocké, préférentiellement, dans une mémoire de type cache ou vive d’un équipement informatique tandis qu’un « fichier permanent » est préférentiellement stocké dans la mémoire de stockage de l’équipement informatique.
Un tel fichier temporaire peut être généré par une étape 100 d’encodage telle que décrite en regard de la figure 1.
L’étape 510 d’émission est réalisée, par exemple, par un moyen de communication de l’équipement informatique à destination de l’unité informatique à laquelle appartient la mémoire informatique. Un tel moyen de communication peut être une carte réseau permettant l’accès à un serveur informatique associé à la mémoire informatique.
Par « équipement informatique », on entend tout équipement susceptible d’utiliser un fichier temporaire généré par le procédé 500. Cet équipement informatique peut être de type terminal ou nœud de réseau, selon les usages.
La requête fournie présente au moins une valeur de résolution et/ou au moins un identifiant d’élément graphique à inclure dans le fichier temporaire. Une valeur de résolution peut consister, par exemple, en un indicateur de résolution tandis que l’élément peut correspondre, par exemple, à un indicateur désignant un ensemble graphique de l’image indépendant d’autres ensembles graphiques, tel par exemple un personnage présent sur une couche de l’image.
L’étape 515 de génération est réalisée, par exemple, par la mise en œuvre d’un dispositif électronique de calcul configuré pour réaliser les étapes 520 de duplication sélective et de création 525.
L’étape 520 de duplication est réalisée, par exemple, par la mise en œuvre d’un dispositif électronique de calcul configuré pour sélectionner tout ou partie des paquets représentatifs d’un élément graphique prédéterminé ou déterminé en fonction de l’identifiant d’élément graphique contenu dans la requête.
Chaque paquet peut être sélectionné en fonction d’un identifiant de paquet associé, dans un en-tête du fichier permanent, à une balise dans la trame de données.
Dans des variantes préférentielles, le fichier permanent comporte une information d’en-tête comportant au moins une valeur de décalage d’octet entre deux paquets représentatif de l’élément graphique selon une résolution d’image différente, le procédé comportant, de plus, une étape 519 de conversion d’une valeur de résolution de la requête émise par l’équipement informatique en une valeur de décalage d’octet dans la trame, ladite valeur de décalage étant mise en œuvre au cours de l’étape 520 de duplication sélective.
L’étape 519 de conversion est réalisée, par exemple, par la mise en œuvre d’un dispositif électronique de calcul configuré pour exécuter un programme informatique associant, à chaque paquet, une position en nombre de bits dans la trame de données correspondant au début du paquet à dupliquer permettant une lecture puis une copie lors de l’étape 520 de duplication sélective.
L’étape 525 de création est réalisée, par exemple, par la mise en œuvre d’un dispositif électronique de calcul configuré pour formater un fichier selon une typologie de trame déterminée en incluant notamment chaque paquet dupliqué.
L’étape 530 d’émission est réalisée, par exemple, par un moyen de communication associé à la mémoire informatique configuré pour émettre le fichier temporaire à destination de l’équipement informatique.
Dans des modes de réalisation, le procédé 500 comporte une étape 300 de décodage, telle que décrite en regard de la figure 2, du fichier temporaire par l’équipement informatique.
Dans des modes de réalisation, le procédé 500 comporte une étape 535 de lecture, ou d’affichage dont l’exécution dépend des modalités de lecture ou d’affichage. Une telle étape 535 de lecture met en œuvre, par exemple, un écran.
Dans des modes de réalisation, le procédé 500 comporte une étape 540 de suppression du fichier temporaire dans une mémoire vive ou cache stockant temporairement ledit fichier.
On observe, sur la figure 1, qui n’est pas à l’échelle, une vue schématique d’un mode de réalisation de l’étape 100 objet de la présente invention. Cette étape 100 d’encodage d’un fichier informatique de type image comporte :
- une étape 105 de transformée en ondelettes discrète de l’image pour produire :
- un premier ensemble 110 de coefficients d’ondelettes,
- un deuxième ensemble 115 de coefficients d’ondelettes,
- un troisième ensemble 120 de coefficients d’ondelettes et
- un quatrième ensemble 125 de coefficients d’ondelettes,
- pour chaque ensemble de coefficients, une étape, 130, 135, 140 et 150, de quantification des coefficients,
- une étape, 245, 250, 255 et 260, de codage arithmétique indépendante pour chacun des premier, deuxième, troisième et quatrième ensembles, 110, 115, 120 et 125, de coefficients quantifiés et
- une étape 172 d’enregistrement du premier ensemble encodé et
- une étape, 175, 180 et 185, d’enregistrement d’au moins un regroupement des deuxième, troisième et quatrième ensembles, 115, 120 et 125, encodés dans des paquets de données indépendants d’une trame de données unique, formant avec le premier ensemble enregistré un dit « fichier permanent », chaque ensemble encodé étant associé dans la trame à une valeur de décalage à appliquer lors de la lecture de la trame pour décoder sélectivement un ensemble de coefficients.
Chaque regroupement de deuxième, troisième et quatrième ensembles, 115, 120 et 125, de coefficients est ici obtenu par la mise en œuvre d’itération successives de transformée en ondelettes. Dit autrement, un même fichier permanent comporte un seul premier ensemble 110 invariable quel que soit le nombre de regroupements, et au moins un regroupement de deuxième, troisième et quatrième ensembles, 115, 120 et 125, de coefficients. Une trame peut ainsi être constitue d’en ensemble d’octets représentatifs du premier ensemble 110, puis d’un premier ensemble d’octets représentatifs d’un premier regroupement de deuxième, troisième et quatrième ensembles, 115, 120 et 125, de coefficients puis d’un deuxième ensemble d’octets représentatifs d’un premier regroupement de deuxième, troisième et quatrième ensembles, 115, 120 et 125. Chaque regroupement est associé à une valeur de décalage d’octets par rapport au premier ensemble 110 pour une lecture simple et rapide.
En entrée, l’image peut être de tout type généré par un programme informatique de création ou de traitement d’images.
Dans des modes de réalisation particuliers, le procédé 500 comporte, en amont de l’étape 105 de transformée en ondelettes, une étape 210 de transformation de l’image en une pluralité de composantes, chaque composante étant fournie à l’étape de transformée en ondelettes.
On appelle « composante », généralement au départ défini par des valeurs chromatiques de rouge (R), vert (V) et bleu (B) et potentiellement transparence (A), puis, après transformation, la luminosité, les composantes définissant la couleur (habituellement, on note Y Cb et Cr), et toujours la transparence laissée inchangée.
L’étape de transformation 210 est par exemple mise en œuvre par un circuit électronique exécutant un programme informatique de transformation de l’image en une pluralité de composantes.
Dans des modes de réalisation particuliers, le procédé 500 comporte, en amont de l’étape 105 de transformée en ondelettes, une étape 215 de conversion d’espace colorimétrique et d’indexation des couleurs de chaque composant.
L’étape de conversion 215 est par exemple mise en œuvre par un circuit électronique exécutant un programme informatique de conversion d’espace colorimétrique et/ou d’indexation des couleurs. Un tel programme est par exemple configuré pour convertir l’image d’un format RVB (pour « Rouge Vert Bleu ») en format YUV.
L’étape 105 de transformée en ondelettes discrète est réalisée, par exemple, par un circuit électronique exécutant un programme informatique configuré pour produire :
- le premier ensemble 110 de coefficients d’ondelettes,
- le deuxième ensemble 115 de coefficients d’ondelettes,
- le troisième ensemble 120 de coefficients d’ondelettes et
- le quatrième ensemble 125 de coefficients d’ondelettes.
On rappelle qu’une image est représentée sous la forme d'un tableau bidimensionnel de coefficients, chaque coefficient représentant le niveau de luminosité du point correspondant. Lorsque l'on regarde d'un point de vue plus élevé, on ne peut pas faire la différence entre les coefficients les plus importants et les moins importants. La plupart des images naturelles ont des variations de couleurs lisses, les détails fins étant représentés par des bords nets entre les variations lisses. Techniquement, les variations lisses de couleur peuvent être qualifiées de variations de basse fréquence et les variations brusques de hautes fréquences.
Les composantes de basse fréquence (variations lisses) constituent la base d'une image, et les composantes de haute fréquence (les bords qui donnent le détail) s'y ajoutent pour affiner l'image, donnant ainsi une image détaillée. Par conséquent, les variations lisses exigent plus d'importance que les détails.
Pour séparer les variations lisses des détails d’une image, une transformée en ondelettes discrète peut être utilisée.
Une transformée en ondelettes discrète fonctionne ainsi : un filtre passe-bas et un filtre passe-haut sont choisis de telle sorte qu'ils réduisent exactement de moitié la gamme de fréquences entre eux. Cette paire de filtres est appelée la paire de filtres d'analyse. Tout d'abord, le filtre passe-bas est appliqué pour chaque rangée de données, ce qui permet d'obtenir les composantes basse fréquence de la rangée. Mais comme le filtre passe-bas est un filtre à demi-bande, les données de sortie ne contiennent que des fréquences dans la première moitié de la gamme de fréquences originale. Ainsi, selon le théorème d'échantillonnage de Shannon, ils peuvent être sous-échantillonnés en deux, de sorte que les données de sortie ne contiennent plus que la moitié du nombre original d'échantillons. Le filtre passe-haut est appliqué pour la même rangée de données, et de même les composants passe-haut sont séparés et placés sur le côté des composants passe-bas. Cette procédure s'applique à toutes les lignes.
Ensuite, le filtrage est effectué pour chaque colonne des données intermédiaires. Le tableau bidimensionnel de coefficients qui en résulte contient quatre bandes de données, chacune étiquetée LL (bas-bas) 110, HL (haut-bas) 115, LH (bas-haut) 120 et HH (haut-haut) 125. La bande LL 110 peut être décomposée à nouveau de la même manière, produisant ainsi encore plus de sous-bandes. Ceci peut être fait jusqu'à n'importe quel niveau, résultant ainsi en une décomposition pyramidale comme indiqué en figures 3, 4, 5 et 6.
Les étapes de quantification, 130, 135, 140 et 150, sont par exemple mises en œuvre par un circuit électronique exécutant un programme informatique de quantification.
On appelle « quantification » le processus d'approximation de l'ensemble continu de valeurs dans les données d'image avec un ensemble fini (de préférence petit) de valeurs. Les données d'entrée d'un quantificateur sont les données d'origine, et la sortie est toujours un parmi un nombre fini de niveaux. La quantification est une fonction dont l'ensemble des valeurs de sortie sont discrètes et généralement finies. Évidemment, il s'agit d'un processus d'approximation, et une bonne quantification est une quantification qui représente le signal original avec une perte ou une distorsion minimale.
Il existe deux types de quantification : la quantification scalaire et la quantification vectorielle. Dans la quantification scalaire, chaque symbole d'entrée est traité séparément dans la production de la sortie, tandis que dans la quantification vectorielle, les symboles d'entrée sont regroupés en groupes appelés vecteurs, et traités pour donner la sortie. Ce regroupement des données et leur traitement en une seule unité augmente l'optimalité du quantificateur vectoriel, mais au prix d'une complexité de calcul accrue. Dans des variantes, les coefficients dont la valeur est inférieure à une valeur limite déterminée peuvent être annulés, c’est-à-dire mis à 0.
L’ensemble des étapes, 245, 250, 255, 260, d’encodage sont réalisées, par exemple, par la mise en œuvre d’un circuit électronique configuré pour exécuter un programme informatique d’encodage d’informations.
On rappelle que le codage arithmétique est un code à longueur variable, c'est-à-dire qu'un symbole de taille fixe (en bits) sera codé par un nombre variable de bits, de préférence inférieur ou égal à sa taille originale. On ne modifie donc pas la densité de symboles, mais leur codage afin de réduire l'espace qu'ils occupent.
Ce qui différencie le codage arithmétique des autres codages sources est qu'il code le message par morceaux (théoriquement il peut coder un message entier de taille quelconque, mais dans la pratique on ne peut coder que des morceaux d'une quinzaine de symboles en moyenne) et représente chacun de ces morceaux par un nombre n (flottant) là où Huffman code chaque symbole par un code précis. Le problème qui en résulte pour le codage Huffman est qu'un caractère ayant une probabilité très forte d'apparition sera codé sur au moins un bit. Par exemple, si on cherche à coder un caractère représenté à 90 %, la taille optimale du code du caractère sera de 0,15 bit alors que Huffman codera ce symbole sur au moins 1 bit, soit six fois plus. C'est cette lacune que le codage arithmétique comble grâce à un algorithme proche du codage par intervalle.
Dans des variantes préférentielles, au moins une des étapes, 245, 250, 255 et 260, met en œuvre un système à double table engendré par au moins une étape de classification, 160, 165, 170, correspondante.
Dans des variantes, le procédé 500 comporte au moins une étape de transformation finale, telle :
- une première étape de transformation consistant à amalgamer les chaînes de zéros (dont la taille est supérieure à un paramètre « p » généralement fixé à 6) pour produire le groupe [0, n-p] où « n » est le nombre de zéros consécutifs. On encode alors sans autre modification le 0, puis :
- si n-p < 128 on encode n-p,
- sinon, tant que n-p > 127, on encode la valeur 128+((n-p)&127), ce qui correspond aux sept bits de poids faible de (n-p) auxquels on fixe le huitième bit à 1, puis on divise (n-p) par 128 (pour considérer les sept bits suivants).
- une deuxième étape de transformation s’applique aux coefficients > 125. On les transforme en le groupe [254, n-126] où n est la valeur du coefficient. Par le même procédé que pour les 0, on encode n-126 par groupe de sept bits.
- une troisième étape de transformation s’applique aux coefficients < -127. On les transforme en le groupe [1, -n-127] où -n-127 est encodé de la même façon que précédemment.
- une quatrième étape de transformation correspond à la translation de tous les autres coefficients (-126 à 125) de +128 (2 à 253).
- enfin, la valeur 255 est réservée pour signaler un redémarrage du codage, afin de pouvoir séparer le flux en blocs « indépendants » (c’est à dire pouvant être décodés individuellement), pour augmenter la résilience aux erreurs.
L’ensemble des étapes, 172, 175, 180 et 185, d’enregistrement est, par exemple, réalisée par la mise en œuvre par un circuit électronique configuré pour enregistrer sur une mémoire les données à enregistrer. La nature de la mémoire varie selon l’usage souhaité des données.
Dans des modes de réalisation particuliers, l’étape 105 de transformée en ondelettes est itérative, chaque itération formant un ensemble de coefficients d’un ordre supérieur, les itérations ultérieures à la première utilisant en guise d’image le premier ensemble de coefficients ou l’image initiale, au moins un ensemble de coefficients obtenu pour une itération déterminée étant enregistré dans un paquet de données indépendant et associé à une valeur de décalage.
Dans des modes de réalisation particuliers, le procédé 500 comporte, en aval de l’étape 105 de transformée en ondelettes et des étapes, 130, 135 et 140, de quantification des deuxième, troisième et quatrième ensembles de coefficients et en amont de l’étape 150 de quantification du premier ensemble de coefficients, une étape 145 de compensation du premier ensemble en fonction des deuxième, troisième et troisième ensembles quantifiés.
L’étape 150 de compensation est par exemple mise en œuvre par un circuit électronique exécutant un programme informatique de compensation.
L’objectif de cette étape 150 de compensation est de réduire le taux d’erreurs contenu dans le premier ensemble 110.
La compensation consiste en les étapes suivantes, par exemple :
- transformation en ondelettes de l’image ou du 1er ensemble de coefficients de l’itération précédente,
- quantification, 130, 135, 140, des coefficients des deuxième, 115, troisième, 120, et quatrièmes, 125, ensembles de coefficients,
- déquantification des coefficients des deuxième, 115, troisième, 120, et quatrièmes, 125, ensembles de coefficients,
- transformation en ondelettes inverse des coefficients des deuxième, 115, troisième, 120, et quatrièmes, 125, ensembles de coefficients,
- ajout de la différence entre les données originelles et les données reconstruites aux données originelles,
- transformation en ondelettes du résultat précédent (origine + différence),
- les coefficients du premier ensemble de coefficients obtenus sont utilisés en lieu et place des coefficients initialement calculés, et les coefficients des deuxième, 115, troisième, 120, et quatrièmes, 125, ensembles de coefficients ne sont pas utilisés.
Dans des modes de réalisation particuliers, le procédé 500 comporte :
- une étape 155 de déquantification du premier ensemble compensé,
- pour chaque deuxième, troisième et quatrième ensembles quantifiés d’un ordre déterminé, une étape de déquantification 190, 195, 200 dudit deuxième, troisième et quatrième ensembles quantifiés,
- une étape supplémentaire de transformée 205 en ondelette discrète inverse en fonction dudit deuxième, troisième et quatrième ensembles déquantifiés et du premier ensemble compensé déquantifié,
- pour chaque deuxième, troisième et quatrième ensembles de coefficients quantifiés, une étape de classification 160, 165, 170 des coefficients en fonction du résultat de l’étape de transformée en ondelette discrète inverse et
les étapes 245, 250, 255, 260 de codage arithmétique étant configurées pour encoder les deuxième, troisième et quatrième ensembles classifiés.
Les étapes de classification, 160, 165 et 170, sont par exemple mises en œuvre par un circuit électronique exécutant un programme informatique de classification des données.
La classification, 160, 165 et 170, consiste à estimer à partir des coefficients du premier ensemble lesquels des coefficients des deuxième, troisième et quatrième ensemble seront « grands », afin de former deux classes.
Ceci est rendu possible par le fait qu’il y a un certain degré de corrélation entre le premier ensemble et les trois autres ensembles.
La base de l’encodage arithmétique étant la probabilité d’apparition d’une valeur, le fait de pouvoir prédire (sans trop se tromper statistiquement) qu’elle va être « grande » permet plus de compression en assignant moins de bits à la plus probable des « grandes » valeurs qu’il lui en aurait été assignés sans séparation.
Pour clarifier, la distribution des valeurs des coefficients forme une cloche (gaussienne) autour de 0. Donc si on veut encoder la valeur 4, elle aura forcément plus de bits assignés que les valeurs de 0 à 3. Mais si l’on peut prédire que la valeur sera probablement supérieure ou égal à 4, alors 4 pourra avoir aussi peu de bits dans ce deuxième espace que 0 dans le premier, 5 aussi peu que 1, etc. Et même si 4 est moins probable que 1, 2 et 3, il peut être relativement fréquent quand même, donc la compression est plus efficace, à condition de ne pas trop se tromper. Ici, donc, « grand » forme une première classe, ou un premier espace, et « pas grand » forme une deuxième classe ou un deuxième espace.
Dans des modes de réalisation particuliers, les étapes de transformée 105 en ondelettes, de quantification, 130, 135 et 140, des deuxième, troisième et quatrième ensemble de coefficients et de compensation 145 sont itératives, chaque itération formant un ensemble de produits d’un ordre supérieur, le premier ensemble compensé pouvant être substitué au composant en amont d’une étape ultérieure de transformée 105 en ondelettes, le premier ensemble compensé de l’ordre le plus élevé étant fourni à l’étape 150 de quantification du premier ensemble compensé.
Le caractère itératif est ici à comprendre au sens d’itération de la succession d’étapes formées par les étapes de transformée 105 en ondelettes, de quantification, 130, 135 et 140, des deuxième, troisième et quatrième ensembles de coefficients et de compensation 145.
À chaque itération, un deuxième, troisième et quatrième ensemble de coefficients d’un ordre déterminé (ordre 1 pour la première itération, ordre 2 pour la deuxième et ainsi de suite) est produit et enregistré au cours des étapes, 175, 180 et 185, d’enregistrement.
Toutefois, quel que soit l’ordre des deuxième, troisième et quatrième ensembles de coefficients, leur classification, 160, 165 et 170, est réalisée en fonction du premier ensemble de coefficients d’ordre le plus élevé.
Dans des modes de réalisation particuliers, le procédé 500 comporte une étape 270 de bypasse des étapes de transformée 105 en ondelettes, de quantification, 130, 135 et 140, des deuxième, troisième et quatrième ensembles de coefficients et de compensation 145. Cette étape 270 est déclenchée, par exemple, par une valeur de paramètre spécifiant un critère de bypasse. En pareil cas, le flux de données est fourni à l’étape 150 de quantification.
Dans des modes de réalisation particuliers, le procédé 500 comporte une étape 270 d’arrêt des itérations en fonction d’un critère d’arrêt prédéterminé. Par exemple, un nombre d’itérations peut être spécifié et, lorsque ce nombre d’itérations a eu lieu, le flux de données est fourni à l’étape 150 de quantification.
Les données en sortie de l’étape 150 de quantification sont sauvegardées au cours de l’étape 172 d’enregistrement.
Dans des modes de réalisation particuliers, le procédé 500 comporte, en amont de l’étape d’enregistrement du premier ensemble quantifié, une étape de prédiction 220 de pixel dans le premier ensemble quantifié. Une telle étape est décrite, par exemple, dans le document US 9,628,806, publié le 18 avril 2017.
Dans des modes de réalisation particuliers, le procédé 500 comporte, en amont d’une étape, 172, 175, 180 et/ou 185, d’enregistrement, une étape, 225, 230, 235 et/ou 240, de réarrangement des données à enregistrer.
Dans des modes de réalisation particuliers, le procédé 500 comporte, en amont d’une étape, 172, 175, 180 et/ou 185, d’enregistrement, une étape, 245, 250, 255 et/ou 260, de codage arithmétique des données à enregistrer.
Les données en sortie de l’étape 150 de quantification sont, de plus, déquantifiées au cours de l’étape 155 de déquantification.
L’étape de quantification 155 est par exemple mise en œuvre par un circuit électronique exécutant un programme informatique de déquantification.
De la même manière qu'une étape de quantification partitionne ses niveaux d'entrée et de sortie, une étape de déquantification reçoit les niveaux de sortie d'une étape de quantification et les convertit en données normales, en traduisant chaque niveau en un "point de reproduction" dans la plage réelle des données. Il ressort de la littérature que le quantificateur (codeur) et le déquantificateur (décodeur) optimaux doivent remplir les conditions suivantes :
Compte tenu des niveaux de sortie ou des partitions du codeur, le meilleur décodeur est celui qui place les points de reproduction sur les centres de masse des partitions. C'est ce qu'on appelle la condition centroïde.
Compte tenu des points de reproduction du décodeur, le meilleur codeur est celui qui place les limites des partitions exactement au milieu des points de reproduction, c'est-à-dire que chaque valeur est traduite à son point de reproduction le plus proche. C'est ce qu'on appelle la condition du plus proche voisin.
L’étape 205 de transformée en ondelette discrète inverse est réalisée, par exemple, par la mise en œuvre d’un circuit électronique configuré pour exécuter un programme informatique de calcul d’une transformée en ondelette discrète inverse à partir d’ensembles de coefficients déterminés.
On observe, sur la figure 2, qui n’est pas à l’échelle, une vue schématique d’un mode de réalisation du procédé 300 objet de la présente invention. Ce procédé 300
de décodage d’un fichier informatique de type image encodé selon un procédé tel que décrit en regard de la figure 1, comporte :
- une étape, 305, 310, 315 et 320, de déquantification d’un premier, deuxième, troisième et quatrième ensemble de coefficients d’ondelette et
- une étape 325 de transformée en ondelette discrète inverse pour fournir une image.
Chaque étape, 305, 310, 315 et 320, de déquantification fonctionne de manière similaire aux étapes, 155, 190, 195 et 200, de déquantification telles que décrites en regard de la figure 1.
L’étape 325 de transformée en ondelette discrète inverse fonctionne de manière similaire à l’étape 205 de transformée en ondelette discrète inverse telle que décrite en regard de la figure 1.
Dans des modes de réalisation particuliers, chaque étape, 310, 315 et 320, de déquantification des deuxième, troisième et quatrième ensembles et l’étape de transformée 325 inverse sont itératives et chaque étape de déquantification des deuxième, troisième et quatrième ensembles réalisée en fonction du premier ensemble déquantifié et/ou du résultat de l’étape de transformée en ondelette discrète inverse précédente.
Ces modes de réalisation permettent, à chaque itération de l’ensemble d’étapes, 305, 310, 315 et 320, de déquantification et de transformée 325 inverse de régénérer une image d’un ordre inférieur, jusqu’à atteindre l’image originale.
Dans des modes de réalisation particuliers, le procédé 300 comporte, en amont d’une étape, 305, 310, 315 et 320, de déquantification, une étape, 330, 380, 385 et 390, de décodage arithmétique des données à déquantifier.
Chaque étape, 330, 380, 385 et 390, de décodage est réalisée, par exemple, par la mise en œuvre d’un dispositif électronique de calcul configuré pour exécuter un programme informatique de décodage arithmétique.
Dans des modes de réalisation particuliers, le procédé 300 comporte, en amont d’une étape, 305, 310, 315 et 320, de déquantification, une étape, 335, 365, 370 et 375, de réarrangement inversé des données à déquantifier.
Cette étape, 335, 365, 370 et 375, fonctionne de manière inversée par rapport aux étapes d’arrangement décrites précédemment. Cette étape, 335, 365, 370 et 375, consiste à réordonner les coefficients en colonne.
Dans des variantes, un réarrangement post-classification peut avoir lieu dans le décodage, sans être une erreur. Il s’agit de réorganiser les données de classes dans le même ordre que celui des coefficients implicitement contenus dans le fichier, le décodeur devant utiliser la bonne table de probabilité pour décoder un coefficient.
Chaque étape, 335, 365, 370 et 375, est réalisée, par exemple, par la mise en œuvre d’un dispositif électronique de calcul configuré pour exécuter un programme informatique de réarrangement de données.
Dans des modes de réalisation particuliers, le procédé 300 comporte, en amont de l’étape 305 de déquantification, une étape de prédiction 340 de pixel inverse des données à déquantifier.
Cette étape 340 de prédiction de pixel inverse consiste à générer un pixel à partir de la prédiction et de la différence (qui est ce qui a été transmis dans le fichier) prédite.
Cette étape 340 de prédiction de pixel inverse est réalisée, par exemple, par un dispositif électronique de calcul configuré pour exécuter un programme informatique de prédiction de pixel inverse.
Dans des modes de réalisation particuliers, le procédé 300 comporte, en amont d’une étape, 310, 315 et 320, de déquantification, une étape de classification, 350, 355 et 360, des données.
Cette étape de classification, 350, 355 et 360, est identique à celle réalisée durant l’encodage, le but étant de connaître la classe du coefficient à décoder dans le décodeur arithmétique, afin de savoir quelle table de probabilité doit être utilisée pour ce faire.
Dans des modes de réalisation particuliers, le procédé 300 comporte une étape 420 de bypasse d’une itération des étapes, 305, 310, 315 et 320, de déquantification et de transformée 325 inverse.
Dans des modes de réalisation particuliers, le procédé 300 comporte une étape 420 d’arrêt des itérations en fonction d’un critère d’arrêt prédéterminé. Par exemple, un nombre d’itérations peut être spécifié.
Dans des modes de réalisation particuliers, le procédé 300 comporte une étape 415 de conversion de conversion d’espace colorimétrique et/ou de désindexation des couleurs de chaque composant.
Les étapes de transformée en ondelettes 105, de compensation 145, de prédiction de pixels 220, ainsi que les étapes de réarrangement 225 ou de classification, 160, 165 et 170, sont toutes des outils applicables ou non, selon qu’ils apportent un gain en compression ou un avantage technique particulier (comme l’affichage progressif).
L’utilisation itérative d’étapes 105 de transformée en ondelette est très indiquée pour une compression de photos avec pertes, voire nécessaire si l’on souhaite un affichage progressif.
La prédiction de pixels 220 est généralement appliquée sans transformée en ondelettes pour la compression d’images synthétiques, ou sur le premier ensemble de coefficients 110 issu de la dernière itération de l’étape 105 de transformée en ondelettes.
Dans des variantes, il est possible d’ajouter une couche corrective appliquée après le décodage d’une couche d’ondelettes, et celle-ci est aussi potentiellement transformée par l’étape 220 de prédiction de pixel, bien que ce soit le plus souvent sans qu’on obtienne la meilleure compression. L’utilité de cette couche corrective est de permettre de rajouter de la qualité à partir d’un ordre de transformée d’ondelettes choisi lorsque les couches plus petites ont été altérées (volontairement). Ainsi, on peut imaginer transmettre un image compressée avec pertes, et optionnellement transmettre la dernière couche de correction pour obtenir une image sans perte.
Dans des variantes, la classification apporte un gain en compression, mais induit une dépendance forte entre l’encodage des coefficients des deuxième, troisième et quatrième ensembles et les coefficients du premier ensemble. Ce qui fait qu’en cas d’erreur de transmission, les coefficients du premier ensemble étant altérés, il n’est plus possible de décoder les coefficients des 2e, 3e et 4e ensemble. C’est pourquoi cette classification peut être désactivée en cas de nécessité de résilience (par exemple transfert depuis une sonde spatiale).

Claims (10)

  1. Procédé (500) de fourniture d’un contenu comportant au moins une image, caractérisé en ce qu’il comporte :
    - une étape (505) d’hébergement, dans une mémoire informatique, d’un fichier informatique représentatif d’au moins un élément graphique d’au moins une image, dit « fichier permanent », ledit fichier stockant, dans une trame unique, au moins deux paquets distincts représentatifs d’un même élément graphique, chaque dit paquet étant représentatif de l’élément graphique selon une résolution d’image différente,
    - une étape (510) d’émission, par un équipement informatique, d’une requête de réception d’un fichier informatique temporaire, ladite requête comportant au moins une valeur de résolution et/ou au moins un identifiant d’élément graphique à inclure dans le fichier temporaire,
    - une étape (515) de génération, d’un fichier informatique temporaire à partir du fichier permanent en fonction d’au moins une valeur de résolution et/ou au moins un identifiant d’élément graphique comportée dans la requête de réception, ladite étape de génération comportant :
    - une étape (520) de duplication sélective d’au moins un paquet, en fonction d’au moins une valeur de résolution et/ou au moins un identifiant d’élément graphique comportée dans la requête de réception, dans le fichier temporaire,
    - une étape (525) de création d’une information d’en-tête du fichier temporaire en fonction des données dupliquées et
    - une étape (530) de fourniture du fichier temporaire à l’équipement informatique émetteur de la requête de réception.
  2. Procédé (500) selon la revendication 1, dans lequel le fichier permanent comporte une information d’en-tête comportant au moins une valeur de décalage d’octet entre deux paquets représentatif de l’élément graphique selon une résolution d’image différente, le procédé comportant, de plus, une étape (519) de conversion d’une valeur de résolution de la requête émise par l’équipement informatique en une valeur de décalage d’octet dans la trame, ladite valeur de décalage étant mise en œuvre au cours de l’étape (520) de duplication sélective.
  3. Procédé (500) selon l’une des revendications 1 ou 2, qui comporte, en amont de l’étape (505) d’hébergement, une étape (100) d’encodage comportant :
    - une étape (105) de transformée en ondelettes discrète d’au moins une image pour produire au moins un élément défini par :
    - un premier ensemble (110) de coefficients d’ondelettes,
    - un deuxième ensemble (115) de coefficients d’ondelettes,
    - un troisième ensemble (120) de coefficients d’ondelettes et
    - un quatrième ensemble (125) de coefficients d’ondelettes,
    - pour chaque ensemble de coefficients, une étape (130, 135, 140, 150) de quantification des coefficients,
    - une étape (245, 250, 255, 260) de codage arithmétique indépendante pour chacun des premier, deuxième, troisième et quatrième ensembles (110, 115, 120, 125) de coefficients quantifiés,
    - une étape (172) d’enregistrement du premier ensemble encodé et
    - une étape (175, 180, 185) d’enregistrement d’au moins un regroupement des deuxième, troisième et quatrième ensembles (115, 120, 125) encodés dans des paquets de données indépendants d’une trame de données unique, formant avec le premier ensemble enregistré un dit « fichier permanent », chaque ensemble encodé étant associé dans la trame à une valeur de décalage à appliquer lors de la lecture de la trame pour décoder sélectivement un ensemble de coefficients.
  4. Procédé (500) selon la revendication 3, dans lequel l’étape (105) de transformée en ondelettes est itérative, chaque itération formant un ensemble de coefficients d’un ordre supérieur, les itérations ultérieures à la première utilisant en guise d’image le premier ensemble de coefficients ou l’image initiale, au moins un ensemble de coefficients obtenu pour une itération déterminée étant enregistré dans un paquet de données indépendant et associé à une valeur de décalage.
  5. Procédé (500) selon l’une des revendications 3 ou 4, qui comporte, en aval de l’étape (105) de transformée en ondelettes et des étapes (130, 135, 140) de quantification des deuxième, troisième et quatrième ensembles de coefficients et en amont de l’étape (150) de quantification du premier ensemble de coefficients, une étape (145) de compensation du premier ensemble en fonction des deuxième, troisième et troisième ensembles quantifiés.
  6. Procédé (500) selon l’une des revendications 3 à 5, qui comporte :
    - une étape (155) de déquantification du premier ensemble compensé,
    - pour chaque deuxième, troisième et quatrième ensembles quantifiés d’un ordre déterminé, une étape de déquantification (190, 195, 200) dudit deuxième, troisième et quatrième ensembles quantifiés,
    - une étape supplémentaire de transformée (205) en ondelette discrète inverse en fonction dudit deuxième, troisième et quatrième ensembles déquantifiés et du premier ensemble compensé déquantifié,
    - pour chaque deuxième, troisième et quatrième ensembles de coefficients quantifiés, une étape de classification (160, 165, 170) des coefficients en fonction du résultat de l’étape de transformée en ondelette discrète inverse et
    les étapes (245, 250, 255, 260) de codage arithmétique étant configurées pour encoder les deuxième, troisième et quatrième ensembles classifiés.
  7. Procédé (500) selon l’une des revendications 3 à 6, qui comporte, en amont de l’étape (105) de transformée en ondelettes, une étape (215) de conversion d’espace colorimétrique et d’indexation des couleurs de chaque composant.
  8. Procédé (500) selon l’une des revendications 3 à 7, qui comporte, en amont de l’étape d’enregistrement du premier ensemble quantifié, une étape de prédiction (220) de pixel dans le premier ensemble quantifié.
  9. Procédé (500) selon l’une des revendications 3 à 8, qui comporte, en amont d’une étape (172, 175, 180, 185) d’enregistrement, une étape (225, 230, 235, 240) de réarrangement des données à enregistrer.
  10. Procédé (500) selon l'une des revendications 3 à 9, qui comporte une étape (300) de décodage d’un fichier informatique de type image encodé :
    - une étape (305, 310, 315, 320) de décodage d’un premier, deuxième, troisième et quatrième ensemble de coefficients d’ondelette et
    - une étape (325) de transformée en ondelette discrète inverse pour fournir une image.
FR1909186A 2019-08-13 2019-08-13 Procédé de fourniture d’un contenu comportant au moins une image, format de fichier Expired - Fee Related FR3099975B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR1909186A FR3099975B1 (fr) 2019-08-13 2019-08-13 Procédé de fourniture d’un contenu comportant au moins une image, format de fichier
EP20768276.6A EP4014494A1 (fr) 2019-08-13 2020-08-13 Procédé de fourniture d'un contenu comportant au moins une image, format de fichier
PCT/EP2020/072802 WO2021028550A1 (fr) 2019-08-13 2020-08-13 Procédé de fourniture d'un contenu comportant au moins une image, format de fichier

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1909186A FR3099975B1 (fr) 2019-08-13 2019-08-13 Procédé de fourniture d’un contenu comportant au moins une image, format de fichier
FR1909186 2019-08-13

Publications (2)

Publication Number Publication Date
FR3099975A1 true FR3099975A1 (fr) 2021-02-19
FR3099975B1 FR3099975B1 (fr) 2021-09-17

Family

ID=68281696

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1909186A Expired - Fee Related FR3099975B1 (fr) 2019-08-13 2019-08-13 Procédé de fourniture d’un contenu comportant au moins une image, format de fichier

Country Status (3)

Country Link
EP (1) EP4014494A1 (fr)
FR (1) FR3099975B1 (fr)
WO (1) WO2021028550A1 (fr)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0864135A1 (fr) * 1995-11-14 1998-09-16 The Regents Of The University Of California Stockage et extraction d'images numeriques de grandes dimensions
US6137914A (en) * 1995-11-08 2000-10-24 Storm Software, Inc. Method and format for storing and selectively retrieving image data
EP1494482A1 (fr) * 2003-07-01 2005-01-05 Eastman Kodak Company Procédé pour le transcodage d'une image comprimée par JPEG2000
US8213747B2 (en) * 2008-06-24 2012-07-03 Microsoft Corporation Variable resolution images
US9628806B2 (en) 2012-10-05 2017-04-18 Jean-Claude Colin Method of coding a matrix, in particular a matrix representative of a fixed or video image

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050175724A1 (en) 2002-04-08 2005-08-11 Vandenberg Grant W. Composition for modulating a physiological reaction or inducing an immune response

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6137914A (en) * 1995-11-08 2000-10-24 Storm Software, Inc. Method and format for storing and selectively retrieving image data
EP0864135A1 (fr) * 1995-11-14 1998-09-16 The Regents Of The University Of California Stockage et extraction d'images numeriques de grandes dimensions
EP1494482A1 (fr) * 2003-07-01 2005-01-05 Eastman Kodak Company Procédé pour le transcodage d'une image comprimée par JPEG2000
US8213747B2 (en) * 2008-06-24 2012-07-03 Microsoft Corporation Variable resolution images
US9628806B2 (en) 2012-10-05 2017-04-18 Jean-Claude Colin Method of coding a matrix, in particular a matrix representative of a fixed or video image

Also Published As

Publication number Publication date
WO2021028550A1 (fr) 2021-02-18
EP4014494A1 (fr) 2022-06-22
FR3099975B1 (fr) 2021-09-17

Similar Documents

Publication Publication Date Title
EP2991351B1 (fr) Procédé de décodage d&#39;images
WO2015059400A1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
CA2346342C (fr) Compression et codage de reseau maille tridimensionnel
EP4395316A2 (fr) Procédé de décodage d&#39;images, dispositif de décodage d&#39;images et programme d ordinateur correspondant
EP3479572A1 (fr) Procédé de codage intra d&#39;une image numérique et procédé de décodage correspondant
FR3099975A1 (fr) Procédé de fourniture d’un contenu comportant au moins une image, format de fichier
WO2022175419A1 (fr) Procédé de fourniture d&#39;un contenu comportant au moins une image, format de fichier
EP3941045A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
CN115361556A (zh) 一种基于自适应的高效视频压缩算法及其系统
WO2017129880A1 (fr) Procédé de codage et décodage de données, dispositif de codage et décodage de données et programmes d&#39;ordinateur correspondants
FR2842671A1 (fr) Compression de donnees numeriques robuste au bruit de transmission
Reddy et al. A novel approach of lossless image compression using hashing and Huffman coding
FR3143246A1 (fr) Procédé et dispositif de codage et décodage d’images.
FR2737823A1 (fr) Procede de codage de donnees numeriques representees par des vecteurs et procede de decodage des donnees codees selon ledit procede de codage
FR3103342A1 (fr) Procede et dispositif de compression d&#39;images numeriques et procede et dispositif de decompression associes
FR3143247A1 (fr) Procédé et dispositif de codage et décodage de séquences d’images.
FR3005816A1 (fr) Procede pour encoder, notamment des images compressees, notamment par &#34;range coder&#34; ou compression arithmetique.
FR3143248A1 (fr) Procédé et dispositif de codage et décodage d’images.
WO2006106356A1 (fr) Codage et decodage de signaux
WO2006108736A1 (fr) Procédé et dispositif de quantification progressive, procédé et dispositif de quantification inverse, programmes informatiques, signal et support de données correspondants
FR2842670A1 (fr) Perfectionnement a la compression de donnees numeriques
FR3086486A1 (fr) Procedes et dispositifs de codage et de decodage d&#39;un flux de donnees representatif d&#39;au moins une image.
FR2880744A1 (fr) Procede et dispositif de quantification progressive, procede et dispositif de decodage, programmes informatiques, signaux et supports de donnees correspondants
FR2795274A1 (fr) Codage et decodage de signal numerique, avec decomposition et sous bandes de frequence et segmentation
FR2905539A1 (fr) Procede et dispositif de codage de signaux numeriques multidimensionnels

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20210219

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

ST Notification of lapse

Effective date: 20240405