WO2007119020A2 - Procede et dispositif de codage de donnees en un flux scalable - Google Patents

Procede et dispositif de codage de donnees en un flux scalable Download PDF

Info

Publication number
WO2007119020A2
WO2007119020A2 PCT/FR2007/051093 FR2007051093W WO2007119020A2 WO 2007119020 A2 WO2007119020 A2 WO 2007119020A2 FR 2007051093 W FR2007051093 W FR 2007051093W WO 2007119020 A2 WO2007119020 A2 WO 2007119020A2
Authority
WO
WIPO (PCT)
Prior art keywords
nal unit
coding
svc
scalable
header
Prior art date
Application number
PCT/FR2007/051093
Other languages
English (en)
Other versions
WO2007119020A3 (fr
Inventor
Stéphane PATEUX
Isabelle Amonou
Nathalie Cammas
Original Assignee
France Telecom
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom filed Critical France Telecom
Priority to US12/296,294 priority Critical patent/US20100150224A1/en
Priority to EP07788931A priority patent/EP2011340A2/fr
Publication of WO2007119020A2 publication Critical patent/WO2007119020A2/fr
Publication of WO2007119020A3 publication Critical patent/WO2007119020A3/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2383Channel coding or modulation of digital bit-stream, e.g. QPSK modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440227Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by decomposing into layers, e.g. base layer and one or more enhancement layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8451Structuring of content, e.g. decomposing content into time segments using Advanced Video Coding [AVC]

Definitions

  • the invention relates to the encoding, transmission and decoding of scalable video signals.
  • the invention proposes to improve the existing scalable video extraction and decoding algorithms, in particular that of MPEG4-SVC, for decoding at a given bit rate and spatio-temporal resolution. More specifically, we are positioned in a context of scalable video coding based on a multiple temporal decomposition with motion compensation and layer representation with inter-layer prediction.
  • the same video sequence may be coded twice to generate 256Kb / s A stream at QCIF resolution for the PDA and 512kb / s B stream and super VGA resolution for the PC.
  • we must transport the two flows A and B for a total flow of A + B (768 kb / s). So we see that this solution is suboptimal in terms of the efficiency of the representation since the same information (those corresponding to the flow of lower bit rate and resolution A) are encoded several times (in stream A and in stream B).
  • this method requires knowing in advance the characteristics of all potential customers.
  • the first generation of these scalable algorithms did not prevail because of a sub-optimality of compression: the scalable compressed stream (B 'in our example) is generally inferior in quality to the same non-scalable compressed stream (ie in our example: Q (B') ⁇ Q (B)) for the same rate of 512kb / s).
  • Such coders are very useful for all applications for which the generation of a single compressed stream, organized in several layers of Scalability, can be used by several customers with terminals of different characteristics. For example:
  • target terminals UMTS, ADSL PC, ADSL TV .
  • the JSVM MPEG model is described in the document "Joint Scalable Video Model JSVM-3", J. Reichel, M. Wien, H. Schwarz, JVTP202, JuIy 2005, Poznan. .
  • the model recently adopted by MPEG-4 SVC (“Scalable Video Coding” for “scalable video coding”) is based on a scalable encoder based on Advanced Video Coding (AVC) -based solutions for "advanced video coding”. ). It is a scalable video coder with inter-layer prediction and bidirectional prediction temporal decomposition (B-images). This new standard will be able to provide scalable medium grain streams in time, space, and quality.
  • the invention is an improvement of the coder / decoder of the JSVM according to the prior art.
  • the object of the invention is to indicate in a simple way, that is to say using only the high level information (ie located in the headers of the NAL units), if a NAL unit of enhancement in quality is coded in progressive mode or not (ie can be truncated during an adaptation operation of a video stream).
  • a NAL unit of enhancement in quality is coded in progressive mode or not (ie can be truncated during an adaptation operation of a video stream).
  • the progressive quantization coding approach offers the advantage of being able to truncate the NAL units coding this information and thus to propose a gradual evolution of the SNR quality.
  • the second coding approach is less interesting for a truncation operation, since it leads to an enhancement in non-uniform quality on the image.
  • the invention proposes a signaling method of the type of coding used for an enhancement in SNR quality proposed by a NAL unit SVC. More precisely, for each NAL unit of this type, it will be indicated whether it can be truncated or not.
  • This signaling of the type of coding then makes it possible for a high-level parser with a limited available processing power, to be able to identify simply whether an information truncation mechanism can be applied to the NAL unit in question. This results in the insertion in the header information of a NAL unit SVC of a bit defining whether this NAL unit can be truncated or not.
  • the indication of the truncation of a NAL unit SVC is carried out using the bit associated with the "reserved bit" syntax element available in the NAL unit SVC header.
  • the truncation marking is not directly related to the type of slice used.
  • the invention also relates to a device for encoding data in a scalable flow organized in units, characterized in that it comprises means for indicating in the header of a NAL unit SVC whether this NAL unit can be truncated or not when an adaptation operation of the scalable flow considered.
  • the invention also relates to a computer program product comprising program instructions for executing the preceding coding method.
  • the invention also relates to a signal comprising data in a scalable flow organized in units, characterized in that it comprises information in the header of a NAL unit SVC to indicate whether this NAL unit can be truncated or not when an adaptation operation of the scalable flow considered.
  • FIG. 1 represents a scalable encoder based on solutions of the AVC type
  • FIG. 2 represents the general structure of the SVC stream
  • FIG. 3 represents the format of the NAL unit headers in the current version of SVC;
  • FIG. 4 represents a variant of the NAL unit headers SVC,
  • FIG. 5 illustrates the syntax associated with a header of a NAL unit SVC
  • FIG. 6 illustrates the syntax associated with a header of a NAL unit SVC according to the invention.
  • the scalable encoder based on a solution of the AVC type is shown schematically in FIG.
  • the prediction residue is encoded up to a rate R_ri_max which corresponds to the maximum rate that can be decoded for the resolution ri.
  • the progressive coding technique used in the JSVM is progressive quantization. This technique consists of quantifying the different coefficients with a first coarse quantization step. Then, the different coefficients are reconstructed and the difference between the value of the coefficient and the quantified value is calculated. This difference is then quantized with a second finer quantization step. This is done iteratively with a certain number of quantization steps. At each quantization step, the quantized coefficients are coded in two passes. a signifiance pass which encodes the new signifying coefficients, those which have not been coded at the preceding quantization step. For these new coefficients, we code the sign of the coefficient and its value.
  • refinement pass that refines / encodes the coefficients that were already significant at the preceding quantization step. For these coefficients, we code the value +1 or -1 of refinement.
  • the coefficients are further traversed in a particular order through the blocks constituting an image so that, when truncating the information packet attached to this enhancement in SNR quality, the increment in quality is pretty much well distributed on the image.
  • the coding of the coefficients is done in several passes on the different blocks constituting an image; at each coding pass, only a limited number of coefficients are coded for each block.
  • This type of NAL unit can be truncated before decoding.
  • CGS (Layer Coding) mode is characterized by:
  • This type of NAL unit can not be truncated before decoding.
  • the general structure is described with reference to FIG. 2.
  • the SVC stream is organized into access units (AUs) each corresponding at a given instant and comprising one or more access units for the network ( packet) or NALUs (Network Abstraction Layer Units).
  • Each NALU, or NAL unit is associated with an image resulting from spatio-temporal decomposition, a level of spatial resolution, and a level of coding quality.
  • This structure in NALUs makes it possible to adapt the bit rate and / or temporal space resolution by eliminating the NALUs with too large spatial resolution, or with too long a time frequency or with too much coding quality.
  • Each NALU encapsulates an image slice.
  • a slice is a set of macroblocks contained in an image.
  • NAL unit type 20 or 21 Each NAL unit specific to SVC (NAL unit type 20 or 21) has a byte of NAL unit type byte (AVC) and one or two bytes of SVC header containing the fields (P 1 D 1 T 1 Q ) (Priorityjd, Dependency_id, Temporaljevel, Qualityjevel).
  • the Priorityjd field indicates a priority level of a NAL unit that can be used to guide quality adaptation.
  • the Dependencyjd field allows to know the level of spatial resolution of a hierarchical coding layer. This level can also control a level of enhancement in SNR quality or time enhancement in the context of layer coding (i.e. for a number of discrete operating points).
  • the Temporaljevel field is used to indicate the temporal level indicating the frame rate.
  • the Qualityjevel field is used to indicate the progressive quantization level, and thus to control the rate / quality and / or complexity.
  • a slice is a set of macroblocks contained in an image. Several slices can be found in an image (typically to limit the size of the NAL units, to limit the impact of a packet loss, to carry out adaptive coding by image region, etc.).
  • SNR quality enhancement information is encoded in NAL units of type 20 or 21, having a non-zero qualityjevel, and using the following "slice_type":
  • FIG. 5 illustrates the header of a NAL unit SVC which is defined by the following syntax: the "simple_priohty_id" field, coded on 6 bits, makes it possible to signal a priority information for the NAL unit considered.
  • This priority information can be used by a video stream adaptation tool when performing an adaptation of the video stream (for example by keeping only the NAL units having a sufficient priority level).
  • the discardable_flag field coded on a bit, indicates whether the NAL unit considered is useful in the inter-layer coding (inter layer prediction in the SVC vocabulary) of an upper layer (for example corresponding to a higher level of spatial resolution) .
  • the temporaljevel field indicates the time level associated with the considered NAL unit.
  • coding layer can correspond to the different levels of spatial resolution during scalability in resolution, but also to the different layers of SNR quality (or even temporal) during a layer coding.
  • the qualityjevel field coded on 2 bits, corresponds to the level of enhancement in SNR quality coded inside a layer
  • the invention proposes in a particular embodiment to reassign the reserved_reserved bit.
  • the indication of possibility of the truncation of a NAL unit SVC is carried out by using the bit associated with the syntax element "reserved_bit" available in the header of NAL unit SVC. This field is renamed "tru ncation_flag":
  • the considered NAL unit may be truncated during an adaptation operation of the video stream
  • the considered NAL unit can not be truncated during an adaptation operation of the video stream.
  • the invention proposes not to directly bind the marking of the possibility of truncation to the type of slice used.
  • SVC SVC
  • a NAL unit corresponding to a slice of type PR can be truncated
  • a NAL unit corresponding to a slice of type E1, EP or EB can not be truncated.
  • NAL unit coded in progressive mode can not be cut off.
  • this additional bit is inserted into an additional NAL unit in the AU.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Error Detection And Correction (AREA)

