FR2959636A1 - Procede d'acces a une partie spatio-temporelle d'une sequence video d'images - Google Patents

Procede d'acces a une partie spatio-temporelle d'une sequence video d'images Download PDF

Info

Publication number
FR2959636A1
FR2959636A1 FR1053273A FR1053273A FR2959636A1 FR 2959636 A1 FR2959636 A1 FR 2959636A1 FR 1053273 A FR1053273 A FR 1053273A FR 1053273 A FR1053273 A FR 1053273A FR 2959636 A1 FR2959636 A1 FR 2959636A1
Authority
FR
France
Prior art keywords
spatial
compressed data
selection
spatial area
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1053273A
Other languages
English (en)
Other versions
FR2959636B1 (fr
Inventor
Youenn Fablet
Franck Denoual
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR1053273A priority Critical patent/FR2959636B1/fr
Priority to US13/094,778 priority patent/US9258622B2/en
Publication of FR2959636A1 publication Critical patent/FR2959636A1/fr
Application granted granted Critical
Publication of FR2959636B1 publication Critical patent/FR2959636B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6375Control signals issued by the client directed to the server or network components for requesting retransmission, e.g. of data packets lost or corrupted during transmission from server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234345Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234363Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2668Creating a channel for a dedicated end-user group, e.g. insertion of targeted commercials based on end-user profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4728End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for selecting a Region Of Interest [ROI], e.g. for requesting a higher resolution version of a selected region
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6373Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17336Handling of requests in head-ends
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23412Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs for generating or manipulating the scene composition of objects, e.g. MPEG-4 objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234318Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into objects, e.g. MPEG-4 objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/454Content or additional data filtering, e.g. blocking advertisements
    • H04N21/4545Input to filtering algorithms, e.g. filtering a region of the image
    • H04N21/45455Input to filtering algorithms, e.g. filtering a region of the image applied to a region of the image

Abstract

L'invention concerne un procédé et un dispositif d'accès à une partie spatio-temporelle d'une séquence vidéo (15) d'images compressée selon un format de codage mettant en œuvre une prédiction. Le procédé comprend les étapes consistant à : - définir (E300, E500) une zone spatiale cible (160) correspondant à ladite partie spatio-temporelle à accéder; - obtenir (E330, E530, E905) des données compressées correspondant à une zone spatiale de sélection (170) dans au moins une image (110) de la séquence vidéo (15), ladite zone spatiale de sélection incluant ladite zone spatiale cible; - obtenir (E360, E570, E645, E925) au moins une information de mise à jour de la zone spatiale de sélection (170) prévue pour sélectionner des données compressées dans une image suivante de la séquence vidéo, ladite information de mise à jour étant fonction du décodage (E350, E550, E600, E910) des données compressées correspondant à ladite zone spatiale cible (160).

Description

La présente invention concerne un procédé d'accès à une partie spatio-temporelle d'une séquence vidéo d'images, ainsi qu'un dispositif associé. Elle s'applique en particulier aux séquences compressées selon un format de codage mettant en oeuvre des mécanismes de prédiction. Les algorithmes de compression vidéo, comme ceux normalisés par les organismes de standardisation ITU, ISO, SMPTE, exploitent les redondances spatiales et temporelles des images afin de générer des flux binaires de données de taille réduite par rapport aux séquences vidéo originales. De telles compressions rendent la transmission et/ou le stockage des séquences vidéo plus efficaces.
La plupart des schémas de compression vidéo, tels que les formats MPEG-1, MPEG-2, MPEG-4, H.261, H.263, H.264 ou encore H.265, tirent parti des redondances, dites "temporelles", entre plusieurs images successives d'une même séquence. Ainsi, la plupart des images sont codées par rapport à une ou plusieurs images de référence par comparaison de blocs similaires puis codage de l'erreur de prédiction. On qualifie communément cette prédiction de temporelle ou "Inter". Dans le cas du format MPEG-2 par exemple, des images de type I (pour Intra) sont encodées sans référence à d'autres images de la séquence. Ainsi, dès que toutes les données compressées d'une telle image sont disponibles, un décodeur peut décoder et afficher immédiatement cette image. Une image de type I constitue ainsi un point d'accès classique à la séquence vidéo. A noter que, classiquement, ces images de type I sont présentes périodiquement, avec une période de l'ordre de quelques dixièmes de secondes à quelques secondes. Dans le cas du format H.264, ces images sont notées "IDR" ou "Sr Le format MPEG-2 met également en oeuvre des images de type P (prédiction à partir de la dernière image I) ou B (prédiction bidirectionnelle à partir des images précédente et suivante de type P ou I) qui sont encodées par prédiction par rapport à une ou plusieurs images de références. Les données compressées relatives à de telles images (il s'agit des données codant les erreurs de prédiction) ne sont pas suffisantes pour obtenir une image affichable.
II convient en effet d'obtenir les données des images de référence qui ont été utilisées lors de la prédiction. Des images de type P et B ne constituent donc pas des points d'accès efficaces à la séquence vidéo. Le mécanisme de prédiction temporelle s'avère par conséquent extrêmement efficace en terme de compression, mais impose des contraintes aux décodeurs vidéo qui veulent assurer une reconstruction correcte des images d'une même séquence, en particulier en limitant l'accès aléatoire temporel de la séquence vidéo compressée aux seules images de type I. Cumulativement à l'exploitation des redondances temporelles, les codeurs vidéo tirent également parti des redondances, dites "spatiales", au sein d'une même image. Pour cela, chaque image est décomposée en unités spatiales, des blocs ou macroblocs, et un bloc peut être prédit à partir d'un ou plusieurs de ses blocs voisins spatiaux, ce que l'on appelle communément la prédiction spatiale ou prédiction "Intra". Ce mécanisme appliqué notamment dans le cas des images Intra évoquées précédemment améliore également de façon notable la compression d'une séquence vidéo. Toutefois, une dépendance entre les blocs est introduite, et celle-ci complique l'extraction d'une partie spatiale seulement de la séquence. Pour pallier cet inconvénient, certains schémas de codage tel que H.264 proposent une organisation des blocs en paquets ("packet" ou "slice" û "tranches") de blocs interdépendants n'ayant pas de dépendances spatiales avec des blocs hors de ce paquet. L'organisation en paquets repose sur une technique connue sous l'appellation FMO pour "Flexible Macroblock Ordering". Ces paquets sont bien souvent signalés par des marqueurs permettant à un décodeur d'y accéder sans effectuer un décodage et une reconstruction complète de l'image, et notamment des blocs qui les précèdent dans l'image. Chaque paquet ou tranche constitue ainsi un point "d'accès" à la séquence vidéo ou de synchronisation spatiale à partir duquel le décodeur n'a aucune difficulté à procéder au décodage de façon indépendante des autres paquets. Néanmoins, il peut subsister, pour ces blocs, des dépendances temporelles si l'image est codée en référence à une ou plusieurs autres images. Ainsi, le cumul des prédictions temporelle et spatiale fait que généralement l'extraction d'une partie spatio-temporelle d'une séquence vidéo, c'est-à-dire d'une portion spatiale pendant une section temporelle de plusieurs images consécutives de la séquence, est une opération complexe.
L'extraction d'une partie spatio-temporelle dans une séquence vidéo fait donc l'objet, de nos jours, de vastes développements. Le consortium W3C ("World Wide Web Consortium", organisation produisant des standards pour le Web) travaille sur l'élaboration d'un mécanisme d'adressage de segments temporels ou de zones spatiales dans des ressources disponibles sur le Web telles que des séquences vidéo, en utilisant notamment des URI ("Uniform Resource Identifier") permettant d'identifier, via une séquence de caractères, une ressource physique ou abstraite. Ce mécanisme, indépendant du format de représentation de la 20 ressource, est appelé fragments de média ou "Media Fragments". Le mémorandum RFC ("Request For Comments") numéro 3986 définit une syntaxe pour les URIs, et intègre notamment les notions de "fragment" et de "requêtes". Dans ce contexte, un fragment est notamment une partie, un sous-ensemble, une vue ou une représentation d'une ressource 25 principale. L'adressage "Media Fragments" permettant l'accès à des sous-parties de flux vidéo, audio ou dans des images, par ajout de paramètres dans la requête, à la suite de l'adresse URI, permet d'adresser par exemple : û des segments temporels (ou "temporal fragment") définis par des 30 instants temporels initial et terminal: t=00:01:20,00:02:00 identifiant le segment de 1 min20s à 2min00s; et/ou û des zones spatiales (ou "spatial fragments") définies par une zone de visualisation généralement rectangulaire: xywh= 10, 10, 256, 256 spécifiant le coin haut gauche (10, 10), la largeur (256) et la hauteur (256) du rectangle; et/ou û des sous-flux (ou "track fragments"), par exemple une piste audio particulière associée à une vidéo: track='audio_fr'; et/ou û des passages pré-définis (ou "named fragments") via un identifiant, scène d'un film par exemple: id= la scene du baiser'. En plus de la syntaxe des fragments/requêtes pour l'adressage de ceux-ci, le même groupe de travail est en train d'élaborer un protocole de communication client-serveur basé sur le protocole HTTP ("Hyper Text Transfer Protocof') utilisé sur le Web. En particulier, le protocole définit les requêtes HTTP émises par un client désireux d'obtenir des fragments ainsi que les réponses émises par le serveur responsable de l'extraction et de l'envoi de ces fragments. Chaque requête HTTP ou réponse HTTP associée est composée d'informations d'en-tête et d'informations de données. On peut voir les informations d'en-tête comme des informations de description/signalisation (notamment sur le type des données échangées et sur l'identification des données retournées û zone finalement retournée) tandis que les informations de données correspondent au fragment spatial et/ou temporel de la ressource demandé par le client. Lorsque le fragment demandé peut être converti en une plage d'octets (ou "byte ranges") soit parce que le client a déjà reçu une description de la ressource avant émission de sa requête, soit parce que le serveur réalise une analyse de la ressource avant de l'envoyer, l'échange de fragments se rapproche d'un échange de données classiques via HTTP, ce qui permet d'exploiter les mécanismes de cache et ainsi de s'intégrer pleinement dans une architecture du Web. Si en revanche, le fragment ne peut être converti en une ou plusieurs plages d'octets appartenant à la ressource d'origine, un transcodage est alors nécessaire au niveau du serveur, et la nouvelle ressource ainsi créée est envoyée au client comme n'importe quelle ressource.
Ce mécanisme d'adressage et le protocole de communication associé sont avantageusement flexibles en ce qu'ils sont indépendants du format vidéo utilisé, des options d'encodage des séquences vidéo et des capacités disponibles sur les serveurs traitant de telles requêtes.
Par ailleurs, la mise en place de ce mécanisme d'adressage et du protocole de communication associé va permettre, à terme, de réduire de façon significative la quantité d'informations échangées entre un client demandant des parties d'une vidéo et un serveur stockant cette vidéo et fournissant ces parties demandées.
En effet, si un client souhaite ne visualiser qu'une partie spatiale d'une séquence vidéo, il n'a désormais plus besoin de télécharger l'intégralité du flux vidéo, mais uniquement la zone spatiale concernée dans éventuellement un intervalle temporel souhaité. Par exemple, la syntaxe de filtrage spatial mise en oeuvre est des plus simples, consistant à indiquer, dans la requête, la zone spatiale cible souhaitée, généralement sous forme d'un rectangle défini à l'aide de quatre paramètres (en pixels ou en pourcentage de l'image totale): http://www.example.org/my_video.mp4#xywh=percent;25,25,50,50 définissant la zone spatiale cible centrée sur l'image et de dimensions moitié celles de l'image totale. La portion ou "fragment" de la séquence vidéo identifié ici est dit "spatial" en ce qu'il résulte d'un filtrage spatial de la séquence vidéo d'origine par l'indication d'une zone spatiale cible. Bien entendu, d'autres critères de filtrage (par exemple temporels) peuvent être ajoutés à cette requête.
Cette requête est reçue et traitée par un serveur stockant la séquence vidéo cible. Théoriquement, seule la portion souhaitée de la séquence vidéo est échangée entre le serveur et le client. Cela permet notamment de réduire le délai de transmission ainsi que la bande passante utilisée sur le réseau de communication du serveur vers le client, en raison du nombre réduit de données transmises. Toutefois, en pratique, les serveurs stockant les séquences vidéo ont certaines difficultés pour extraire et envoyer la portion souhaitée filtrée depuis la séquence vidéo, notamment en raison des difficultés d'accès résultant des dépendances temporelles et/ou spatiales entre blocs. En effet, la portion souhaitée ne peut être extraite seule qu'au terme de traitements lourds au niveau du serveur, requérant d'importantes ressources. C'est par exemple le cas lorsque des mécanismes de transcodage sont mis en oeuvre. C'est aussi le cas lorsque tous les liens de prédictions sont résolus par le serveur pour sélectionner l'ensemble exact des blocs de données relatifs à la portion souhaitée et aux blocs servant de blocs de référence pour la prédiction.
De telles approches s'avèrent peu adaptées à des communications directes entre équipements disposant de ressources limitées, tels que des caméscopes, des décodeurs TV, des postes de télévision, ou encore des téléphones mobiles ou autres assistants personnels. Ces mêmes difficultés apparaissent pour des accès locaux à une 15 séquence vidéo. A l'inverse de l'obtention de la seule portion souhaitée, une approche plus économe pour le serveur consiste à envoyer l'entièreté de la séquence vidéo au client requérant. Toutefois, dans ce cas, les traitements réalisés par le client sont très lourds, généralement incompatibles avec ses ressources 20 propres, notamment s'il s'agit de clients disposant de faibles ressources de traitement tels que des terminaux portatifs. En outre, cette approche requiert une bande passante de réseau importante pour assurer la transmission des données depuis le serveur vers le client. En complément de ces mécanismes de transmission, il existe des 25 méthodes pour compenser d'éventuelles pertes de données subies lors de la transmission de celles-ci. Notamment, la publication US 2006/050695 décrit un procédé de transmission en continu (streaming) de données vidéo compressées à l'aide de mécanismes de prédiction, qui présente une amélioration de la résistance aux 30 erreurs. Un des principes exposés repose sur la transmission, par le serveur de streaming, d'une représentation redondante, éventuellement partielle, d'une image de référence, lorsque cette dernière est soumise à des erreurs (perte, corruption) de transmission. La méthode consiste à identifier les représentations redondantes qui permettent de suppléer les erreurs subies. Cette identification est fonction des retours de l'utilisateur identifiant les paquets non reçus. Enfin, la représentation redondante de plus petite taille est celle choisie pour être transmise. Ce procédé n'est toutefois pas adapté au cas où un utilisateur souhaite accéder et obtenir un fragment spatial correspondant à une zone spatiale spécifique de la vidéo. En effet, ce procédé repose sur la transmission de l'intégralité de la vidéo à l'utilisateur. En outre, l'approche relative à la transmission d'une représentation redondante est purement réactive en ce qu'elle vise à corriger des données passées erronées (les images de référence) qui auraient déjà dû être reçues. Cela revient donc à traiter une seconde fois ces données, ce qui entraîne un surcoût, à la fois pour le serveur et pour l'utilisateur. La présente invention vise à pallier au moins un des inconvénients de l'état de l'art, notamment pour permettre la transmission en continu de fragments spatiaux avec des coûts de traitement (serveur et client) et/ou de transmission (bande passante réseau) réduits.
Dans ce dessein, l'invention concerne tout d'abord un procédé d'accès à une partie spatio-temporelle d'une séquence vidéo d'images compressée selon un format de codage mettant en oeuvre une prédiction, comprenant une étape consistant à définir une zone spatiale cible correspondant à ladite partie spatio-temporelle à accéder, caractérisé en ce qu'il comprend les étapes consistant à : û obtenir des données compressées correspondant à une zone spatiale de sélection dans au moins une image de la séquence vidéo, ladite zone spatiale de sélection incluant ladite zone spatiale cible ; û obtenir au moins une information de mise à jour de la zone 30 spatiale de sélection prévue pour sélectionner des données compressées dans une image suivante de la séquence vidéo, ladite information de mise à jour étant fonction du décodage d'au moins les données compressées ainsi obtenues qui correspondent à ladite zone spatiale cible. La zone spatiale cible est notamment une sous-partie strictement incluse dans la zone spatiale de sélection.
Le procédé selon l'invention offre ainsi un accès efficace à des parties d'une séquence vidéo, notamment en limitant les erreurs dues à l'absence de données nécessaires, tout en limitant la charge de traitement pour les différents équipements et moyens utilisés, en particulier tout réseau de communication transmettant les données compressées sélectionnées.
Cette efficacité et cette limitation de la charge de travail sont obtenues par l'utilisation d'une zone spatiale de sélection qui inclut la zone spatiale cible définie par l'utilisateur, et par sa mise à jour en fonction du décodage des données compressées obtenues. Cette mise à jour permet de tenir compte d'éventuelles données manquantes ou superflues lors du traitement d'images courantes pour ajuster les données à sélectionner et à transmettre lors du traitement d'images suivantes en utilisant la zone spatiale de sélection mise à jour. Cette anticipation s'avère efficace étant donné que des images successives sont généralement relativement similaires, et mettent donc en oeuvre des codages par prédiction ressemblants. Dans un mode de réalisation de l'invention, le procédé comprend les étapes consistant à : û décoder lesdites données compressées obtenues qui correspondent à la zone spatiale cible; et û classer des unités spatiales d'images de la séquence vidéo, selon leur utilité lors dudit décodage, de sorte à obtenir une information de mise à jour fonction dudit classement. On entend par "utile" le fait que ces unités spatiales sont nécessaires à l'obtention des données décodées représentatives de la zone spatiale cible.
Ces opérations sont notamment réalisées au niveau d'un terminal client décodant les données compressées. En particulier, une unité spatiale est utile lors du décodage de données compressées correspondant à la zone spatiale cible, lorsque ladite unité spatiale est incluse dans la zone spatiale cible ou lorsque ladite unité spatiale comprend des données de référence utilisées dans le codage par prédiction desdites données compressées. Cette disposition permet de fournir une indication très précise des zones (utiles) à intégrer dans la zone de sélection et de celles (inutiles) à exclure de la zone de sélection lors de ladite mise à jour de la zone de sélection. Cette dernière en est d'autant plus précise. En particulier, ledit classement crée un groupe d'unités spatiales sélectionnées qui sont utiles pour le décodage desdites données compressées correspondant à la zone spatiale cible; un groupe d'unités spatiales sélectionnées qui ne sont pas utiles pour le décodage desdites données compressées correspondant à la zone spatiale cible; et un groupe d'unités spatiales non sélectionnées qui sont utiles pour le décodage desdites données compressées correspondant à la zone spatiale cible. L'information de mise à jour peut être ce classement, ce qui permet à l'entité mettant à jour la zone spatiale de sélection de disposer d'un maximum d'informations précises sur les performances de la zone de sélection courante. Selon une caractéristique particulière, ladite zone spatiale de sélection est définie par un ensemble de côtés, par exemple un rectangle, et le classement d'une unité spatiale conduit à la mise à jour d'au moins un paramètre de déplacement d'un côté de la zone spatiale de sélection. Il peut s'agir par exemple du nombre d'unités spatiales utiles non sélectionnées et/ou du nombre d'unités spatiales sélectionnées mais non utiles qui impactent chacun des côtés. De la sorte, on peut ajuster le déplacement de chaque côté de la zone de sélection au fur et à mesure du traitement de chaque unité spatiale. Les paramètres résultant du traitement de l'ensemble des unités spatiales permettent donc de mettre à jour la zone de sélection. En particulier, ladite information de mise à jour comprend les paramètres de déplacement relatifs à chaque côté de la zone spatiale de sélection. Ainsi, l'entité en charge de la mise à jour, récupérant cette information, peut procéder à la modification de position de chacun des côtés de la zone de sélection, sans coût important de traitement. En outre, cette information est peu volumineuse si elle doit être transmise à un serveur. Dans un mode de réalisation de l'invention, le procédé est mis en oeuvre dans un terminal client d'un réseau de communication, et comprend une étape de transmission, dudit terminal client à un serveur distant stockant ladite séquence vidéo compressée, de l'information de mise à jour, notamment les informations de classification ou de façon similaire l'identification des unités spatiales sélectionnées non utiles et celles utiles mais non sélectionnées, de sorte que ledit serveur puisse mettre à jour ladite zone spatiale de sélection pour la sélection de données compressées dans une image suivante de la séquence vidéo. L'invention permet donc, dans un contexte client-serveur, de répartir les charges de travail sur les différents intervenants. Dans un autre mode de réalisation, le procédé comprend les étapes consistant à : û stocker les données compressées obtenues; û identifier des unités spatiales non sélectionnées et utiles pour le décodage desdites données compressées correspondant à la zone spatiale cible, de sorte à former ladite information de mise à jour transmise; û apporter des corrections audit décodage des données compressées correspondant à la zone spatiale cible pour compenser l'absence des unités spatiales identifiées afin d'afficher une version décodée desdites données compressées; û requérir et recevoir, auprès dudit serveur distant, lesdites unités spatiales identifiées; et û mettre à jour les données compressées stockées à l'aide desdites unités spatiales identifiées reçues. Dans un mode de réalisation de l'invention, le procédé est mis en oeuvre dans un dispositif serveur d'un réseau de communication, et comprend les étapes consistant à : û recevoir, d'un terminal client distant, une requête d'accès à ladite partie spatio-temporelle de sorte à définir une zone spatiale cible identifiée dans ladite requête; û envoyer, audit terminal client distant, lesdites données compressées obtenues; û recevoir, dudit terminal client, ladite information de mise à jour; et û mettre à jour ladite zone spatiale de sélection en fonction de ladite information de mise à jour reçue. Cette configuration est également relative à un contexte client-serveur. Elle contribue également à une répartition équitable des charges de travail entre les différents intervenants. En particulier, le procédé comprend une étape consistant à mémoriser, par le dispositif serveur, un historique du traitement d'une pluralité de requêtes d'accès, et ladite mise à jour de la zone spatiale de sélection pour une requête d'accès ultérieure est fonction dudit historique. Cette disposition peut notamment être appliquée pour des séquences vidéo contenant des modifications brutales d'images, car dans ce cas les retours des terminaux clients ne sont pas toujours pertinents. Dans un mode de réalisation, ladite obtention des données compressées comprend la sélection de données compressées correspondant à un groupe de plusieurs images, par exemple un GOP, et l'information de mise à jour est fonction du décodage des données compressées obtenues dans ces plusieurs images. Cette disposition permet, contrairement à une analyse image après image, de tenir compte des dépendances temporelles pour mettre à jour la zone spatiale de sélection. En particulier, l'information de mise à jour est générée à chaque nouveau groupe d'images.
Selon une caractéristique particulière, l'obtention des données compressées correspondant à une image dudit groupe d'images comprend les étapes consistant à : û ajuster les dimensions de la zone spatiale de sélection en fonction du type d'image concernée; et û sélectionner les données compressées correspondant à ladite image, qui sont incluses dans ladite zone spatiale de sélection ajustée.
De façon connue, le type d'image pour une image peut refléter la prédiction appliquée lors de la compression de cette image, comme c'est le cas, par exemple, avec le format de codage MPEG-2 où l'on identifie les types "I", "P" et "B".
Cette disposition permet notamment d'ajuster la quantité de données compressées à transmettre et à décoder, pour in fine réduire la charge de travail pour le décodeur et la bande passante utilisée dans un réseau de communication. Dans un mode de réalisation de l'invention, ladite information de mise à jour est fonction d'au moins une unité spatiale non sélectionnée et utile pour le décodage desdites données compressées correspondant à la zone spatiale cible, notamment en ce qu'elle sert d'unité de référence dans la prédiction de ces données compressées. Une unité spatiale peut par exemple être un bloc de pixels, un macrobloc ou encore une tranche ("slice") de macroblocs. L'identification de ces unités spatiales est relativement simple pour le décodeur. En outre, comme leur absence est la principale source d'erreur dans la reconstruction de la portion spatio-temporelle demandée, leur prise en compte dans la mise à jour de la zone spatiale de sélection améliore considérablement le taux d'erreur pour les images suivantes.
En particulier, ladite information de mise à jour est fonction d'au moins une unité spatiale sélectionnée et non utile pour le décodage desdites données compressées correspondant à la zone spatiale cible, notamment en ce qu'elle n'est pas utilisée comme référence dans la prédiction de ces données compressées. L'identification de ces unités spatiales reste également relativement simple pour le décodeur. En outre, la prise en compte de cette ou ces unités spatiales inutiles permet éventuellement de mettre à jour la zone spatiale de sélection dans une version de taille plus petite. Ainsi, la quantité de données compressées traitées par le décodeur et éventuellement transmises sur un réseau de communication est réduite.
La prise en compte conjointe des unités spatiales inutiles et des unités spatiales utiles non sélectionnées permet donc d'obtenir un compromis efficace entre l'utilisation des ressources des différents moyens mis en oeuvre (réseau, décodeur, équipement stockant les données compressées, etc.). En variante, ladite information de mise à jour est fonction d'une estimation moyenne de mouvement de la zone spatiale cible entre deux images. Cette configuration présente l'avantage d'être simple à mettre en oeuvre à partir des vecteurs mouvement présents dans les données décodées. Dans un mode de réalisation de l'invention, le procédé comprend une étape de mise à jour de ladite zone spatiale de sélection, ladite mise à jour consistant à identifier une zone spatiale (notamment la plus petite) englobant un ensemble d'unités spatiales non sélectionnées qui sont utiles pour le codage desdites données compressées correspondant à la zone spatiale cible. Cela permet de limiter l'analyse aux seuls blocs manquants, indépendamment d'éventuels blocs inutiles. La charge de traitement est donc réduite. Selon une autre caractéristique, le procédé comprend une étape de mise à jour de ladite zone spatiale de sélection, ladite mise à jour comprenant une étape de réduction de ladite zone spatiale de sélection en fonction d'une information de congestion relative à un réseau de communication sur lequel sont transmises lesdites données compressées obtenues. Cela permet de tenir compte du réseau de communication dans la détermination des données à transmettre. En effet, la transmission de certains blocs utiles peut entraîner celle d'un grand nombre de données inutiles, saturant inutilement la bande passante du réseau. Corrélativement, l'invention concerne un dispositif d'accès à une partie spatio-temporelle d'une séquence vidéo d'images compressée selon un format de codage mettant en oeuvre une prédiction, comprenant un moyen de définition d'une zone spatiale cible correspondant à ladite partie spatio-temporelle à accéder, caractérisé en ce qu'il comprend: û un moyen d'obtention de données compressées correspondant à une zone spatiale de sélection dans au moins une image de la séquence vidéo, ladite zone spatiale de sélection incluant ladite zone spatiale cible; û un moyen d'obtention d'au moins une information de mise à jour de la zone spatiale de sélection prévue pour sélectionner des données compressées dans une image suivante de la séquence vidéo, ladite information de mise à jour étant fonction du décodage d'au moins les données compressées ainsi obtenues qui correspondent à ladite zone spatiale cible. Le dispositif d'accès présente des avantages similaires à ceux du procédé exposé ci-dessus, notamment d'offrir une transmission efficace de fragments vidéo spatiaux, en limitant l'impact sur les moyens intervenants dans cet accès, notamment un réseau de communication, un serveur émetteur et un client décodeur. De façon optionnelle, le dispositif peut comprendre des moyens se rapportant aux caractéristiques du procédé exposé précédemment, et en particulier, des moyens de classement d'unités spatiales notamment en groupes, des moyens de mise à jour de la zone spatiale de sélection notamment par ajustement de chacun de ses côtés, des moyens d'émission et/ou de réception, ou encore des moyens de sélection des données compressées correspondant à la zone spatiale de sélection. L'invention concerne également un moyen de stockage d'informations, éventuellement totalement ou partiellement amovible, lisible par un système informatique, comprenant des instructions pour un programme informatique adapté à mettre en oeuvre un procédé conforme à l'invention lorsque ce programme est chargé et exécuté par le système informatique. L'invention concerne également un programme d'ordinateur lisible par un microprocesseur, comprenant des portions de code logiciel adaptées à mettre en oeuvre un procédé conforme à l'invention, lorsqu'il est chargé et exécuté par le microprocesseur.
Les moyens de stockage d'information et programme d'ordinateur présentent des caractéristiques et avantages analogues aux procédés qu'ils mettent en oeuvre. D'autres particularités et avantages de l'invention apparaîtront encore dans la description ci-après, illustrée par les dessins ci-joints, dans 30 lesquels : - la figure 1 représente un exemple de système pour la mise en oeuvre de l'invention; - la figure 2 illustre la décomposition d'une image d'un groupe d'images d'une séquence vidéo, ainsi que des zones spatiales cible et de sélection selon l'invention; - la figure 3 illustre, sous forme de logigramme, des étapes générales d'un mode de réalisation de la présente invention; - la figure 4 illustre une classification de macroblocs dans l'image lors de la mise en oeuvre de l'invention pour mettre à jour une zone spatiale de sélection; - la figure 5 illustre, sous forme de logigramme, des étapes d'un exemple de mise en oeuvre de l'invention dans un contexte client-serveur; - la figure 6 illustre, sous forme de logigramme, des étapes pour la mise à jour de la zone spatiale de sélection; - la figure 7 illustre la mise en place de l'adaptation de la zone spatiale de sélection à l'intérieur d'un groupe d'images à traiter conjointement; - la figure 8 illustre, sous forme de logigramme, des étapes pour la sélection de données compressées en fonction de la zone spatiale de sélection; - la figure 9 illustre, sous forme de logigramme, un exemple d'application de l'invention dans un contexte client-serveur; - la figure 10 illustre, sous forme de logigramme, des étapes pour le stockage d'informations historiques relatives au traitement de requêtes d'accès spatial à une séquence vidéo; - la figure 11 illustre, sous forme de logigramme, des étapes pour l'utilisation de ces informations historiques lors du calcul ou de la mise à jour de la zone spatiale de sélection; et - la figure 12 montre une configuration matérielle particulière d'un dispositif apte à une mise en oeuvre du ou des procédés selon l'invention. Comme représenté sur la figure 1, un exemple de système 10 pour la mise en oeuvre de l'invention comprend un serveur 11 relié à un terminal client 12, via un réseau de communication 13. D'autres terminaux client (non représentés) peuvent être connectés au même réseau 13. Le réseau de communication 13 peut être de toute nature, filaire ou sans fil, de téléphonie mobile ou informatique tel que l'Internet.
Par exemple, le serveur 11 peut être un serveur web auquel un utilisateur accède à l'aide d'un terminal mobile 12 (téléphone, assistant personnel, etc.) ou d'un terminal fixe (ordinateur, télévision équipée d'un accès Internet).
Dans une application multimédia, le serveur 11 peut être une simple caméra fixe ou en réseau, un caméscope ou un serveur vidéo. Le serveur 11 stocke, dans une base de données multimédia 14, des séquences vidéo 15 compressées pour diminuer les coûts de stockage et de distribution. Les séquences vidéo 15 ont notamment été compressées en utilisant des mécanismes de prédiction temporelle et/ou spatiale. La figure 2 représente une partie d'une séquence vidéo 15, constituée d'un groupe 100 d'images 110, autrement appelé GOP ("Group Of Pictures", notion bien connue de l'homme de l'art). Chaque image 110 est composée de façon classique d'un ensemble de pixels (non représentés) organisés en macroblocs 150, eux même groupés en tranches 120 (délimitée par le trait discontinu), 130 (délimitée par le trait en pointillés). Pour obtenir la séquence vidéo compressée 15, chaque macrobloc 150 a été codé par exemple par prédiction à partir de blocs de référence compris soit dans la même image soit dans une ou plusieurs images de référence. Les vecteurs mouvement 140 sont calculés pour chaque macrobloc prédit temporellement et mémorisé dans les données compressées 15. Pour la prédiction Intra, les blocs de référence pour coder un macrobloc 150 sont pris dans la même tranche 120 ou 130, de telle sorte que les macroblocs d'une tranche sont interdépendants mais indépendants de blocs appartenant à d'autres tranches. Dans un mode de réalisation, la présente invention concerne particulièrement l'accès, par le terminal client 12, à une partie spatio-temporelle de la séquence vidéo 15 stockée sur le dispositif serveur 11. Au cours de cet accès, une zone spatiale cible ou fenêtre spatiale cible 160 délimitant spatialement cette partie à accéder est définie par un utilisateur. Cette zone cible correspond à ce que l'utilisateur souhaite visualiser. Optionnellement, l'utilisateur peut préciser des limites temporelles à la partie à accéder. A titre illustratif, la requête http://www.example.org/my_video.mp4#t=tl ,t2;xywh=percent;25,25,50,50 peut être émise pour obtenir le fragment spatial correspondant à la zone cible xywh entre les instants t1 et t2. La zone spatiale cible 160 demeure identique pour l'ensemble de la section temporelle [t1, t2] souhaitée. En l'absence de limite temporelle, la séquence vidéo est transmise selon la zone cible définie tant que l'utilisateur ne met pas fin à sa demande (par exemple par fermeture de son application de visualisation). Dans l'exemple de la figure, la zone spatiale cible 160 est à cheval sur les tranches 120 et 130. Comme généralement au moins une partie des données de la zone spatiale cible 160 est codée par prédiction temporelle en référence à des macroblocs externes aux tranches 120 et 130, l'obtention des données compressées relatives à ces deux tranches s'avère être insuffisante pour procéder à un décodage complet. Dans ce cadre, l'invention propose d'utiliser et d'adapter une zone spatiale de sélection ou fenêtre spatiale de sélection 170, cette zone spatiale de sélection incluant la zone spatiale cible 160. Cette zone spatiale de sélection 170 a pour vocation de sélectionner des données compressées, à la fois les données à visualiser et les données de référence pour celles à visualiser, dans au moins une image de la séquence vidéo en vue de les transmettre à un dispositif de décodage. L'adaptation de cette zone de sélection 170 selon l'invention joue sur la quantité de données compressées qui est transmise, en vue d'un compromis entre une réduction de cette quantité pour optimiser l'utilisation du réseau 13 et limiter les traitements sur le terminal client 12, et une augmentation de cette quantité pour disposer de suffisamment de données pour décoder sans erreur l'ensemble de la zone spatiale cible 160 à visualiser par exemple. Ce compromis peut également être vu comme un compromis entre les charges de filtrage spatial qui incombent d'un côté au serveur 11 et de l'autre côté au terminal client 12. L'adaptation de la zone spatiale de sélection 170 est réalisée au travers d'une mise à jour de celle-ci en fonction du décodage des données compressées appartenant à ladite zone spatiale cible qui sont obtenues pour au moins une image de la séquence. Cette mise à jour tient notamment compte de l'utilité de certaines unités spatiales, telles que des blocs de pixels, des macroblocs ou des tranches, lors du décodage. Comme on le verra par la suite, cette adaptation peut notamment jouer sur la taille et sur la position de la zone de sélection 170 à l'intérieur des images, cette zone de sélection 170 pouvant être par exemple un simple rectangle parallèle aux bords de l'image ou une forme géométrique plus complexe ou pouvant s'appuyer sur les frontières d'ensembles caractéristiques de pixels de l'image (par exemple un polygone suivant les frontières de macroblocs 150 ou de tranches 120/130). Cette zone de sélection est de préférence strictement incluse dans l'image de sorte à ce que l'on évite d'envoyer, lorsque cela est possible, l'intégralité des données compressées correspondant à cette image. Ce sont alors les données correspondant aux tranches contenant au moins une partie des données appartenant à la zone de sélection qui sont envoyées au terminal client. La fréquence de mise à jour de la zone spatiale de sélection 170 peut être de une image à plusieurs images voire plusieurs fois dans une même image, et être variable dans le temps. Dans un mode de réalisation, utilisé pour la suite de la description, cette mise à jour a lieu à chaque nouveau groupe GOP d'images, ce qui signifie qu'une zone spatiale de sélection 170 est associée à l'ensemble des images d'un GOP. La zone spatiale de sélection 170 ainsi adaptée peut alors être appliquée pour sélectionner des données compressées dans une image suivante de la séquence vidéo.
Il s'avère que cette zone spatiale de sélection 170 mise à jour est également efficace pour cette image suivante en raison de la cohérence qui lie généralement des images successives dans les séquences vidéo.
L'invention permet ainsi, à moindre augmentation des traitements pour le serveur et le terminal client, d'obtenir efficacement les données nécessaires au décodage du fragment spatial souhaité, sans surcharger le réseau de communication de données inutiles.
En référence à la figure 3, on décrit maintenant les étapes principales d'un procédé conforme à l'invention. A l'étape E300, une fenêtre de visualisation correspondant à une zone spatiale cible 160 est définie, notamment par un utilisateur au niveau du terminal client 12.
A l'étape E310, une zone spatiale de sélection 170 est alors déterminée. Cette zone de sélection peut être initialement calculée à partir de paramètres d'encodage vidéo de la séquence vidéo 15 à accéder, au moyen d'heuristiques préétablies, en se basant sur les connaissances de l'encodeur par exemple. Par exemple, en cas d'utilisation d'encodeurs légers (qui réduisent le temps consacré à la prédiction en se limitant à un voisinage proche du macrobloc à prédire), une zone spatiale de sélection 170 faiblement plus large que la zone cible 160 peut être choisie. En variante, ce calcul peut être effectué à partir de décodages 20 passés sur des contenus vidéo, éventuellement sur cette même séquence vidéo. On notera par ailleurs que la taille du groupe GOP 100 peut également influer sur ce calcul, lorsqu'une même zone spatiale de sélection 170 est utilisée pour tout le GOP. En effet, en présence d'un moins grand 25 nombre de prédictions pour un groupe GOP plus petit, la zone spatiale de sélection sera d'autant plus petite que le groupe GOP est petit. Suite à la détermination E310 de la fenêtre de sélection, les données compressées de la séquence vidéo peuvent être traitées, ici les données relatives à un groupe GOP 100. Bien entendu, selon le cas d'espèce, ces 30 données peuvent correspondre à une image ou même à une portion d'image uniquement.
Pour chaque groupe GOP à traiter (test E320), les données compressées correspondantes à ce groupe 110 sont récupérées de la base 14 (étape E330). La partie de ces données correspondant à la zone spatiale de 5 sélection 170 déterminée à l'étape E310 est sélectionnée (étape E340), comme par exemple décrit ci-après en lien avec la figure 8. Lorsque cette sélection est opérée au niveau du serveur 11, les données compressées ainsi obtenues sont généralement transmises au terminal client 12 requérant. En variante, sélection et décodage peuvent être 10 menées au sein d'un même équipement. A l'étape E350, ces données compressées obtenues sont décodées. A cette étape sont ainsi décodées les données compressées correspondant à la zone spatiale cible 160 (c'est-à-dire celle que l'utilisateur veut visualiser) et les données compressées hors zone cible (potentiellement des données 15 constitutive de macroblocs ou autres unités spatiales de référence pour une prédiction). Des mécanismes classiques d'identification des données obtenues permettent de savoir à quelles parties de l'image elles correspondent. L'étape suivante E360 consiste alors à obtenir au moins une information sur la base de laquelle sera décidée la mise à jour de la zone 20 spatiale de sélection 170. Dans l'exemple présent, l'étape E360 consiste à classer des unités spatiales du groupe GOP 100, ici des macroblocs 150, selon leur utilité dans le décodage de l'étape E350. L'utilité regroupe au moins deux cas: l'utilité au titre de l'appartenance à la zone cible 160 à visualiser, et l'utilité au titre de la 25 prédiction (un macrobloc est utile à ce titre s'il constitue un macrobloc de référence pour des données de la zone cible à décoder) qu'elle soit spatiale ou temporelle. On obtient ainsi une cartographie de classification d'unités spatiales. A titre illustratif, ce classement peut créer trois groupes : 30 û un groupe G1 des macroblocs "utiles", comprenant les macroblocs sélectionnés à l'étape E340 et qui sont utiles pour le décodage des données compressées correspondant à la zone spatiale cible 160. Ces macroblocs regroupent les macroblocs de la zone à visualiser 160, mais également des macroblocs sélectionnés qui servent de référence pour des macroblocs de la zone cible 160 (généralement par prédiction spatiale) ; ù un groupe G2 des macroblocs "inutiles", comprenant les macroblocs sélectionnés (et éventuellement non sélectionnés) qui ne sont pas utiles pour le décodage des données compressées correspondant à la zone spatiale cible 160. Il s'agit donc, dans le cas principal, des macroblocs appartenant à la portion spatiale située entre les zones cible 160 et de sélection 170, et qui n'ont pas été utilisés comme blocs de référence pour le codage des données de la zone cible; et ù un groupe G3 des macroblocs "nécessaires", comprenant les blocs non sélectionnés qui s'avèrent utiles pour le décodage des données compressées correspondant à la zone spatiale cible 160. Il s'agit notamment des macroblocs extérieurs à la zone spatiale de sélection 170 qui servent toutefois de référence dans la prédiction des macroblocs de la zone cible. Ils sont identifiables grâce aux informations de prédiction (vecteurs mouvements) mémorisées dans les données compressées. Bien entendu, en présence de plusieurs images interdépendantes du fait de la prédiction temporelle, ce classement est réalisé communément pour l'ensemble des images. C'est le cas dans notre exemple où l'on traite un groupe GOP d'images. Dans ce cas, par projection de la localisation de chacun des macroblocs classés sur une même image, on obtient une cartographie bidimensionnelle. Par exemple si un macrobloc de la zone cible 160 est prédit temporellement par le premier macrobloc d'une image antérieure, on considère que le premier macrobloc est "nécessaire". Suite à l'étape de classement E360, la zone spatiale de sélection 170 est mise à jour en fonction de ce classement obtenu (étape E370), de telle sorte que le contenu suivant à traiter (dans notre exemple un nouveau groupe GOP d'images ù retour à l'étape E320) est traité à l'aide de cette zone spatiale de sélection mise à jour.
Le traitement se poursuit jusqu'à épuisement des données compressées d'intérêt, par exemple parce que la section temporelle [t1, t2] spécifiée dans la requête de l'utilisateur est entièrement traitée. Les étapes de classement E360 et de mise à jour E370 seront décrites plus en détail par la suite en référence à la figure 6. Ces deux étapes sont présentées ici sous forme d'étapes distinctes afin d'en rendre les explications plus claires. Toutefois, leurs traitements peuvent être réalisés en une seule étape, sans construire réellement la cartographie évoquée. Par exemple, cette cartographie peut être réduite à un ou plusieurs paramètres ou critères définissant la zone spatiale de sélection 170, par exemple un paramètre de modification de chaque côté d'une telle zone rectangulaire. La figure 4 illustre ce classement et la mise à jour résultante à l'aide d'une image dans laquelle une zone spatiale cible 160 a été définie (figure 4a). La figure 4b montre cette même image dans laquelle on a représenté une zone spatiale de sélection 170, ainsi que les différents groupes obtenus après classement : G1 en hachuré diagonal, G2 en hachuré vertical et G3 en hachuré horizontal. Comme évoqué précédemment, les macroblocs du groupe G3 peuvent correspondre à des macroblocs de référence provenant d'autres images que l'image en cours de traitement. Ils sont ici projetés sur une même image pour obtenir une cartographie bidimensionnelle. Dans cet exemple toutes les données nécessaires (c'est-à-dire utiles mais non sélectionnées) sont sur la gauche de la fenêtre de sélection 170, alors que les données inutiles sont aux abords des trois autres côtés de cette fenêtre rectangulaire. A titre illustratif, une telle situation peut par exemple se produire lorsque la séquence vidéo résulte d'un travelling de caméra, décalant progressivement la zone d'intérêt. Dans ce cas, la mise à jour de la zone spatiale de sélection 170 peut simplement consister à accroître cette zone sur la partie gauche pour incorporer les macroblocs nécessaires, et à diminuer cette zone sur les autres côtés pour extraire un maximum de macroblocs inutiles sans toutefois extraire ceux utiles. Ainsi, selon le découpage en tranches de l'image effectué à l'encodeur, suite à la mise à jour de la zone spatiale de sélection 170, certaines tranches peuvent ne plus avoir besoin d'être fournies au décodeur. La figure 4c montre le résultat obtenu pour traiter le groupe d'images suivant.
Dans cet exemple, on voit donc que le décodage des données compressées correspondant à la zone spatiale cible 160 mais également à la zone spatiale de sélection 170 influe sur la mise à jour de cette zone spatiale de sélection 170 à partir de laquelle sont récupérées les données compressées pour une image suivante ou un GOP suivant. Cette influence découle du fait que certaines données sélectionnées sont inutiles (groupe G2) et/ou que certaines données non sélectionnées s'avèrent utiles (groupe G3). La présente invention peut s'appliquer à l'accès local d'une partie d'une séquence vidéo stockée localement, par exemple dans le cas d'un décodeur équipé d'un disque dur de stockage.
Elle s'applique également dans le contexte d'une communication client-serveur, comme représenté sur la figure 1, où le serveur 11 peut jouer le rôle d'encodeur de séquences vidéo et le terminal client 12 celui de décodeur. On décrit maintenant un exemple de mise en oeuvre de l'invention dans un tel contexte, en référence à la figure 5.
A l'étape E500, un utilisateur définit, au niveau de son terminal client 12, une partie spatio-temporelle d'une séquence vidéo 15 à laquelle il souhaite accéder. Cette partie spatio-temporelle définit entre autres une zone spatiale cible 160. Le terminal client 12 envoie alors au serveur 11 une requête d'accès au fragment spatial correspondant, par exemple en utilisant le format Media Fragments. A l'étape E510, le serveur 11 recevant cette requête détermine une zone spatiale de sélection 170 englobant la zone spatiale cible 160 définie dans la requête, de façon similaire à l'étape E310 décrite précédemment. Le test E520 consiste, pour le serveur, à vérifier s'il reste des données à envoyer (en l'espèce des données par groupe GOP). Ce test correspond à vérifier si toutes les données compressées correspondant au fragment demandé ont été transmises au terminal client. Il peut s'agir de simplement vérifier que la section temporelle [t1, t2] éventuellement indiquée dans la requête n'a pas été entièrement traitée. Tant qu'il reste des données à transmettre (sortie "oui" du test E520), les étapes E530 à E580 sont exécutées pour chaque ensemble de données (ici 5 chaque groupe GOP successif). A l'étape E530, le serveur 11 sélectionne, dans la base 14, les données compressées correspondant à la zone spatiale de sélection 170, par exemple les tranches contenant au moins une partie des données appartenant à la zone de sélection 170. 10 Ces données compressées sélectionnées sont alors transmises au terminal client 12, par exemple en utilisant le protocole Media Fragments (étape E540). Le terminal client 12 procède alors au décodage (étape E550) des données ainsi reçues pour les exploiter (afficher la zone cible 160 et/ou stocker 15 ces données localement, etc.). En fonction de ces données décodées, il détermine (étape E560) par ailleurs au moins une information de mise à jour de la zone spatiale de sélection. Cette information peut consister en une cartographie issue d'un classement par unités spatiales, par exemple par macroblocs, comme évoqué 20 supra pour l'étape E360. Le terminal client 12 envoie (étape E570) alors un message de retour (feedback) au serveur 11 basé sur l'information de mise à jour représentée notamment par cette classification. Ce message peut aisément être transmis dans un canal de communication streaming temps-réel type RTSP ("Real Time 25 Streaming Protocof'). En variante, les étapes E560 et E570 pour produire l'information de mise à jour peuvent consister, pour le terminal client 12 : - connaissant la zone spatiale de sélection 170, à calculer lui-même la zone spatiale de sélection mise à jour par exemple à partir dudit 30 classement ; et - à transmettre au serveur, comme information de mise à jour, les paramètres définissant cette zone mise à jour.
Dans ce cas, le serveur n'a plus qu'à appliquer directement la fenêtre de sélection. Dans une autre variante, le terminal client 12 peut uniquement envoyer, au serveur, l'identification (c'est-à-dire l'emplacement dans les images) des unités spatiales (macroblocs) "nécessaires" correspondant à celles du groupe G3 défini supra. Le serveur 11 ne fait alors qu'augmenter la zone spatiale de sélection 170 en fonction de ces unités spatiales nécessaires. En variante encore, le terminal client 12 peut uniquement envoyer, au serveur, des informations statistiques ou paramètres relatifs aux différents côtés délimitant la zone spatiale de sélection. Ces informations peuvent notamment indiquer le nombre d'unités spatiales "nécessaires" (utiles non sélectionnées) et le nombre d'unités spatiales "inutiles" (sélectionnées mais non utiles) qui impactent chacun des côtés. Dans ce cas, le serveur va calculer la modification de position de chacun de ces côtés en fonction de ces paramètres transmis. Sur la base de cette information de mise à jour ou cette classification, le serveur 11 procède alors à la mise à jour (étape E580) de la zone spatiale de sélection 170, en ajustant par exemple les côtés de cette zone pour englober l'ensemble des macroblocs des groupes G1 et G3 et exclure une maximum de macroblocs non utiles (c'est-à-dire du groupe G2 ou dans aucun desdits groupes). Dans un mode de réalisation particulier, le serveur tient compte uniquement des macroblocs "nécessaires" pour agrandir la zone spatiale de sélection de sorte à y intégrer l'ensemble de ces macroblocs, mais tient également compte d'informations de congestion du réseau 13 pour déterminer (en comparant par exemple des valeurs représentatives de cette congestion avec des valeurs seuils), le cas échéant, si la zone spatiale de sélection doit être réduite. La zone spatiale de sélection mise à jour à l'étape E580 est donc celle qui est utilisée lors de l'itération suivante de l'étape E540, c'est-à-dire, dans notre exemple, pour le traitement des données compressées relatives au prochain groupe d'images GOP.
Du fait de la cohérence entre les images successives (et donc entre des GOP successifs), les données compressées sélectionnées lors du traitement du GOP suivant seront généralement suffisantes (ou du moins avec un nombre d'erreurs réduits) pour décoder la zone spatiale cible 160 pour les images du GOP suivant. On voit ici que les traitements additionnels mis en oeuvre par le serveur et le terminal client pour obtenir ce résultat sont de faible complexité par rapport à une transmission classique client-serveur (étapes E530 et E580 pour le serveur et étapes E560 et E570 pour le terminal client).
On décrit maintenant en lien avec la figure 6 un exemple de traitement pour mettre à jour la zone spatiale de sélection 170 en fonction du décodage des données compressées sélectionnées, comme évoqué par exemple au cours des étapes E350 à E370. La première étape E600 consiste à décoder des données 15 compressées (macrobloc par macrobloc). Cette étape permet de déterminer si ces données ont été codées par prédiction temporelle/spatiale (test E605), auquel cas un macrobloc de référence est identifié. Si ce n'est pas le cas, on passe au macrobloc suivant par le test 20 E635. Si c'est le cas, à l'étape E610, on vérifie si on dispose ou non déjà des données décodées du macrobloc de référence identifié. Soit ce macrobloc appartient à une image précédente déjà décodée, soit il appartient à la même image mais est supposé avoir été décodé avant. 25 Si le macrobloc de référence est manquant (sortie "oui" du test E610 sur la figure), on mémorise la localisation de ce macrobloc dans une liste G3 des macroblocs "nécessaires" (étape E620). Autrement, on mémorise (E615) la localisation de ce macrobloc dans une liste G1 des macroblocs "utiles". 30 A noter que ces listes correspondent aux groupes évoqués en lien avec la figure 4: les macroblocs à l'intérieur de la zone cible 160 sont initialement marqués comme "utiles", ceux à l'extérieur comme "inutiles". Les étapes E615 et E620 permettent donc de mettre à jour ce classement des macroblocs, en modifiant un macrobloc "inutile" en macrobloc "utile" ou "nécessaire" selon le cas. Suite aux étapes E615 et E620, on effectue le test E635 pour itérer ce traitement sur tous les macroblocs. Lorsque toutes les données compressées ont été traitées (sortie "non" du test E635), on procède à la mise à jour de la zone spatiale de sélection 170 lors de l'étape E640. Cette mise à jour peut consister à appliquer les étapes E645 à E665 pour chacun des côtés définissant la zone spatiale de sélection 170, notamment des quatre côtés dans le cas d'une zone de sélection rectangulaire. Etant donné un côté choisi de cette zone 170, on obtient à l'étape E645 les informations de localisation des macroblocs de référence concernés par ce côté (c'est-à-dire notamment des macroblocs nécessaires situés à l'extérieur de la zone 170 par rapport audit côté et des macroblocs inutiles situés de l'autre côté). Par analyse de la quantité de macroblocs "nécessaires" (test E650 comparant par exemple une quantité absolue ou un ratio avec les macroblocs "inutiles" à une valeur seuil), le côté considéré de la zone de sélection 170 est agrandi si cette quantité est élevée (étape E655). En particulier, on peut s'assurer d'englober l'ensemble des macroblocs "nécessaires". Dans le cas contraire, si notamment un grand nombre de macroblocs sont "inutiles" (test E660 comparant par exemple une quantité absolue ou un ratio avec le nombre de macroblocs dans la zone 170 à une valeur seuil), le côté considéré de la zone de sélection 170 est rétréci (étape E665). Autrement aucune modification de la zone de sélection 170 n'est réalisée (étape E670). En variante des analyses proposées ci-dessus, il est possible de déterminer la position du côté de la zone 170 par minimisation d'une fonction comparant le nombre de macroblocs "nécessaires" avec le nombre de macroblocs "inutiles" (qui varient tous deux en fonction de cette position du côté). On tente ici d'obtenir le meilleur ratio entre le nombre de macroblocs "nécessaires" ajoutés à la zone de sélection et le surcoût de transmission des données sélectionnées par cette zone modifiée. Dans une variante de l'analyse par cartographie décrite ci-dessus en lien avec la figure 4, la mise à jour peut mettre en oeuvre l'utilisation d'informations statistiques résultant du décodage, telles que le déplacement moyen de la zone spatiale cible entre plusieurs groupes GOP successifs pour en déduire un ajustement des côtés de la zone spatiale de sélection. Cette approche peut être appliquée par exemple dans le cas d'une séquence vidéo restituant un travelling caméra d'une scène fixe.
Dans une autre variante, les vecteurs mouvement 140 des macroblocs 150 des zones spatiales cibles 160 sur le groupe GOP 100 courant peuvent être mémorisés et utilisés pour obtenir des informations statistiques plus précises, par exemple les zones de l'image vers lesquelles les vecteurs mouvement pointent le plus ou bien une direction privilégiée par ces vecteurs mouvement (résultant par exemple de la moyenne de tous ces vecteurs). Ces informations résultant d'une analyse des vecteurs mouvement sont alors utilisées pour déterminer plus précisément la zone spatiale de sélection mise à jour. Dans le cas de l'utilisation d'informations statistiques, celles-ci peuvent être limitées à des zones proches de la zone de sélection 170 avant mise à jour pour réduire l'analyse statistique nécessaire. Bien entendu, ces différentes approches permettant la mise à jour de la zone de sélection peuvent être mises en concurrence en permanence, par exemple à chaque nouvel accès à une séquence vidéo 15 ou pour chaque nouveau groupe GOP 100 traité. Des paramètres tels que le type de contenu vidéo (scène prise de loin avec lent travelling ou scène prise de très près avec des mouvements rapides de la caméra et dans la scène filmée), les options d'encodage ou encore les besoins de l'utilisateur rentrent en ligne de compte dans le choix de l'approche à appliquer. Les options d'encodage reflètent par exemple un encodage peu complexe (calcul de vecteurs mouvements assez simple et limité spatialement et temporellement) typique d'un encodage sur une caméra, ou au contraire un encodage très complexe (recherche exhaustive de références spatiales et temporelles) typique d'un encodage effectué sur des machines ayant de grandes capacités de traitement. Ce choix peut notamment être réalisé avant la transmission en continu du contenu vidéo filtré (spatialement) dans le contexte client-serveur.
Deux critères principaux peuvent être utilisés : û la complexité des références : plus les références sont complexes, moins on utilise l'invention et on passe au transcodage ou à l'envoi de toutes les données ; û la capacité du décodeur à calculer des informations statistiques supplémentaires : plus le décodeur a des capacités pour réaliser de tels calculs, plus on calcule des informations statistiques permettant d'améliorer la position de la fenêtre de sélection. On décrit maintenant, en référence aux figures 7 et 8, des opérations de sélection des données compressées 15 à l'aide de la zone spatiale de sélection 170, comme évoqué notamment ci-dessus en lien avec l'étape E340. Cette sélection a lieu entre deux retours (feedback) du terminal client 12: un retour lors du traitement du groupe GOP précédent, et le retour prochain sur le traitement du groupe GOP courant. Cette zone spatiale de sélection 170 est fixée pour un groupe GOP 100 d'images 110 courant. Toutefois, à l'intérieur du groupe, pour la sélection des données compressées, cette zone spatiale peut être adaptée en fonction du type d'image concernée, notamment les types "I", "P" et "B" pour le codage MPEG-2. On parlera donc, pour la suite, de zone spatiale de sélection associée au groupe GOP pour définir la zone la plus générale, et zone spatiale de sélection adaptée à une image pour définir chaque zone plus spécifique à un type d'image (ou à tout autre type de paramètre pouvant être pris en compte). Bien sûr, en variante, la zone spatiale de sélection associée au GOP peut être utilisée, telle qu'elle est, pour chacune des images du GOP. La figure 7 illustre l'adaptation de la zone spatiale de sélection 170 lorsque l'on considère uniquement le critère du typage des images. La zone spatiale cible 160 (rectangle discontinu) définie par l'utilisateur dans sa requête est similaire pour l'ensemble des images 110 du GOP 100 à traiter. La zone spatiale de sélection 170 pour chaque image est représentée en trait plein. Pour la première image I, cette zone de sélection 170 est nettement plus large que la zone cible 160. Ceci s'explique par le fait que cette image I sert d'image de référence pour un grand nombre d'autres images P et B. Ainsi, un grand nombre de macroblocs de référence est présent dans cette image I, et la zone de sélection 170 est prévue pour englober tous ces macroblocs (ou une grande majorité). Pour la deuxième image, ici de type B, qui par définition ne sert jamais d'image de référence pour le codage d'autres images, la zone spatiale de sélection 170 est nettement plus petite, de même taille ou à peine plus large que la zone spatiale cible 160. L'image suivante est de type P et peut donc servir d'image de référence pour quelques autres images ultérieures. Comme cette image est en concurrence avec l'image I précédente lorsqu'il s'agit de prédire des données d'images ultérieures, il est généralement supposé que les vecteurs mouvement seront plus petits lorsqu'il est fait référence à cette image P qu'à l'image I. La zone de sélection 170 est donc de taille intermédiaire entre celle retenue pour l'image de type I et celle retenue pour l'image de type P.
L'image suivante étant de type B, on applique la même zone spatiale 170 que pour la deuxième image. Et ainsi de suite. Une convention peut être établie pour déterminer le taux de réduction appliquée à la zone de sélection pour chaque type d'image: pour les images I, on applique la zone spatiale de sélection 170 telle qu'elle est définie pour le GOP ; pour les images B, on applique par exemple la zone de sélection identique à la zone cible ou bien plus grande d'un certain pourcentage; pour les images P, on applique une zone de sélection de taille intermédiaire entre celles pour les images I et B, par exemple de taille médiane. A la fin du groupe GOP, la zone spatiale de sélection 170 est mise à 30 jour selon les enseignements de l'invention pour être appliquées aux images suivantes.
La sélection des données compressées comprend, comme illustré par la figure 8, une première étape E800 au cours de laquelle on récupère la zone spatiale de sélection 170 définie pour la ou les images à traiter, typiquement pour le groupe GOP 100 courant.
A l'étape E810, les données compressées de l'image courante (stockées dans la base 14), le type d'image courante et les options de codage sont récupérés. Ces paramètres permettent de définir plus précisément la zone spatiale de sélection adaptée à l'image à traiter. Par exemple, ces paramètres permettent de définir une borne supérieure des longueurs des vecteurs mouvement utilisés. Dans ce cas, cette borne supérieure est utilisée pour ajuster la zone spatiale de sélection adaptée à l'image courante (étape E820), à une zone englobant cette borne supérieure dans toutes les directions. A l'étape E830 suivante, on obtient, parmi les données compressées récupérées à l'étape E810, un premier ensemble de données compressées courantes. Il s'agit par exemple d'un macrobloc ou d'une tranche aisément identifiable grâce aux marqueurs présents dans le flux vidéo de la séquence 15 compressée. On détermine (étape E840) alors si ces données obtenues coupent au moins partiellement la zone spatiale de sélection adaptée à l'image lors de l'étape E820. Généralement, l'entête des données compressées courantes contient des informations permettant de connaître ou calculer la position de ces données dans l'image. Ainsi, par simple comparaison de cette position avec celle de la zone spatiale de sélection adaptée, il est aisé de déterminer si les données compressées courantes sont à l'intérieur, à cheval ou à l'extérieur de cette zone spatiale de sélection adaptée. Si l'ensemble de données compressées courantes est entièrement à l'extérieur de cette zone spatiale de sélection adaptée, cet ensemble est écarté lors de l'étape E850 avant de passer aux données compressées suivantes (test E870). Dans le cas contraire, on considère deux cas (étape E860) : û si toutes les données compressées courantes sont à l'intérieur de la zone de sélection adaptée, l'ensemble de ces données est sélectionné; û si ces données compressées courantes sont partiellement à l'intérieur de cette zone (situation où l'ensemble de données est à cheval sur la zone), un choix est alors opéré selon un ou plusieurs critères spécifiques pour déterminer si cet ensemble de données est sélectionné ou non. A titre d'exemple, on peut sélectionner une tranche de données compressées si au moins une quantité prédéfinie de macroblocs de cette tranche est à l'intérieur de la zone de sélection considérée. En variante, un ratio entre le nombre de macroblocs à l'intérieur et le nombre de macroblocs à l'extérieur peut être pris en compte et comparé à un ratio seuil. De façon optionnelle, une pondération des macroblocs peut être opérée pour donner plus de poids à ceux au centre de la zone de sélection considérée (car plus susceptible d'être utilisés) et moins de poids à ceux proches des bords de cette zone. Bien entendu, certains protocoles mis en oeuvre dans un contexte client-serveur permettent de transmettre une partie d'un ensemble de données considéré. Dans ce cas, seuls les macroblocs pertinents (à l'intérieur de la zone de sélection) de la tranche courante sont sélectionnés pour être transmis au terminal client 12.
Puis on passe aux données compressées suivantes (test E870). Une fois que toutes les données compressées ont été traitées (sortie "non" du test E870), on vérifie s'il reste des images supplémentaires à traiter (test E880) auquel cas on retourne à l'étape E810. Autrement, le traitement se termine (étape E890).
En référence à la figure 9, on décrit maintenant une application de l'invention toujours dans un contexte client-serveur, où le terminal client 12 souhaite à la fois procéder à l'affichage de la vidéo demandée (partie spatio-temporelle identifiée dans la requête utilisateur) et à stocker celle-ci après téléchargement pour réutilisation ultérieure.
Dans cette application, la terminal client 12 va vouloir corriger immédiatement les données manquantes (les données "nécessaires" telles que définies précédemment: les macroblocs non sélectionnés servant de référence pour le codage d'autres données de la zone spatiale cible 160) pour procéder à l'affichage, mais également récupérer ces données manquantes pour détenir localement une version complète de la vidéo demandée. Comme évoqué par la suite, dans ce cas, le terminal client 12 va procéder tout d'abord à l'identification des macroblocs manquants, puis à leur correction immédiate à l'aide de mécanismes de dissimulation d'erreurs ("error concealment") pour obtenir un affichage acceptable et enfin à la demande, auprès du serveur 11, de ces macroblocs manquants afin d'améliorer la qualité de la vidéo stockée.
Initialement, le terminal client 12 a émis une première requête à destination du serveur 11 pour obtenir un fragment spatial. Le serveur a donc renvoyé les données compressées sélectionnées comme décrit précédemment. Le terminal client dispose donc en mémoire de ces données compressées. A l'étape E900, le terminal client 12 obtient des données d'image compressées à décoder, en les récupérant depuis sa mémoire par exemple. Un premier ensemble, par exemple une tranche ou un macrobloc, de données compressées à décoder est alors obtenu à l'étape E905. Ces données compressées sont alors décodées de façon classique (étape E910) ce qui conduit à un classement des diverses unités spatiales intervenant dans ce décodage (étape E915, similaire à E360). Dans le cas où une unité spatiale (par exemple un macrobloc 150) est manquante (test E920), un identifiant de cette unité spatiale est mémorisé dans une liste G3 de blocs nécessaires (étape E925). A titre d'exemple, on peut mémoriser le numéro de tranche ou de NAL ("Network Abstract Layer") à laquelle appartient le macrobloc manquant ou bien mémoriser directement les index de ce macrobloc et de l'image de référence à laquelle il appartient. Puis, l'absence de cette unité spatiale est corrigée (étape E930) à l'aide de mécanismes classiques pour construire l'image à afficher: par exemple en réutilisant des informations de voisinage spatial ou temporel.
Suite à l'étape E930 ou si aucune unité spatiale n'est manquante, on vérifie s'il reste des données compressées à traiter (test E935), auquel cas on retourne à l'étape E905 pour traiter successivement ces données compressées jusqu'à épuisement de celles-ci. Lorsque toutes ces données compressées ont été traitées, l'image ou le groupe GOP d'images, incorporant d'éventuelles corrections E930 est affiché(e) lors de l'étape E940. En parallèle, le terminal client 12 informe le serveur 11 des macroblocs "nécessaires" qui manquent, en renseignant par exemple leurs identifiants. Cette information peut prendre la forme notamment d'une requête aux fins d'en obtenir le contenu. Bien entendu cette information peut être, conformément aux enseignements de la présente invention, utilisée au niveau du serveur 11 pour mettre à jour la zone spatiale de sélection pour traiter le groupe GOP d'images suivant. Ainsi, à l'étape E945, le serveur 11 récupère les macroblocs manquants, puis les transmet au terminal client 12 requérant afin que ce dernier puisse mettre à jour (étape E950) les données compressées qu'il stocke en plaçant les macroblocs récupérés aux endroits idoines. Les données compressées ainsi stockées constituent donc a priori une vidéo sans erreur. A noter que puisque ces macroblocs manquants sont utiles uniquement pour une future utilisation des données compressées stockées, leur récupération n'est pas prioritaire et peut donc être traitée dans un canal non prioritaire par le serveur 11. Notamment, cette récupération peut être effectuée une fois que l'ensemble de la vidéo a été affiché ou lors d'une requête ultérieure d'affichage de cette vidéo stockée par un utilisateur. En référence maintenant aux figures 10 et 11, on décrit un mode de réalisation de l'invention, toujours dans un contexte client-serveur, particulièrement bien adapté au cas d'une vidéo présentant des changements brutaux de scènes, par exemple lorsque l'angle de prise de vue est changé. Dans ce cas, les retours du terminal client 12 s'avèrent généralement peu efficaces lorsqu'il s'agit de prédire, par exemple, le déplacement du prochain groupe GOP à partir du groupe GOP courant. En effet, après un tel changement brutal dans la vidéo, il peut se produire un pic de macroblocs manquants.
Selon ce mode de réalisation, le serveur 11 obtient plusieurs requêtes successives de fragments spatiaux pour la même séquence vidéo 15 et mémorise des informations obtenues lors du traitement de chacune de ces requêtes. Ces informations peuvent avantageusement être peu volumineuses et seront notamment utilisées pour améliorer le résultat des requêtes suivantes. A titre illustratif, une telle information peut être simplement l'emplacement de la zone spatiale de sélection 170 utilisée. En outre, si ses ressources le permettent, le serveur 11 peut également mémoriser les identifiant macroblocs de données manquants.
La figure 10 décrit le stockage d'une telle information et la figure 11 décrit son utilisation pour fournir les données compressées correspondant aux fragments spatiaux demandés. En référence à la figure 10, une première étape E1000 consiste à obtenir une requête de fragment spatial, cette requête, y compris la zone cible 160 qu'elle indique, étant mémorisée par le serveur 11. Tant qu'il existe des données compressées à envoyer (test El 010), on itère les étapes E1020 à E1060. Notamment, on détermine la zone spatiale de sélection 170 utilisée pour cette requête (étape E1020). Les données compressées correspondant à cette zone de sélection sont alors sélectionnées puis transmises au terminal client requérant 12 (étape E1030). Ces étapes peuvent notamment mettre en oeuvre les mécanismes décrits précédemment. A l'étape E1040 suivante, l'emplacement de la zone de sélection utilisée est alors mémorisé.
Notamment on peut exprimer cet emplacement de façon relative par rapport à la zone spatiale cible 160 et à la zone spatiale de sélection utilisée lors de la précédente itération des étapes E1020-E1060. On limite ainsi le stockage de cette information à quelques bits. Si un retour du terminal client 12 est détecté (test El 050), celui-ci est également mémorisé par le serveur 11. Il peut notamment s'agir d'informations du type identifiants des macroblocs manquants, d'une cartographie de classement des macroblocs ou encore d'un paramètre d'augmentation/réduction ou de statistiques relatives à chaque bord de la zone de sélection. En l'absence de retour du terminal client ou suite à l'étape E1060, on procède au traitement des données à envoyer suivantes (test El 010).
En complément, les plages d'octets ("byte ranges") correspondant aux données compressées transmises au terminal client 12 peuvent être mémorisées. Ainsi en conservant ces informations de plages d'octets, si une nouvelle requête très proche d'une requête déjà traitée arrive, il est possible d'envoyer rapidement un résultat en termes de plages d'octets. A noter que, dans le cas d'un encodeur temps réel (au niveau du serveur 11), des recherches exhaustives des macroblocs de référence sont évitées car elles requièrent un traitement important. Les macroblocs de référence utilisés sont donc généralement des macroblocs au voisinage de la zone spatiale cible 160. Ainsi peu de macroblocs devraient manquer quelque soit la zone de sélection choisie. Dans ce cas, on peut seulement mémoriser l'emplacement de la zone spatiale de sélection utilisée. A l'opposé, pour des vidéos fortement compressées où la recherche de macroblocs de référence est plus approfondie, voir exhaustive, ces macroblocs de référence peuvent varier sur l'intégralité de l'image. Dans ce cas, les informations des macroblocs manquants peuvent être mémorisées pour obtenir des zones de sélection convenables pour les requêtes suivantes. Le traitement de la figure 10 est mené pour chacune des requêtes traitées. Une fois que toutes les requêtes passées ont été traitées, les opérations de la figure 11 peuvent être menées, afin de calculer la zone spatiale de sélection 170 à partir du fragment spatial demandé (c'est-à-dire d'une zone spatiale cible 160) et des informations mémorisées à partir des requêtes traitées. Ces opérations peuvent notamment être mises en oeuvre lors des 30 étapes E310 et E370.
On débute à l'étape E1100 par obtenir une requête courante de fragment spatial. Cette requête identifie une zone spatiale cible 160 dans la séquence vidéo 15. Pour chaque bord de la zone de sélection (notamment les quatre directions haut-bas-droite-gauche pour une zone rectangulaire), les étapes E1110 à E1140 sont réalisées. Une première direction est choisie à l'étape E1110. Puis, à l'étape E1120, les informations stockées (conformément à la figure 10) sont sondées pour obtenir des requêtes déjà traitées "spatialement proches" de la requête courante, pour la direction courante. Toutefois au préalable, un pré-filtrage des requêtes déjà traitées peut être effectué : filtrage temporel (requêtes peu anciennes, comparativement à une valeur seuil par exemple) et/ou filtrage spatial (requêtes concernant une même zone de l'image, par exemple en considérant quatre zones découpant l'image). Les paramètres de ces filtrages peuvent être élargis si nécessaire pour assurer qu'un certain nombre de requêtes déjà traitées est pris en compte pour le sondage. Notamment, seul le même côté (haut-bas-droite-gauche) des zones spatiales de sélection déjà traitées peut être retenu pour ce sondage. Ce dernier consiste alors par exemple à calculer les distances entre le côté de la zone spatiale cible de la requête courante et le côté des zones spatiales de sélection utilisées pour les requêtes déjà traitées, puis à comparer ces distances avec une valeur seuil. Pour simplifier cette recherche, on peut notamment arrondir ces 25 zones aux frontières des macroblocs. A l'issue de cette recherche, plusieurs requêtes antérieures "spatialement proches" sont donc identifiées. Les informations stockées relatives à ces requêtes antérieures identifiées sont alors récupérées. Puis, à l'étape E1130, on détermine le côté correspondant de la zone 30 spatiale de sélection pour la requête courante. Notamment si le côté de la requête courante, approché au macrobloc près, est le même que ou une sous-partie du côté correspondant (selon le cas, le côté haut-bas-droit-gauche) d'une requête antérieure identifiée, ce côté peut définir le côté correspondant de la zone spatiale de sélection 170 en construction pour la requête courante. Autrement, le côté le plus conservatif (celui parmi les requêtes antérieures identifiées qui agrandit le plus la zone de sélection) est conservé. Plutôt que d'adopter une approche par bord de macroblocs, il est possible d'évaluer la proximité des requêtes en adoptant une stratégie basée sur les tranches. Les informations définissant le côté tel que choisi sont alors mémorisées lors de l'étape E1140 pour la direction courante. Après traitement de toutes les directions, la zone spatiale de sélection 170 est entièrement construite, comme définie par les informations stockées à l'étape E1140 pour chacune des directions considérées. Puis, le serveur 11 peut alors sélectionner les données compressées correspondant à la zone spatiale de sélection 170 ainsi définie et les envoyer au terminal client 12, lors de l'étape E1150. En outre, si des informations de macroblocs manquants lors des requêtes antérieures sont disponibles, ceux-ci peuvent également être récupérés et transmis par le serveur au terminal client, même s'ils ne sont pas compris dans la zone spatiale de sélection. Cela permet, notamment si le terminal client stocke la vidéo transmise, de la compléter pour avoir une version totalement décodable sans erreur (correspondant alors à l'étape E945 de la figure 9). Par ailleurs, le serveur 11 peut également tenter d'ajuster la zone spatiale de sélection à l'aide de l'historique des plages d'octets déjà envoyés qu'il a mémorisé. Dans ce cas, le serveur dispose d'une correspondance entre les tranches composant l'image et les plages d'octets, et peut procéder à l'analyse sur la base de l'historique des tranches pour identifier une requête antérieure susceptible d'approximer la requête courante. Ainsi les mêmes données sont renvoyées sans effectuer à nouveau la sélection des blocs en fonction de la fenêtre de sélection..
Dans un autre mode de réalisation, on peut utiliser les informations historiques mémorisées lors de l'accès à une section temporelle d'une séquence vidéo pour le traitement de l'accès à une autre section temporelle de cette séquence vidéo. En effet, si ces deux sections temporelles ne sont pas trop éloignées, les fragments vidéo correspondant sont généralement cohérents et les informations historiques peuvent donc être appliquées. De façon similaire, on peut utiliser les informations historiques mémorisées lors de l'accès à une séquence vidéo pour le traitement de l'accès à une autre séquence vidéo, pour autant par exemple que ces deux séquences vidéo aient des paramètres d'encodage identiques ou fortement similaires. Par exemple, dans le cas de séquences vidéo encodées par le même encodeur, les vecteurs mouvements peuvent avoir une amplitude maximale. On peut alors utiliser cette information pour initialiser la fenêtre de sélection en fonction de cette amplitude maximale.
En référence maintenant à la figure 12, il est décrit à titre d'exemple une configuration matérielle particulière d'un dispositif d'accès à une séquence vidéo apte à une mise en oeuvre des procédés selon l'invention. Un dispositif mettant en oeuvre l'invention est par exemple un micro-ordinateur 50, une station de travail, un assistant personnel, ou un téléphone mobile connecté à différents périphériques. Selon encore un autre mode de réalisation de l'invention, le dispositif se présente sous la forme d'un appareil photographique muni d'une interface de communication pour autoriser une connexion à un réseau. Les périphériques reliés au dispositif comprennent par exemple une caméra numérique 64, ou un scanner ou tout autre moyen d'acquisition ou de stockage d'images, relié à une carte d'entrée/sortie (non représentée) et fournissant au dispositif selon l'invention des données multimédia, par exemple de type séquence vidéo. Le dispositif 50 comporte un bus de communication 51 auquel sont 30 reliés : - une unité centrale de traitement CPU 52 se présentant par exemple sous la forme d'un microprocesseur ; - une mémoire morte 53 dans laquelle peuvent être contenus les programmes dont l'exécution permet la mise en oeuvre des procédés selon l'invention. Il peut s'agir d'une mémoire flash ou EEPROM; - une mémoire vive 54 qui, après la mise sous tension du dispositif 50, contient le code exécutable des programmes de l'invention nécessaires à la mise en oeuvre de l'invention. Cette mémoire vive 54 est de type RAM (à accès aléatoire), ce qui offre des accès rapide comparés à la mémoire morte 53. Cette mémoire RAM 54 mémorise en particulier les différentes images et les différents macroblocs au fur et à mesure des traitements sur les séquences vidéo ; - un écran 55 permettant de visualiser des données notamment vidéo et/ou de servir d'interface graphique avec l'utilisateur qui peut ainsi interagir avec les programmes de l'invention, à l'aide d'un clavier 56 ou de tout autre moyen tel qu'un dispositif de pointage, comme par exemple une souris 57 ou un crayon optique ; - un disque dur 58 ou une mémoire de stockage, telle qu'une mémoire de type compact flash, pouvant comporter les programmes de l'invention ainsi que des données utilisées ou produites lors de la mise en oeuvre de l'invention; - un lecteur de disquettes 59 optionnel, ou un autre lecteur de support de données amovible, adapté à recevoir une disquette 63 et à y lire / écrire des données traitées ou à traiter conformément à l'invention ; et - une interface de communication 60 reliée au réseau de télécommunications 130, l'interface 60 étant apte à transmettre et à recevoir des données. Dans le cas de données audio, le dispositif 50 est équipé de préférence d'une carte d'entrée/sortie (non représentée) qui est reliée à un microphone 62. Le bus de communication 51 autorise une communication et une interopérabilité entre les différents éléments inclus dans le dispositif 50 ou reliés à celui-ci. La représentation du bus 51 n'est pas limitative et, notamment, l'unité centrale 52 est susceptible de communiquer des instructions à tout élément du dispositif 50 directement ou par l'intermédiaire d'un autre élément du dispositif 50. Les disquettes 63 peuvent être remplacées par tout support d'information tel que, par exemple, un disque compact (CD-ROM) réinscriptible ou non, un disque ZIP ou une carte mémoire. D'une manière générale, un moyen de stockage d'information, lisible par un micro-ordinateur ou par un microprocesseur, intégré ou non au dispositif d'accès à une partie spatio-temporelle d'une séquence vidéo, éventuellement amovible, est adapté à mémoriser un ou plusieurs programmes dont l'exécution permet la mise en oeuvre des procédés selon l'invention. Le code exécutable permettant, au dispositif d'accès à une partie spatio-temporelle d'une séquence vidéo, la mise en oeuvre de l'invention peut être indifféremment stocké en mémoire morte 53, sur le disque dur 58 ou sur un support numérique amovible tel que par exemple une disquette 63 comme décrite précédemment. Selon une variante, le code exécutable des programmes est reçu par l'intermédiaire du réseau de télécommunications 130, via l'interface 60, pour être stocké dans un des moyens de stockage du dispositif 50 (tel que le disque dur 58 par exemple) avant d'être exécuté. L'unité centrale 52 commande et dirige l'exécution des instructions ou portions de code logiciel du ou des programmes de l'invention, les instructions ou portions de code logiciel étant stockées dans l'un des moyens de stockage précités. Lors de la mise sous tension du dispositif 50, le ou les programmes qui sont stockés dans une mémoire non volatile, par exemple le disque dur 58 ou la mémoire morte 53, sont transférés dans la mémoire vive 54 qui contient alors le code exécutable du ou des programmes de l'invention, ainsi que des registres pour mémoriser les variables et paramètres nécessaires à la mise en oeuvre de l'invention. On notera également que le dispositif mettant en oeuvre l'invention ou incorporant celle-ci est réalisable aussi sous la forme d'un appareil programmé. Par exemple, un tel dispositif peut alors contenir le code du ou des programmes informatiques sous une forme figée dans un circuit intégré à application spécifique (ASIC).
Le dispositif décrit ici et, particulièrement, l'unité centrale 52, sont susceptibles de mettre en oeuvre tout ou partie des traitements décrits en lien avec les figures 1 à 11, pour mettre en oeuvre les procédés objets de la présente invention et constituer les dispositifs objets de la présente invention.
Les exemples qui précèdent ne sont que des modes de réalisation de l'invention qui ne s'y limite pas.

Claims (20)

  1. REVENDICATIONS1. Procédé d'accès à une partie spatio-temporelle d'une séquence vidéo (15) d'images compressée selon un format de codage mettant en oeuvre une prédiction, comprenant une étape consistant à définir (E300, E500) une zone spatiale cible (160) correspondant à ladite partie spatio-temporelle à accéder, caractérisé en ce qu'il comprend les étapes consistant à : û obtenir (E330, E530, E905) des données compressées correspondant à une zone spatiale de sélection (170) dans au moins une image (110) de la séquence vidéo (15), ladite zone spatiale de sélection incluant ladite zone spatiale cible; û obtenir (E360, E570, E645, E925) au moins une information de mise à jour de la zone spatiale de sélection (170) prévue pour sélectionner des données compressées dans une image suivante de la séquence vidéo, ladite information de mise à jour étant fonction du décodage (E350, E550, E600, E910) d'au moins les données compressées ainsi obtenues qui correspondent à ladite zone spatiale cible (160).
  2. 2. Procédé selon la revendication 1, comprenant les étapes consistant à : û décoder (E350, E550, E600, E910) lesdites données compressées obtenues qui correspondent à la zone spatiale cible (160); et û classer (E360, E560, E615, E620, E915) des unités spatiales (120, 130, 150) d'images de la séquence vidéo (15), selon leur utilité lors dudit décodage, de sorte à obtenir une information de mise à jour fonction dudit classement.
  3. 3. Procédé selon la revendication 2, dans lequel une unité spatiale (120, 130, 150) est utile lors du décodage de données compressées correspondant à la zone spatiale cible (160), lorsque ladite unité spatiale est incluse dans la zone spatiale cible ou lorsque ladite unité spatiale comprend des données de référence utilisées dans le codage par prédiction desdites données compressées.
  4. 4. Procédé selon la revendication 2 ou 3, dans lequel ledit classement (E360, E560, E615, E620, E915) crée un groupe (G1) d'unitésspatiales sélectionnées qui sont utiles pour le décodage desdites données compressées correspondant à la zone spatiale cible; un groupe (G2) d'unités spatiales sélectionnées qui ne sont pas utiles pour le décodage desdites données compressées correspondant à la zone spatiale cible; et un groupe (G3) d'unités spatiales non sélectionnées qui sont utiles pour le décodage desdites données compressées correspondant à la zone spatiale cible.
  5. 5. Procédé selon l'une des revendications 2 à 4, dans lequel ladite zone spatiale de sélection (170) est définie par un ensemble de côtés, et le classement d'une unité spatiale (120, 130, 150) conduit à la mise à jour d'au moins un paramètre de déplacement d'un côté de la zone spatiale de sélection.
  6. 6. Procédé selon la revendication précédente, dans lequel ladite information de mise à jour comprend les paramètres de déplacement relatifs à chaque côté de la zone spatiale de sélection.
  7. 7. Procédé selon l'une des revendications 1 à 6, mis en oeuvre dans un terminal client (12) d'un réseau de communication (13), le procédé comprenant une étape de transmission (E570, E1050), dudit terminal client à un serveur distant (11) stockant ladite séquence vidéo compressée (15), de l'information de mise à jour, de sorte que ledit serveur puisse mettre à jour ladite zone spatiale de sélection (170) pour la sélection de données compressées dans une image suivante de la séquence vidéo.
  8. 8. Procédé selon la revendication 7, comprenant les étapes consistant à : ù stocker (E900) les données compressées obtenues; ù identifier (E925) des unités spatiales non sélectionnées et utiles (G3) pour le décodage desdites données compressées correspondant à la zone spatiale cible (160), de sorte à former ladite information de mise à jour transmise; ù apporter des corrections (E930) audit décodage des données compressées correspondant à la zone spatiale cible pour compenser l'absence des unités spatiales identifiées afin d'afficher une version décodée desdites données compressées;ù requérir et recevoir (E945), auprès dudit serveur distant (11), lesdites unités spatiales identifiées; et ù mettre à jour (E950) les données compressées stockées à l'aide desdites unités spatiales identifiées reçues.
  9. 9. Procédé selon la revendication 1, mis en oeuvre dans un dispositif serveur (11) d'un réseau de communication (13), le procédé comprenant les étapes consistant à : ù recevoir (E1000), d'un terminal client distant (12), une requête d'accès à ladite partie spatio-temporelle de sorte à définir une zone spatiale cible (160) identifiée dans ladite requête; ù envoyer (E540), audit terminal client distant, lesdites données compressées obtenues; ù recevoir (E1050), dudit terminal client, ladite information de mise à jour; et ù mettre à jour (E370, E580, E640, E655, E665, E1130) ladite zone spatiale de sélection en fonction de ladite information de mise à jour reçue.
  10. 10. Procédé selon la revendication précédente, comprenant une étape consistant à mémoriser (E1040), par le dispositif serveur (11), un historique du traitement d'une pluralité de requêtes d'accès, et ladite mise à jour de la zone spatiale de sélection (E370, E580, E640, E655, E665, E1130) pour une requête d'accès ultérieure est fonction dudit historique.
  11. 11. Procédé selon l'une des revendications 1 à 10, dans lequel ladite obtention (E330, E530, E905) des données compressées comprend la sélection (E1030) de données compressées correspondant à un groupe (100) de plusieurs images, et l'information de mise à jour est fonction du décodage des données compressées obtenues dans ces plusieurs images.
  12. 12. Procédé selon la revendication précédente, dans lequel la sélection (El 030) des données compressées correspondant à une image (110) dudit groupe d'images (100) comprend les étapes consistant à : ù ajuster (E1020) les dimensions de la zone spatiale de sélection (170) en fonction du type d'image concernée; etû sélectionner (E1030) les données compressées correspondant à ladite image, qui sont incluses dans ladite zone spatiale de sélection ajustée.
  13. 13. Procédé selon l'une quelconque des revendications 1 à 12, dans lequel ladite information de mise à jour est fonction d'au moins une unité spatiale non sélectionnée et utile (G3) pour le décodage desdites données compressées correspondant à la zone spatiale cible (160).
  14. 14. Procédé selon l'une quelconque des revendications 1 à 13, dans lequel ladite information de mise à jour est fonction d'au moins une unité spatiale sélectionnée et non utile (G2) pour le décodage desdites données compressées correspondant à la zone spatiale cible (160).
  15. 15. Procédé selon l'une quelconque des revendications 1 à 14, comprenant une étape de mise à jour (E370, E580, E640, E655, E665, E1130) de ladite zone spatiale de sélection (170), ladite mise à jour consistant à identifier une zone spatiale englobant un ensemble d'unités spatiales (120, 130, 150) non sélectionnées qui sont utiles pour le codage desdites données compressées correspondant à la zone spatiale cible (160).
  16. 16. Procédé selon l'une quelconque des revendications 1 à 14, comprenant une étape de mise à jour (E370, E580, E640, E655, E665, E1130) de ladite zone spatiale de sélection (170), ladite mise à jour comprenant une étape de réduction de ladite zone spatiale de sélection en fonction d'une information de congestion relative à un réseau de communication sur lequel sont transmises lesdites données compressées obtenues.
  17. 17. Procédé selon l'une quelconque des revendications 1 à 12, dans lequel ladite information de mise à jour est fonction d'une estimation moyenne 25 de mouvement de la zone spatiale cible (160) entre deux images.
  18. 18. Dispositif d'accès (11, 12) à une partie spatio-temporelle d'une séquence vidéo (15) d'images compressée selon un format de codage mettant en oeuvre une prédiction, comprenant un moyen de définition d'une zone spatiale cible correspondant à ladite partie spatio-temporelle à accéder, 30 caractérisé en ce qu'il comprend : û un moyen d'obtention de données compressées correspondant à une zone spatiale de sélection (170) dans au moins une image (110) de laséquence vidéo (15), ladite zone spatiale de sélection incluant ladite zone spatiale cible; ù un moyen d'obtention d'au moins une information de mise à jour de la zone spatiale de sélection prévue pour sélectionner des données compressées dans une image suivante de la séquence vidéo, ladite information de mise à jour étant fonction du décodage d'au moins les données compressées ainsi obtenues qui correspondent à ladite zone spatiale cible (160).
  19. 19. Moyen de stockage d'informations, éventuellement totalement ou partiellement amovible, lisible par un système informatique, comprenant des instructions pour un programme informatique adapté à mettre en oeuvre le procédé conforme à l'une quelconque des revendications 1 à 17, lorsque le programme est chargé et exécuté par le système informatique.
  20. 20. Produit programme d'ordinateur lisible par un microprocesseur, comprenant des portions de code logiciel adaptées à mettre en oeuvre le procédé selon l'une quelconque des revendications 1 à 17, lorsqu'il est chargé et exécuté par le microprocesseur.
FR1053273A 2010-04-28 2010-04-28 Procede d'acces a une partie spatio-temporelle d'une sequence video d'images Expired - Fee Related FR2959636B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1053273A FR2959636B1 (fr) 2010-04-28 2010-04-28 Procede d'acces a une partie spatio-temporelle d'une sequence video d'images
US13/094,778 US9258622B2 (en) 2010-04-28 2011-04-26 Method of accessing a spatio-temporal part of a video sequence of images

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1053273A FR2959636B1 (fr) 2010-04-28 2010-04-28 Procede d'acces a une partie spatio-temporelle d'une sequence video d'images

Publications (2)

Publication Number Publication Date
FR2959636A1 true FR2959636A1 (fr) 2011-11-04
FR2959636B1 FR2959636B1 (fr) 2012-07-13

Family

ID=43086343

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1053273A Expired - Fee Related FR2959636B1 (fr) 2010-04-28 2010-04-28 Procede d'acces a une partie spatio-temporelle d'une sequence video d'images

Country Status (2)

Country Link
US (1) US9258622B2 (fr)
FR (1) FR2959636B1 (fr)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102857478B (zh) * 2011-06-30 2016-09-28 华为技术有限公司 媒体数据控制方法及装置
GB2509956B (en) * 2013-01-18 2016-05-04 Canon Kk Method, device and computer program for efficient encapsulation of timed tiled media data
GB2512880B (en) * 2013-04-09 2017-12-20 Canon Kk Method, device, and computer program for encapsulating partitioned timed media data
US9628528B2 (en) 2013-07-19 2017-04-18 Electronics And Telecommunications Research Institute Apparatus and method for providing content
EP2973228B1 (fr) * 2013-07-26 2019-08-28 Huawei Technologies Co., Ltd. Adaptation spatiale dans une diffusion en continu adaptative
KR20150039425A (ko) * 2013-10-02 2015-04-10 삼성전자주식회사 비디오/이미지 데이터 처리 방법 및 비디오/이미지 데이터 처리 시스템
EP3571845B1 (fr) * 2017-01-20 2021-06-30 PCMS Holdings, Inc. Procédé de prédiction de champ de vision basé sur des informations contextuelles pour une vidéo de réalité virtuelle à 360 degrés

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020021353A1 (en) * 2000-06-09 2002-02-21 Denies Mark Streaming panoramic video
US20060062478A1 (en) * 2004-08-16 2006-03-23 Grandeye, Ltd., Region-sensitive compression of digital video
EP1710719A1 (fr) * 2005-04-07 2006-10-11 Ricoh Company, Ltd. Procédé de transmission d'images, programme de transmission d'images lisible par ordinateur, support de stockage, et appareil de transmission d'images
US20090300701A1 (en) * 2008-05-28 2009-12-03 Broadcom Corporation Area of interest processing of video delivered to handheld device

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3360922B2 (ja) * 1994-04-11 2003-01-07 株式会社日立製作所 動画像通信システム及びその画像復元装置並びにその画像復元方法
US6629318B1 (en) * 1998-11-18 2003-09-30 Koninklijke Philips Electronics N.V. Decoder buffer for streaming video receiver and method of operation
JP2000165641A (ja) * 1998-11-24 2000-06-16 Matsushita Electric Ind Co Ltd 画像処理方法,画像処理装置およびデータ記憶媒体
US6314452B1 (en) * 1999-08-31 2001-11-06 Rtimage, Ltd. System and method for transmitting a digital image over a communication network
WO2001088766A2 (fr) 2000-05-12 2001-11-22 Simplex Solutions, Inc. Modele de synchronisation de haute precision pour la verification de circuits integres
US7712119B1 (en) * 2000-07-10 2010-05-04 Hitachi, Ltd. Multimedia communication terminal
US8290062B1 (en) * 2000-09-27 2012-10-16 Intel Corporation Method and apparatus for manipulating MPEG video
JP3915652B2 (ja) * 2002-10-09 2007-05-16 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置
US7200615B2 (en) * 2003-10-16 2007-04-03 Xerox Corporation Viewing tabular data on small handheld displays and mobile phones
US7738710B2 (en) * 2004-08-02 2010-06-15 Electronics For Imaging, Inc. Methods and apparatus for communicating and displaying compressed image data
US8019175B2 (en) * 2005-03-09 2011-09-13 Qualcomm Incorporated Region-of-interest processing for video telephony
US7616657B2 (en) * 2006-04-11 2009-11-10 Altera Corporation Heterogeneous transceiver architecture for wide range programmability of programmable logic devices
US8717436B2 (en) * 2009-12-10 2014-05-06 Harris Corporation Video processing system providing correlation between objects in different georeferenced video feeds and related methods
US8970694B2 (en) * 2009-12-10 2015-03-03 Harris Corporation Video processing system providing overlay of selected geospatially-tagged metadata relating to a geolocation outside viewable area and related methods
US9258530B2 (en) * 2010-04-09 2016-02-09 Canon Kabushiki Kaisha Method for accessing a spatio-temporal part of a compressed video sequence using decomposed access request

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020021353A1 (en) * 2000-06-09 2002-02-21 Denies Mark Streaming panoramic video
US20060062478A1 (en) * 2004-08-16 2006-03-23 Grandeye, Ltd., Region-sensitive compression of digital video
EP1710719A1 (fr) * 2005-04-07 2006-10-11 Ricoh Company, Ltd. Procédé de transmission d'images, programme de transmission d'images lisible par ordinateur, support de stockage, et appareil de transmission d'images
US20090300701A1 (en) * 2008-05-28 2009-12-03 Broadcom Corporation Area of interest processing of video delivered to handheld device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ISLAM A ET AL: "JPEG2000 for Wireless Applications", PROCEEDINGS OF THE INTERNATIONAL SOCIETY FOR OPTICAL ENGINEERING (SPIE), SPIE, USA, vol. 5203, 1 January 2003 (2003-01-01), pages 255 - 271, XP002316046, ISSN: 0277-786X, DOI: DOI:10.1117/12.512536 *

Also Published As

Publication number Publication date
FR2959636B1 (fr) 2012-07-13
US9258622B2 (en) 2016-02-09
US20110305278A1 (en) 2011-12-15

Similar Documents

Publication Publication Date Title
FR2894421A1 (fr) Procede et dispositif de decodage d'un flux video code suivant un codage hierarchique
FR2959636A1 (fr) Procede d'acces a une partie spatio-temporelle d'une sequence video d'images
FR2840495A1 (fr) Procede et dispositif de selection d'une methode de transcodage parmi un ensemble de methodes de transcodage
FR2902266A1 (fr) Procede et dispositif de repartition de la bande passante de communication
FR2897741A1 (fr) Procede et dispositif de generation de donnees representatives d'un degre d'importance de blocs de donnees et procede et dispositif de transmission d'une sequence video encodee
FR2931610A1 (fr) Procede et un dispositif de transmission de donnees d'images
EP3225027B1 (fr) Procédé de composition d'une représentation vidéo intermédiaire
FR2857198A1 (fr) Optimisation de qualite de service dans la distribution de flux de donnees numeriques
US11893007B2 (en) Embedding codebooks for resource optimization
EP1591962B1 (fr) Procédé et dispositif de génération de vecteurs candidats pour les systèmes d'interpolation d'images par estimation et compensation de mouvement
EP3449634B1 (fr) Procédé de composition contextuelle d'une représentation vidéo intermédiaire
EP3072303B1 (fr) Diffusion adaptative de contenus multimedia
FR2963190A1 (fr) Procede et dispositif de codage d'une sequence d'images
EP3780632B1 (fr) Systeme de distribution d'un contenu audiovisuel
FR2879387A1 (fr) Procede de transmission a debit binaire variable a travers un canal de transmission.
EP3378232B1 (fr) Procédé de traitement de données codées, procédé de réception de données codées, dispositifs, et programmes d'ordinateurs associés
EP3840335B1 (fr) Réception d'un contenu numérique en mode truque
EP1596607B1 (fr) Procédé et dispositif de génération de vecteurs candidats pour les systèmes d'interpolation d'images par estimation et compensation de mouvement
FR2898459A1 (fr) Procede et dispositif de reception d'images ayant subi des pertes en cours de transmission
EP1241894A1 (fr) Procédé de codage d'images numériques basé sur la dissimulation d'erreurs
Begen Spending" quality"'time with the web video
FR2923970A1 (fr) Procede et dispositif de formation, de transfert et de reception de paquets de transport encapsulant des donnees representatives d'une sequence d'images
EP3725080A1 (fr) Procédés et dispositifs de codage et de décodage d'une séquence vidéo multi-vues représentative d'une vidéo omnidirectionnelle
WO2021160955A1 (fr) Procédé et dispositif de traitement de données de vidéo multi-vues
Chen et al. Vesper: Learning to Manage Uncertainty in Video Streaming

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20131231