Brevet FR2832581A1 — publié le 20030523

La présente invention concerne un procédé de détermination d'au moins un paramètre de codage de données numériques multimédia organisées en unités élémentaires de données destinées à être codées selon au moins un mode de codage. L'avancement technologique des appareils de communication numériques tels que les téléviseurs, les micro-ordinateurs de poche, les microordinateurs classiques ou tout autre appareil miniaturisé est tel que, dans les années à venir, il sera très probablement possible d'échanger des données de type multimédia et, par exemple, audio et/ou vidéo entre ces différents appareils. Des études de marché montrent, par ailleurs, que les utilisateurs sont prêts à acheter de tels appareils de communication à condition que le prix ne soit pas trop excessif et, surtout, que les services rendus soient de bonne qualité. Suite à l'identification de ce nouveau marché, de nombreuses études ont été menées concernant la miniaturisation des composants électroniques, de manière à obtenir des appareils ayant des capacités de mémoire et de calcul élevées. En outre, de nombreux organismes de normalisation ont mis en place des standards permettant d'unifier les échanges de données entre ces appareils aux caractéristiques différentes. Ces standards, tels que ceux de la famille IEEE 802, permettent à la fois la mise en oeuvre et la gestion du transfert des données via un réseau particulier. Le standard IEEE 802.11 et son homologue européen HYPERLAN sont dédiés aux réseaux locaux sans fil. Ils sont particulièrement étudiés actuellement car ce sont des réseaux larges bandes permettant de transmettre des données audio eVou vidéo entre deux machines qui sont géographiquement proches. Ces standards sont donc particulièrement adaptés pour développer des réseaux locaux sans fil à l'intérieur des habitations. Les solutions techniques étudiées actuellement dans le cadre des standards susvisés appliqués aux réseaux locaux domestiques permettent de transmettre des données numériques soit entre une machine dite serveur et une machine dite client (transmission point à point), soit entre le serveur et un groupe de clients, soit encore entre le serveur et plusieurs clients (communication multi-points) et ce, sans aucun fil. Dans cet environnement, les données sont stockées sur le serveur qui centralise toutes les communications avec le ou les clients. Ce serveur peut également servir de passerelle avec le monde extérieur (Internet, télévision, caméscope...). Il convient de noter que les réseaux locaux domestiques peuvent être de nature hétérogène, c'est-à-dire qu'ils peuvent, par exemple, être pour partie constitués de liaisons sans fil et pour partie de liaisons filaires. Si de nombreux projets étudient la mise en oeuvre de services autour de la télévision interactive et l'échange d'informations sur lintemet, peu d'entre eux traitent des problèmes liés à la mise en oeuvre de réseaux locaux domestiques, à savoir la mise en place de solutions permettant d'obtenir une qualité de services acceptable. Le serveur étant relié au monde extérieur, les données stockées sont de tailles diverses. Le transport de ces données à travers un réseau local n'est pas un service aisé à mettre en place. On connaît un système de communication d'après l'article"Adapting multimedia Internet content for Universal Access"de R. Mohan, J. Smith, C-S. Li, IEEE Transactions on Multimedia, March 1999, qui prévoit de constituer une base de données répertoriant les différentes catégories d'appareils de communication qui peuvent se connecter à un serveur. Pour chaque catégorie d'appareil, le système prend en compte la taille de l'écran de visualisation de cette catégorie d'appareil et la profondeur de couleurs que l'appareil peut supporter (nombre de bits par composante de couleur). Ensuite, le système élabore à l'avance, pour chaque catégorie d'appareil et pour chacune des caractéristiques susvisées, une version codée pour chacune des vidéos que l'un ou l'autre des appareils pourrait demander au serveur. Ces versions codées sont ensuite stockées par le serveur. Ainsi, lorsque l'un des appareils émet une requête à destination du serveur, le système puise dans la base de données et sélectionne la version précodée des données adaptée à la catégorie de l'appareil et aux caractéristiques précitées. Un tel système présente plusieurs inconvénients. En effet, le système doit effectuer de nombreux calculs pour élaborer les différentes versions codées, nécessitant ainsi une grande puissance de calcul et accaparant l'unité centrale de traitement pendant un temps relativement long. Par ailleurs, la constitution d'une telle base de données requiert l'utilisation de mémoires dotées de capacités de stockage élevées. En outre, le système décrit ci-dessus est figé dans la mesure où il ne peut pas prendre en compte un appareil de communication d'une nouvelle catégorie qui n'est pas répertoriée dans sa base de données. La prise en compte d'une requête émanant d'une nouvelle catégorie d'appareil nécessiterait par exemple de répertorier dans la base de données cet appareil et, pour ce faire, d'élaborer des versions codées des différentes vidéos, de manière adaptée aux caractéristiques visées plus haut (taille de l'écran et profondeur de couleurs). Toutefois, cette prise en compte irait encore dans le sens d'une augmentation de la capacité mémoire du système. La présente invention prévoit de remédier à au moins un des inconvénients précités en proposant un nouveau procédé et un nouveau dispositif de détermination d'au moins un paramètre de codage de données numériques multimédia qui soient tels que le paramètre de codage est déterminé de façon adaptée en fonction d'une complexité de décodage prédéterminée qui fait office de seuil ou de référence. En déterminant un ou plusieurs paramètres de codage de façon appropriée, les données codées avec ce ou ces paramètres donnent lieu à une complexité de décodage inférieure ou égale à la complexité de décodage prédéterminée. On entend par complexité de décodage le nombre d'opérations qu'il est nécessaire de réaliser pour décoder des données pendant un intervalle de temps prédéterminé (ex : 1 s). Il s'agit en quelque sorte de la capacité de calcul minimale requise pour effectuer les opérations de décodage. La présente invention a ainsi pour objet un procédé de détermination d'au moins un paramètre de codage de données numériques multimédia organisées en unités élémentaires de données destinées à être codées selon au moins un mode de codage, caractérisé en ce que ledit procédé comporte les étapes suivantes : - détermination du nombre élémentaire d'opérations à effectuer pour décoder chaque unité élémentaire de données codée selon un mode de codage différent, - détermination du nombre total d'opérations à effectuer pendant un intervalle de temps prédéterminé pour décoder une pluralité d'unités élémentaires de données codées en fonction, d'une part, du nombre élémentaire précédemment déterminé et, d'autre part, du nombre d'unités élémentaires codées selon chacun des modes de codage, - décision quant à la détermination d'au moins un paramètre de codage des données en fonction du nombre total précédemment déterminé et d'un nombre total d'opérations prédéterminé. Corrélativement, l'invention vise un dispositif de détermination d'au moins un paramètre de codage de données numériques multimédia organisées en unités élémentaires de données destinées à être codées selon au moins un mode de codage, caractérisé en ce que ledit dispositif comporte : - des moyens de détermination du nombre élémentaire d'opérations à effectuer pour décoder chaque unité élémentaire de données codée selon un mode de codage différent, - des moyens de détermination du nombre total d'opérations à effectuer pendant un intervalle de temps prédéterminé pour décoder une pluralité d'unités élémentaires de données codées en fonction, d'une part, du nombre élémentaire précédemment déterminé et, d'autre part, du nombre d'unités élémentaires codées selon chacun des modes de codage, - des moyens de décision quant à la détermination d'au moins un paramètre de codage des données en fonction du nombre total précédemment déterminé et d'un nombre total d'opérations prédéterminé. Ainsi, en déterminant la complexité de décodage d'une pluralité d'unités élémentaires de données codées, l'invention permet de décider du choix du ou des paramètres de codage adaptés à une complexité de décodage prédéterminée. De ce fait, le ou les paramètres de codage ainsi déterminés permettent de coder les données de manière à ce que ces données codées donnent lieu, par exemple, à une complexité de décodage inférieure ou égale à la complexité de décodage prédéterminée. Par exemple, le paramètre de codage qui a été utilisé pour le codage des données avant de déterminer la complexité de décodage peut se révéler satisfaisant ou non au vu de la complexité de décodage déterminée. Si ce paramètre n'est pas satisfaisant, il faudra alors déterminer un paramètre qui sera, cette fois-ci, adapté à la complexité de décodage prédéterminée. On notera que si un paramètre de codage est ajusté en fonction de la complexité de décodage prédéterminée, c'est parce qu'une modification de ce paramètre là a une influence sur la complexité de décodage des données codées avec ledit paramètre. L'invention ne nécessite pas une capacité de stockage élevée comme dans l'art antérieur précité puisqu'on ne mémorise pas, à l'avance, plusieurs versions de données codées en fonction de catégories d'appareil de communication différentes. De plus, l'unité de traitement du dispositif selon l'invention n'est pas accaparée par de long calculs pendant un temps relativement long, comme c'est le cas avec le système de l'art antérieur qui doit constituer une base de données de versions précodées. Dans le cas où les étapes de détermination du nombre élémentaire d'opérations, de détermination du nombre total d'opérations pendant un intervalle de temps prédéterminé et de décision sont effectuées dans un premier appareil de communication relié à un second appareil de communication par un réseau de communication, l'invention permet de s'adapter facilement et dynamiquement à des appareils de communication non encore reliés au premier appareil, mais qui peuvent y être reliés ultérieurement. Selon une caractéristique, préalablement à l'étape de décision, le procédé comporte une étape de comparaison entre le nombre total d'opérations déterminé pendant l'intervalle de temps et le nombre total d'opérations qui pourraient être effectuées, pendant ce même intervalle de temps, dans le second appareil de communication. La complexité de décodage prédéterminée correspond ainsi à celle du second appareil de communication. Le procédé selon l'invention permet ainsi d'adapter le codage des données dans le premier appareil à la capacité de calcul du second appareil. Selon une autre caractéristique, préalablement à l'étape de comparaison, le procédé comporte une étape d'obtention par le premier appareil de communication du nombre total d'opérations pouvant être effectuées par le second appareil de communication pendant l'intervalle de temps prédéterminé. Ainsi, les informations sur la capacité de calcul du second appareil de communication sont transmises au premier appareil avant l'étape de comparaison visée plus haut. Si un ou plusieurs appareils de communication sont reliés ultérieurement au premier appareil, il suffit que les informations sur leurs capacités de calcul respectives soient transmises au premier appareil pour que celui-ci puisse adapter le codage des données de manière appropriée. Selon une caractéristique, le procédé comporte une étape d'estimation de la qualité d'au moins une unité élémentaire de données en comparant ladite au moins une unité élémentaire de données codée avec le paramètre de codage déterminé et ladite au moins une unité élémentaire de données non codée. On est ainsi capable d'élaborer une version de l'unité élémentaire de données adaptée à la complexité de décodage prédéterminée et qui permet d'obtenir des données, une fois décodées, de bonne qualité, c'est-à-dire fidèles à l'unité élémentaire de données non codées. On notera que dans le cas d'une transmission de données entre un premier et un deuxième appareil de communication, on peut ainsi fournir au deuxième appareil une version de l'unité élémentaire de données de bonne qualité qui est adaptée à la capacité de calcul du deuxième appareil. Selon une autre caractéristique, lorsque plusieurs paramètres de codage ont été déterminés, le procédé comporte les étapes suivantes : - estimation de la qualité d'au moins une unité élémentaire de données pour chaque combinaison de paramètres de codage déterminée, - sélection de la meilleure qualité parmi les différentes qualités estimées pour les différents paramètres de codage. On peut ainsi sélectionner à l'aide d'un autre critère une combinaison de paramètres de codage parmi plusieurs combinaisons possibles, dans chacune desquelles un ou plusieurs paramètres de codage ont été déterminés de façon adaptée à la complexité de décodage prédéterminée. Selon encore une autre caractéristique, le procédé comporte les étapes suivantes : - codage d'au moins une unité élémentaire de données avec le paramètre de codage déterminé, - décodage de ladite au moins une unité élémentaire de données codée, - estimation de la qualité de ladite au moins une unité élémentaire de données en comparant cette au moins une unité élémentaire de données non codée avec celle précédemment décodée. Cette méthode d'estimation de la qualité est particulièrement simple à mettre en oeuvre. Par ailleurs, on peut en outre prendre la décision quant à la détermination du ou des paramètres de codage en tenant compte de caractéristiques du réseau de communication telles que, par exemple, la bande passante disponible sur ce réseau. L'invention concerne également un appareil de communication comportant un dispositif tel que brièvement exposé ci-dessus. Selon un autre aspect, l'invention vise aussi : - un moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution des étapes du procédé selon l'invention tel que celui exposé brièvement ci-dessus, et - un moyen de stockage d'informations amovible, partiellement ou totalement, lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution des étapes du procédé selon l'invention tel que celui brièvement exposé ci-dessus. Selon encore un autre aspect, l'invention vise un programme d'ordinateur chargeable dans un appareil programmable, comportant des séquences d'instructions ou portions de code logiciel pour mettre en oeuvre des étapes du procédé selon l'invention tel que brièvement exposé ci-dessus, lorsque ledit programme d'ordinateur est chargé et exécuté sur l'appareil programmable. Les caractéristiques et avantages relatifs au dispositif, à l'appareil de communication comportant un tel dispositif, aux moyens de stockage d'informations et au programme d'ordinateur étant les mêmes que ceux exposés ci-dessus concernant le procédé selon l'invention, ils ne seront pas rappelés ici. D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description qui va suivre, faite en référence aux dessins annexés, sur lesquels : - la figure 1 représente de manière schématique une architecture de communication de type client-serveur dans laquelle l'invention peut être mise en oeuvre ; -la figure 2 représente un algorithme de traitement de données vidéo selon l'invention ; - la figure 3a représente un algorithme de codage de données vidéo ; - la figure 3b représente un algorithme de décodage de données vidéo ; - la figure 4 représente un algorithme de détermination d'au moins un paramètre de codage de données vidéo selon l'invention et qui correspond à l'étape E208 de l'algorithme de la figure 2 ; - la figure 5 est un mode de réalisation d'un appareil programmable mettant en oeuvre l'invention. Sur la figure 1 est représenté une architecture de communication du type client-serveur dans laquelle l'invention est avantageusement mise en oeuvre ; Sur cette figure, un premier appareil de communication 1 jouant le rôle du serveur est relié à un deuxième appareil de communication 2 qui est la machine client, par l'intermédiaire d'un réseau de communication 3 et d'une connexion qui est considérée comme étant établie. Ce réseau est par exemple un réseau de communication local sans fil à l'intérieur d'une habitation. Plus particulièrement, ce réseau est conforme au standard IEEE802. 11. Il s'agit dans l'exemple considéré d'une transmission point à point de données entre le serveur 1 et la machine client 2. Cependant, le principe reste applicable au cas où le serveur est connecté simultanément à plusieurs machines client qui peuvent requérir du serveur des données numériques multimédia. Il convient toutefois, dans ce cas, de prendre en compte, d'une part, la gestion des processus d'adaptation et de transmission en parallèle des différentes versions adaptées des données demandées et, d'autre part, les accès multiples à la ou aux mémoires du serveur. On notera que les données stockées dans le serveur peuvent avoir été reçues de l'environnement extérieur à l'habitation, par exemple, par un autre réseau de communication tel que l'Internet. Les données regroupées sous le terme données multimédia peuvent être, de manière non limitative, des images fixes, des vidéos, du son, des données de type texte (ex : documents graphiques...), des documents en langage HTML, des signaux issus d'un télécopieur ou d'une imprimante... Dans l'exemple de réalisation considéré, on considérera uniquement des données vidéo et celles-ci seront transmises sans perte sur le réseau 3. Le dispositif selon l'invention permet d'adapter, d'une manière générale, le contenu des données demandées par une machine client aux caractéristiques de cette machine et, plus particulièrement, à la capacité de calcul de celle-ci. On entend par capacité de calcul de la machine client le nombre d'opérations que cette machine peut effectuer dans un intervalle de temps prédéterminé correspondant, par exemple, à 1 s. Le dispositif 4 selon l'invention est par exemple intégré au serveur 1 de la figure 1 et peut comporter des éléments électroniques et/ou des éléments logiciels. Toutefois, le dispositif selon l'invention pourrait, par exemple, être confondu avec le serveur 1. Le dispositif 4 comporte des unités 11 et 12 qui permettent respectivement de coder et décoder une vidéo. Le serveur comprend une unité 5 de stockage de données numériques telles que des vidéos. Les algorithmes des procédés de codage et décodage seront décrits respectivement en référence aux figures 3a et 3b. On notera que les vidéos sont créées, par exemple, par un caméscope numérique ou tout autre moyen d'acquisition de données ou bien sont transmises par un réseau de communication extérieur et sont stockées dans l'unité 5 qui peut être incluse ou non dans le dispositif 4. Cette unité peut être, par exemple, une base de données locale ou distribuée. En outre, les vidéos sont stockées soit sous forme non compressée, par exemple suivant un format YUV, selon un mode préféré de l'invention, soit sous forme compressée, en utilisant le procédé de codage mis en oeuvre dans l'unité de codage 11. On notera qu'un format vidéo de type YUV signifie que la vidéo concernée possède trois composantes, la composante Y pour la luminance et les composantes U et V pour la chrominance. Le dispositif 4 comprend également une unité de stockage 13 destinée à mémoriser de façon temporaire des données numériques et des vidéos codées, et une unité 14 de récupération de données caractéristiques des vidéos à partir de l'unité 5 de stockage. Les données récupérées par l'unité 14 sont, soit les valeurs associées à chacun des pixels de chaque image d'une vidéo, soit les informations propres à cette vidéo, à savoir la taille du fichier vidéo, le chemin permettant d'accéder à cette vidéo et, dans le cas où la vidéo est stockée sous forme compressée, les paramètres de codage qui ont été utilisés pour coder cette vidéo. Le dispositif 4 comprend également une unité 15 de récupération des caractéristiques de la machine client 2, à savoir la capacité de calcul et la résolution de son écran de visualisation. Il convient de noter que ces caractéristiques peuvent être obtenues à la suite de la transmission par le dispositif 4 d'une requête spécifique. Le dispositif 4 comprend, en outre, une unité 16 de récupération des caractéristiques du réseau 3, une unité 17 de détermination des paramètres de codage, et une unité 18 de transmission/réception de données numériques. L'unité 17 met en oeuvre le procédé de détermination des paramètres de codage qui sera décrit ultérieurement en référence à la figure 4. L'unité 18 permet quant à elle d'effectuer la transmission de données à la machine client 2 à travers le réseau 3, ainsi que la réception de données provenant de la machine client. Le dispositif 4 selon l'invention comporte également une unité de commande 19 des différentes opérations exécutées. On notera que les différentes unités qui composent le dispositif selon l'invention et, plus généralement le serveur, résident sur la même machine. Cependant, il pourra être envisagé de distribuer ces unités sur plusieurs machines serveur et d'établir des communications entre ces différentes unités à travers le réseau de communication 3. Cette distribution des unités ne modifiant en rien la mise en oeuvre de l'invention, on considérera par la suite, pour des raisons de simplicité, que toutes les unités sont localisées sur la même machine que nous appelons serveur. La machine client 2 comporte une unité de transmission/réception de données numériques 20. Cette unité 20 permet d'effectuer la transmission de données au dispositif 4, à travers le réseau 3, et la réception de données provenant du dispositif. La machine client 2 comporte également une unité 21 de stockage de données numériques, une unité 22 de décodage identique à l'unité 12 du dispositif 4 et une unité de visualisation 23, permettant de visualiser des vidéos décodées. La figure 2 illustre un algorithme comportant différentes instructions ou portions de code logiciel correspondant à des étapes du procédé selon l'invention. Le programme informatique noté"Progr"qui est basé sur cet algorithme est mémorisé dans l'unité de stockage temporaire de données 13 de la figure 1 et exécuté par l'unité 17 sous le contrôle de l'unité de commande 19, ce qui permet ainsi de mettre en oeuvre le procédé selon l'invention. Ce programme est également stocké dans l'appareil de la figure 5. L'algorithme de la figure 2 comporte une première étape notée E200 au cours de laquelle le dispositif 4 de la figure 1 et, plus particulièrement, l'unité de réception 18 reçoit une requête émise par la machine client 2 à partir de l'unité de transmission 20. Par exemple, cette requête se présente sous la forme d'une chaîne de caractères permettant d'identifier de façon unique des données vidéo mémorisées dans l'unité de stockage 5 du serveur 1. Au cours de l'étape suivante E201, la requête provenant de la machine client 2 est transférée à l'unité de stockage temporaire 13 aux fins de mémorisation. L'étape E201 est suivie d'une étape E202 au cours de laquelle un test est pratiqué afin de savoir si les données vidéo mémorisées dans l'unité de stockage 5 et faisant l'objet de la requête de la machine client sont disponibles sous forme compressée. Dans l'affirmative, l'étape E202 est suivie d'une étape E203 au cours de laquelle l'unité de décodage 12 du dispositif de la figure 1 décode les données vidéo en fonction des paramètres de codage fournis, par exemple, par l'en-tête du train binaire mémorisé dans l'unité de stockage 5. Une fois que le décodage des données vidéo a eu lieu, les données décodées présentes sous le format YUV ainsi que les paramètres de codage précités sont stockés dans l'unité de stockage 13. De retour à l'étape E202, lorsque le test pratiqué au cours de cette étape est négatif, l'étape E204 prévoit de récupérer les valeurs des pixels disponibles dans l'unité de stockage 5 et de les mémoriser dans l'unité de stockage 13. Les étapes E203 et E204 qui viennent d'être décrites sont toutes deux suivies par une étape E205 au cours de laquelle l'unité 14 procède à une récupération des données vidéo. Il s'agit ici d'obtenir des caractéristiques de ces données vidéo, à savoir le ou les paramètres de codage utilisés si ces données vidéo étaient présentes dans l'unité de stockage 5 sous forme compressée. Ainsi, les paramètres de codage peuvent être, par exemple, la résolution spatiale de la vidéo, le nombre d'images par seconde de cette vidéo (résolution temporelle), le nombre d'images codées en mode Intra ou en mode Inter... Dans le cas où les données vidéo n'étaient pas disponibles sous forme compressée dans l'unité de stockage 5, les informations associées aux données vidéo et qui sont récupérées à l'étape E205 sont, par exemple, l'information selon laquelle la vidéo n'était pas compressée et sa résolution. Au cours de l'étape suivante E206, on procède à l'obtention des caractéristiques de la machine client 2 qui a émis la requête mentionnée à l'étape E200. Les caractéristiques de la machine client sont par exemple récupérées consécutivement à la transmission d'une requête d'obtention de ces caractéristiques, du dispositif 4 de la figure 1 vers la machine client 2, à travers le réseau de communication 3. Ces caractéristiques sont principalement la capacité de calcul de la machine client 2, à savoir le nombre total d'opérations qu'elle peut effectuer et la résolution de son unité de visualisation 23 (écran). Ces caractéristiques sont stockées de façon temporaire dans l'unité de stockage 13 du dispositif 4 de la figure 1. Préférentiellement, la capacité de calcul de la machine client est égale à la vitesse du processeur de celle-ci, exprimée en nombre d'opérations élémentaires par seconde. L'étape E206 est suivie d'une étape E207 au cours de laquelle le dispositif 4 de la figure 1 obtient les caractéristiques du réseau de communication 3 telles que, par exemple, la bande passante disponible pour transmettre les données vidéo du dispositif 4 à la machine client 2, la perte de paquets, le taux de bits erroné... De façon préférentielle, les caractéristiques du réseau prises en compte seront limitées à la bande passante disponible. Ces caractéristiques sont récupérées par l'unité 16 qui les stocke alors dans l'unité de stockage temporaire 13. Au cours de l'étape suivante E208, on procède à la détermination du ou des paramètres de codage des données vidéo de manière adaptée à la capacité de calcul de la machine client 2. Le détail des opérations effectuées lors de cette étape sera fourni ultérieurement lors de la description faite en référence à la figure 4. Cette étape est effectuée par l'unité 17 du dispositif 4 de la figure 1 sous contrôle de l'unité de commande 19 et à partir des informations disponibles dans l'unité de stockage 13. La détermination de ce ou ces paramètres de codage peut également être effectuée de manière adaptée aux caractéristiques du réseau de communication 3, en plus de la capacité de calcul de la machine client. Au cours de l'étape suivante E209, le dispositif 4 de la figure 1 et, plus particulièrement, l'unité de transmission 18 de celui-ci procède à la transmission des données vidéo qui ont été préalablement compressées à l'étape E208 vers la machine client 2. On notera que la transmission des données vidéo compressées se fait préférentiellement à la volée (connu en terminologie anglosaxonne sous le terme"streaming"), c'est-à-dire que les informations nécessaires à l'utilisateur pour reconstruire une image sont mémorisées dans l'unité de stockage 13, puis sont transmises à la machine client 2 avant que toutes les données vidéo ne soient compressées. Ainsi, l'utilisateur reçoit au niveau de la machine client 2 les informations par paquets, dans chacun desquels se trouvent des informations permettant à cet utilisateur de décoder une image courante. Les figures 3a et 3b illustrent respectivement le codage et le décodage d'une vidéo en couleurs au format YUV. Selon un mode préféré de réalisation de l'invention, le décodeur vidéo utilisé pour la mise en oeuvre de cette invention est conforme à la partie visuelle du standard MPEG-4 (Information technology-Generic coding of audiovisual objects = part2 : visual, ISO/IEC JTC1/SC 29/WG11 N 3056, December 2000). Dans l'exemple traité ici, la vidéo sera considérée comme un seul objet de forme rectangulaire. Par conséquent, seul un jeu restreint d'outils de compression qui permettent le décodage de la texture et la compensation de mouvement seront pris en compte. Les outils nécessaires au décodage de la forme arbitraire d'un objet ne sont donc pas utilisés ici. On notera que la texture d'une image est donnée par les valeurs des pixels de l'image qui sont exprimées sur trois composantes. Les vidéos sont stockées sur le serveur 1 soit sous forme compressée au format mp4 conforme au standard MPEG-4, soit sous forme non-compressée au format YUV. On utilise par exemple le format YUV de type 4 : 2 : 0, ce qui signifie que les composantes de chrominance (U, V) ont quatre fois moins d'échantillons (pixels) que les composantes de luminance (Y). La figure 3a illustre le procédé de codage mis en oeuvre par l'unité de codage 11 de la figure 1. Chaque image de la vidéo demandée par l'utilisateur est découpée en blocs de données de 8x8 pixels. Chaque groupe de quatre blocs forme un macro-bloc de 16x16 pixels. Le codage d'une image est effectué sur chacun des macro-blocs selon deux modes de codage distincts : l'un noté 1 pour le mode de codage Intra et l'autre noté P pour le mode de codage prédictif ou Inter. Une séquence d'images de 1 seconde sera codée de la façon suivante : IPPIPPIPPIPPIPPIPPIPPIPPIPPIPP... Ceci signifie que la première image est codée selon le mode Intra, les deux suivantes selon le mode Inter, la suivante selon le mode Intra, les deux suivantes selon le mode Inter, etc.... Ainsi, pour une séquence de 30 images par seconde, 10 images seront codées en mode Intra et 20 images en mode Inter. On notera qu'une séquence d'images sera appelée par la suite un segment. En mode intra, le codage s'effectue bloc par bloc selon les étapes E310 à E313 de la figure 3a. Dans ce mode de codage, chaque bloc constitue une unité élémentaire de données qui est codée indépendamment des autres blocs. On rappelle que les valeurs des pixels de chaque image du segment d'images à coder sont stockées temporairement dans l'unité 13 de stockage temporaire de la figure 1 et constituent une vidéo qui est appelée vidéo originale. Dans le cas où la vidéo est stockée dans l'unité de stockage 5 sous forme compressée, le procédé de décodage est appliqué à l'étape E203 de la figure 2 de manière à obtenir une vidéo au format YUV. Les valeurs de la vidéo ainsi reconstruite sont stockées sur l'unité 13 de stockage temporaire et dans l'unité de stockage 5 également appelée vidéo originale. Le procédé de codage d'un bloc en mode Intra débute par une étape E310 au cours de laquelle on calcule la transformée en cosinus discret selon la méthode connue décrite dans l'article intitulé"Fast Algorithms for the Discrete Cosine Transform", E. Feig and S. Winograd, IEEE Trans. On Signal Proc., vol. 40, No. 9, September 1992. L'étape E310 est suivie d'une étape E311 qui prévoit de quantifier les coefficients transformés obtenus lors de l'étape E310. L'étape E311 est suivie d'une étape E312 au cours de laquelle on ordonne les coefficients quantifiés de manière à ce que la méthode de codage à longueur variable utilisée lors de l'étape ultérieure E313 soit la plus efficace possible. Pour ce faire, on utilise la méthode de balayage décrite dans le standard Information technology-Generic coding of audio-visual objects part2 : visual, ISO/IEC JTC 1/SC 29/WG11 N3056, December 2000. L'étape E312 est suivie d'une étape E313 selon laquelle on effectue le codage statistique des coefficients ordonnés selon la méthode de codage à longueur variable décrite dans le standard Information technology-Generic coding of audio-visual objects = parl2 : visual, ISO/IEC JTC 1/SC 29/WG11 N3056, December 2000. A l'issue de l'étape E313, les coefficients codés statistiquement sont stockés dans l'unité de stockage temporaire 13 et sont concaténés aux autres informations de codage de l'image courante. En mode prédictif ou Inter, le codage s'effectue macro-bloc par macro-bloc où chaque macro-bloc constitue une unité élémentaire de données qui est codée indépendamment des autres. Chacun des macro-blocs peut être codé soit en mode Intra soit en mode Inter. Le mode de codage est choisi en fonction de l'activité présente à l'intérieur d'un macro-bloc. Par exemple, cette activité est mesurée par la variance entre un macro-bloc d'une image courante et le macro-bloc de l'image précédente situé à la même position spatiale. Si la variance est supérieure à un seuil prédéterminé, alors le macrobloc est codé en mode Inter. Ce macro-bloc sera codé en mode Intra dans le cas contraire. Si le macro-bloc est codé en mode Intra, alors le codage s'effectue selon les étapes E310 à E313 décrites précédemment. Si le macro-bloc est codé en mode Inter, le codage s'effectue selon les étapes E315 à E317 qui vont être explicitées ci-après. Au cours de l'étape E315 on applique une méthode classique d'estimation de mouvement par comparaison de macro-blocs. Les algorithmes mis en oeuvre s'appuient sur l'hypothèse simplificatrice selon laquelle les pixels d'un même macro-bloc sont animés du même mouvement. Le vecteur de mouvement d'un macro-bloc d'une image courante est alors déterminé en trouvant le macro-bloc le plus ressemblant dans l'image précédente dans une fenêtre de recherche présélectionnée. Si les dimensions de la fenêtre de recherche exercent une influence sur le temps de calcul de l'estimation de mouvement, le problème majeur lié à l'estimation de mouvement qui est effectuée par comparaison de macro-blocs reste la détermination de la distance entre les macro-blocs. On utilisera de préférence une méthode d'estimation de mouvement décrite dans l'article "Estimation de mouvement en ligne", L. Difdier, R. Kamdem, LIM Université de Provence, Dec. 96. Cette méthode permet d'obtenir un vecteur de mouvement à deux composantes de mouvement translationnel. Pour obtenir un train binaire conforme au standard MPEG-4, ce vecteur de mouvement est codé différentiellement par rapport au vecteur de mouvement du macro-bloc de l'image précédente disposé à la même position spatiale. L'étape E315 est suivie d'une étape E316 au cours de laquelle on code statistiquement le vecteur de mouvement différentiel précédemment déterminé. Les coefficients ainsi obtenus sont stockés dans l'unité de stockage temporaire 13 et sont concaténés aux autres informations de codage de l'image courante. Une fois que le mouvement pour un macro-bloc a été estimé lors de l'exécution de l'étape E315, alors, conformément à l'étape E317, un macro-bloc dit prédit est construit à partir du macro-bloc de l'image précédente auquel est appliqué le vecteur de mouvement associé à ce macro-bloc. Ensuite, un macro-bloc dit de différence, est calculé entre le macrobloc de l'image courante et le macro-bloc prédit. L'étape E317 est suivie d'une étape E318 au cours de laquelle on code le macro-bloc de différence selon le mode Intra décrit plus haut. Les coefficients résultant du mode de codage Intra sont stockés dans l'unité de stockage temporaire 13 et sont concaténés aux autres informations de codage du macro-bloc de l'image courante. Les paramètres utilisés lors des étapes de quantification et de codage à longueur variable, sont définis pour chaque macro-bloc, que ce soit dans le mode Intra ou Inter. A cet effet, on utilise une méthode de contrôle de débit classique lors d'une étape E314. Cette méthode permet de contrôler l'allocation de débit pour chaque macro-bloc de manière à ne pas dépasser le débit total alloué à la transmission de la vidéo compressée. Dans l'exemple décrit, la valeur de débit maximale est fixée par la valeur BR. Les données codées et stockées de façon temporaire dans l'unité 13 sont mises au format MPEG-4, comme indiqué dans le standard Information technology- Generic coding of audio-visual objects = part2 : visual, ISO/IEC JTC 1/SC 29/WG11 N3056, December 2000, avant d'être transmises sur le réseau 3 de la figure 1 vers la machine client 2. Il convient de noter que le mode de codage utilisé pour coder chaque macro-bloc fait partie des informations qui sont transmises. La figure 3b illustre le procédé de décodage mis en oeuvre par l'unité de décodage 12 du dispositif 4 et par l'unité de décodage 22 de la machine client 2 de la figure 1. Le procédé de décodage va être décrit lorsqu'il est mis en oeuvre dans la machine client 2 et, plus particulièrement, au niveau des unités 20,21 et 22. La transposition de cette description au procédé de décodage mis en oeuvre par le dispositif 4 du serveur 1 s'effectue aisément en remplaçant les unités 20,21 et 22 respectivement par les unités 18,13 et 12. La machine client 2 comporte une unité 21 de stockage qui est alimentée par les données numériques provenant du dispositif 4 par l'intermédiaire de la connexion établie entre les deux machines à travers le réseau 3. Ces données sont reçues par l'unité de réception 20 sous la forme de paquets qui contiennent les informations nécessaires pour décoder un ou plusieurs macro-blocs de l'image courante. L'unité de stockage 21 est capable d'extraire des informations à partir du train binaire qui a été généré par l'unité de codage 11 du dispositif 4 et de les fournir à l'unité de décodage 22 de la machine client 2. La figure 3b illustre le décodage d'un macro-bloc codé soit en mode Intra, tel qu'indiqué par les étapes 322 à 326, soit en mode Inter ou prédictif comme indiqué par les étapes 327 à 332. L'algorithme de décodage débute par une étape E319 au cours de laquelle on récupère le mode de codage du macro-bloc courant. Au cours de l'étape E320, on procède à un test pour savoir si le macro-bloc a été codé en mode Intra. Dans l'affirmative, l'étape E320 est suivie d'une étape E321 qui prévoit de récupérer, à partir de l'unité de stockage 21, les coefficients statistiques (codes à longueur variable) liés à ce macro-bloc. L'étape E321 est suivie d'une étape E322 qui effectue le décodage de ces coefficients selon la table de coefficients décrite dans le standard Information technology-Generic coding of audio-visual objects = part2 : visual, ISO/IEC JTC 1/SC 29/WG11 N3056, December 2000. Les coefficients ainsi obtenus forment un ensemble de données bidimensionnelles noté QF [u] [v]. Au cours de l'étape suivante E323, on effectue une opération de quantification inverse sur les valeurs de l'ensemble de données QF [u] [v] pour obtenir le tableau bidimensionnel F" [u] [v] selon les tables de quantification décrites dans le standard Information technology- Generic coding of audiovisual objects = part2 : visual, ISO/IEC JTC 1/SC 29/WG11 N3056, December 2000. Au cours de l'étape suivante E324, on applique une méthode de saturation aux valeurs des coefficients du tableau bidimensionnel F" [u] [v] selon le standard Information technology- Generic coding of audio-visual objects = part2 : visual, ISO/IEC JTC 1/SC 29/WG11 N3056, December 2000, de manière à obtenir le tableau bidimensionnel F' [u] [v] dont les valeurs appartiennent à l'intervalle [-2 bits par pixel 2 bits par pixel + 3 ~ 11 Le nombre de bits par pixels est de préférence égal à 8. Au cours de l'étape suivante E325, on effectue une opération de contrôle des coefficients saturés de manière à obtenir les coefficients DCT F [u] [v]. Au cours de l'étape suivante E326, on reconstruit les valeurs des pixels du macro-bloc courant en fonction des coefficients DCT F [u] [v] en utilisant la méthode de décodage décrite dans l'article"Fast Algorithms for the Discrete Cosine Transform", E. Feig and S. Winograd, IEEE Trans. On Signal Proc., vol. 40, No. 9, September 1992. Ces valeurs reconstruites sont stockées dans l'unité de stockage 21 en vue d'être visualisées sur l'unité de visualisation 23. L'algorithme de décodage d'un macro-bloc est donné ci-dessous. Les valeurs des coefficients dc scaler, quantiser scale et de la matrice i] [u] [v] utilisés dans cet algorithme sont des valeurs définies par le standard Information technology-Generic coding of audio-visual objects = part2 : visua/, ISO/IEC JTC 1/SC 29/WG11 N3056, Oecember 2000. for (v=0 ; v * quantíser~scale)/32 ; } } } } sum = 0 ; for (v=0 ; v 2---1) { FMM=2---1 ; } else { if (F'Iul [vl F&verbar;u] [v] =-2 bitS-per-pixel + 3 ; else { } etse { Flu] [v] = F'M [v] ; } } sum = sum + Flu] [v] ; F [u] [v] = Flu] [v] ; } } if ( (m & 1) ==0) { if ( (F [7] [7] & 1) ! = 0) { F [7] [7] = F17] [7]-1 ; else { F [7J = FT7] [7J + 1 ; } } La méthode de transformation en cosinus discret d'un pixel f (x, y) d'un bloc de taille N x N est donnée par l'équation suivante : 2 N-1N-1 F (u, v) = N C (u) C (v) f (x, y) cos''cos''' x=üy=ü 2N 2N avec u, v = 0, 1, 2,... N-1, où x, y sont les coordonnées spatiales, u, v sont les coordonnées dans le domaine transformé, et Chaque pixel est représenté par n bits (pour représenter une des composantes Y, U ou V) et les coefficients transformés sont représentés par (n+4) bits. L'amplitude des coefficients DCT est comprise dans l'intervalle [- 2n+3 : +2n+3~1]. On utilise de préférence une méthode rapide de codage/décodage DCT. Cette méthode, décrite dans l'article "Fast Algorithms for the Discrete Cosine Transform", E. Feig and S. Winograd, IEEE Trans. On Signal Proc., vol. 40, No. 9, September 1992, permet de coder/décoder des macroblocs de taille 2m (ici m=3) selon l'équation suivante : où Yest le vecteur des coefficients DCT de dimension 8 etC, la matrice 8*8 de coefficients DCT. Cette matrice peut être factorisée et, après quelques manipulations algébriques, cette matrice est égale à C8 = * *s'OL' sst une matrice de permutation des signes de dimension 8*8, et Bs sont des matrices de coefficients de dimension 8*8 qui ont été définies de manière à obtenir un codeur/décodeur rapide. Consécutivement à l'étape E326, l'étape E333 prévoit un stockage et une visualisation des macro-blocs décodés à partir des unités 21 et 23. L'image courante est reconstruite une fois que tous les macro-blocs de cette image sont décodés et visualisés. De retour à l'étape E320, si le résultat du test est négatif, cela signifie que le macro-bloc a été codé en mode Inter ou prédictif. Au cours de l'étape suivante E327, on récupère alors des informations parmi les données numériques qui ont été transmises par le dispositif 4 et mémorisées dans l'unité de stockage 21 de la machine client 2. Ces informations sont propres au codage du macro-bloc en mode Inter et sont, par exemple, les coefficients statistiques (codes à longueur variable) liés à ce macro-bloc. L'étape E327 est suivie d'une étape E328 qui prévoit de décoder ces coefficients statistiques de manière à obtenir le vecteur de mouvement différentiel. Au cours de l'étape suivante E329, on reconstruit le vecteur de mouvement à partir du vecteur de mouvement différentiel et du vecteur de mouvement (Px, Py) du macro-bloc de l'image précédente disposé à la même position spatiale. L'algorithme utilisé est le suivant : r size = vop~fcode - 1 f = 1 r size high = (32 * f) - 1 ; lo= ( (-32) * f) ; range = (64 * f) ; if ( (f == 1) Il (horizontal~mv~data == 0)) MVDx = horizonta ! mvdata ; else { MVDx = ( (bs (horizontaLmvdata)-1) * f) + horizonta ! mvresiduat + 1 ; if (horizontal~mv~data high) MVx = MVx-range ; MVy = Py + MVDy ; if (MVy MVy = MVy + range ; if (MVy > high) MVy = MVy-range ; Les paramètres du train binaire sont tels que les composantes MVDx et MVDy du vecteur de mouvement différentiel, appartiennent à l'intervalle [low ; high]. Les valeurs extrêmes de cet intervalle sont choisies lors de l'implémentation du décodeur. Par ailleurs, les composantes du vecteur de mouvement reconstruit, MVx et MVy, appartiennent également à cet intervalle. Les valeurs qui définissent cet intervalle pour les vecteurs de mouvement sont définis par le standard Information technology- Generic coding of audio-visual objects = part2 : visual, ISO/IEC JTC 1/SC 29/WG11 N3056, December 2000. On notera que r~size, f, MVDx, MVDy, high, low et range sont des variables, tandis que les données horizontal~mv~data, vertical-mv-data, horizontaLmvresiduat et vertica) mv~residual sont extraites du train binaire. La variable vop~fcode fait référence au mode de prédiction utilisé qui est extrait du train binaire. Au cours de cette même étape E329, le macro-bloc de l'image précédente est compensé en mouvement, c'est à dire que le macro-bloc est déplacé du vecteur de mouvement qui vient d'être reconstruit. Au cours de l'étape suivante E330, on récupère les informations propres au codage du macro-bloc en mode Intra et, notamment, les coefficients statistiques qui représentent le macro-bloc de différence. Au cours de l'étape suivante E331, on reconstruit le macro-bloc de différence à partir de ces coefficients statistiques selon le procédé de décodage Intra décrit précédemment, lors de l'exécution des étapes E322 à E326. L'étape E331 est suivie d'une étape E332 qui calcule la somme du macro-bloc compensé de l'étape E329 et du macro-bloc de différence obtenu à l'étape E331. L'étape E332 est suivie d'une étape E333 qui organise le stockage des macro-blocs décodés dans l'unité 21. L'image est ensuite visualisée sur l'unité de visualisation 23 une fois que tous les macro-blocs ont été décodés. La figure 4 illustre l'algorithme détaillant les différentes opérations effectuées lors de l'étape E208 de la figure 2. Plus particulièrement, cet algorithme comporte différentes instructions ou portions de code logiciel correspondant à des étapes du procédé de détermination de paramètre de codage de données selon l'invention. Le programme informatique qui est basé sur cet algorithme est mémorisé dans l'unité de stockage temporaire de données 13 de la figure 1 et exécuté par l'unité 17 sous le contrôle de l'unité de commande. Ce programme fait partie du programme"Progr"précité en référence à la figure 2 et est également stocké dans l'appareil de la figure 5. L'exécution du programme informatique basé sur cet algorithme va mettre en oeuvre le procédé permettant d'adapter un ou plusieurs paramètres de codage qui vont être utilisés pour le codage des données transmises à la machine client, en fonction de la capacité de calcul de cette dernière. Par ailleurs, ce procédé peut permettre également d'adapter ce ou ces paramètres de codage à la résolution de l'écran de la machine client 2 ainsi qu'aux ressources disponibles sur le réseau de communication 3, à savoir la bande passante. L'algorithme de la figure 4 début par une étape E400 au cours de laquelle on procède à une récupération du contexte dans lequel les données vont être transmises du dispositif 4 du serveur 1 à la machine client 2 (figure 1). Plus particulièrement, la récupération de ce contexte consiste à obtenir, à partir de l'unité de stockage temporaire 13 : - la capacité de calcul C de la machine client 2, - la résolution de l'écran de cette machine, - la bande passante BP disponible sur le réseau de communication 3 pour transmettre les données vidéo, et - le ou les paramètres de codage utilisés pour coder les données vidéo mémorisées dans l'unité de stockage 5. Les paramètres de codage utilisés sont par exemple, la taille du fichier contenant les données vidéo, notée BRo, la résolution de l'image ro et le nombre d'images par seconde fro. Il convient de noter que, lorsque les données vidéo sont mémorisées sous le format YUV, les paramètres de codage tels que la taille du fichier, la résolution de l'image et le nombre d'images par seconde sont nécessairement récupérés lors de cette étape E400. Les autres paramètres de codage utilisés pour coder ces données vidéo sont alors des valeurs qui sont choisies par défaut. Au cours de l'étape suivante E401, on procède à la détermination de la taille du fichier vidéo BR qui va être transmis. Lors de cette étape, deux cas sont envisagés selon que la taille du fichier BRo stocké dans l'unité de stockage 5 de la figure 1 est supérieure ou inférieure à la bande passante disponible sur le réseau de communication 3. Pour ce faire, on tient compte de la valeur du débit maximal BR autorisé dans le réseau de communication 3 et qui est affectée au module de contrôle de débit lors de l'exécution de l'étape E314 de la figure 3a. La taille du fichier vidéo BR qu'il est possible de transmettre est alors fournie par l'équation suivante : BR = min (BRo, BP). Au cours de l'étape suivante E402, on procède à une initialisation des valeurs contenues dans deux tableaux : un premier tableau, de dimension R, dans lequel sont stockées les valeurs de résolution admissibles d'une image, et un second tableau, de dimension FR, dans lequel sont stockées différentes valeurs du nombre d'images par seconde. Plus particulièrement, les valeurs de résolution de l'image qui sont contenues dans le premier tableau sont admissibles dans le sens où ces valeurs de résolution sont inférieures ou égales à la résolution de l'unité de visualisation 23 de la machine client 2 (figure 1) et qui est mémorisée dans l'unité de stockage 21. On choisira par exemple un premier tableau dont la première valeur est égale à la résolution des données vidéo mémorisées dans l'unité de stockage 5 de la figure 1 et constituant la version originale de la vidéo mentionnée plus haut, dans le cas, bien entendu, où cette valeur est considérée comme admissible. Les autres valeurs admissibles figurant dans ce tableau sont sélectionnées au préalable et, dans le cas où la dimension du tableau est trois, les deux dernières valeurs correspondent à une résolution de 352 colonnes et 288 lignes, pour l'une, et 176 colonnes et 144 lignes, pour l'autre. Le second tableau contenant différentes valeurs du nombre d'images par seconde est par exemple, lui aussi, de dimension trois et la première valeur de ce tableau est égale au nombre d'images par seconde de la version originale de la vidéo mémorisée dans l'unité de stockage 5 de la figure 1. Les deux autres valeurs sont respectivement égales à 20 et 10 images par seconde. Plus particulièrement, au cours de cette étape, on procède à l'initialisation de deux variables d'indices, fr et r, correspondant respectivement au second et au premier tableau susvisé. Chaque variable d'indice est initialisée à la première valeur contenue dans le tableau correspondant. Au cours de l'étape suivante E403, on détermine la complexité de calcul, notée 0, du processus de décodage d'une séquence d'images, également appelée segment d'images et qui correspond à un nombre d'images codées pour un intervalle de temps prédéterminé. Dans l'exemple décrit ici, la résolution temporelle étant un paramètre de codage, on fixe l'intervalle de temps par exemple à 1 s et on compte le nombre d'images codées pendant cet intervalle de temps. Le nombre d'images est par exemple égal à trente. Cette complexité de calcul 0 est également appelée complexité de décodage, et sa détermination correspond à la détermination du nombre total d'opérations qui sont à effectuer pendant un intervalle de temps prédéterminé en vue de décoder une pluralité d'unités élémentaires de données codées. Ces unités élémentaires sont, par exemple, les macro-blocs définis plus haut. Pour déterminer cette complexité de décodage, on va s'intéresser à un segment composé de N, intra + N, nter images. La complexité d'un tel segment est fournie par l'équation suivante : Ntnter 0 = (Nlntra * MBlntra * Intra+ E (MBIntra * Intra + MBInter + Inter) i=O i=O où : - NIntra est le nombre d'images codées en mode Intra pour le segment considéré, le segment correspond à un nombre donné d'images par seconde, - NIl/1er est le nombre d'images codées en mode Inter ou prédictif pour le segment considéré, - MB est le nombre de macro-blocs codés en mode Intra dans une image codée en mode Intra, - OIntra est la complexité de décodage d'un macro-bloc codé en mode Intra, - MBliitra est le nombre de macro-blocs codés en mode Intra dans une image codée en mode Inter, - MBI IiitereSt le nombre de macro-blocs codés en mode Inter dans une image codée en mode Inter, et ointer est la complexité de décodage d'un macro-bloc codé en mode Inter. * On s'aperçoit ainsi que la détermination de la complexité de décodage du segment d'images défini ci-dessus passe par une étape préalable d'analyse du mode de codage utilisé pour coder chaque unité élémentaire de données (macro-bloc). Ensuite, il s'agit de déterminer, pour chaque unité élémentaire de données qui a été codée selon un mode de codage différent, la complexité de décodage de cette unité élémentaire de données, c'est-à-dire le nombre élémentaire d'opérations qu'il est nécessaire d'effectuer pour procéder à son décodage. La détermination de la complexité de décodage du segment susvisé passe ensuite par une étape au cours de laquelle on identifie le nombre d'unités élémentaires de données codées selon chacun des modes de codage différents et, connaissant la complexité de décodage pour chacun de ces modes de codage, on en déduit le nombre total d'opérations qu'il est nécessaire d'effectuer pendant l'intervalle de temps prédéterminé pour décoder la pluralité d'unités élémentaires de données codées constituant le segment défini plus haut. Dans l'exemple décrit ici, on s'intéresse dans un premier temps au mode de codage d'une image puis, selon que celle-ci est codée en mode Intra ou en mode Inter, on procède de la façon suivante : - Si l'image est codée en mode Intra, alors il suffit de prendre en compte la complexité de décodage d'un macro-bloc et le nombre de macroblocs contenus dans cette image, puis de multiplier le chiffre obtenu correspondant à la complexité de décodage d'une image codée en mode intra par le nombre d'images Nlntra codées suivant ce mode. - Si l'image est codée en mode Inter, il faut alors rechercher à l'intérieur de chaque image le nombre de macro-blocs codés suivant le mode de codage Intra ou Inter, puis obtenir pour chaque image, d'une part, la complexité de décodage pour les macro-blocs codés selon le mode de codage Intra et, d'autre part, la complexité de décodage pour les macro-blocs codés selon le mode de codage Inter. Il faut ensuite faire la somme de ces complexités de décodage afin d'obtenir la complexité de décodage totale d'une image codée en mode Inter. Il reste ensuite à multiplier ce chiffre par le nombre d'images codées en mode N ; nter- On notera que la détermination de la complexité de décodage d'une unité élémentaire de données telle qu'un macro-bloc varie selon que celui-ci est codé en mode Intra ou en mode Inter. Comme décrit ci-après, la détermination de la complexité de décodage d'une unité élémentaire de données va être détaillée suivant que le codage a lieu en mode Intra ou en mode Inter. 1) Codage en mode Intra Le décodage s'effectuant bloc de données par bloc de données la complexité de décodage d'un macro-bloc est égale à la complexité liée au décodage des quatre blocs qui le composent. Plus particulièrement, on détermine la complexité de décodage d'un bloc en comptabilisant le nombre d'opérations élémentaires intervenant dans les différents algorithmes mis en oeuvre dans le processus de décodage. Les valeurs de la complexité liée au décodage DCT sont fournies par l'article"Fast Algorithms for the Discrefe Cosine Transform", E Feig and S. Winograd, IEEE Trans. On Signal Proc., vol. 40, No. 9, September 1992. La table 1 ci-dessous détaille la détermination de la complexité de décodage des différents algorithmes qui interviennent dans le décodage d'un bloc à partir des différentes opérations élémentaires. traitement test Multiplication Addition Affectation VLD 64 Inverse Q 192 256 192 Saturation 128 64 Contrôle 2 64 65 Inverse DCT 94 454 64 Total 322 350 582 385 Table 1 Préférentiellement, toutes ces opérations sont considérées comme élémentaires exceptée la multiplication qui est considérée comme équivalente à deux opérations élémentaires. Ainsi, la complexité totale de décodage d'un macro-bloc (composantes de luminance) codé en mode Intra est de 4*1989=7956 opérations élémentaires. 2) Codage en mode Inter Dans le cas où le macro-bloc est codé en mode Inter, il faut ajouter à la complexité de décodage en mode Intra, la complexité de décodage liée, d'une part, à la reconstruction du vecteur de mouvement à partir du vecteur de mouvement différentiel qui va être transmis à la machine client 2 de la figure 1 et, d'autre part, à la reconstruction du macro-bloc (reconstruction du macro-bloc de différence et addition de ce macro-bloc avec le macro-bloc prédit). La détermination de la complexité de décodage de ces processus est détaillée dans la table 2 ci-dessous qui fournit, pour chaque processus, le nombre d'opérations élémentaires qui interviennent. Traitement test multiplication Addition affectation VLD 2 Reconstruction vecteur mouvement 7 5 13 11 Reconstruction macro-bloc différence 1288 1400 2328 1540 Construction du macro-bloc prédit 512 256 Reconstruction du macro-bloc 256 256 Total 1295 1405 3109 2065 Table 2 Ainsi, pour le mode Inter ou prédictif, la complexité totale de décodage d'un macro-bloc codé en mode Inter est de 7874 opérations élémentaires. Une fois que la complexité de décodage d'un segment composé de Nlntra + N, nter images a été déterminée, l'étape E403 est suivie d'une étape E404. Au cours de cette étape, un test est pratiqué afin de déterminer si la complexité de décodage ainsi déterminée pour effectuer le décodage d'un segment de la vidéo demandée par l'utilisateur et codée avec les paramètres de codage courants est inférieure ou égale à une complexité de décodage prédéterminée. On notera que les paramètres de codage courants sont, lors de la première exécution de la boucle de l'algorithme, ceux initialisés à l'étape E402. Par la suite, les valeurs des paramètres sont fournies par les étapes E409 et E411. En particulier, on procède à la comparaison entre la complexité de décodage qui vient d'être déterminée et la capacité de calcul C de la machine client 2 afin de s'assurer que l'appareil de communication que constitue cette machine client sera apte à décoder les données vidéo requises par l'utilisateur. Dans l'affirmative, l'étape E404 est suivie d'une étape E405 au cours de laquelle on effectue le codage des données vidéo suivant les paramètres de codage récupérés à l'étape E400, ainsi que les valeurs courantes du nombre d'images par seconde (fr) et de la résolution de l'image (r), ces valeurs ayant été initialisées à l'étape E402. Au cours de l'étape suivante E406, on procède à un décodage des données vidéo codées lors de l'exécution de l'étape E405, de manière à obtenir une version de la vidéo au format YUV. Au cours de l'étape suivante E407, on procède à une quantification de la qualité des données vidéo ainsi compressées. Par exemple, la différence de qualité entre deux vidéos sera estimée en utilisant la notion de rapport signal sur bruit notée PSNR ("Peak Signal to Noise Ratio") et fournie par l'équation suivante : où q, désigne un pixel de l'image décodée, p, un pixel de l'image originale, N le nombre de pixels de l'image et Y la dynamique du signal original, correspondant dans le cas présent à huit bits. Le PSNR fournit une mesure quantitative de la qualité de l'image reconstruite. Elle est déterminée à partir du rapport de l'amplitude maximale du signal sur l'erreur quadratique. On remarquera que d'autres méthodes d'estimation d'une qualité peuvent bien entendu être envisagées. On peut ainsi, par exemple, établir un modèle en déterminant la qualité de différentes vidéos de test pour lesquelles on fait varier le ou les paramètres de codage. Ensuite, pour chaque vidéo à transmettre, on adapte le ou les paramètres de codage selon l'invention et, en fonction du type de la vidéo et du modèle précité, on en déduit la qualité de la vidéo codée avec ce ou ces paramètres. En ce qui concerne le PSNR, il convient de noter que le nombre de pixels de l'image d'origine doit être le même que celui de l'image décodée. Pourtant, ceci n'est pas toujours vrai dans la mesure où le procédé selon l'invention permet de modifier le paramètre de codage qu'est la résolution de l'image. Par conséquent, il sera nécessaire en cas de différence entre le nombre de pixels de l'image d'origine et celui de l'image décodée d'introduire un processus de sous-échantillonnage spatial, afin de ramener la résolution de l'image d'origine à celle de l'image décodée. La valeur du PSNR est déterminée pour chaque image de la vidéo. On aura ainsi une image de bonne qualité en basant le choix de la version des données à envoyer sur la valeur du PSNR. On notera qu'il serait possible de déterminer la valeur du PSNR pour chaque unité élémentaire de données constituant une image et ensuite d'en faire la somme pour déduire la valeur du PSNR de l'image considérée. En calculant la valeur du PSNR sur chaque unité élémentaire de données (macro-bloc), on trouvera des macro-blocs qui seront de bonne qualité et d'autres de moins bonne qualité et il faudra alors effectuer la moyenne des valeurs PSNR des macro-blocs de l'image. Cette méthode occasionne toutefois plus de calculs que celle consistant à calculer la valeur du PSNR pour l'image de façon globale. Etant donné que l'on s'intéresse à la détermination de la qualité sur un segment de vidéo donné, on va calculer une valeur moyenne de PSNR sur ce segment. Par conséquent, on fait intervenir un processus de sous- échantillonnage temporel pour ramener le nombre d'images par seconde de la vidéo originale au nombre d'images par seconde de l'image décodée. Une fois que l'on a estimé la qualité moyenne d'un segment de vidéo donné en comparant les images décodées de ce segment qui ont été préalablement codées avec les paramètres de codage précités par rapport aux images correspondantes non codées, on mémorise, dans l'unité de stockage temporaire 13 de la figure 1, la valeur du PSNR moyen, les données numériques constitutives de la vidéo compressée avec les paramètres de codage courants. Au cours de l'étape suivante E408, on procède à un test afin de déterminer si la résolution courante de l'image, r, correspond à la dernière valeur figurant dans le premier tableau des résolutions admissibles de l'image. Dans la négative, l'étape E408 est suivie d'une étape E409 au cours de laquelle on incrémente la résolution courante de l'image à la valeur suivante figurant dans le tableau considéré. On notera que lors de l'exécution de la première boucle de l'algorithme de la figure 4, la valeur r initialisée lors de l'étape E402 correspond à la première valeur du premier tableau et donc cette étape E409 est exécutée. L'étape E403 décrite ci-dessus est alors de nouveau exécutée afin de déterminer la complexité de décodage nécessaire pour décoder les données vidéo requises par l'utilisateur avec les paramètres de codage déterminés, compte tenu de ce qui précède. Le paramètre de codage qui correspond à la résolution de l'image vient d'être modifié, tandis que l'autre paramètre de codage correspondant au nombre d'images par seconde reste quant à lui inchangé. On comprend ainsi que, lors de l'exécution de cette boucle de l'algorithme, toutes les valeurs de résolution de l'image indiquées dans le premier tableau mentionné ci-dessus sont sélectionnées et conduisent, dans chaque cas, à la détermination d'une complexité de décodage particulière. On notera que dans l'exemple décrit ici, un seul paramètre de codage est modifié à chaque fois bien que l'on puisse également influer sur l'autre paramètre de codage que constitue le nombre d'images par seconde. Pour cette combinaison de paramètres de codage dans laquelle seul un paramètre varie, on estime la qualité de chaque image et, plus généralement, d'un segment de données vidéo donné. Cependant, on pourrait également choisir de modifier simultanément plusieurs paramètres de codage distincts au sein d'une même combinaison de paramètres de codage et, pour chaque combinaison de paramètres de codage ainsi modifiés, on estime la qualité de l'image. On notera que, lors de l'exécution de l'étape E404, si le test pratiqué est négatif, alors l'étape E404 est immédiatement suivie de l'étape E408 décrite ci-dessus. De manière générale, l'algorithme de la figure 4 permet de prendre une décision quant à savoir si un paramètre de codage peut être utilisé pour coder les données vidéo requises par l'utilisateur, compte tenu de : - la complexité de décodage déterminée lors de l'étape E403 en fonction de ce paramètre et - la comparaison de cette complexité de décodage avec une complexité de décodage prédéterminée (capacité de calcul de la machine client 2) lors de l'étape E404. De retour à l'algorithme de la figure 4, lorsque le test pratiqué à l'étape E408 est positif, cela signifie que toutes les valeurs de résolutions d'image fournies par le premier tableau précité ont été sélectionnées, alors cette étape est suivie d'une étape E410 au cours de laquelle un autre test est pratiqué. Ce test a pour but de déterminer si la valeur courante du nombre d'images par seconde (fr) correspond à la dernière valeur du second tableau précité dans lequel sont stockées différentes valeurs du nombre d'images par seconde. Dans la négative, cette étape est suivie d'une étape E411 au cours de laquelle on incrémente la valeur courante du nombre d'images par seconde afin de sélectionner une autre valeur du second tableau. L'étape E403 est alors de nouveau exécutée et permet de déterminer, pour ce nouveau paramètre de codage, la complexité de décodage nécessaire pour décoder les données vidéo requises par l'utilisateur avec ce paramètre de codage et les autres paramètres de codage courants précités. On notera que dans ce cas, la valeur de la résolution de l'image correspond à la dernière valeur du premier tableau et que les différentes valeurs du nombre d'images par seconde figurant dans le second tableau vont successivement être sélectionnées, tandis que la valeur de la résolution de l'image restera la même. Toutefois, on peut envisager de modifier l'algorithme de la figure 4 afin que différentes autres combinaisons de paramètres de codage puissent être envisagées. Par exemple, les différentes valeurs successives du nombre d'images par seconde figurant dans le second tableau peuvent être combinées avec la première et ensuite la seconde valeur de la résolution de l'image figurant dans le premier tableau. On notera également que la première boucle constituée des étapes E403 à E409 pourrait également prendre en compte le paramètre de codage que constitue le nombre d'images par seconde de la vidéo demandée par l'utilisateur au lieu de prendre en compte la résolution de l'image. De retour à l'étape E410, lorsque le test pratiqué est positif, ceci signifie que toutes les valeurs du nombre d'images par seconde figurant dans le second tableau ont été sélectionnées et l'on passe alors à l'étape suivante E412. Au cours de cette étape, on effectue un tri par ordre décroissant des différentes versions de données vidéo compressées suivant leur valeur de PSNR. Par exemple, la version de données vidéo compressée qui sera transmise du dispositif 4 selon l'invention à la machine client 2 de la figure 1 sera celle qui bénéficie du PSNR le plus élevé. L'étape E412 permet de sélectionner la qualité la meilleure parmi toutes celles qui ont été déterminées. Ceci met fin à l'algorithme de la figure 4. On notera que l'étape E209 de l'algorithme de la figure 2 est alors exécutée pour transmettre les données vidéo requises par l'utilisateur et qui ont été adaptées à la capacité de calcul de la machine client 2. Il convient de noter que l'algorithme de la figure 4 peut également prendre en compte un seul paramètre de codage ou, au contraire, tenir compte d'autres paramètres de codage tels que par exemple le nombre d'images qui ont été codées en mode inter. Ainsi, on adapte un ou plusieurs paramètres de codage pour le codage des données vidéo ou, de manière plus générale de données audio et/ou visuelles requises par l'utilisateur, afin que la machine client soit apte à décoder ces données compressées, compte tenu de sa capacité de calcul. Le ou les paramètres de codage sur le (s) quel (s) l'invention intervient doivent bien entendu avoir une influence sur la complexité de décodage des données multimédia demandées par l'utilisateur. Il convient de noter que si deux modes de codage interviennent dans le codage des données, l'invention permet de ne s'intéresser qu'à l'un des paramètres de codage qui exerce une influence sur un seul des modes de codage. En référence à la figure 5, est décrit un exemple d'appareil programmable mettant en oeuvre l'invention. Cet appareil est adapté à traiter des données numériques multimédia en vue de les transmettre. Selon le mode de réalisation choisi et représenté à la figure 5, un appareil mettant en oeuvre l'invention est par exemple un micro-ordinateur 500 ou une station de travail connecté à différents périphériques, par exemple une caméra numérique 501 (ou un scanner, ou tout moyen d'acquisition ou de stockage d'image) reliée à une carte graphique et fournissant à l'appareil des données à adapter et à transmettre. L'appareil 500 comporte un bus de communication 502 auquel sont reliés : - une unité centrale de traitement 503 (microprocesseur), qui exerce la fonction de l'unité de commande 19 de la figure 1, 1 v - une mémoire morte 504, pouvant comporter le programme"Progr", - une mémoire vive 506, comportant des registres 507 adaptés à enregistrer des variables créées et modifiées au cours de l'exécution du programme précité et notamment les variables r, fr, BR, BRo et PSNR mentionnées en référence aux figures précédentes, - un écran 508 permettant de visualiser les données à traiter et/ou de servir d'interface graphique avec l'utilisateur qui pourra interagir avec le programme selon l'invention, à l'aide d'un clavier 510 ou de tout autre moyen tel qu'un dispositif de pointage non représenté, comme par exemple une souris ou un crayon optique, - un disque dur 512 pouvant comporter le programme"Progr" précité, - un lecteur de disquette 514 adapté à recevoir une disquette 516 et à y lire ou à y écrire des données traitées ou à traiter selon l'invention, - une interface de communication 518 reliée à un réseau de communication 520, par exemple le réseau Internet, l'interface étant apte à transmettre et à recevoir des données. Dans le cas de données audio, l'appareil comprend en outre une carte d'entrée/sortie reliée à un microphone qui sont tous deux non représentés. Le bus de communication permet la communication et l'interopérabilité entre les différents éléments inclus dans le micro-ordinateur 500 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 500 directement ou par l'intermédiaire d'un autre élément du micro-ordinateur 500. Le code exécutable du programme noté"Progr"permettant à l'appareil programmable de mettre en oeuvre les procédés de récupération du contexte (figure 2), de codage/décodage (figures 3a et 3b) et d'adaptation (figure 4) des données selon l'invention, peut être stocké par exemple dans le disque dur 512 ou en mémoire morte 504 comme représenté sur la figure 5. Bien qu'un seul programme soit identifié, il est possible d'avoir plusieurs programmes ou sous programmes pour mettre en oeuvre l'invention. Selon une variante, la disquette 516, peut contenir des données compressées et stockées ainsi que le code exécutable du ou des programmes selon l'invention qui, une fois lu par l'appareil 500, sera stocké dans le disque dur 512. En seconde variante, le code exécutable du ou des programmes pourra être reçu par l'intermédiaire du réseau de communication 520, via l'interface 518, pour être stocké de façon identique à celle décrite précédemment. Les disquettes peuvent être remplacées par tout support d'information 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'information, lisible par un ordinateur ou par un microprocesseur, intégré ou non à l'appareil, éventuellement amovible, est adapté à mémoriser un programme dont l'exécution permet la mise en oeuvre du procédé selon l'invention. De manière plus générale, le programme pourra être chargé dans un des moyens de stockage de l'appareil 500 avant d'être exécuté. L'unité centrale 503 va commander et diriger l'exécution des instructions ou portions de code logiciel du ou des programmes selon l'invention, instructions qui sont stockées dans le disque dur 512 ou la mémoire morte 504 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 512 ou la mémoire ROM 504, sont transférés dans la mémoire vive RAM 506 qui contiendra alors le code exécutable du ou des programmes selon l'invention, ainsi que des registres pour mémoriser les variables nécessaires à la mise en oeuvre de l'invention. Il convient de noter que l'appareil de traitement de données comportant un 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). On notera que l'appareil de la figure 5 qui contient le programme "Progr"précédemment mentionné peut être, dans le cadre d'une architecture de communication du type client-serveur, le dispositif 4 de la figure 1. REVENDICATIONS 1. Procédé de détermination d'au moins un paramètre de codage de données numériques multimédia organisées en unités élémentaires de données destinées à être codées selon au moins un mode de codage, caractérisé en ce que ledit procédé comporte les étapes suivantes : - détermination du nombre élémentaire d'opérations à effectuer pour décoder chaque unité élémentaire de données codée selon un mode de codage différent, - détermination du nombre total d'opérations à effectuer pendant un intervalle de temps prédéterminé pour décoder une pluralité d'unités élémentaires de données codées en fonction, d'une part, du nombre élémentaire précédemment déterminé et, d'autre part, du nombre d'unités élémentaires codées selon chacun des modes de codage, - décision quant à la détermination d'au moins un paramètre de codage des données en fonction du nombre total précédemment déterminé et d'un nombre total d'opérations prédéterminé. 2. Procédé selon la revendication 1, caractérisé en ce que les étapes de détermination du nombre élémentaire d'opérations, de détermination du nombre total d'opérations pendant un intervalle de temps prédéterminé et de décision sont effectuées dans un premier appareil de communication relié à un second appareil de communication par un réseau de communication. 3. Procédé selon la revendication 2, caractérisé en ce que, préalablement à l'étape de décision, le procédé comporte une étape de comparaison entre le nombre total d'opérations déterminé pendant l'intervalle de temps et le nombre total d'opérations qui pourraient être effectuées, pendant ce même intervalle de temps, dans le second appareil de communication. 4. Procédé selon la revendication 3, caractérisé en ce que, préalablement à l'étape de comparaison, le procédé comporte une étape d'obtention par le premier appareil de communication du nombre total d'opérations pouvant être effectuées par le second appareil de communication. 5. Procédé selon l'une des revendications 1 à 4, caractérisé en ce qu'il comporte une étape d'estimation de la qualité d'au moins une unité élémentaire de données en comparant ladite au moins une unité élémentaire de données codée avec le paramètre de codage déterminé et ladite au moins une unité élémentaire de données non codée. 6. Procédé selon la revendication 5, caractérisé en ce que, lorsque plusieurs paramètres de codage ont été déterminés, le procédé comporte les étapes suivantes : - estimation de la qualité d'au moins une unité élémentaire de données pour chaque combinaison de paramètres de codage déterminée, - sélection de la meilleure qualité parmi les différentes qualités estimées pour les différents paramètres de codage. 7. Procédé selon la revendication 5 ou 6, caractérisé en ce qu'il comporte les étapes suivantes : - codage d'au moins une unité élémentaire de données avec le paramètre de codage déterminé, - décodage de ladite au moins une unité élémentaire de données codée, - estimation de la qualité de ladite au moins une unité élémentaire de données en comparant cette au moins une unité élémentaire de données non codée avec celle précédemment décodée. 8. Procédé selon l'une des revendications 2 à 4, caractérisé en ce que la décision quant à la détermination dudit au moins un paramètre de codage est également prise en fonction de caractéristiques du réseau de communication. 9. Procédé selon l'une des revendications 1 à 8, caractérisé en ce que les données sont des données vidéo. 10. Procédé selon la revendication 9, caractérisé en ce que l'unité élémentaire de données est un macrobloc de données. 11. Dispositif de détermination d'au moins un paramètre de codage de données numériques multimédia organisées en unités élémentaires de données destinées à être codées selon au moins un mode de codage, caractérisé en ce que ledit dispositif comporte : - des moyens de détermination du nombre élémentaire d'opérations à effectuer pour décoder chaque unité élémentaire de données codée selon un mode de codage différent, - des moyens de détermination du nombre total d'opérations à effectuer pendant un intervalle de temps prédéterminé pour décoder une pluralité d'unités élémentaires de données codées en fonction, d'une part, du nombre élémentaire précédemment déterminé et, d'autre part, du nombre d'unités élémentaires codées selon chacun des modes de codage, - des moyens de décision quant à la détermination d'au moins un paramètre de codage des données en fonction du nombre total précédemment déterminé et d'un nombre total d'opérations prédéterminé. 12. Dispositif selon la revendication 11, caractérisé en ce que les moyens de détermination du nombre élémentaire d'opérations, de détermination du nombre total d'opérations pendant un intervalle de temps prédéterminé et de décision sont intégrés dans un premier appareil de communication relié à un second appareil de communication par un réseau de communication. 13. Dispositif selon la revendication 12, caractérisé en ce qu'il comporte des moyens de comparaison entre le nombre total d'opérations déterminé pendant l'intervalle de temps et le nombre total d'opérations qui pourraient être effectuées, pendant ce même intervalle de temps, dans le second appareil de communication. 14. Dispositif selon la revendication 13, caractérisé en ce qu'il comporte des moyens d'obtention par le premier appareil de communication du nombre total d'opérations pouvant être effectuées par le second appareil de communication. 15. Dispositif selon l'une des revendications 11 à 14, caractérisé en ce qu'il comporte des moyens d'estimation de la qualité d'au moins une unité élémentaire de données qui compare ladite au moins une unité élémentaire de données codée avec le paramètre de codage déterminé et ladite au moins une unité élémentaire de données non codée. 16. Dispositif selon la revendication 15, caractérisé en ce que, lorsque plusieurs paramètres de codage ont été déterminés, le dispositif comporte : - des moyens d'estimation de la qualité d'au moins une unité élémentaire de données pour chaque combinaison de paramètres de codage déterminée, - des moyens de sélection de la meilleure qualité parmi les différentes qualités estimées pour les différents paramètres de codage. 17. Dispositif selon la revendication 15 ou 16, caractérisé en ce qu'il comporte : - des moyens de codage d'au moins une unité élémentaire de données avec le paramètre de codage déterminé, - des moyens de décodage de ladite au moins une unité élémentaire de données codée, - des moyens d'estimation de la qualité de ladite au moins une unité élémentaire de données qui compare cette au moins une unité élémentaire de données non codée avec celle précédemment décodée. 18. Dispositif selon l'une des revendications 12 à 14, caractérisé en ce que la décision quant à la détermination dudit au moins un paramètre de codage est également prise en fonction de caractéristiques du réseau de communication. 19. Dispositif selon l'une des revendications 11 à 18, caractérisé en ce que les données sont des données vidéo. 20. Dispositif selon la revendication 1'9, caractérisé en ce que l'unité élémentaire de données forme un macrobloc de données. 21. Appareil de communication, caractérisé en ce qu'il comporte un dispositif de détermination d'au moins un paramètre de codage de données selon l'une des revendications 11 à 20. 22. Moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution des étapes du procédé de détermination d'au moins un paramètre de codage de données selon l'une des revendications 1 à 10. 23. Moyen de stockage d'informations amovible, partiellement ou totalement lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution des étapes du procédé de détermination d'au moins un paramètre de codage de données selon l'une des revendications 1 à 10. 24. Programme d'ordinateur chargeable dans un appareil programmable, caractérisé en ce qu'il comporte des séquences d'instructions ou des portions de code logiciel pour mettre en oeuvre les étapes du procédé de détermination d'au moins un paramètre de codage de données selon l'une des revendications 1 à 10, lorsque ce programme d'ordinateur est chargé et exécuté par l'appareil programmable.