Abstract

L'invention concerne un procédé et un dispositif de codage de données en un flux scalable organisé en unités, caractérisé en ce que on indique dans l'entête d'une NAL unit SVC si cette NAL unit peut être tronquée ou non lors d'une opération d'adaptation du flux scalable considéré.

Description

Procédé et dispositif de codage de données en un flux scalable
L'invention concerne le codage, la transmission et le décodage de signaux vidéo scalables.
L'invention propose d'améliorer les algorithmes existants d'extraction et de décodage vidéo scalables, en particulier celui de MPEG4-SVC, pour le décodage à un débit et une résolution spatio-temporelle donnée. Plus particulièrement, on se positionne dans un contexte de codage vidéo scalable basé sur une décomposition temporelle multiple avec compensation en mouvement et représentation par couches avec prédiction inter-couches.
Actuellement, la plupart des codeurs vidéo génèrent un seul flux compressé correspondant à l'intégralité de la séquence codée. Si plusieurs clients souhaitent exploiter le fichier compressé pour décodage et visualisation, ils devront pour cela télécharger (ou "streamer") le fichier compressé complet. Or, dans un système hétérogène (e.g. Internet), tous les clients ne disposent pas du même type d'accès aux données : la bande passante, les capacités de traitement et les écrans des terminaux des clients peuvent être très différents. Par exemple, sur un réseau Internet, l'un des clients pourra disposer d'un débit ADSL à 1024 kb/s et d'un PC puissant alors que l'autre ne bénéficiera que d'un accès modem et d'un PDA. Une solution à ce problème consiste à générer plusieurs flux compressés correspondant à différents débits/résolutions de la séquence vidéo : cette solution est dite "simulcast". Par exemple, une même séquence vidéo pourra être codée deux fois pour générer un flux A à 256kb/s en résolution QCIF pour le PDA et un flux à B à 512kb/s et résolution super VGA pour le PC. Avec cette solution, si l'on ne connaît pas a priori la cible (ou si les deux types de cibles sont présentes sur le réseau), il faut transporter les deux flux A et B pour un débit total de A+B (768 kb/s). On voit donc que cette solution est sous-optimale en termes d'efficacité de la représentation puisque les mêmes informations (celles correspondant au flux de plus faible débit et résolution A) sont codées plusieurs fois (dans le flux A et dans le flux B). De plus, cette méthode suppose de connaître à l'avance les caractéristiques de tous les clients potentiels.
Plus récemment sont apparus des algorithmes de codage vidéo dit scalables, c'est-à-dire à qualité adaptable et résolution spatio-temporelle variable, pour lesquels le codeur génère un flux compressé en plusieurs couches, chacune de ces couches étant emboîtée dans la couche de niveau supérieur. Ainsi le flux A' à 256 kb/s servira-t-il dans l'exemple précédent au décodage de la vidéo pour le PDA, mais aussi pour le PC, le flux de résolution supérieur B' à 512 kb/s étant complémentaire de celui-ci. En d'autres termes, le débit nécessaire pour transporter les deux flux est ici B' (512kb/s). Cette solution est plus optimale en termes d'efficacité de la représentation que la solution précédente.
La première génération de ces algorithmes scalables (cf travaux de MPEG-4, notamment avec les technologies de type FGS - Fine Grain Scalability) ne s'est pas imposée en raison d'une sous-optimalité de compression : le flux compressé scalable (B' dans notre exemple) est généralement inférieur en qualité au même flux compressé non scalable (i.e. dans notre exemple : Q(B')<Q(B)) pour un même débit de 512kb/s).
Plus récemment, de nouveaux algorithmes se sont imposés pour répondre à ce problème d'efficacité. Ils sont aujourd'hui en cours d'adoption par la norme MPEG, dans le contexte du groupe de travail MPEG4.
De tels codeurs sont 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 ayant des terminaux de caractéristiques différentes. On peut citer par exemple :
- service de VOD (terminaux cibles : UMTS, PC ADSL, TV ADSL...),
- mobilité de session (reprise sur un PDA d'une session vidéo commencée sur TV; sur un mobile UMTS d'une session commencée sur GPRS),
- continuité de session (partage de la bande passante avec une nouvelle application),
- TV haute définition (encodage unique pour servir des clients SD - Standard Définition et HD - High Définition), - visioconférence (encodage unique pour des clients UMTS/Internet).
Le modèle JSVM MPEG est décrit dans le document "Joint Scalable Video Model JSVM-3", J. Reichel, M. Wien, H. Schwarz, JVTP202, JuIy 2005, Poznan. .
Le modèle qui a été retenu récemment par MPEG-4 SVC ("Scalable Video Coding" pour "codage vidéo échelonnable") est basé sur un codeur scalable basé sur des solutions de type AVC ("Advanced Video Coding" pour "codage vidéo avancé"). Il s'agit d'un codeur vidéo scalable avec prédiction inter- couches et décomposition temporelle par prédiction bidirectionnelle (images B). Cette nouvelle norme sera capable de fournir des flux scalables à grain moyen dans les dimensions temporelle, spatiale, et en qualité.
L'invention est une amélioration du codeur/décodeur du JSVM selon la technique antérieure.
Le but de l'invention est d'indiquer de façon simple, c'est-à-dire en n'utilisant que les informations de haut niveau (i.e. situées dans les entêtes des NAL units), si une NAL unit de réhaussement en qualité est codée en mode progressif ou non (i.e. peut être tronquée lors d'une opération d'adaptation d'un flux vidéo). En effet, il est possible de coder les réhaussements en qualité SNR selon deux approches : codage par quantification progressive (Le. en utilisant des types de slice dénommées PR) ou codage par quantification successive des résidus (i.e. en utilisant des types de slices dénommées El, EP ou EB). L'approche de codage par quantification progressive offre l'avantage de pouvoir tronquer les NAL units codant cette information et ainsi de proposer une évolution graduelle de la qualité SNR.
La seconde approche de codage est moins intéressante pour une opération de troncature, puisque amenant à un réhaussement en qualité non uniforme sur l'image.
Il est important pour un décodeur ou un extracteur de savoir sur quel type de NAL unit il travaille et s'il peut ou non faire une troncature. Actuellement, le type de codage d'un réhaussement en qualité SNR est signalé via l'élément syntaxique "slice_type" codé dans le slicejπeader des NAL units SVC. Toutefois les informations contenues dans le slice header sont difficilement lisibles par un simple parseur de flux, puisque codées via des mots de codes à longueurs variables. Seules les informations de haut niveau (i.e. accessible via les entêtes de NAL unit) sont simplement accessible pour un parseur.
L'invention propose une méthode de signalisation du type de codage utilisé pour un réhaussement en qualité SNR proposé par une NAL unit SVC. Plus précisément, on indiquera pour chaque NAL unit de ce type, si elle peut être tronquée ou non. Cette signalisation du type de codage permet alors pour un parseur de haut niveau ayant une puissance de traitement disponible limitée, de pouvoir identifier simplement si un mécanisme de troncature d'information peut être appliqué sur la NAL unit considérée. Il en résulte l'insertion dans les informations d'entêté d'une NAL unit SVC d'un bit définissant si cette NAL unit peut être tronquée ou non. Selon une caractéristique préférée, l'indication de la troncature d'une NAL unit SVC est réalisée en utilisant le bit associé à l'élément syntaxe "reserved bit" disponible dans l'entête de NAL unit SVC.
Selon une autre caractéristique préférée, le marquage de troncature n'est pas lié directement au type de slice utilisé.
L'invention concerne aussi un dispositif de codage de données en un flux scalable organisé en unités, caractérisé en ce qu'il comporte des moyens pour indiquer dans l'entête d'une NAL unit SVC si cette NAL unit peut être tronquée ou non lors d'une opération d'adaptation du flux scalable considéré.
L'invention concerne également un produit programme d'ordinateur comprenant des instructions de programme pour l'exécution du procédé de codage précédent.
L'invention concerne aussi un signal comportant des données en un flux scalable organisé en unités, caractérisé en ce qu'il comporte une information dans l'entête d'une NAL unit SVC pour indiquer si cette NAL unit peut être tronquée ou non lors d'une opération d'adaptation du flux scalable considéré.
D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit faite en regard de dessins annexés qui représentent : - la figure 1 représente un codeur scalable basé sur des solutions de type AVC,
- la figure 2 représente la structure générale du flux SVC,
- la figure 3 représente le format des en-têtes de NAL unit dans la version actuelle de SVC, - la figure 4 représente une variante des entêtes de NAL unit SVC,
- la figure 5 illustre la syntaxe associée à une entête d'une NAL unit SVC,
- la figure 6 illustre la syntaxe associée à une entête d'une NAL unit SVC selon l'invention. Le codeur scalable basé sur une solution de type AVC est schématisé à la figure 1 .
Les caractéristiques principales de ce codeur sont les suivantes :
- solution pyramidale avec sous-échantillonnage dyadique des composantes d'entrée ;
- décomposition temporelle par images B à chaque niveau ;
- codage des couches successives en mode CGS ou en mode FGS.
Le mode FGS Codage par quantification progressive est caractérisé par :
- Codage d'une version basse résolution de la séquence vidéo jusqu'à un débit donné R_rO_max qui correspond au débit maximum décodable pour la résolution spatiale basse rO. (ce niveau de base est compatible AVC).
- Codage des niveaux supérieurs par soustraction du niveau précédent reconstruit et sur échantillonné et codage des résidus sous forme : o D'un niveau de base o D'un ou plusieurs niveaux de réhaussement obtenus par codage multipasse de plans de bits (par la suite : FGS). Le résidu de prédiction est codé jusqu'à un débit R_ri_max qui correspond au débit maximum décodable pour la résolution ri.
La technique de codage progressif utilisée dans le JSVM est la quantification progressive. Cette technique consiste à quantifier avec un premier pas de quantification grossier les différents coefficients. Puis, les différents coefficients sont reconstruits et la différence entre la valeur du coefficient et la valeur quantifiée est calculée. Cette différence est ensuite quantifiée avec un deuxième pas de quantification plus fin. On procède ainsi itérativement avec un certain nombre de pas de quantification. A chaque pas de quantification, les coefficients quantifiés sont codés en deux passes. - une passe de signifiance qui code les nouveaux coefficients signifiants, ceux qui n'ont pas été codés au pas de quantification précédent. Pour ces nouveaux coefficients, on code le signe du coefficient et sa valeur.
- une passe de raffinement qui raffine/code les coefficients qui étaient déjà signifiants au pas de quantification précédent. Pour ces coefficients, on code la valeur +1 ou -1 de raffinement.
Dans ce mode de codage progressif, les coefficients sont en plus parcourus dans un ordre particulier à travers les blocs constituants une image afin que, lors d'une troncature du paquet d'information rattaché à ce réhaussement en qualité SNR, l'incrément en qualité soit à peu près bien réparti sur l'image. Pour ce faire, le codage des coefficients se fait en plusieurs passes sur les différents blocs constituant une image ; à chaque passe de codage on ne code qu'un nombre limité de coefficient pour chaque bloc.
Ce type de NAL unit peut être tronqué avant décodage.
Le mode CGS (Codage par couches) est caractérisé par :
- Niveau de base codé à une qualité 0 (layer 0, ave QPO ) ;
- Niveaux de réhaussement codé à une qualité supérieure (QPi) ; - Raffinement de l'information de texture et mouvement ;
- Différence entre les couches et codage entropique.
Ce type de NAL unit ne peut pas être tronqué avant décodage.
On détaille maintenant la syntaxe du flux SVC.
La structure générale est décrite en référence à la figure 2. Le flux SVC est organisé en unités d'accès (en anglais : Access units (AUs)) correspondant chacune à un instant et comprenant une ou plusieurs unités d'accès pour le réseau (paquet) ou NALUs (Network Abstraction Layer Units - unités de couche d'abstraction réseau). Chaque NALU, ou NAL unit, est associée à une image issue de la décomposition spatio-temporelle, un niveau de résolution spatiale, et un niveau de qualité de codage. Cette structure en NALUs permet de réaliser une adaptation en débit et/ou résolution spatio temporelle en supprimant les NALUs de résolution spatiale trop grande, ou de fréquence temporelle trop grande ou bien encore de qualité de codage trop grande. Chaque NALU encapsule un slice d'image. Un slice est un ensemble de macroblocs contenus dans une image.
Le format des en-têtes de NAL unit dans la version actuelle de SVC est maintenant décrit en référence à la figure 3.
Chaque NAL unit spécifique à SVC (NAL unit de type 20 ou 21 ) comporte un octet d'entêté AVC (NAL unit type byte) et un ou deux octets d'en-tête SVC contenant les champs (P1D1T1Q) (Priorityjd, Dependency_id, Temporaljevel, Qualityjevel).
Ces champs peuvent être exploités pour réaliser une adaptation résolution spatiale et/ou fréquence temporelle et/ou qualité, en ne retenant que les NAL units ayant un niveau de champs (P,D,T,Q) suffisamment élevé. Le champ Priorityjd indique un niveau de priorité d'une NAL unit pouvant servir à guider une adaptation en qualité.
Le champ Dependencyjd permet de connaître le niveau de résolution spatiale d'une couche hiérarchique de codage. Ce niveau peut aussi contrôler un niveau de rehaussement en qualité SNR ou de réhaussement temporel dans le cadre d'un codage en couche (i.e. pour un nombre de points de fonctionnement discret).
Le champ Temporaljevel permet d'indiquer le niveau temporel indiquant la fréquence d'image. Le champ Qualityjevel permet d'indiquer le niveau de quantification progressive, et donc de contrôler le débit/qualité et/ou la complexité. En référence à la figure 4, les entêtes de NAL unit SVC sont uniformisés et il y a toujours deux octets d'entêté SVC. Le bit associé à l'élément syntaxique "extension_flag" a donc été transformé en l'élément syntaxique "reserved_bit" qui correspond à un bit non défini mais réservé pour une éventuelle utilisation future.
On considère maintenant le format des en-têtes de slices dans la version actuelle de SVC.
Un slice est un ensemble de macroblocs contenus dans une image. On peut retrouver plusieurs slices dans une image (typiquement pour limiter la taille des NAL unit, limiter l'impact d'une perte de paquet, réaliser un codage adaptatif par région d'image, ...).
Chaque slice est encapsulé dans une NALU. Dans SVC, les informations de réhaussement en qualité SNR sont codées dans des NAL units de type 20 ou 21 , ayant un "qualityjevel" non nul, et utilisant les "slice_type" suivants :
- PR : slice codé en mode de raffinement progressif (Progressive Refinement) ;
- El, EP, ou EB : slice codé en mode de raffinement non progressif (Enhanced I, P, B picture).
Il est possible de coder un réhaussement en qualité SNR via l'utilisation d'un codage de type non progressif. Cette approche est motivée par une mise en oeuvre plus aisée d'un codage SVC (la mise en oeuvre d'un codage progressif est relativement difficile), tout en offrant une scalabilité (échelonnabilité) à grain moyen (i.e. par pas de l'ordre de 10%) en débit.
La figure 5 illustre l'entête d'une NAL unit SVC qui est définie par la syntaxe suivante: - Le champ "simple_priohty_id", codé sur 6 bits, permet de signaler une information de priorité pour la NAL unit considérée. Cette information de priorité peut être utilisée par un outil d'adaptation du flux vidéo lors de la réalisation d'une adaptation du flux vidéo (par exemple en ne gardant que les NAL units ayant un niveau de priorité suffisant). - le champ discardable_flag, codé sur un bit, indique si la NAL unit considérée est utile dans le codage inter-couche (inter layer prédiction dans le vocabulaire SVC) d'une couche supérieure (par exemple correspondant à un niveau de résolution spatial supérieur).
- le champ reserved_bit, codé sur un bit, n'est pas utilisé et est réservé à une future utilisation éventuelle.
- le champ temporaljevel, codé sur 3 bits, indique le niveau temporel associé à la NAL unit considérée.
- le champ dependencyjd, codé sur 3 bits, indique l'indice de couche de codage à laquelle la NAL unit considérée contribue. La notion de couche de codage peut correspondre aux différents niveaux de résolution spatiale lors d'une scalabilité en résolution, mais aussi aux différentes couches de qualité SNR (voire temporel) lors d'un codage en couche.
- le champ qualityjevel, codé sur 2 bits, correspond au niveau de réhaussement en qualité SNR codé à l'intérieur d'une couche
(dpendency_id)
Afin de signaler si une NAL unit peut être tronquée ou non, l'invention propose alors dans un mode particulier de réalisation de réaffecter le bit_réservé disponible.
La syntaxe associée à une entête d'une NAL unit SVC selon l'invention est alors définie en référence à la figure 6.
Selon l'invention, l'indication de possibilité de la troncature d'une NAL unit SVC est réalisée en utilisant le bit associé à l'élément syntaxe "reserved_bit" disponible dans l'entête de NAL unit SVC. Ce champ est renommé "tru ncation_flag" :
- si la valeur du champ tru ncation_flag vaut 1 , alors la NAL unit considérée peut être tronquée lors d'une opération d'adaptation du flux vidéo ;
- si la valeur du champ tru ncation_flag vaut 0, alors la NAL unit considérée ne peut pas être tronquée lors d'une opération d'adaptation du flux vidéo.
Dans un mode particulier d'application, l'invention propose de ne pas lier directement le marquage de la possibilité de troncature au type de slice utilisé. Dans SVC, on considère les cas suivants : une NAL unit correspondant à une slice de type PR peut être tronquée ; une NAL unit correspondant à une slice de type El, EP ou EB ne peut être tronquée.
Ainsi, on peut être amené à l'aide de l'invention à signaler qu'une NAL unit codée en mode non progressif peut être tronquée ou bien encore qu'une
NAL unit codée en mode progressif ne peut être coupée.
On cite ci-après à titre d'exemple des indications utiles pour contrôler les adaptations autorisées :
- découper une NAL unit codée en mode non progressif si celle ci est trop longue,
- ne pas autoriser à tronquer une NAL unit codée en mode progressif parce qu'elle est trop petite, ou bien encore parce que le cadre applicatif considéré ne prend pas en compte la troncature de NAL unit.
En variante, on insère ce bit supplémentaire dans une NAL unit supplémentaire dans l'AU.

Claims

REVENDICATIONS
1 ) Procédé de codage de données en un flux scalable organisé en unités, caractérisé en ce que l'on indique dans l'entête d'une NAL unit SVC si cette NAL unit peut être tronquée ou non lors d'une opération d'adaptation du flux scalable considéré.
2) Procédé de codage selon la revendication 1 , caractérisé en ce que l'indication de la troncature d'une NAL unit SVC est réalisée en utilisant le bit associé à l'élément syntaxe "reserved_bit" disponible dans l'entête de NAL unit SVC. 3) Procédé de codage selon l'une quelconque des revendications précédentes, caractérisé en ce que le marquage de troncature n'est pas lié directement au type de slice utilisé.
4) Dispositif de codage de données en un flux scalable organisé en unités, caractérisé en ce qu'il comporte des moyens pour indiquer dans l'entête d'une NAL unit SVC si cette NAL unit peut être tronquée ou non lors d'une opération d'adaptation du flux scalable considéré.
5) Produit programme d'ordinateur comprenant des instructions de programme pour l'exécution du procédé de codage selon l'une au moins des revendications 1 à 3.
6) Signal comportant des données en un flux scalable organisé en unités, caractérisé en ce qu'il comporte une information dans l'entête d'une NAL unit SVC pour indiquer si cette NAL unit peut être tronquée ou non lors d'une opération d'adaptation du flux scalable considéré.
PCT/FR2007/051093 2006-04-07 2007-04-06 Procede et dispositif de codage de donnees en un flux scalable WO2007119020A2 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US12/296,294 US20100150224A1 (en) 2006-04-07 2007-04-06 Method and device for coding data in a scalable stream
EP07788931A EP2011340A2 (fr) 2006-04-07 2007-04-06 Procede et dispositif de codage de donnees en un flux scalable

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0651264A FR2899758A1 (fr) 2006-04-07 2006-04-07 Procede et dispositif de codage de donnees en un flux scalable
FR0651264 2006-04-07

