Brevet FR2867633A1 — publié le 20050916

L'invention se rapporte aux procédés et aux dispositifs de codage et de transcodage de données représentant de préférence une image. Pour son enregistrement et sa transmission au moyen d'appareils électroniques, une image est classiquement représentée sous forme numérique par un ensemble de données. Selon un mode de représentation courant, l'image est divisée en pixels et les données (ci-après données d'image) correspondent aux valeurs attribuées à chaque pixel selon un système de représentation conventionnel. Ainsi, pour une représentation en noir et blanc, chaque donnée décrit la valeur de luminance du pixel considéré. Pour une image couleur, on associe habituellement un triplet de données à chaque pixel. Le triplet de données correspond aux trois composantes de la couleur dans le système utilisé. Il s'agit par exemple des valeurs respectives de rouge, vert et bleu dans le système RGB. D'autres systèmes de couleurs, comme le système YCrCb, sont également utilisés. Lors du codage d'une valeur sous forme numérique, éventuellement dans d'autres types de représentation que celle décrite ci-dessus, il est naturellement important de déterminer avec quelle précision on souhaite coder la valeur. On utilise couramment le pas de quantification comme indicateur de cette précision. Le pas de quantification correspond à l'étendue dans le domaine des valeurs qui correspondra à une unité après quantification, c'est-à-dire après passage de la donnée brute à la donnée quantifiée (i.e. exprimée sous forme d'un nombre entier). 2 2867633 Pour une plage de valeurs donnée, le pas de quantification détermine ainsi l'intervalle correspondant dans le domaine quantifié, et donc le nombre de bits nécessaires au codage de la plage de valeurs. Parmi les formats de compression d'image couramment utilisés, certains formats, tels que les formats du type JPEG, sont basés sur le schéma général suivant: transformation spatio-fréquentielle des données d'image en données fréquentielles, quantification des données fréquentielles pour obtenir des coefficients entiers (données quantifiées), codage entropique des données quantifiées. Comme indiqué ci-dessus, l'étape de quantification réalise la conversion d'une donnée fréquentielle en un nombre entier. Du fait que les valeurs que peut prendre la donnée fréquentielle s'étendent en général sur une plage continue, la conversion en un nombre entier entraîne une perte d'information. C'est pourquoi on dit généralement que l'étape de quantification est réalisée avec pertes. En dépit de l'utilisation de plusieurs types de format pour le codage des images numériques, on souhaite naturellement pouvoir échanger ces images, quel que soit leur format. Pour ce faire, il est donc fréquemment nécessaire de recourir à un transcodage de l'image numérique d'un premier format dans un second format. De plus, le transcodage du premier format vers le second format permet éventuellement de traiter une image qui a été codée selon le premier format au moyen de logiciels adaptés au traitement des images codées selon le second format. Même s'il est en principe toujours possible de décoder les données codées au premier format en données d'image afin de les coder dans le second format, cette solution a un coût calculatoire élevé et est de ce fait notamment consommatrice de temps; de plus, elle induit en général des pertes d'informations importantes. Afin de résoudre au moins un de ces problèmes, l'invention propose un procédé de transcodage de données codées selon un premier format en données codées selon un second format, caractérisé en ce qu'il comprend les étapes suivantes: 3 2867633 - décodage entropique des données codées selon le premier format au moyen d'un décodeur adapté au premier format pour obtenir des coefficients quantifiés; - obtention d'une table de quantification compatible avec le second 5 format en fonction d'au moins un paramètre relatif aux données codées selon le premier format; - codage entropique par le codeur adapté au second format des coefficients quantifiés en données codées selon le second format; - inscription de la table de quantification obtenue dans les données 10 codées selon le second format. Du fait que le transcodage a lieu dans le domaine fréquentiel, sans nécessiter de transformation spatio-fréquentielle inverse, le coût calculatoire est réduit. De plus, l'utilisation d'un pas de quantification compatible avec le second format permet de passer du premier format au second format sans perte supplémentaire d'informations. On peut ainsi obtenir un transcodage sans perte d'un premier format avec pertes à un second format avec pertes. Ledit au moins un paramètre est par exemple un pas de quantification relatif au premier format. Le pas de quantification relatif au premier format peut dans ce cas être entier et ainsi compatible avec certains seconds formats, tel le format JPEG. Le pas de quantification relatif au premier format peut de plus être pair et ainsi compatible avec le second format lorsque certaines composantes utilisent un pas de quantification moitié du pas de quantification susmentionné. Le premier format est en général différent du second format. L'invention propose aussi un procédé de codage d'une image définie par des données d'image en données codées selon un premier format, caractérisé en ce qu'il comporte les étapes suivantes: - détermination d'un pas de quantification compatible avec un second 30 format différent du premier format; - transformation spatio-fréquentielle des données d'image en données fréquentielles; - quantification en fonction du pas de quantification compatible des données fréquentielles en coefficients quantifiés; 4 2867633 - codage au moyen d'un codeur adapté au premier format des coefficients quantifiés en données codées. Les données ainsi codées pourront ainsi être transcodées sans perte vers le second format puisque le pas de quantification compatible avec le second format permettra l'utilisation directe des données quantifiées lors du transcodage, sans nécessiter une déquantification et une nouvelle quantification. Selon une possibilité de mise ne oeuvre, l'étape de détermination d'un pas de quantification compatible comprend les étapes de: - réception d'un pas de quantification souhaité ; - obtention du pas de quantification compatible à partir du pas de quantification souhaité. Dans ce cas, l'étape d'obtention du pas de quantification compatible peut comporter les étapes suivantes: - vérification que le pas de quantification souhaité est compatible; - en cas de vérification négative, réception d'un autre pas de quantification souhaité ; - en cas de vérification positive, définition du pas de quantification compatible comme étant égal au pas de quantification souhaité. Les étapes de vérification et de réception d'un autre pas de 20 quantification souhaité peuvent être répétées tant que ledit autre pas de quantification souhaité n'est pas compatible. L'étape d'obtention du pas de quantification compatible est par exemple une étape d'obtention d'un pas de quantification entier. Dans ce cas, l'étape d'obtention du pas de quantification compatible 25 peut être réalisé par les étapes suivantes: - calcul de la partie entière du pas de quantification souhaité ; - définition du pas de quantification compatible comme étant égal à ladite partie entière. Ces solutions pour l'obtention d'un pas de quantification compatible 30 sont pratiques à mettre en oeuvre. L'étape d'obtention du pas de quantification compatible peut de plus être une étape d'obtention d'un pas de quantification pair. Selon des possibilités de réalisation, le codage est un codage entropique et le second format est un format JPEG. 2867633 L'invention propose également un dispositif de transcodage de données codées selon un premier format en données codées selon un second format, caractérisé en ce qu'il comprend un décodeur adapté au premier format pour décodage entropique des données codées selon le premier format en coefficients quantifiés, des moyens pour obtenir une table de quantification compatible avec le second format en fonction d'au moins un paramètre relatif aux données codées selon le premier format, un codeur adapté au second format pour codage entropique des coefficients quantifiés en données codées selon le second format et des moyens pour inscrire la table de quantification obtenue dans les données codées selon le second format. L'invention propose en outre un dispositif de codage d'une image définie par des données d'image en données codées selon un premier format, caractérisé en ce qu'il comprend des moyens de détermination d'un pas de quantification compatible avec un second format différent du premier format, des moyens pour transformation spatio-fréquentielle des données d'image en données fréquentielles, des moyens de quantification en fonction du pas de quantification compatible des données fréquentielles en coefficients quantifiés, et un codeur adapté au premier format pour codage des coefficients quantifiés en données codées. Les modes de mise en oeuvre possibles de ces dispositifs sont similaires à ceux proposés pour les procédés décrits auparavant, avec des avantages similaires. L'invention propose également un moyen de stockage d'informations qui peut être lu par un ordinateur ou un microprocesseur, contenant des instructions d'un programme d'ordinateur pour exécuter les étapes des procédés évoqués précédemment. Dans le même ordre d'idée, l'invention propose un moyen de stockage d'informations partiellement ou totalement amovible, qui peut être lu par un ordinateur ou un microprocesseur, contenant des instructions d'un programme d'ordinateur pour exécuter les étapes des procédés ci-dessus. Enfin, l'invention propose un programme d'ordinateur qui peut être chargé dans un appareil programmable, caractérisé en ce qu'il comprend des séquences d'instructions ou des portions de code logiciel pour mettre en oeuvre 6 2867633 les étapes des procédés précédemment décrits, lorsque ce programme d'ordinateur est chargé et exécuté par l'appareil programmable. D'autres caractéristiques et avantages de l'invention apparaîtront à la lumière de la description qui suit, faite en référence aux dessins annexés, dans 5 lesquels: - la figure 1 représente un appareil pouvant mettre en oeuvre l'invention; - la figure 2 est l'organigramme d'un procédé de codage conforme aux enseignements de l'invention; - la figure 3 est l'organigramme d'un procédé possible pour l'obtention de pas de quantification; - la figure 4 est l'organigramme d'un procédé de transcodage conforme aux enseignements de l'invention; - la figure 5 illustre un premier exemple d'obtention d'une table de 15 quantification à partir d'informations de quantification; - la figure 6 illustre un second exemple d'obtention d'une table de quantification; - la figure 7 illustre un troisième exemple d'obtention d'une table de quantification. La figure 1 présente les éléments principaux d'un appareil programmable pouvant mettre en oeuvre les procédés de codage et de transcodage proposés par l'invention. L'appareil de la figure 1 peut donc constituer un dispositif de codage d'une image définie par des données d'image en données codées selon un 25 premier format. Dans une autre utilisation, l'appareil de la figure 1 peut constituer un dispositif de transcodage de données codées selon un premier format de compression vers un second format de compression. L'appareil de la figure 1 donné à titre d'exemple est un micro- ordinateur 10 connecté à différents périphériques tel qu'un appareil photographique numérique 107 (ou un scanner, ou une caméra numérique, ou tout moyen d'acquisition ou de stockage d'images) relié à une carte graphique et fournissant un appareil de traitement de données numériques. L'appareil pourrait en variante être une station de travail. 7 2867633 L'appareil 10 comporte un bus de communication 101 auquel sont reliés: une unité centrale de traitement ou CPU 100 (microprocesseur), une mémoire morte 102 (ou ROM), pouvant comporter un ou 5 plusieurs programmes d'ordinateur, - une mémoire vive 103 (ou RAM) adaptée à stocker des variables, paramètres et données traitées au cours de l'exécution des différents algorithmes mentionnés dans la suite, ainsi qu'éventuellement de manière temporaire les instructions du ou des programmes d'ordinateur permettant de mettre en oeuvre ces algorithmes, - un écran 104 permettant de visualiser des données ou ce qu'elles représentent (par exemple une image) et/ou de servir d'interface graphique avec l'utilisateur, qui pourra interagir avec le ou les programmes selon l'invention à l'aide d'un clavier 114 ou de tout autre moyen tel qu'un dispositif de pointage, comme par exemple une souris ou un crayon optique, - un disque dur 108 pouvant mémoriser le ou les programmes mentionnés dans la suite, - un lecteur de disquette 109 apte à recevoir une disquette 110 et à y lire ou à y écrire des données numériques traitées ou à traiter selon l'invention, - une interface de communication 112 reliée à un réseau de communication distribué 113, par exemple le réseau Internet, l'interface étant apte à transmettre et à recevoir des données numériques telles que celles mentionnées dans la suite. Le bus de communication 101 permet la communication et l'interopérabilité entre les différents éléments inclus dans le micro-ordinateur 10 ou reliés à lui. La représentation du bus n'est pas limitative et, notamment, l'unité centrale est susceptible de communiquer des instructions à tout élément du micro-ordinateur 10 directement ou par l'intermédiaire d'un autre élément du micro-ordinateur 10. Le code exécutable (i.e. la séquence d'instructions) du programme ou de chaque programme permettant à l'appareil programmable 10 de mettre en oeuvre les procédés de codage et de transcodage selon l'invention décrits ci-après peut être stocké, par exemple, dans le disque dur 108 ou en mémoire morte 102 comme représenté sur la figure 1. 8 2867633 Pour son exécution, le code exécutable peut être transféré du disque dur 108 à la mémoire vive 103. Selon une variante, la disquette 110 peut contenir des données ainsi que le code exécutable du ou des programmes précités qui, une fois lu par l'appareil 10, sera stocké dans le disque dur 108 ou temporairement en mémoire vive 103. En seconde variante, le code exécutable du ou des programmes pourra être reçu par l'intermédiaire du réseau de communication 113, via l'interface 112, pour être stocké de façon identique à celle décrite précédemment. Les disquettes peuvent être remplacées par tout support d'informations tel que, par exemple, un disque compact (CD-ROM) ou une carte mémoire. De manière générale, un moyen de stockage d'informations, lisible par un ordinateur ou par un microprocesseur, intégré ou non à l'appareil, éventuellement amovible, est adapté à mémoriser un ou plusieurs programmes dont l'exécution permet la mise en oeuvre des procédés de codage et de transcodage selon l'invention. De manière plus générale, le ou les programmes pourront être chargés dans un des moyens de stockage de l'appareil 10, telle que la mémoire vive 103, avant d'être exécutés. L'unité centrale 100 va commander et diriger l'exécution des instructions ou portions de codes logiciels du ou des programmes selon l'invention, instructions qui sont stockées dans le disque dur 108 ou dans la mémoire morte 102 ou bien dans les autres éléments de stockage précités. Lors de la mise sous tension, le ou les programmes qui sont stockés dans une mémoire non volatile, par exemple le disque dur 108 ou la mémoire morte 102, sont transférés dans la mémoire vive 103 qui contiendra alors le code exécutable du ou des programmes selon l'invention, ainsi que des registres pour mémoriser les variables et paramètres nécessaires à la mise en oeuvre de l'invention. Il convient de noter que l'appareil comportant le dispositif selon l'invention peut également être un appareil programmé. Cet appareil contient alors le code du ou des programmes informatiques par exemple figé dans un circuit intégré à application spécifique (ASIC). La figure 2 représente les étapes principales d'un procédé de codage d'une image numérique tel que proposé par l'invention. 9 2867633 Ce procédé de codage est par exemple appliqué à une image numérique en couleurs représentée, avant codage, par un ensemble de données d'image brutes stockées, par exemple, au sein d'un fichier source sur un support d'informations. Les données d'image sont divisées en trois ensembles principaux de données qui correspondent chacun à une composante. Pour chaque composante, les données d'image définissent la valeur de la composante pour tous les pixels de l'image. Les composantes utilisées dépendent du système de représentation de la couleur choisi, par exemple le système RVB (composantes rouge, verte et bleue) ou le système YCrCb (luminance et deux composantes de chrominance) utilisé dans la suite de la description. Les données d'image brutes peuvent donc être décrites par la formule d1, où c est la composante concernée et i, j les coordonnées du point dans l'image. Le procédé de codage de la figure 2 commence par une étape E201 de détermination des pas de quantification qui seront utilisés lors des étapes ultérieures du codage. Un mode de réalisation possible pour cette étape E201 est donné dans la suite en référence à la figure 3. Dans l'exemple décrit ici, l'étape E201 de détermination des pas de quantification permet d'obtenir un pas de quantification py qui sera appliqué aux données relatives à la composante de luminance Y et un pas de quantification Pcr,cb qui sera appliqué aux données relatives aux composantes de chrominance Cr et Cb. Comme il sera décrit en détail dans la suite, l'étape E201 génère des pas de quantification py, PCr,Cb entiers afin que les données codées obtenues (selon le format résultant du codage décrit ici) puissent être transcodées sans perte dans un second format, par exemple un format du type JPEG, selon le procédé de transcodage décrit plus loin. Dans ce sens, on obtient au moyen de l'étape E201 des pas de quantification compatibles avec un second format de codage, différent du format obtenu par le codage décrit ici (dénommé dans la suite premier format de codage). 2867633 En variante, l'étape E201 pourrait ne générer qu'un seul pas de quantification p applicable à l'ensemble des composantes Y, Cr et Cb. Selon une autre variante, on pourrait obtenir à l'étape E201 un pas de quantification py relatif à la composante de luminance Y et utiliser pour les composantes Cr et Cb un pas de quantification égal à PCr,cb = py/2. Dans ce cas, l'étape E201 est de préférence réalisée de manière telle qu'elle génère un pas de quantification py pair afin que le pas de quantification per,cb soit entier et qu'ainsi les données codées obtenues puissent être transcodées sans perte dans un second format de codage comme cela sera décrit dans la suite. Naturellement, le nombre de pas de quantification utilisés pour le codage peut être plus important. On peut par exemple utiliser des pas de quantification spécifiques pour chaque fréquence spatiale (c'est-à-dire définir pour tout couple i,j un pas pci'j applicable à la valeur (y;1).. quel que soit le bloc k,l considéré voir ci-dessous). Dans tous les cas, les pas de quantification utilisés (qu'ils soient tous égaux ou non) peuvent être structurés en une table de quantification. Dans le cas général, la table de quantification relative à la composante c est une matrice avec pour éléments les pas pcij (i représentant l'indice de ligne, j l'indice de colonne). A l'étape E202, on récupère dans le fichier source les informations qui décrivent la structure du fichier quant aux composantes qui le constituent. On peut alors diviser le fichier en composantes Y, Cr, Cb et traiter ces composantes l'une après l'autre. A l'étape E203, on initialise la boucle du procédé qui permet de 25 parcourir l'ensemble des composantes: on considère donc la première composante, par exemple la composante de luminance Y. A l'étape E204, on procède à une division des données brutes relatives à la composante en cours de traitement en un certain nombre de blocs. Les blocs considérés sont, par exemple, des ensembles de n x n pixels (en pratique souvent 8x8 pixels) qui correspondent donc chacun à un carré (dans le cas, général un rectangle) dans l'image à coder. On peut représenter ces blocs par la formule: Bk,l Ldi j JnkSi A l'étape E206, on procède à la transformation en cosinus discrète (parfois dénommée selon l'acronyme DCT de l'anglais "Discrete Cosinus Transform") du bloc Bk 1 considéré. On réalise ainsi une transformation spatio- fréquentielle des données d'image du bloc, par laquelle on obtient un ensemble Vk l des valeurs brutes, également organisé sous forme de blocs, qui décrivent le bloc Bk,1 dans le domaine fréquentiel. On parle alors de coefficients DCT, ou parfois de données fréquentielles. Par fréquentiel, on entend naturellement ici le domaine spatio-fréquentiel. On peut éventuellement procéder au réordonnancement des valeurs brutes par un parcours selon un balayage zigzag ("zigzag scan" en anglais) sur le bloc. Dans tous les cas, on peut écrire de manière simplifiée: Vk = DCT(Bk,, )É Dans d'autres modes de réalisation, on pourrait utiliser d'autres transformations spatio-fréquentielles, comme une transformation en ondelettes 20 discrète (ou DWT de l'anglais "Discrete Wavelet Transform"). On procède alors à l'étape E207 à la quantification de l'ensemble des valeurs du bloc, c'est-à-dire que l'on calcule pour chaque valeur (m).. du bloc Vk 1 le nombre entier de pas de quantification qui correspondent à cette valeur. Ce nombre entier est généralement dénommé coefficient DCT quantifié. On utilise pour ce faire le pas de quantification relatif à la donnée traitée (dans le cas présent, relatif à la composante dont fait partie la valeur traitée) tel que défini à l'étape E201. On peut ainsi, par exemple, exprimer les coefficients DCT quantifiés PC par la formule: (Cc,r)i j = Int où la fonction Int est la fonction partie 12 2867633 entière et pc le pas de quantification à considérer (ici py ou per,cb selon la composante considérée). Selon la variante dans laquelle on utilise une table de quantification[pHo J (Ck 1)11 = Int Comme on l'a indiqué auparavant, cette étape est nécessairement réalisée avec une perte d'informations. Par exemple, dans le cas décrit ci-dessus, on obtient le même coefficient DCT quantifié y pour toute valeur fréquentielle v telle que: yp, _ Une fois la quantification de l'ensemble des valeurs du bloc réalisée, on dispose d'un ensemble Ck,1 de coefficients entiers (coefficients DCT quantifiés) et on peut donc passer à l'étape E208 de codage entropique de cet 15 ensemble (ou bloc) de coefficients Ck,1. On peut remarquer que l'exemple décrit ici utilise une quantification scalaire, mais que l'invention s'applique de manière générale à tous types de quantification vectorielle. Dans tous les cas, les dictionnaires utilisés sont compatibles avec un second format de codage, différent du format de codage obtenu par le procédé décrit ici. Par exemple, les composantes des vecteurs du dictionnaire sont entiers afin de pouvoir être convertis en une table de quantification selon un second format, par exemple du type JPEG. Le codage entropique de l'étape E208 est réalisé conformément à un format de codage spécifique (premier format de codage) par un codeur adapté à ce format spécifique. II peut s'agir par exemple d'un codeur de type Huffman ou d'un codeur arithmétique. Le codage entropique des coefficients du bloc (k, I) considéré permet d'obtenir un ensemble 8k,l de données codées compressées (8k 1).. relatives à ce bloc. 13 2867633 On peut résumer mathématiquement cette étape E208 de codage entropique par la formule générale: 8k, = F(CC1,) où F représente la fonction de codage entropique utilisée par le premier format de codage. On passe alors à l'étape E209 au cours de laquelle on détermine si le bloc qui vient d'être traité est le dernier bloc pour la composante courante (au sens de l'ordonnancement décrit plus haut à propos de l'étape E204). Si ce n'est pas le cas, on passe au bloc suivant (étape E210) dont le traitement commence à l'étape E206 décrite ci-dessus. Si l'on détermine à l'étape E209 que le dernier bloc relatif à la composante courante a été traité, on passe alors à l'étape E211 au cours de laquelle on détermine si la composante courante est la dernière composante (ici par exemple la composante Cb). Si c'est le cas, on met naturellement fin au procédé de codage (étape E213). Dans le cas contraire, on passe au cours de l'étape E212 à la composante suivante (par exemple, de la composante Y à la composante Cr, ou de la composante Cr à la composante Cb) dont le traitement commence à l'étape E204 par la division en blocs des données relatives à cette nouvelle composante. Lorsque l'on arrive à la fin du procédé de codage à l'étape E213 déjà mentionnée ci-dessus, un ensemble de données codées compressées 67,, est disponible pour toutes les composantes c et pour tous les blocs (k,l) dans chaque composante. La réunion de toutes les données compressées est sauvegardée, par exemple sur le disque dur 108 de la figure 1, et forme ainsi un fichier compressé 25 représentatif de l'image selon le premier format de codage. Ce fichier contient en outre des informations relatives à la quantification utilisée dans l'étape de quantification E207. Ces informations sont, par exemple, les pas de quantification py et PCr,Cb mentionnés ci-dessus. Dans les variantes décrites plus haut, on pourrait ne sauvegarder qu'une seule information de quantification comme le pas de quantification py, ou toute la ou les tables de quantification considérée(s). Dans une solution alternative, on pourrait sauvegarder en tant qu'information de quantification un ou plusieurs paramètre(s) à partir desquels il 14 2867633 est possible de générer toutes les informations de quantification (pas de quantification, table de quantification) nécessaires au décodage ultérieur du fichier. Dans le cas de l'utilisation de dictionnaires de vecteurs pour la 5 quantification, les informations sauvegardées pourraient être par exemple des valeurs permettant de reconstruire les dictionnaires. Grâce à la taille réduite du fichier, son utilisation comme représentation de l'image est notamment avantageuse pour le stockage de l'image, par exemple sur le disque dur 108, ou sa transmission par exemple au moyen de l'interface de communication 112. De plus, comme expliqué en détail dans la suite, ce fichier pourra êtretranscodé dans un second format sans perte d'informations supplémentaire grâce à l'étape E201 de détermination de pas de quantification compatibles avec ce second format. La figure 3 représente un exemple de procédé de mise en oeuvre de l'étape E201 de détermination des pas de quantification. Ce procédé commence par l'étape E301 au cours de laquelle on initialise le pas de quantification courant, c'est-à-dire que l'on considère le premier pas de quantification à obtenir. Dans le cas mentionné plus haut, il s'agit par exemple du pas de quantification py. On passe ensuite à l'étape E302 où l'unité centrale reçoit, par lecture sur une entrée standard, une valeur brute (en général une valeur souhaitée par l'utilisateur) pe pour le pas de quantification considéré. La lecture sur une entrée standard est, par exemple, la lecture sur le bus de communication 101 d'une valeur entrée par l'utilisateur au moyen du clavier 114. En variante, la valeur souhaitée pe pour le pas de quantification pourrait être lue sur un support d'informations, comme le disque dur 108, ou reçue d'un ordinateur distant par l'interface de communication 112. L'étape suivante E302 d'obtention d'un pas de quantification souhaité (ou pas de quantification brut) pe est suivie d'une étape E303 de vérification de la validité de ce pas de quantification souhaité pe. La validité, c'est-à-dire ici la conformité à certains critères, est non seulement vérifiée à l'égard du codage dont la présente étape fait partie (premier format), mais également pour un second format de codage dans lequel on souhaite que les données codées 2867633 puissent être transcodées sans perte. Dans le cas où le pas souhaité pe est valide (ou conforme), on peut ainsi dire qu'il est compatible avec le second format de codage. Dans l'exemple décrit ici, même si le format du codage en cours (premier format de codage) n'impose pas un pas de quantification entier, l'étape E303 vérifie si le pas de quantification souhaité pe est entier. Selon la variante mentionnée plus haut, on peut même vérifier si le pas souhaité pe est pair. Si l'on détermine à l'étape E303 que le pas souhaité (pas brut) pe est valide, on procède alors à l'étape E304 au stockage du pas souhaité pe, en tant que pas de quantification pc pour la composante courante c, dans la mémoire vive 103 (ou alternativement dans le disque dur 108). Si au contraire, le pas souhaité pe n'est pas déterminé comme valide à l'étape E303, on passe à l'étape E305 de modification du pas souhaité pe. Par exemple, on applique au pas souhaité (ou pas brut) Pe une fonction dont le résultat sera un pas de quantification valide. Dans l'exemple donné ici, on peut utiliser la fonction partie entière pour modifier le pas souhaité Pe en pas valide pc: pc = l nt(pe). En variante, l'étape E305 de modification du pas souhaité pe pourrait consister à répéter en boucle les étapes suivantes: - d'affichage d'un message indiquant que le pas de quantification n'est pas valide au moyen de l'écran 104, - d'entrée d'un nouveau pas de quantification souhaité, par exemple au moyen du clavier 114 (étape équivalente à l'étape E302), de vérification de la validité du nouveau pas de quantification 25 souhaité (étape équivalente à l'étape E303), tant que le pas de quantification nouvellement entré ne correspond pas à un pas de quantification valide, c'est-à-dire conforme à des critères relatifs non seulement au premier format de codage, mais également au second format de codage. Dans tous les cas, lorsque le pas de quantification a été modifié à l'étape E305 de manière à être valide (c'est-à-dire notamment compatible avec le second format de codage différent du codage en cours), il est sauvegardé dans 16 2867633 une mémoire ou un support d'informations selon un procédé identique à celui de l'étape E304. L'étape E305 tant comme d'ailleurs l'étape E304 sont suivies d'une étape E306 au cours de laquelle on détermine si le pas qui vient d'être obtenu et 5 sauvegardé était le dernier pas de quantification à considérer. Si c'est le cas (c'est-à-dire, dans l'exemple précisément décrit ici, si le pas pu,v a été déterminé et sauvegardé), le procédé d'obtention des pas de quantification (résumé à l'étape E201 de la figure 2) est terminé et l'on peut donc passer à l'étape E202 de la figure 2 comme déjà décrit auparavant. A l'inverse, si le pas de quantification traité n'est pas le dernier pas de quantification à déterminer, on passe à l'étape E307 au cours de laquelle on considère le pas de quantification suivant. Dans l'exemple décrit ici, cette étape permet de passer de la détermination du pas de quantification py pour la composante de luminance à la détermination du pas de quantification per,cb pour les composantes de chrominance. L'étape E307 est suivie de l'étape E302 précédemment décrite au cours de laquelle l'unité centrale 101 reçoit une valeur du pas souhaité pour la nouvelle composante considérée. La figure 4 représente les étapes principales d'un procédé de 20 transcodage conforme à l'invention. Le procédé de transcodage commence par une étape E401 de réception de données compressées codées selon le premier format, par exemple sous forme d'un fichier. Le fichier est en général organisé comme une suite de bits ou flux binaire ("bitstream" en anglais) qui décrit sous forme numérique les données compressées (8k,) I. . Les données à transcoder sont, par exemple, lues sur un support d'information, tel que le disque dur 108 ou un disquette 110 inséré dans le lecteur de disquette 109, ou reçues d'un ordinateur distant au moyen de l'interface de communication 112. A l'étape E402, des informations relatives à la quantification sont extraites du fichier des données codées selon le premier format. Ces informations sont, par exemple, un pas de quantification unique, un ensemble de pas de quantification, une table de quantification ou de manière générale un ou plusieurs paramètre(s) avec le(s)quel(s) on peut générer l'ensemble des pas de quantification impliqués dans le codage. Ces informations de quantification déterminent donc avec quel pas de quantification les données du fichier (c'est-à-dire les données du flux binaire reçu) ont été quantifiées lors du codage de ces données selon le premier format. A l'étape E403, le codeur selon un second format de codage est initialisé. Le codeur selon le second format est par exemple réalisé sous la forme d'un logiciel stocké sur le disque dur 108 et dans la mémoire vive 101 lors de son exécution. Dans l'exemple décrit, le second format de codage est un codage selon la norme JPEG. Une fois les informations de quantification extraites et le codeur initialisé, on peut procéder au transcodage composante par composante, et bloc par bloc dans chaque composante, comme expliqué à présent. A l'étape E404, on prend en compte les diverses composantes à considérer, en fonction de la structure du fichier de données au premier format, et l'on fixe un ordre de traitement des diverses composantes (par exemple dans l'ordre des composantes Y, Cr, Cb). On commence donc par le traitement d'une première composante (initialisation de l'étape E405), par exemple la composante de luminance Y. On passe ensuite à l'étape E406 où les données de la composante courante c sont divisées en blocs. Comme précédemment, on référencera les blocs par leur position (k,l) dans l'image qu'ils représentent et on dénotera 8k,1 le bloc de données codées compressées de position (k,l) dans la composante c. Les blocs sont également ordonnancés à l'étape E406, par exemple 25 selon l'ordre de balayage vidéo précédemment mentionné. On peut alors passer à l'étape E407 où l'on initialise le bloc courant à considérer au premier bloc, par exemple dans l'ordre du balayage zigzag. L'étape suivante E408 prévoit un décodage entropique du bloc courant. Ce décodage entropique est naturellement réalisé dans le cadre du premier format de codage et consiste à inverser le codage entropique selon le premier format (c'est-à-dire la fonction F décrite plus haut). Le résultat du décodage entropique pour le bloc courant est un bloc de coefficients Ck,, . Ce bloc est d'ailleurs identique au bloc de coefficients DCT quantifiés qui a eu pour résultat le bloc 8k,, lors de son codage puisque l'étape de codage entropique (voir étape E208 décrite ci-dessus) est une étape sans perte. Ceci est lié au fait que la fonction de codage entropique F est bijective. On peut donc écrire en résumé que le bloc de coefficients Ck,1 est 5 obtenu par la formule: Ck! = F-' (S5,) où F-' est la fonction de décodage entropique selon le premier format de codage, inverse de la fonction F de codage entropique selon le premier format de codage déjà mentionnée. Une fois le décodage entropique du bloc (k,l) courant réalisé, on passe à l'étape E409 où l'on détermine si le bloc courant est le dernier bloc de la composante à traiter (au sens de l'ordonnancement défini à l'étape E406). Dans la négative, on passe à l'étape E410 où le bloc suivant devient le bloc courant, puis à l'étape E408 de décodage entropique du bloc courant précédemment décrite. Si, par contre, il est déterminé à l'étape E409 que le bloc courant est le dernier bloc de la composante courante, on passe à l'étape E411 d'initialisation du codeur JPEG pour la composante courante. On peut remarquer qu'à l'étape E411, le décodage entropique des données codées compressées (ô:).,. a été réalisé pour l'ensemble des blocs de la composante courante c. L'étape d'initialisation E411 est suivie d'une étape E412 d'obtention et d'inscription de la table de quantification relative au second format de codage. La table de quantification est obtenue à partir des informations de quantification extraites lors de l'étape E402, relatives au premier format de codage. Divers exemples d'obtention d'une table de quantification à partir d'informations de quantification sont donnés dans la suite de la description en référence aux figures 5 à 7. Les informations de quantification sont avantageusement compatibles avec le second format, comme cela a par exemple été décrit plus haut en 30 référence au procédé de codage de la figure 2. Grâce à la compatibilité ou conformité au second format des informations de quantification relatives au premier format, les pas de 19 2867633 quantification utilisés pour le codage selon le premier format sont également utilisables en ce qui concerne le codage selon le second format. Grâce à leur compatibilité, ils pourront en effet être utilisés tels quels lors de l'étape de quantification inverse effectuée à date ultérieure pour décoder les données codées selon le second format. Dans l'exemple décrit en détail ici, les pas de quantification extraits étant entiers (c'est-à-dire compatibles avec le format JPEG) bien que le premier format de codage ne le requiert pas, ils peuvent être utilisés directement dans la table de quantification JPEG construite à l'étape E412. De plus, puisque les pas de quantification n'ont pas à être modifiés, les coefficients DCT quantifiés peuvent être utilisés tels quels. Au contraire, s'il était nécessaire de modifier les pas de quantification, les coefficients DCT quantifiés devraient également être modifiés afin que le produit des coefficients DCT quantifiés par le pas de quantification applicable demeure constant ou varie le moins possible, au risque de créer de nouvelles pertes d'informations. L'étape suivante E413 de codage selon le second format, ici selon le standard JPEG, peut donc être appliquée aux coefficients (Ck,l).. obtenus lors du décodage entropique de l'étape E408, ce qui permet d'éviter toute perte d'informations. Si l'on désigne par C l'ensemble des coefficients DCT quantifiés dans la composante courante c (c'est-à-dire C = tCk,lk 2867633 On peut remarquer, par ailleurs, que le codage réalisé à l'étape E413 peut être un codage adaptatif puisque tous les blocs de la composante courante sont déjà décodés à l'étape E411 comme on le notait précédemment. Lorsque toutes les données relatives à la composante courante ont été codées selon le second format de codage au moyen de la fonction G, on passe à l'étape E414 où l'on détermine si la composante courante c est la dernière composante à traiter (composante Cb dans l'exemple décrit plus particulièrement ici). Dans la négative, on incrémente la composante courante (étape E415) 10 et l'on retourne à l'étape E406 de division et d'ordonnancement des blocs pour la composante courante. Dans l'affirmative, le codage selon le second format de codage a été réalisé pour toutes les composantes et l'on met naturellement fin au procédé de transcodage à l'étape E416. La figure 5 illustre un premier exemple d'obtention d'une table de quantification pour le second format. Dans ce premier exemple, la table de quantification Tc est obtenue à partir d'un pas de quantification p stocké comme un paramètre dans le fichier des données codées au premier format et valable pour toutes les composantes et dans chaque composante, pour toutes les fréquences. Ce paramètre est donc naturellement lu dans la suite de bits reçue ("bitstream"), puis utilisé comme indiqué ci-après. On rappelle que chaque valeur de la table de quantification est un pas de quantification relatif à certains coefficients particuliers, en général les coefficients d'une fréquence spatiale donnée dans une composante donnée. Dans le cas du premier exemple, on obtient donc simplement la table de quantification Tc relative à une composante par remplissage de cette table avec la valeur p, comme indiqué à la figure 5. Le pas de quantification p étant valable pour toutes les composantes 30 dans le cas présent (voir ci-dessus), on peut soit utiliser la table Tc pour toutes les composantes (association de la table de même index à toutes les composantes selon la norme JPEG), soit définir une table identique à la table Tc 21 2867633 pour chaque composante (association d'une table d'index spécifique pour chaque composante). On peut remarquer que, si le paramètre p est choisi entier, la table de quantification et les pas de quantification ainsi obtenus pourront être utilisés pour le codage au second format (codage JPEG), c'est-à-dire qu'ils constituent une table de quantification et des pas de quantification compatibles avec le second format de codage. La figure 6 illustre un second exemple d'obtention d'une table de quantification pour le second format. Dans cet exemple, le paramètre q reçu avec les données codées selon le premier format de codage définit le pas de quantification pour la composante de luminance Y, et ce pour tous les coefficients (c'est-à-dire quelle que soit la fréquence spatiale considérée). Par ailleurs, dans ce second exemple, le pas de quantification des composantes de chrominance Cr et Cb est défini comme étant égal à la moitié du paramètre q (cette définition peut par exemple faire partie de la définition du premier format considéré ici). L'obtention d'une table de quantification va donc ici être réalisée par le remplissage avec le paramètre q d'une table de quantification Ty relative à la composante de luminance Y et le remplissage avec la valeur (q/2) d'une table de 20 quantification Tc,,cb relative aux composantes de chrominance Cr et Cb, comme illustré sur la figure 6. Si le pas de quantification q relatif au codage de la composante de luminance selon le premier format a été choisi pair (comme indiqué dans l'un des cas évoqués plus haut), c'est-à-dire compatible avec le second format au sens de ce second exemple, la table de quantification Tcr.cb est composée de pas de quantification entiers et peut donc être utilisée telle quelle comme une table de quantification pour le second format de codage (ici JPEG) avec les avantages qui en découlent comme déjà indiqué. La figure 7 présente un troisième exemple d'obtention d'une table de 30 quantification pour le second format. Les informations de quantification du premier format de codage présentes dans le fichier à transcoder sont par exemple définies par le paramètre R et, pour chaque composante c, par le paramètre qc. 22 2867633 Selon le premier format de codage considéré dans ce troisième exemple, ces paramètres définissent les pas de quantification pci ' relatifs au codage selon le premier format de la manière suivante: p''' = I nt(q.R'i)É Bien qu'ils dépendent de la composante et de la fréquence spatiale auxquelles ils s'appliquent, les pas de quantification ainsi définis sont compatibles avec le second format considéré ici (standard JPEG) car ils sont entiers. Comme indiqué à la figure 7, on obtiendra donc les tables de 10 quantification T,, et Tcr,cb par remplissage avec les pas de quantification déjà utilisés pour le codage selon le premier format puisqu'ils sont compatibles avec le second format. 23 2867633 Revendications 1. Procédé de transcodage de données codées selon un premier format en données codées selon un second format, caractérisé en ce qu'il 5 comprend les étapes suivantes: - décodage entropique (E408) des données codées selon le premier format au moyen d'un décodeur adapté au premier format pour obtenir des coefficients quantifiés; - obtention (E402) d'une table de quantification (Tc; Ty, Tcr,cb) compatible avec le second format en fonction d'au moins un paramètre (p; q; R, qr, gcr,cb) relatif aux données codées selon le premier format; - codage entropique (E413) par le codeur adapté au second format des coefficients quantifiés en données codées selon le second format; - inscription (E412) de la table de quantification obtenue (Tc; Ty, Tcr, cb) dans les données codées selon le second format. 2. Procédé de transcodage selon la revendication 1, caractérisé en ce que ledit au moins un paramètre est un pas de quantification relatif au premier format. 3. Procédé de transcodage selon la revendication 2, caractérisé en ce que le pas de quantification relatif au premier format est entier. 4. Procédé de transcodage selon la revendication 2, caractérisé en ce 25 que le pas de quantification relatif au premier format est pair. 5. Procédé de transcodage selon l'une des revendications 1 à 4, caractérisé en ce que le premier format est différent du second format. 6. Procédé de transcodage selon l'une des revendications 1 à 5, caractérisé en ce que le second format est un format JPEG. 24 2867633 7. Procédé de codage d'une image définie par des données d'image en données codées selon un premier format, caractérisé en ce qu'il comporte les étapes suivantes: - détermination d'un pas de quantification (E201) compatible avec un 5 second format différent du premier format; transformation spatio-fréquentielle (E206) des données d'image en données fréquentielles; - quantification (E207) en fonction du pas de quantification compatible des données fréquentielles en coefficients quantifiés; - codage (E208) au moyen d'un codeur adapté au premier format des coefficients quantifiés en données codées. 8. Procédé de codage selon la revendication 7, caractérisé en ce que l'étape de détermination d'un pas de quantification compatible comprend les 15 étapes de: - réception (E302) d'un pas de quantification souhaité ; - obtention du pas de quantification compatible à partir du pas de quantification souhaité. 9. Procédé de codage selon la revendication 8, caractérisé en ce que l'étape d'obtention du pas de quantification compatible comporte les étapes suivantes: - vérification (E303) que le pas de quantification souhaité est compatible; - en cas de vérification négative, réception (E305) d'un autre pas de quantification souhaité ; - en cas de vérification positive, définition (E304) du pas de quantification compatible comme étant égal au pas de quantification souhaité. 10. Procédé selon la revendication 9, caractérisé en ce que les étapes de vérification et de réception d'un autre pas de quantification souhaité sont répétées tant que ledit autre pas de quantification souhaité n'est pas compatible. 2867633 11. Procédé selon la revendication 8, caractérisé en ce que l'étape d'obtention du pas de quantification compatible est une étape d'obtention d'un pas de quantification entier. 12. Procédé selon la revendication 11, caractérisé en ce que l'étape d'obtention du pas de quantification compatible comprend les étapes suivantes: - calcul de la partie entière du pas de quantification souhaité ; - définition du pas de quantification compatible comme étant égal à ladite partie entière. 13. Procédé selon la revendication 8, caractérisé en ce que l'étape d'obtention du pas de quantification compatible est une étape d'obtention d'un pas de quantification pair. 14. Procédé selon l'une des revendications 8 à 13, caractérisé en ce que le codage est un codage entropique. 15. Procédé de codage selon l'une des revendications 8 à 14, caractérisé en ce que le second format est un format JPEG. 16. Dispositif de transcodage de données codées selon un premier format en données codées selon un second format, caractérisé en ce qu'il comprend: un décodeur adapté au premier format pour décodage entropique 25 des données codées selon le premier format en coefficients quantifiés; - des moyens pour obtenir une table de quantification (Tc; Ty, Tcr,cb) compatible avec le second format en fonction d'au moins un paramètre (p; q; R, qr, gcr,cb) relatif aux données codées selon le premier format; - un codeur adapté au second format pour codage entropique des 30 coefficients quantifiés en données codées selon le second format; - des moyens pour inscrire la table de quantification obtenue (Tc; Ty, Tcr,cb) dans les données codées selon le second format. 26 2867633 17. Dispositif de transcodage selon la revendication 16, caractérisé en ce que ledit au moins un paramètre est un pas de quantification relatif au premier format. 18. Dispositif de transcodage selon la revendication 17, caractérisé en ce que le pas de quantification relatif au premier format est entier. 19. Dispositif de transcodage selon la revendication 17, caractérisé en ce que le pas de quantification relatif au premier format est pair. 20. Dispositif de transcodage selon l'une des revendications 16 à 19, caractérisé en ce que le premier format est différent du second format. 21. Dispositif de transcodage selon l'une des revendications 16 à 20, 15 caractérisé en ce que le second format est un format JPEG. 22. Dispositif de codage d'une image définie par des données d'image en données codées selon un premier format, caractérisé en ce qu'il comprend: - des moyens de détermination d'un pas de quantification compatible avec un second format différent du premier format; - des moyens pour transformation spatio-fréquentielle des données d'image en données fréquentielles; - des moyens de quantification en fonction du pas de quantification compatible des données fréquentielles en coefficients quantifiés; - un codeur adapté au premier format pour codage des coefficients quantifiés en données codées. 23. Dispositif de codage selon la revendication 22, caractérisé en ce que les moyens de détermination d'un pas de quantification compatible 30 comprennent: - des moyens de réception d'un pas de quantification souhaité ; - des moyens d'obtention du pas de quantification compatible à partir du pas de quantification souhaité. 24. Dispositif de codage selon la revendication 23, caractérisé en ce que les moyens d'obtention du pas de quantification compatible génère un pas de quantification entier. 25. Dispositif de codage selon la revendication 23, caractérisé en ce que les moyens d'obtention du pas de quantification compatible génère un pas de quantification pair. 26. Dispositif de codage selon l'une des revendications 22 à 25, 10 caractérisé en ce que le second format est un format JPEG. 27. Moyen de stockage d'informations qui peut être lu par un ordinateur ou un microprocesseur, contenant des instructions d'un programme d'ordinateur pour exécuter les étapes du procédé selon l'une des revendications 1 à 15. 28. Moyen de stockage d'informations partiellement ou totalement amovible, qui peut être lu par un ordinateur ou un microprocesseur, contenant des instructions d'un programme d'ordinateur pour exécuter les étapes du procédé selon l'une des revendications 1 à 15. 29. Programme d'ordinateur qui peut être chargé dans un appareil programmable, caractérisé en ce qu'il comprend des séquences d'instructions ou des portions de code logiciel pour mettre en oeuvre les étapes du procédé selon l'une des revendications 1 à 15, lorsque ce programme d'ordinateur est chargé et exécuté par l'appareil programmable.