FR2915048A1 - Procede de sur-echantillonnage pour le codage et/ou le decodage d'un flux de donnees echelonnable, produits programme d'ordinateur et dispositifs correspondants. - Google Patents
Procede de sur-echantillonnage pour le codage et/ou le decodage d'un flux de donnees echelonnable, produits programme d'ordinateur et dispositifs correspondants. Download PDFInfo
- Publication number
- FR2915048A1 FR2915048A1 FR0702903A FR0702903A FR2915048A1 FR 2915048 A1 FR2915048 A1 FR 2915048A1 FR 0702903 A FR0702903 A FR 0702903A FR 0702903 A FR0702903 A FR 0702903A FR 2915048 A1 FR2915048 A1 FR 2915048A1
- Authority
- FR
- France
- Prior art keywords
- image
- resolution level
- pixel
- sub
- pixellic
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/59—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/182—Methods 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 a pixel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/187—Methods 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 a scalable video layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/33—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
L'invention concerne un procédé de sur-échantillonnage pour le décodage d'un flux de données représentatif d'au moins une image, et présentant une organisation en couches de données.Un tel procédé comprend :- pour une séquence d'au moins une image prise à un niveau de résolution inférieur (22), une première étape de détermination de la position d'au moins un pixel de ladite au moins une image à un niveau de résolution supérieur (21), dite position sous-pixellique ;- une étape de mémorisation de ladite au moins une position sous-pixellique dans au moins une table de sur-échantillonnage ;- pour au moins un pixel donné (212) d'une image de ladite séquence à un niveau de résolution supérieur (21), une deuxième étape de détermination d'une position sous-pixellique dudit au moins un pixel donné dans ledit niveau de résolution inférieur (22).
Description
Procédé de sur-échantillonnage pour le codage et/ou le décodage d'un flux
de données échelonnable, produits programme d'ordinateur et dispositifs correspondants. 1. Domaine de l'invention Le domaine de l'invention est celui du codage et du décodage d'images ou de séquences vidéo d'images. Plus précisément, l'invention concerne le codage d'images, ou de séquences vidéo d'images, générant un flux présentant une organisation en couches de données.
L'invention s'applique notamment, mais non exclusivement, au codage et au décodage de flux de données échelonnables (ou scalables ), à qualité adaptable et résolution spatio-temporelle variable. 2. Art antérieur 2.1 Principe général du codage vidéo scalable De nombreux systèmes de transmission de données sont aujourd'hui hétérogènes, en ce sens qu'ils desservent une pluralité de clients (terminaux de réception) disposant de types d'accès aux données très divers. Ainsi, le réseau mondial Internet, par exemple, est accessible aussi bien à partir d'un terminal de type ordinateur personnel (PC) que d'un radiotéléphone. Plus généralement, la bande passante pour l'accès au réseau, les capacités de traitement des terminaux clients, la taille de leurs écrans varient fortement d'un utilisateur à l'autre. Ainsi, un premier client peut par exemple accéder au réseau Internet à partir d'un PC puissant, et disposer d'un débit ADSL ( Asymmetric Digital Subscriber Line pour Ligne d'abonné numérique à structure asymétrique ) à 1024 kbits/s alors qu'un deuxième client cherche à accéder aux mêmes données au même instant à partir d'un terminal de type PDA ( Personal Digital Assistant pour assistant numérique personnel ) connecté à un modem à faible débit. Or la plupart des codeurs vidéo génèrent un seul flux compressé correspondant à l'intégralité de la séquence codée. Ainsi, si plusieurs clients souhaitent exploiter le fichier compressé pour décodage et visualisation, ils devront télécharger (ou streamer ) le fichier compressé complet. Il est donc nécessaire de proposer à ces divers utilisateurs un flux de données qui soit adapté tant en termes de débit que de résolution des images à leurs différents besoins. Cette nécessité s'impose plus largement pour toutes les applications accessibles à des clients disposant de capacités d'accès et de traitement très diverses, et notamment les applications de : service de vidéo à la demande (VOD, en anglais Video On Demand pour vidéo à la carte ), accessibles aux terminaux de radiocommunication de type UMTS ( Universal Mobile Telecommunication Service pour service de télécommunication mobile universel ), aux PC ou aux terminaux de télévision avec accès ADSL, etc ; mobilité de session (par exemple reprise sur un PDA d'une session vidéo commencée sur un téléviseur, ou, sur un mobile UMTS d'une session commencée sur GPRS ( General Packet Radio Service pour service général de radiocommunication par paquets )) ; continuité de session (dans un contexte de partage de la bande passante avec une nouvelle application) ; télévision haute définition, dans laquelle un encodage vidéo unique doit permettre de servir aussi bien des clients disposant d'une définition standard SD que des clients disposant d'un terminal à haute définition HD; visioconférence, dans laquelle un encodage unique doit répondre aux besoins de clients disposant d'un accès UMTS et d'un accès Internet ; - etc. Pour répondre à ces différents besoins, des algorithmes de codage d'images échelonnables, ou scalables , ont été développés, permettant une qualité adaptable et une résolution spatio-temporelle variable. Selon ces techniques, le codeur génère un flux compressé présentant une structure en couches. Par exemple, une première couche de données véhicule un flux à 256 kbits/s, qui pourra être décodé par un terminal de type PDA, et une deuxième couche de données complémentaire véhicule un flux de résolution supérieure à 256 kbits/s qui pourra être décodé, en complément du premier, par un terminal plus puissant de type PC. Le débit nécessaire pour le transport de ces deux couches emboîtées est dans cet exemple de 512 kbits/s. De tels algorithmes de codage sont ainsi très utiles pour toutes les applications pour lesquelles la génération d'un seul flux compressé, organisé en plusieurs couches de scalabilité, peut servir à plusieurs clients de caractéristiques différentes.
Certains de ces algorithmes de codage vidéo échelonnables, notés SVC ( Scalable video coding ), sont aujourd'hui en cours d'adoption par la norme MPEG-4 ( Moving Picture Expert Group ) AVC ( Advanced Video Coding pour codage vidéo avancé ), dans le cadre du groupe de travail JVT ( Joint Video Team ) joint entre l'ITU ( International Telecommunication Union pour Union Internationale des Télécommunications ) et l'ISO ( International Organization for Standardization pour Organisation internationale de normalisation ). Plus précisément, un flux généré par un codeur de type SVC comprend une première couche, dite couche de base, et optionnellement des couches supérieures, dites de rehaussement. Classiquement, une couche de rehaussement est codée par prédiction par rapport à une ou plusieurs couches inférieures, par exemple une couche de rehaussement inférieure ou une couche de base. 2.2 Le codeur SVC La figure 1 illustre la structure d'un tel codeur, qui présente une structure pyramidale. Les composantes d'entrée vidéo 10 subissent un sous-échantillonnage (décimation spatiale 2D référencée 11). Chacun des flux sous-échantillonnés subit ensuite une décomposition temporelle 12 de type images B hiérarchiques . Une version basse résolution de la séquence vidéo est codée jusqu'à un débit donné R_r0_max qui correspond au débit maximum décodable pour la résolution spatiale basse rO (cette version basse résolution est codée en une couche de base avec un débit R r0 min et des couches de rehaussement, jusqu'à atteindre le débit R_rO_max ; ce niveau de base est compatible AVC).
Les niveaux de résolution supérieurs sont ensuite codés par soustraction du niveau de résolution inférieur reconstruit et sur-échantillonné, et codage des résidus. Plus précisément, les blocs de décomposition temporelle 12 (filtrage de type images B hiérarchiques ) délivrent des informations de mouvement 14 qui alimentent un bloc de codage de mouvement 13, et des informations de résidu 151, 152, ou de texture 151, 152, 153, qui alimentent un module de prédiction inter-couches 16, pour la prédiction de la texture, encore appelée prédiction intra, ou du résidu, encore appelée prédiction résiduelle. Les données prédites, en sortie du module de prédiction inter-couches 16, alimentent un bloc 17 de transformation et de codage entropique. Les données issues de ce bloc 17 servent notamment à réaliser une interpolation spatiale 2D 18 depuis le niveau de résolution inférieur. Finalement, un module de multiplexage 19 ordonne les différents sous-flux générés dans un flux de données compressé global 20. 2.3 Interpolation spatiale 2D Plus précisément, dans la norme MPEG-4 SVC, une étape de sur-échantillonnage est nécessaire lorsqu'une prédiction inter-couches est effectuée entre deux couches de résolutions spatiales différentes. Cette étape de sur-échantillonnage permet de mettre le résidu et/ou la texture d'une image de résolution inférieure à la même résolution que l'image courante, afin d'utiliser ce résidu ou cette texture sur-échantillonné(e) comme prédiction pour le résidu ou la texture de l'image courante. Côté codage, cette mise à l'échelle est mise en oeuvre dans le bloc d'interpolation spatiale 2D 18 de la figure 1. En particulier, on peut noter que selon qu'on réalise une prédiction intra ou une prédiction résiduelle, les filtres de sur-échantillonnage mis en oeuvre dans le bloc d'interpolation spatiale 2D 18 sont différents. Plus précisément, on utilise pour la prédiction de la texture un filtre de type 4-tap , dont les coefficients sont fixés dans la norme avec seize phases de filtre. Pour la prédiction du résidu, un filtre de type bilinéaire est utilisé. Par exemple, l'utilisation de tels filtres permet d'améliorer les effets visuels des placages de textures, en interpolant de nouveaux pixels entre deux pixels horizontaux et deux pixels verticaux. Dans la version actuelle de la norme (document JVT-V201 de T. Wiegand, G. Sullivan, J. Reichel, H. Schwarz, M. Wien, Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, (ISO/IEC JTC1/SC29/WG11 and ITU-T SG16 Q.6), 22eme Meeting: Marrakech, Maroc, 13-19 janvier 2007, Joint Draft 9 of SVC Amendment), des équations sont spécifiées afin de calculer la position d'un pixel d'une image sur-échantillonnée (c'est-à-dire d'une image présentant un niveau de résolution supérieure par rapport à une image courante), dans l'image courante, en fonction du ratio entre les résolutions. Autrement dit, l'image courante correspond à une image de base, présentant un niveau de résolution inférieur. Cette position est classiquement calculée à une précision sous-pixellique au 16eme de pixels. Par exemple, la figure 2A illustre la position des pixels 211, 212 et 213 d'une image présentant une résolution N+1 référencée 21, dans la même image présentant une résolution N référencée 22. La résolution N+1 21 est supérieure à la résolution N 22, selon un facteur 3/2, ce qui signifie que deux pixels 221, 222 de l'image présentant une résolution N 22 sont mis en correspondance avec trois pixels 211, 212 et 213 de l'image présentant une résolution N+1 21. Par exemple, la résolution N 22 correspond à un niveau de base 1920x1088 pixels, et la résolution N+1 21 correspond à un niveau de rehaussement de 2880x1632 pixels. De manière générale, la position sous-pixellique d'un pixel (encore appelé point) est décomposée en la position du pixel inférieur le plus proche dans le niveau de résolution inférieur et par le décalage par rapport à ce pixel exprimé en intervalle, ou distance, sous-pixellique. Par exemple, à une précision au 16ème de pixel, seize intervalles sous-pixelliques sont possibles correspondant à quinze positions sous-pixelliques entre deux positions pixelliques entières. Ainsi, pour une précision au 16ieme de pixel, la position du pixel 211 à la résolution N+1 21, dans l'image à la résolution N 22, est définie par la position du pixel 221 à la résolution N 22, décalé de trois intervalles sous-pixelliques. La position du pixel 212 à la résolution N+1 21, dans l'image à la résolution N 22, est définie par la position du pixel 221 à la résolution N 22, décalé de treize intervalles sous-pixelliques. La position du pixel 213 à la résolution N+1 21, dans l'image à la résolution N 22, est définie par la position du pixel 222 à la résolution N 22, décalé de huit intervalles sous-pixelliques. La phase du filtre 4-tap (prédiction de texture) et les pondérations du filtre bilinéaire (prédiction de résidu) sont dépendantes de cette position des pixels de l'image de résolution supérieure, dans l'image de résolution inférieure. En considérant la figure 2A et une prédiction intra, les phases du filtre 4 tap utilisé pour le sur-échantillonnage sont donc une phase égale à trois pour le pixel 211, égale à treize pour le pixel 212, et égale à huit pour le pixel 213. Pour une prédiction résiduelle, les pondérations du filtre bilinéaire sont respectivement égales à 13/16 et 3/16 pour les deux premiers pixels 221 et 222 à la résolution N 22 lors du sur-échantillonnage du pixel 211, puis 3/16 et 13/16 pour les pixels 221 et 222 à la résolution N 22 lors du sur-échantillonnage du pixel 212, puis 8/16 et 8/16 pour les pixels 222 et 223 à la résolution N 22 lors du sur-échantillonnage du pixel 213, etc. De manière générale, lorsqu'on utilise une précision infinie, on observe, quel que soit le filtre utilisé, un schéma répétitif des positions sous-pixelliques définies par les pixels de l'image de résolution supérieure N+l 21 dans l'image de résolution inférieure N 22. Cette période r , ou motif de répétition du schéma, varie selon le facteur entre les résolutions. Par exemple, en reprenant l'exemple de la figure 2A et comme illustré en figure 2B, les décalages de trois, treize, et huit positions sous-pixelliques se répètent selon une période r = 3.
Ainsi, connaissant : la position d'un pixel dans l'image sur-échantillonnée (c'est-à-dire la position des pixels 211, 212 et 213 dans l'image de résolution supérieure N+1 21) ; et le ratio entre les niveaux de résolution (par exemple un ratio de 3/2 entre le niveau N+l de résolution 21 et le niveau N de résolution 22) ; il est possible de prédire la position sous-pixellique de ce pixel dans l'image de résolution inférieure (c'est-à-dire la position des pixels 211, 212 et 213 dans l'image de résolution inférieure N 22). Ceci permet de prédire la phase du filtre 4-tap mis en oeuvre pour une prédiction intra, ou les pondérations du filtre bilinéaire mis en oeuvre pour une prédiction résiduelle. Par exemple, afin de réduire la complexité de mise en oeuvre du codage/décodage SVC pour certains facteurs entre les résolutions fréquemment utilisés (par exemple 3/2), il est possible de connecter directement (en hardware) les phases du filtre utilisé. Malheureusement, selon la méthode de calcul que l'on utilise pour obtenir la position sous-pixellique d'un point dans l'image de résolution inférieure, par exemple avec les équations actuelles de la norme SVC, lorsque l'on opère sur de grandes résolutions (en haute définition HD par exemple), on observe une déviation dans les motifs de répétition des positions sous-pixelliques atteintes par les pixels de l'image de résolution supérieure dans l'image de résolution inférieure. Cette déviation est due aux erreurs d'arrondis dans le calcul des positions sous-pixelliques défini dans la norme. Par exemple, pour une résolution de base de 1920x1088 et un rehaussement de 2880x1632, le facteur (ou ratio) entre les résolutions est de 3/2. Comme illustré en figure 2A, les phases du filtre 4-tap utilisées seraient idéalement avec une précision infinie égales à trois, huit et treize. Or, à partir de la position d'un certain macrobloc, on observe que les positions sous-pixelliques dans l'image de résolution inférieure obtenues par le calcul défini dans la norme sont égales à trois, huit et quatorze. Il n'est alors plus possible de prédire les phases pour ce ratio. On rappelle qu'un macrobloc comprend classiquement 16x16 pixels. Ainsi, ces techniques classiques de détermination des caractéristiques des filtres 4-tap ou bilinéaire génèrent un biais, ce qui est problématique pour une mise en oeuvre efficace du codage et/ou décodage d'images. 3. Exposé de l'invention L'invention propose une solution nouvelle qui ne présente pas l'ensemble de ces inconvénients de l'art antérieur, sous la forme d'un procédé de sur-échantillonnage pour le décodage d'un flux de données représentatif d'au moins une image, et présentant une organisation en couches de données comprenant au moins une couche de rehaussement, une couche de rehaussement correspondant à un niveau de résolution supérieur d'une image dudit flux par rapport au niveau de résolution d'une couche précédente, dit niveau de résolution inférieur, les données de la couche de rehaussement étant codées par prédiction à partir de données d'au moins une couche précédente correspondant à un niveau de résolution inférieur. Selon l'invention, un tel procédé de sur-échantillonnage comprend : pour une séquence d'au moins une image prise à un niveau de résolution inférieur, une première étape de détermination de la position, dite position sous-pixellique, d'au moins un pixel de chacune des images de ladite séquence, prises à un niveau de résolution supérieur ; une étape de mémorisation de ladite au moins une position sous-pixellique dans au moins une table de sur-échantillonnage ; - pour au moins une image de ladite séquence prise à un niveau de résolution supérieur, et pour au moins un pixel donné de ladite image, une deuxième étape de détermination d'une position sous-pixellique dudit au moins un pixel donné, dans ledit niveau de résolution inférieur de ladite image, à partir : ^ d'une position sous-pixellique d'un pixel de référence dans l'image à un niveau de résolution inférieur, déterminée à partir d'une lecture de ladite au moins une table de sur-échantillonnage, et ^ d'un décalage représentatif de la distance entre les positions sous-pixelliques desdits pixels donné et de référence, déterminé à partir d'une lecture de ladite au moins une table de sur-échantillonnage. Ainsi, l'invention propose une nouvelle technique de sur-échantillonnage qui ne génère pas de déviation due aux erreurs d'arrondis dans les filtres utilisés pour le sur-échantillonnage. Pour ce faire, le procédé selon l'invention comprend deux phases principales : une phase de pré-calcul d'une ou plusieurs tables de sur- échantillonnage, correspondant à la première étape de détermination et à l'étape de mémorisation, et une phase de sur-échantillonnage, correspondant à la deuxième étape de détermination. La phase de pré-calcul permet donc de déterminer les positions sous- pixelliques de pixels de référence, encore appelés points de référence. Il est bien entendu que les positions sous-pixelliques peuvent être mémorisées dans une table de sur-échantillonnage de manière directe ou indirecte, par exemple par le biais d'un index permettant d'accéder à la position souspixellique.
Ensuite, la phase de sur-échantillonnage permet de déterminer la position sous-pixellique d'un autre pixel, dit pixel donné, dans le niveau de résolution inférieur de l'image, à partir d'une lecture de la ou des tables de sur-échantillonnage. Par exemple, la lecture d'une table peut donner directement la valeur d'une position sous-pixellique. Elle peut également stocker une information permettant d'accéder à la position sous-pixellique, à l'aide d'un index par exemple. Autrement dit, lors de la phase de sur-échantillonnage, on calcule pour un pixel donné de l'image au niveau de résolution supérieur, sa position souspixellique dans le niveau de résolution inférieur à partir : de la position sous-pixellique dans le niveau de résolution inférieur d'un pixel de référence, précédemment déterminée et mémorisée dans la table de sur-échantillonnage ; et d'un décalage, ajouté à la position sous-pixellique de référence dans le niveau de résolution inférieur.
Plus précisément, ce décalage est associé à la distance entre le pixel donné et le pixel de référence dans le niveau de résolution supérieur. Ce décalage, dans le niveau de résolution inférieur, est déterminé à partir d'une lecture dans une table de sur-échantillonnage. Selon une caractéristique particulière de l'invention, ladite deuxième étape de détermination met en oeuvre un ajout, à ladite position sous-pixellique d'un pixel de référence, dudit décalage représentatif de la distance entre les positions sous-pixelliques desdits pixels donné et de référence. On détermine ainsi la position sous-pixellique du pixel donné dans le niveau de résolution inférieur.
Selon une variante de réalisation, les positions sous-pixelliques étant représentées par un ensemble de bits, la position sous-pixellique dudit pixel de référence dans l'image à un niveau de résolution inférieur est obtenue par ajouts de décalages représentatifs de distances pixelliques dans l'image à un niveau de résolution supérieure, pré-calculés en puissance de deux, lesdits ajouts dépendant de la valeur des bits dudit ensemble représentatif de la position dudit pixel de référence. Selon un aspect particulier de l'invention, les pixels de ladite au moins une image sont organisés en lignes et colonnes, et ladite étape de mémorisation met en oeuvre deux tables de sur-échantillonnage : une première table (Tx) mémorisant la position d'au moins un pixel de ladite image à un niveau de résolution supérieur, dans ladite image à un niveau de résolution inférieur, suivant une ligne de ladite image, et une deuxième table (Ty) mémorisant la position d'au moins un pixel de ladite image à un niveau de résolution supérieur, dans ladite image à un niveau de résolution inférieur, suivant une colonne de ladite image. L'invention permet ainsi de pré-calculer plusieurs tables par groupe d'images, par exemple une première table correspondant aux positions sous- pixelliques selon l'axe x des images, et une deuxième table correspondant aux positions sous-pixelliques selon l'axe y des images. Selon un mode de réalisation particulier de l'invention, les positions souspixelliques respectent un motif de répétition, et ladite table présente une longueur supérieure ou égale à la longueur dudit motif de répétition. Plus précisément, les positions sous-pixelliques peuvent respecter un motif de répétition distinct selon les différents axes de l'image. Dans ce cas, les tables de sur-échantillonnage définies selon chacun des axes peuvent présenter des longueurs différentes. Il est ainsi possible de ne mémoriser dans une table de sur-échantillonnage que les positions sous-pixelliques correspondant à un seul motif de répétition (ou une seule période), et d'appeler cette table à chaque nouveau motif. La longueur d'une table peut alors être la période, un multiple de la période ou la taille de l'image selon un des axes de l'image. En particulier, la longueur du motif de répétition peut être signalée dans un paquet de données (NALU) dudit flux, au moyen d'indicateur (par exemple un élément binaire) inséré dans le paquet. On rappelle qu'un flux SVC est organisé en AUs ("Access Units" pour Unités d'Accès) correspondant chacune à un instant temporel donné et comprenant une ou plusieurs NALUs ("Network Abstraction Layer Units" pour Unités d'Accès pour le réseau), ou paquets de données. Ainsi, la période, et éventuellement les phases associées aux filtres mis en oeuvre lors de la phase de sur-échantillonnage, sont signalées dans le flux.
Ces informations sont, par exemple insérées dans un paquet de données de signalisation SPS ( Sequence Parameter Set ), ou dans un paquet de données d'images PPS ( Picture Parameter Set ), ou encore dans un en-tête de slice ( suce header ), où une suce regroupe un ensemble de macroblocs d'une image pour un niveau de représentation (par exemple niveau de représentation spatiale), etc. Selon un autre mode de réalisation, l'étape de première détermination des positions sous-pixelliques met en oeuvre un algorithme de type Bresenham. Les troisième et quatrième modes de réalisation décrits ci-après sont notamment basés sur une adaptation de l'algorithme de Bresenham. Notamment, le troisième mode de réalisation met en oeuvre une adaptation de l'algorithme de Bresenham lors de la première étape de détermination des positions souspixelliques uniquement, tandis que le quatrième mode de réalisation met en oeuvre une adaptation de cet algorithme lors des première et deuxième étapes de détermination des positions sous-pixelliques. En particulier, le procédé de sur-échantillonnage selon l'invention met en oeuvre un filtre appartenant au groupe comprenant : un filtre bilinéaire, un filtre à quatre coefficients, dit 4-tap .
Comme déjà indiqué en relation avec l'art antérieur, le filtre bilinéaire permet de réaliser une prédiction de résidu, encore appelée prédiction résiduelle, tandis que le filtre 4-tap permet de réaliser une prédiction de texture, encore appelée prédiction intra. Selon une variante de réalisation, le flux de données comprend une information indiquant qu'une mémorisation des positions sous-pixelliques dans au moins une table est effectuée. Cet indicateur est par exemple un élément binaire inséré dans un paquet de données NALU du flux. Par exemple, l'utilisation de tables de sur-échantillonnage est signalée à l'aide d'un indicateur inséré dans un paquet de données de signalisation SPS, ou dans un paquet de données d'images PPS, ou encore dans un en-tête de slice, etc. L'invention concerne également sous une autre forme de réalisation un dispositif de décodage d'un flux de données représentatif d'au moins une image, et présentant une organisation en couches de données comprenant au moins une couche de rehaussement correspondant. Un tel dispositif de décodage comprend des moyens de sur-échantillonnage comprenant : pour une séquence d'au moins une image prise à un niveau de résolution inférieur, des moyens de détermination de la position, dite position souspixellique, d'au moins un pixel de chacune des images de ladite séquence, prises à un niveau de résolution supérieur ; des moyens de mémorisation de ladite au moins une position souspixellique dans au moins une table de sur-échantillonnage ; pour au moins une image de ladite séquence prise à un niveau de résolution supérieur, et pour au moins un pixel donné de ladite image, des moyens de détermination d'une position sous-pixellique dudit au moins un pixel donné, dans ledit niveau de résolution inférieur de ladite image, à partir : ^ d'une position sous-pixellique d'un pixel de référence dans l'image à un niveau de résolution inférieur, déterminée à partir d'une lecture de ladite au moins une table de sur-échantillonnage, et ^ d'un décalage représentatif de la distance entre les positions sous-pixelliques desdits pixels donné et de référence, 25 déterminé à partir d'une lecture de ladite au moins une table. Un tel dispositif de décodage est notamment adapté à mettre en oeuvre le procédé de décodage décrit précédemment. Il s'agit par exemple d'un téléviseur, d'une set top box , d'un ordinateur, .... 30 Un autre aspect de l'invention concerne également un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, comprenant des instructions de code de programme pour la mise en oeuvre du procédé de sur-échantillonnage décrit précédemment, dans un décodeur.
Un autre aspect de l'invention concerne un procédé de codage d'au moins une image, délivrant un flux de données présentant une organisation en couches de données comprenant au moins une couche de rehaussement. Un tel procédé de codage comprend : pour une séquence d'au moins une image prise à un niveau de résolution inférieur, une première étape de détermination de la position, dite position sous-pixellique, d'au moins un pixel de chacune des images de ladite séquence prises à un niveau de résolution supérieur ; une étape de mémorisation de ladite au moins une position sous-pixellique dans au moins une table de sur-échantillonnage ; - pour au moins une image de ladite séquence prise à un niveau de résolution supérieur, et pour au moins un pixel donné de ladite image, une deuxième étape de détermination d'une position sous-pixellique dudit au moins un pixel donné, dans ledit niveau de résolution inférieur de ladite image, à partir : ^ d'une position sous-pixellique d'un pixel de référence dans l'image à un niveau de résolution inférieur, déterminée à partir d'une lecture de ladite au moins une table de sur-échantillonnage, et ^ d'un décalage représentatif de la distance entre les positions sous-pixelliques desdits pixels donné et de référence, déterminé à partir d'une lecture de ladite au moins une table de sur-échantillonnage. Les avantages du procédé de codage sont les mêmes que ceux du procédé de décodage et ne sont pas décrits plus en détail.
L'invention concerne également sous une autre forme de réalisation undispositif de codage d'au moins une image, délivrant un flux de données présentant une organisation en couches de données comprenant au moins une couche de rehaussement. Un tel dispositif de codage comprend des moyens de sur-échantillonnage 5 comprenant : pour une séquence d'au moins une image prise à un niveau de résolution inférieur, des moyens de détermination de la position, dite position souspixellique, d'au moins un pixel de chacune des images de ladite séquence, prises à un niveau de résolution supérieur ; 10 - des moyens de mémorisation de ladite au moins une position sous-pixellique dans au moins une table de sur-échantillonnage ; pour au moins une image de ladite séquence prise à un niveau de résolution supérieur, et pour au moins un pixel donné de ladite image, des moyens de détermination d'une position sous-pixellique dudit au moins un 15 pixel donné, dans ledit niveau de résolution inférieur de ladite image, à partir : ^ d'une position sous-pixellique d'un pixel de référence dans l'image à un niveau de résolution inférieur, déterminée à partir d'une lecture de ladite au moins une table de sur- 20 échantillonnage, et ^ d'un décalage représentatif de la distance entre les positions sous-pixelliques desdits pixels donné et de référence, déterminé à partir d'une lecture de ladite au moins une table de sur-échantillonnage. 25 Un tel dispositif de codage est notamment adapté à mettre en oeuvre le procédé de codage décrit précédemment. Il s'agit par exemple d'un serveur de diffusion, comme un serveur de vidéo à la demande. Un autre aspect de l'invention concerne également un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré 30 sur un support lisible par ordinateur et/ou exécutable par un processeur, comprenant des instructions de code de programme pour la mise en oeuvre du procédé de sur-échantillonnage décrit précédemment, dans un codeur. 4. Liste des figures D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation particulier, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : la figure 1, déjà décrite en relation avec l'art antérieur, présente un codeur de type SVC; - les figures 2A et 2B, également décrites en relation avec l'art antérieur, illustrent la position de pixels d'une image entre deux niveaux de résolution différents de la même image ; la figure 3 illustre les principales étapes du procédé de sur-échantillonnage, pour le décodage d'un flux présentant une organisation en couches de données; la figure 4 présente plus précisément l'algorithme de sur-échantillonnage mis en oeuvre au décodage ; la figure 5 illustre les couches de base et de rehaussement, et les relations entre les différentes variables utilisées. 5. Description d'un mode de réalisation de l'invention 5.1 Notations On indique ci-après, en relation avec la figure 5, les notations utilisées dans la suite de la description. On considère pour ce faire que les pixels des images sont organisés en lignes et en colonnes, une image comprenant un ensemble de macroblocs comprend seize lignes et seize colonnes, soit 16x16 pixels. On considère également qu'une image donnée présente différents niveaux de résolution, par exemple un niveau (ou couche) de base 51, noté niveau de résolution inférieur, et un niveau (ou couche) de rehaussement 53, noté niveau de résolution supérieur.
Ainsi : soit (xP, yP) la position d'un pixel situé sur la première ligne et la première colonne (soit en haut à gauche) d'un macrobloc d'une image à un niveau de résolution supérieur ; soit k un entier variant de 0 à 15, où k traduit la position selon l'axe x (numéro de colonne) ou l'axe y (numéro de ligne) d'un pixel dans le référentiel du macrobloc auquel il appartient. La position du pixel dans l'image sur-échantillonnée, c'est-à-dire dans l'image à un niveau de résolution supérieur, est alors k+xP selon l'axe x et k+yP selon l'axe y ; soient RxBase et RyBase les niveaux de résolution de la couche de base, respectivement selon les axes x et y ; soient RxEnh et RyEnh les niveaux de résolution de la partie 53 de la couche de rehaussement complète effectivement prédite par la couche de base, respectivement selon les axes x et y. Dans la suite de la description, on nomme cette partie couche de rehaussement; - soient RxEnhR et RyEnhR les niveaux de résolution de la couche de rehaussement complète codée ou à coder, respectivement selon les axes x et y ; soient Tx une table de sur-échantillonnage selon l'invention, permettant de mémoriser la position d'au moins un pixel de l'image à un niveau de résolution supérieur dans l'image à un niveau de résolution inférieur suivant l'axe x, et Ty une table de sur-échantillonnage selon l'invention, permettant de mémoriser la position d'au moins un pixel de l'image à un niveau de résolution supérieur dans l'image à un niveau de résolution inférieur suivant l'axe y.
On considère également les variables ScaledBaseLeftOffset, ScaledBaseTopOffset, deltaX, deltaY, baseRefX et baseRefY définies dans le document JVT-V201 précité. Plus précisément, les numéros d'équations entre parenthèses font référence à cette norme. Plus précisément, la variable ScaledBaseLeftOffset est définie par : ScaledBaseLeftOffset = 2 * scaled_base_left_offset (équation G.49) où la variable scaled_base_left_offset correspond au décalage horizontal entre le pixel localisé sur la première ligne et la première colonne (c'est-à-dire le plus en haut et le plus à gauche) de l'image de résolution inférieure (RxBase,RyBase) mise à l'échelle de la résolution supérieure (RxEnh,RyEnh), et le pixel localisé sur la première ligne et la première colonne (c'est-à-dire le plus en haut et le plus à gauche) de l'image de rehaussement complète codée et de résolution (RxEnhR, RyEnhR). Ce décalage est exprimé dans la norme en unité de deux pixels de l'image. La variable ScaledBaseTopOffset est définie par : ScaledBaseTopOffset = 2 * scaled_base_top_offset * (2 - frame_mbs_only jlag) (équation G.51) où la variable scaled_base_top_offset correspond au décalage vertical entre le pixel localisé sur la première ligne et la première colonne (c'est-à-dire le plus en haut et le plus à gauche) de l'image de résolution inférieure mise à l'échelle de la résolution supérieure, et le pixel localisé sur la première ligne et la première colonne (c'est-à-dire le plus en haut et le plus à gauche) de l'image de rehaussement complète codée et de résolution (RxEnhR, RyEnhR). Ce décalage est exprimé en unité de deux pixels de l'image. La variable frame_mbs_only_flag correspond quant à elle à un élément binaire de la syntaxe spécifiant si l'image de résolution supérieure correspond à une image progressive ou entrelacée. Ainsi, comme illustré sur la figure 5, les variables ScaledBaseLeftOffet (SBLO) et ScaledBaseTopOffset (SBTO) représentent le décalage dans l'image de la couche de rehaussement complète 52 de la partie prédite 53 de cette image. On rappelle que la figure 5 illustre les couches de base 51 et de rehaussement (52, 53), et les relations entre les différentes variables de résolution utilisées. On se place ici dans le cas général où seule une partie 53 de l'image de la couche de rehaussement 52 est prédite par la couche de base 51. La variable deltaX est définie par : deltaX = ((BasePicWidth 16) + (ScaledBaseWidth 1)) / ScaledBaseWidth (équation G.166) où les variables BasePicWidth et ScaledBaseWidth correspondent à respectivement à RxBase et RxEnh. L'opération n correspond à la multiplication par deux à la puissance n. La variable deltaY est définie par : deltaY = ((BasePicHeight 16) + (ScaledBaseHeight 1))/ScaledBaseHeight (équation G.167) où les variables BasePicHeight et ScaledBaseHeight correspondent à respectivement RyBase et RyEnh. La variable baseRefX est définie par : baseRefX = ((BasePicWidth 15) + (ScaledBaseWidth 1)) / ScaledBaseWid th + 2048 (Equation G.168) La variable baseRefY est définie par : baseRefY = ((BasePicHeight 15) + (ScaledBaseHeight 1)) / ScaledBaseH eight + 2048 (Equation G.169) 5.2 Principe général Le principe général de l'invention repose sur la détermination d'une ou plusieurs tables de sur-échantillonnage, permettant de pallier les inconvénients des techniques classiques, et notamment les erreurs dues au problème d'arrondi. Plus précisément, l'invention permet de mémoriser, dans des tables de sur- échantillonnage, des positions des pixels d'une image présentant un niveau de résolution supérieur, selon un des axes de l'image, dans cette même image présentant un niveau de résolution inférieur, à la précision du 161ème de pixel. Lors de l'opération de sur-échantillonnage, il est ainsi possible d'inférer à partir de cette (ces) table(s) et d'un décalage, qui peut être nul, la position d'un pixel donné de l'image de résolution supérieure dans l'image de résolution inférieure. Côté décodeur, on considère plus précisément un flux de données représentatif d'au moins une image, et présentant une organisation en couches de données comprenant au moins une couche de rehaussement.
Plus précisément, une couche de rehaussement correspond à un niveau de résolution supérieur d'une image du flux par rapport au niveau de résolution d'une couche précédente, dit niveau de résolution inférieur. Ainsi, les données de la couche de rehaussement sont codées par prédiction à partir de données d'au moins une couche précédente correspondant à un niveau de résolution inférieur. Comme illustré en figure 3, un procédé de sur-échantillonnage selon l'invention comprend trois étapes principales. Au cours d'une première étape de détermination 31, on détermine, pour une séquence comprenant au moins une image, et pour chaque image de la séquence, la position d'au moins un pixel de l'image à un niveau de résolution supérieur, dans l'image à un niveau de résolution inférieur. Cette position dans le niveau de résolution inférieure est notée position sous-pixellique. Les positions sous-pixelliques associées aux pixels des images de la séquence à un niveau de résolution supérieur sont alors mémorisées, dans une ou plusieurs table de sur-échantillonnage, au cours d'une étape de mémorisation 32. Par exemple, la table Tx permet de mémoriser les positions sous-pixelliques selon les colonnes d'une image, et la table Ty permet de mémoriser les positions souspixelliques selon les lignes d'une image. Ensuite, pour au moins une image de la séquence, et pour au moins un pixel donné de l'image à un niveau de résolution supérieur, on détermine au cours d'une deuxième étape de détermination 33 une position sous-pixellique du pixel donné dans le niveau de résolution inférieur. On travaille ici image par image. La position sous-pixellique du pixel donné, dans le niveau de résolution inférieur, est déterminée à partir : o d'une position sous-pixellique d'un pixel de référence dans l'image à un niveau de résolution inférieur, déterminée à partir d'une lecture de ladite au moins une table de sur-échantillonnage, et o d'un décalage représentatif de la distance entre les positions souspixelliques desdits pixels donné et de référence, déterminé à partir d'une lecture de ladite au moins une table de sur-échantillonnage. Autrement dit, en se référant par exemple à la figure 2A, pour un pixel donné 212 de l'image au niveau de résolution supérieur 21, on calcule sa position sous-pixellique dans le niveau de résolution inférieur à partir : de la position sous-pixellique dans le niveau de résolution inférieur d'un pixel de référence (par exemple le pixel 211 dans le niveau de résolution supérieur), précédemment calculée dans la table de sur- échantillonnage ; et d'un décalage, ajouté à la position sous-pixellique de référence dans le niveau de résolution inférieur. Plus précisément, ce décalage, dans le niveau de résolution inférieur, est calculé à partir d'une lecture dans la table. Ce décalage est associé à la distance, dans le niveau de résolution supérieur 21, entre le pixel donné (212) et le pixel de référence (211). Ainsi, l'invention propose, selon ses différents modes de réalisation, de pré-remplir une ou plusieurs tables de sur-échantillonnage comprenant les positions de l'image de résolution supérieure à la précision du 16ième de pixel dans l'image de résolution inférieure. En particulier, l'invention permet de tenir compte des motifs de répétition des positions sous-pixelliques, ce qui permet, selon certains modes de réalisation, de mémoriser dans une table les positions sous-pixelliques pour une seule période (qui correspond à un seul motif de répétition), et d'appeler cette table à chaque nouveau motif. La longueur d'une table peut alors être la période, un multiple de la période ou la taille de l'image selon un des axes de l'image. Côté codage, l'invention trouve également des applications lorsqu'une prédiction inter-couches est effectuée entre deux couches de résolution spatiales différentes. L'opération de sur-échantillonnage présente donc les mêmes intérêts au niveau du codage que ceux cités au niveau du décodage.
En effet, le même problème de précision peut apparaître au niveau codage lors de l'opération de sur-échantillonnage. De plus, la mise en oeuvre de l'invention côté codage permet de fournir un flux codé conforme à la norme décrite, c'est-à-dire dont le décodage, par des décodeurs différents dits conformes à la norme, produit le même résultat. L'invention trouve donc des applications dans la norme MPEG-4 SVC, amendement de MPEG-4 AVC, ainsi que dans tout système nécessitant une étape de sur-échantillonnage avec un ratio pouvant être quelconque. L'invention trouve ainsi des applications côté codeur et/ou décodeur, que le codeur mette en oeuvre le procédé de sur-échantillonnage selon l'invention et pas le décodeur, ou vice-versa. Par ailleurs, on note que dans les exemples décrits ci-après on cherche à déterminer un algorithme de sur-échantillonnage à appliquer entre une couche de base et une couche de rehaussement. Cet exemple n'est bien entendu pas limitatif, et l'invention s'applique également à la détermination d'un algorithme de sur-échantillonnage à appliquer entre deux couches de rehaussement. Il convient alors de remplacer les références à la couche de base par une référence à une couche de rehaussement précédente. De plus, les exemples présentés ci-après s'appliquent au calcul de position d'un pixel de luminance. De la même manière, des tables peuvent être pré-définies pour déterminer les positions de pixels de chrominance, en utilisant les équations correspondantes de la norme concernant ces positions (document JVTV201 précité). 5.3 Premier mode de réalisation On décrit ci-après un premier mode de réalisation de l'invention, dans lequel l'étape de mémorisation met en oeuvre deux tables de sur-échantillonnage Tx et Ty, de longueurs respectivement égales au nombre de colonnes et au nombre de lignes d'une image donnée, correspondant à un niveau de résolution supérieur par rapport au niveau de résolution d'une couche précédente (dit de niveau de résolution inférieur).
Autrement dit, les positions sous-pixelliques des pixels de l'image de résolution supérieure dans l'image de résolution inférieure sont pré-calculées dans les tables Tx et Ty sur la taille de l'image de résolution supérieure selon chaque axe x et y.
La première étape de détermination, l'étape de mémorisation des positions sous-pixelliques et la deuxième étape de détermination sont effectuées au début du décodage d'un flux de données représentatif d'au moins une image, lorsque les différents niveaux de résolution entre les couches inter-dépendantes sont connus. Plus précisément, la première étape de détermination des positions sous- l0 pixelliques comprend une première sous-étape consistant à calculer, selon chaque axe x et y, la période, ou la longueur, du motif de répétition des positions souspixelliques, en tenant compte des niveaux de résolution inférieur (couche de base) et supérieur (couche de rehaussement). Ainsi, en notant : 15 Px et Py les périodes selon les axes x et y respectivement ; PGCDX le plus grand commun diviseur entre RxEnh et RxBase ; et PGCDY le plus grand commun diviseur entre RyEnh et RyBase ; alors les périodes Px et Py sont données par : Px = RxEnh/PGCDX 20 Py = RyEnh/PGCDY Au cours d'une deuxième sous-étape, les positions sous-pixelliques de pixels de référence dans l'image de résolution inférieure sont déterminées selon chaque axe x et y, en utilisant les équations définies dans le document JVT-V201 précité, puis mémorisées dans les tables Tx et Ty au cours de l'étape de :25 mémorisation. Ainsi, selon ce premier mode de réalisation, les tables Tx et Ty sont de la taille de l'image de résolution supérieure, c'est-à-dire respectivement de taille RxEnh et RyEnh. On note : 30 dx = ((((16*Px-ScaledBaseLeftOffset)*deltaX+baseRefX) 12)-8) -(((ScaledBaseLeftOffset*deltaX+baseRefX) 12)-8) et dy = ((((16*Py-ScaledBaseTopOffset)*deltaY+baseRefY) 12)-8) ù (((ScaledBaseTopOffset*deltaY+baseRefY) 12)-8) alors la table Tx est remplie comme suit : pour chaque x allant de ScaledBaseLeftOffset à Px+ScaledBaseLeftOffset, Tx[x] = ((((x-ScaledBaseLeftOffset)*deltaX+baseRefX) 12)-8) et la table Ty est remplie comme suit : pour chaque x allant de ScaledBaseTopOffset à Py+ScaledBaseTopOffset, Ty[x] = (((((x-ScaledBaseTopOffset)*delta Y+baseRefY) 12)-8) La deuxième étape de détermination des positions sous-pixelliques des autres pixels (pixel donné) est effectuée comme décrit ci-après. Les positions sous-pixelliques ainsi déterminées sont mémorisées dans les tables Tx et Ty : pour chaque x allant de ScaledBaseLeftOffset à Px+ScaledBaseLeftOffset pour y allant de x à RXEnh si y+Px < RXEnh alors Tx[y+Px] = Tx[y] + dx y=y+Px pour y allant de x à RYEnh si y + Py < RYEnh alors Ty [y+Py] = Ty[y] + dy y=y+Py où l'opérateur n est représentatif d'un décalage de n bits vers la droite, qui correspond à une opération de division par deux à la puissance n. Les tables Tx et Ty ainsi pré-définies permettent de déterminer un filtre de sur-échantillonnage à appliquer à l'image de résolution inférieure. Cette pré- détermination des tables peut être mise en oeuvre une seule fois, au début du décodage d'un flux de données. En plus de régler le problème d'arrondis dans les grandes résolutions mentionné en relation avec l'art antérieur, l'utilisation de tables de sur-échantillonnage permet de simplifier le processus de calcul des phases ou pondérations lors d'une étape de sur-échantillonnage d'une image ou d'un macrobloc. En effet, ces tables de sur-échantillonnage permettent, lors d'une étape ultérieure de sur-échantillonnage, d'appliquer la phase (pour une prédiction de la texture) ou les pondérations (pour une prédiction du résidu) correspondantes selon la position du pixel dans l'image sur-échantillonnée. Autrement dit, cette étape de sur-échantillonnage permet de mettre le résidu et/ou la texture de l'image de résolution inférieure à la même résolution que l'image courante, afin d'utiliser ce résidu ou cette texture sur-échantillonné(e) comme prédiction pour le résidu ou la texture de l'image courante.
Plus précisément, l'étape de sur-échantillonnage peut être effectuée pour chaque image de résolution supérieure qui dépend par prédiction de texture ou de résidu d'une image de résolution inférieure. Elle peut être appelée une fois pour toute l'image, ou une fois par macrobloc. L'étape de sur-échantillonnage se définit alors de la manière suivante, pour un macrobloc xP,yP de l'image de résolution supérieure. Soit x,y allant de 0 à 15. La position entière posIntX de x, et posIntY de y dans l'image de résolution inférieure est alors obtenue par : posIntX = Tx[x+xP] 4 posIntY = Ty[y+yP] 4 On entend par position entière la position d'un pixel de l'image à un niveau de résolution inférieure dans cette image. Il s'agit donc d'une position pixellique , distincte d'une position sous-pixellique , qui correspond à une précision au 16ème de pixel.
Plus précisément, on utilise pour la prédiction de texture un filtre de type 4-tap . Les phases PhX et PhY du filtre 4-tap, selon les axes x et y respectivement, sont alors données par : PhX= (Tx[x+xP]+16)% 16 PhY= (Ty[y+yP]+16)%16 où l'opérateur % correspond à l'opérateur modulo.
Pour la prédiction du résidu, on utilise un filtre bilinéaire dont les pondérations wXl, wX2 et wYl, wY2 sont données par si (x == 0) alors wXl = 16 et wX2 = 0 sinon wXl = 16-Tx[x+xP]%16 et wX2 = Tx[x+xP]%16 si (y == 0) alors wYl = 16 et wY2 = 0 sinon wYl = 16-Ty[y+yP]%16 et wY2 = Ty[y+yP]%16 5.4 Deuxième mode de réalisation On décrit ci-après un deuxième mode de réalisation de l'invention, dans lequel l'étape de mémorisation met en oeuvre deux tables de sur-échantillonnage Tx et Ty, de longueurs égales à un multiple de la longueur d'un motif de répétition, respectivement selon les axes x et y. Autrement dit, les positions sous-pixelliques des pixels de l'image de résolution supérieure dans l'image de résolution inférieure sont pré-calculées dans les tables Tx et Ty sur un multiple de la période de répétition selon chaque axe x et y. Comme indiqué en relation avec le premier mode de réalisation, la première étape de détermination et l'étape de mémorisation des positions sous- pixelliques des pixels de références sont effectuées au début du décodage d'un flux de données représentatif d'au moins une image, lorsque les différents niveaux de résolution entre les couches inter-dépendantes sont connus. Ainsi, la première étape de détermination des positions sous-pixelliques comprend une première sous-étape consistant à calculer, selon chaque axe x et y, la période de répétition des positions sous-pixelliques. Les périodes Px et Py sont de nouveau données par : Px = RxEnh/PGCDX Py = RyEnh/PGCDY Au cours d'une deuxième sous-étape, les positions sous-pixelliques dans l'image de résolution inférieure sont déterminées selon chaque axe x et y, en utilisant les équations définies dans le document JVT-V201 précité, puis mémorisées dans les tables Tx et Ty au cours de l'étape de mémorisation. En considérant de nouveau qu'un macrobloc comprend 16x16 pixels, les tables Tx et Ty sont respectivement de taille 16*Px et 16*Py selon ce deuxième mode de réalisation. On note : soit dx = ((((16*Px-ScaledBaseLeftOffset)*deltaX+baseRefX) 12)-8) -(((ScaledBaseLeftOffset*deltaX+baseRefX) 12)-8) soit dy = ((((16*Py-ScaledBaseTopOffset)*deltaY+baseRefY) 12)-8) û (((ScaledBaseTopOffset*deltaY+baseRefY) 12)-8) alors la table Tx est remplie comme suit : pour chaque x allant de 0 à 16*Px, Tx[x] = ((((x-ScaledBaseLeftOffset)*deltaX+baseRefX) 12)-8) et la table Ty est remplie comme suit : pour chaque x allant de 0 à 16*Py, Ty[x] = (((((x-ScaledBaseTopOffset)*deltaY+baseRefY) 12)-8) Les tables Tx et Ty ainsi pré-définies permettent de déterminer un filtre de sur-échantillonnage à appliquer à l'image de résolution inférieure. Cette pré-détermination des tables peut être mise en oeuvre une seule fois, au début du décodage d'un flux de données. En effet, ces tables de sur-échantillonnage permettent, lors d'une étape ultérieure de sur-échantillonnage, d'appliquer la phase (pour une prédiction de la texture) ou les pondérations (pour une prédiction du résidu) correspondantes selon la position du pixel dans l'image sur-échantillonnée.
De nouveau, l'étape de sur-échantillonnage peut être effectuée pour chaque image de résolution supérieure qui dépend par prédiction de texture ou de résidu d'une image de résolution inférieure. Elle peut être appelée une fois pour toute l'image, ou une fois par macrobloc. L'étape de sur-échantillonnage, encore appelée pour ce mode de réalisation deuxième étape de détermination des positions sous-pixelliques des autres pixels (par exemple pixel donné), se définit alors de la manière suivante, pour un macrobloc xP,yP de l'image de résolution supérieure. Soient les variables xnP, ynP, indX, indY, offsetX et offsetY définis par : xnP = xP/(16*Px) ynP = yP/(16*Py) indX = xP%(16*Px) indY = yP%(16*Py) offsetX = dx*xnP offsetY = dy*ynP Soit x,y allant de 0 à 15. On définit PosX et PosY les positions sous-pixelliques de x et y par : PosX = offsetX + Tx[indX+x] PosY = offsetY + Ty[indY+y] La position entière posIntX de x, et poslntY de y dans l'image de résolution inférieure est alors obtenue par : posIntX = PosX 4 poslntY = PosY 4 Plus précisément, on utilise pour la prédiction de texture un filtre de type 4-tap . Les phases PhX et PhY du filtre 4-tap, selon les axes x et y respectivement, sont alors données par : PhX= (PosX +16)%16 PhY= (PosY +16)%16 Pour la prédiction du résidu, on utilise un filtre bilinéaire dont les pondérations wXl, wX2 et wYl, wY2 sont données par : si (x == 0) alors wXl = 16 et wX2 = 0 sinon wXl = 16 -PosX%16 et wX2 = PosX%16 si (y == 0) alors wYl = 16 et wY2 = 0 :30 sinon wYl = 16 - PosY%16 et wY2 = PosY%16 5.5 Troisième mode de réalisation On décrit ci-après un troisième mode de réalisation de l'invention, dans lequel l'étape de mémorisation met en oeuvre deux tables de sur-échantillonnage Tx et Ty, de longueurs respectivement égales au nombre de colonnes et au nombre de lignes d'une image donnée, correspondant à un niveau de résolution supérieur par rapport au niveau de résolution d'une couche précédente (dit de niveau de résolution inférieur). Autrement dit, les positions sous-pixelliques des pixels de l'image de résolution supérieure dans l'image de résolution inférieure sont pré-calculées dans les tables Tx et Ty sur la taille de l'image de résolution supérieure selon chaque axe x et y. Selon ce troisième mode de réalisation, afin de réaliser les calculs de positions sous-pixelliques PosBaseX selon l'axe x (respectivement PosBaseY selon l'axe y), on introduit une variable supplémentaire ResPosBaseX (respectivement ResPosBaseY). On définit alors les étapes suivantes, basées sur une adaptation de l'algorithme de Bresenham. a) Définition du processus de mise à jour des positions : fonction ReducePosX(PosBaseX, ResPosBaseX) Ce processus vient modifier les valeurs de PosBaseX et ResPosBaseX comme suit : Si (ResPosBaseX>=RxEnh) alors ResPosBaseX = ResPosBaseX - RxEnh et PosBaseX+ + sinon PosBaseX et ResPosBaseX restent inchangés où l'opérateur ++ indique un incrément de 1 (PosBaseX = PosBaseX + 1). Ces opérations consistent en fait à trouver un couple équivalent (posX, resX) tel que (RxEnh*posX+resX = RxEnh*PosBaseX+ResPosBaseX) et que resX soit compris entre 0 et RxEnh - 1. On considère que cette condition est vérifiée dans cet exemple de réalisation.
Dans un cas général, il faudrait incrémenter PosBasX et décrémenter ResPosBasX jusqu'à vérifier cette condition sur ResPosBaseX. b) Etablissement des paramètres de mises à jour On définit les valeurs entières DeltaPos et DeltaResPos (correspondant aux variations de positions dans l'image de résolution inférieure à appliquer entre deux pixels à la résolution supérieure) comme suit : DeltaPos = (16*RxBase) / RxEnh DeltaResPos = (16*RxBase) ù DeltaPos*RxEnh c) Définition de l'état initial On définit une position initiale PosBaseXO comme étant le résultat des opérations suivantes : { PosBaseXO = -8; ResPosBaseXO = 8*RxBase + RxEnh/2; // Réduction du couple (PosBaxeXO, ResPosBaseXO) i = ResPosBaseXO/RxEnh; PosBaseXO = PosBaseXO + i; ResPosBaseXO = ResPosBaseXO - i*RxEnh; } d) Prétabulation globale des valeurs de positions On réalise le calcul de toutes les valeurs de positions (PosBaseX[u], ResPosBaseX[u]) pour u allant de 0 à RxEnh comme suit: { PosBaseX [0]=PosBaseXO;ResPosBaseX[0] = ResPosBaseXO; pour(int u=1; u<=RxEnh; u++) { ResPosBaseX[u] = ResPosBaseX[u-1] + DeltaResPos; PosBaseX[u] = PosBaseX[u-1] + DeltaPos; ReducePosX(PosBaseX[u], ResPosBaseX[u]); } Les deux premières lignes correspondent à la première étape de détermination des positions sous-pixelliques de pixels de référence, la boucle sur u correspond à la deuxième étape de détermination des positions sous-pixelliques des autres pixels (pixel donné). De la même manière, PosBaseY[u] et ResPosBaseY[u] sont définis en remplaçant les X par des Y dans les équations précédentes. Les tables Tx et Ty sont alors remplies en affectant directement les valeurs PosBaseX[u] à Tx[u+ScaledBaseLeftOffset] et PosBaseY[u] à 10 Ty[u+ScaledBaseTopOffset]. e) Précalcul global Une fois les étapes (b), (c) et (d) réalisées, on définit alors le calcul de la position xf par la formulation suivante, où xf correspond à une position souspixellique suivant l'axe x du pixel x+xP de l'image de résolution supérieure : 15 xf=Tx[x+xP] On rappelle que cette position xf est classiquement définie dans le document JVT-V201 précité par : xf = ((( x +xP ù ScaledBaseLeftOffset ) * deltaX + baseRefX ) 12 ) ù 8 (Equation G.264) 20 Les autres calculs pour obtenir les phases du filtre 4 tap et les pondérations du filtre bilinéaire restent inchangés par la suite. Le même raisonnement s'applique pour la détermination des positions sous-pixelliques yf selon l'axe y. Plus précisément, il suffit de remplacer les x par des y et X par des Y dans les notations précédentes. 25 On obtient alors : yf = Ty[y + yP] On rappelle que cette position yf est classiquement définie dans le document JVT-V201 précité par : yf = ((( y + yP ù ScaledBaseTopOffset ) * deltaY + baseRefY ) 12 ) ù 8 30 (Equation G.260) 5.6 Quatrième mode de réalisation On décrit ci-après un quatrième mode de réalisation de l'invention, dans lequel l'étape de mémorisation met en oeuvre deux tables de sur-échantillonnage Tx et Ty, de longueurs respectivement égales au nombre de macroblocs par colonnes et par lignes d'une image donnée. En effet, le troisième mode de réalisation présenté ci-dessus nécessite de stocker toutes les valeurs de positions précalculées. On présente ci-après un mode de réalisation moins complexe permettant de s'affranchir de l'étape (d) de prétabulation globale définie dans le troisième mode de réalisation.
Plus précisément, selon ce quatrième mode de réalisation, on pré-calcule uniquement les positions sous-pixelliques des pixels de coordonnées x = 0 et y = 0 de tous les macroblocs d'une image selon les axes x et y. On considère donc uniquement les positions sous-pixelliques des pixels situés sur la première ligne et la première colonne de chaque macrobloc.
Ces positions sous-pixelliques sont stockées dans les tables Tx et Ty, de tailles respectives RxEnh/16 et RyEnh/16. On définit également une table supplémentaire ResPosMBX (respectivement ResPosMBY) de taille RxEnh/16 (respectivement RyEnh/ 16). On définit alors les étapes suivantes, basées sur une adaptation de 20 l'algorithme de Bresenham. Les trois premières étapes (a) Définition du processus de mise à jour des positions : fonction ReducePosX(PosBaseX, ResPosBaseX), b) Etablissement des paramètres de mises à jour, et c) Définition de l'état initial) sont identiques aux étapes a), b) et c) présentée en relation avec le troisième mode de réalisation, et ne 25 sont donc pas décrites plus en détail. d) Pré-initialisations communes aux différents macro-blocs On initialise les différentes variables de la manière suivante: DeltaPosX[0] = DeltaPos DeltaResPosX[0] = DeltaResPos 30 pour(b=1; b<15; b++) { DeltaPosX[b] = 2*DeltaPosX[b-1]; DeltaResPosx[b] = 2*DeltaResPosX[b-1]; ReducePos(DeltaPosX, DeltaResPosX) } e) Pré-calcul des positions sous-pixelliques du premier pixel de chaque macrobloc Cette étape correspond à la première étape de détermination des positions sous-pixelliques de pixels de référence.
Pour chaque macrobloc, on note xP la position de son premier pixel, soit : Tx[xP/16] = PosBaseXO; ResPosMBX[xP/16] = ResPosBaseXO; u = xP û ScaledBaseLeftOffset; pour (b=0; b<15; b++) { si ((u b) & 1) // test sur le b-ième bit de poids faible de la position u { Tx[xP/16] = Tx[xP/16] + DeltaPosX[b]; ResPosMBX[xP/16] = ResPosMBX[xP/16] + DeltaResPosX[b]; ReducePosX(Tx[xP/161, ResPosMBX[xP/161); } } f) Calcul par macro-bloc Lors de l'étape de sur-échantillonnage, qui correspond à la deuxième étape de détermination des positions sous-pixelliques, les positions PosBaseX[k] pour les différents pixels à l'intérieur du macro-bloc xP sont calculées de la façon suivante: pour(k=0; k<15; x++) { si(k==0) 33 PosBaseX[k] = Tx[xP/16]; ResPosMBX[k] = ResPosMBX[xP/16]; } sinon { PosBaseX[k] = PosBaseX[k-1] + DeltaPos; ResPosBaseX[k] = ResPosBaseX[k-1] + DeltaResPos; ReducePosX(posBaseX[k], ResPosBaseX[k]); } } Une fois ces étapes réalisées, on définit alors le calcul de la position xf par la formulation suivante, où xf correspond à une position sous-pixellique suivant l'axe x : xf = PosBaseX[x], où x correspond à la position dans le macro-bloc. Le même raisonnement s'applique pour la détermination des positions sous-pixelliques yf selon l'axe y. Plus précisément, il suffit de remplacer les x par des y et X par des Y dans les notations précédentes. On obtient alors : yf = PosBaseY[y] Selon les troisième et quatrième modes de réalisation, on peut noter que les étapes de détermination et de mémorisation des positions sous-pixelliques, c'est-à-dire de la position d'un pixel par rapport à celle de son précédent, peuvent être aisément réalisées sur un système dédié.
En effet, les ajouts des variables DeltaPos et de DeltaResPos peuvent être fait simultanément sur une architecture vectorielle. Il en résulte un moindre coût d'implémentation sur une architecture dédiée, car ne nécessitant pas d'opération de multiplication. De plus il n'est pas nécessaire d'augmenter la précision de calcul et de stockage des variables considérées ici. Autrement dit, les variables PosBaseX, 34 { ResPosBaseX, DeltaPosBaseX et DeltaResPosBaseX peuvent rester sur 16 bits avec une arithmétique de calcul sur 16 bits. On peut également remarquer dans ces deux derniers modes de réalisation que les valeurs des variables ResPosBaseX sont mises à jour en utilisant des 5 paramètres dépendant du couple (RxBase, RxEnh). Or ce couple (RxBase, RxEnh) peut être substitué par tout couple (RB, RE) tel que RB*RxEnh = RxBase*RU. Avantageusement, on peut prendre le couple (RB = RxBase/PGCD(RxBase, RxEnh), RU= RxEnh/PGCD(RxBase, RxEnh)) où 10 PGCD(a,b) représente le plus grand commun diviseur aux entiers a et b. 5.7 Signalisation dans le flux Selon une variante de réalisation, compatible avec les différents modes de réalisation présentés, le flux de données représentatif d'au moins une image comprend une information indiquant qu'une mémorisation des positions sous- 15 pixelliques dans une ou plusieurs tables a été effectuée. Cet indicateur est par exemple un élément binaire inséré dans un paquet de données NALU du flux. On rappelle qu'un flux SVC est organisé en AUs ("Access Units" pour Unités d'Accès) correspondant chacune à un instant temporel donné et comprenant une ou plusieurs NALUs ("Network Abstraction 20 Layer Units" pour Unités d'Accès pour le réseau), ou paquets de données. Par exemple, l'utilisation de tables de sur-échantillonnage est signalée à l'aide d'un indicateur nommé use_preset_upsampling. Cet indicateur, ou flag, peut par exemple être inséré dans un paquet de données de signalisation SPS ( Sequence Parameter Set ), ou dans un paquet de données d'images PPS 25 ( Picture Parameter Set ), ou encore dans un en-tête de slice ( slice header ), où une slice regroupe un ensemble de macroblocs d'une image pour un niveau de représentation (par exemple niveau de représentation spatiale), .... Le lecteur est invité à se référer au document JVT-V201 précité pour obtenir plus de détails concernant la syntaxe de ces flux. 30 L'annexe A, qui fait partie intégrante de la description, illustre notamment les modifications de syntaxe dans la norme SVC afin de prendre en compte la présence, dans un paquet de données, d'une information indiquant qu'une mémorisation des positions sous-pixelliques dans une ou plusieurs tables a été effectuée.
Plus précisément, si l'indicateur use_preset_upsampling vaut 1, au décodage, alors les tables de sur-échantillonnage selon les axes x et y sont ou ont été calculées. La phase ou les pondérations des filtres de sur-échantillonnage sont déterminées à partir des ces tables, pour être utilisées lors de l'étape de sur- échantillonnage, Si l'indicateur use_preset_upsampling vaut 0, alors la méthode classique de sur-échantillonnage est utilisée. Selon une autre variante de réalisation, compatible avec les premier et deuxième modes de réalisation, les positions sous-pixelliques respectent un motif de répétition, et la longueur du motif de répétition est signalée dans le flux de données. Plus précisément, la période, et éventuellement les phases associées aux filtres mis en oeuvre lors de l'opération de sur-échantillonnage, sont signalées dans le flux.
Ces informations sont, par exemple insérées dans un paquet de données de signalisation SPS, ou dans un paquet de données d'images PPS, ou encore dans un en-tête de suce, ... L'annexe B, qui fait partie intégrante de la description, illustre notamment les modifications de syntaxe dans la norme SVC afin de prendre en compte la présence, dans un paquet de données, d'informations relatives à la période, et éventuellement aux phases associées aux filtres. Plus précisément, l'indicateur upsampling_phase_period indique la période de récurrence des phases associées à l'opération de sur-échantillonnage (ou motifs de répétitions), et l'indicateur upsampling_phase[i] indique la phase associée à la i-ème position de la période. 5.8 Exemple d'algorithme de décodage On présente également, en relation avec la figure 4, l'algorithme de sur-échantillonnage mis en oeuvre au décodage. On note D la couche courante d'une image, où Dmax correspond à la couche présentant le plus haut niveau de résolution de l'image. Plus précisément, on lit au cours d'une étape 41 certains paramètres du flux de données, et notamment les résolutions des couches permettant de définir le facteur entre les différents niveaux de résolution et les décalages scaledBaseLeftOffset et scaledBaseTopOffset de la partie de la couche de résolution supérieure qui est prédite par une couche de résolution inférieure, par rapport aux dimensions de la couche de rehaussement à décoder ou à coder. Par exemple, en reprenant les figures 2A et 2B, le facteur entre la résolution de niveau supérieur et la résolution de niveau inférieur est de 3/2. On détermine ensuite au cours d'une étape 42, pour une séquence d'images, les positions sous-pixelliques des pixels des images de la séquence au niveau de résolution supérieur, et on mémorise ses positions dans des tables de sur-échantillonnage Tx et Ty. Pour toutes les images de la séquence, on effectue les étapes suivantes. Au cours de l'étape 43, on associe la valeur zéro à la variable Irec, où Irec correspond à l'image reconstruite courante. L'étape 44 consiste alors en un décodage des coefficients de la couche courante D de l'image courante, dans une variable ICoeff. Plus précisément, cette étape 44 met en oeuvre un décodage entropique, une quantification inverse, et une transformation inverse.
On teste alors au cours d'une étape 45 si la couche courante D correspond à la couche de plus haut niveau de résolution Dmax. Si oui (451), alors l'image reconstruite Irec est égale à ICoef. Sinon (452), on vérifie au cours d'une étape 46 s'il y a un changement de résolution spatiale entre la couche D et la couche Dprev qui correspond à la couche précédemment décodée (à l'initialisation, on a Dprev = Dmax).
Si oui (461), alors l'algorithme de décodage met en oeuvre un sur-échantillonnage de l'image ICoef à l'aide des tables de sur-échantillonnage Tx et Ty, puis une addition de l'image ICoef sur-échantillonnée à l'image reconstruite Irec.
Sinon (462), on ajoute directement l'image ICoef à l'image Irec au cours d'une étape 47. On teste alors, au cours d'une étape 48, si la couche courante D dépend par prédiction d'une couche précédente de niveau de résolution inférieur, notée Dpred.
Si oui (481), alors on pose, au cours d'une étape 49 : Dprev = D ; D = Dpred ; ICoeff = 0 ; et on retourne à l'étape 44 de décodage des coefficients de la couche D.
Sinon (482), l'algorithme de décodage met en oeuvre une étape 50 de reconstruction de l'image Irec, en utilisant les techniques de compensation en mouvement. On vérifie ensuite, au cours d'une étape 51, si l'image est la dernière image de la séquence (dernière image décodée). Si oui (511), on arrête l'algorithme (52). Sinon (512), on retourne à l'étape 43 d'initialisation de l'image reconstruite. Un tel algorithme de décodage peut être mis en oeuvre dans un décodeur de type SVC. En particulier, ce décodeur peut comprendre une unité de traitement, équipée par exemple d'un microprocesseur et pilotée par un programme d'ordinateur mettant en oeuvre l'algorithme de décodage décrit ci-dessus.
ANNEXE A secs parameter set_svc_extension( ) { C Descriptor interlayer_deblocking_filter_control present_flag 0 u(1) extended_spatial_scalability 0 u(2) use_preset upsampling 0 u(1) if( chroma format idc = = 1 I chroma format idc = = 2 ) chroma phase_x plusl 0 u(2) if( chroma format idc = = 1 ) chroma phase_y plusl 0 u(2) if( extended spatial_scalability = = 1) { scaled base left offset 0 se(v) scaled_base_top_offset 0 se(v) scaled_base_right_offset 0 se(v) scaled base bottom offset 0 se(v) } } ANNEXE B seq parameter set svc_extension( ) { C Descriptor interlayer_deblocking_filter_control_present_flag 0 u(1) extended_spatia_scalability 0 u(2) use_preset upsampling 0 u(1) if( use _preset upsampling = = 1) { 0 u(1) upsampling_phase period 0 ue(v) for( i = 0; i < upsampling_phase_period; i+ + ) upsampling_phase[iJ 0 ue(v) } if( chroma format_ide = = 1 I I chroma format idc = = 2 ) chroma_phase_x_plusl 0 u(2) if( chroma format_idc = = 1 ) chroma_phase_y_plusl 0 u(2) if( extended spatial_scalability = = 1) { scaled_base_left_offset 0 se(v) scaled_base_top_offset 0 se(v) scaled_base_right_offset 0 se(v) scaled_base_bottom_offset 0 se(v) } } 5
Claims (15)
1. Procédé de sur-échantillonnage pour le décodage d'un flux de données représentatif d'au moins une image, et présentant une organisation en couches de données comprenant au moins une couche de rehaussement, une couche de rehaussement correspondant à un niveau de résolution supérieur d'une image dudit flux par rapport au niveau de résolution d'une couche précédente, dit niveau de résolution inférieur, les données de la couche de rehaussement étant codées par prédiction à partir de données d'au moins une couche précédente correspondant à un niveau de résolution inférieur, caractérisé en ce qu'il comprend : pour une séquence d'au moins une image prise à un niveau de résolution inférieur (22), une première étape (31) de détermination de la position, dite position sous-pixellique, d'au moins un pixel de chacune des images de ladite séquence, prises à un niveau de résolution supérieur (21) ; une étape de mémorisation (32) de ladite au moins une position souspixellique dans au moins une table de sur-échantillonnage ; pour au moins une image de ladite séquence prise à un niveau de résolution supérieur (21), et pour au moins un pixel donné (212) de ladite 20 image, une deuxième étape de détermination (33) d'une position souspixellique dudit au moins un pixel donné, dans ledit niveau de résolution inférieur (22) de ladite image, à partir : ^ d'une position sous-pixellique d'un pixel de référence (211) dans l'image à un niveau de résolution inférieur, déterminée à partir d'une lecture de ladite au moins une table de sur-échantillonnage, et ^ d'un décalage représentatif de la distance entre les positions sous-pixelliques desdits pixels donné (212) et de référence, (211) déterminé à partir d'une lecture de ladite au moins une table de sur-échantillonnage. 25 30
2. Procédé de sur-échantillonnage selon la revendication 1, caractérisé en ce que ladite deuxième étape (33) de détermination met en oeuvre un ajout dudit décalage représentatif de la distance entre les positions sous-pixelliques desdits pixels donné et de référence, à ladite position sous-pixellique d'un pixel de référence.
3. Procédé de sur-échantillonnage selon la revendication 1, caractérisé en ce que, lesdites positions sous-pixelliques étant représentées par un ensemble de bits, la position sous-pixellique dudit pixel de référence dans l'image à un niveau de résolution inférieur est obtenue par ajouts de décalages représentatifs de distances pixelliques dans l'image à un niveau de résolution supérieure, pré-calculés en puissance de deux, lesdits ajouts dépendant de la valeur des bits dudit ensemble représentatif de la position dudit pixel de référence.
4. Procédé de sur-échantillonnage selon l'une quelconque des revendications 1 à 3, caractérisé en ce que les pixels de ladite au moins une image sont organisés en lignes et colonnes, et en ce que ladite étape de mémorisation (32) met en oeuvre deux tables de sur-échantillonnage : une première table (Tx) mémorisant la position d'au moins un pixel de ladite image à un niveau de résolution supérieur, dans ladite image à un niveau de résolution inférieur, suivant une ligne de ladite image, et une deuxième table (Ty) mémorisant la position d'au moins un pixel de ladite image à un niveau de résolution supérieur, dans ladite image à un niveau de résolution inférieur, suivant une colonne de ladite image.
5. Procédé de sur-échantillonnage selon l'une quelconque des revendications 1 à 4, caractérisé en ce que lesdites positions sous-pixelliques respectent un motif de répétition, et en ce que ladite table présente une longueur supérieure ou égale à la longueur dudit motif de répétition.
6. Procédé de sur-échantillonnage selon la revendication 5, caractérisé en ce que la longueur dudit motif de répétition est signalée dans un paquet de données (NALU) dudit flux.
7. Procédé de sur-échantillonnage selon l'une quelconque des revendications 1 à 6, caractérisé en ce que ladite première étape (31) de détermination des positions sous-pixelliques met en oeuvre un algorithme de type Bresenham.
8. Procédé de sur-échantillonnage selon l'une quelconque des revendications 1 à 7, caractérisé en ce qu'il met en oeuvre un filtre appartenant au groupe comprenant : un filtre bilinéaire, permettant de réaliser une prédiction de résidu, un filtre à quatre coefficients, dit 4-tap , permettant de réaliser une prédiction de texture.
9. Procédé de sur-échantillonnage selon l'une quelconque des revendications 1 à 8, caractérisé en ce que ledit flux comprend une information indiquant qu'une mémorisation desdites positions sous-pixelliques dans au moins une table est effectuée.
10. Procédé de sur-échantillonnage selon la revendication 9, caractérisé en ce que ladite information est un élément binaire inséré dans un paquet de données (NALU) dudit flux.
11. Dispositif de décodage d'un flux de données représentatif d'au moins une image, et présentant une organisation en couches de données comprenant au moins une couche de rehaussement, une couche de rehaussement correspondant à un niveau de résolution supérieur d'une image dudit flux par rapport au niveau de résolution d'une couche précédente, dit niveau de résolution inférieur, les données d'une couche de rehaussement étant codées par prédiction à partir de données d'au moins une couche précédente, caractérisé en ce qu'il comprend des moyens de sur-échantillonnage comprenant : pour une séquence d'au moins une image prise à un niveau de résolution inférieur, des moyens de détermination de la position, dite position souspixellique, d'au moins un pixel de chacune des images de ladite séquence, prises à un niveau de résolution supérieur ;des moyens de mémorisation de ladite au moins une position souspixellique dans au moins une table de sur-échantillonnage ; pour au moins une image de ladite séquence prise à un niveau de résolution supérieur, et pour au moins un pixel donné de ladite image, des moyens de détermination d'une position sous-pixellique dudit au moins un pixel donné, dans ledit niveau de résolution inférieur de ladite image, à partir : ^ d'une position sous-pixellique d'un pixel de référence dans l'image à un niveau de résolution inférieur, déterminée à partir d'une lecture de ladite au moins une table de sur-échantillonnage, et ^ d'un décalage représentatif de la distance entre les positions sous-pixelliques desdits pixels donné et de référence, déterminé à partir d'une lecture de ladite au moins une table.
12. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en oeuvre du procédé de sur-échantillonnage 20 selon l'une au moins des revendications 1 à 10.
13. Procédé de sur-échantillonnage pour le codage d'au moins une image, délivrant un flux de données présentant une organisation en couches de données comprenant au moins une couche de rehaussement, une couche de rehaussement correspondant à un niveau de résolution supérieur 25 d'une image dudit flux par rapport au niveau de résolution d'une couche précédente, dit niveau de résolution inférieur, les données de la couche de rehaussement étant codées par prédiction à partir de données d'au moins une couche précédente correspondant à un niveau de résolution inférieur, 30 caractérisé en ce qu'il comprend : 15pour une séquence d'au moins une image prise à un niveau de résolution inférieur, une première étape de détermination de la position, dite position sous-pixellique, d'au moins un pixel de chacune des images de ladite séquence, prises à un niveau de résolution supérieur ; une étape de mémorisation de ladite au moins une position sous-pixellique dans au moins une table de sur-échantillonnage ; pour au moins une image de ladite séquence prise à un niveau de résolution supérieur, et pour au moins un pixel donné de ladite image, une deuxième étape de détermination d'une position sous-pixellique dudit au moins un pixel donné, dans ledit niveau de résolution inférieur de ladite image, à partir : ^ d'une position sous-pixellique d'un pixel de référence dans l'image à un niveau de résolution inférieur, déterminée à partir d'une lecture de ladite au moins une table de sur- t 5 échantillonnage, et d'un décalage représentatif de la distance entre les positions souspixelliques desdits pixels donné et de référence, déterminé à partir d'une lecture de ladite au moins une table de sur-échantillonnage. 20
14. Dispositif de codage d'au moins une image, délivrant un flux de données présentant une organisation en couches de données comprenant au moins une couche de rehaussement, une couche de rehaussement correspondant à un niveau de résolution supérieur d'une image dudit flux par rapport au niveau de résolution d'une couche 25 précédente, dit niveau de résolution inférieur, les données de la couche de rehaussement étant codées par prédiction à partir de données d'au moins une couche précédente correspondant à un niveau de résolution inférieur, caractérisé en ce qu'il comprend des moyens de sur-échantillonnage comprenantpour une séquence d'au moins une image prise à un niveau de résolution inférieur, des moyens de détermination de la position, dite position souspixellique, d'au moins un pixel de chacune des images de ladite séquence, prises à un niveau de résolution supérieur ; des moyens de mémorisation de ladite au moins une position souspixellique dans au moins une table de sur-échantillonnage ; pour au moins une image de ladite séquence prise à un niveau de résolution supérieur, et pour au moins un pixel donné de ladite image, des moyens de détermination d'une position sous-pixellique dudit au moins un pixel donné, dans ledit niveau de résolution inférieur de ladite image, à partir : ^ d'une position sous-pixellique d'un pixel de référence dans l'image à un niveau de résolution inférieur, déterminée à partir d'une lecture de ladite au moins une table de sur- échantillonnage, et ^ d'un décalage représentatif de la distance entre les positions sous-pixelliques desdits pixels donné et de référence, déterminé à partir d'une lecture de ladite au moins une table de sur-échantillonnage.
15. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en oeuvre du procédé de sur-échantillonnage selon la revendication 13.25
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0702903A FR2915048A1 (fr) | 2007-04-16 | 2007-04-16 | Procede de sur-echantillonnage pour le codage et/ou le decodage d'un flux de donnees echelonnable, produits programme d'ordinateur et dispositifs correspondants. |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0702903A FR2915048A1 (fr) | 2007-04-16 | 2007-04-16 | Procede de sur-echantillonnage pour le codage et/ou le decodage d'un flux de donnees echelonnable, produits programme d'ordinateur et dispositifs correspondants. |
Publications (1)
Publication Number | Publication Date |
---|---|
FR2915048A1 true FR2915048A1 (fr) | 2008-10-17 |
Family
ID=38962619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0702903A Pending FR2915048A1 (fr) | 2007-04-16 | 2007-04-16 | Procede de sur-echantillonnage pour le codage et/ou le decodage d'un flux de donnees echelonnable, produits programme d'ordinateur et dispositifs correspondants. |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2915048A1 (fr) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6307887B1 (en) * | 1997-04-04 | 2001-10-23 | Microsoft Corporation | Video encoder and decoder using bilinear motion compensation and lapped orthogonal transforms |
US20020135592A1 (en) * | 2001-01-11 | 2002-09-26 | Slavin Keith R. | Pixel resampling system and method for text |
US20060126962A1 (en) * | 2001-03-26 | 2006-06-15 | Sharp Laboratories Of America, Inc. | Methods and systems for reducing blocking artifacts with reduced complexity for spatially-scalable video coding |
US20060222068A1 (en) * | 2005-04-01 | 2006-10-05 | Lg Electronics Inc. | Method for scalably encoding and decoding video signal |
WO2006108863A2 (fr) * | 2005-04-13 | 2006-10-19 | Thomson Licensing | Procede pour le codage extensible d'images |
-
2007
- 2007-04-16 FR FR0702903A patent/FR2915048A1/fr active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6307887B1 (en) * | 1997-04-04 | 2001-10-23 | Microsoft Corporation | Video encoder and decoder using bilinear motion compensation and lapped orthogonal transforms |
US20020135592A1 (en) * | 2001-01-11 | 2002-09-26 | Slavin Keith R. | Pixel resampling system and method for text |
US20060126962A1 (en) * | 2001-03-26 | 2006-06-15 | Sharp Laboratories Of America, Inc. | Methods and systems for reducing blocking artifacts with reduced complexity for spatially-scalable video coding |
US20060222068A1 (en) * | 2005-04-01 | 2006-10-05 | Lg Electronics Inc. | Method for scalably encoding and decoding video signal |
WO2006108863A2 (fr) * | 2005-04-13 | 2006-10-19 | Thomson Licensing | Procede pour le codage extensible d'images |
Non-Patent Citations (3)
Title |
---|
SULLIVAN G J: "Position calc for SVC upsampling", VIDEO STANDARDS AND DRAFTS, 11 January 2006 (2006-01-11), XP030006334 * |
SULLIVAN G: "Position calculation for SVC upsampling", VIDEO STANDARDS AND DRAFTS, 28 March 2006 (2006-03-28), XP030006446 * |
WIEGAND T. ET AL.: "JOINT DRAFT 9 OF SVC AMENDMENT", 22ND JVT MEETING, 13 January 2007 (2007-01-13) - 19 January 2007 (2007-01-19), Marrakech, Morocco, pages 412 - 445, XP002466497, Retrieved from the Internet <URL:http://ftp3.itu.int/av-arch/jvt-site/> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10448032B2 (en) | Signaling of down-sampling location information in scalable video coding | |
US10116957B2 (en) | Dual filter type for motion compensated prediction in video coding | |
FR2880743A1 (fr) | Dispositif et procedes de codage et de decodage echelonnables de flux de donnees d'images, signal, programme d'ordinateur et module d'adaptation de qualite d'image correspondants | |
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 | |
WO2007020230A2 (fr) | Procede de codage et de decodage d'images video avec echelonnabilite spatiale | |
EP1969854A1 (fr) | Procede de codage et de decodage d'une image ou d'une sequence d'images, dispositifs, programmes d'ordinateur, et signal correspondants | |
WO2014001703A1 (fr) | Procédé de codage d'un bloc courant d'une première composante d'image par rapport a un bloc de référence d'au moins une deuxième composante d'image, dispositif de codage et programme d'ordinateur correspondant | |
US10455253B1 (en) | Single direction long interpolation filter | |
Wiegand et al. | Video coding: Part II of fundamentals of source and video coding | |
EP3075155B1 (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 | |
FR2886787A1 (fr) | Procede et dispositif de codage et de decodage d'une sequence d'images | |
EP3345391A2 (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 | |
EP3180914A1 (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 | |
FR2768003A1 (fr) | Procede de codage d'un signal de forme binaire | |
FR2867328A1 (fr) | Procede de decodage d'une sequence d'images codee avec echelonnabilite spatiale et temporelle | |
FR3026261A1 (fr) | Procede de codage et de decodage d'images integrales, dispositif de codage et de decodage d'images integrales et programmes d'ordinateur correspondants | |
EP0691065B1 (fr) | Codage/decodage compatibles sous-bandes d'images de television | |
FR2966680A1 (fr) | Procedes et dispositifs de codage et de decodage d'au moins une image a partir d'un epitome hierarchique, signal et programme d'ordinateur correspondants | |
FR2915048A1 (fr) | Procede de sur-echantillonnage pour le codage et/ou le decodage d'un flux de donnees echelonnable, produits programme d'ordinateur et dispositifs correspondants. | |
WO2019057368A1 (fr) | Procedes de codage et de decodage d'une image | |
FR2956789A1 (fr) | Procede et dispositif de traitement d'une sequence video | |
FR2933837A1 (fr) | Procede de codage, procede et dispositif de transcodage et flux de donnees image codees. | |
WO2019076764A1 (fr) | Procédés de codage et de décodage d'un flux de données représentatif d'une vidéo omnidirectionnelle | |
FR2894424A1 (fr) | Procede de prediction de donnees mouvement et de texture | |
FR2957744A1 (fr) | Procede de traitement d'une sequence video et dispositif associe |