Publications (2)

Publication Number Publication Date
WO2007119020A2 true WO2007119020A2 (fr) 2007-10-25
WO2007119020A3 WO2007119020A3 (fr) 2008-01-03

Family

ID=37775643

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2007/051093 WO2007119020A2 (fr) 2006-04-07 2007-04-06 Procede et dispositif de codage de donnees en un flux scalable

Country Status (4)

Country Link
US (1) US20100150224A1 (fr)
EP (1) EP2011340A2 (fr)
FR (1) FR2899758A1 (fr)
WO (1) WO2007119020A2 (fr)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2889017A1 (fr) * 2005-07-19 2007-01-26 France Telecom Procedes de filtrage, de transmission et de reception de flux video scalables, signal, programmes, serveur, noeud intermediaire et terminal correspondants
EP2150060A1 (fr) * 2008-07-28 2010-02-03 Alcatel, Lucent Procédé et agencement pour codage vidéo
KR100970388B1 (ko) * 2008-10-31 2010-07-15 한국전자통신연구원 네트워크 흐름기반 스케일러블 비디오 코딩 적응 장치 및 그 방법
WO2010105696A1 (fr) * 2009-03-20 2010-09-23 Nokia Corporation Transmission de données
US10237565B2 (en) 2011-08-01 2019-03-19 Qualcomm Incorporated Coding parameter sets for various dimensions in video coding
JP5926856B2 (ja) * 2012-04-06 2016-05-25 ヴィディオ・インコーポレーテッド 階層化されたビデオ符号化のためのレベル信号伝達
CN103780917B (zh) * 2012-10-19 2018-04-13 上海诺基亚贝尔股份有限公司 用于智能地适配视频分组的方法和网络单元
EP2962479B1 (fr) 2013-02-28 2016-11-30 Robert Bosch GmbH Intégration de dispositif électronique mobile avec des systèmes d'informations embarqués
US9602822B2 (en) * 2013-04-17 2017-03-21 Qualcomm Incorporated Indication of cross-layer picture type alignment in multi-layer video coding

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6011587A (en) * 1996-03-07 2000-01-04 Kokusai Denshin Denwa Kabushiki Kaisha Packet video bitrate conversion system
JP3193947B2 (ja) * 1997-01-08 2001-07-30 株式会社ディジタル・ビジョン・ラボラトリーズ データ送信システム及びデータ送信方法
US7054335B2 (en) * 2001-05-04 2006-05-30 Hewlett-Packard Development Company, L.P. Method and system for midstream transcoding of secure scalable packets in response to downstream requirements
US7409094B2 (en) * 2001-05-04 2008-08-05 Hewlett-Packard Development Company, L.P. Methods and systems for packetizing encoded data
MY136056A (en) * 2003-02-18 2008-08-29 Nokia Corp Picture decoding method
US20060156363A1 (en) * 2005-01-07 2006-07-13 Microsoft Corporation File storage for scalable media
US20070014346A1 (en) * 2005-07-13 2007-01-18 Nokia Corporation Coding dependency indication in scalable video coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
J. REICHEL; M. WIEN; H. SCHWARZ: "Joint Scalable Video Model JSVM-3", JVTP202, 7000520

