FR 3049799 A1 20171006 FR 1600516 A 20160329 - 1 - La présente invention concerne l'utilisation de méthodes de compression unidimensionnelles (1D) pour compresser efficacement certaines images, séquences d'images et vidéos, en utilisant la transformation de Fourier rapide (FFT ou Fast Fourier 5 Transform en Anglais) bidimensionnelle (2D) ou unidimensionnelle (1D). Les méthodes les plus répandues actuellement pour compresser les images utilisent des méthodes bidimensionnelles et des transformations en deux dimensions, notamment la transformée en cosinus discrète (DCT ou Discrete Cosine Transform en Anglais) ou une variante, la transformée en ondelettes discrète (DWT ou Discrete Wavelet Transform en 10 Anglais), le codage vidéo à haute efficacité (HEVC ou High Efficiency Video Coding en Anglais), ou même plus rarement la transformation de Fourier rapide en 2D. Les algorithmes de réduction des redondances temporelles utilisent la prédiction compensée de mouvement (ou compensation de mouvement). Pour compresser les images, nous utilisons la transformée de Fourier rapide en 2D 15 ou en 1D, et nous appliquons des méthodes déjà connues (notamment dans la compression audio) aux lignes dans le domaine des fréquences. Pour les séquences d'images et les vidéos, nous appliquons des algorithmes de génération de résidus adaptés aux lignes et des compressions additionnelles sans pertes très efficaces et pouvant être compatibles avec les traitements en parallèle. Une utilisation adéquate de la précision des phases permet 20 d'augmenter fortement les taux de compression. Ces méthodes sont destinées à compresser les images, les séquences d'images et les vidéos pour le stockage intermédiaire, le stockage définitif ou la transmission, notamment celles qui sont issues de l'imagerie médicale, comme l'imagerie par résonance magnétique (IRM, MRI ou Magnetic Resonance Imaging en Anglais) ou la tomodensitométrie (TDM, 25 CT-Scan ou Computed Tomography Scan en Anglais), ainsi que celles qui sont utilisées en stéréoscopie ou en multi-vue. Notre travail concerne l'imagerie médicale en priorité, notamment l'IRM, la TDM et les technologies similaires. Pour comprendre notre motivation et notre travail, nous allons parler rapidement de l'imagerie médicale et rappeler quelques notions utilisées dans ce 30 domaine, comme l'espace k et la reconstruction d'images. 3049799 - 2 - Généralités sur l'imagerie médicale : On distingue : - La radiographie conventionnelle qui utilise les rayons X, fournit des images 2D et s est destinée aux images des os et des articulations. - La tomodensitométrie ou scanner X qui utilise aussi les rayons X, fournit des images 3D et des images 2D en coupes. Elles est destinée à visualiser les modifications de volume et les anomalies de structure. - L'imagerie par résonance magnétique qui se divise en deux catégories : 10 - L'IRM anatomique pour l'observation des tissus mous comme le cerveau, la moelle épinière, les muscles, les tendons et les viscères (foie, rate, pancréas, vésicules, vessie et reins par exemple). - L'IRM fonctionnelle pour détecter les maladies d'Alzheimer, les sclérose en plaques et les accidents vasculaires cérébraux (AVC) par exemple. 15 - L'échographie qui utilise les ultrasons. L'image obtenue est une coupe de l'organe étudié. Il peut être associé à un examen Doppler (ou une sonde plus fine est introduite dans la lumière des vaisseaux), pour analyser la vitesse du sang dans les vaisseaux ou dans les cavités cardiaques. - Les techniques de scintigraphie (médecine nucléaire) qui reposent sur l'utilisation 20 d'un traceur radioactif émettant des rayonnements détectables par les appareils de mesure. Les images obtenues peuvent être planaires ou reconstruites sous forme de coupes comme avec la tomodensitométrie (tomoscintigraphie). On peut citer : - La tomographie d'émission monophotonique (TEMP, SPECT ou Single Photon Emission Computed Tomography en Anglais). 25 - La tomographie par émission de positons (TEP, PET ou Positron Emission Tomography en Anglais). 3049799 - 3 - Généralités sur l'espace k : L'espace k (ou k-space en anglais) est un tableau (2D) de nombres représentant les fréquences spatiales dans une image IRM. C'est une grille de données de la forme (lac, ky) issues directement de l'imagerie par résonance magnétique. Les données collectées dans une IRM correspondent aux échantillons d'une transformation de Fourier 2D de l'image IRM. Généralement, l'espace k est rempli ligne par ligne, de haut en bas, à intervalles réguliers. La composante de fréquence nulle (DC ou Direct Current en Anglais) est placée au centre de l'espace k. L'essentiel des données se trouve vers le centre. Les basses fréquences spatiales (contrastes, peu de détails) sont situées à proximité du centre tandis que les hautes fréquences spatiales (détails et bords de l'image) correspondent à la périphérie. En IRM, différents tissus ont différentes propriétés magnétiques, ce qui entraîne le contraste. Le scanner IRM acquiert les échantillons de l'image encodée dans le domaine des fréquences, plutôt que directement dans le domaine des pixels (représenté par l'image). 15 Il faut souligner que les lignes de l'espace k ne correspondent pas directement à la transformée de Fourier des lignes de l'image. Il faut souligner enfin qu'en IRM, les traitements dans l'espace k sont de meilleures solutions pour les images que les traitements dans le domaine des pixels. 20 Généralités sur la tomodensitométrie: Plusieurs noms sont utilisés pour la tomodensitométrie: la scanographie, la tomographie axiale calculée par ordinateur ou encore le scanner X. Cette technique consiste à mesurer l'absorption des rayons X par les tissus, puis par traitement informatique, à numériser et enfin reconstruire les images 2D ou 3D des 25 structures anatomiques. Pour acquérir les données, on emploie la technologie de l'analyse tomographique ou par coupes, en soumettant le patient au balayage d'un faisceau de rayons X. Les séries de calculs sont basées sur la transformation de Fourier 1D. Les images sont reconstruites à partir de projections en tomographie par rayon X. 3049799 - 4 - La reconstruction par rétroprojection filtrée (FBP ou Filtered Back Projection en Anglais) est possible et est le plus souvent utilisée. Cette reconstruction utilise aussi FFT 1D le plus souvent. La reconstruction par FFT 2D est possible après remplissage de l'espace k 5 et l'utilisation du théorème de la coupe centrale (Central Slice Theorem ou Projection Slice Theorem en Anglais) : la transformée de Fourier d'une projection faisant un angle téta avec l'axe des abscisses correspond à une ligne de la transformée de Fourier 2D de l'image qui passe par l'origine et fait un angle téta avec l'axe des abscisses. Le théorème de projection de Radon établit la possibilité de reconstituer une 10 fonction réelle à deux variables (assimilable à une image) à l'aide de la totalité de ses projections selon des droites concourantes. Les valeurs des projections contenues dans un tableau sont les données d'une transformation de Radon. Différente de la reconstruction par FFT 2D, la reconstruction par rétroprojection filtrée peut être vue comme une transformation de Radon inverse : c'est une forme discrète, stabilisée et rapide de la 15 transformation de Radon inverse. Généralités sur l'imagerie médicale parallèle : L'imagerie médicale parallèle utilise des informations obtenues à partir d'un ensemble d'antennes en réseau phasé qui font l'acquisition des données en parallèle, afin 20 d'accélérer la collecte des données et de diminuer la durée d'une séquence. Les méthodes d'acquisition en parallèle se divisent en deux grandes catégories : - Reconstruction dans le domaine des pixels, après transformation de Fourier. L'image globale est reconstruite à partir des images produites par chaque antenne. La méthode la plus connue est SENSE (SENSitivity Encoding en Anglais), mais on peut 25 citer PILS (Partially parallel Imaging with Localized Sensitivity en Anglais) et ASSET (Array Spacial Sensitivity Encoding Technique en Anglais). Il faut enlever les artéfacts de repliement (aliasing en Anglais) qui sont dûs à une insuffisance de numérisation par chaque antenne du phénomène étudié. 3049799 - 5 - - Reconstruction du plan de Fourier de l'image (espace k) à partir de signaux fréquentiels de chaque antenne. Il s'agit donc d'une reconstruction dans le domaine des fréquences avant la transformation inverse de Fourier 2D. 5 On peut citer SMASH (SiMultaneous Acquisition of Spatial harmonies en Anglais) et GRAPPA (GeneRalized Autocalibrating Partially Parallel Acquisition en Anglais). Il faut explicitement calculer les lignes manquantes de l'espace k avant la transformation inverse de Fourier. Les images doivent donc être reconstruites à partir de données sous-échantillonnées de l'espace k. 10 Dans toutes ces méthodes, l'accélération est obtenue en omettant des étapes d'encodage durant les acquisitions et en reconstruisant les données manquantes à partir des données redondantes dans les signaux capturés par les différents éléments travaillant en parallèle. Par exemple, pour une image IRM, il faut enregistrer autant d'échos que de lignes. Pour diminuer la durée totale des acquisitions, il faut diminuer le nombre d'échos, donc le nombre de lignes. A ce niveau, on peut déjà souligner qu'une compression dans le domaine des pixels profite des redondances spatiales mais pas des données manquantes. Une compression efficace des lignes dans le domaine des fréquences profite des données manquantes. En outre on peut reconstruire à tout moment les lignes manquantes après un changement d'algorithme ou de précision. Les méthodes de compression des lignes permettent d'avoir des méthodes de compression temporaires efficaces, en attendant de compléter les données. Rappels des méthodes unidimensionnelles utilisées : Notre objectif est d'utiliser des méthodes 1D pour compresser efficacement et 25 rapidement les images, notamment celles issues de l'imagerie médicale. Nous allons présenter brièvement les méthodes déjà connues que nous allons utiliser. 3049799 - 6 - Une méthode de compression et de décompression audio (codec audio) très rapide, de grande qualité et avec des taux de compression élevés a été proposée récemment (brevet Français numéro 06 07091 délivré en 2008). Ce codec est basé sur FFT et utilise les points 5 de plus grande magnitude (plus grands points formant l'avant plan) et les bandes les plus énergétiques (formant l'arrière plan). Il peut aussi utiliser uniquement les pic locaux. Nous appliquons les méthodes de ce codec pour compresser les lignes d'une image dans le domaine des fréquences. L'arrière plan ne contient aucun point de l'avant plan. En outre on peut y appliquer 10 des décimations. Par exemple, la décimation simple consiste à prendre un point sur deux, le plus grand des deux points, situé à gauche ou à droite. A partir de la décimation simple, la décimation double consiste à prendre le plus grand point sur deux. Plus généralement, la décimation d'ordre D consiste à prendre un point sur 2 à la puissance D. Il faut D bits pour coder les positions locales non nulles après la décimation. On peut effectuer une 15 combinaison de plusieurs types de décimation : par exemple pas de décimation au centre, puis décimation simple, puis décimation double, etc. Si on prend tous les points de l'arrière plan ou des bandes contiguës, il n'y a pas à ordonner les bandes pour prendre les plus grandes bandes, et il n'y a pas à transmettre les positions des bandes. Les phases sont prises en compte dans le cas général. Elles peuvent être moins 20 précises que les magnitudes, surtout dans les bandes où elles peuvent même être réduites à un signe (le signe de la phase). Dans le cas de l' audio uniquement, pour éviter les effets de bord, un recouvrement de 50% ou moins est effectué entre les trames successives. Pour réduire les redondances temporelles (séquences d'images et vidéos), une compression sans perte est généralement appliquée aux résidus, après un algorithme de prédiction et de création de résidus. On peut citer les algorithmes RLE (Run Length Encoding en Anglais), Huffman, Golomb-Rice, la compression arithmétique, LZ77, Deflate et LZW par exemple. 3049799 - 7 - Récemment une demande de brevet Français a été déposée à l'INPI (demande numéro 12 01759 du 21 Juin 2012, numéro de publication 2992458 du 27 Décembre 2013). Dans cette demande, la méthode LZW a été utilisée avec deux modifications : 5 - Dictionnaire construit à l'aide de plusieurs trames mais vidage du tampon entre chaque trame. - Préchargement partiel de dictionnaire d'ordre N, qui est l'ajout systématique de tous les codes correspondant à tous les arrangements des N caractères d'une séquence mise dans le dictionnaire. Par exemple, avec un préchargement partiel d'ordre 2, si mon met la 10 séquence AB dans la base (avec un code), on met aussi la séquence BA (avec un code). Le préchargement partiel permet de compresser plus s'il y a un caractère (par exemple le zéro) très fréquent au milieu d'autres caractères comme dans le cas des résidus. La méthode LZW est basée sur des dictionnaires identiques construits dynamiquement de part et d'autre et ne supporte pas les pertes de trame. Dans tous les cas, 15 la méthode LZW classique ainsi que les autres méthodes de compressions sans perte peuvent être appliquées trame par trame (en cas de transmission complète trame par trame) ou ligne par ligne (en cas de transmission complète ligne par ligne). S'il y a des risques de pertes, il faut travailler avec un dictionnaire constant ou réinitialiser le dictionnaire après chaque transmission. 20 La méthode LZW avec la première modification est applicable si on a des média sûrs (fichiers, communications via TCP/IP, ...). La seconde modification peut être appliquée si on a des média sûrs ou quelque soit le média (trame par trame ou ligne par ligne) si elle apporte des améliorations. Dans cette même demande de brevet, plusieurs méthodes classiques sont décrites 25 pour comparer les trames audio. Ces méthodes sont applicables aux lignes du présent document. Rappel d'une méthode de compression de l'espace k : A partir d'une image, pour compresser l'espace k, on procède souvent comme indiqué ci-dessous : 3049799 - 8 - - On effectue un FFT 2D. - On effectue des décalages pour que le point de fréquence nulle soit au centre de l'espace k. La plus grande partie de l'énergie se trouve ainsi au centre de cet espace. 5 - On sélectionne une zone centrale (généralement un rectangle, un carré, une ellipse ou un cercle central) autour de l'espace k. - On se fixe une certaine précision et on ramène tout aux nombres entiers. - On utilise la compression sans perte RLE, Huffman ou RLE suivi de Huffman. 10 On peut augmenter ou diminuer les taux de compression en jouant sur la taille de la zone sélectionnée, en diminuant ou en augmentant la taille de la zone centrale. Après ces rappels nécessaires pour comprendre notre approche, nous allons parler des nouveautés de ce document. 15 Avec l'espace k, la composante de fréquence nulle étant au centre du plan de Fourier, si le remplissage du plan se fait ligne par ligne, la sélection des lignes va du centre vers le haut et / ou vers le bas. Les lignes peuvent être complètes ou à l'intérieur d'une zone centrale, généralement un rectangle, un carré, une ellipse ou un cercle central. Si le 20 remplissage du plan se fait colonne par colonne, la sélection des colonnes va du centre vers la gauche et / ou vers la droite. Les colonnes peuvent être complètes ou à l'intérieur d'une zone centrale, généralement un rectangle, un carré, une ellipse ou un cercle central. Par la suite, nous supposons que le remplissage du plan se fait ligne par ligne. Si le remplissage se fait colonne par colonne, tout ce qui est dit pour les lignes peut être dit pour 25 les colonnes. Cette approche est compatible avec les approches classiques 2D n'utilisant qu'une petite zone centrale du plan de Fourier pour compresser les images. Pour compresser plus, on peut diminuer la taille de la zone centrale autour des lignes. En se plaçant dans l'espace k, on peut aussi sélectionner quelques lignes complètes et 30 quelques colonnes complètes autour du centre et vers les bords, et les encoder séparément. 3049799 - 9 - Pour compresser les lignes d'une image dans le domaine des fréquences, nous appliquons une décomposition en deux plans basée sur l'énergie : l'avant plan composé des plus grands points ou des points de plus grande magnitude, et l'arrière plan composé des bandes les 5 plus énergétiques. Cette décomposition a été validée avec un codec audio (méthode de compression et de décompression audio) basé sur FFT. Les points de l'avant plan ne sont pas pris en compte dans l'arrière plan. Sur chaque plan, on applique une méthode de compression sans perte ou avec perte. Chaque point de l'espace k contribuant directement à chaque point de l'image finale, on doit 10 veiller à ce que les points de l'avant plan soient codés avec une précision suffisante. Cette décomposition est valable dans le cas où l'espace k est constitué par un ensemble de lignes passant par son centre et faisant un angle téta avec un de ses axes, les autres points étant calculés ou estimés. Dans le cas des séquences d'images et des vidéos, afin de réduire davantage les 15 redondances temporelles entre les lignes, nous créons des résidus. Afin de compresser ces résidus ligne par ligne, avec des média sûrs (fichiers ou communications via TCP/IP par exemple), nous appliquons une méthode de compression sans perte aux résidus basée sur LZW, un dictionnaire construit à l'aide de plusieurs résidus temporels mais avec un vidage du tampon entre chaque ligne, et un préchargement partiel de dictionnaire d'ordre N. 20 Une méthode RLE (Run Length Encoding en Anglais) pourra être appliquée aux résidus quasi nuls. Dans le cas général, on peut compresser ces résidus ligne par ligne avec la compression sans perte de son choix. 25 La méthode LZW et les modifications décrites ci-dessus sont très utiles s'il y a des acquisitions et des transmissions en parallèle car elle permet des traitements en parallèle intégral et simplifie la gestion des contextes multiples (les lignes dans notre cas): chaque contexte est indépendant, à tout moment il y a ce qu'il faut pour décoder tous les contextes sans attendre un autre contexte (direction temporelle). 3049799 - 10 - Le codage des séquences d'images et des vidéos repose sur la création de résidus et l'utilisation des algorithmes sans perte. Si on utilise des média sûrs (fichiers, communications via TCP/IP, ...), on encode de temps en temps une ligne Intra (Ligne I ou 5 Intra, sans résidus), puis pour les lignes intermédiaires (Lignes P ou Prédites, avec résidus), on encode les résidus à l'aide de l'algorithme LZW modifié et de l'algorithme de RLE. On peut réinitialiser ou non le dictionnaire après chaque ligne Intra. Dans le cas général, on peut appliquer l'algorithme sans perte de son choix. Donc, comme dans la compression MPEG (Moving Picture Experts Group en 10 Anglais) pour les trames, on encode de temps en temps une ligne Intra (ligne I), sans résidus, afin d'avoir des points de reprise, d'être robuste aux pertes de données et de permettre le positionnement direct. Pour les lignes intermédiaires (Lignes P ou Prédites), on encode les résidus. 15 Pour comprendre notre choix concernant la génération des résidus, nous rappelons une propriété importante dans l'espace de Fourier 2D: quand une image se déplace simplement dans l'espace des pixels, les magnitudes ne changent pas dans l'espace de Fourier, seules les phases changent. Plus précisément, la translation d'une image se traduit par un déphasage linéaire. La séparation des positions est une propriété très importante de 20 la transformation de Fourier 2D. Nous rappelons aussi que pour calculer une transformée de Fourier 2D, on peut appliquer une transformée de Fourier 1D dans une direction (ligne ou colonne), puis appliquer une nouvelle transformée de Fourier 1D sur le résultat obtenu dans la deuxième direction (colonne ou ligne). 25 La décomposition et la compression peuvent se faire au niveau de l'espace k mais aussi à un niveau que nous appelons espace intermédiaire. Si on part de l'espace k, pour arriver à l'espace des pixels, on peut : - Etape 1 : effectuer des FFT 1D inverses sur toutes les colonnes. 30 - Etape 2 : effectuer des FFT 1D inverses sur toutes les lignes du résultat obtenu. On peut effectuer l'inverse, d'abord les lignes, puis les colonnes. 3049799 Si on part de l'espace des pixels, pour arriver à l'espace k, on peut : - Etape 1 : effectuer des FFT 1D sur toutes les lignes. - Etape 2 : effectuer des FFT 1D sur toutes les colonnes du résultat obtenu. 5 On peut effectuer l'inverse, d'abord les colonnes, puis les lignes. Après l'étape 1, on obtient l'espace intermédiaire. Toutes les lignes (ou toutes les colonnes) utiles de l'espace intermédiaire sont utilisées. Il n'y a pas de notion de zone centrale. Toutes les lignes (ou toutes les colonnes) de l'espace intermédiaire correspondent à la 10 transformée de Fourier 1D des lignes (ou des colonnes) correspondantes de l'image. Il y a beaucoup d'avantages à compresser au niveau de l'espace intermédiaire : - La moitié des transformations FFT a déjà été effectuée, le décodage est donc très rapide. 15 - Un point de l'espace k contribue à tous les points de l'image. Au niveau de l'espace intermédiaire, chaque point d'une ligne contribue aux points de cette ligne, donc les points de l'espace intermédiaire sont moins sensibles aux perturbations que les points de l'espace k. - S'il y a une petite perturbation locale dans l'image, seules les lignes touchant la 20 perturbation sont concernées. - On peut implémenter facilement la notion de région d'intérêt (ROI ou Region of Interest en Anglais). Si on connaît à l'avance les lignes de cette région, on peut les encoder avec plus de précision que les autres. - S'il y a un simple mouvement dans l'image, les magnitudes de certaines lignes 25 subissent des translations et se retrouvent sur d'autres lignes. On perd les redondances spatiales entre les lignes si on utilise l'espace intermédiaire, mais on peut encoder sans perte les résidus dans le plan de cet espace (résidus spatiaux). Afin de créer les résidus spatiaux, on peut soustraire la ligne (i) de la ligne (i-1) et garder la 30 première ou la dernière ligne suivant le sens de progression. 3049799 - 12 - Les résidus spatiaux concernent les magnitudes dans tous les cas. Pour les phases, il y a lieu de distinguer deux cas : - les lignes (i) et (i-1) sont identiques, donc le résidu est nul. 5 - les lignes (i) et (i-1) ne sont pas identiques, donc on ne crée pas de résidu. Si on lit ou on reçoit tout le plan en même temps, ce qui est généralement le cas, on peut appliquer la méthode LZW classique seule ou avec un préchargement partiel, plan par plan. Notes sur le codage des phases : 10 Dans la compression vidéo classique, pour réduire les redondances temporelles, on utilise la prédiction compensée de mouvement ou compensation de mouvement, qui est l'estimation de mouvement entre deux images. Pour comprendre le rôle des phases dans l'espace k, nous rappelons ci-dessous trois propriétés importantes de cet espace : 15 - Le spectre FFT 2D ainsi que les magnitudes restent inchangés durant une translation de l'image. Seules les phases changent. - Quand une image subit une rotation d'un angle téta autour d'un axe, la transformation de Fourier 2D subit une rotation du même angle téta autour de cet axe. - Si une image subit un agrandissement (ou un rétrécissement), sa transformée de 20 Fourier 2D subit un rétrécissement (ou un agrandissement). Afin de réduire significativement les redondances temporelles et spatiales, dans l'espace k ou dans l'espace intermédiaire, nous jouons sur les phases, plus spécialement sur les phases de l'arrière plan : - Les phases sont codées avec une précision moindre que les magnitudes. 25 - Les phases des magnitudes non sélectionnées ou décimées sont mises à zéro. - Les phases de l'arrière plan sont codées avec une précision encore plus dégradée (à la limite un bit de signe ou même zéro). Nos méthodes ne font pas appel à la compensation de mouvement et sont robustes 30 aux bruits et aux effets de bord. Dans le cas de simples déplacements à l'intérieur de l'image par exemple, les magnitudes ne changent pas (espace k), il y a des redondances spatiales ou les magnitudes peuvent être retrouvées (espace intermédiaire), donc les résidus sont essentiellement nuls. 3049799 - 13 - Nous allons décrire ci-dessous plus complètement la sélection des points, la compression d'une ligne indépendante (ligne I, sans résidus) et la compression d'une ligne dépendante (ligne P, avec résidus), ainsi que la manière de créer ces résidus. 5 Sélection des points : Nous retenons les plus grands points ou points de plus grande magnitude (avant plan) et les bandes les plus énergétiques (arrière plan). Tous les autres points sont mis à zéro. Si une magnitude est nulle ou non retenue, la phase correspondante est mise à zéro. 10 On peut en outre appliquer la décimation simple ou plus pour les points de l'arrière plan. Nous considérons soit une ligne complète ou mono-segment (constituée d'un seul segment), soit constituée de plusieurs segments contigus, numérotés et de tailles identiques, certains pouvant être complètement nuls. Les lignes complètement nulles sont traitées avec un code spécial. 15 Trame indépendante (Trame I) : De temps en temps, on code une trame sans résidus, à l'aide des méthodes unidimensionnelles, notamment l'utilisation d'entiers non signés pour les magnitudes et d'entiers signés pour les phases. Les plages de ces entiers dépendent des précisions voulues. 20 L'avant plan et l'arrière plan sont codés séparément, les points de l'avant plan étant identifiés par un nombre égal au déplacement (fréquence), les bandes de l'arrière plan étant identifiées par un numéro de bande. On pourra se référer au document cité au début (brevet Français numéro 06 07091 délivré en 2008) pour plus de précisions. 25 Il faut une certaine précision pour les magnitudes des points de l'avant plan et une moins bonne précision pour les magnitudes des points de l'arrière plan. La précision des phases peut être également moins bonne. Nous préconisons ici une énumération des magnitudes de l'avant plan et l'utilisation de méthodes de compression sans perte afin de 30 compresser les magnitudes de l'arrière plan et les phases. 3049799 - 14 - Trame dépendante (Trame P) : Il n'y a pas de calcul de résidus pour les phases. Le calcul des résidus concerne les magnitudes. Dans ce cas, la décomposition (virtuelle) en deux plans sert juste à décimer et à 5 sélectionner les points. Toutes les magnitudes ont la même précision. Chaque ligne complexe (pour partie réelle et partie imaginaire) est divisée en deux lignes réelles, la première contenant les magnitudes et la seconde contenant les phases. - Ligne des magnitudes : chaque ligne réelle est divisée en segments pouvant être 10 complètement nuls ou contenir des zéros. on effectue deux calculs de résidus (entre deux lignes successives dans le temps) et deux codages et on retient la meilleure solution. - Premier calcul de résidus : la ligne numéro (i) est soustraite de la ligne (i-1). - Second calcul de résidus : chaque segment de la ligne (i) est comparé avec 15 chaque segment de la ligne (i-1) et on retient le meilleur résidu. - Premier codage : on applique un algorithme RLE (Run Length Encoding) au premier calcul et au second calcul de résidus. - Second codage : on applique un algorithme sans perte au premier calcul et au second calcul de résidus. 20 Il faut un bit pour indiquer une ligne complète ou segmentée et un autre bit pour signaler une méthode RLE ou un autre algorithme sans perte. Dans le cas d'une ligne complète, on a le champ suivant en sortie: résidu encodé. 25 Dans le cas d'une ligne segmentée, on a le champ suivant en sortie: numéro de segment dans (i) numéro de segment dans (i-1) résidu encodé. 3049799 - 15 - - Lignes des phases : les lignes des phases sont encodées sans segmentation. Si une ligne des phases a été modifiée, elle est encodée sans perte. Elle peut être divisée en deux plans (avant plan et arrière plan) à cause des précisions différentes dans les deux plans. La 5 précision des phases est plus faible que celle des magnitudes sans perte de qualité. Contrairement aux magnitudes, les phases sont de nature aléatoire. Néanmoins, leur influence dépend de la valeur des magnitudes. En outre, elles sont rendues compressibles avec les algorithmes de sélection des points et de décimation dans les bandes. Enfin, on diminue la précision des phases de l'arrière plan. 10 On considère soit une ligne des phases à résidus nuls (la ligne n'a subi aucune modification), soit une ligne des phases modifiée. Comme pour les magnitudes, dans le cas où la ligne a été modifiée, on effectue deux codages et on retient la meilleure solution. Il faut un bit pour indiquer une ligne à résidus nuls ou non, et un bit pour signaler une compression RLE ou non. 15 On peut rechercher les segments similaires segment par segment (pour aller vite) ou bin par bin : Dans le premier cas, on a : - Numéro de segment dans la ligne courante. 20 - Numéro de segment dans la ligne de référence. Dans le second cas, on a : - Numéro de segment dans la ligne courante. - Numéro de bin dans la ligne de référence. Une option globale (dans un en-tête par exemple) doit préciser ce choix. 25 Avec les media sûrs, afin de réduire les redondances temporelles, au lieu de prendre juste la dernière ligne, on peut faire une recherche en arrière sur les L dernières lignes envoyées ou décodées, la ligne courante ayant zéro comme numéro. Dans ce cas, on ajoutera un numéro de ligne de référence dans les données. 30 Une option dans l'en-tête global doit préciser ce choix et un nombre dans cet en-tête doit indiquer le nombre maximum de lignes à conserver. 3049799 - 16 - On peut faire une recherche de segment dans le dernier plan ou dans les P derniers plans. Dans ce cas, on ajoute un numéro de plan de référence dans les données s'il y a plusieurs plans. On ajoute aussi un numéro de ligne dans le plan. Une option dans l'en-tête 5 global doit préciser ce choix et un nombre dans cet en-tête doit indiquer le nombre maximum de plans à conserver. Cette option est surtout utile dans le cas de l'espace intermédiaire. Le codage des résidus temporels se fait, sans perte, entre deux lignes successives. Elle peut aussi se faire entre une ligne dépendante et la dernière ligne indépendante. 10 Nous allons présenter quatre exemples d'application possibles de nos méthodes. Dans ces exemples, un en-tête général contient toutes les informations globales nécessaires, notamment les dimensions de l'image, le nombre de lignes présentes, s'il s'agit d'un espace (k ou intermédiaire) ou d'un simple ensemble de lignes, et si on peut choisir, le choix entre 15 l'espace k et l'espace intermédiaire. - Premier exemple : compression d'une image IRM classique. L'espace k est encodé ligne par ligne et stocké dans un fichier. Le fichier comprend un en-tête général suivi des lignes compressées : 20 En-Tête - Ligne 1 - Ligne 2 - - Ligne N Si le nombre de lignes est incomplet, on ajoute le numéro de ligne avant chaque ligne compressée : En-Tête - Numéro 1 Ligne 1 - Numéro 2 Ligne 2 - - Numéro N Ligne N On peut choisir l'espace intermédiaire si le nombre de lignes est complet. 25 - Second exemple : compression d'une image TDM classique. Les projections 1D sont encodées et stockées dans un fichier. Le fichier comprend un en-tête général suivi des lignes compressées : En-Tête - Ligne 1 - Ligne 2 - - Ligne N 3049799 - 17 - Si les variations d'angle sont irrégulières, on ajoute une valeur d'angle avant chaque trame : En-Tête - Angle 1 Ligne 1 - Angle 2 Ligne 2 - - Angle N Ligne N Il n'y a pas de notion d'espace à ce niveau. 5 - Troisième exemple : compression d'une séquence d'images IRM fonctionnelle. Il y a de très fortes redondances temporelles entre les images. Cette redondance se retrouve entre les lignes. On encode de temps en temps une ligne Intra (Ligne I), puis pour les lignes prédites (Lignes 10 P), on encode les résidus à l'aide de l'algorithme LZW modifié et de l'algorithme de RLE. On réinitialise le dictionnaire après chaque ligne Intra. I PPPPPPPPPP I PPPPPPPPPP I PPPPPPPPPP Pour le fichier on a : En-Tête 15 (Ligne 1) I (Ligne 2) I ... (Ligne N) I (Ligne 1) P (Ligne 2) P (Ligne N) P (Ligne 1) P (Ligne 2) P (Ligne N) P (Ligne 1) I (Ligne 2) I ... (Ligne N) I 20 - Quatrième exemple : surveillance médicale avec plusieurs canaux de signes vitaux et vidéo en simultané. On met au point un dispositif utilisant la compression 1D généralisée et massivement 25 parallèle. Par exemple, pour un électroencéphalogramme (EEG), il n'est pas rare d'enregistrer 16, 32, 64, 128 ou 256 canaux 1D en parallèle (signaux électriques venant du cerveau), et de synchroniser le tout avec une vidéo de surveillance du patient. La caméra prend les images dans le domaine image, mais on passe à FFT 2D, on prépare un espace k et on applique les 30 méthodes décrites dans ce document. On peut utiliser des dictionnaires de taille modérée (4096 par exemple) par canal. On peut aussi choisir de compresser au niveau de l'espace intermédiaire. 3049799 - 18 - Si on veut utiliser les méthodes décrites dans ce document à partir d'une image quelconque, il faut effectuer un FFT 2D et les décalages nécessaires dans le domaine des fréquences afin d'avoir un espace k. Si on veut utiliser l'espace intermédiaire, il faut 5 effectuer des FFT 1D sur les lignes (ou les colonnes), il n'y a pas de décalage à effectuer. Si le remplissage du plan se fait ligne par ligne, si l'espace k est complet, les méthodes décrites dans ce document peuvent être appliquées aux colonnes. Si le remplissage du plan se fait colonne par colonne, si l'espace k est complet, les méthodes décrites dans ce document peuvent être appliquées aux lignes. 10 En effet, pour calculer une transformée de Fourier 2D, on peut appliquer une transformée de Fourier 1D dans une direction (ligne ou colonne), puis appliquer une nouvelle transformée de Fourier 1D sur le résultat obtenu dans la deuxième direction (colonne ou ligne). Avec un espace de Fourier complet, si on utilise les colonnes, la sélection des colonnes va du centre vers la gauche et / ou la droite. Les colonnes peuvent être complètes 15 ou à l'intérieur d'une zone centrale. Ces méthodes sont compatibles avec des traitements entièrement en 2D. Après la décomposition en deux plans basée sur l'énergie, la sélection des points, les décimations éventuelles dans les bandes et le traitement des phases, on peut appliquer des méthodes de compression 2D, en gardant les deux plans ou en les regroupant. 20 On peut utiliser nos méthodes 1D pour des dimensions supérieures à deux (3D et 4D par exemple) car on applique une transformation FFT 1D à chaque dimension ou une transformation inverse FFT 1D à chaque dimension. Ces méthodes sont compatibles sFFT (sparse Fast Fourier Transform en Anglais) et les méthodes d'acquisition comprimée (CS ou Compressed Sensing en Anglais) par 25 réduction de lignes ou de colonnes. FFT ne servant qu'à calculer très rapidement la transformation de Fourier Discrète DFT (Discrete Fourier Transform en Anglais), ces méthodes sont liées à DFT. Ces méthodes sont compatibles avec la couleur. Il faut encoder chaque plan de couleur séparément (comme dans les formats RGB, RGBA, YUV, YCbCr ou Y'CbCr). 30 Dans les cas YUV, YCbCr et Y'CbCr, on peut avoir des précisions différentes pour chaque plan de couleur, notamment des précisions moindres pour les plans U, V, Cb et Cr. Dans tous les cas, on calcule juste une seule différence de phases pour tous les plans. 3049799 - 19 - Plusieurs techniques existantes peuvent être prises en compte avec nos méthodes, notamment la sonification par mapping spectral, la vidéo au ralenti, la stéréoscopie, l'auto-stéréoscopie (la 3D sans lunette) ou la vidéo multi-vue. 5 Ces méthodes sont prêtes pour la sonification par mapping spectral et sont directement compatibles avec cette sonification, car elles utilisent FFT et ont été mises au point pour l'audio. La sonification des données de l'IRM fonctionnelle peut aider à analyser le fonctionnement du cerveau. La sonification peut aider à la détection de certaines maladies comme le cancer. 10 Ces méthodes conviennent aussi au codage de la vidéo au ralenti (par exemple plus de 1000 trames par seconde). Il y a un très grand nombre de trames par seconde, il faut que les calculs soient très rapides. On n'est pas obligé de segmenter les lignes. Les magnitudes varient très lentement. Il y a essentiellement les variations des phases à suivre. Ces méthodes conviennent au codage des images et des vidéos en stéréoscopie, en 15 auto-stéréoscopie ou en multi-vue. Entre deux vues voisines, les magnitudes changent peu, il y a essentiellement les variations des phases à suivre. A un instant t, s'il y a N vues, on peut procéder au codage complet d'une vue sur M, les autres vues étant encodées par rapport à la vue la plus proche ou par rapport à la vue complètement encodée la plus proche. 20 Avec les rendus à base d'images de profondeur, (DIBR, ou Depth-Image-Based Rendering en Anglais), on synthétise de nouvelles vues virtuelles à partir d'une vue réelle et de l'information de profondeur associée à chaque pixel. On peut transmettre deux flux vidéo encodés, le premier flux étant une vidéo de couleur, le second étant une vidéo monochrome contenant les profondeurs. S'il y a une liste de profondeurs associée à chaque pixel, on 25 encode et on transmet une liste associée de vidéos monochromes. Les méthodes présentes dans ce document permettent d'implémenter facilement la compression sans perte ou presque sans perte. Ceci est utile pour certains besoins (archivage, contraintes médicales, ...). Il suffit de prendre tous les points de l'arrière plan et de ne pas faire de décimation. Pour la compression sans perte intégrale, il faut utiliser une 30 transformation de Fourier avec uniquement des entiers (calculs plus rapides, pas d'erreurs d'arrondis, transformations complètement réversibles, résultats très proches de la version avec virgules flottantes). 3049799 - 20 - Les taux de compression ne sont pas ridicules, car non seulement la prise en compte des redondances temporelles se fait sans perte, mais aussi l'arrière plan est très compressible s'il y a assez de points dans l'avant plan. Les valeurs des magnitudes dans l'arrière plan sont 5 très petites et très homogènes. La décomposition en deux plans permet de compresser efficacement sans avoir besoin de relier les trames entre elles, l'arrière plan étant déjà très redondant et pouvant être considéré comme étant constitué de résidus. Pour certains besoins (édition, imagerie médicale, imagerie spatiale), en ne reliant pas les trames entres elles, on peut avoir 10 facilement des équivalents du MJPEG (Motion JPEG) ou du MJPEG 2000. La réduction de bruit est cruciale pour certaines images (images médicales, images satellitaires, images ultrasonores, images radars, etc). Avec les méthodes décrites dans ce document, l'essentiel du bruit est dans l'arrière plan, surtout les bruits à large spectre. Avec les bruits additifs, si on veut effectuer la soustraction spectrale ou la décimation spectrale, 15 on est dans le bon domaine. Le bruit de speclde électronique n'est pas un bruit additif, mais multiplicatif. En prenant le logarithme du signal, on se ramène à un problème additif. Il faut appliquer les algorithmes de réduction de bruit après application du logarithme ou avant d'enlever le logarithme. Il peut être souvent nécessaire d'étendre les dimensions des images avec des zéros. 20 Récemment une demande de brevet Français a été déposée à l'INPI (demande numéro 14 00535 du 04 Mars 2014, numéro de publication 3018385 du 11 Septembre 2015). Une compression supplémentaire avec perte utilisant la quantification vectorielle a été proposée pour faire du très bas débit en audio avec les pics locaux, à partir des déplacements (fréquences) et des magnitudes résultant du codec audio présenté au début de 25 ce document. Cette méthode peut être appliquée à l'espace k ou à l'espace intermédiaire, avec des pics locaux seulement ou avec tous les points sélectionnés. Cette méthode peut être appliquée aussi aux projections obliques, avec des pics locaux seulement ou avec tous les points sélectionnés. La demande de brevet préconise de prendre un ou plusieurs très grands dictionnaires contenant des vecteurs de positions, des vecteurs de magnitudes ou des 30 vecteurs de positions et magnitudes, et de faire des recherches du plus proche voisin dans ces dictionnaires. Nous présentons ici une méthode plus efficace pour la base de données de cette version dite version avec codebook. 3049799 -21 - A une ligne (horizontale, verticale ou oblique) du domaine des fréquences on associe une fréquence fondamentale ou la position de la plus grande magnitude. Chaque fréquence fondamentale ou chaque position de la plus grande magnitude est liée à un 5 ensemble de vecteurs de positions (la taille logique de chaque ensemble est fixe). Chaque vecteur de positions est lié à un ensemble de vecteurs de magnitudes (la taille logique de chaque ensemble est fixe). Les ensembles des vecteurs de positions et de magnitudes sont générés lors de la construction de la base de données, à l'aide d'algorithmes de partitionnement (k-moyennes, LBG, etc). Un seul index est généré pour chaque ligne et sert 10 à retrouver le vecteur de magnitudes, le vecteur de positions ainsi que la fréquence fondamentale ou la position de la plus grande magnitude associés à la ligne. Les recherches exactes ou approximatives du plus proche voisin se font sur des ensembles dont les tailles sont beaucoup plus petites, sans pour autant utiliser plusieurs index. Par exemple, supposons des ensembles ayant des tailles de 50 et 200 pour les 15 positions et les magnitudes respectivement, et supposons que la numérotation commence par zéro. Un index de 43758 correspond à un vecteur de magnitudes situé à l'index 43758, soit un numéro de groupe de 218 (division entière de 43758 par 200) et un index de 158 (reste de la division entière de 43758 par 200) dans ce groupe. Le vecteur de positions associé a un numéro de groupe de 4 (division entière de 43758 par 200x50) et un index de 20 18 dans ce groupe (division entière de 3758 par 200). Ce groupe numéro 4 est lié à une fréquence fondamentale ou à une position de la plus grande magnitude. Pour une ligne donnée, connaissant la fréquence fondamentale ou la position de la plus grande magnitude, connaissant les toutes les positions et toutes les magnitudes, on choisit le vecteur le plus proche dans l'ensemble des vecteurs de positions associé, puis on choisit le vecteur le plus 25 proche dans l'ensemble des vecteurs de magnitudes associé à ce vecteur de positions. Les associations ont déjà été rencontrées réellement au moins une fois lors de la génération de la base de données. Les phases ne sont pas encodées par codebook. Pour prendre en compte plus efficacement les phases, après sélection des points et décimation, il faut chercher et utiliser 30 deux index, l'un pour l'amplitude des cosinus, l'autre pour l'amplitude des sinus. 3049799 - 22 - Les amplitudes pouvant être négatives, après la transformation des coefficients en entiers, il faut effectuer une transformation supplémentaire intermédiaire pour avoir uniquement des entiers positifs, par exemple, un entier strictement positif n devient 2n et un entier 5 strictement négatif -n devient 2n-1. La génération de la base de données doit tenir compte de cette transformation intermédiaire. De même, pour la demande de brevet Français utilisant la méthode LZW avec deux modifications, il y a une restriction liée au fait qu'il faut des média sûrs. Nous proposons 10 une modification permettant de lever cette restriction. Si on utilise la méthode LZW avec modifications, on peut soit utiliser un dictionnaire global à précharger au démarrage, soit effectuer des transmissions sans perte (via TCP/IP par exemple) tant que le dictionnaire n'est pas rempli jusqu'à un niveau donné, puis travailler avec ce dictionnaire qui ne changera plus, et continuer avec des transmissions sans perte ou avec perte (UDP/IP par exemple). 15 La période de remplissage du dictionnaire peut être rapide et peut être appelée période de connexion des données. Ces méthodes sont destinées à compresser les images, les séquences d'images et les vidéos pour le stockage intermédiaire, le stockage définitif ou la transmission, notamment 20 celles qui sont issues de l'imagerie médicale, comme l'imagerie par résonance magnétique (IRM) ou la tomodensitométrie (TDM), ainsi que celles qui sont utilisées en stéréoscopie ou en multi-vue. REVENDICATIONS1) Méthode de compression unidimensionnelle pour compresser efficacement certaines images, séquences d'images et vidéos, en utilisant la transformation de Fourier rapide, caractérisée en ce que nous appliquons une décomposition en deux plans basée sur l'énergie : l'avant plan composé des plus grands points ou des points de plus grande magnitude, et l'arrière plan composé des bandes les plus énergétiques. Ces méthodes sont destinées à compresser les images, les séquences d'images et les vidéos pour le stockage intermédiaire, le stockage définitif ou la transmission. 2) Méthode selon la revendication 1, caractérisée en ce que la décomposition et la compression se font au niveau de l'espace k ou à un niveau que nous appelons espace intermédiaire. Toutes les lignes (ou toutes les colonnes) de l'espace intermédiaire correspondent à la transformée de Fourier 1D des lignes (ou des colonnes) correspondantes de l'image. 3) Méthode selon la revendication 1, caractérisée en ce qu'avec l'espace k, la composante de fréquence nulle étant au centre du plan de Fourier, si le remplissage du plan se fait ligne par ligne, la sélection des lignes va du centre vers le haut et / ou vers bas. Les lignes peuvent être complètes ou à l'intérieur d'une zone centrale, généralement un rectangle, un carré, une ellipse ou un cercle central. Si le remplissage du plan se fait colonne par colonne, la sélection des colonnes va du centre vers la gauche et / ou vers la droite. Les colonnes peuvent être complètes ou à l'intérieur d'une zone centrale. 4) Méthode selon la revendication 1, caractérisée en ce que chaque ligne complexe (pour partie réelle et partie imaginaire) est divisée en deux lignes réelles, la première contenant les magnitudes et la seconde contenant les phases. Ligne des magnitudes : chaque ligne réelle est divisée en segments pouvant être complètement nuls ou contenir des zéros. Lignes des phases : les lignes des phases sont encodées sans segmentation. 5) Méthode selon la revendication 1, caractérisée en ce que comme dans la compression MPEG pour les trames, on encode de temps en temps une ligne Intra (ligne I) , sans résidus, afin d'avoir des points de reprise, d'être robuste aux pertes de données et de permettre le positionnement direct. Pour les lignes intermédiaires (Lignes P ou Prédites), on encode les résidus. 3049799 - 24 - 6) Méthode selon la revendication 1, caractérisée en ce que les phases sont codées avec une précision moindre que les magnitudes. Les phases de l'arrière plan sont codées avec une précision encore plus dégradée (à la limite un bit de signe ou même zéro). 5 7) Méthode selon la revendication 1, caractérisée en ce qu'avec la ligne des magnitudes on effectue deux calculs de résidus (entre deux lignes successives dans le temps) et deux codages et on retient la meilleure solution. Si une ligne des phases a été modifiée, elle est encodée sans perte. 8) Méthode selon la revendication 1, caractérisée en ce qu' à une ligne (horizontale, 10 verticale ou oblique) du domaine des fréquences on associe une fréquence fondamentale ou la position de la plus grande magnitude. Chaque fréquence fondamentale ou chaque position de la plus grande magnitude est liée à un ensemble de vecteurs de positions (la taille logique de chaque ensemble est fixe). Chaque vecteur de positions est lié à un ensemble de vecteurs de magnitudes (la taille logique de chaque ensemble est fixe). Les ensembles des vecteurs de 15 positions et de magnitudes sont générés lors de la construction de la base de données, à l'aide d'algorithmes de partitionnement (k-moyennes, LBG, etc). Un seul index est généré pour chaque ligne et sert à retrouver le vecteur de magnitudes, le vecteur de positions ainsi que la fréquence fondamentale ou la position de la plus grande magnitude associés à la ligne. 20 9) Méthode selon la revendication 1, caractérisée en ce qu'on cherche et on utilise deux index, l'un pour l'amplitude des cosinus, l'autre pour l'amplitude des sinus, pour prendre en compte plus efficacement les phases, après sélection des points et décimation. 10) Méthode selon la revendication 1, caractérisée en ce que si on utilise la méthode LZW avec modifications, soit on utilise un dictionnaire global à précharger au démarrage, 25 soit on effectue des transmissions sans perte (via TCP/IP par exemple) tant que le dictionnaire n'est pas rempli jusqu'à un niveau donné, puis on travaille avec ce dictionnaire qui ne changera plus, et on continue avec des transmissions sans perte ou avec perte (UDP/IP par exemple).