FR2931609A1 - Procedes de codage et de decodage pseudo-hierarchiques et systemes associes. - Google Patents

Procedes de codage et de decodage pseudo-hierarchiques et systemes associes. Download PDF

Info

Publication number
FR2931609A1
FR2931609A1 FR0853385A FR0853385A FR2931609A1 FR 2931609 A1 FR2931609 A1 FR 2931609A1 FR 0853385 A FR0853385 A FR 0853385A FR 0853385 A FR0853385 A FR 0853385A FR 2931609 A1 FR2931609 A1 FR 2931609A1
Authority
FR
France
Prior art keywords
image
data
spatial
coded
zones
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
FR0853385A
Other languages
English (en)
Other versions
FR2931609B1 (fr
Inventor
Christophe Gisquet
Leannec Fabrice Le
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 FR0853385A priority Critical patent/FR2931609B1/fr
Publication of FR2931609A1 publication Critical patent/FR2931609A1/fr
Application granted granted Critical
Publication of FR2931609B1 publication Critical patent/FR2931609B1/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/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 or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234327Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/146Data rate or code amount at the encoder output
    • 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/164Feedback from the receiver or from the transmission channel
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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 or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream 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 or manipulating encoded video stream 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
    • H04N21/234372Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream 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 for performing aspect ratio conversion
    • 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 or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • 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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2355Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages
    • H04N21/2356Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages by altering the spatial 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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2355Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages
    • H04N21/2358Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages for generating different versions, e.g. for different recipient devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

La présente invention un procédé et un système pour le codage et le décodage pseudo-hiérarchique d'une image ou d'un flux d'images ou vidéo de dimensions spatiales données. A partir d'un format de codage mono-résolution d'image générant une charge utile de données codées de l'image pour la reconstruction, par décodage, d'une image de mêmes dimensions que ladite image initiale, le procédé comprend les étapes suivantes: - détermination (E100, E105) d'une pluralité de zones spatiales (1, 2, 3, 4) de l'image initiale (10) imbriquées successivement les unes dans les autres; - sélection (E300, E310) d'un ensemble desdites zones spatiales, l'ensemble définissant une partie (71) de l'image initiale; - codage (E140) des données d'image associées à l'ensemble desdites zones spatiales sélectionnées en des données codées, - ajout (E320, E330), auxdites données codées des zones sélectionnées, de données additionnelles de sorte à former ladite charge utile conforme audit format de codage.

Description

La présente invention concerne le codage et le décodage d'images et de signaux vidéo, et plus particulièrement un procédé et un système pour le codage et le décodage pseudo-hiérarchique d'une image ou d'un flux d'images ou vidéo. Le codage hiérarchique, ou "scalable" selon la terminologie anglo- saxonne, est une technique classique de codage/compression qui permet d'offrir plusieurs versions d'un même flux avec un minimum de surcoût pour les destinataires dudit flux. Ces différents flux jouent par exemple sur la résolution spatiale de l'image ou sur la qualité variable pour une même résolution spatiale de l'image à coder.
Cette technique de codage hiérarchique présente les avantages classiques suivants: - la capacité à transmettre des flux de débits différents à partir d'un même flux codé, mais sans recodage; - la possibilité de réduire le coût en mémoire et en puissance de traitement au niveau du client; et - l'adaptabilité aux capacités des clients. Ce codage hiérarchique est notamment appliqué lorsqu'une vidéo est diffusée via un réseau à une multitude de clients. Cela permet de rendre cette vidéo adaptée aux ressources matérielles de traitement des machines destinataires ou de limiter le flux à transmettre lorsque l'écran destinataire ne peut pas restituer la qualité importante du signal vidéo. A titre d'exemple, c'est le cas lorsque: - un flux 1920x1080, dit "full HD" (pour haute définition intégrale), est affiché sur un écran de périphérique portable en 640x480, ou - un flux 16/9 est affiché sur un écran 4/3 (les chaînes TV pratiquent généralement une combinaison de découpage et d'ajout de bandes noires).
Des solutions de codage hiérarchique ont été développées à partir de formats de codage non hiérarchiques tels que le format ISO MPEG-4 Part 10 /AVC ("Advanced Video Coding", aussi appelé H.264 ou H.26L par l'ITU-T) ou MPEG-4 part2. La norme MPEG SVC pour Scalable Video Coding est issue d'un développement de codage hiérarchique sur la base du format H.264. Un tel codage hiérarchique est notamment évoqué dans le document WO-A-2007/047077. Il prévoit une première couche de base de l'image qui est codée entièrement. Ensuite, une deuxième couche augmentée de l'image est codée sur une partie seulement de celle-ci, notamment dans les régions d'intérêt. Cette deuxième couche contient des informations supplémentaires de la couche de base de sorte à obtenir une définition accrue de l'image dans les zones d'intérêt. On obtient ainsi au décodage une image de haute résolution au niveau de ces zones. Néanmoins, les solutions classiques de codage hiérarchique de type SVC nécessitent une adaptation correspondante du matériel. Cela entraîne donc un surcoût non négligeable, alors même que l'industrie est en train d'effectuer une migration de l'ancien standard MPEG-2 (DVD, satellite) vers le format AVC (HD-DVD/Bluray, sites de diffusion ou "streaming", câble, télé ADSL, ...).
Il est donc souhaitable d'offrir des solutions alternatives élaborées à partir de formats de codage non scalables (anglicisme largement utilisé par l'homme du métier) mono-résolution. De tels formats de codage d'une image permettent de générer, pour former le flux codé, une charge utile de données codées de l'image, la charge utile étant utilisée pour la reconstruction, par le décodeur, de l'image aux mêmes dimensions que l'image initiale. Ces formats de codage mono-résolution sont, par exemple, mis en oeuvre dans les documents US-B-7 206 456 et US-B-7 085 319 où une segmentation d'images en plusieurs zones est proposée. Cette segmentation permet d'optimiser le codage ou la compression de l'image grâce aux mécanismes de compensation de mouvement. Néanmoins, ces solutions ne permettent pas un codage hiérarchique spatial car le format de codage est configuré pour une taille d'image initiale.
Ainsi, à partir de cette même configuration, il n'est pas possible de délivrer des signaux de tailles d'images différentes afin de les transmettre à plusieurs destinataires équipés de moyens de traitements disparates. La présente invention vise alors à résoudre au moins un des inconvénients de l'art antérieur pour permettre un codage présentant une scalabilité spatiale à l'aide d'un format de codage mono-résolution, et ce, sans impacter la bande-passante ou la puissance de traitement nécessaire à cette opération. Ne s'appuyant pas sur un format de codage dit hiérarchique au sens stricte du terme, on peut parler de "codage pseudo-hiérarchique". Une telle solution permet notamment d'utiliser les moyens de décodage classiques, largement diffusés, tels que ceux des formats mono-résolution tels AVC ou MPEG-4 part 2. Dans ce dessein, l'invention concerne un procédé de codage d'une image initiale, selon un format de codage mono-résolution d'image qui est apte à générer une charge utile de données codées de l'image pour la reconstruction, par décodage, d'une image de mêmes dimensions que ladite image initiale, caractérisé en ce que le procédé comprend les étapes suivantes: - détermination d'une pluralité de zones spatiales de l'image initiale imbriquées les unes dans les autres; - sélection d'un ensemble desdites zones spatiales, l'ensemble définissant une partie de l'image initiale, éventuellement à transmettre, à afficher ou à stocker; - codage des données d'image associées à l'ensemble desdites zones spatiales sélectionnées en des données codées, - ajout, auxdites données codées des zones sélectionnées, de données additionnelles de sorte à former ladite charge utile conforme audit format de codage. L'invention s'applique au codage d'une seule image comme à celui d'une séquence d'images, notamment sous forme de flux vidéo.
Ainsi, les données d'image relatives à la zone d'intérêt, et donc sélectionnées, sont bel et bien codées pour être exploitées. Dans le même temps, les données relatives aux zones spatiales sans intérêt, par exemple non affichées, sont substituées par l'ajout de données additionnelles, choisies de préférence à faible coût de transmission et de traitement. On s'assure ainsi d'obtenir un flux de données codées conforme au format de codage, notamment qui permet un décodage ultérieur, conforme à ce format, d'une image codée ayant la taille initiale. On comprend que les données additionnelles sont prévues de sorte à former une charge utile correspondant au codage d'une image de dimensions identiques à l'image initiale. En particulier, ici, on prévoit, dans la charge utile, des données de codage correspondant à chacun des incréments de zone spatiale permettant de passer d'une zone spatiale à une zone spatiale plus grande et décomposant la totalité de l'image initiale. Ainsi, le décodage de la charge utile peut être réalisé sans encombre, le décodeur retrouvant des données de codage pour chacune des zones spatiales. A titre d'exemple, ces données additionnelles peuvent être de simples données de remplissage.
Ainsi, on peut utiliser le même format de codage mono-résolution, donc prédéfini par les dimensions initiales de l'image, afin de transmettre une image d'intérêt de dimensions inférieures à ces dimensions initiales. Grâce à ces dispositions, on est donc en mesure de fournir un procédé de codage pourvu d'une fonctionnalité de scalabilité (hiérarchie) dimensionnelle (ou spatiale) alors même que le format de codage utilisé ne le permet pas par ses fonctions propres. Par l'invention, on améliore le coût de codage pour une telle scalabilité et on peut adapter ce codage aux moyens de traitement, par exemple d'affichage, de la machine destinataire.
En outre, grâce à la sélection contrôlée des zones spatiales, on peut adapter efficacement le codage de l'image en tenant compte des propriétés de traitement ou d'affichage de ces moyens de traitement destinataires. Dans un mode de réalisation, ladite pluralité de zones spatiales déterminées couvre l'ensemble de ladite image. Ainsi, on réalise une décomposition de toute l'image, laquelle décomposition est réutilisée pour le codage de plusieurs images successives, par exemple formant un flux vidéo.
Selon une caractéristique de l'invention, lesdites zones spatiales déterminées comprennent toutes une même surface de base de l'image destinée à être exploitée/affichée, c'est-à-dire contenue dans la zone à afficher. Toutes les zones spatiales sont donc "centrées" sur cette surface de base qui peut être, elle-même, centrée dans l'image initiale d'origine. En pratique, la surface de base correspond à la zone spatiale de plus petite taille (la première zone spatiale dans la chaîne d'imbrication) et les zones spatiales successives élargissant progressivement la taille de la zone d'intérêt jusqu'à obtenir la taille totale de l'image pour la dernière zone spatiale.
On observe, ici, que le codage peut être réalisé de façon incrémentale en codant tout d'abord la zone spatiale de plus petite taille puis successivement les zones spatiales de tailles plus grandes par pas d'imbrication. On garantit ainsi le codage d'une zone indépendamment des zones de plus grande taille et on permet, éventuellement, un codage en fonction des zones de plus petite taille (donc imbriquées) déjà codées. En variante ou en combinaison, lesdites zones spatiales déterminées sont de forme rectangulaire, par exemple définissant des formats 4/3 et 16/9. Ainsi, les zones spatiales sont adaptées aux diverses dimensions des écrans classiques de télévision et d'ordinateur. La suite de zones spatiales peut être une alternance de formats 4/3 et 16/9 où une dimension d'une zone spatiale reste inchangée avec la zone spatiale successive. Cette configuration est particulièrement adaptée à l'utilisation du format AVC et notamment des groupes rectangulaires de tranches qu'il définit. Dans un mode de réalisation, chaque zone spatiale déterminée comprend la zone spatiale immédiatement imbriquée dedans et des données complémentaires d'image, et ledit codage des données d'une zone spatiale comprend le codage des données complémentaires de ladite zone spatiale indépendamment des données complémentaires des zones spatiales imbriquant ladite zone spatiale. Ainsi, chaque zone codée peut être décodée à partir des données codées pour cette zone et pour les zones qu'elle imbrique et qui sont, par nature même de l'imbrication, également sélectionnées pour former l'image à exploiter/afficher.
Notamment, lesdites données complémentaires d'une zone spatiale forment un groupe de tranches, par exemple au sens du format AVC, défini par une position hiérarchique à l'intérieur d'une chaîne d'imbrication des zones spatiales. Les positions hiérarchiques permettent de mettre en oeuvre le codage incrémentai évoqué ci-dessus à moindre coût. En outre, ledit groupe de tranches est défini par la position des coins haut-gauche et bas-droit d'un rectangle, rectangle auquel on soustrait la zone spatiale immédiatement imbriquée afin d'identifier les données complémentaires.
Afin d'optimiser la bande passante utilisée pour diffuser plusieurs versions de l'image codée en fonction des dimensions d'affichage de différents destinataires, on prévoit que ladite détermination d'une pluralité de zones spatiales comprend: - la détermination d'une première liste de zones spatiales imbriquées formant une chaîne d'imbrication, listant par exemple les capacités d'affichage d'un ensemble de stations destinataires; - l'estimation d'un premier critère pour deux zones immédiatement consécutives dans la chaîne d'imbrication des zones spatiales; et - la fusion des deux zones en fonction dudit premier critère.
Cette fusion permet de mutualiser les coûts de codage des deux zones dans le cas où cette mutualisation confère un gain de codage supérieur au coût de la transmission des données d'une zone spatiale à certains utilisateurs qui ne les afficheront pas. Ainsi, il convient de choisir efficacement le critère utilisé. En particulier, ledit premier critère comprend la différence, c'est-à-dire le surcoût, entre: - les coûts de codage séparés des deux zones spatiales, ajoutés aux coûts de transmission des données codées des deux zones respectivement à un premier groupe de destinataires et à un deuxième groupe de destinataires; et - le coût de codage commun desdites deux zones spatiales, ajouté aux coûts de transmission des données ainsi codées à l'ensemble des destinataires des deux groupes. On réalise ainsi une optimisation des données à transmettre en 5 tenant compte des destinataires respectifs des deux zones. Dans un mode de réalisation particulier, i) ladite estimation est effectuée pour chaque paire de zones spatiales immédiatement consécutives dans la chaîne d'imbrication, et ii) on fusionne les deux zones dont le premier critère est maximal, c'est-à-dire généralement pour lesquelles le coût de codage 10 et de transmission séparé est supérieur au coût de codage et de transmission commun des deux zones. Notamment, on réitère ces deux étapes i) et ii) en tenant compte des zones fusionnées lors d'itérations précédentes jusqu'à atteindre un deuxième critère prédéfini, par exemple un nombre de zones restantes, un seuil de 15 surcoût, éventuellement nul. La réalisation d'itérations jusqu'à ce que les différences (premier critère) pour toutes les paires soient toutes négatives ou nulles assure une optimisation maximale des coûts de codage et de transmission à l'ensemble des destinataires. L'utilisation d'une valeur seuil est un bon compromis entre le coût (en temps et ressources) pour réaliser ces 20 étapes de fusion et le gain sur le codage à proprement parler. Dans un mode de réalisation, lesdites zones spatiales sont définies en fonction d'un ensemble de formats d'affichage, notamment en fonction des propriétés ou caractéristiques d'affichage d'une pluralité d'équipements destinataires de l'image codée. On remarque ici que la décomposition de 25 l'image en zone spatiale est indépendante du contenu sémantique de cette image, telle qu'évoquée dans certains arts antérieurs (par exemple US-B-7 085 319). Dans un mode de réalisation, on génère une pluralité de signaux codés d'image, ladite génération d'un signal comprenant ladite sélection d'un 30 ensemble correspondant desdites zones spatiales de sorte à définir une partie correspondante de l'image initiale à exploiter, et ledit ajout, aux données codées desdites zones spatiales ainsi sélectionnées, de données additionnelles de sorte à former ladite charge utile pour chaque signal. Selon une caractéristique de l'invention, on code les données complémentaires des zones spatiales préalablement à ladite génération des signaux codés d'image. On dispose ainsi des données codées pour toutes les tailles de zone à afficher. La génération des différents flux vidéo codés de qualités différentes est ainsi rendue aisée par la simple sélection des zones pertinentes pour chaque flux à générer. En variante, on code les données complémentaires d'une zone spatiale non encore codées, postérieurement à la sélection de ladite zone spatiale A terme, on évite ainsi de coder des zones spatiales qui ne sont jamais transmises. En particulier, on prévoit de mémoriser les données ainsi codées dans une mémoire, pour en faciliter l'accès ultérieur, par exemple pour la génération d'autres signaux codés d'image.
Dans un mode de réalisation, ladite sélection comprend la sélection des zones spatiales dont les dimensions sont inférieures à celles d'une zone de l'image initiale à afficher. Puisque les zones spatiales sont "centrées" et que généralement le centrage de la zone à afficher concorde avec celui des zones spatiales (centrage sur la surface de base avec accroissement régulier par pas d'imbrication), toutes les zones spatiales de taille inférieure à la zone à afficher seront affichées et peuvent donc être sélectionnées. On obtient ainsi un compromis efficace entre, d'un côté, une quantité réduite de données à coder et à transmettre, et de l'autre côté, un affichage de résolution satisfaisante de l'image transmise.
Selon une caractéristique de l'invention, on indique, dans ledit signal codé d'image, la décomposition de l'image initiale en lesdites zones spatiales déterminées, y compris les zones spatiales remplacées par des données additionnelles. Dans le format AVC précité, cette unité de données est notamment une unité NALU ("Network Abstraction Layer Unit" selon la terminologie anglo-saxonne) de type PPS (pour "Picture Parameter Set"). En particulier, le procédé peut comprendre la fusion des zones spatiales non sélectionnées en une zone fusionnée, et on modifie ladite indication de décomposition de sorte à substituer les identifications des zones fusionnées par l'identification de ladite zone fusionnée. On diminue ainsi la quantité d'information à transmettre et on simplifie d'autant le processus de décodage correspondant.
Selon une caractéristique particulière, on ajoute au moins une donnée additionnelle pour chaque zone spatiale non sélectionnée et renseignée dans ladite indication de décomposition. Le signal codé ainsi généré est donc conforme au format de codage monodimensionnel nécessitant de coder chacune des zones spatiales identifiées. Le décodeur, par conséquent, décodera sans difficulté le signal reçu. En particulier, ladite au moins une donnée additionnelle d'une zone spatiale non sélectionnée comprend uniquement un ou plusieurs coefficients continus issus d'une transformation spatio-fréquentielle appliquée à un ensemble de blocs constitutifs des données complémentaires de ladite zone spatiale. Selon une variante, ladite au moins une donnée additionnelle comprend une indication selon laquelle au moins un bloc des données complémentaires de ladite zone spatiale est prédit depuis des blocs voisins de la zone spatiale généralement déjà codés. Ainsi le décodeur effectuera, en temps voulu, cette prédiction spatiale. Selon une autre variante, ladite au moins une donnée additionnelle comprend une indication selon laquelle au moins un bloc des données complémentaires de ladite zone spatiale est au moins en partie une recopie de pixels de blocs adjacents audit bloc, généralement des blocs adjacents déjà codés. Cette configuration s'applique particulièrement au format AVC. Ces trois variantes réduisent fortement la quantité de données codées liées à chaque bloc. En variante ou en combinaison, dans le cas où l'on réalise le codage successif de plusieurs images initiales, par exemple pour un flux vidéo, ladite au moins une donnée additionnelle correspondant à une zone spatiale non sélectionnée comprend une indication selon laquelle au moins un bloc de données de la zone spatiale non sélectionnée n'est pas codé de sorte qu'il prend les mêmes valeurs qu'un bloc correspondant dans une image de référence, de préférence codée avant. En l'absence de données codées pour cette image, on réduit encore plus le coût de codage de l'image. En particulier, toutes les données complémentaires de la zone spatiale non sélectionnée ne sont pas codées et prennent donc les mêmes valeurs codées que les données complémentaires de la zone spatiale correspondante (co-localisée) dans l'image de référence. Cette configuration est particulièrement bien adaptée au format AVC. Dans un mode de réalisation de l'invention, les données additionnelles correspondant notamment à chacune des zones spatiales (exceptée la première zone constituant la surface de base, laquelle est toujours sélectionnée) sont générées préalablement à ladite sélection, par exemple lors de l'initialisation d'un codeur. On dispose ainsi de données de remplissage que l'on utilise, par simple sélection, pour la constitution des différents flux vidéo codés adaptés aux spécificités des dispositifs clients. Dans un mode de réalisation, on insère, dans ledit signal codé d'image, une indication desdites dimensions spatiales données de l'image initiale et une indication des dimensions des bords de l'image non utilisés, ce qui permet de définir la zone à afficher dans l'image. Dans le format AVC précité, ces informations sont contenues dans des unités NALU ("Network Abstraction Layer Unit" selon la terminologie anglo-saxonne) de type SPS (pour "Sequence Parameter Set"). Selon un mode de réalisation où l'on réalise le codage successif de plusieurs images initiales, par exemple pour un flux vidéo, ledit codage des données complémentaires d'une zone spatiale dans une image est fonction des données complémentaires de la zone spatiale correspondante dans une autre image. Il s'agit donc d'un codage par prédiction temporelle. Deux zones spatiales de deux images sont dites "correspondantes" si elles occupent la même position spatiale, chacune respectivement dans sa propre image.
En variante ou en combinaison, ledit codage des données complémentaires d'une zone spatiale comprend une transformation spatiofréquentielle de blocs composant lesdites données complémentaires, par exemple une transformation de type DCT ("Discret Cosinus Transform" selon la terminologie anglo-saxonne). L'invention a également trait à un procédé de décodage d'une image codée pour son affichage sur un écran, le procédé comprenant les étapes suivantes: - décodage incrémentai de données codées d'un signal codé de l'image, comprenant le décodage d'un premier ensemble de données représentant une surface de base de l'image et le décodage successifs d'une pluralité d'ensembles de données codées représentant chacun une zone complémentaire de l'image de sorte à former une portion d'image décodée de taille inférieure à une taille prédéterminée; - extraction, par exemple accompagnée d'un décodage, de données additionnelles de sorte à former, avec ladite portion d'image décodée, une image de la taille prédéterminée; - lecture, dans le signal codé de l'image, d'une indication d'une zone de l'image à afficher correspondant sensiblement à ladite portion d'image décodée; et - affichage sur ledit écran de ladite portion de l'image décodée correspondant à ladite zone indiquée.
Dans un mode de réalisation, ladite zone à afficher est de dimensions inférieures à celles dudit écran, le procédé comprenant une transformation homothétique de ladite portion d'image décodée de sorte qu'au moins une dimension de ladite portion homothétique soit identique à une dimension correspondante (c'est-à-dire verticale ou horizontale) dudit écran.
En particulier, lorsque la deuxième dimension de la portion homothétique est plus petite que celle correspondante de l'écran, on ajoute, lors de l'affichage sur ledit écran, au moins une bande noire, par exemple des bandes noires classiquement utilisées, dans l'espace délimité par le bord de l'écran et celui de la portion homothétique.
De même, lorsque la deuxième dimension de la portion homothétique est plus grande que celle correspondante de l'écran, on prévoit un découpage de ladite portion homothétique de sorte que la deuxième dimension résultante soit identique à la dimension correspondante dudit écran. De façon optionnelle, le procédé de décodage peut comprendre des étapes se rapportant aux caractéristiques du procédé de codage exposé précédemment. Corrélativement, l'invention vise également un dispositif de codage d'une image initiale, selon un format de codage mono-résolution d'image qui est apte à générer une charge utile de données codées de l'image pour la reconstruction, par décodage, d'une image de mêmes dimensions que ladite image initiale, comprenant: - un moyen de détermination d'une pluralité de zones spatiales de l'image initiale imbriquées les unes dans les autres; - un moyen de sélection d'un ensemble desdites zones spatiales, l'ensemble définissant une partie de l'image initiale; - un moyen de codage des données d'image associées à l'ensemble desdites zones spatiales sélectionnées en des données codées; - un moyen apte à ajouter, auxdites données codées des zones sélectionnées, des données additionnelles de sorte à former ladite charge utile conforme audit format de codage.
Dans un mode de réalisation, le dispositif comprend une mémoire stockant une pluralité de données additionnelles correspondant à au moins une partie de ladite pluralité de zones spatiales, ledit moyen d'ajout étant apte à récupérer, dans ladite mémoire, lesdites données additionnelles correspondant aux zones spatiales non sélectionnées de sorte à former ladite charge utile.
En particulier, ou de façon indépendante, ladite mémoire est apte à stocker lesdites données codées pour chaque zone spatiale de ladite pluralité, ledit moyen de sélection étant apte à récupérer, dans ladite mémoire, les données codées correspondantes audites zones spatiales sélectionnées. De façon optionnelle, le dispositif de codage peut comprendre des caractéristiques se rapportant aux étapes du procédé de codage exposées précédemment.
De façon similaire, l'invention vise également un dispositif de décodage d'une image codée pour son affichage sur un écran, comprenant - un premier moyen de décodage incrémentai de données codées d'un signal codé de l'image, apte à décoder un premier ensemble de données représentant une surface de base de l'image et une pluralité successive d'ensembles de données codées représentant chacun une zone complémentaire de l'image, de sorte à former une portion d'image décodée de taille inférieure à une taille prédéterminée; - un moyen d'extraction de données additionnelles de sorte à former, avec ladite portion d'image décodée, une image de la taille prédéterminée - un moyen de lecture, dans le signal codé de l'image, d'une indication d'une zone de l'image à afficher correspondant sensiblement à ladite portion d'image décodée; et - un moyen apte à commander l'affichage sur ledit écran de ladite portion de l'image décodée correspondant à ladite zone indiquée. De façon optionnelle, le dispositif de décodage peut comprendre des caractéristiques se rapportant aux étapes des procédés de codage et décodage exposées précédemment.
Un moyen de stockage d'informations, éventuellement totalement ou partiellement amovible, lisible par un système informatique, comprend des instructions pour un programme informatique adapté à mettre en oeuvre le procédé de codage ou décodage conforme à l'invention, lorsque ce programme est chargé et exécuté par le système informatique.
Un programme d'ordinateur lisible par un microprocesseur, comprend des portions de code logiciel adaptées à mettre en oeuvre le procédé de codage ou décodage conforme à l'invention, lorsqu'il est chargé et exécuté par le microprocesseur. Les moyens de stockage d'information et le 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 lesquels : - les figure 1 et Ibis illustrent les notions de tranches et groupe de 5 tranches selon la norme de codage AVC; - la figure 2 représente un exemple de découpage d'une image en groupe de tranches; - la figure 3 illustre la dépendance temporelle d'un groupe de tranches pour le codage de celui-ci selon la norme AVC; 10 - la figure 4 représente, sous forme d'un logigramme, des étapes de codage AVC pseudo-hiérarchique mises en oeuvre par la présente invention; - la figure 5 représente un autre exemple de découpage d'une image en groupes de tranches; - la figure 6 représente, sous forme d'un logigramme, des étapes de 15 génération d'un flux final à partir de trains binaires générés par les étapes de la figure 4; - les figures 7a à 7e illustrent différents cas d'adaptation de l'image codée transmise aux caractéristiques d'affichage d'un écran destinataire du flux codé; 20 - la figure 8 illustre, sous forme d'un logigramme, des étapes de décodage d'un flux généré par la présente invention; et - la figure 9 montre une configuration matérielle particulière d'un dispositif de traitement d'information apte à une mise en oeuvre du procédé selon l'invention. 25 Le mode de réalisation détaillé décrit ci-après met en oeuvre un codage selon la norme AVC ("Advanced Video Coding") évoquée précédemment. On définit alors quelques éléments relatifs à cette norme afin de faciliter la compréhension ultérieure de l'exemple décrit. La norme AVC est définie au travers d'un document normatif 30 librement accessible, par exemple à l'adresse Internet http://www.itu.int/rec/TREC-H.264/fr. Cette norme met en oeuvre les techniques suivantes de codage classiques: - la compensation de mouvement par rapport à des images de référence, dite prédiction temporelle, et l'interpolation en sous-pixel; - le découpage de l'image en macroblocs de taille 16 pixels x 16 pixels, et leur partitionnement en blocs (taille 8x16, 16x8 et 8x8 pixels) et sous- blocs (4x4 pixels). Un traitement de codage macrobloc par macrobloc peut alors être mené; - la transformation spatio-fréquentielle de type transformée en cosinus discrète ou DCT ("discrete cosine transform" selon la terminologie anglo-saxonne) applicable aux macroblocs, blocs et sous-blocs.
Plusieurs éléments techniques sont introduits par la norme et ceux utiles pour la suite de la description vont être brièvement exposés ci-après. L'unité d'abstraction réseau, ou NALU pour "network abstraction layer unit" selon la terminologie anglo-saxonne, est de façon générale une structure syntaxique contenant quelques bits d'indication du type des données qui suivent (et donc la nature exacte de la NALU), et des octets contenant ces données sous la forme d'une charge utile. Elle représente un élément indépendant dans le train binaire généré par tout codeur AVC du fait que tous les prédicteurs utilisés pour le codage sont réinitialisés à chaque NALU, que ce soit dans les prédictions spatiales ou les contextes du codeur entropique.
On distingue plusieurs types de NALU, parmi lesquelles par exemple : - les NALU de type 7 définissant un ensemble de paramètres de séquence, nommées "Sequence Parameter Set" ou SPS selon son acronyme; - les NALU de type 8 définissant un ensemble de paramètres d'image, et nommées "Picture Parameter Set" ou également PPS; - les NALU de type 5 correspondant à des images de référence codées indépendamment, c'est-à-dire codées en intra et assurant l'indépendance des images qui la suivent par rapport aux images qui la précèdent dans la séquence vidéo, également appelées images IDR ("instantaneous decoding refresh"); - les NALU de type 1, 2, 3 et/ou 4, qui correspondent à différents types de données codées d'image.
Cette information de type permet ainsi, au décodeur correspondant, d'adopter le décodage approprié pour la NALU dont le train binaire est en train d'être lu. Le processus de décodage d'un flux binaire est alors de détecter et d'isoler les NALUs en son sein, et, pour chaque NALU trouvée, de lire les informations génériques, dont son type, et de procéder au décodage approprié correspondant. Les indications apportées par certains types de NALU, typiquement la NALU PPS de type 8, ne sont pas nécessairement répétées pour toutes les images codées. Ainsi, elles sont généralement valables pour toute image suivante, c'est-à-dire tout le long de la séquence, jusqu'à ce qu'une nouvelle NALU du même type mettant éventuellement à jour ces indications apparaisse. La norme AVC introduit également la notion de groupe de tranches ou "slice group" ou un groupe décrit un ensemble de macroblocs plus ou moins arbitraire, allant du simple ordre lexicographique sans contrainte à la description explicite du contenu du groupe par les macroblocs eux-mêmes, en passant par la description de zones rectangulaires. Sur la figure Ibis, on a représenté trois groupes G1 à G3 de macroblocs. La "tranche" (ou "slice" selon la terminologie anglo-saxonne) est, quant à elle, un ensemble des macroblocs dans un ordre lexicographique défini au sein des groupes de macroblocs disponibles. Sur la figure Ibis, ces tranches regroupent les macroblocs ayant le même numéro de référence. Ainsi, le groupe G1 est constitué des tranches 1 à 3, le groupe G2 est constitué des tranches 4 à 10. Egalement en référence à la figure 1, on a représenté une image 10 25 décomposée en macroblocs dans laquelle les ensembles 11 à 15 de macroblocs définissent chacun une tranche. Dans cet exemple, il n'y a qu'un seul groupe par image 10, les tranches 11 à 15 formant ce seul groupe 10 équivalent à l'image. Mais d'autres formes que des rectangles sont possibles. 30 Les groupes ne pouvant se chevaucher, on observe que les données de chaque groupe sont indépendantes des données des autres groupes au sein d'une image.
Des groupes de tranches peuvent définir une image entière. Ainsi, l'ensemble des groupes de tranches couvrant une image est spécifié dans une NALU PPS, soit de type "Picture Parameter Set", permettant au décodeur de connaître le découpage de l'image.
Le mode de réalisation détaillé de l'invention s'intéresse particulièrement aux groupes de tranches et à la forme de ceux-ci dont un exemple est représenté ici en figure 2. D'une façon générale, on détermine ici une pluralité de zones spatiales (1, 2, 3, 4) de l'image initiale (10) imbriquées successivement les unes dans les autres, formant ainsi une chaîne d'imbrication de zones. Notamment, on considère un groupe central rectangulaire 1 de l'image 10 puis des groupes successifs 2, 3, 4 incrémentant la zone centrale en des zones toujours rectangulaires satisfaisant respectivement différentes dimensions d'affichage sur un écran de visualisation.
Les groupes de tranches 1 à 4 sont ici définis par: - un index (de 1 à 4) définissant leur position hiérarchique depuis la surface de base référencée 1 jusqu'à la zone délimitée par le groupe 4 (surface maximale de l'image). Cet index est utilisé par la suite tant pour définir l'ordre d'indexation que l'ordre de codage et de décodage de l'image, comme précisé parla suite; - une zone définie par un rectangle, lui-même défini par ses coins haut gauche et bas droit, et n'étant pas couverte par les groupes précédents. Ainsi dans l'exemple de la figure 2, le groupe de tranches 2 comprend une première tranche rectangulaire 2a au-dessus du groupe 1 et une deuxième tranche rectangulaire 2b au-dessous du groupe 1. Ce découpage de l'image 10 permet de mettre en place un codage et un décodage en zones incrémentales en fonction de la position hiérarchique de chacun des groupes. Ainsi, on effectue les traitements de codage et de décodage depuis le groupe de base 1 jusqu'au groupe de plus grand index, ici 4. Comme on le verra par la suite, ce décodage incrémentai constitue un élément important de l'invention par l'indépendance du codage (et donc du décodage) d'un groupe par rapport à celui des groupes d'index plus grands.
La norme AVC de codage nécessite, pour permettre le décodage, que chaque groupe défini dans l'unité NALU de type PPS (c'est-à-dire généralement tous les groupes composants l'image) soit effectivement transmis au décodeur qu'il soit affiché par la suite ou non.
Cela impose alors de disposer, en outre, de données décodables pour toutes les unités des groupes en leur sein, en particulier les unités des groupes non-affichés, a priori inutiles. L'optimisation de ces données "inutiles" constitue également une amélioration de l'invention comme nous le verrons par la suite.
Les solutions de codage offertes par la norme AVC sont principalement: - le mode intra, où l'on réalise, sur chaque macrobloc des groupes, une transformation spatio-fréquentielle éventuellement précédée d'une prédiction spatiale inter-blocs; - le mode inter, où les données d'image (macroblocs, blocs) sont prédites temporellement, technique également appelée compensation de mouvement. Comme illustré sur la figure 3, chaque groupe dépend directement du groupe de même index dans l'image qui précède ou dans une image de référence.
Comme indiqué ci-dessus, les groupes de tranches sont indépendants spatialement au sein d'une même image. En revanche, la norme AVC autorise une dépendance temporelle des données d'un groupe sur les données d'autres groupes dans des images voisines. Ainsi, une indication de la dépendance temporelle ou non peut être précisée par le codeur compatible AVC dans une unité NALU de type 6 (message SEI pour "informations d'amélioration supplémentaires" ou "supplemental enhancement information" selon la terminologie anglo-saxonne). Cette unité NALU SEI peut être envoyée avec chaque image de type IDR qui servira alors de base pour la prédiction temporelle.
Par ailleurs, dans la norme AVC, on peut spécifier dans une NALU de type SPS, une information de découpage dite information de "cropping" qui définit une zone de l'image ou des images d'une séquence vidéo qui doit être réellement affichée. Cette information définit alors un rectangle d'affichage selon ses distances aux bords de l'image ou des images de la séquence vidéo. Cette information permet de supprimer des données additionnelles inutiles ou ne respectant pas le ratio d'affichage final.
On décrit maintenant, en référence aux figures 4 à 7, un mode de réalisation de l'invention illustré par deux scénarios de codage AVC ayant des objectifs différents: - dans un premier cas, on s'intéresse à un serveur diffusant un flux codé à plusieurs clients ayant des capacités (de traitement ou d'affichage) différentes; ces flux vidéo codés sont adaptés à ces capacités clientes et diffèrent d'un flux codé de base contenant le maximum d'information de codage de l'image; - dans un second cas, on vise une caméra qui génère des formats préétablis compatibles avec les résolutions standard des écrans de visualisation. Bien que cette description détaillée mette en oeuvre la norme de codage vidéo dite AVC, les moyens et procédés cités sont applicables à d'autres normes de codage vidéo. Selon l'invention, on prévoit un procédé de codage d'une image initiale, selon un format de codage mono-résolution d'image qui est apte à générer une charge utile de données codées de l'image pour la reconstruction, par décodage, d'une image de mêmes dimensions que ladite image initiale, le procédé comprenant les étapes suivantes: - détermination d'une pluralité de zones spatiales de l'image initiale imbriquées les unes dans les autres; - sélection d'un ensemble desdites zones spatiales, l'ensemble définissant une partie de l'image initiale; - codage des données d'image associées à l'ensemble desdites zones spatiales sélectionnées en des données codées, - ajout, auxdites données codées des zones sélectionnées, de données additionnelles de sorte à former ladite charge utile conforme audit format de codage.
Ainsi dans une première phase du procédé illustrée par la figure 4, un codeur compatible AVC pseudo-hiérarchique réalise un codage de l'ensemble des données de l'image selon un découpage de celle-ci. Dans une deuxième phase illustrée par la figure 6, les flux adaptés aux différents dispositifs clients sont constitués à partir des données codées ainsi générées, puis ils sont complétés pour former des flux codés finaux qui pourront être décodés par les décodeurs clients compatibles AVC. Les algorithmes mettant en oeuvre ces différentes étapes des figures 4 et 6 sont notamment mis en oeuvre au travers d'un ou plusieurs programmes d'ordinateur exécutés dans un processeur matériel comme décrit plus après en référence à la figure 8. On décrit maintenant le procédé de codage d'une image donnée. On comprendra qu'en appliquant successivement ce procédé à différentes images successives, on réalise un codage équivalent d'un flux vidéo. Comme évoqué ci-dessus, certaines opérations du traitement d'une image selon l'invention peuvent faire appel à d'autres images généralement décalées dans le temps d'un flux vidéo, par exemple des images de référence. Ainsi, en référence à la figure 4, on décrit différentes étapes de traitement d'une image conformément à l'invention.
A l'étape E100, on génère une liste de zones incrémentales décomposant l'image 10. Dans le premier cas de scénario impliquant un serveur de diffusion de flux vidéo, chaque client destinataire du flux vidéo fournit ses capacités d'affichage, c'est-à-dire la résolution de son écran d'affichage, au serveur via un protocole de communication adapté au réseau par lequel il se connecte. Notamment, ces données de capacités sont récupérées dynamiquement lorsque les clients se connectent au serveur de diffusion, par exemple pour commander une séquence vidéo. Le serveur dresse alors une liste des dimensions des écrans utilisés par les clients destinataires.
Dans un exemple illustré par la figure 5, le serveur reçoit les résolutions d'écran suivantes: 1920x1080, 1440x1080, 1280x720 et 1280x960 pixels.
Dans cet exemple d'image alors décomposée en quatre zones emboîtées couvrant une surface de 1920x1080 pixels, la zone (1) recouvre une surface de 1280x720p, qui n'est pas la pleine résolution HD . L'ajout de la zone (2) passe le tout en 1280x960p; on a alors un format 4/3. L'ajout de la zone (3) et de la zone (4) aboutit à une taille de 1920x1080p qui est le format HD de plus haute résolution. Enfin, la zone (3) a pour but de proposer un format 4/3 intermédiaire pour cette résolution HD pleine : 1440x1080p. En variante, la liste des zones spatiales incrémentales peut être prédéterminée par le serveur du fait du type de client qui peut se connecter au serveur. Le serveur dispose d'un moyen pour définir des zones incrémentales dans l'image à partir de ces dimensions/capacités des dispositifs clients. Outre les résolutions d'écran évoquées ci-dessus (VGA, 720p, etc), le serveur peut s'appuyer sur des capacités de traitement (par exemple nombre de macroblocs décodables par seconde) ou sur des ratios d'affichage (par exemple 4/3 ou 16/9). En pratique, la dimension d'écran la plus petite est utilisée comme surface de base dans le centre de l'image. Cette zone spatiale est représentée sur l'exemple de la figure 5 par le niveau hiérarchique 1. Puis de façon incrémentale, on prend la dimension immédiatement supérieure pour définir une zone spatiale centrée sur la zone de niveau hiérarchique inférieur. Cette zone spatiale prend le niveau hiérarchique suivant, ici 2. On procède de façon similaire pour toutes les dimensions et on obtient, ici, les niveaux 3 et 4. Chaque zone spatiale 1, 2, 3, 4 comprend alors la zone spatiale 1, 2, 3 de rang immédiatement inférieur (zone vide dans le cas de la zone 1) plus une partie de l'image formant un groupe de tranches, également numéroté pour des raisons de simplicité groupe 1, 2, 3 ou 4. Dans une étape optionnelle E105, la liste de zones spatiales incrémentales de l'image ainsi obtenue est retraitée afin d'optimiser le coût de 30 codage et de transmission des données. Cette étape E105 met en oeuvre un moyen additionnel supprimant une partie des zones incrémentales si cette suppression conduit à une réduction des coûts de codage et/ou de transmission aux dispositifs clients et/ou de traitement par le codeur (diminution de la bande passante, réduction de la complexité du codeur à mettre en oeuvre). Le traitement d'optimisation rapporté à seulement deux zones successives dans la hiérarchie exposée ci-dessus est comme suit, en prenant ici l'exemple des zones 1 et 2 de la figure 5. Dans ce cas simplifié, il convient de ne comparer qu'une paire de zones successives parmi N-1 paires de zones successives. En notant R1, la zone spatiale 1; R2, le groupe de tranches distinguant la zone spatiale 2 de la zone spatiale 1, et R, la zone spatiale 2, c'est-à-dire couvrant les deux zones 1 et 2 (R=R1 uR2). Aux zones R1, R2 et R, on associe le nombre de bits généré quand ladite zone est codée séparément, respectivement C1, C2 et C. Ces coûts binaires peuvent être connus par simple simulation de codage ou par des moyennes établies sur des codages précédents. Entre autres du fait de l'existence d'une prédiction spatiale dans le standard AVC, le coût (débit de codage) de R est moins important que celui cumulé des deux zones disjointes R1 et R2. Notons alors 8C le surcoût (augmentation de débit) : C=C2+C1-8C, avec 8C>0.
De par la constitution des zones spatiales centrées par imbrication, il est raisonnable de considérer que la zone R1 seule va être transmise à N1 clients et la zone R (transmission de R1 et de R2) à N2 autres clients. R peut effectivement être transmis comme une zone complète ou comme deux zones disjointes.
La présente optimisation de la liste des zones spatiales décomposant l'image vise à savoir s'il y a un intérêt à transmettre indépendamment la zone R1 aux N1 clients ou s'il vaut mieux transmettre la zone R toute entière à l'ensemble des clients N1 et N2. Dans un cas, la transmission de R (de coût C) à tous (N1+N2) les 30 clients présente un coût total CTcommun de (N1+N2)C. Dans l'autre cas, la transmission de R1 à N1 clients et de R à N2 clients présente un coût total CTséparé de N1 C1 +N2(C2+C1).
La différence de coût peut alors s'exprimer comme : AC1,2 = N2C1+N1C2-(N1+N2) 8C Ainsi, en fonction, soit du nombre (N1, N2) de dispositifs clients, soit des coûts (Cl, C2, 8C) associés à chacun des codages possibles, on privilégie soit la transmission de R à tous les N1+N2 clients (si A C1,2 0) auquel cas on fusionne les deux zones 1 et 2 en une "grande zone" 1 (on re-numérote les autres zones de sorte à garder une indexation hiérarchique continue), soit la transmission séparée de R1 seulement aux N1 clients (si A C1,2 > 0), R étant toujours transmise aux N2 clients.
La résolution ci-dessus peut cependant être coûteuse en temps d'exécution selon le degré de sophistication de l'estimation de Cl, C2 et/ou 8C. Ainsi, l'étape E105 est prévue de manière générale lorsque la réduction de la bande passante globale est un critère important. En complément, il est également possible de tenir compte, outre les coûts de codage et de transmission, du surcoût de la syntaxe alors utilisée ou du fait que les codeurs entropiques voient leur contexte réinitialisé à l'occasion d'une telle fusion. On comprend que si l'optimisation ci-dessus s'applique à deux zones parmi N zones décomposant l'image, on peut appliquer ce processus par itération à l'ensemble des paires successives de zones afin de réaliser une optimisation plus efficace, comme suit: (E105.1) pour chaque paire (i, j) de zones immédiatement consécutives : (a) calculer la différence AC;,i; (b) si une réduction est possible, c'est-à-dire généralement si une différence OC;,i est négative, déterminer l'importance de cette réduction; (E105.2) fusionner les deux zones de la paire pour laquelle la réduction a été maximale; (E105.3) retourner à l'étape E105.1 en tenant compte de la fusion des zones de l'étape E105.2 de l'itération précédente.
Les itérations sont poursuivies jusqu'à ce qu'un critère soit atteint, par exemple un temps de calcul prédéterminé pour ces itérations ou une absence de réduction (aucune différence négative). Dans l'exemple de la figure 5, le nombre de clients pouvant bénéficier de la résolution 1440x1080 pixels mais pas 1920x1080 peut être faible. Il est alors plus efficace d'envoyer la résolution 1920x1080 à ces quelques clients et de retirer la résolution 1440x1080 de la liste. En variante, une autre optimisation envisagée peut simplement considérer que la mise à disposition d'un seul format 4/3 est un critère : le choix entre les résolutions 1440x1080 ou 1280x960 peut alors s'effectuer en fonction d'un critère secondaire quelconque, tel que par exemple le fait que la résolution 1280x960 nécessite moins de débit que la résolution 1440x1080. Au sortir de l'étape E105, le serveur dispose alors d'une liste optimisée de zones spatiales incrémentales décomposant l'image 10.
De retour à la figure 4 et à l'étape E100, dans le cas d'une caméra qui génère des formats préétablis compatibles avec les résolutions standard type VGA, PAL, NTSC, 720p, 1080p, etc., on procède de façon similaire au cas du serveur de diffusion à l'exception toutefois de toute étape d'optimisation de la liste puisque aucune information sur le nombre de clients n'est connue.
On dispose alors, dans ce cas également, d'une liste de zones spatiales incrémentales décomposant l'image 10. Cette liste est alors utilisée par le système de traitement, lors de l'étape E110, pour initialiser le codeur AVC avec les groupes de tranches définis respectivement pour chacune des zones spatiales de la liste.
Pour la suite de la description détaillée, nous prenons l'exemple de la figure 5 illustrant les quatre zones emboîtées couvrant la surface de 1920x1080 pixels. On procède ensuite, lors des étapes E120 à E170, au codage des images.
A l'étape E120, on sélectionne la première image 10 d'une séquence vidéo pour codage.
Dans le cadre du codage AVC, le but est de coder de manière incrémentale et indépendante chaque groupe de tranches 1 à 4 de l'image selon la hiérarchie mise en place, avec éventuellement une compensation de mouvement telle que définie dans la norme AVC, permettant ainsi de bien contrôler les dépendances autorisées. A titre explicatif, cette indépendance correspond à celle existant entre les objets vidéo de la norme MPEG-4 Part 2 et les flux élémentaires définis par celle-ci. L'objectif du codage selon l'invention est le codage des zones 1 à 4 d'une telle manière que les données codées produites ne dépendent que de ces zones. La notion de hiérarchie indique ici qu'une notion d'ordre partiel existe et que chaque zone ne dépend que d'un nombre limité (celles d'index plus faible) d'autres surfaces dont il est garanti qu'elles sont codées et décodées avant ladite zone.
Ainsi, le premier groupe de tranches (qui correspond à la première zone 1 de taille 1280x720) est sélectionné à l'étape E130. A l'étape E140, on code le groupe courant et on génère un train binaire codé. Les spécificités du codage AVC font que ce train binaire contient au moins une unité NALU de type 1, 2, 3, 4 ou 5, mais d'autres critères peuvent faire varier le nombre et le type de NALU dans le train binaire pour le groupe courant. Notamment, le type des unités NALU varie lorsque l'on tient compte de la présence d'un changement de scène ou, plus généralement, d'un choix issu d'une optimisation débit-distorsion Le nombre d'unités NALU varie, quant à lui, en fonction de la nécessité de transporter sur un réseau le flux généré, lequel réseau spécifie une unité maximale de transport ( MTU ), qui sert avantageusement à fixer la taille maximale des NALU afin de limiter la fragmentation de ces NALU par les couches réseau. Le train binaire issu de l'étape E140 est alors enregistré (stockage mémoire) à l'étape E150 pour une utilisation ultérieure (voir étape E180). Une vérification est réalisée à l'étape E160 afin de tester si le dernier groupe a été codé.
Dans la négative, alors le groupe suivant est sélectionné à l'étape E170 et le traitement reboucle vers l'étape E140 déjà décrite. Ainsi, l'encodeur va traiter le groupe de tranches 2 (faisant passer la zone totale codée à 1280x960 pixels) et ainsi de suite pour toutes les zones définies dans la liste construite à l'étape E100 et paramétrant le codeur AVC. Lorsque le dernier groupe est atteint toute l'image a été codée par groupe de tranches. Les trains binaires alors générés sont exploités à l'étape E180. Dans le scénario impliquant le serveur de diffusion, cette exploitation consiste à générer, à partir de ces trains binaires, les flux adaptés aux clients destinataires pour leur envoyer. Cette exploitation est détaillée par la suite en référence à la figure 6. Dans le scénario impliquant la caméra, les trains binaires sont enregistrés directement dans un format donné, par exemple un flux élémentaire sans encapsulation supplémentaire, ou un flux système. Dans ce dernier cas, il peut s'agir d'un flux de type "Transport Stream" conforme à la norme ISO 13818-1 lié à MPEG-2 ou un flux de type "ISOMedia MPEG-4" conforme à la norme ISO 14496-12. En outre, un fichier ou des métadonnées dans ce flux peuvet être prévus afin de permettre un accès individuel optimisé à chaque train binaire. Cette exploitation est également détaillée par la suite en référence à la figure 6. Suite à l'étape E180, on vérifie alors, au cours de l'étape E190, si la fin du codage est atteinte: détection de la dernière image ou simplement ordre d'arrêt du codage. Si c'est le cas, le codage se termine avec l'étape E200, sinon l'image suivante est sélectionnée à l'étape E210 avant de reboucler le traitement avec l'étape E130 pour le codage effectif de cette image suivante. Au sortir du codage AVC de chaque image, c'est-à-dire à l'étape E180, les trains binaires obtenus qui doivent être transmis respectivement à chacun des clients destinataires en fonction de leurs capacités d'affichage ne correspondent généralement qu'à une portion de l'image d'origine. Ainsi, ces simples données ne sont pas exploitables par un décodeur AVC qui les réceptionnera. En effet, selon le format AVC, tous les groupes de tranches définis initialement dans la liste de l'étape E100 ayant servi à l'initialisation du codeur AVC lors de l'étape E110 sont listés dans l'unité NALU PPS. Le décodeur AVC attend donc des données pour chacun de ces groupes spécifiés dans l'unité NALU PPS.
A cet égard, l'invention comporte une deuxième phase de traitement illustrée par la figure 6, visant à générer un flux codé d'image adapté aux capacités des dispositifs clients et conforme à la norme de codage, ici AVC. L'objectif de cette phase est de générer aussi peu d'information que possible, tout en conformant le signal codé à la norme de codage.
Cette phase prend place lors de l'étape E180 de la figure 4, lorsque l'on souhaite, par exemple, générer plusieurs flux codés différents adaptés chacun aux capacités des dispositifs clients. Le traitement suivi est réalisé pour chacun des clients ou groupes de clients ayant les mêmes capacités et donc recevant un flux codé identique.
Pour un client, une surface cible propre à sa capacité d'affichage est ainsi disponible lors de l'étape E300. Celle-ci permet de déterminer une zone de la liste issue de l'étape E100 qui concorde le mieux avec la surface cible, par exemple la plus grande zone de ladite liste ayant des dimensions inférieures à la surface cible d'affichage. Cela permet de sélectionner le sous-ensemble des zones de ladite liste et donc les groupes de tranches correspondants ayant un index hiérarchique inférieur à la zone de la surface cible. La surface couverte par ce sous-ensemble peut contenir tout ou partie de la surface cible : une adaptation peut être nécessaire, par exemple par une homothétie comme évoqué plus loin. Les stratégies de recouvrement de la surface cible peuvent être multiples, comme décrit ci-après en référence aux figures 7a à 7e. A l'étape E310, on sélectionne les trains binaires générés lors de l'étape E140 qui correspondent aux zones sélectionnées lors de l'étape E300. Pour rendre ceux-ci décodables, il faut cependant générer un certain nombre de données additionnelles décrites ci-après. On comprend ici que ces données additionnelles diffèrent des données qui auraient été générées de façon classique par le codage (similaire à celui évoqué en lien avec l'étape E140) des zones non sélectionnées. En particulier, on veillera à minimiser la taille des données additionnelles eu égard à celle des données qui auraient ainsi été générées classiquement, afin d'apporter un gain supplémentaire de codage. A l'étape E320, on génère ces données additionnelles à l'aide de moyens ad hoc. On peut succinctement diviser ces données additionnelles en deux grands groupes, qui sont présentés ci-après. Une fois tous les trains binaires sélectionnés et données additionnelles obtenues, l'étape E330 assemble ces données et génère ainsi un flux codé de l'image décodable. Celui-ci peut être généré image par image ou non, diffusé via un réseau à un client donné ou simplement envoyé à un décodeur standard pour effectuer un affichage direct. On décrit maintenant plus en détail l'étape E320 par, d'une part, la génération de données génériques, puis d'autre part, la génération des données images additionnelles venant se substituer aux données des zones spatiales non sélectionnées lors de l'étape E300. Spécifiquement au codage de type AVC, on renseigne, tout d'abord, pour chaque version du flux codé d'images à produire, une NALU de type SPS avec la taille des images, ici 1920x1080 pixels. Par ailleurs, toujours pour chaque version de flux à produire, on indique optionnellement les tailles des bords inutiles de l'image, c'est-à-dire les bords de l'image non affichables (les données codées correspondantes n'ayant pas été jointes dans le flux) de sorte à définir la zone à afficher correspondant généralement à la zone maximale sélectionnée à l'étape E300. Ces tailles sont indiquées comme la distance entre la zone à afficher et le bord de l'image initiale. Selon la norme AVC, on renseigne successivement les dimensions du bord gauche puis du bord droit puis du bord haut, et finalement du bord bas. Ces tailles sont en pixels et non en multiples de taille de blocs. Il se peut donc qu'il n'y ait pas un parfait recouvrement entre les bords et les groupes/zones définis à l'étape E100. Ainsi, pour la surface couverte par ces bords, il se peut qu'un ou plusieurs groupes de tranches des zones définies dans la liste issue de l'étape E100 soient couverts.
Pour chaque groupe de tranches ainsi contenu dans les bords, on code du "vide", c'est-à-dire des données non représentatives de l'image originale. On rappelle que l'information au sujet des groupes décomposant l'image 10 est contenue dans une NALU de type PPS.
Dans une version de l'invention, on conserve cette définition de tous les groupes de tranches pour chaque taille de flux souhaitée et générée. A l'aide de moyens appropriés, certaines des données additionnelles sont générées une seule fois en amont du codage (par exemple lors de l'initialisation du codeur AVC), enregistrées et réutilisées en l'état. Ainsi, on dispose à l'avance, pour chaque groupe de tranches, d'une forme codée (ensemble d'une ou plusieurs unités NALU de données codées) correspondant au contenu vide et réutilisable par toutes les versions du flux lorsque ce groupe appartient aux bords non affichés. Ceci permet de réduire la surcharge en temps CPU de certaines opérations répétitives.
Par ailleurs, pour chaque version de flux à générer, on peut prévoir de fusionner tous les groupes de tranches codés comme vides en un seul. Dans ce cas, on modifie l'unité PPS pour indiquer le nouveau groupe fusionné en lieu et place des anciens. On génère alors des données codées "vides" pour le "grand" groupe fusionné. Par ailleurs, on peut prévoir d'avoir une forme codée correspondant au contenu vide pour ledit groupe unifié de chaque version généré ou non au préalable du codage. On observe que, dans ce cas, le contenu de l'unité PPS de chaque version de flux codé contient: - le nombre de groupes de tranches codés incorporés dans le flux moins un, soit exactement le nombre de groupes non-vides utilisés; - l'information que les groupes sont de forme rectangulaire; et - deux tableaux de taille 'nombre de groupes moins un', contenant l'index, dans l'ordre lexicographique, des macroblocs respectivement du coin haut-gauche et du coin bas-droit des zones correspondantes. Ces tableaux permettent l'identification spatiale des groupes. Pour ces deux versions, les trains binaires des groupes vides peuvent être pré-générés comme indiqué ci-dessus, par exemple à l'initialisation du codeur, ou tout simplement enregistrés parmi les métadonnées évoquées précédemment. De même, on envisage que la signalisation de ces groupes vides permette au décodeur d'ajouter des bandes noires à la surface couverte par les zones sélectionnées pour remplir la surface cible. A cet égard, un procédé de décodage conforme à l'invention comprend notamment les étapes suivantes: - décodage incrémentai de données codées d'un signal codé de l'image, comprenant le décodage d'un premier ensemble de données représentant une surface de base de l'image et le décodage successifs d'une pluralité d'ensembles de données codées représentant chacun une zone complémentaire de l'image de sorte à former une portion d'image décodée de taille inférieure à une taille prédéterminée; - extraction de données additionnelles de sorte à former, avec ladite portion d'image décodée, une image de la taille prédéterminée, ces données extraites pouvant le cas échéant être décodées; - lecture, dans le signal codé de l'image, d'une indication d'une zone de l'image à afficher correspondant sensiblement à ladite portion d'image décodée; et - affichage sur ledit écran de ladite portion de l'image décodée correspondant à ladite zone indiquée. Une description plus détaillée du décodage sera exposée brièvement ci-après. Dans ce contexte: - si un client a une surface d'affichage de dimensions natives disponibles dans la liste de l'étape E100, le nombre de zones est aisément déterminable; - si un client a une autre surface d'affichage, par exemple 1400x1050 pixels (cas d'un ordinateur portable par exemple), il s'agit de choisir la taille la plus adaptée. Dans ce dernier cas: - si la zone 1 de taille 1280x720 pixels est disponible et est choisie, alors des bandes noires 70 (la surface d'affichage réelle sur l'écran du client étant d'environ 1400x788, ces bandes noires font 1400x131) horizontales sont rajoutées après re-dimensionnement homothétique de la zone choisie par le dispositif client (voir figure 7a); - si la zone 1+2 de taille 1280x960 pixels est disponible et est choisie, alors la surface est entièrement recouverte après re-dimensionnement homothétique (voir figure 7b). A titre illustratif toujours, dans le cas d'un écran 1400x900 pixels par exemple : - si la zone de taille 1280x720 pixels est choisie, deux bandes noires 70 de taille 1400x81 pixels horizontales sont rajoutées après redimensionnement (figure 7c); - si la zone de taille 1280x960 pixels est choisie: ^ soit un découpage aux dimensions 71 de l'écran client lors du décodage est nécessaire au niveau du dispositif client car la portion utile avant re-dimensionnement est de taille 1280x824 pixels (figure 7d); ^ soit des bandes noires verticales 70 sont rajoutées sur la surface effective (figure 7e). La génération des données image additionnelles lors de l'étape E320 est maintenant décrite plus en détail selon différentes variantes éventuellement combinées. On cherche ici à réaliser un codage de ces données additionnelles de manière optimale en termes de débit supplémentaire généré. Le but est donc de minimiser le nombre de bits générés par le codage des groupes qui ne seront pas affichés. On envisage tout d'abord le codage des blocs en mode intra, c'est-à-dire sans prédiction temporelle. Dans ce cas, on applique une transformation spatio-fréquentielle au bloc, lequel est décomposé en fréquences. On ne représente alors le bloc que par une seule fréquence, en l'occurrence le coefficient continu dit DC . Le nombre de bits générés lors du codage de ce bloc est alors minimal. 32 Selon une variante, le bloc intra selon le standard AVC peut aussi faire référence à des blocs immédiatement voisins. Par exemple, le type de macrobloc "Intra_16x16" permet d'indiquer que la totalité du macrobloc considéré est prédite depuis les pixels adjacents des macroblocs voisins déjà codés. Ceci minimise le coût de codage de zones d'image uniformes, et est donc utile pour représenter avec un minimum d'information des zones destinées à ne pas être affichées. Selon une autre variante, on utilise le type de partition de macrobloc "Intra_8x8" défini dans la norme AVC afin de définir les sous-parties qui ne sont qu'une recopie de pixels adjacents des blocs 8x8 considérés. Un élément syntaxique appelé coding block pattern permet ainsi de spécifier qu'aucun bloc 8x8 n'est réellement codé. En partitionnant de la sorte les macroblocs, le nombre de bits générés est encore une fois minimal. Dans le cas du codage avec compensation de mouvement (prédiction temporelle), on utilise une indication prévue, par la norme AVC, dans l'entête du train binaire des tranches qui permet de signaler des plages de macroblocs non codés dans la tranche considérée. Ces macroblocs sont alors interprétés comme ayant le même contenu que le macrobloc co-localisé dans l'image de référence. Ceci est fourni par un élément syntaxique, nommé "mb_skip_run", indiquant le nombre de blocs consécutifs dans la tranche qui doivent être considérés comme non-codés. En variante ou en complément, il est possible de signaler explicitement (tant dans AVC que dans d'autres normes de codage vidéo), macrobloc par macrobloc, qu'un macrobloc n'est pas non plus codé.
A réception du signal ainsi codé conformément aux étapes des figures 4 et 6, l'équipement décodeur procède au décodage des données reçues pour afficher l'image initiale sur un écran auquel il est relié. En référence à la figure 8, le décodage d'un train binaire obtenu à l'issue de l'étape E330 comprend la réception de ce train binaire (E400) et d'une 30 unité NAL (E405) dont on extrait les données binaires (E410). On détermine alors s'il s'agit d'une unité NAL de type SPS (étape E415), auquel cas on lit (E420) les informations de séquences dont la zone de découpage de l'image, c'est-à-dire la zone d'intérêt. On détecte ensuite si on a atteint la fin du train binaire reçu (étape 425), auquel cas on met fin au traitement (E430). Sinon, on sélectionne l'unité NAL suivante à l'étape E435 et on poursuit à l'étape E410 par l'extraction des données binaires associées.
S'il ne s'agit pas d'une unité NAL de type SPS (sortie NON de l'étape E415), on détermine (E440) s'il s'agit d'une unité NAL de type PPS indiquant les paramètres de l'image, en particulier le découpage des groupes de tranches. Si tel est le cas, on lit ces paramètres (E445) puis on va à l'étape E425. Grâce à la lecture de ces informations PPS, on peut envisager de changer les zones spatiales incrémentales en cours via des unités PPS ultérieures, après que plusieurs images aient été décodées. S'il s'agit encore d'un autre train (sortie NON de l'étape E440), on détermine (E450) s'il s'agit d'une unité NAL associée à une tranche, notamment de type 1 à 5.
Dans la négative, il s'agit d'une unité NAL de type spécial à laquelle un traitement spécifique est apporté (E455). Après ce traitement, on poursuit à l'étape E425. Dans l'affirmative du test E450, on détermine tout d'abord dans les données de l'unité NAL récupérée le groupe de la tranche en question (étape E460). Le décodeur peut alors savoir où se situe chaque macrobloc codé dans la dite tranche (grâce aux informations de groupe du PPS) et donc les placer correctement dans l'image. Puis on procède au décodage à proprement parler de la tranche à partir des données binaires codées (étape E465). En fin de décodage, on détermine s'il s'agit de la dernière tranche du dernier groupe (test à l'étape E470), auquel cas on finalise l'image (étape E475), par application des paramètres de découpage par exemple, pour son affichage et on poursuit ensuite à l'étape E425. Sinon, on passe directement à l'étape E425. En référence à la figure 9, il est maintenant décrit à titre d'exemple une configuration matérielle particulière d'un dispositif/système de traitement d'information apte à une mise en oeuvre du procédé de codage et/ou de décodage selon l'invention.
Un dispositif de traitement d'information 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 de traitement d'information 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 de traitement d'information comprennent par exemple une caméra numérique 64, ou un scanner ou tout autre moyen d'acquisition ou de stockage d'images, reliée à une carte d'entrée/sortie (non représentée) et fournissant au dispositif de traitement d'information des données multimédia. Le dispositif 50 comporte un bus de communication 51 auquel sont reliés : - Une unité centrale de traitement CPU 52 se présentant par 15 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 du procédé selon l'invention ; - Une mémoire vive 54 qui, après la mise sous tension du dispositif 20 50, contient le code exécutable des programmes de l'invention ainsi que des registres adaptés à enregistrer des variables et paramètres nécessaires à la mise en oeuvre de l'invention ; - Un écran 55 permettant de visualiser des données et/ou de servir d'interface graphique avec l'utilisateur qui peut ainsi interagir avec les 25 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 30 l'invention ainsi que des données utilisées ou produites lors de la mise en oeuvre de l'invention ; - Un lecteur de disquette 59 optionnel, ou un autre lecteur de support de données amovible, adapté à recevoir une disquette 70 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 61, 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 52 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 de traitement d'information, éventuellement amovible, est adapté à mémoriser un ou plusieurs programmes dont l'exécution permet la mise en oeuvre du procédé selon l'invention. Le code exécutable permettant au dispositif de traitement d'information 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 61, 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 à 8, pour mettre en oeuvre le procédé objet de la présente invention et constituer le dispositif objet de la présente invention. A cet égard, le dispositif de codage comprend: - un moyen de détermination d'une pluralité de zones spatiales de l'image initiale imbriquées les unes dans les autres; - un moyen de sélection d'un ensemble desdites zones spatiales, l'ensemble définissant une partie de l'image initiale; - un moyen de codage des données d'image associées à l'ensemble desdites zones spatiales sélectionnées en des données codées; - un moyen apte à ajouter, auxdites données codées des zones sélectionnées, des données additionnelles de sorte à former ladite charge utile conforme audit format de codage. Corrélativement, le dispositif de décodage comprend: - un premier moyen de décodage incrémentai de données codées d'un signal codé de l'image, apte à décoder un premier ensemble de données représentant une surface de base de l'image et une pluralité successive d'ensembles de données codées représentant chacun une zone complémentaire de l'image, de sorte à former une portion d'image décodée de taille inférieure à une taille prédéterminée; - un moyen d'extraction de données additionnelles de sorte à former, avec ladite portion d'image décodée, une image de la taille 5 prédéterminée - un moyen de lecture, dans le signal codé de l'image, d'une indication d'une zone de l'image à afficher correspondant sensiblement à ladite portion d'image décodée; et - un moyen apte à commander l'affichage sur ledit écran de ladite 10 portion de l'image décodée correspondant à ladite zone indiquée. Les exemples qui précèdent ne sont que des modes de réalisation de l'invention qui ne s'y limite pas. Par exemple, on a prévu ci-dessus de procéder au codage de tous les groupes de tranches décomposant l'image, puis à la sélection de ceux utiles 15 pour chacun des flux à générer spécifiquement en fonction des capacités des clients. Il peut néanmoins être prévu de ne coder que les groupes de tranches effectivement sélectionnés pour constituer les flux codés d'image. Ainsi, lors de la constitution du premier flux adapté à un client, on 20 code les groupes de tranches utilisés, par exemple les groupes 1 et 2, puis on les stocke. Ensuite, lorsqu'un flux ultérieur nécessite un groupe de tranches non codé, par exemple le groupe 3, un codage de celui-ci est effectué avant enregistrement.
25 On évite ainsi le codage inutile des zones et groupes de tranches correspondant à des résolutions au-delà des capacités de l'ensemble des dispositifs clients.

Claims (25)

  1. REVENDICATIONS1. Procédé de codage d'une image initiale (10), selon un format de codage mono-résolution d'image qui est apte à générer une charge utile de données codées de l'image pour la reconstruction, par décodage, d'une image de mêmes dimensions que ladite image initiale, caractérisé en ce que le procédé comprend les étapes suivantes: - détermination (E100, E105) d'une pluralité de zones spatiales (1, 2, 3, 4) de l'image initiale (10) imbriquées les unes dans les autres; - sélection (E300, E310) d'un ensemble desdites zones spatiales, l'ensemble définissant une partie (71) de l'image initiale; - codage (E140) des données d'image associées à l'ensemble desdites zones spatiales sélectionnées en des données codées, - ajout (E320, E330), auxdites données codées des zones 15 sélectionnées, de données additionnelles de sorte à former ladite charge utile conforme audit format de codage.
  2. 2. Procédé selon la revendication précédente, dans lequel chaque zone spatiale déterminée comprend la zone spatiale immédiatement imbriquée dedans et des données complémentaires d'image (R1, R2), et ledit codage des 20 données d'une zone spatiale comprend le codage des données complémentaires de ladite zone spatiale indépendamment des données complémentaires des zones spatiales imbriquant ladite zone spatiale.
  3. 3. Procédé selon la revendication précédente, dans lequel lesdites données complémentaires d'une zone spatiale forment un groupe de tranches 25 défini par une position hiérarchique à l'intérieur d'une chaîne d'imbrication des zones spatiales.
  4. 4. Procédé selon l'une des revendications précédentes, dans lequel ladite détermination (E100, E105) d'une pluralité de zones spatiales comprend: - la détermination (El 00) d'une première liste de zones spatiales (1, 30 2, 3, 4) imbriquées formant une chaîne d'imbrication;- l'estimation (El 05.1) d'un premier critère (AC;,;) pour deux zones (i, j) immédiatement consécutives dans la chaîne d'imbrication des zones spatiales; et - la fusion (E105.2) des deux zones en fonction dudit premier critère.
  5. 5. Procédé selon la revendication précédente, dans lequel ledit premier critère comprend la différence entre: - les coûts (CTséparé) de codage séparés des deux zones, ajoutés aux coûts de transmission des données codées des deux zones respectivement à un premier groupe de destinataires et à un deuxième groupe de destinataires; et - le coût (CTcommun) de codage commun desdites deux zones, ajouté aux coûts de transmission des données ainsi codées à l'ensemble des destinataires des deux groupes.
  6. 6. Procédé selon l'une des revendications 4 et 5, dans lequel: i) ladite estimation (E105.1) est effectuée pour chaque paire (i, j) de zones spatiales immédiatement consécutives dans la chaîne d'imbrication, et ii) on fusionne (E105.2) les deux zones dont le premier critère est maximal.
  7. 7. Procédé selon la revendication précédente, dans lequel on réitère (E105.3) ces deux étapes i) et ii) en tenant compte des zones fusionnées lors d'itérations précédentes jusqu'à atteindre un deuxième critère prédéfini.
  8. 8. Procédé selon l'une des revendications précédentes, dans lequel lesdites zones spatiales sont définies en fonction des propriétés ou caractéristiques d'affichage d'une pluralité d'équipements destinataires de l'image codée.
  9. 9. Procédé selon l'une quelconque des revendications précédentes, dans lequel on génère une pluralité de signaux codés d'image, ladite génération d'un signal comprenant ladite sélection (E300, E310) d'un ensemble correspondant desdites zones spatiales de sorte à définir une partie correspondante de l'image initiale, et ledit ajout (E320, E330), aux donnéescodées desdites zones spatiales ainsi sélectionnées, de données additionnelles de sorte à former ladite charge utile pour chaque signal.
  10. 10. Procédé selon la revendication 9 lorsqu'elle est prise en combinaison avec la revendication 2, dans lequel on code (E140) les données complémentaires des zones spatiales préalablement à la génération des signaux codés d'image (E300, E310, E320, E330).
  11. 11. Procédé selon la revendication 9 lorsqu'elle est prise en combinaison avec la revendication 2, dans lequel on code (E140) les données complémentaires d'une zone spatiale non encore codées, postérieurement à la sélection de ladite zone spatiale.
  12. 12. Procédé selon l'une quelconque des revendications précédentes, dans lequel on indique (PPS), dans ledit signal codé d'image, la décomposition de ladite image initiale (10) en lesdites zones spatiales déterminées (1, 2, 3, 4).
  13. 13. Procédé selon la revendication précédente, comprenant, en outre, la fusion des zones spatiales non sélectionnées en une zone fusionnée, et la modification de ladite indication (PPS) de décomposition de sorte à substituer lesdites zones fusionnées par ladite zone issue de la fusion.
  14. 14. Procédé selon l'une des revendications 12 et 13, dans lequel on ajoute (E320, E330) au moins une donnée additionnelle pour chaque zone spatiale non sélectionnée renseignée dans ladite indication de décomposition (PPS).
  15. 15. Procédé selon la revendication 14, dans lequel ladite au moins une donnée additionnelle d'une zone spatiale non sélectionnée comprend uniquement un ou plusieurs coefficients continus issus d'une transformation spatio-fréquentielle appliquée à un ensemble de blocs constitutifs des données complémentaires de ladite zone spatiale.
  16. 16. Procédé selon la revendication 14, dans lequel ladite au moins une donnée additionnelle comprend une indication selon laquelle au moins un bloc des données complémentaires de ladite zone spatiale est prédit depuis des blocs voisins de la zone spatiale.
  17. 17. Procédé selon la revendication 14, dans lequel on réalise le codage successif de plusieurs images initiales, et ladite au moins une donnéeadditionnelle correspondant à une zone spatiale non sélectionnée comprend une indication selon laquelle au moins un bloc de données de la zone spatiale non sélectionnée n'est pas codé de sorte qu'il prend les mêmes valeurs qu'un bloc correspondant dans une image de référence (IDR).
  18. 18. Procédé selon l'une quelconque des revendications précédentes, dans lequel lesdites données additionnelles sont générées préalablement à ladite sélection.
  19. 19. Procédé de décodage d'une image codée (10) pour son affichage sur un écran, le procédé comprenant les étapes suivantes: - décodage incrémentai de données codées d'un signal codé de l'image, comprenant le décodage d'un premier ensemble de données représentant une surface de base de l'image et le décodage successif d'une pluralité d'ensembles de données codées représentant chacun une zone complémentaire de l'image de sorte à former une portion d'image décodée de taille inférieure à une taille prédéterminée; - extraction de données additionnelles de sorte à former, avec ladite portion d'image décodée, une image de la taille prédéterminée; - lecture, dans le signal codé de l'image, d'une indication d'une zone de l'image à afficher correspondant sensiblement à ladite portion d'image 20 décodée; et - affichage sur ledit écran de ladite portion de l'image décodée correspondant à ladite zone indiquée.
  20. 20. Procédé selon la revendication 19, dans lequel ladite zone à afficher est de dimensions inférieures à celles dudit écran, le procédé 25 comprenant une transformation homothétique de ladite portion d'image décodée de sorte qu'au moins une dimension de ladite portion homothétique soit identique à une dimension correspondante dudit écran.
  21. 21. Dispositif de codage d'une image initiale (10), selon un format de codage mono-résolution d'image qui est apte à générer une charge utile de 30 données codées de l'image pour la reconstruction, par décodage, d'une image de mêmes dimensions que ladite image initiale:- un moyen de détermination (E100, E105) d'une pluralité de zones spatiales (1, 2, 3, 4) de l'image initiale (10) imbriquées les unes dans les autres; - un moyen de sélection (E300, E310) d'un ensemble desdites zones spatiales, l'ensemble définissant une partie (71) de l'image initiale; - un moyen de codage (E140) des données d'image associées à l'ensemble desdites zones spatiales sélectionnées en des données codées; - un moyen apte à ajouter (E320, E330), auxdites données codées des zones sélectionnées, des données additionnelles de sorte à former ladite charge utile conforme audit format de codage.
  22. 22. Dispositif selon la revendication précédente, comprenant un mémoire stockant une pluralité de données additionnelles correspondant à au moins une partie de ladite pluralité de zones spatiales, ledit moyen d'ajout étant apte à récupérer, dans ladite mémoire, lesdites données additionnelles correspondant aux zones spatiales non sélectionnées de sorte à former ladite charge utile.
  23. 23. Dispositif selon la revendication précédente, dans lequel ladite mémoire est apte à stocker lesdites données codées pour chaque zone spatiale de ladite pluralité, ledit moyen de sélection étant apte à récupérer, dans ladite mémoire, les données codées correspondantes audites zones spatiales sélectionnées.
  24. 24. 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é de codage ou décodage conforme à l'une quelconque des revendications 1 à 20, lorsque le programme est chargé et exécuté par le système informatique.
  25. 25. Produit programme d'ordinateur lisible par un microprocesseur, comprenant des portions de code logiciel adaptées à mettre en oeuvre le procédé de codage ou décodage selon l'une quelconque des revendications 1 à 20, lorsqu'il est chargé et exécuté par le microprocesseur.
