Brevet FR2796778A1 — publié le 20010126

La présente invention concerne un procédé de compression par bloc de données numériques utilisé notamment dans le domaine de la compression d'image numérique fixe ou mobile. Elle concerne également un dispositif de compression adapté à mettre en #uvre le procédé de compression conforme à l'invention. Le domaine technique de l'invention est la compression avec pertes de données numériques représentatives de grandeurs physiques, et notamment représentatifs de la valeur de pixel pour une image numérique, pour des applications telles que la visiophonie sur réseau de transmission dans lesquelles sont utilisés des procédés de compression en temps réel. L'invention s'applique plus particulièrement à des systèmes de compression mis en #uvre par implémentation logiciel, sur un système d'exploitation capable de rendre visible les ressources de calcul. Le système d'exploitation peut faite partie notamment d'un ordinateur hôte générique, aux ressources partagées et limitées notamment en ce qui concerne les ressources calculatoires. On considère plus particulièrement un procédé de compression dans lequel les données à comprimer sont tout d'abord partitionnées en un ensemble de blocs, chacun de ces blocs étant codé par une technique de codage choisie parmi un ensemble fini de techniques de codage admissibles. Généralement, les techniques de codage avec perte sont qualifiées d'une part en terme de distorsion, une distorsion de plus en plus faible correspondant à une approximation de plus en plus fine du signal numérique codé, et d'autre part, en terme de débit, c'est-à-dire de coût de codage. De manière classique, on choisit les différentes techniques de codage appliquées en fonction d'un compromis débit-distorsion. Il s'agit en particulier de minimiser au mieux la distorsion sous la contrainte d'un débit alloué ou, inversement, de minimiser au mieux le débit de codage sous la contrainte d'une distorsion donnée. Cependant, la complexité des algorithmes de compression utilisés classiquement dans le codage de données numériques, et en particulier lors du codage d'un signal vidéo, est très importante et rend très difficile la compression en temps réel d'un signal numérique de résolution raisonnable. Une technique permettant de prendre en compte cette notion de temps a été divulguée dans un document émis dans le cadre de la norme MPEG (en anglais Moving Picture Expert Group) intitulé "Informative annex about the use and implementation of complexity estimation and CGD", par Marco Mattavelli et Sylvain Brunetton, Document ISO/IECJTCl/SC29[WGl 1/MPEG98/M3073, Février 1998. Cette technique appelée CGD (acronyme de Computational Graceful Degradation en anglais) permet de délivrer lors de la décompression d'un signal numérique codé, un signal décodé de moindre qualité lorsque la qualité désirée ne peut être obtenue en temps réel avec les ressources de calcul disponibles sur le système d'exploitation mettant en #uvre le décodage. Cependant, cette technique permet seulement d'adapter le décodeur aux ressources de calculs du système, en fonction principalement de la structure du flot binaire généré par l'opération de compression utilisée, en l'occurrence une compression selon la norme MPEG-4. La présente invention vise au contraire un procédé de compression qui puisse s'adapter aux ressources calculatoires du système le mettant en ceuvre. La présente invention concerne ainsi un procédé de compression par bloc de données numériques représentatives de grandeurs physiques, comprenant une étape de configuration de codage dans laquelle à chaque bloc de données numériques est associée une technique de codage choisie parmi un ensemble de techniques de codage admissibles en fonction d'un critère. Conformément à l'invention, ce critère de choix est une fonction d'optimisation du débit ou de la distorsion caractérisant la configuration de codage sous contrainte d'une ressource calculatoire donnée. Le procédé de compression conforme à l'invention permet de choisir une configuration de codage par bloc utilisant au mieux une ressource calculatoire en prenant en compte explicitement un compromis entre la complexité calculatoire et la performance en terme de débit-distorsion de chaque technique de codage disponible. En règle générale, plus la ressource calculatoire est abondante et plus la performance débit-distorsion est élevée. Ainsi, pour une ressource en temps de calcul donnée, il s'agit de la consommer au mieux en maximisant la performance débit-distorsion. De préférence, ce procédé de compression comprend une étape de calcul pour chaque bloc de données numériques et pour chaque technique de codage d'une ressource calculatoire consommée élémentaire par ladite technique de codage exprimée en temps de calcul. Ainsi, chaque technique de codage est caractérisée en terme de complexité calculatoire consommée, et non plus seulement en terme de débit et de distorsion. De manière avantageuse, la ressource calculatoire incorpore le temps de calcul pour l'obtention de ladite ressource calculatoire consommée élémentaire et la ressource calculatoire consommée pour la résolution de la fonction d'optimisation. On utilise ainsi une contrainte en ressource calculatoire qui intègre à la fois la ressource consommée pour l'obtention de grandeurs élémentaires mais aussi la ressource consommée par l'algorithme d'optimisation afin de connaître la ressource calculatoire effectivement disponible pour réaliser la compression des données numériques. Selon différents modes de réalisation particulièrement pratiques de l'invention, - la fonction d'optimisation est adaptée à minimiser un débit associé à la configuration de codage pour une complexité calculatoire inférieure à une ressource calculatoire donnée ; ou - la fonction d'optimisation est adaptée à minimiser une distorsion moyenne associée à la configuration de codage pour une complexité calculatoire inférieure à une ressource calculatoire donnée ; ou - la fonction d'optimisation est adaptée à minimiser une distorsion en valeur supérieure associée à la configuration de codage pour une complexité calculatoire inférieure à une ressource calculatoire donnée. Selon une autre caractéristique préférée de l'invention, le procédé de compression comprend une étape préalable de choix d'un critère parmi une fonction d'optimisation du débit ou de la distorsion caractérisant la configuration de codage sous contrainte d'une ressource calculatoire donnée, une fonction d'optimisation du débit caractérisant la configuration de codage sous contrainte d'une distorsion donnée et une fonction d'optimisation de la distorsion caractérisant la configuration de codage sous contrainte d'un débit donné. Le procédé de compression permet ainsi avantageusement d'opérer une optimisation usuelle de la performance débit-distorsion (c'est-à-dire une minimisation de la distorsion sous la contrainte d'un débit donné ou une minimisation d'un débit sous la contrainte d'une distorsion donnée) lorsque aucune contrainte de temps de calcul n'est requise pour la compression du signal numérique. En pratique, ledit ensemble de techniques de codage admissibles comprend des techniques de codage inter, telles qu'un codage prédictif par compensation de mouvement, un codage par prédiction temporelle ou un codage par prédiction multilinéaire, et des techniques de codage intra, telles qu'un codage par transformation spectrale ou un codage par quantification vectorielle. Le procédé de compression conforme à l'invention permet ainsi de choisir parmi des techniques de codage classiques celles qui répondent le mieux au critère de choix. Selon une caractéristique préférée de l'invention, qui permet encore d'améliorer le codage d'un ensemble de données numériques, le procédé de compression comprend en outre une étape de partitionnement en blocs de données numériques représentatives de grandeurs physiques, dans laquelle le partitionnement de blocs est réalisé par un partitionnement sous contrainte d'une ressource calculatoire donnée. On réalise ainsi un partitionnement des données numériques qui permet d'utiliser au mieux les ressources calculatoires disponibles du système mettant en #uvre le procédé de compression. En pratique, la présente invention est particulièrement bien adaptée à un procédé de compression comprenant une étape de partitionnement en blocs de données numériques représentatives d'une image numérique ou d'un signal vidéo numérique. Corrélativement, la présente invention concerne un dispositif de compression par bloc de données numériques représentatives de grandeurs physiques, comprenant des moyens de configuration de codage adaptés à associer à chaque bloc de données numériques, une technique de codage choisie parmi un ensemble de techniques de codage admissibles en fonction d'un critère, le critère de choix étant une fonction d'optimisation du débit ou de la distorsion caractérisant la configuration de codage sous contrainte d'une ressource calculatoire donnée. Ce dispositif de compression présente des caractéristiques et des avantages analogues à ceux décrits précédemment pour le procédé de compression conforme à l'invention. En pratique, ce dispositif de compression est incorporé dans un microprocesseur, une mémoire morte étant adaptée à mémoriser un programme de compression par bloc de données numériques, et une mémoire vive comprenant des registres pour mémoriser des variables modifiées lors de l'exécution dudit programme. Selon une caractéristique avantageuse de l'invention, le microprocesseur est adapté à fournir la valeur d'une ressource calculatoire donnée à un instant donné. Le procédé de compression mis en ceuvre sur ce dispositif peut ainsi avantageusement choisir une configuration de codage en utilisant une fonction d'optimisation sous une contrainte de ressource calculatoire déterminée par le microprocesseur. La présente invention concerne également un ordinateur, un appareil de traitement d'une image numérique, une imprimante numérique, un appareil photographique numérique, une caméra numérique ou un système de visiophone sur réseau de transmission comprenant un dispositif de compression conforme à l'invention. Elle vise également un moyen de stockage ou de support d'un programme informatique, incorporé de manière fixe ou amovible dans un dispositif de compression, comprenant des instructions de programme ou des portions de code logiciel adaptées à mettre en ceuvre le procédé de compression conforme à l'invention. Les avantages de cet ordinateur, appareil de traitement d'une image numérique, imprimante numérique, appareil photographique numérique, caméra numérique, système de visiophone sur réseau de transmission ou moyen de stockage ou de support d'un programme d'ordinateur sont analogues à ceux du procédé de compression qu'ils mettent en #uvre. D'autres particularités et avantages de l'invention apparaîtront encore dans la description ci-après. Aux dessins annexés, donnés à titre d'exemples non limitatifs - la figure 1 est un algorithme général du procédé de compression appliqué à une image numérique 1 selon l'invention ; - la figure 2 est un algorithme détaillant l'étape de configuration de codage du procédé de compression selon un premier mode de réalisation de l'invention ; - les figures 3 et 4 sont des algorithmes détaillant l'étape de configuration de codage du procédé de compression selon un second mode de réalisation de l'invention -, - la figure 5 est un algorithme illustrant une variante de la figure 4 selon un troisième mode de réalisation de l'invention ; et - la figure 6 est un diagramme bloc illustrant un ordinateur adapté à mettre en ceuvre le procédé de compression conforme à l'invention. On va décrire ci-après un procédé de compression par bloc conforme à l'invention appliqué à un signal numérique vidéo couleur. Bien entendu, les données numériques à compresser peuvent être toutes données représentatives de grandeurs physiques, et notamment une image numérique, fixe ou mobile, en couleur ou noir et blanc. Dans un signal vidéo, chaque image 1 à comprimer comprend trois composantes : une composante de luminance et deux composantes de chrominance. On considère dans le schéma de compression décrit ci-après que les composantes sont comprimées séquentiellement et indépendamment les unes des autres. On ne décrira dans la suite que la compression d'une de ces composantes. Le procédé de compression d'une image numérique 1 comprend tout d'abord, en référence à la figure 1, une étape de partitionnement El de chaque composante à comprimer en un ensemble de blocs. Ainsi, chaque composante est divisée en blocs de taille pxp, typiquement 16xl6 ou M. Bien entendu, ces blocs pourraient ne pas être carrés. Pour chaque composante de taille LxH, il existe blocs à coder. On note ces blocs dans la suite de la description ai, avec i Dans ce mode de réalisation de l'invention, et de manière non limitative, le procédé de compression comprend une étape préalable de choix d'un critère E2 en fonction duquel sera choisie, pour chaque bloc ai, une technique de codage, notée mj, avec j = 1,...,K, choisie parmi K techniques de codage admissibles. Le choix du critère réalisé à l'étape de choix E2 peut être effectué parmi plusieurs fonctions d'optimisation telles que : - des fonctions d'optimisation du débit, caractérisant chaque configuration de codage {mj[ai]) sous contrainte d'une distorsion donnée, ou - des fonctions d'optimisation de distorsion, caractérisant chaque configuration de codage (mj[ai]j sous contrainte d'un débit, ou conformément à l'invention, - d'optimisation du débit ou de la distorsion caractérisant chaque configuration de codage #mj[ai]j sous contrainte d'une ressource calculatoire donnée. On peut distinguer parmi les techniques de codage utilisées classiquement dans les schémas de compression d'un signal vidéo, les techniques de codage dites inter et les techniques de codage dites intra. Pour mémoire, dans les techniques de codage inter, chaque bloc considéré est codé en référence à un bloc d'une image dite de référence, et dans les techniques de codage intra, chaque bloc considéré est codé uniquement en référence à l'image courante à laquelle il appartient. Parmi les techniques de codage inter, on peut citer notamment le codage prédictif par compensation de mouvement. Parmi les techniques de codage intra, on peut citer par exemple le codage par transformée spectrale du signal numérique (transformée discrète en cosinus ou transformée en ondelettes discrètes) et le codage par quantification vectorielle. Ces techniques de codage sont utilisées dans les schémas de compression standards tels que H.261 et H.263 de VITU (Union International des Télécommunications) et MPEG-1, MPEG-2 et MPEG-4 de lISO (Organisation Internationale de Standardisation) et n'ont pas besoin d'être décrites en détails ici. Ces techniques de codage peuvent se distinguer, outre par leur nature comme mentionné précédemment, également par un choix particulier de paramètres de codage (par exemple un choix particulier de quantificateurs pour un codage par transformée). Chaque technique de codage mj est caractérisée à la fois par des grandeurs de débit, de distorsion et de complexité calculatoire. Le débit, noté r(mj[ai]), est exprimé en bits et mesure la longueur du code de sortie représentant le bloc ai codé par la technique mj. Ce débit comprend à la fois la longueur d'un identifiant de la technique mj et la longueur des paramètres ou données éventuelles nécessaires au décodage. Cette valeur de débit r(mj[ai]) peut être déterminée à l'avance en étant soit fixée dans le cas d'un code à longueur fixe soit prédite ou estimée dans le cas d'un codage à longueur variable en fonction d'un modèle de probabilité. Par exemple, dans le cas d'un codage arithmétique dans lequel on estime de manière adaptative la probabilité d'apparition p de chaque symbole de codage, une estimation de la longueur du code peut être donnée, en nombre de bits estimés, par la fonction -1092(P) (appelée information propre ou self- information en anglais). La distorsion résultante, notée d(ai, âi[mj]), exprime la distance d entre le bloc original ai et son approximation âi[mj] obtenue par la technique de codage mj. Une mesure de distance habituellement utilisée en compression d'image est l'erreur quadratique moyenne. Celle-ci est généralement calculée entre le bloc ai et le bloc reconstruit âj[mj], ce qui nécessite une consommation de ressources calculatoires. La valeur de la distorsion peut également être prédite en utilisant par exemple un modèle débit-distorsion adapté à la technique de codage considérée. De tels modèles débit-distorsion sont décrits notamment dans l'ouvrage intitulé Nector quantization and signal compression", de A. Gersho et R. Gray, Kluwer Academic Publisher, 1992 pour le codage par quantification vectorielle. Enfin, la complexité, notée c(mj[ai]), exprime la ressource calculatoire consommée par l'application de la technique mj sur le bloc ai. Cette ressource calculatoire peut être exprimée comme le temps machine du processus de codage. On pourrait considérer d'autres mesures de complexité prenant en compte la quantité et le type d'opérations élémentaires effectuées par le processeur (CPU) de la machine ainsi que les communications de données nécessaires à l'exécution du processus de codage. Des moyens de modélisation et de mesure de complexité sont donnés par exemple dans le document émis dans le cadre de la norme MPEG (en anglais Moving Picture Expert Group) intitulé "Informative annex about the use and implementation of complexity estimation and CGD", par Marco Mattavelli et Sylvain Brunetton, Document ISO/IECJTCl/SC29/WG11/MPEG98/M3073, Février 1998, et dans le document intitulé "Predicting MPEG Execution Times" de Andy C. Bavier et ai, Department of Computer Science, the University of Arizona, Sigmetrics'98, proceedings page 131, Juin 98. On vérifie généralement que le temps de calcul mesuré à l'aide d'appels système (correspondant sur un système d'exploitation du type UNIX à une complexité en temps CPU) varie sensiblement linéairement avec le nombre d'opérations élémentaires réalisées par chaque technique de codage. Pour des techniques de codage à complexité "régulière", c'est-à-dire ne dépendant pas des données du bloc à coder ai, un moyen simple d'estimer la complexité cj pour chaque technique de codage mj, est de réaliser une estimation par moindres carrés sur des mesures Ci = nicj + Co où Ci est la mesure de temps de calcul, ni représente le nombre d'appels à la technique de codage considérée pour plusieurs valeurs de ni et Co représente une valeur d'offset résiduelle supposée constante. La valeur estimée est bien entendu dépendante de la machine hôte, du système d'exploitation, du compilateur et des options de compilation utilisés pour générer le programme exécutable, mais elle peut être réalisée une fois pour toute lors d'une phase d'initialisation par exemple avant le début de la compression. On considère dans cet exemple de réalisation que l'on dispose d'un ensemble E de quatre techniques de codage admissibles. Les techniques citées ci-après sont bien connues de l'état de la technique et ne sont décrites que brièvement ci-après. Le code identifiant la technique de codage peut être codé en longueur fixe sur 2 bits, l'application de chacune de ces techniques étant considérées équiprobable a priori. Une première technique ml de l'ensemble E est un codage inter par prédiction temporelle. Dans une telle technique, le bloc courant ai de l'image à l'instant t est considérée comme le bloc correspondant à la même position spatiale dans l'image de référence qui peut être l'image précédente à l'instant (t- 1), de telle sorte que âi(t) âi(t-1). Cette technique ne nécessite la transmission d'aucun paramètre. On a donc r(mi[ai]) r(mi) 2 bits. On peut constater qu'en pratique, pour un ordinateur et un compilateur usuels, la complexité calculatoire est proportionnelle au nombre de pixels du bloc, soit c(mi[ai]) 2 xc(mi). Cette complexité correspond au calcul de la distorsion. Le facteur de proportionnalité c(mi) est estimé par moindres carrés sur un ensemble de mesures de temps de calcul obtenues pour différentes valeurs de taille de bloc. Une deuxième technique M2 de l'ensemble E est un codage inter par compensation de mouvement. Dans une telle technique, le bloc courant ai de l'image à l'instant t est prédit au sens du mouvement par un bloc déplacé de l'image de référence qui peut être l'image précédente à l'instant (M). Le déplacement du bloc est estimé parmi un ensemble de solutions possibles (ensemble appelé fenêtre de recherche) par différentes techniques connues de l'homme de l'art et qu'il n'est pas nécessaire de détailler ici. Ces techniques nécessitent la transmission du vecteur de déplacement pour le décodage. On considère à titre d'exemple un code à longueur fixe : pour une fenêtre de recherche de taille (2w+I) x (2w+l), on utilise un code de longueur 1092(4W2 +4w) arrondi à la valeur entière supérieure. Par exemple, pour w=2, un code de 5 bits est nécessaire et par conséquent, on a r(M2[ai]) r(M2) bits. On constate comme précédemment qu'en pratique, pour un ordinateur et un compilateur usuels, la complexité calculatoire est proportionnelle au nombre de pixels du bloc, Soit C(M2[ai]) p2XC(M2). Cette complexité correspond au calcul de la distorsion lors de la recherche du meilleur vecteur de déplacement. Le facteur de proportionnalité C(M2) est estimé par moindres carrés sur un ensemble de mesures de temps de calcul obtenues pour différentes valeurs de taille de bloc. Une troisième technique M3 de l'ensemble E est un codage inter par prédiction multilinéaire telle que décrite dans la demande de brevet français 97 08647 au nom de la Demanderesse. Cette technique nécessite la transmission de quatre coefficients de prédiction et d'une valeur d'offset. On a donc r(m3[ai]) r(M3) 2+13 bits. On montre également qu'en pratique, pour un ordinateur et un compilateur usuels, la complexité calculatoire est proportionnelle au nombre de pixels du bloc, Soit C(M3[ai]) 2 xc(M,3)- Le facteur de proportionnalité C(M3) est estimé par moindres carrés sur un ensemble de mesures de temps de calcul obtenues pour différentes valeurs de taille de bloc. Une quatrième technique M4 de l'ensemble E peut être un codage intra par quantification vectorielle hiérarchique par table d'adressage (en anglais Hierarchical Table Look-up Vector Quantization ou HTLVQ). Cette technique est détaillée par exemple dans l'article intitulé "Constrained and Recursive Hierarchical Table Look-up Vector Quantization" de N. Chaddha, Proceedings of the Data Compression Conference, Avril 1996. Cette technique nécessite la transmission de l'indice de quantification indiquant le vecteur représentant au mieux le bloc à coder de dimension pxp. Le débit nécessaire dépend du cardinal du dictionnaire de quantification utilisé. Si on utilise un dictionnaire de cardinal égal à 256, un codage sur 8 bits est suffisant. On a donc r(M4[ai]) r(M4) bits. Ici aussi, on constate qu'en pratique, pour un ordinateur et un compilateur usuels, la complexité calculatoire est proportionnelle au nombre de pixels du bloc, Soit C(M4[ai]) p2XC(M4). Cette complexité correspond approximativement au nombre d'accès mémoire nécessaire au codage par HTLVQ. Le facteur de proportionnalité C(M4) est estimé par moindres carrés sur un ensemble de mesures de temps de calcul obtenues pour différentes valeurs de taille de bloc. Conformément à l'invention, le critère de choix utilisé pour déterminer la configuration de codage lors d'une étape de configuration E3 est une fonction d'optimisation du débit ou de la distorsion caractérisant la configuration de codage sous contrainte d'une ressource calculatoire donnée. Dès lors que chaque technique de codage mj est caractérisée comme décrit précédemment en terme de complexité calculatoire c(mj) et au moins en terme de débit ou de distorsion, il est possible d'utiliser une fonction d'optimisation qui permet d'utiliser au mieux les ressources calculatoire disponibles sur le système mettant en #uvre le procédé de compression. A l'issue de cette étape de configuration, on dispose d'une combinaison #mj[ai], i=l, .... NI que l'on appelle configuration de codage et qui est optimale au sens du critère choisi calculé sur l'ensemble des blocs ai à compresser. Ainsi, en supposant un codage distinct de chacun des blocs et une implantation séquentielle de procédé de compression, on peut noter: - un débit R égal à la somme des valeurs élémentaires de débit: - une complexité C égale à la somme des valeurs élémentaires de complexité : où Co représente une valeur d'offset intégrant les entrées/sorties de données, les affichages et tout autre traitement de complexité constante indépendante de la configuration de codage, et - une distorsion moyenne ou - une distorsion en borne supérieure le choix de l'une ou de l'autre des mesures de distorsion étant dicté par des considérations d'ordre psycho-visuel pour un signal image ou vidéo ou psycho-acoustique pour un signal audio. Ainsi, dans cet exemple où les données numériques à compresser sont représentatives d'un signal vidéo, on peut considérer qu'une distorsion en borne supérieure est mieux adaptée au sens où l'#il humain est sensible à des variations de forte amplitude localisées spatio-temporelle ment, ce qui est le cas des blocs d'une image vidéo. Ainsi, différentes fonctions d'optimisation peuvent être utilisées pour déterminer la configuration de codage à l'étape E3. La fonction d'optimisation peut être adaptée à minimiser le débit R associé à la configuration de codage pour une complexité calculatoire C inférieure à une ressource calculatoire donnée, notée Ca : La fonction d'optimisation peut également être adaptée à minimiser une distorsion moyenne D associée à la configuration de codage pour une complexité calculatoire C inférieure à une ressource calculatoire donnée Ca : Enfin, la fonction d'optimisation peut être adaptée à minimiser une distorsion en valeur supérieure D associée à la configuration de codage pour une complexité calculatoire C inférieure à une ressource calculatoire donnée Ca Dès lors que l'on connaît les valeurs élémentaires caractérisant chaque technique de codage admissible de l'ensemble E, ces fonctions d'optimisation sont des problèmes d'allocation discrète qui peuvent être résolus numériquement par des méthodes connues, la plus simple mais la plus complexe en temps de calcul étant l'énumération exhaustive de l'ensemble des configurations possibles et le choix de la meilleure au sens du critère considéré. Notons que les deux premières fonctions d'optimisation précitées sont équivalentes à un problème d'allocation de ressource séparable que l'on peut résoudre par une technique rapide de programmation convexe bien connue en compression de données numériques et décrite par exemple, dans le cas d'une optimisation débit-distorsion, dans le document intitulé "Joint optimization techniques in image and video coding with applications to multiresolution digital broadcast", de K. Ramchandran, Thèse doctorale à l'Université de Columbia, Juin 1993. On considère à titre d'exemple dans la suite de la description que le critère de choix correspond ici à la fonction d'optimisation précitée de la distorsion en valeur supérieure sous contrainte d'une ressource calculatoire allouée Ca. La contrainte en ressource calculatoire incorpore également le temps de calcul C. pour l'obtention des ressources calculatoires consommées élémentaires et une ressource calculatoire consommée C. pour la résolution de la fonction d'optimisation de telle sorte que la ressource calculatoire effectivement disponible est Ca' Ca - Ce - C,. Evidemment, si Ca' est négatif, la compression n'est pas possible. Il est donc important de connaître à l'avance (Cest-à-dire sans consommer de ressource calculatoire) ou d'estimer rapidement les grandeurs élémentaires nécessaires à la fonction d'optimisation et d'utiliser un algorithme rapide d'optimisation. La résolution de la fonction d'optimisation de la distorsion en valeur supérieure va maintenant être décrite en détail dans un premier mode de réalisation de l'invention illustré à la figure 2. Cet algorithme de résolution de la fonction d'optimisation comprend tout d'abord une étape de calcul EIO pour chaque bloc ai de données numériques et pour chaque technique de codage mj d'une ressource calculatoire consommée élémentaire c par la technique de codage exprimée en temps de calcul. Des exemples d'estimation de la valeur élémentaire de la ressource calculatoire consommée ont été décrits précédemment pour quatre techniques de codage admissibles de l'ensemble E. On suppose bien entendu que le problème admet une solution, c'est- On supposera ici également que les valeurs de distorsion élémentaires d peuvent être estimées a priori par exemple par le biais d'un modèle débit/distorsion reliant une valeur observée ou mesurée (par exemple l'énergie du bloc à coder) à la distorsion. Une étape d'estimation El 2 des distorsions d(ai,âi[mj]) pour i et j = 1,...,K est ainsi mise en #uvre. On considère dans une étape de tri E13 la liste triée par valeurs décroissantes des valeurs d(ai,âi[mj]). Soient di(ai(j),âi(,)[mj(1)1) avec 1=1,...,NxK, ces valeurs triées par ordre décroissant. Du fait de la mesure en distorsion par borne supérieure, chaque valeur de la liste triée représente une valeur admissible de la distorsion globale. Il convient alors de trouver une configuration de codage associée à une distorsion di(ai(j),âi(,)[mj(j)]) de rang 1 le plus grand et ceci dans le domaine admissible de complexité. Une solution est de partir de la configuration de codage de complexité minimale et de modifier séquentiellement les couples mj[ai] de façon à réduire la distorsion jusqu'à consommer totalement la ressource allouée Ca en complexité. Aussi, une étape de détermination El 1 permet-elle de déterminer cette configuration de codage de complexité minimale, c'est-à-dire la configuration constituée de l'ensemble {Mcmin[ai]} où Mc.i#, [ai] argminj.,,.,=,, .... K# C(M.Jail Une étape d'initialisation E14 est ensuite mise en #uvre : la configuration de codage initiale étant constituée de l'ensemble #mcmin[aJJ avec i=l,...,N, la valeur de la ressource calculatoire consommée C avec cette configuration de codage est initialisée par et une valeur booléenne B[ai] est initialisée à "faux" pour tout i=l, .... N. A partir de l'étape E15, on parcoure alors la liste des di(ai(j),âi(l)lmj(')]) pour optimiser la distorsion et on modifie à l'étape E18 les couples mj(j)[ai(j)] correspondant dans la configuration de codage courante en mettant à jour la complexité consommée C = C + c(mj(j)[ai(j)]) - c(mj[ai]). On réduit donc la distorsion aux dépens généralement d'un accroissement en complexité calculatoire. Cependant, on ne doit modifier la technique associée à un bloc ai que si l'on a déjà parcouru dans la liste le couple mcni,[ai] ; dans le cas contraire, la technique par défaut mcrnin[ai] conduit nécessairement à une distorsion inférieure pour une complexité inférieure. Cette condition est satisfaite grâce au test de l'étape E16. On utilise la une valeur booléenne précédemment initialisée à faux pour chaque ai et mise à "vrai" à l'étape E19 dès que l'on atteint la technique de complexité minimale associée au bloc ai. Si la variable booléenne est vraie alors la technique de codage peut être modifiée et on considère la technique suivante à l'étape E20 en incrémentant d'une unité l'indice 1 de parcours de la liste triée. L'algorithme d'optimisation s'arrête lorsque la ressource calculatoire disponible Ca est consommée. Cette condition est satisfaite par un test E17 qui permet, avant l'étape de modification de configuration E18, de vérifier si la valeur courante de complexité C est inférieure à la valeur allouée Ca. Lorsque que cette valeur allouée est atteinte, la configuration de codage courante est alors la configuration choisie. On peut remarquer que le codage effectif des blocs ai ne peut intervenir qu'une fois l'optimisation réalisée. En revenant à la figure 1, cette configuration de codage optimale, qui associe à chaque bloc de données à compresser une technique de codage, est ensuite utilisée de manière classique dans une étape de compression E4 adaptée à coder l'image numérique 1 dans un fichier F de données compressées. Dans ce premier mode de réalisation, on a supposé que l'on pouvait estimer les valeurs des grandeurs élémentaires de distorsion d(ai,âi[mj]). Hors, comme on l'a fait remarquer précédemment, ceci n'est pas toujours possible. On va décrire à présent, en référence aux figures 3 et 4 un second mode de réalisation dans lequel ces grandeurs élémentaires doivent être effectivement calculées sur les données après codage, c'est à dire en nécessitant la consommation d'une ressource calculatoire, associée à chaque technique. Les étapes de calcul des complexités élémentaires E21 et de détermination E22 de la configuration de complexité minimale {mcrnin[ai]) sont identiques aux étapes de calcul E10 et de détermination El 1 décrites précédemment. On calcule ensuite dans une étape de calcul E23 la distorsion élémentaire d(ai,âi[mcmin[ai]]) résultante pour chaque bloc ai avec i=l,...,N. Une étape de calcul E24 permet comme à l'étape d'initialisation E14 décrite précédemment de calculer la valeur initiale de la complexité calculatoire C obtenue pour la configuration de codage de complexité minimale. Les distorsions initiales sont stockées à l'étape de stockage E25 (avec l'indice du bloc et les paramètres de codage associés à la technique) dans une liste triée par valeurs décroissantes de distorsions di(ai(j),âi(,)[mj(j)]) ## dl+,(ai(j,j),âi(,.,)[mj(j.1)]) avec mj(j)[ai(i)] mcrnin[ai(j)] dans l'état initial. L'algorithme procède alors en testant, pour le bloc de distorsion maximale situé en haut de liste, les autres techniques de codage qui n'ont pas encore été testées ; si l'on obtient une distorsion inférieure, on met alors à jour la configuration de codage en modifiant l'indice de la méthode pour le bloc considéré (et les paramètres de codage associés) puis on opère une mise à jour de l'ordonnancement de la liste en déplaçant le bloc du haut de la pile au rang correspondant à la nouvelle valeur de la distorsion. Il s'agit en fait d'un algorithme de gestion de pile de taille fixe avec priorité à l'élément de distorsion maximale. Le traitement de la pile E26 est réalisé tant que la complexité courante C reste inférieure à la ressource calculatoire disponible Ca. Ce traitement E26 est détaillé à la figure 4. L'étape E2601 consiste à trier la liste d'éléments constituée à l'étape précédente E25 par valeurs de distorsion dl décroissante. L'algorithme opère alors sur le premier élément de la liste d'indice 1=1 de distorsion courante maximale dl. On teste alors la première technique de codage d'indice k(l) à l'étape E2603 autre que la technique de complexité minimale (test de l'étape E2602). La distorsion résultante d(ai(j),âi(l)[Mk(l)]) est calculée et la ressource calculatoire consommée C est mise à jour. Si la ressource allouée Ca n'est pas toute consommée (test de l'étape E2604) et si la distorsion résultante est inférieure à la distorsion courante dl (test de l'étape E2606), alors la technique et la distorsion courante sont mises à jour à l'étape E2607. La liste est alors mise à jour au sens du tri par valeur de distorsion décroissante à l'étape E2601. Notons qu'à ce niveau, il suffit de déplacer le premier élément de la liste qui vient d'être modifié. Si la méthode considérée d'indice k(l) n'apporte aucun gain en distorsion (résultat négatif du test E2606), on incrémente l'indice k(l) + 1 et on reprend l'algorithme à l'étape E2602 s'il reste effectivement des techniques que l'on n'a pas encore testées, c'est-à-dire tant que k(l) est inférieure à K (test de l'étape E2609). Dans le cas où l'on a testé toutes les techniques admissibles (i.e. k(l K), on accepte la configuration courante pour le bloc. Pour continuer l'algorithme, on doit alors extraire l'élément de la liste à l'étape d'extraction E2610 puisque celui-ci se trouverait de manière permanente en haut de liste. On retourne ensuite directement à l'étape E2602 décrite précédemment puisque l'ordre de la liste n'a pas été modifié. L'algorithme s'arrête à l'étape E2605 lorsque la ressource consommée C atteint la ressource allouée Ca (test de l'étape E2604). Dans cet exemple de réalisation, on n'a pas considéré la ressource calculatoire consommée par l'algorithme lui-même. On pourrait notamment considérer que l'étape de tri E2601 consomme de la ressource calculatoire de manière non négligeable. Dans ce cas, la valeur de C doit être mise à jour de manière appropriée au sein de l'étape E2601. On va décrire maintenant, en référence à la figure 5, un autre mode de réalisation de l'invention dans lequel l'étape de partitionnement El en blocs est réalisée par un partitionnement adaptatif sous contrainte d'une ressource calculatoire donnée. On considère ici à titre d'exemple non limitatif un partitionnement spatial du signal vidéo en arbre quaternaire. Il est en effet connu dans le traitement d'image numérique d'adapter le codage au contenu spatial de l'image. Pour cela, il est parfois bénéfique de permettre à la partition de s'adapter en autorisant des blocs de taille variable dans la partition. Un moyen possible est d'adopter une partition structurée en arbre quaternaire (quadtree en anglais). Dans cette structure, un bloc donné de taille pxp d'une partition "racine" initiale peut être découpé en quatre sous-blocs de taille et ainsi de suite jusqu'à une taille de bloc minimale préfixée. L'information représentant la partition spatiale doit alors être transmise avec les données de codage (choix de la technique et paramètres associées) pour chaque bloc de la partition. Cette information peut prendre la forme d'une nouvelle technique de codage qui renvoie au partitionnement du bloc en quatre sous-blocs devant être traités de façon récursive. En pratique, plutôt que d'insérer un nouvel élément dans la liste des techniques, on préfère coder l'information de découpage (ou information structurelle) de façon séparée. Le code associé à chacun des blocs contient alors un bit supplémentaire indiquant si le bloc considéré a été découpé ou codé tel quel. On va décrire en référence à la figure 5 la variante de l'algorithme d'optimisation décrit précédemment en référence à la figure 4 dans lequel les distorsions élémentaires sont calculées. Les premières étapes E21 à E25 décrites en référence à la figure 3 sont inchangées, seule l'étape de traitement de la liste E26' étant modifiée comme décrit ci-après. Les étapes de traitement E2601 à E2609 sont également identiques à celles décrites précédemment. Par contre, à l'issue de l'étape de test E2609, dans le cas où l'on a testé toutes les techniques de codage admissibles (i.e. k(l K), on teste si la taille du bloc est la taille minimale autorisée par l'arbre quaternaire (étape de test E261 1). Dans ce cas, on accepte la configuration courante pour le bloc et on extrait l'élément de la liste à l'étape E2612 puisque celui-ci se trouverait de manière permanente en haut de liste, et finalement on retourne ensuite directement à l'étape E2602 puisque l'ordre de la liste n'a pas été modifié. Sinon, lorsque la taille du bloc n'est pas encore la taille minimale autorisée, on partitionne le bloc en quatre sous-blocs dans une étape de partitionnement E2613. Pour chacun de ces sous-blocs, on applique la technique de complexité minimale et on calcule la distorsion résultante en mettant à jour la complexité consommée (Cest-à-dire que l'on applique les étapes de traitement E21 à E24 à chacun de ces sous-blocs). Les quatre nouveaux blocs sont ensuite insérés dans la liste qui est de nouveau triée à l'étape E2601. Notons que les étapes d'insertion dans la liste et de tri peuvent se réaliser directement en une seule étape avec une technique de tri par insertion d'un élément l'un après l'autre. Comme précédemment, l'algorithme d'optimisation s'arrête à l'étape E2605 lorsque la ressource consommée C atteint la ressource allouée C,,. Notons que dans ces second et troisième modes de réalisation, décrits en référence aux figures 3 à 5, on dispose à la fin de l'optimisation de tous les codes nécessaires à la réalisation du codage effectif de l'image numérique. Un dispositif de compression par bloc adapté à mettre en ceuvre l'invention est illustré à titre d'exemple à la figure 6. Dans cet exemple, le dispositif de compression est intégré à un ordinateur 10, comprenant un microprocesseur 100, une mémoire morte 102 (en anglais Read Only Memory ou ROM) et une mémoire vive 103 (en anglais Random Access Memory ou RAM). Ce dispositif de compression comprend des moyens de configuration de codage 100, 102, 103 adaptés à associer à chaque bloc ai de données numériques, une technique de codage mj choisie parmi un ensemble E de techniques de codage admissibles en fonction d'un critère. Cet ensemble E de techniques de codage admissible a été décrit ci-dessus en référence à la figure 1 . Selon l'invention, le critère de choix est une fonction d'optimisation du débit ou de la distorsion caractérisant la configuration de codage sous contrainte d'une ressource calculatoire donnée C,,. Les différentes fonctions d'optimisation utilisables ont été citées précédemment en référence au procédé de compression conforme à l'invention. Comme cela apparaît clairement à la lecture du procédé précédemment décrit, ce dispositif de compression comprend des moyens de calcul 100, 102, 103 pour chaque bloc de données numériques ai et pour chaque technique de codage mj d'une ressource calculatoire consommée élémentaire, des moyens de choix préalable 100, 102, 103 d'un critère parmi une fonction d'optimisation du débit ou de la distorsion caractérisant la configuration de codage sous contrainte d'une ressource calculatoire donnée, une fonction d'optimisation du débit caractérisant la configuration de codage sous contrainte d'une distorsion donnée et une fonction d'optimisation de la distorsion caractérisant la configuration de codage sous contrainte d'un débit donné, et éventuellement des moyens de partitionnement 100, 102, 103 en blocs de données numériques représentatifs de grandeurs physiques adaptés à réaliser un partitionnement adaptatif en blocs sous contrainte d'une ressource calculatoire donnée. La mémoire morte 102 est adaptée à mémoriser un programme de compression par bloc de données numériques, et la mémoire vive 103 comprend des registres pour mémoriser des variables modifiées lors de l'exécution du programme. La mémoire morte 102 peut mémoriser notamment l'ensemble E des techniques de codage admissibles. La mémoire vive 103 comprend de manière non limitative un registre a pour mémoriser les blocs ai, un registre b pour mémoriser les ressources calculatoires élémentaires c(mj[ai]), un registre c pour mémoriser la ressource calculatoire consommée C, un registre d pour mémoriser la valeur estimée de la distorsion d(ai,âi[mj]) et des registres i, j, 1 pour mémoriser respectivement les indices courants i, j, 1. Le microprocesseur 100 est adapté en outre à fournir la valeur d'une ressource calculatoire donnée C. à un instant donné. En d'autres termes, le système d'exploitation doit être capable d'opérer une réservation de la ressource calculatoire à un instant donné pour une période donnée (il s'agit de la capacité dite CPU scheduling en anglais) et de rendre visible cette ressource calculatoire disponible. Ce microprocesseur 100 est intégré à l'ordinateur 10 qui peut être lui- même connecté à différents périphériques, par exemple, une caméra vidéo numérique 107 ou un microphone 111 par l'intermédiaire d'une carte entrée/sortie 106, ou encore un scanner (non représenté) ou tout autre moyen d'acquisition ou de stockage d'images numériques tels qu'une imprimante numérique ou un appareil photographique numérique. Cet ordinateur 10 comporte une interface de communication 112 reliée à un réseau de communication 113 de manière à pouvoir recevoir ou transmettre des informations numériques à compresser ou compressées. L'ordinateur 10 comporte en outre des moyens de stockage de données compressées, tels qu'un disque dur 108, ou est adapté à coopérer au moyen d'un lecteur de disquettes 109 avec des moyens de stockage de documents amovibles, par exemple des disquettes 110. Bien entendu, les disquettes 110 peuvent être remplacées par tout support d'information tel que CD-ROM ou carte mémoire. Ces moyens de stockage fixes ou amovibles peuvent comporter en outre le code du procédé de compression conforme à l'invention, qui, une fois lu par le microprocesseur 100, sera stocké dans le disque dur 108. A titre de variante, le programme permettant au dispositif de compression de mettre en #uvre l'invention pourra être stocké dans la mémoire morte 102. Il en est de même pour les paramètres des techniques de codage utilisés par le programme. En seconde variante, le programme pourra être reçu pour être stocké comme décrit précédemment par l'intermédiaire du réseau de communication 113. L'ordinateur 10 possède également un écran 104 permettant de visualiser les informations à compresser ou par exemple de servir d'interface avec un opérateur qui pourra paramétrer le mode et les paramètres (par exemple le nombre et la nature des techniques de codage employées) de compression, à l'aide du clavier 114 ou de tout autre moyen (souris par exemple). L'unité centrale 100 (CPU) va exécuter les instructions relatives à la mise en #uvre de l'invention. Lors de la mise sous tension, les programmes et méthodes relatives à l'invention stockés dans une mémoire non volatile, par exemple la mémoire morte 102, sont transférés dans la mémoire vive 103 qui contiendra alors le code exécutable de l'invention ainsi que les variables nécessaires à la mise en #uvre de l'invention. Il est en outre possible d'améliorer le procédé de compression conforme à l'invention en ajoutant de nouvelles techniques de codage à l'ensemble E, transmises soit par le réseau de communication 113 ou par l'intermédiaire d'une disquette 110. Le bus de communication 101 permet la communication entre les différents sous-éléments de l'ordinateur 10 ou liés à lui. La représentation du bus 101 n'est pas limitative et notamment le microprocesseur 100 est susceptible de communiquer des instructions à tout sous-élément directement ou par l'intermédiaire d'un autre sous-élément de l'ordinateur 10. L'ensemble du dispositif de compression décrit précédemment peut en outre être incorporé dans un système de visiophone sur réseau de transmission, notamment à bas débit. Le procédé de compression conforme à l'invention mis en #uvre dans ce système de visiophone est particulièrement performant puisqu'il permet de prendre en compte une contrainte de temps dans la configuration de codage utilisée et de compresser ainsi de manière satisfaisante des images numériques en temps réel. Le principal avantage de l'invention est de permettre la gestion explicite de la ressource calculatoire par l'opération de compression pour permettre d'obtenir la meilleure compression possible, au sens d'un compromis débit-distorsion avec une ressource calculatoire limitée (i.e. en un temps limité). Un autre avantage est de permettre de configurer le système de compression suivant différents modes correspondant aux différents critères possibles de compression et en particulier de permettre de comprimer de façon optimale au sens des critères usuels débit-distorsion. REVENDICATIONS 1. Procédé de compression par bloc de données numériques représentatives de grandeurs physiques, comprenant une étape de configuration de codage (E3) dans laquelle à chaque bloc (ai) de données numériques est associée une technique de codage (mj) choisie parmi un ensemble (E) de techniques de codage admissibles en fonction d'un critère, caractérisé en ce que ledit critère de choix est une fonction d'optimisation du débit ou de la distorsion caractérisant la configuration de codage sous contrainte d'une ressource calculatoire donnée (Ca). 2. Procédé de compression conforme à la revendication 1, caractérisé en ce qu'il comprend une étape de calcul (El 0, E21) pour chaque bloc (ai) de données numériques et pour chaque technique de codage (mj) d'une ressource calculatoire consommée élémentaire (c(mj[ai] par ladite technique de codage exprimée en temps de calcul. 3. Procédé de compression conforme à la revendication 2, caractérisé en ce que la ressource calculatoire (Ca) incorpore le temps de calcul (C.) pour l'obtention de ladite ressource calculatoire consommée élémentaire et la ressource calculatoire consommée (C,,) pour la résolution de la fonction d'optimisation. 4. Procédé de compression conforme à l'une des revendications 1 à 3, caractérisé en ce que ladite fonction d'optimisation est adaptée à minimiser un débit associé à la configuration de codage pour une complexité calculatoire inférieure à une ressource calculatoire donnée. 5. Procédé de compression conforme à l'une des revendications 1 à 3, caractérisé en ce que ladite fonction d'optimisation est adaptée à minimiser une distorsion moyenne associée à la configuration de codage pour une complexité calculatoire inférieure à une ressource calculatoire donnée. 6. Procédé de compression conforme à l'une des revendications 1 à 3, caractérisé en ce que ladite fonction d'optimisation est adaptée à minimiser une distorsion en valeur supérieure associée à la configuration de codage pour une complexité calculatoire inférieure à une ressource calculatoire donnée. 7. Procédé de compression conforme à l'une des revendications 1 à 6, caractérisé en ce qu'il comprend une étape préalable de choix (E2) d'un critère parmi une fonction d'optimisation du débit ou de la distorsion caractérisant la configuration de codage sous contrainte d'une ressource calculatoire donnée, une fonction d'optimisation du débit caractérisant la configuration de codage sous contrainte d'une distorsion donnée et une fonction d'optimisation de la distorsion caractérisant la configuration de codage sous contrainte d'un débit donné. 8. Procédé de compression conforme à l'une des revendications 1 à 7, caractérisé en ce que ledit ensemble (E) de techniques de codage admissibles comprend des techniques de codage inter, telles qu'un codage prédictif par compensation de mouvement, un codage par prédiction temporelle ou un codage par prédiction multilinéaire, et des techniques de codage intra, telles qu'un codage par transformation spectrale ou un codage par quantification vectorielle. 9. Procédé de compression conforme à l'une des revendications 1 à 8, caractérisé en ce qu'il comprend en outre une étape de partitionnement (El) en blocs de données numériques représentatives de grandeurs physiques dans laquelle le partitionnement de blocs est réalisé par un partitionnement adaptatif sous contrainte d'une ressource calculatoire donnée. 10. Procédé de compression conforme à l'une des revendications 1 à 9, caractérisé en ce qu'il comprend une étape de partitionnement (El) en blocs de données numériques représentatives d'une image numérique. 11. Procédé de compression conforme à l'une des revendications 1 à 10, caractérisé en ce qu'il comprend une étape de partitionnement (El) en blocs de données numériques représentatives d'un signal vidéo numérique. 12. Dispositif de compression par bloc de données numériques représentatives de grandeurs physiques, comprenant des moyens de configuration de codage (100, 102, 103) adaptés à associer à chaque bloc (ai) de données numériques, une technique de codage (mj) choisie parmi un ensemble (E) de techniques de codage admissibles en fonction d'un critère, caractérisé en ce que ledit critère de choix est une fonction d'optimisation du débit ou de la distorsion caractérisant la configuration de codage sous contrainte d'une ressource calculatoire donnée (C.). 13. Dispositif de compression conforme à la revendication 12, caractérisé en ce qu'il comprend des moyens de calcul (100, 102, 103) pour chaque bloc (ai) de données numériques et pour chaque technique de codage (mj) d'une ressource calculatoire consommée élémentaire (c(mj[ai] par ladite technique de codage exprimée en temps de calcul. 14. Dispositif de compression conforme à la revendication 13, caractérisé en ce que la ressource calculatoire (C.) incorpore le temps de calcul (C.) pour l'obtention de ladite ressource calculatoire consommée élémentaire et la ressource calculatoire consommée (C,,) pour la résolution de la fonction d'optimisation. 15. Dispositif de compression conforme à l'une des revendications 12 à 14, caractérisé en ce que ladite fonction d'optimisation est adaptée à minimiser un débit associé à la configuration de codage pour une complexité calculatoire inférieure à une ressource calculatoire donnée. 16. Dispositif de compression conforme à l'une des revendications 12 à 14, caractérisé en ce que ladite fonction d'optimisation est adaptée à minimiser une distorsion moyenne associée à la configuration de codage pour une complexité calculatoire inférieure à une ressource calculatoire donnée. 17. Dispositif de compression conforme à l'une des revendications 12 à 14, caractérisé en ce que ladite fonction d'optimisation est adaptée à minimiser une distorsion en valeur supérieure associée à la configuration de codage pour une complexité calculatoire inférieure à une ressource calculatoire donnée. 18. Dispositif de compression conforme à l'une des revendications 12 à 17, caractérisé en ce qu'il comprend des moyens de choix (100, 102, 103) préalable d'un critère parmi une fonction d'optimisation du débit ou de la distorsion caractérisant la configuration de codage sous contrainte d'une ressource calculatoire donnée, une fonction d'optimisation du débit caractérisant la configuration de codage sous contrainte d'une distorsion donnée et une fonction d'optimisation de la distorsion caractérisant la configuration de codage sous contrainte d'un débit donné. 19. Dispositif de compression conforme à l'une des revendications 12 à 18, caractérisé en ce que ledit ensemble (E) de techniques de codage admissibles comprend des techniques de codage inter, telles qu'un codage prédictif par compensation de mouvement, un codage par prédiction temporelle ou un codage par prédiction multilinéaire, et des techniques de codage intra, telles qu'un codage par transformation spectrale ou un codage par quantification vectorielle. 20. Dispositif de compression conforme à l'une des revendications 12 à 19, caractérisé en ce qu'il comprend en outre des moyens de partitionnement (100, 102, 103) en blocs de données numériques représentatives de grandeurs physiques adaptés à réaliser un partitionnement adaptatif en blocs sous contrainte d'une ressource calculatoire donnée. 21. Dispositif de compression conforme à l'une des revendications 12 à 20, caractérisé en ce qu'il comprend des moyens de partitionnement (100, 102, 103) en blocs de données numériques représentatives d'une image numérique. 22. Dispositif de compression conforme à l'une des revendications 12 à 21, caractériisé en ce qu'il comprend des moyens de partitionnement (100, 102, 103) en blocs de données numériques représentatives d'un signal vidéo numérique. 23. Dispositif de compression conforme à l'une des revendications 12 à 22, caractérisé en ce qu'il est incorporé dans un microprocesseur (100), une mémoire morte (102) étant adaptée à mémoriser un programme de compression par bloc de données numériques, et une mémoire vive (103) comprenant des registres pour mémoriser des variables modifiées lors de l'exécution dudit programme. 24. Dispositif de compression conforme à la revendication 23, caractérisé en ce que ledit microprocesseur (100) est adapté à fournir la valeur d'une ressource calculatoire donnée (Ca) à un instant donné. 25. Ordinateur, caractérisé en ce qu'il comprend un dispositif de compression conforme à l'une des revendications 12 à 24. 26. Appareil de traitement d'une image numérique, caractérisé en ce qu'il comprend un dispositif de compression conforme à l'une des revendications 12 à 24. 27. Imprimante numérique, caractérisée en ce qu'elle comprend un dispositif de compression conforme à l'une des revendications 12 à 24. 28. Appareil photographique numérique, caractérisé en ce qu'il comprend un dispositif de compression conforme à l'une des revendications 12 à 24. 29. Caméra numérique, caractérisée en ce qu'elle comprend un dispositif de compression conforme à l'une des revendications 12 à 24. 30. Système de visiophone sur réseau de transmission, caractérisé en ce qu'il comprend un dispositif de compression conforme à l'une des revendications 12 à 24.