Also Published As

Publication number Publication date
WO2007119020A3 (fr) 2008-01-03
FR2899758A1 (fr) 2007-10-12
EP2011340A2 (fr) 2009-01-07
US20100150224A1 (en) 2010-06-17

Similar Documents

Publication Publication Date Title
EP2011340A2 (fr) Procede et dispositif de codage de donnees en un flux scalable
AU2007319699B2 (en) Techniques for variable resolution encoding and decoding of digital video
JP4833296B2 (ja) 多階層を基盤としたスケーラブルビデオコーディング方法および装置
KR100681168B1 (ko) 미세 입상 스케일 가능한 비디오를 위한 잔류 신호의인코딩 및 디코딩 시스템 및 그 방법
JP4920110B2 (ja) 画質の改善
US7062096B2 (en) Apparatus and method for performing bitplane coding with reordering in a fine granularity scalability coding system
EP2052545B1 (fr) Dispositif et procede de codage et de decodage echelonnables de flux de donnees d&#39;images, signal et programme d&#39;ordinateur correspondants
FR2880743A1 (fr) Dispositif et procedes de codage et de decodage echelonnables de flux de donnees d&#39;images, signal, programme d&#39;ordinateur et module d&#39;adaptation de qualite d&#39;image correspondants
US20050157794A1 (en) Scalable video encoding method and apparatus supporting closed-loop optimization
CA2543947A1 (fr) Methode et appareil de selection adaptative de modele contextuel pour le codage entropique
US8243798B2 (en) Methods and apparatus for scalable video bitstreams
WO2007077178A1 (fr) Procede de codage et de decodage d&#39;une image ou d&#39;une sequence d&#39;images, dispositifs, programmes d&#39;ordinateur, et signal correspondants
US20060133483A1 (en) Method for encoding and decoding video signal
Su et al. A practical design of high-volume steganography in digital video files
Akujuobi Application of Wavelets to Video Compression
FR2903555A1 (fr) Dispositif et procede de codage et de decodage echelonnables de flux de donnees d&#39;images, signal et programme d&#39;ordinateur correspondants.
FR2903554A1 (fr) Dispositif et procede de codage et de decodage echelonnables de flux de donnees d&#39;images, signal et programme d&#39;ordinateur correspondants.
Conci et al. Transcoding vs. Scalability in Video Streaming for Heterogeneous Networks/Clients
WO2007042539A1 (fr) Dispositifs et procedes de codage et de decodage echelonnables de flux de donnees d&#39;images, signal, programme d&#39;ordinateur et module d&#39;adaptation de qualite d&#39;image correspondants
Chien et al. Region-of-interest-based ultra-low-bit-rate video coding
WO2005018234A1 (fr) Procede et systeme de fourniture de donnees de media
FR2911233A1 (fr) Procedes et dispositifs de codage et de decodage d&#39;un flux d de donnees scalable tenant compte d&#39;une classe de scalabilite, produits programme d&#39;ordinateur, signal et support de donnees correspondants.
FR2911235A1 (fr) Procedes et dispositifs de decodage et de codage d&#39;un flux de donnees scalable,produits programmes d&#39;ordinateur, support de donnees et signal correspondants

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07788931

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2007788931

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 12296294

Country of ref document: US