FR0853385A 2008-05-23 2008-05-23 Procedes de codage et de decodage pseudo-hierarchiques et systemes associes. Expired - Fee Related FR2931609B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0853385A FR2931609B1 (fr) 2008-05-23 2008-05-23 Procedes de codage et de decodage pseudo-hierarchiques et systemes associes.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0853385A FR2931609B1 (fr) 2008-05-23 2008-05-23 Procedes de codage et de decodage pseudo-hierarchiques et systemes associes.

Publications (2)

Publication Number Publication Date
FR2931609A1 true FR2931609A1 (fr) 2009-11-27
FR2931609B1 FR2931609B1 (fr) 2010-06-04

Family

ID=40469900

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0853385A Expired - Fee Related FR2931609B1 (fr) 2008-05-23 2008-05-23 Procedes de codage et de decodage pseudo-hierarchiques et systemes associes.

Country Status (1)

Country Link
FR (1) FR2931609B1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112631595A (zh) * 2019-10-09 2021-04-09 安徽寒武纪信息科技有限公司 混洗方法、装置、计算机设备及可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040148640A1 (en) * 2002-11-15 2004-07-29 Koichi Masukura Moving-picture processing method and moving-picture processing apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040148640A1 (en) * 2002-11-15 2004-07-29 Koichi Masukura Moving-picture processing method and moving-picture processing apparatus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PARK G H ET AL: "Advanced FMO for ROI in SVC", JOINT VIDEO TEAM (JVT) OF ISO/IEC MPEG & ITU-T VCEG(ISO/IEC JTC1/SC29/WG11 AND ITU-T SG16 Q6), XX, XX, no. JVT-P097, 20 July 2005 (2005-07-20), XP030006134 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112631595A (zh) * 2019-10-09 2021-04-09 安徽寒武纪信息科技有限公司 混洗方法、装置、计算机设备及可读存储介质
CN112631595B (zh) * 2019-10-09 2024-03-01 安徽寒武纪信息科技有限公司 混洗方法、装置、计算机设备及可读存储介质

