FR2891965A1 - METHOD, DEVICE AND PROGRAM FOR SCHEDULING DATA UNITS OF A SCALABLE VIDEO STREAM, AND CORRESPONDING TERMINAL THEREFOR. - Google Patents
METHOD, DEVICE AND PROGRAM FOR SCHEDULING DATA UNITS OF A SCALABLE VIDEO STREAM, AND CORRESPONDING TERMINAL THEREFOR. Download PDFInfo
- Publication number
- FR2891965A1 FR2891965A1 FR0510339A FR0510339A FR2891965A1 FR 2891965 A1 FR2891965 A1 FR 2891965A1 FR 0510339 A FR0510339 A FR 0510339A FR 0510339 A FR0510339 A FR 0510339A FR 2891965 A1 FR2891965 A1 FR 2891965A1
- Authority
- FR
- France
- Prior art keywords
- data units
- quantization
- scheduling
- layer
- data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 54
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 title 1
- 238000013139 quantization Methods 0.000 claims abstract description 56
- 230000002123 temporal effect Effects 0.000 claims description 51
- 230000001419 dependent effect Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 230000009466 transformation Effects 0.000 claims description 6
- 230000002457 bidirectional effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 claims description 4
- 238000011002 quantification Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 claims description 2
- 238000003780 insertion Methods 0.000 claims description 2
- 230000037431 insertion Effects 0.000 claims description 2
- 238000004422 calculation algorithm Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000033001 locomotion Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 230000006978 adaptation Effects 0.000 description 5
- 238000000354 decomposition reaction Methods 0.000 description 5
- CLOMYZFHNHFSIQ-UHFFFAOYSA-N clonixin Chemical compound CC1=C(Cl)C=CC=C1NC1=NC=CC=C1C(O)=O CLOMYZFHNHFSIQ-UHFFFAOYSA-N 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 101150012579 ADSL gene Proteins 0.000 description 2
- 102100020775 Adenylosuccinate lyase Human genes 0.000 description 2
- 108700040193 Adenylosuccinate lyases Proteins 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- VBRBNWWNRIMAII-WYMLVPIESA-N 3-[(e)-5-(4-ethylphenoxy)-3-methylpent-3-enyl]-2,2-dimethyloxirane Chemical compound C1=CC(CC)=CC=C1OC\C=C(/C)CCC1C(C)(C)O1 VBRBNWWNRIMAII-WYMLVPIESA-N 0.000 description 1
- 101000969688 Homo sapiens Macrophage-expressed gene 1 protein Proteins 0.000 description 1
- 102100021285 Macrophage-expressed gene 1 protein Human genes 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002844 melting Methods 0.000 description 1
- 230000008018 melting Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/631—Multimode Transmission, e.g. transmitting basic layers and enhancement layers of the content over different transmission paths or transmitting with different error corrections, different keys or with different transmission protocols
-
- 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/114—Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- 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/31—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal 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/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/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
- H04N19/615—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding using motion compensated temporal filtering [MCTF]
-
- 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/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234327—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing 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/23805—Controlling the feeding rate to the network, e.g. by controlling the video pump
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/266—Channel 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/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
L'invention concerne un procédé d'ordonnancement d'unités (51) de données d'un flux vidéo scalable au moins dans les dimensions temporelle et de quantification, obtenues par un codage hiérarchique, comprenant une étape d'ordonnancement délivrant une liste ordonnée desdites unités de données comprenant, pour un ensemble d'unités de données à ordonner, les étapes suivantes :- introduction dans ladite liste ordonnée des unités de données de la couche de base de quantification ;- association (53), à chaque unité de données d'une couche de raffinement de quantification, d'une information d'efficacité représentative d'un accroissement de qualité et/ou d'un accroissement de débit procurés par ladite unité de données ;- ordonnancement (54) desdites unités de données de couches de raffinement de quantification en fonction desdites informations d'efficacité et d'un critère de présence, indiquant que lesdites unités de données de référence de l'unité de données considérée sont déjà présentes dans ladite liste ordonnée.The invention relates to a method for scheduling data units (51) of a scalable video stream at least in time and quantization dimensions, obtained by hierarchical coding, comprising a scheduling step delivering an ordered list of said data units comprising, for a set of data units to be ordered, the following steps: - introducing into said ordered list of data units of the quantization base layer; - association (53), to each data unit of the quantization base layer; a quantization refinement layer, an efficiency information representative of an increase in quality and / or a rate increase provided by said data unit; scheduling (54) said data layer data units; quantization refinement according to said effectiveness information and a presence criterion, indicating that said reference data units of the data unit es considered are already present in said ordered list.
Description
Procédé, dispositif et programme d'ordonnancement d'unités de données d'unMethod, device and program for scheduling data units of a
flux vidéo scalable, et terminal correspondant. 1. Domaine de l'invention Le domaine de l'invention est celui du codage et du décodage de flux de données, et plus particulièrement de flux de données scalables (ou échelonnables), présentant une structure hiérarchique en couches, ou en niveaux. Ces couches peuvent être définies dans plusieurs dimensions, et classiquement les dimensions temporelle, en qualité et/ou spatiale. De manière générale, il est souhaitable d'ordonner les unités de données constituant le flux de données selon leur efficacité, c'est-à-dire selon l'amélioration de qualité qu'elles apportent, par rapport au débit requis. Ceci permet, dans le cas où toutes les unités de données ne sont pas utilisées dans le terminal, de fournir une qualité de restitution optimisée. On définit donc des niveaux de priorité pour ordonner les unités de données d'un flux de données. En d'autres termes, on doit définir une liste ordonnée des unités de données. L'invention concerne plus précisément cet aspect. Elle vise donc à proposer une technique d'ordonnancement telle que les données les plus pertinentes soient extraites en premier lors d'une adaptation en débit et/ou résolution spatio-temporelle. scalable video stream, and corresponding terminal. FIELD OF THE DISCLOSURE The field of the invention is that of coding and decoding of data streams, and more particularly of scalable (or scalable) data streams having a hierarchical structure in layers, or in levels. These layers can be defined in several dimensions, and classically the temporal dimensions, in quality and / or spatial. In general, it is desirable to order the data units constituting the data stream according to their efficiency, that is to say according to the improvement in quality that they provide, with respect to the required bit rate. This allows, in the case where all the data units are not used in the terminal, to provide an optimized playback quality. Priority levels are thus defined for ordering the data units of a data stream. In other words, we must define an ordered list of data units. The invention relates more precisely to this aspect. It therefore aims to propose a scheduling technique such that the most relevant data are extracted first during a rate adaptation and / or spatio-temporal resolution.
L'invention s'applique notamment, mais non exclusivement, aux codeurs vidéos échelonnables (ou SVC pour Scalable Video Coding en anglais) (aussi appelés par la suite codeurs vidéos scalables ) fonctionnant en boucle fermée. Il est clair cependant que d'autres codeurs scalables en boucle fermée peuvent mettre en oeuvre l'invention. 2. Techniques de l'art antérieur 2.1. Codage vidéo scalable 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. Plus récemment sont apparus des algorithmes de codage vidéo dit scalables (à qualité adaptable et résolution spatio-temporelle variable) pour lesquels le codeur génère un flux compressé en plusieurs couches, chacune de ses couches étant emboîtée dans la couche de niveau supérieur. 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 de caractéristiques différentes, et par exemple : - services de vidéo à la demande (en anglais video on demand , ou VOD), pour des terminaux de type UMTS, PC ADSL, TV ADSL... mobilité de session (reprise sur un PDA (assistant personnel électronique) d'une session vidéo commencée sur un téléviseur ; ou sur un mobile UMTS d'une session commencée sur le réseau GPRS) ; - continuité de session (partage de la bande passante avec une nouvelle application) ; télévision haute définition (encodage unique pour servir des clients à une définition standard (SD) ou à une haute définition (HD) ; visioconférence (encodage unique pour des clients UMTS et des clients Internet). Certains de ces algorithmes de codage vidéo scalables sont aujourd'hui en cours d'adoption par la norme MPEG ("Moving Picture Expert Group" pour "Groupe d'experts en codage d'images"), dans le cadre du groupe de travail MPEG4. The invention applies in particular, but not exclusively, to Scalable Video Coding (SVC), also known as scalable video encoders, which operate in a closed loop. It is clear, however, that other scalable closed-loop coders can implement the invention. 2. Techniques of the Prior Art 2.1. Scalable Video Encoding Most video encoders generate a single compressed stream corresponding to the entire encoded sequence. If several clients wish to use the compressed file for decoding and visualization, they will have to download (or stream) the complete compressed file. More recently, so-called scalable video coding algorithms (adaptive quality and variable spatio-temporal resolution) have appeared for which the coder generates a compressed stream in several layers, each of its layers being nested in the layer of higher level. Such coders are very useful for all applications for which the generation of a single compressed stream, organized into several scalability layers, can serve several clients of different characteristics, and for example: - video-on-demand services (in English video on demand, or VOD), for terminals of the UMTS type, PC ADSL, TV ADSL ... session mobility (recovery on a PDA (electronic personal assistant) of a video session started on a television, or on a mobile UMTS of a session started on the GPRS network); - continuity of session (bandwidth sharing with a new application); High definition television (single encoding to serve standard definition (SD) or high definition (HD) clients; videoconferencing (single encoding for UMTS clients and Internet clients) Some of these scalable video coding algorithms are now is now being adopted by the MPEG ("Moving Picture Expert Group" for "Image Coding Expert Group") as part of the MPEG4 Working Group.
Notamment, le modèle qui a été retenu récemment par le groupe de travail MPEG-4 AVC ( Scalable Video Coding pour codage vidéo scalable ) est appelé SVM ( Scalable Video Model pour modèle vidéo scalable ), et est fondé sur un codeur scalable basé sur des solutions de type AVC ( Advanced Video Coding pour codage vidéo avancé ). Ce modèle est décrit plus en détails dans le document N6716 ISO/IEC JTC 1/SC 29/WG 11, intitulé Scalable Video Model 3.0 , Octobre 2004, Palma de Mayorque, Espagne. Le groupe de travail MPEG 4 a pour objectif de proposer une norme de fourniture de flux scalables à grain moyen dans les dimensions temporelle, spatiale et en qualité. 2.2 Le codeur SVM MPEG-4 SVC 2.2.1 Principales caractéristiques du codeur 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 dyadique (décimation 2D par 2 référencée 11, décimation 2D par 4 référencée 12). Chacun des flux sous-échantillonnés subit ensuite une décomposition temporelle 13 de type MCTF ( Motion Compensated Temporal Filtering pour filtrage temporel compensé en mouvement ). Une version basse résolution de la séquence vidéo est codée 19 jusqu'à un débit donné qui correspond au débit maximum décodable pour la résolution spatiale basse (ce niveau de base est compatible AVC). Notably, the model recently adopted by the MPEG-4 AVC (Scalable Video Coding) Working Group is called SVM (Scalable Video Model for Scalable Video Model), and is based on a scalable encoder based on AVC solutions (Advanced Video Coding for Advanced Video Coding). This model is described in more detail in N6716 ISO / IEC JTC 1 / SC 29 / WG 11, Scalable Video Model 3.0, October 2004, Palma de Mallorca, Spain. The aim of the MPEG 4 working group is to propose a standard for the supply of scalable medium grain streams in time, space and quality. 2.2 The SVM MPEG-4 SVC Encoder 2.2.1 Key Characteristics of the Encoder Figure 1 illustrates the structure of such an encoder, which has a pyramidal structure. The video input components 10 undergo dyadic subsampling (2D decimation by 2 referenced 11, 2D decimation by 4 referenced 12). Each of the subsampled streams is then subjected to a temporal decomposition 13 of the MCTF (Motion Compensated Temporal Filtering) type. A low resolution version of the video sequence is encoded 19 up to a given bit rate which corresponds to the maximum decodable bit rate for the low spatial resolution (this base level is AVC compatible).
Les niveaux supérieurs sont ensuite codés 19 par soustraction du niveau précédent reconstruit et sur-échantillonné et codage des résidus sous forme : d'un niveau de base ; éventuellement d'un ou plusieurs niveaux de rehaussement obtenus par codage multipasse de plans de bits (appelé par la suite FGS pour Fine Grain Scalability , échelonnabilité à grain fin). Selon cette approche, on distingue les informations de mouvement 17 et les informations de texture 18. Afin de réaliser une adaptation en débit, les informations de texture 18 sont codées à l'aide d'un schéma progressif : codage d'un premier niveau de qualité minimale (appelé Base Layer en anglais, ou Couche de Base) ; codage de niveaux de raffinement progressif (appelés Enhancement Layer en anglais, ou Couche de Réhaussement). En référence à la figure 1, les informations de texture 18 alimentent un module de codage de la couche de base de quantification 19. Les données codées, en sortie du module 19 servent à alimenter un bloc 21 de transformation spatiale et de codage entropique, qui travaille sur les niveaux de raffinement du signal. Les données en sortie du module 21 alimentent une interpolation 20 depuis le niveau de base. Un module de multiplexage 22 ordonne les différents sous-flux générés dans un flux de données compressé global 23. The higher levels are then encoded by subtracting the previous reconstructed and over-sampled level and encoding the residuals as: a base level; optionally one or more enhancement levels obtained by multi-pass encoding of bit planes (hereinafter referred to as FGS for Fine Grain Scalability, fine grained scalability). According to this approach, the motion information 17 and the texture information 18 are distinguished. In order to achieve a rate adaptation, the texture information 18 is coded using a progressive scheme: coding of a first level of minimum quality (called Base Layer, or Base Layer); coding of progressive refinement levels (called Enhancement Layer, or Layer of Enhancement). With reference to FIG. 1, the texture information 18 feeds a coding module of the quantization base layer 19. The coded data, at the output of the module 19, are used to feed a block 21 for spatial transformation and entropic coding, which is working on the levels of signal refinement. The output data of the module 21 feeds an interpolation 20 from the base level. A multiplexing module 22 orders the different sub-streams generated in a global compressed data stream 23.
Le flux compressé 23, en sortie du codeur, est donc structuré en unités de données élémentaires appelées NALU ( Network Abstraction Layer Unit en anglais). Chaque NALU est associée à une image issue de la décomposition spatio-temporelle, un niveau de résolution spatiale, et un niveau de quantification. Cette structuration en unités élémentaires 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é d'encodage trop grande. 2.2.2 Mécanisme de niveaux de priorité Le principe du mécanisme de niveaux de priorité a été développé par les inventeurs de la présente demande de brevet, et est décrit dans la demande de brevet FR-05 00331, non encore publiée. Elle consiste à associer à des éléments ou portions d'éléments d'un flux SVC ( Scalable Video Coding pour codage vidéo scalable ) une information, dite de niveaux de priorité. Ainsi, cette information de niveau de priorité permet à un extracteur (aussi appelé module d'adaptation de qualité) d'extraire de façon efficace les informations les plus pertinentes lors d'une adaptation en débit et/ou résolution spatio-temporelle. La figure 2 illustre les résultats obtenus au moyen du codeur scalable de la figure 1, sous la forme de courbes débit-distorsion, représentées pour des fonctionnements avec et sans mécanisme de niveaux de priorité et pour une résolution QCIF ( Quarter Common Interface Format , le QCIF correspond à un quart de format TV) à 15 Hz. En ordonnée, on a représenté le PSNR ( Peak Signal to Noise Ratio pour rapport signal à bruit crête ) et en abscisse, le débit exprimé en kbits/s. Ainsi, la courbe référencée 24 correspond à un fonctionnement sans mécanisme de niveaux de priorité et la courbe référencée 25 à un fonctionnement avec mécanisme de niveaux de priorité. Le mécanisme de niveaux de priorité permet donc pour une même qualité de gagner de l'ordre de 10 à 15% de débit. L'estimation des niveaux de priorité à utiliser repose sur un formalisme débit-distorsion, ce type d'estimation comprend quatre étapes : une première étape au cours de laquelle on estime, pour chaque sous-partie du flux considéré, les variations en débit deltaR et en qualité deltaD engendrées ; lors de l'étape suivante, on calcule à partir des variations estimées, l'enveloppe convexe de l'ensemble des couples débit-qualité pour chaque image codée dans le flux ; ensuite lors d'une troisième étape, on récupère les points qui sont définis par des couples débit-qualité se positionnant sur l'enveloppe convexe calculée et en lesquels il est possible d'associer une valeur de pente ; enfin lors d'une quatrième étape, on associe à chaque point récupéré un niveau de priorité correspondant à une valeur quantifiée de pente. 2.2.3 Fonctionnement du codeur MPEG-4 SVC en boucle ouverte et en boucle fermée 20 Le codeur MPEG-4 SVC peut mettre en oeuvre deux types de décorrélation temporelle : la décorrélation temporelle de type MCTF, qui comprend une phase de prédiction consistant en un calcul de résidu sur des images issues d'une prédiction par compensation en mouvement, et une phase de mise à jour ( update en anglais) consistant en une réinjection par compensation du mouvement des résidus préalablement calculés dans les images de références ayant servies à la prédiction précédente ; - la décorrélation temporelle de type UMCTF ( Unconstrained Motion Compensated Temporal Filtering pour filtrage temporel 10 15 25 30 compensé en mouvement non contraint ) qui comprend uniquement la phase de prédiction précitée. Il est à noter que cette phase de prédiction unique s'applique également pour le cas d'une transformation temporelle d'images B de type hiérarchique ( hierarchical B-frames en anglais). Ce codeur peut également fonctionner dans deux modes distincts : en mode boucle ouverte ( open loop en anglais), dans lequel les compensations de mouvement au codeur sont effectuées en utilisant les valeurs originales des images ; en mode boucle fermée ( closed loop en anglais), dans lequel les compensations de mouvement au codeur sont effectuées en utilisant les valeurs codées-décodées de ces images. La technique de codage en boucle fermée est une technique couramment utilisée dans les codeurs par prédiction (par exemple dans les schémas de codage MPEG1, MPEG2, ...) pour éviter les phénomènes de dérive. En effet, un codeur peut faire une prédiction à partir d'images originales, alors que le décodeur correspondant ne dispose que de versions codées-décodées de ces images. Cette technique de codage en boucle fermée permet donc de fournir au codeur et au décodeur les mêmes images de référence. The compressed stream 23, at the output of the coder, is therefore structured in unitary data units called Network Abstraction Layer Units (NALUs). Each NALU is associated with an image resulting from spatio-temporal decomposition, a spatial resolution level, and a quantization level. This structuring in elementary units makes it possible to adapt the bit rate and / or space-time resolution by eliminating the NALUs with too great spatial resolution, or with too long a time frequency, or even with too much encoding quality. 2.2.2 Priority level mechanism The principle of the priority level mechanism has been developed by the inventors of this patent application, and is described in patent application FR-05 00331, not yet published. It consists in associating elements or portions of elements of an SVC (Scalable Video Coding) stream with so-called priority level information. Thus, this priority level information allows an extractor (also called quality adaptation module) to efficiently extract the most relevant information during a rate adaptation and / or spatio-temporal resolution. FIG. 2 illustrates the results obtained by means of the scalable coder of FIG. 1, in the form of flow-distortion curves, represented for operations with and without a priority level mechanism and for a QCIF (Quarter Common Interface Format) resolution. QCIF corresponds to a quarter of TV format) at 15 Hz. The ordinate shows the PSNR (Peak Signal to Noise Ratio for peak signal-to-noise ratio) and in abscissa, the rate expressed in kbits / s. Thus, the referenced curve 24 corresponds to an operation without a priority level mechanism and the curve referenced to operation with a priority level mechanism. The priority level mechanism therefore makes it possible for the same quality to gain on the order of 10 to 15% of flow. The estimation of the priority levels to be used is based on a rate-distortion formalism, this type of estimation comprises four steps: a first step during which it is estimated, for each sub-part of the flow considered, the variations in deltaR flow rate and in deltaD quality generated; in the next step, from the estimated variations, the convex envelope of the set of quality-rate pairs for each image coded in the stream is calculated; then in a third step, the points are recovered which are defined by quality-flow couples positioned on the calculated convex envelope and in which it is possible to associate a slope value; finally, in a fourth step, each retrieved point is associated with a priority level corresponding to a quantized slope value. 2.2.3 Operation of the MPEG-4 SVC coder in open loop and closed loop The MPEG-4 SVC encoder can implement two types of time decorrelation: MCTF time decorrelation, which includes a prediction phase consisting of a calculation of residue on images resulting from a prediction by motion compensation, and an update phase consisting of a feedback by compensation of the movement of the previously calculated residuals in the reference images used for the prediction previous ; the temporal decorrelation of the Unconstrained Motion Compensated Temporal Filtering (UMCTF) type for temporal filtering compensated in unconstrained motion, which comprises only the aforementioned prediction phase. It should be noted that this unique prediction phase also applies for the case of a temporal transformation of hierarchical B-frames (hierarchical B-frames). This encoder can also operate in two distinct modes: in open loop mode, in which the motion compensations to the encoder are performed using the original values of the images; in closed loop mode, in which the motion compensations to the encoder are performed using the coded-decoded values of these images. The closed-loop coding technique is a technique commonly used in prediction coders (for example in the MPEG1, MPEG2, ... coding schemes) to avoid drift phenomena. Indeed, an encoder can make a prediction from original images, while the corresponding decoder has only coded-decoded versions of these images. This closed-loop coding technique therefore makes it possible to provide the coder and the decoder with the same reference images.
Dans le document JVT-P059, intitulé Comparison of MCTF and closed-loop hierarchal B pics , Juillet 2005, Poznan, il est montré que l'adjonction d'une technique de codage en boucle fermée et d'une transformation temporelle d'images B de type hiérarchique permet d'obtenir de meilleures performances (en termes de débit-distorsion) qu'une technique de codage par MCTF en boucle ouverte. 2.2.4 Structure de codage de type hierarchical B-frames en boucle fermée Dans toute la suite de ce document, on considérera la notation suivante : pour une image B, ,y le premier indice x correspond au niveau hiérarchique temporel (ou couche de réhaussement temporelle) de cette image et le deuxième indice y à l'indice de cette image dans son niveau hiérarchique temporel. On entend ici par niveau hiérarchique le niveau de résolution temporelle. Le niveau hiérarchique maximal temporel correspond au niveau de plus haute résolution, c'est-à-dire de fréquence temporelle la plus élevée. On parlera aussi dans ce cas de niveau hiérarchique le plus profond. Une structure de codage de type hierarchical B-frames en boucle fermée donne lieu à une décomposition dyadique : à chaque nouveau niveau hiérarchique, une nouvelle image est insérée entre chaque couple d'image des niveaux hiérarchique préalables. Bien entendu, de manière plus générale, il est possible d'avoir pour chaque nouveau niveau hiérarchique, l'insertion d'aucune, une ou plusieurs images entre chaque couple d'image des niveaux hiérarchiques préalables. On décrit maintenant en relation avec la figure 3, une structure de codage par utilisation d'images B de type hiérarchique ( hierarchical B-frames ) : l'image à t+2 (B,,,) est codée en utilisant une prédiction obtenue à partir des images à t (Bo,,) et à t+4 (Bo,2) ; - l'image à t+l (B2,1) est codée en utilisant une prédiction obtenue à partir des images à t (Bo,,) et à t+2 (B,,,) ; -l'image à t+3 (B2,2) est codée en utilisant une prédiction obtenue à partir des images à t+2 (B,,,) et à t+4 (80,2). Lors d'un fonctionnement en boucle fermée, les prédictions des différentes images sont obtenues en utilisant les versions codées-décodées des images de référence. Dans le cadre d'un codage scalable (c'est-à-dire à plusieurs niveaux de qualité), un codage en boucle fermée est effectué à chaque niveau de quantification. Les résidus de prédiction à chaque niveau de quantification sont codés de façon différentielle par rapport au résidu de prédiction codée-décodée du niveau de quantification précédent. Les informations ainsi codées forment un incrément de qualité (également appelé incrément de quantification). In the document JVT-P059, entitled Comparison of MCTF and closed-loop hierarchical B peaks, July 2005, Poznan, it is shown that the addition of a closed-loop coding technique and a temporal transformation of B-images Hierarchical type provides better performance (in terms of rate-distortion) than an open-loop MCTF coding technique. 2.2.4 Hierarchical closed-loop B-frame encoding structure Throughout the rest of this document, we will consider the following notation: for an image B, y the first index x corresponds to the temporal hierarchical level (or enhancement layer). temporal) of this image and the second index y to the index of this image in its temporal hierarchical level. By hierarchical level is meant here the level of temporal resolution. The maximum time hierarchical level corresponds to the highest resolution level, ie the highest temporal frequency. We will also speak in this case of the deepest hierarchical level. A closed-loop hierarchical B-frames encoding structure gives rise to a dyadic decomposition: at each new hierarchical level, a new image is inserted between each image pair of the previous hierarchical levels. Of course, more generally, it is possible to have for each new hierarchical level, the insertion of any, one or more images between each image pair of the previous hierarchical levels. A hierarchical type B (hierarchical B-frames) coding structure is now described with reference to FIG. 3: the image at t + 2 (B ,,,) is coded using a prediction obtained. from the images at t (Bo ,,) and at t + 4 (Bo, 2); the image at t + 1 (B2,1) is encoded using a prediction obtained from the images at t (Bo ,,) and at t + 2 (B ,,,); the image at t + 3 (B2.2) is coded using a prediction obtained from the images at t + 2 (B 1,) and at t + 4 (80.2). In closed-loop operation, the predictions of the different images are obtained using the coded-decoded versions of the reference images. In the context of scalable (i.e., multi-level) coding, closed-loop coding is performed at each quantization level. The prediction residuals at each quantization level are differentially encoded with respect to the coded-decoded prediction residue of the previous quantization level. The information thus coded forms a quality increment (also called quantization increment).
Avec une telle structure de codage en boucle fermée, les incréments de résidus codés pour une image sont donc conditionnels au fait que les images de référence sont au préalable codées-décodées pour le niveau de qualité de codage considéré. 3. Inconvénients de l'art antérieur La technique de calcul des niveaux de priorité utilisée actuellement est une technique qui repose sur le concept de séparabilité des images à coder. C'est-à-dire que l'on suppose que l'influence du niveau de codage d'une image n'influe pas sur les performances attendues par le codage d'une autre image. Cette propriété est assurée par l'utilisation d'une technique de codage de type MCTF en boucle ouverte comme outil de décorrélation temporelle. Dans le cadre d'une technique de codage par hierarchical B-frames (ou par UMCTF) en boucle fermée, cette propriété n'est plus valide, puisque le codage des images dépend pour chaque niveau hiérarchique temporel d'au moins deux images de référence, dites images parentes, d'un niveau hiérarchique temporel supérieur. Il en résulte que la technique actuelle de calcul des niveaux de priorité n'est pas bien adaptée. 4. Objectifs de l'invention L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur. Plus précisément, un objectif de l'invention est de fournir une technique d'ordonnancement des unités de données d'un flux vidéo scalable, notamment codé en boucle fermée, qui soit plus efficace, en termes de qualité et/ou débit, que les techniques connues. With such a closed-loop coding structure, the increments of coded residues for an image are therefore conditional on the fact that the reference images are previously coded-decoded for the quality level of coding considered. 3. Disadvantages of the Prior Art The technique for calculating the levels of priority currently used is a technique which is based on the concept of separability of the images to be encoded. That is, it is assumed that the influence of the coding level of an image does not affect the performance expected by encoding another image. This property is ensured by the use of an open-loop MCTF coding technique as a temporal decorrelation tool. In the context of a closed-loop hierarchical B-frames (or UMCTF) encoding technique, this property is no longer valid, since the coding of the images depends for each hierarchical level of time on at least two reference images , called parent images, of a higher temporal hierarchical level. As a result, the current technique for calculating priority levels is not well suited. 4. OBJECTIVES OF THE INVENTION The object of the invention is notably to overcome these disadvantages of the prior art. More specifically, an object of the invention is to provide a technique for scheduling the data units of a scalable video stream, in particular coded in a closed loop, which is more efficient, in terms of quality and / or bitrate, than the known techniques.
En d'autres termes, un objectif de l'invention est de fournir une telle technique, qui maximise l'efficacité de la reconstruction du flux, en particulier lorsque celui-ci n'est exploité que partiellement. Un autre objectif de l'invention est de fournir une telle technique, qui n'introduise pas de complexité ni de traitements importants. Notamment, un objectif de l'invention est de permettre une extraction simple et efficace des données les plus importantes d'un flux SVC lors d'une adaptation en débit et/ou résolution spatio-temporelle. L'invention a encore pour objectif de fournir une telle technique qui, dans un mode de réalisation particulier, soit adaptée à un codeur et à un décodeur de type MPEG4-SVC mettant en oeuvre une technique de codage par hierarchical B-frames et fonctionnant en boucle fermée. 5. Caractéristiques principales de l'invention Ces objectifs, ainsi que d'autres qui apparaîtront plus clairement par la suite, sont atteints à l'aide d'un procédé d'ordonnancement d'unités de données d'un flux vidéo scalable au moins dans les dimensions temporelle et de quantification, obtenues par un codage hiérarchique, lesdites unités de données étant organisées en couches successives comprenant une couche de base temporelle et au moins une couche de réhaussement temporelle dans ladite dimension temporelle et une couche de base de quantification et au moins une couche de raffinement de quantification dans ladite dimension de quantification, chaque unité de données d'une couche de réhaussement temporelle donnée étant codée en tenant compte d'au moins une unité de données de référence d'une couche temporelle inférieure. Selon l'invention, le procédé comprend une étape d'ordonnancement 20 délivrant une liste ordonnée desdites unités de données comprenant, pour un ensemble d'unités de données à ordonner, les étapes suivantes : introduction dans ladite liste ordonnée des unités de données de la couche de base de quantification ; association, à chaque unité de données d'une couche de raffinement de 25 quantification, d'une information d'efficacité représentative d'un accroissement de qualité et/ou d'un accroissement de débit procurés par ladite unité de données ; ordonnancement desdites unités de données de couches de raffinement de quantification en fonction desdites informations d'efficacité et d'un critère 30 de présence, indiquant que lesdites unités de données de référence de l'unité de données considérée sont déjà présentes dans ladite liste ordonnée. Ainsi, on organise les unités de données de façon optimisée et adaptée en particulier à un codage en boucle fermée. Notamment, on obtient une efficacité supérieure à celle de l'art antérieur. De façon avantageuse, le procédé comprend une étape de définition de relations de dépendance entre lesdites unités de données, de façon à contrôler ledit critère de présence. Il est en effet souhaitable de connaître au préalable ces relations de dépendance, en particulier pour la mise en oeuvre du codage en boucle fermée. Préférentiellement, ladite étape de définition de relations de dépendance comprend une étape d'identification, pour chaque unité de données d'une couche de réhaussement temporelle, d'une unité de données de référence unique, dite unité de données de référence père, choisie de façon que la présence de ladite unité de données de référence père dans ladite liste ordonnée garantisse la présence dans ce dernier de l'ensemble desdites unités de données de référence. De façon avantageuse, ladite unité de données de référence père d'une unité de données d'une couche de réhaussement temporelle de niveau n est l'unité de données de référence présentant l'indice le plus élevé, respectivement le plus faible, parmi l'ensemble des unités de données de référence de la couche de réhaussement temporelle de niveau n-1. Selon un mode de réalisation préférentiel de l'invention, lesdites unités de données sont codées à l'aide d'un codage hiérarchique mettant en oeuvre une transformation temporelle délivrant des images codées en mode bidirectionnel en boucle fermée. Dans ce cas, lesdites unités de données peuvent comprendre : des images Intra, dites images I ; des images prédites en mode monodirectionnel, dites images P ; des images prédites en mode bidirectionnel, dites images B. In other words, an object of the invention is to provide such a technique, which maximizes the efficiency of the reconstruction of the flow, especially when it is operated only partially. Another object of the invention is to provide such a technique, which does not introduce complexity or important treatments. In particular, an objective of the invention is to allow a simple and efficient extraction of the most important data of an SVC stream during a rate adaptation and / or spatio-temporal resolution. It is another object of the invention to provide such a technique which, in a particular embodiment, is adapted to an MPEG4-SVC coder and decoder implementing a hierarchical B-frames coding technique and operating in a closed loop. 5. Main features of the invention These objectives, as well as others which will appear more clearly later, are achieved by means of a method of scheduling data units of a scalable video stream at least in the temporal and quantization dimensions, obtained by hierarchical coding, said data units being organized in successive layers comprising a temporal base layer and at least one temporal enhancement layer in said temporal dimension and a quantization base layer, and least one quantization refinement layer in said quantization dimension, each data unit of a given temporal enhancement layer being encoded taking into account at least one reference data unit of a lower temporal layer. According to the invention, the method comprises a scheduling step 20 delivering an ordered list of said data units comprising, for a set of data units to be ordered, the following steps: input into said ordered list of data units of the quantization base layer; associating, with each data unit of a quantization refinement layer, information of efficiency indicative of an increase in quality and / or an increase in bit rate provided by said data unit; scheduling said quantization refinement layer data units based on said effectiveness information and a presence criterion, indicating that said reference data units of the relevant data unit are already present in said ordered list. Thus, the data units are organized in an optimized manner and adapted in particular to a closed-loop coding. In particular, an efficiency superior to that of the prior art is obtained. Advantageously, the method comprises a step of defining dependency relationships between said data units, so as to control said presence criterion. It is indeed desirable to know in advance these dependency relationships, in particular for the implementation of closed-loop coding. Preferably, said step of defining dependency relationships comprises a step of identifying, for each data unit of a temporal enhancement layer, a single reference data unit, called the parent reference data unit, chosen from so that the presence of said parent reference data unit in said ordered list ensures the presence therein of all of said reference data units. Advantageously, said reference data unit father of a data unit of a n-level temporal enhancement layer is the reference data unit having the highest or the lowest index among set of reference data units of the n-1 level temporal enhancement layer. According to a preferred embodiment of the invention, said data units are coded using a hierarchical coding implementing a temporal transformation delivering images encoded in bidirectional closed-loop mode. In this case, said data units may comprise: Intra images, called I images; predicted images in monodirectional mode, called P-pictures; predicted images in bidirectional mode, called B images.
Ladite étape d'ordonnancement consiste alors avantageusement à sélectionner, couche de raffinement de quantification par couche de raffinement de quantification, en commençant par ladite couche de base, l'ensemble desdites images I, puis l'ensemble desdites images P et enfin l'ensemble desdites images B ordonnées par couches de réhaussement temporelles. Selon un aspect avantageux de l'invention, ladite étape d'ordonnancement traite simultanément des groupes d'au moins deux unités de données, de façon à prendre en compte la somme desdites informations d'efficacité et privilégier un groupe par rapport à un autre, s'il est globalement plus efficace. Said scheduling step then advantageously consists in selecting, quantization refinement layer by quantization refinement layer, starting with said base layer, all of said images I, then all of said images P and finally all said images B ordered by temporal enhancement layers. According to an advantageous aspect of the invention, said scheduling step simultaneously processes groups of at least two data units, so as to take into account the sum of said efficiency information and privilege one group with respect to another, if it is overall more efficient.
De façon préférentielle, ladite étape d'ordonnancement peut sélectionner lesdits groupes d'unités de données de façon qu'une courbe débit / qualité représentative dudit chemin corresponde à une enveloppe convexe de l'ensemble des différents chemins de hiérarchisation admissibles. Avantageusement, ladite étape d'ordonnancement comprend, pour chaque couche de réhaussement temporelle n, une étape de fusion de sous-listes ordonnées des unités de données dépendantes, pour chaque unité de données de ladite couche de réhaussement temporelle n, puis une étape de fusion des listes ordonnées de l'ensemble des couches de raffinement de quantification. Selon une autre caractéristique avantageuse de l'invention, le procédé comprend une étape d'insertion, dans un signal comprenant lesdites unités de données, d'au moins une information représentative de ladite liste ordonnée. L'invention concerne également un dispositif de transmission et/ou de stockage d'un flux vidéo scalable mettant en oeuvre le procédé tel que décrit ci-dessus. Preferably, said scheduling step can select said groups of data units so that a flow rate / quality representative of said path corresponds to a convex envelope of all of the different eligible hierarchical paths. Advantageously, said scheduling step comprises, for each temporal enhancement layer n, a step of merging ordered sub-lists of the dependent data units, for each data unit of said temporal enhancement layer n, and then a step of merging ordered lists of the set of quantization refinement layers. According to another advantageous characteristic of the invention, the method comprises a step of inserting, in a signal comprising said data units, at least one piece of information representative of said ordered list. The invention also relates to a device for transmitting and / or storing a scalable video stream implementing the method as described above.
Il est à noter que le procédé peut être mis en oeuvre dans de nombreux dispositifs, à différents emplacements d'une chaîne de transmission ou de stockage de données, en fonction des besoins. L'invention concerne encore un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, comprenant des instructions de code de programme pour la mise en oeuvre du procédé d'ordonnancement décrit ci-dessus. L'invention s'applique également aux terminaux aptes à recevoir un flux dont les unités de données sont ordonnées selon le procédé décrit ci-dessus. Un tel terminal comprend des moyens de sélection d'une partie desdites unités de données à l'intérieur dudit flux, à partir de ladite liste ordonnée et en fonction d'au moins un critère de débit, de résolution spatiale et/ou de fréquence d'affichage, et des moyens de reconstruction d'un flux vidéo adapté audit critère, à l'aide desdites unités de données sélectionnées. 6. 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 préférentiel de l'invention, donnée à 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 synoptique du codeur MPEG-4 SVC décrit dans le document N6716 précité ; la figure 2, également décrite en relation avec l'art antérieur, illustre les courbes débit-distorsion obtenues à partir du codeur de la figure 1 avec et sans mécanisme de niveaux de priorité ; la figure 3, commentée en relation avec l'art antérieur, illustre une structure de codage par utilisation de hierarchical B-frames ; la figure 4 est un organigramme général du procédé de l'invention ; la figure 5 est un exemple d'ordonnancement d'incréments d'éléments de données ; la figure 6 illustre l'évolution de la distorsion en fonction du débit de deux ordonnancement d'éléments de données envisagés ; la figure 7 présente un mode de réalisation de l'algorithme d'ordonnancement mis en oeuvre dans l'invention ; les figures 8a à 8d illustrent le résultat de l'algorithme présenté en relation avec la figure 7 ; la figure 9 est elle aussi une illustration de l'algorithme d'ordonnancement des éléments de données de l'invention ; les figures 10A et l0B illustrent schématiquement un dispositif de codage et un terminal mettant en oeuvre l'invention. 7. Description d'un mode de réalisation particulier L'invention propose donc une technique optimisée et efficace d'ordonnancement d'éléments de données composant des images, qui puisse s'appliquer au cas d'images codées selon une structure en boucle fermée. On rappelle que pour ce type de codage, et comme illustré sur la figure 3, les éléments d'images d'un niveau hiérarchique temporel (ou couche de réhaussement temporelle) n dépendent chacun d'au moins un élément d'image de référence, à un niveau hiérarchique temporel de résolution inférieure n-1 (la fréquence temporelle est plus faible). De plus, comme détaillé précédemment, ce codage en boucle fermée est effectué pour chaque niveau de quantification afin d'obtenir une variation qualité/débit. Cet incrément de qualité est une information d'efficacité représentative de l'accroissement de qualité en fonction de l'accroissement de débit. Le problème principal à résoudre pour l'ordonnancement des unités de données composant un flux d'images est donc de définir un chemin, ou liste ordonnée, qui représente une hiérarchisation des données selon leur importance, de façon à obtenir la meilleure efficacité, lorsqu'on considère l'évolution de la qualité en fonction du débit. 7.1 Principe général Les étapes principales de l'invention sont présentées sous la forme d'un algorithme sur la figure 4. Les images codées 51 sont utilisées pour une première étape 52 de définition des relations de dépendance entre elles. Ces relations de dépendance vont permettre par la suite de poser des contraintes sur l'ordonnancement des éléments de chaque incrément de qualité. It should be noted that the method can be implemented in many devices, at different locations of a data transmission or storage chain, as needed. The invention also relates to a computer program product downloadable from a communication network and / or stored on a computer readable medium and / or executable by a microprocessor, comprising program code instructions for the implementation of the method of scheduling described above. The invention also applies to terminals able to receive a stream whose data units are ordered according to the method described above. Such a terminal comprises means for selecting a part of said data units within said stream, from said ordered list and as a function of at least one criterion of bit rate, spatial resolution and / or frequency of data. display, and means for reconstructing a video stream adapted to said criterion, using said selected data units. 6. List of Figures Other features and advantages of the invention will appear more clearly on reading the following description of a preferred embodiment of the invention, given as a simple illustrative and non-limiting example, and annexed drawings among which: FIG. 1, already described in relation with the prior art, presents a block diagram of the MPEG-4 SVC encoder described in the aforementioned document N6716; FIG. 2, also described in relation with the prior art, illustrates the flow-distortion curves obtained from the coder of FIG. 1 with and without a priority level mechanism; Figure 3, commented in relation to the prior art, illustrates a coding structure using hierarchical B-frames; Figure 4 is a general flowchart of the method of the invention; Fig. 5 is an example of scheduling increments of data items; FIG. 6 illustrates the evolution of the distortion as a function of the rate of two scheduling of envisaged data elements; Figure 7 shows an embodiment of the scheduling algorithm implemented in the invention; Figures 8a to 8d illustrate the result of the algorithm presented in connection with Figure 7; Fig. 9 is also an illustration of the scheduling algorithm of the data elements of the invention; FIGS. 10A and 10B schematically illustrate a coding device and a terminal implementing the invention. 7. DESCRIPTION OF A PARTICULAR EMBODIMENT The invention thus proposes an optimized and efficient technique for scheduling data elements that make up images, which can be applied to the case of images encoded according to a closed-loop structure. It will be recalled that for this type of coding, and as illustrated in FIG. 3, the elements of images of a temporal hierarchical level (or temporal enhancement layer) n each depend on at least one reference picture element, at a hierarchical level of lower resolution n-1 (the temporal frequency is lower). In addition, as detailed above, this closed-loop coding is performed for each quantization level in order to obtain a quality / rate variation. This quality increment is an information of efficiency representative of the increase in quality as a function of the increase in flow rate. The main problem to be solved for the scheduling of the data units composing an image flow is thus to define a path, or ordered list, which represents a hierarchy of the data according to their importance, so as to obtain the best efficiency, when we consider the evolution of quality as a function of flow. 7.1 General Principle The main steps of the invention are presented in the form of an algorithm in FIG. 4. The coded images 51 are used for a first step 52 of defining the dependency relationships between them. These dependency relationships will subsequently allow constraints on the scheduling of the elements of each quality increment.
Il s'en suit, pour chaque image (ou incrément, ou unité de données) de chaque niveau hiérarchique temporel, une étape 53 de calcul des variations de débit en fonction du niveau de quantification (selon l'approche décrite précédemment) : on obtient ainsi une information d'efficacité associé à chaque élément de donnée. Plus la pente de la variation de débit en fonction de la qualité est forte, plus l'efficacité est grande. It follows, for each image (or increment, or unit of data) of each hierarchical level of time, a step 53 of calculating the variations of flow as a function of the level of quantification (according to the approach described above): we obtain and efficiency information associated with each data element. The higher the slope of the flow variation depending on the quality, the greater the efficiency.
A partir de ces deux premières étapes 52 et 53, une étape 54 d'ordonnancement de ces informations d'efficacité est réalisée. Par cette étape 54 nouvelle d'ordonnancement, on verra par la suite qu'on obtient une enveloppe convexe d'évolution de la qualité en fonction du débit, générant ainsi les meilleures performances possibles en termes de qualité d'image en fonction du débit, et donc en termes d'efficacité. L'ordonnancement obtenu dans l'étape 54 permet d'obtenir une liste ordonnée, c'est-à-dire d'ordonner les différentes informations d'efficacité associées à chaque élément de donnée. Un niveau de priorité croissant avec leur ordre d'apparition est alors attribué à ces éléments par exemple, à l'aide d'une quantification de leur ordre d'apparition. Il s'ensuit une étape 55 de quantification des niveaux de priorité, lesquels sont transmis au décodeur dans une étape 56 de transmission des niveaux de priorité. Le nombre k de niveaux de quantification disponible est différent de la taille de l'ordre d'apparition, allant jusqu'à une valeur n. On peut alors quantifier une valeur d'ordre d'apparition comprise entre 1 et n sur une plage de valeurs de quantification comprise entre 1 et k. On réalise ainsi une hiérarchisation des données, par ordre d'importance, ou d'apparition. On détaille maintenant certaines des étapes du procédé de l'invention. 7.2 Notations préalables On considère la cas d'une transformation temporelle de type hierarchical B-frame . Une image notée B~ 1 correspond donc à la i-ième image se situant au nième niveau de décomposition, c'est-à-dire au n-ième niveau hiérarchique de raffinement temporel (ou couche de réhaussement temporelle). From these first two steps 52 and 53, a step 54 of scheduling this efficiency information is performed. By this new scheduling step, we will see later that we obtain a convex envelope of quality evolution as a function of the flow, thus generating the best possible performances in terms of image quality as a function of the flow rate. and therefore in terms of efficiency. The scheduling obtained in step 54 makes it possible to obtain an ordered list, that is to say, to order the various efficiency information associated with each data element. A rising priority level with their order of appearance is then assigned to these elements for example, using a quantization of their order of appearance. This follows a step 55 of quantizing the priority levels, which are transmitted to the decoder in a step 56 of transmission of the priority levels. The number k of quantization levels available is different from the size of the order of appearance, up to a value n. It is then possible to quantify an order of appearance between 1 and n over a range of quantization values between 1 and k. We thus achieve a hierarchy of data, in order of importance, or appearance. We now detail some of the steps of the method of the invention. 7.2 Preliminary Notations One considers the case of a hierarchical transformation of type hierarchical B-frame. An image noted B ~ 1 thus corresponds to the i-th image located at the nth level of decomposition, that is to say the n-th hierarchical level of temporal refinement (or layer of temporal enhancement).
On rappelle de plus que les prédictions de chaque image Bn,1 sont obtenues à partir de deux images de références, de niveau hiérarchique inférieur (résolution fréquentielle plus faible), par raffinement temporel. De plus, pour chaque image de chaque niveau hiérarchique temporel, on 5 définit desniveaux de quantification, d'indice q. On notera alors Bn,;(q) le q-ième incrément de quantification de codage, associé à l'image Bn,;. Par ailleurs, on notera alors Bn,,r, et 13n2.2 les deux images de références utilisée pour la prédiction de Bn,;. Dans un cadre plus général, on peut bien sûr 10 prendre en compte un nombre d'images de référence supérieur à deux. 7.3 Définition des contraintes de dépendances On détaille dans cette section l'étape 52 de l'algorithme de l'invention. Du fait de la dépendance des éléments (ou unités, ou NALUs en anglais) de données avec d'autres éléments de données de niveau hiérarchique 15 temporel supérieur (résolution plus basse), il faut établir une relation de dépendance entre chacune d'entre elles : en effet, il est nécessaire que deux éléments de données de référence soient connus, et donc présents pour le décodage de l'élément de donnée de niveau hiérarchique temporel inférieur (raffinement supérieur). 20 Pour cela, la technique de l'invention associe à chaque information d'efficacité de l'élément de donnée Bn,;(q) les deux informations d'efficacité des éléments de données de référence utilisés dans la prédiction de l'image Bn;. Parmi ces deux informations d'efficacité des éléments de données de référence, et du fait de la structure du codage hierarchical B-frame , il y a 25 forcément parmi les deux éléments de référence utilisés dans la prédiction de l'élément Bn,; un élément de référence se situant au niveau hiérarchique de décomposition temporelle directement supérieur n-1. Parmi ces éléments de référence situés au niveau n-1, on définit alors un élément de donnée de référence parent Bnp,;p. Cet élément de donnée parent est 30 obtenu en choisissant l'élément de donnée de référence d'indice le plus élevé, au niveau hiérarchique n-1. It is further recalled that the predictions of each image Bn, 1 are obtained from two reference images, of lower hierarchical level (lower frequency resolution), by temporal refinement. In addition, for each image of each hierarchical time level, quantization levels of index q are defined. Note then Bn, (q) the q-th encoding quantization increment, associated with the image Bn,. On the other hand, Bn ,, r, and 13n2.2 will be noted as the two reference images used for the prediction of Bn,. In a more general context, it is of course possible to take into account a number of reference images greater than two. 7.3 Definition of dependency constraints In this section, step 52 of the algorithm of the invention is detailed. Due to the dependence of data elements (or units, or NALUs) on data with other higher hierarchical level data elements (lower resolution), a dependency relationship must be established between each of them. Indeed, it is necessary that two reference data elements are known, and therefore present for the decoding of the lower hierarchical level data element (higher refinement). For this, the technique of the invention associates with each piece of information of effectiveness of the data element Bn, (q) the two information of effectiveness of the reference data elements used in the prediction of the image Bn ;. Of these two efficiency information of the reference data elements, and because of the hierarchical B-frame coding structure, there is necessarily one of the two reference elements used in the prediction of the Bn element; a reference element located at the hierarchical level of directly higher temporal decomposition n-1. Among these reference elements located at level n-1, then a reference datum element Bnp, p. This parent data item is obtained by selecting the highest index reference data item at hierarchical level n-1.
Sur la figure 3, l'élément de donnée parent de B21 1 sera par exemple B111. Cette construction de relation entre les éléments de données permet alors de prendre en compte les contraintes de dépendance entre les informations de réhaussement, en affirmant que l'information de qualité de l'élément de données Bn,;(q) n'apparaîtra qu'après l'information de réhaussement de l'élément de donnée Bnn,;n(q). On note que les images de premier niveau hiérarchique, c'est-à-dire de plus basse résolution temporelle, n'ont pas d'image de référence parent. Dans un mode de réalisation particulier de l'invention, il est possible de regrouper toutes ces images du premier niveau hiérarchique en une seule valeur d'information de quantification. Finalement, à chaque incrément de qualité BX,y(q) (q-ième niveau de quantification de la y-ième image du niveau hiérarchique x), on associe une liste de référencements dépendants LDX,y(q). Cette liste de référencements LDX,y(q) contient alors l'ensemble des éléments qui dépendent de BX,y(q). En d'autres termes, LDX,y(q) contient les informations d'efficacité des éléments de donnée fils ayant pour élément de donnée de référence parent BX,y (d'incrément de qualité BX,y(q))• Ces listes de référencement peuvent être construites de façon récursive : - LD,,,y(q) est vide si aucun élément parent Bn,; n'a pour élément de référence parent BX,y. LDX,y(q) contient les Bn,;(q) et les LDn,;(q), tels que BX,y est élément de référence parent de Bn,;. On voit donc qu'un élément de référence parent peut avoir plusieurs éléments de donnée fils. 7.4 Calcul des variations de débit et distorsion Grâce à l'étape 52, on sait que les éléments de données de référence parent doivent apparaître avant les éléments de données qui en dépendent. Il reste alors à définir l'ordre dans lequel les éléments de données fils apparaissent (pour une même image de référence parent). In FIG. 3, the parent data item of B21 1 will be for example B111. This construction of relationship between the data elements then makes it possible to take into account the dependence constraints between the enhancement information, stating that the quality information of the data element Bn,; (q) will only appear after the raising information of the data element Bnn,; n (q). It is noted that the images of first hierarchical level, that is to say of lower temporal resolution, do not have a parent reference image. In a particular embodiment of the invention, it is possible to group all these images of the first hierarchical level into a single quantization information value. Finally, at each quality increment BX, y (q) (q-th quantization level of the y-th image of the hierarchical level x), we associate a list of dependent references LDX, y (q). This list of references LDX, y (q) then contains the set of elements that depend on BX, y (q). In other words, LDX, y (q) contains the efficiency information of the child data elements with parent reference data element BX, y (quality increment BX, y (q)). referencing can be built recursively: - LD ,,, y (q) is empty if no parent element Bn ,; has parent reference element BX, y. LDX, y (q) contains the Bn, (q) and LDn, (q), such that BX, y is the parent reference element of Bn,; So we see that a parent reference element can have multiple child data elements. 7.4 Calculation of Rate Variations and Distortion With step 52, it is known that the parent reference data items must appear before the data items that depend on them. It remains to define the order in which the child data elements appear (for the same parent reference image).
Pour cela, on réalise une étape 53 de calcul des variations de débit et distorsion. En d'autres termes, on établit pour chaque incrément de qualité B,,,;(q) quel est son impact deltaRn,,(q) sur le débit global, ainsi que son impact deltaD,u(q) sur la qualité de reconstruction globale. L'impact sur le débit global est obtenu par exemple en utilisant la taille des bits des informations codées relatives à cet incrément de qualité : on obtient alors une information d'efficacité relative à chaque élément de donnée. L'impact sur la distorsion des images reconstruites est quant à lui obtenu par exemple en mesurant la différence de distorsions entre le cas de figure où l'incrément de qualité est présent et celui où il est non présent. 7.5 Ordonnancement des incréments de qualité L'étape 54 d'ordonnancement a donc pour but de rechercher la combinaison la plus efficace des incréments de qualité parmi les différentes combinaisons qui vérifient la contrainte que B,,,;(q) apparaisse avant les éléments inclus dans leur liste correspondante LDn,;(q). Un exemple d'ordonnancement est illustré par la figure 5. On se place dans le cas simple où deux éléments de donnée B1.2 et B,,, ont le même élément de donnée de référence parent Bo,l. Dans cet exemple, l'ensemble 61 est formé de l'élément de donnée B,,, associée à ses deux variations de débit deltaR = 2 et de qualité deltaD = 1. De même l'ensemble 62 est formé de l'élément de donnée B12 2 ayant une variation de débit deltaR = 2 et une variation de qualité deltaD = 2. Enfin, l'ensemble 63 est formé de l'élément de donnée Bo,i et de ses variations de débit deltaR = 1 et de qualité deltaD = 1. For this, a step 53 is performed for calculating the variations in flow and distortion. In other words, for each quality increment B ,,,; (q) what is its deltaRn ,, (q) impact on the overall flow, as well as its impact deltaD, u (q) on the quality of global reconstruction. The impact on the overall bit rate is obtained for example by using the size of the bits of the coded information relating to this quality increment: one then obtains information of effectiveness relating to each data element. The impact on the distortion of the reconstructed images is obtained for example by measuring the difference in distortions between the case where the quality increment is present and that where it is not present. 7.5 Scheduling of Quality Increments The purpose of step 54 of scheduling is therefore to find the most effective combination of quality increments among the different combinations that satisfy the constraint that B ,,,; (q) appears before the included elements. in their corresponding list LDn,; (q). An example of scheduling is illustrated in FIG. 5. We consider the simple case where two data elements B1.2 and B ,,, have the same reference datum element Bo, l. In this example, the set 61 is formed of the data element B ,,, associated with its two flow variations deltaR = 2 and quality deltaD = 1. Similarly, the assembly 62 is formed of the element of data B12 2 having a deltaR = 2 flow variation and a deltaD = 2 quality variation. Finally, the set 63 is formed of the data element Bo, i and its deltaR = 1 and deltaD quality flow variations. = 1.
On a donc une structure hiérarchique : les deux ensembles 61 et 62 sont au même niveau hiérarchique N = 1 et dépendant (611, 621) de l'ensemble 63 au niveau hiérarchique directement inférieur N = 0, de fréquence temporelle plus faible. Les relations de dépendance permettent de savoir que l'incrément de qualité de Bo,,(q) doit apparaître avant les incréments de qualité B1.2(q) et B1,1(q) des deux éléments de donnée fils. We thus have a hierarchical structure: the two sets 61 and 62 are at the same hierarchical level N = 1 and dependent (611, 621) of the set 63 at the directly lower hierarchical level N = 0, of lower temporal frequency. The dependency relationships make it possible to know that the quality increment of Bo ,, (q) must appear before the quality increments B1.2 (q) and B1,1 (q) of the two child data elements.
Il reste ensuite à déterminer laquelle de ces deux éléments de donnée fils doit apparaître en premier, de façon à optimiser le débit et la qualité de la restitution des images. En relation avec la figure 6, on étudie pour cela l'évolution du débit en fonction de la distorsion pour chaque élément de donnée 61, 62, 63. L'axe des abscisses représente l'évolution du débit et l'axe des ordonnées l'évolution de la qualité. Les deux stratégies possibles concernant l'ordre d'apparition des informations d'efficacité sont illustrées par les enveloppes 71 et 72. It remains to determine which of these two son data elements should appear first, so as to optimize the bit rate and the quality of the restitution of the images. In relation to FIG. 6, the evolution of the flow rate as a function of the distortion for each data element 61, 62, 63 is studied. The abscissa represents the evolution of the flow and the ordinate axis. evolution of quality. The two possible strategies concerning the order of appearance of the efficiency information are illustrated by the envelopes 71 and 72.
On fait apparaître tout d'abord l'incrément de qualité de Bo,l. La stratégie 1 consiste à ensuite faire apparaître B1,2 puis La stratégie 2 consiste inversement à d'abord faire apparaître B22 2 puis B1,2. L'enveloppe 71 de la stratégie 1 est convexe. On adapte alors cette stratégie pour l'ordonnancement. We first show the quality increment of Bo, l. Strategy 1 consists of then displaying B1,2 and then Strategy 2 consists conversely of first showing B22 2 then B1,2. The envelope 71 of the strategy 1 is convex. This strategy is then adapted for scheduling.
L'ordonnancement optimal est l'ordonnancement qui correspond à l'enveloppe convexe supérieure des différentes stratégies compatibles d'ordonnancement. 7.6 Algorithme général d'ordonnancement des incréments de qualité La méthode d'ordonnancement développée dans la partie précédente concerne un unique niveau hiérarchique temporel, pour un unique niveau de quantification q. On présente maintenant l'algorithme de l'invention qui permet de trouver l'ordonnancement général et de trouver l'enveloppe convexe supérieure, en fonction de l'information d'efficacité obtenue pour chaque élément de données, généralisée à l'ensemble des niveaux hiérarchiques ainsi qu'à l'ensemble des niveaux de quantification. En relation avec la figure 7, on commence par deux étapes 811 et 812 d'initialisation au premier niveau de quantification q = 1, et au niveau hiérarchique temporel de plus haute fréquence temporelle n = N (on parle de niveau maximal pour le niveau hiérarchique temporel de fréquence maximale). The optimal scheduling is the scheduling that corresponds to the upper convex envelope of the different compatible scheduling strategies. 7.6 General algorithm for scheduling quality increments The scheduling method developed in the previous section concerns a single hierarchical time level, for a single quantization level q. We now present the algorithm of the invention which makes it possible to find the general scheduling and to find the upper convex envelope, as a function of the efficiency information obtained for each data element, generalized to all the levels. hierarchical and the set of quantification levels. In relation to FIG. 7, two initialization steps 811 and 812 start at the first quantization level q = 1, and at the highest temporal hierarchical level of time n = N (we speak of the maximum level for the hierarchical level time of maximum frequency).
II s'ensuit une étape 82 d'initialisation des listes de ce niveau. Par liste de niveau, on entend le procédé détaillé dans le paragraphe précédent qui ordonne l'apparition des éléments contenus dans les listes LOX,y(q) de chaque élément de référence parent. L'étape suivante 83 récupère, pour chaque élément d'incrément Bn,i de niveau n, les listes de référencements ordonnées LOfn,fi(q) associés aux éléments 5 Bf,,,f1, dont Bpi est l'élément de donnée de référence parent. Dans cette même étape, on fusionne alors l'ensemble des listes de référencements ordonnés de manière à les imbriquer les unes dans les autres et à optimiser ainsi l'ordonnancement général pour un niveau hiérarchique donné. L'algorithme de fusion des listes d'ordonnancement est détaillé dans la 10 section suivante. Un test 84 suit l'étape 83 pour vérifier si le dernier niveau hiérarchique temporel est atteint. Si non, on décrémente 85 l'indice n de niveau hiérarchique et les étapes 82 et 83 sont réitérées. Si le test 84 est positif, un second test 86 est réalisé pour vérifier si le 15 traitement en cours est effectué sur le dernier niveau de quantification. Sinon, on incrémente 87 le niveau de quantification et l'ensemble des étapes 812, 82, 83, 84, 85 et 86 est réitéré. Si oui, une étape finale 88 de fusion des listes obtenues pour chaque niveau de quantification est réalisée. A l'issue des étapes 82 à 86 réitérées pour chaque niveau de quantification, 20 l'algorithme a généré pour chaque niveau de quantification q une liste ordonnée LO(q) des incréments de qualité relatifs au niveau de codage q. L'étape 88 concatène alors les listes par ordre de niveau de codage afin d'obtenir une liste finale LO regroupant les différents niveaux de quantification de codage. 7.7 Algorithme de fusion des liste ordonnées 25 Dans l'étape 83 de la figure 7, une opération de fusion des listes ordonnées de chaque élément dépendant des éléments de référence parent est effectuée. On détaille ici l'algorithme mis en oeuvre, toujours de façon à obtenir une enveloppe convexe. On considère l'élément d'incrément de qualité Bn,i(q). Il comprend une 30 liste de référencement ordonnée, composée d'éléments de qualité dépendant de Bn,;(q), et chacun desquels est associé une liste de référencements ordonnée LOfn,fi(q). Les figures 8a, 8b, 8c et 8d illustrent par un exemple l'évolution de la fusion de listes de référencements. There follows a step 82 of initialization of the lists of this level. By level list is meant the process detailed in the preceding paragraph which orders the appearance of the elements contained in the lists LOX, y (q) of each parent reference element. The following step 83 retrieves, for each increment element Bn, i of level n, the ordered reference lists LOfn, fi (q) associated with the elements Bf ,,, f1, whose Bpi is the data element of parent reference. In this same step, the set of ordered referencing lists is then merged so as to nest them in each other and thus optimize the general scheduling for a given hierarchical level. The scheduling list merge algorithm is detailed in the following section. A test 84 follows step 83 to check whether the last hierarchical time level is reached. If not, the hierarchical level index n is decremented 85 and steps 82 and 83 are repeated. If the test 84 is positive, a second test 86 is performed to check whether the current processing is performed on the last quantization level. Otherwise, the quantization level is incremented 87 and all of the steps 812, 82, 83, 84, 85 and 86 are reiterated. If so, a final step 88 of melting the lists obtained for each quantization level is performed. At the end of steps 82 to 86 repeated for each quantization level, the algorithm generated for each quantization level q an ordered list LO (q) of the quality increments relative to the coding level q. Step 88 then concatenates the lists in order of coding level in order to obtain a final list LO regrouping the different levels of coding quantization. 7.7 Algorithm for Merging Ordered Lists In step 83 of FIG. 7, a merge operation of the ordered lists of each element dependent on the parent reference elements is performed. Here we detail the algorithm implemented, always in order to obtain a convex envelope. Consider the quality increment element Bn, i (q). It comprises an ordered indexing list, composed of quality elements depending on Bn, (q), and each of which is associated with an ordered list of references LOfn, fi (q). FIGS. 8a, 8b, 8c and 8d illustrate by an example the evolution of the merger of reference lists.
On considère en relation avec la figure 8a la variation de qualité par rapport à la variation de débit d'un élément de référence parent Bn,i. Cet élément est parent de deux éléments Bfn,,,;, et Bfn2 2 à chacun desquels est associée une liste d'ordonnancement (ce qui signifie qu'eux-mêmes sont chacun élément de référence parent d'autres éléments de données), illustrées respectivement par les figures 8b et 8c. Ces listes de référencement sont déterminées selon le procédé détaillé au paragraphe 7.5. La figure 8d expose le résultat de l'ordonnancement des deux listes fusionnées. On insère tout d'abord l'élément de référence parent, de pente a. On choisit ensuite parmi les premiers éléments de chaque liste dont dépend (figures 8b et 8c), celui qui a la pente la plus forte. Cet élément correspond à l'élément de pente b1 dans cet exemple particulier. C'est ensuite l'élément de pente et qui a la pente la plus importante. L'algorithme continue sa progression en juxtaposant les éléments de pente de moins en moins forte. La liste finale est illustrée par la figure 8d et a une enveloppe convexe. Les éléments des deux listes de référencement (des figures 8b et 8c) ont été progressivement introduits en prenant en compte les pentes de l'enveloppe convexe associée. On généralise maintenant cet algorithme de fusion des listes ordonnées des incréments dépendants, en relation avec la figure 9. Un éléments d'incrément de qualité Bn,;(q) est associé à une série de listes LOfn,i(q) de liste d'ordonnancement, associées chacune aux éléments d'incrément de qualité dépendant de Bn,;(q). Le déroulement de l'algorithme est le suivant : -Etape 1 :on calcule et obtient les pentes de l'enveloppe convexe pour chaque point des différentes listes ordonnées LOf,fn(q) ; Etape 2 : on fusionne effectivement les listes ; Etape 2a : on initialise la liste de sortie LOn,;(q) en prenant l'élément B,u(q), qui est l'élément de référence parent ; Etape 2b : Tant que toutes les listes LOfn,f,(q) ne sont pas vides : 2b i : On recherche l'élément B d'incrément de qualité en tête de l'une des listes LOfn,f;(q) ayant la plus grande pente, nommé B ; 2b ii : on supprime alors cet élément B de la liste où il se situait. Le premier élément de cette liste devient alors l'élément qui suivait B auparavant dans cette liste ; 2b iii : On ajoute B en fin de la liste de sortie LO,,,;(q) (correspondant à la liste fusionnée de l'élément B,,,;(q)). Une illustration du résultat de cet algorithme de fusion est présenté sur la figure 9. Au point PO est associée la pente PEO. Aux points P1 et P2 est associée la pente PT1. On associe respectivement aux points 3 et 4 les pentes PT2 et M. On note qu'une seule pente PT1 est associée à l'ensemble des points P1 et P2 : on se trouve dans une situation où tous les premiers éléments des listes concernées ont une pente plus faible que le premier élément suivant. Pour ne pas perdre la convexité de la l'enveloppe, on fusionne les deux pentes en une seule de manière à maintenir la convexité. Dans une variante de cet algorithme, il est possible, pour chaque niveau de quantification q, d'ordonner les incréments de qualités selon leur valeur de niveau hiérarchique. 7.8 dispositifs de mise en ouvre Le procédé de l'invention peut être mis en oeuvre dans de nombreux dispositifs, tels que des serveurs de flux, des noeuds intermédiaires d'un réseau, des émetteurs, des dispositifs de stockage de données,... La structure générale simplifiée d'un tel dispositif est illustrée schématiquement par la figure 10A. Il comprend une mémoire M 100, une unité de traitement 101, équipée par exemple d'un microprocesseur, et pilotée par le programme d'ordinateur Pg 102. A l'initialisation, les instructions de code du programme d'ordinateur 102 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 101. L'unité de traitement 101 reçoit en entrée un flux de données à ordonner 103. Le microprocesseur P de l'unité de traitement 101 met en oeuvre le procédé décrit ci-dessus, selon les instructions du programme Pg 102. L'unité de traitement 101 délivre en sortie un flux de données ordonné et/ou une liste ordonnée 104. The quality variation with respect to the rate variation of a parent reference element Bn, i is considered in relation to FIG. This element is a parent of two elements Bfn ,,,;, and Bfn2 2 each of which is associated with a scheduling list (which means that they themselves are each parent reference element of other data elements), illustrated respectively in Figures 8b and 8c. These listing lists are determined according to the procedure detailed in section 7.5. Figure 8d shows the result of the scheduling of the two merged lists. The parent reference element of slope a is first inserted. We then choose among the first elements of each list on which depends (Figures 8b and 8c), the one with the strongest slope. This element corresponds to the slope element b1 in this particular example. It is then the slope element and has the largest slope. The algorithm continues its progression by juxtaposing the elements of slope less and less strong. The final list is illustrated in Figure 8d and has a convex hull. The elements of the two referencing lists (of FIGS. 8b and 8c) have been progressively introduced by taking into account the slopes of the associated convex envelope. This algorithm for merging the ordered lists of dependent increments is now generalized, in relation to FIG. 9. A quality increment element Bn,; (q) is associated with a series of lists LOfn, i (q) of list scheduling, each associated with the quality increment elements dependent on Bn, (q). The progress of the algorithm is as follows: Step 1: the slopes of the convex envelope for each point of the different ordered lists LOf, fn (q) are calculated and obtained; Step 2: we effectively merge the lists; Step 2a: initialize the output list LOn, (q) by taking the element B, u (q), which is the parent reference element; Step 2b: As long as all the lists LOfn, f, (q) are not empty: 2b i: We look for the element B of quality increment at the top of one of the lists LOfn, f; (q) having the largest slope, named B; 2b ii: we then remove this element B from the list where it was located. The first element of this list then becomes the element that followed B previously in this list; 2b iii: Add B at the end of the output list LO ,,,; (q) (corresponding to the merged list of the element B ,,,; (q)). An illustration of the result of this fusion algorithm is presented in Figure 9. At point PO is associated the slope PEO. At points P1 and P2 is associated slope PT1. Points PT2 and M are respectively associated with points 3 and 4. Note that only one slope PT1 is associated with all the points P1 and P2: we are in a situation where all the first elements of the lists concerned have a Slope lower than the next element. To avoid losing the convexity of the envelope, we merge the two slopes into one so as to maintain the convexity. In a variant of this algorithm, it is possible, for each quantization level q, to order the increments of qualities according to their hierarchical level value. 7.8 Implementation Devices The method of the invention can be implemented in numerous devices, such as stream servers, intermediate nodes of a network, transmitters, data storage devices, etc. The simplified general structure of such a device is illustrated schematically in FIG. 10A. It comprises a memory M 100, a processing unit 101, equipped for example with a microprocessor, and controlled by the computer program Pg 102. At initialization, the code instructions of the computer program 102 are for example loaded into a RAM memory before being executed by the processor of the processing unit 101. The processing unit 101 receives as input a data stream to be ordered 103. The microprocessor P of the processing unit 101 implements the process described above according to the instructions of the program Pg 102. The processing unit 101 outputs an ordered data stream and / or an ordered list 104.
L'invention concerne également les récepteurs d'un flux ordonné selon l'invention, dont la structure générale simplifiée est illustrée schématiquement par la figure IOB. Il comprend une mémoire M 110, une unité de traitement 111, équipée par exemple d'un microprocesseur, et pilotée par le programme d'ordinateur Pg 112. A l'initialisation, les instructions de code du programme d'ordinateur 112 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 111. L'unité de traitement 111 reçoit en entrée un flux de données ordonnée et/ou une liste ordonnée 113. Le microprocesseur tP de l'unité de traitement 111 met en oeuvre le procédé selon les instructions du programme Pg 112, pour délivrer une vidéo de qualité optimisée 114, en fonction des capacités du récepteur, et le cas échéant du réseau de transmission. The invention also relates to the receivers of an ordered stream according to the invention, whose simplified overall structure is illustrated schematically in FIG. It comprises a memory M 110, a processing unit 111, equipped for example with a microprocessor, and controlled by the computer program Pg 112. At initialization, the code instructions of the computer program 112 are for example loaded into a RAM before being executed by the processor of the processing unit 111. The processing unit 111 receives as input an ordered data stream and / or an ordered list 113. The microprocessor tP of the unit processing 111 implements the method according to the instructions of the program Pg 112, to deliver a video of optimized quality 114, depending on the capabilities of the receiver, and if necessary the transmission network.
Claims (14)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0510339A FR2891965A1 (en) | 2005-10-10 | 2005-10-10 | METHOD, DEVICE AND PROGRAM FOR SCHEDULING DATA UNITS OF A SCALABLE VIDEO STREAM, AND CORRESPONDING TERMINAL THEREFOR. |
PCT/FR2006/002288 WO2007042671A1 (en) | 2005-10-10 | 2006-10-10 | Method, device and programme for ordering data units of a scalable video data stream and corresponding terminal |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0510339A FR2891965A1 (en) | 2005-10-10 | 2005-10-10 | METHOD, DEVICE AND PROGRAM FOR SCHEDULING DATA UNITS OF A SCALABLE VIDEO STREAM, AND CORRESPONDING TERMINAL THEREFOR. |
Publications (1)
Publication Number | Publication Date |
---|---|
FR2891965A1 true FR2891965A1 (en) | 2007-04-13 |
Family
ID=36603707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0510339A Pending FR2891965A1 (en) | 2005-10-10 | 2005-10-10 | METHOD, DEVICE AND PROGRAM FOR SCHEDULING DATA UNITS OF A SCALABLE VIDEO STREAM, AND CORRESPONDING TERMINAL THEREFOR. |
Country Status (2)
Country | Link |
---|---|
FR (1) | FR2891965A1 (en) |
WO (1) | WO2007042671A1 (en) |
-
2005
- 2005-10-10 FR FR0510339A patent/FR2891965A1/en active Pending
-
2006
- 2006-10-10 WO PCT/FR2006/002288 patent/WO2007042671A1/en active Application Filing
Non-Patent Citations (3)
Title |
---|
JVT: "Joint Scalable Video Model JSVM-4", October 2005, XP002381150 * |
RADHA H ET AL: "Scalable Internet video using MPEG-4", SIGNAL PROCESSING. IMAGE COMMUNICATION, ELSEVIER SCIENCE PUBLISHERS, AMSTERDAM, NL, vol. 15, no. 1-2, September 1999 (1999-09-01), pages 95 - 126, XP004180640, ISSN: 0923-5965 * |
REICHEL J ET AL: "Joint Scalable Video Model JSVM-3", JOINT VIDEO TEAM (JVT) OF ISO/IEC MPEG & ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 AND ITU-T SG16 Q6), XX, XX, 29 July 2005 (2005-07-29), pages 1 - 34, XP002384686 * |
Also Published As
Publication number | Publication date |
---|---|
WO2007042671A1 (en) | 2007-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1839442B1 (en) | Device and method for scalably encoding and decoding an image data stream, a signal, computer program and an adaptation module for a corresponding image quality | |
FR2904494A1 (en) | Video image sequence compressing method for e.g. video coder, involves estimating movement vector between portion of image to be compressed and portion of reference image reconstructed at selected quality level, and coding image portion | |
FR2894421A1 (en) | METHOD AND DEVICE FOR DECODING A VIDEO STREAM CODE FOLLOWING A HIERARCHICAL CODING | |
FR2906433A1 (en) | METHODS AND DEVICES FOR ENCODING AND DECODING IMAGES, COMPUTER PROGRAM USING THEM AND INFORMATION SUPPORT FOR IMPLEMENTING THEM | |
FR2982446A1 (en) | METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS | |
EP1969854A1 (en) | Method of coding and decoding an image or a sequence of images, corresponding devices, computer programs and signal | |
FR2889017A1 (en) | METHODS OF FILTERING, TRANSMITTING AND RECEIVING SCALABLE VIDEO STREAMS, SIGNAL, PROGRAMS, SERVER, INTERMEDIATE NODE AND CORRESPONDING TERMINAL | |
EP2443835A1 (en) | Encoding motion vectors using competition between predictors | |
EP2761871B1 (en) | Decoder side motion estimation based on template matching | |
FR3040578A1 (en) | IMAGE ENCODING AND DECODING METHOD, IMAGE ENCODING AND DECODING DEVICE AND CORRESPONDING COMPUTER PROGRAMS | |
EP3180914A1 (en) | Image encoding and decoding method, image encoding and decoding device, and corresponding computer programs | |
EP2716045B1 (en) | Method, apparatus and computer programs for encoding and decoding of images | |
EP3632103B1 (en) | Methods and devices for coding and decoding a data stream representative of at least one image | |
WO2012056148A1 (en) | Scalable video encoding using a hierarchical epitome | |
EP2060074A1 (en) | Method and device for adapting a scalable data stream, corresponding computer program product and network equipment | |
EP3360328B1 (en) | Multi-view coding and decoding | |
FR2891965A1 (en) | METHOD, DEVICE AND PROGRAM FOR SCHEDULING DATA UNITS OF A SCALABLE VIDEO STREAM, AND CORRESPONDING TERMINAL THEREFOR. | |
WO2020157413A1 (en) | Method and device for coding and decoding data corresponding to a video sequence | |
EP2633687B1 (en) | Video encoding and decoding using an epitome | |
FR3041851A1 (en) | ASSOCIATED FLOW ALLOCATION METHOD, DEVICE, ENCODER AND COMPUTER PROGRAM | |
EP3854088A1 (en) | Methods and devices for encoding and decoding a data stream representing at least one image | |
WO2020002795A1 (en) | Methods and devices for coding and decoding a data stream representing at least one image | |
WO2006075002A1 (en) | Method and device for carrying out a progressive quantization | |
FR2820256A1 (en) | Image coding and decoding method, e.g. for digital transmission over communications network, selectively using two coding modes, each optimizing the compression of an image as a function of different optimization criteria | |
FR2936388A1 (en) | Original video sequence transcoding method, involves creating upper layer coded along format and having resolution same as resolution of layer of original video sequence, and modifying upper layer using data of lower layer |