Brevet FR2885241A1 — publié le 20061103

PROCEDE DE TRAITEMENT DE DONNEES EN PROVENANCE D'UN EQUIPEMENT CLIENT La présente invention concerne un procédé de traitement, par une station de traitement de données, de données en provenance d'un équipement client. On entend par équipement client un équipement susceptible de fournir des données numériques à traiter et d'échanger des données avec une station de traitement. L'équipement client est, par exemple, un équipement mobile de type grand public tel qu'un équipement multimédia, un équipement de prise de vue ou un téléphone portable. Bien que le procédé puisse être mis en oeuvre pour tout type de données, l'invention trouve des applications en particulier pour le traitement de données d'images, ou de séquences d'images. On entend par station de traitement tout équipement, généralement fixe, capable d'échanger des données avec un ou plusieurs équipements clients, et d'effectuer à partir des données un certain nombre de traitements et de calculs. Les stations de traitement sont, par exemple des stations d'impression domestiques, des bornes interactives ou des serveurs de prestataires distants. Etat de la technique antérieure Des systèmes permettant l'échange de données entre différents équipements informatiques en vue de distribuer des capacités de calcul ou de traitement sont en soi bien connus. On peut se référer, par exemple, aux documents (1) et (2) dont les références sont précisées à la fin de la présente description. La distribution de tâches de calcul ou de traitement de données nécessite l'établissement de liens de communication pour l'échange des données entre les équipements participant. Les données peuvent être échangées par un réseau de communication distribué, tel que le réseau Internet, par un réseau de communication local sans fil, tel que le permettent les protocoles Bluetooth ou WiFi, par exemple, ou encore par l'intermédiaire d'une interface de connexion physique entre les équipements. La distribution des tâches de calcul nécessite d'autre part un langage et un contexte de traitement commun pour permettre l'interopérabilité des équipements. On peut se reporter à ce sujet aux documents (3) et (4) dont les références sont également précisées à la fin de la description. 2885241 2 Exposé de l'invention Les utilisateurs d'équipements portables, et en particulier d'équipement de prise de vue numériques, tels que des appareils photo ou des téléphones portables à capteur d'image intégré, se voient proposer un nombre croissant de services auxquels ils peuvent accéder à domicile, ou au moyen d'une borne interactive publique. Deux difficultés principales se posent pour offrir des services à un large public d'utilisateurs. Une première difficulté tient à la diversité des environnements logiciels de fonctionnement des équipements, et la diversité même des équipements susceptibles de constituer un équipement client . Une deuxième difficulté tient à la nécessité de mettre à jour fréquemment les logiciels des stations de traitement pour offrir des services adaptés au goût changeant des utilisateurs. Il est possible de développer chaque nouveau logiciel de traitement de données dans une pluralité de langages de manière à permettre 1'interopérabilité des stations de traitement avec un grand nombre d'équipements clients différents. Toutefois dans ce cas, la mise en place de chaque nouveau logiciel, et celle de ses mises à jour, constituent une opération coûteuse. En outre, il n'est pas possible de prendre en compte l'arrivée d'équipements clients nouveaux dont le langage logiciel n'est pas compatible avec celui de la station de traitement. L'invention a pour but de proposer un procédé de traitement de données permettant d'obvier aux difficultés ci-dessus. Un but est en particulier de permettre une interopérabilité élargie avec une large gamme d'équipements clients. Un autre but est de permettre la mise à jour d'un logiciel de traitement dans un langage unique et de permettre l'accueil d'équipements clients n'utilisant pas le langage du logiciel de traitement. Pour atteindre ces buts, l'invention concerne plus précisément un procédé de traitement de données par une station de traitement disposant d'un cadre 30 logiciel de travail collaboratif commun avec au moins un équipement client comprenant: - la réception de données à traiter depuis l'équipement client, - l'exécution d'un programme de traitement des données et - le renvoi des données traitées vers l'équipement client. Conformément à l'invention, le renvoi des données traitées est accompagné d'instructions exécutables par l'équipement client dans le cadre logiciel de travail collaboratif. Au sens de l'invention on entend par cadre logiciel de travail collaboratif ou framework un ensemble de fonctionnalités comportant la découverte d'équipements homologues, l'échange de données, la manipulation de données telle que le stockage, l'affichage, la transformation, l'association, le déplacement, etc. ainsi que l'interprétation du langage d'instructions logicielles du cadre de travail. A cet ensemble de fonctionnalités s'ajoute un langage d'instructions logicielles permettant de lancer les fonctionnalités. On peut noter que l'invention n'impose pas un support de l'ensemble des fonctionnalités sur chacun des équipements. On peut citer à titre d'exemples de cadre d'échange de données, les web services , la technologie D-COM de Microsoft ou RMI (Remote Method Invocation) de Java. Grâce à l'invention, il n'est pas nécessaire que l'environnement logiciel de fonctionnement du client soit compatible avec celui de la station de traitement. La compatibilité est restreinte au cadre logiciel de travail collaboratif qui permet l'exécution d'un certain nombre d'instructions simples. Ainsi la mise à jour des logiciels de traitement ou la mise en place de nouveaux logiciels ne nécessite aucune précaution de compatibilité avec les équipements clients. Bien que ce ne soit pas nécessaire à la mise en oeuvre du procédé, les instructions exécutables envoyées par la station de traitement à l'équipement client peuvent porter de préférence sur les données traitées en provenance de la station de traitement. Les instructions exécutables par l'équipement client dans le cadre logiciel de travail collaboratif sont par exemple: la mise en mémoire des données traitées, l'affichage des données traitées, l'affichage de messages, le remplacement dans une mémoire des données à traiter par les données traitées, ou l'envoi des données à traiter vers une autre machine. Par ailleurs, les instructions exécutables dirigées de la station de traitement vers l'équipement client sont de préférence des instructions à exécution forcée. En d'autres termes, aucune commande de l'utilisateur n'est nécessaire pour qu'au moins une partie des instructions soient exécutées par l'équipement client. Ceci n'exclut pas la possibilité de prendre en compte des instructions supplémentaires saisies par l'utilisateur de l'équipement client. A titre d'illustration, on donne une série d'instructions exécutables par un appareil de prise de vue, concernant des données d'image traitées par la station de traitement. La série comporte: l'affichage sur un écran de contrôle de l'équipement client d'une image correspondant aux données d'image traitées, l'ouverture à l'utilisateur d'une commande de sauvegarde, et le replacement des données de l'image à traiter, par les données traitées lorsque l'utilisateur valide la commande de sauvegarde. Cette série, bien qu'offrant une option à l'utilisateur de choix de sauvegarder ou non, ne reste pas moins une série d'exécution forcée. En effet l'affichage de l'image correspondant aux données traitées et l'ouverture de la commande de sauvegarde sont des instructions qui s'opèrent de manière automatique. Les instructions exécutables peuvent encore mettre en oeuvre des informations contenues dans les données traitées et notamment des données d'images. Il s'agit, par exemple, de métadonnées (métadata) contenues dans un fichier de type EXIF. Dans une mise en oeuvre particulière du procédé de l'invention les instructions envoyées à l'équipement client peuvent être générées en fonction des données à traiter et reçues par la station de traitement. Ceci est avantageux notamment pour des équipements clients de type multimédia. Des instructions exécutables distinctes peuvent être envoyées par la station de traitement à l'équipement client en fonction de la nature des données. Par exemple, pour des données de son, des données d'image ou, des données de texte, des instructions de restitution sonore, ou d'affichage sélectif ou de mise en page peuvent être respectivement prévues. Selon un autre exemple, la détection de données d'image défectueuses peuvent provoquer l'envoi d'une instruction offrant à l'utilisateur une possibilité de sélection entre différents jeux de données traitées fournis par la station de traitement et correspondant à différents degrés de correction des données d'image. Toujours à titre d'exemple, l'invention permet également de proposer le classement en album d'une collection d'images, de proposer un résumé vidéo d'une séquence vidéo, de proposer l'ajout d'un cadre autour de l'image pour la construction d'une carte postale, ou de certains effets artistiques. Selon un perfectionnement de l'invention, le procédé peut comporter, en outre, la réception par la station de traitement d'instructions logicielles de traitement des données. Les instructions logicielles, sont des codes de programme dont l'envoi vers la station de traitement peut être déclenché par l'équipement client. Il s'agit, par exemple, de codes logiciels conservés dans une mémoire de l'équipement client ou de codes téléchargés vers l'équipement client et transmis à la station de traitement par l'équipement client. Il peut encore s'agir de codes directement transmis à la station de traitement par une banque de programmes logiciels, en réponse à une commande en provenance de l'équipement client. Les codes de traitement peuvent aussi résider dans la station de traitement. Les instructions logicielles destinées à la station de traitement peuvent être notamment des codes non interprétables par l'équipement client ou non exécutables par l'équipement client ou non transformable en un programme exécutable par l'équipement client. Il suffit, en effet que les codes soient exprimés dans un langage que la station de traitement saura interpréter ou exécuter ou transformer en un programme exécutable. Les instructions logicielles transmises à la station de traitement à l'initiative de l'utilisateur de l'équipement client, peuvent être des instructions à usage temporaire. Les instructions à usage temporaire sont des instructions dont l'exécution par la station de traitement est limitée dans le temps, ou dont le nombre d'utilisations successives est limité. A titre d'exemple, il peut s'agir d'un jeu d'instructions logicielles de traitement de données d'images permettant de traiter un nombre prédéterminé d'images, voire un jeu d'instructions logicielles à usage unique. Dans une mise en oeuvre particulière du procédé, des fonctions d'envoi d'instructions logicielles, de l'équipement client vers la station de traitement, peuvent être préalablement masquées et n'être activées qu'en réponse à l'établissement d'une liaison de communication entre l'équipement client et la station de traitement. L'activation des fonctions d'envoi se traduit, par exemple, par l'assignation à certaines commandes d'une interface de l'équipement client des fonctions de sélection de certain types de traitements de données réalisables par la station de traitement. Un affichage adapté sur un écran de contrôle peut alors indiquer à l'utilisateur les traitements possibles et les commandes correspondantes d'une interface de commande de l'équipement client. L'actionnement d'une commande par l'utilisateur déclenche alors l'envoi des instructions logicielles à la station de traitement en plus des données à traiter, et l'exécution de ces instructions par la station de traitement sur ces données. D'autres caractéristiques et avantages de l'invention ressortiront de la description qui va suivre, en référence à la figure du dessin annexé. Cette description est donnée à titre purement illustratif et non limitatif. Brève description de la figure La figure unique illustre de manière schématique un certain nombre de taches et traitements susceptibles d'être effectués lors de la mise en oeuvre d'un procédé de traitement conforme à l'invention. Description détaillée de modes de mise en oeuvre de l'invention La partie gauche de la figure illustre un certain nombre d'opérations ou d'étapes exécutées par un équipement client 10. La partie droite de la figure illustre des étapes du procédé effectuées par une station de traitement 20. Il convient de noter qu'une même station de traitement est susceptible d'être utilisée par une pluralité d'équipements clients identiques ou différents, et qu'un équipement client est susceptible d'envoyer des données à traiter à différents types de stations de traitement. La description qui suit se réfère à une application particulière de l'invention au traitement de données d'images, c'est à dire de données numériques relatives à des images numériques ou des séquences d'images numériques. Il s'agit notamment d'images produites par un appareil photographique ou plus généralement par un équipement portable pourvu d'un capteur d'images. Les données d'image peuvent aussi être des données d'images d'un équipement portable qui n'est pas pourvu d'un capteur d'image, mais qui est pourvu d'une interface de communication permettant la réception de fichiers d'images en provenance d'autres équipements. Dans ce contexte, on considère que la station de traitement est une borne interactive commerciale. Les bornes interactives commerciales offrent aux utilisateurs d'équipements de prise de vue, différents types de services. Il s'agit, par exemple, de la possibilité de télécharger des données d'images vers le serveur d'un prestataire d'archivage, ou de réaliser des épreuves photographiques au moyen d'une imprimante. Dans le cas présent, il peut aussi s'agir de traitements d'amélioration d'images. Il convient de souligner que des données de son ou d'autres données multimédia pourraient être traitées de manière analogue à ce qui suit. Par ailleurs la station de traitement pourrait être une simple station d'impression domestique ou un serveur distant. Une première étape 30, à l'initiative de l'équipement client consiste à établir une communication entre l'équipement client 10 et la station de traitement 20. Il s'agit, en l'occurrence, d'une communication par un réseau local sans fil. La communication, symbolisée par une flèche 32 peut utiliser un canal hertzien radiofréquence ou un canal infrarouge, par exemple. Une connexion par réseau distribuée ou une connexion physique sont également envisageables. L'établissement de la communication consiste à détecter la présence dans l'environnement local de l'équipement client d'une station de traitement et d'identifier un protocole de communication commun. L'établissement de la communication 32 implique également la transmission d'informations d'identification et de collaboration de la station de traitement vers l'équipement client. Il s'agit de l'étape 62 effectuée par la station de traitement. Le protocole de communication peut faire partie dans ce cas du cadre logiciel de travail collaboratif. L'exécution de certaines étapes du procédé dans le cadre logiciel de travail collaboratif est indiqué sur la figure par des rectangles à cotés latéraux dédoublés. Les rectangles simples indiquent des étapes qui on lieu, ou tout au moins qui peuvent avoir lieu, dans un cadre logiciel propre à l'équipement concerné. Une deuxième étape 34 exécutée par l'équipement client est d'offrir à l'utilisateur la possibilité de sélectionner un jeu de données devant être traité. Cette étape peut également être antérieure à l'établissement du lien de communication. L'utilisateur sélectionne lors de cette étape une ou plusieurs images pour lesquelles il souhaite un traitement. L'équipement client peut aussi présenter à l'utilisateur l'option de sélectionner le type de traitement auquel il souhaite soumettre les images sélectionnées. Il s'agit de l'étape 36. Le traitement sélectionné peut être un traitement d'amélioration de contraste, d'élimination des yeux rouges, de recadrage de l'image autour d'une zone d'intérêt etc. Cette étape, facultative, peut aussi avoir lieu avant l'établissement d'un lien de communication. Le traitement peut aussi ne pas être spécifié. En effet, une analyse des données d'image peut être faite automatiquement par la station de traitement et la nature des traitements qui seront appliqués aux données d'image peut être déterminée automatiquement au terme de l'analyse des caractéristiques de l'image. A titre d'exemple, un traitement d'augmentation de contraste peut être appliqué automatiquement à des données d'une images au contraste insuffisant. Un traitement de correction d'yeux rouges peut être effectué automatiquement sur des données d'une image sans laquelle est détecté un visage avec des yeux rouges, etc. Les instructions logicielles nécessaires au traitement des données, peuvent être des instructions logicielles résidant dans la station de traitement. Ceci nécessite toutefois une mise à jour régulière des logiciels résidents. Cette mesure, relativement simple pour des bornes interactives commerciales, l'est beaucoup moins pour des stations de traitement domestiques. Ainsi, une solution proposée consiste à faire appel à des instructions logicielles présentes dans une banque de programmes distante 40 avec laquelle au moins l'un parmi l'équipement client ou la station de traitement peuvent être en communication. La banque de programmes est, par exemple, hébergée dans le serveur d'un prestataire de distribution de solutions logicielles, avec lequel l'équipement client ou la station de traitement peuvent communiquer. La communication peut se faire par un réseau de communication distribué, tel que le réseau Internet. L'utilisateur de l'équipement client peut, par exemple, télécharger des instructions logicielles, et en particulier des instruction logicielles à usage unique ou à usage temporaire, depuis la banque de programmes 40 vers son équipement. Cette opération est indiquée par une flèche 42. Les instructions logicielles téléchargées sont en particulier des instructions non exécutables par l'équipement client mais des instructions qui offrent de nouvelles fonctions de traitement. Elles sont stockées dans une mémoire. Une étape additionnelle indiquée avec la référence 37 consiste en l'activation de ces fonctions nouvelles. Plus précisément, un affichage sur un écran de contrôle de l'équipement client indique à l'utilisateur la possibilité de sélectionner des fonctions nouvelles de traitement correspondant aux instructions téléchargées. Ces fonctions peuvent être sélectionnées par des commandes d'une interface de commande de l'équipement client, temporairement dédiées à cette sélection. Les commandes sont, par exemple, les touches d'un clavier alphanumérique. L'affichage relatif aux fonctions et à la faculté de les sélectionner peut être subordonné à l'établissement préalable du lien de communication 32 avec la station de traitement. Ceci permet de guider aisément l'utilisateur, notamment lorsque de nombreuses possibilités sont offertes. Celles-ci sont adaptées à la nature des données et au type de station de traitement. Au terme de la sélection des données à traiter, et la sélection des fonctions, c'est à dire des traitements à effectuer, une étape d'envoi de données 38 a lieu. L'envoi de données comprend un ou plusieurs fichiers 39a de données à traiter et, éventuellement un ou plusieurs fichiers 39b contentant les instructions logicielles, c'est à dire des codes de programme. L'envoi peut aussi comporter une simple information 39c relative à la sélection d'un traitement souhaité par l'utilisateur. Cette étape correspond, du coté de la station de traitement, à l'étape 64 de réception de données à traiter, et, accessoirement, la réception d'instructions logicielles ou d'une information de sélection du type de traitement souhaité. La réception par la station de traitement des données à traiter depuis l'équipement client a lieu dans le cadre logiciel de travail collaboratif. Une flèche 66 qui relie pointe vers la banque de programmes 40, montre également la possibilité éventuelle pour la station traitement de recevoir directement les instructions logicielles 39b de la banque de programmes. Cet envoi peut toutefois être soumis à une commande préalable 42 émanant de l'équipement client, et éventuellement à une procédure de paiement. La réception des données est suivie, dans la station de traitement par une étape de calcul 68. L'étape de calcul 68 comprend deux aspects. Un premier aspect est le traitement proprement dit des données devant être traitées. Le traitement peut avoir lieu notamment avec des instructions logicielles résidentes ou reçues lors de l'étape de réception de données 64. Un autre aspect est la préparation d'instruction exécutables destinées à l'équipement client dans le cadre logiciel de travail collaboratif. Les instructions exécutables destinées à l'équipement client peuvent en particulier être sélectionnées ou établies en fonction des données traitées et éventuellement en fonction du type de traitements sélectionnés. Elles peuvent consister à effectuer une opération indépendante des données traitées, par exemple afficher un message. Préférentiellement les instructions exécutables portent sur les données traitées. A titre d'illustration, une instruction peut consister pour l'équipement client à afficher sur un écran de contrôle de l'équipement client le résultat des données traitées, en l'occurrence une image améliorée, ou bien à afficher un classement en album d'une série d'images, à diffuser une musique destinée à accompagner une séquence vidéo, ou à afficher une image sur laquelle a été superposée un cadre du type carte postale. Une étape suivante 70 consiste à envoyer depuis la station de traitement vers l'équipement client émetteur, et éventuellement vers d'autres équipement clients distincts, sélectionnés par l'utilisateur, les données traitées 71a et les instructions 7 lb exécutables par l'équipement client. Une dernière étape 72, réalisée par l'équipement client, consiste recevoir les données traitées de même que les instructions, et à exécuter les instructions. De préférence, l'ensemble des instructions sont des instructions exécutables entièrement dans le cade logiciel de travail collaboratif. Il est cependant possible de prévoir que certaines opérations soient effectuées par l'équipement client selon des codes logiciels qui lui sont propres. Dans ce cas les instruction exécutables se limitent au déclenchement de ces opérations. On peut, par exemple, envisager l'envoi d'un mél (email), l'écriture d'un texte libre sur un cadre du type carte postale , ou encore l'édition d'une vidéo pour sa retouche. Documents cités 1) US 2003/0009533 2) US 2003/0225935 3) US 6 637 021 4) US 6 292 824 REVENDICATIONS 1 - Procédé de traitement de données par une station de traitement (20) disposant d'un cadre logiciel de travail collaboratif avec au moins un équipement client (10) comprenant: - la réception (64) de données à traiter (39a) depuis l'équipement client, - l'exécution (68) d'un programme de traitement des données et - le renvoi des données traitées (71 a) vers l'équipement client, caractérisé en ce que le renvoi des données traitées est accompagné d'instructions (7 lb) exécutables par l'équipement client dans le cadre logiciel 10 de travail collaboratif 2 Procédé selon la revendication 1, dans lequel les instructions exécutables (71b) sont des instructions à exécution forcée. 3 - Procédé selon la revendication 1, dans lequel les instructions exécutables par l'équipement client sont sélectionnées ou établies en fonction des données à traiter (39a) envoyées par l'équipement client à la station de traitement. 4 - Procédé selon la revendication 1, comprenant en outre la réception (64) par la 20 station de traitement d'instructions logicielles (39b) de traitement des données à traiter. - Procédé selon la revendication 4, dans lequel les instructions logicielles (39b) sont reçues par la station de traitement depuis un serveur (40), en réponse à 25 une requête de l'équipement client. 6 - Procédé selon la revendication 4, dans lequel les instructions logicielles (39b) reçues par la station de traitement sont des instructions inexécutables par l'équipement client. 7 - Procédé selon la revendication 4, dans lequel les instructions logicielles (39b) sont reçues par la station de traitement depuis l'équipement client. 8 - Procédé selon la revendication 6, dans lequel les instructions logicielles destinées à la station de traitement sont des instructions à usage temporaire. 9 - Procédé selon la revendication 6, dans lequel on active, dans l'équipement client, une fonction de sélection des instructions logicielles dessinées à l'unité de traitement, en réponse à l'établissement d'une liaison de communication (32) entre la station de traitement et l'équipement client. - Procédé selon la revendication 1, comprenant la réception, par la station de traitement, d'une information de sélection de traitement en provenance de l'équipement client.