Also Published As

Publication number Publication date
FR2931609B1 (fr) 2010-06-04

Similar Documents

Publication Publication Date Title
FR2931610A1 (fr) Procede et un dispositif de transmission de donnees d'images
FR2903556A1 (fr) Procedes et des dispositifs de codage et de decodage d'images, un systeme de telecommunications comportant de tels dispositifs et des programmes d'ordinateur mettant en oeuvre de tels procedes
FR2894421A1 (fr) Procede et dispositif de decodage d'un flux video code suivant un codage hierarchique
FR2909474A1 (fr) Procede et dispositif de codage d'images numeriques et procede et dispositif de decodage d'images numeriques codees
FR2906433A1 (fr) Procedes et dispositifs de codage et de decodage d'images, programme d'ordinateur les mettant en oeuvre et support d'informaton permettant de les mettre en oeuvre
FR2939593A1 (fr) Procede et dispositif de codage video
EP3225027B1 (fr) Procédé de composition d'une représentation vidéo intermédiaire
EP3381009A1 (fr) Procédé de traitement d'une séquence d'images numériques, procédé de tatouage, dispositifs et programmes d'ordinateurs associés
EP4102840A1 (fr) Procédé de décodage d'une image numérique, dispositif et programme d'ordinateur associé
EP2443835A1 (fr) Codage de vecteurs mouvement par competition de predicteurs
FR2959636A1 (fr) Procede d'acces a une partie spatio-temporelle d'une sequence video d'images
FR2896117A1 (fr) Procedes de codage et de decodage d'une sequence d'images, dispositifs , programmes d'ordinateur, et signal correspondants
EP2716045B1 (fr) Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants
FR2913163A1 (fr) Procede et dispositif de transmission de donnees video
FR2931609A1 (fr) Procedes de codage et de decodage pseudo-hierarchiques et systemes associes.
EP3529987A1 (fr) Procédé de codage et de décodage de paramètres d'image, dispositif de codage et de décodage de paramètres d'image et programmes d'ordinateur correspondants
FR2872972A1 (fr) Procede et dispositif de transmission video entre un serveur et un client
EP1590961B1 (fr) Procede et dispositif de protection pour la diffusion securisee d'oeuvres audiovisuelles
EP1547364B1 (fr) Desembrouillage adaptatif et progressif de flux video
WO2019008253A1 (fr) Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'ordinateur correspondants
WO2019180350A1 (fr) Procédé d'encodage et de décodage vidéo faible latence
FR2957744A1 (fr) Procede de traitement d'une sequence video et dispositif associe
WO2010086562A1 (fr) Procede et dispositif de codage d'images mettant en oeuvre des modes de codage distincts, procede et dispositif de decodage, et programmes d'ordinateur correspondants
EP1554879B1 (fr) Dispositif pour la transformation de contenus multimedias et audiovisuels de type mpeg-2 en contenus securises de meme type
FR2951344A1 (fr) Procede et installation pour marquer en temps reel un flux video compose d'une succession d'images video codees en mpeg-4 avc.

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20140131