EP1941734A1 - Method for filtering, transmitting and receiving scalable video streams and corresponding programs, server, intermediate node and a terminal - Google Patents

Method for filtering, transmitting and receiving scalable video streams and corresponding programs, server, intermediate node and a terminal

Info

Publication number
EP1941734A1
EP1941734A1 EP06777838A EP06777838A EP1941734A1 EP 1941734 A1 EP1941734 A1 EP 1941734A1 EP 06777838 A EP06777838 A EP 06777838A EP 06777838 A EP06777838 A EP 06777838A EP 1941734 A1 EP1941734 A1 EP 1941734A1
Authority
EP
European Patent Office
Prior art keywords
data units
filtering
data
video stream
paths
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.)
Ceased
Application number
EP06777838A
Other languages
German (de)
French (fr)
Inventor
Isabelle Amonou
Stéphane PATEUX
Gérard Babonneau
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Publication of EP1941734A1 publication Critical patent/EP1941734A1/en
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234327Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234354Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering signal-to-noise ratio parameters, e.g. requantization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234363Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets

Definitions

  • the field of the invention is that of the processing of video signals, and more particularly video sequences compressed in scalable or scalable form. More specifically, the invention relates to the improvement of the operation of a scalable stream, in particular, but not exclusively, within the framework of the coding scheme currently developed in MPEG4-SVC. This MPEG4-SVC technique is notably presented in the documents:
  • JVT Joint Video Team
  • JSVM Scalable Video Model Joint
  • Such encoders are very useful for all applications for which the generation of a single compressed stream, organized in several layers of scalability, can serve several clients of different characteristics, for example:
  • VOD target terminals: UMTS, PC ADSL, TV ADSL, ..
  • a scalable video stream can be considered as a set of substreams represented by cubes 11 in a three-dimensional space formed of the three spatial dimensions 12, temporal 13, and quality, where SNR, 14 (S, T, Q), as schematically illustrated in FIG.
  • the size of the increments in the different directions corresponds to the "granularity" of the scability: it can be fine, average (10% of flow per increment of scalability: MGS) or coarse (25% of flow per increment, CGS).
  • MGS fine, average
  • CGS coarse
  • the CGS scalability corresponds to a "layered" system ("layers” in the document MPEG2005 / M 12043, April 2005. "ISO / MP4 File Format for Storage of Scalabie Video", Thomas Rathgen, Peter Amon and Andréas Hutter) and MGS scalability to a "level” system in this same document. 2.1.2 Fine Scalability Mode (MGS)
  • a scalable bit stream can be arranged to support fine scalability.
  • MGS Medium Grain Scalability
  • any coherent substream can be extracted (including the base level) and decoded with the corresponding quality, ie any combination of supported resolutions (time, spatial or SNR) can be extracted.
  • the MGS bitstreams allow for the highest flexibility. 2 J, 3 Layered Scalability Mode
  • a binary train can be organized in layers. We will then talk about CGS flow ("Coarse Grain Scalability"). A layer contains all the scalability levels necessary to move to the top quality layer.
  • a layer must increase the quality in at least one direction (temporal, spatial or SNR).
  • a CGS representation allows simple adaptation operations, especially at the nodes of the network.
  • the evolutions of the information in the quality-spatial resolution-temporal resolution space are defined a priori according to the conditions imposed by an application or by a user of the service. 2.2 MPBG-4 SVC
  • the JSVM MPEG is described in the already mentioned JSVM 2.0 document.
  • the model that has been chosen is based on a scalable encoder strongly oriented towards AVC type solutions, whose schematic structure of a corresponding encoder is shown in Figure 2. It is a pyramid structure.
  • the video input components 20 undergo dyadic subsampling (2D decimation by 2 referenced 21, 2D decimation by 4 referenced 22).
  • Each of the subsampled streams is then subjected to a time division 23 of the MCTF type ("Motion Compensated Temporal Filtering" for "motion compensated temporal filtering").
  • a low resolution version of the video sequence is encoded 14 up to a given bit rate R_rO_max which corresponds to the maximum decodable bit rate for the low spatial resolution r ⁇ (this base level is AVC compatible).
  • the higher levels are then encoded 25, 26 by subtracting the previous reconstructed and over-sampled level and encoding the residuals as: a base level; - Possibly one or more levels of enhancement obtained by multi-pass coding bit planes (hereinafter called FGS for "Fine Grain Scalability", fine grained scalability).
  • the prediction residue is encoded up to a rate R_rLmax which corresponds to the maximum decodable bit rate for the resolution ri.
  • the MCTF filtering blocks 23 perform temporal wavelet filtering, that is to say they realign the signals in the direction of motion before filtering in wavelets: they deliver motion information 27 which feeds a block motion coding 24-26, and texture information 28, which feeds a prediction module 29.
  • the predicted data at the output of the prediction module 29 serves to perform an interpolation 210 from the lower level. They also feed a block 211 of spatial transformation and entropy coding, which works on levels of signal refinement.
  • a multiplexing module 212 orders the different subflows generated in a global compressed data stream. This new approach is able to provide grain scalable feeds average in the temporal, spatial, and quality dimensions.
  • FGS bit planes
  • the texture information is coded using a progressive scheme at each level:
  • Base Layer a first level of minimum quality
  • the SVC encoder is based on a two-layer system, like AVC:
  • VCL layer (“Video Coding Layer”) manages the encoding of the video
  • NAL Network Abstraction Layer
  • NALU NAL Units
  • data units provided by the VCL layer.
  • a NALU is an elementary unit containing the base level of a Spatiotemporal Image, containing all (in the current version) or part (being discussed for versions future) of an FGS level of a spatio-temporal image;
  • An AU is the set of NALUs corresponding to a time instant.
  • JSVM Two signaling modes (corresponding substantially to CGS and MGS modes) are currently being discussed in the JSVM: a fixed path signaling mode, and a variable path signaling mode.
  • T, Q a two-dimensional 2D context
  • a scalable video stream contains the nested CIF sub-flow representations, of 15 Hz temporal resolutions (31) and Hz (32).
  • the flow consists of four NALUs A (O), B (2), C (I) and D (2). Using these four NALUs we can obtain the flow-distortion points a, b, c, d.
  • the priority of the NALUs is indicated in parentheses.
  • This mode signals a unique path in 3D space for extracting the scalable ftux. It is well adapted to the CGS mode for some applications. In the example of Figure 3, a fixed path will be chosen, for example (a, c, d).
  • This mode proposes to leave the application (or network) the choice of the extraction path.
  • the filtering rules used here are: For a time resolution T target (30 or 15 Hz) keep all
  • the method is generalizing to more than two dimensions. In the example illustrated by FIG. 4A, there are three dimensions of scalability:
  • T Time: 15 Hz / 30 Hz
  • the "priority fiels” contains the priority indicator and the "decolability info” contains the information of spatial, temporal and quality resolution. Both of these indicators require a two-byte representation.
  • a NAL will be identified by its four indices (P, D, T, Q) accessible for example in the file header where: P indicates the priority;
  • T indicates the temporal resolution
  • Q indicates quality, or complexity. It should be noted that the cells in bold of the table above have anomalies with respect to the requested spatial and temporal resolution: in QCIF 30 Hz, it would be desirable to benefit from the NALU B, and not only the NALU A which is at 15 Hz.
  • the fixed-path solution does not allow different applications to be used simultaneously because there is only a single dependency relationship between the NALUs from a hierarchical coder.
  • the multi-path solution is more open than the fixed path solution: it can be adapted to different applications / resolutions in the network or at the decoder.
  • the increase in complexity remains limited, but may not be suitable for adaptation to very low complexity as done on some network routers, for example.
  • the fixed-path solution does not adapt over time to different conditions on the side of the user, the network or the server: a customer can not choose at a moment to favor an axis (for example the fluidity temporal) rather than another (eg SNR quality) such as the choice imposed by the scheduling defined by the fixed adaptation path.
  • a customer can not choose at a moment to favor an axis (for example the fluidity temporal) rather than another (eg SNR quality) such as the choice imposed by the scheduling defined by the fixed adaptation path.
  • an object of the invention is to provide a fine scalable video representation technique (in layers) of data units, or packets, or NALtJs, from a scalable video coder in the spatial-temporal 3D-quality domain. which is more efficient than known techniques.
  • an objective of the invention is to make it possible to manage different paths in this 3D space according to the characteristics of the application, the network or customer needs
  • an object of the invention is to provide such a technique for performing adapted treatments of the same scalable video for different applications.
  • Another objective of the invention is to make it possible to define specific dependency modes that are dependent on or independent of the applications.
  • the purpose of the invention is also to make it possible to define specific or application-independent modes of specific ascent.
  • Another object of the invention is to allow variation over time and the operating points for the same video stream.
  • a filtering process of a scalable video stream "organized in blocks of data units each comprising a a basic data unit and a set of distributed enhancement data units according to at least two types of enhancement data, corresponding respectively to temporal and / or spatial and / or quality characteristics, and making it possible to define several levels of quality , depending on the number and type of uplift data units used.
  • this method comprises a step of defining at least two distinct profiles, or paths, for filtering the data units of each block, each path defining a series of successive fallback positions, starting from a position initial, each fallback position using at least one data unit less than the previous position, and a step of selecting one of said paths according to a predetermined criterion taking into account a content type of said flow and / or at least one piece of information representative of the capabilities of the terminal receiving said stream.
  • the invention makes it possible to adapt finely to a large number of contexts for which it is desirable to reduce or increase the quantity of information transmitted or received. For example, it may be necessary to adapt the data at the server level, at intermediate nodes, or translators, placed in a network, or at the terminal by selecting a profile by the user.
  • a first of said paths favors a characteristic representative of the quality of each image reconstructed by a terminal and a second of said paths favors a characteristic representative of the fluidity of the video
  • each of said raising data units carries at least two indicators for defining said paths, among the indicators belonging to the group comprising: a priority indicator (P);
  • said paths are stored in a path file, associating each of said paths with a predetermined application profile.
  • This file of paths can notably be a file in XML format.
  • said path file is transmitted in said video stream, in the form of at least one piece of information data.
  • the filtering method comprises the following steps: separating said enhancement data units, depending on the selected path, between data units to be used and data units being separated;
  • This last step can correspond to a storage, for example on a hard disk, making it possible to replay the video later with another level of quality, for example if the screen size is no longer the same. It can also be a storage in a buffer memory, for transmission of data units spread on another transmission channel.
  • discarded data units can also be directly deleted.
  • the method comprises the following steps: detection of at least one data unit to be used that is missing or deteriorated;
  • the method of the invention can be implemented at different levels of the transmission chain, and in particular by at least one of the following elements:
  • 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, characterized in that it comprises program code instructions for the implementing at least one step of the filtering method described above.
  • it relates to a method of transmitting a scalable video stream by a video stream server to at least one receiving terminal, via a transmission network, said stream being organized in blocks of data.
  • data units each comprising a basic data unit and a set of enhancement data units distributed according to at least two types of enhancement data, corresponding respectively to temporal and / or spatial and / or quality characteristics, and to define multiple quality levels, depending on the number and type of lift data units used.
  • This method comprises a step of transmitting at least two distinct profiles or paths for filtering the data units of each block, each path defining a series of successive fold positions, starting from an initial position, each position of fallback using at least one data unit less than the previous position.
  • Said server and / or an intermediate node of said transmission network implements a step of selecting one of the two paths according to a predetermined criterion taking into account a content type of said flow and / or at least one information representative of the capabilities of the terminal (or multiple terminals) receiving said flow, and a step of transmitting the selected data units.
  • said server and / or said intermediate node implements said selection step as a function of selection information transmitted by said terminal. It can also take into account a summary of information emitted by a group of terminals.
  • the invention also relates to a computer program product for implementing at least one step of this method of transmitting a scalable video stream.
  • the invention relates to a method of receiving in a receiving terminal a scalable video stream transmitted by a video stream server, via a transmission network, said stream being organized in blocks.
  • data units each comprising a basic data unit and a set of enhancement data units distributed according to at least two types of enhancement data, corresponding respectively to temporal and / or spatial and / or quality characteristics, and allowing to define several levels of quality, according to the number and type of raising data units used.
  • this method uses at least two profiles, or fructa, distinct from filtering the data units of each block, each path defining a series of successive foldback positions, from an initial position, each fallback position using at least one least one unit of data less than the previous position, and said receiving terminal implements a step of selecting one of said paths according to a predetermined criterion taking into account a content type of said stream and / or d at least one piece of information representative of the capabilities of the terminal receiving said stream.
  • the notion of using at least two profiles may mean that the terminal has previously received from the server these different profiles and / or that it has calculated them. , for example on the fly.
  • the selection of a path can be automatic (controlled by the terminal) and / or at the initiative of the user.
  • the invention also relates to a computer program product for implementing at least one step of this method of receiving a scalable video stream.
  • the invention also relates to the video stream servers, the intermediate nodes of a transmission network and the video stream receiving terminals comprising means for implementing the methods described below.
  • the invention relates to a signal intended to be transmitted from a server to at least one terminal, to allow the processing of a scalable video stream transmitted by said video stream server, via a transmission network, said stream being organized as detailed previously.
  • a signal carries definition data of at least two profiles, or paths, distinct from filtering data units of each block, each path defining a series of successive fallback positions from an initial position, each fallback position using at least one data unit less than the previous position.
  • This signal thus makes it possible to select one of said paths as a function of a predetermined criterion taking into account a content type of said stream and / or at least one piece of information representative of the capacities of the terminal receiving said stream.
  • the signal carries on the one hand said data units forming said video stream, and on the other hand said definition data. Both elements can also be transmitted independently. 6 .. List of figures
  • FIG. 1 already commented on in the preamble, illustrates the structure of a scalable video stream, whose subflows are represented by cubes in a three-dimensional space formed of the three spatial, temporal and quality dimensions
  • Figure 2 also commented in the preamble, shows the schematic structure of an encoder of the flow of Figure 1
  • Figure 3 commented in the preamble, is an example of structuring a scalable flow in two dimensions, and three corresponding paths
  • FIG. 4A also commented on in the preamble, illustrates an example of three-dimensional scalability structuring
  • FIG. 4B shows an alternative distribution of priorities for a NAL, according to one aspect of the invention
  • Figure 5 is a simplified flowchart of the principle of the invention
  • FIG. 6 illustrates a filtering table presenting two paths according to the invention
  • Figure 7 shows the flow rates corresponding to the table of Figure 6
  • FIG. 8 is another example of a filtering table according to the invention, using the notion of priority indicator
  • FIGS. 9 to 11 illustrate three implementations of the invention, respectively in a client-server model, the adaptation of the bit rate in an intermediate node and the adaptation to a terminal
  • FIG. 12 illustrates the dependencies defined by a profile
  • FIG. 13 the reconstruction of the dependencies for the replica on the best quality possible in the event of the loss of a NALU
  • FIGS. 14, 15 and 16 respectively show simplified diagrams of the servers, the transmission node and the terminal according to the invention, 7. Description of a preferred embodiment of the invention 7.1 essential elements of the invention
  • the invention therefore proposes to use, according to the embodiment described hereinafter, the fields (P, D, T, Q) of NALUs SVC, in order to manage priority orders depending on the specified application needs and usable for making the adaptation of a server-side video stream (rate control, adaptation to the request), transmission nodes (DiffServ, TOS) or client side (adaptation in complexity, (7) -
  • a set of application profiles (or paths) is defined. These application profiles therefore define different orders of priority over fallback modes, based on criteria such as the type of video (sports or cinema for example), the type of terminal (processing capacity and memory, screen size) and / or network capabilities. For example, in the first case, two profiles can be defined: - - Sport profile; we favor temporal fluidity:
  • An application profile is then defined by a series of values (P, D, T, Q) i.
  • the set of application profiles can be stored in a file, for example an XML file (this file applies to a complete sequence or to segments of the sequence or to a set of sequences).
  • This file can be transmitted with the video stream, or in a separate channel. It must be available before the beginning of the decoding of the sequence / segment ).
  • Another embodiment is the transport of these meta-parameters in information NALUs (eg SEI-type NALUs).
  • NALUs eg SEI-type NALUs
  • Reading 51 of the application profiles file containing fallback modes and choices 52 a. an initial mode of operation (eg sport) (fallback and recovery paths); b. an initial operating point (for example high speed CIF @ 30 Hz);
  • an initial mode of operation eg sport
  • an initial operating point for example high speed CIF @ 30 Hz
  • This operating point can be updated externally (on a bit rate, quality, complexity, etc. basis) in accordance with a defined fallback strategy; 2. Reading 53 of the indices of the scalable video unit to be processed: Ht in the header of the NAL the information of resolution spatio-temporal-quality (P_paq, D_paq, T_paq, Q_paq) (one or more of dimensions can be omitted); 3, depending on the operating point (updated or not by the external process); at. Reading 55 of the operating mode (for example: sport) associated with an ascending and descending path making it possible to move in the scalability space; b. Choosing an operating point (reading or calculating F'_cible
  • Filtering 56 a. Flow reduction; deleting packets for which (P_paq, D_ ⁇ aq, T_paq, Q_Paq) do not conform to the target, according to the XML table; b. rejection 57 or use 58 of the packet (or NALU);
  • Modification 54 (possibly via an external process or otherwise) of the operating point; at. change of the operating mode (from a given priority to the fluidity of the images to a priority on the quality or the spatial resolution); b. change of the operating point (request of ascent or descent in quality of service).
  • the modification 54 takes into account a fallback mode flag 59 issued by a profile adapter 510 controlled as appropriate by the client terminal 511, the server 512 and the network 513.
  • the invention is based on the definition of a relationship between the fields P, D, T, Q of the header of the NALUs in order to organize the video stream at the output of the method in accordance with the expectations of a service particular, or a group of services. 7..2 NALUS signaling
  • the filtering table illustrated in FIG. 6 is established in accordance with the prior art. One can also calculate, optionally, a rate associated with each "box" significant table.
  • This table can be interpreted as a set of resolution intervals with overlapping flows (or not). This interpretation is illustrated in Figure 7. Within each range, the rate increases with Priority_id P ,.
  • a fallback mode corresponds to a descent (arrows 61 and 62) in the table of FIG. 6. For example, we define:
  • a film profile 62 according to which quality is preferred over fluidity and spatial resolution:
  • range On the example XML file above, we defined operating ranges (called “range”). These operating ranges correspond to a value triplet (DTQ) and a range of values of ⁇ riority_id ⁇ Pmin, Pmax). This priority_id range then makes it possible to offer a variation in quality / throughput for a given resolution. The availability of different ranges for different space-time resolutions then makes it possible to define fallback application profiles.
  • An application profile is then defined by a sequence of "range”.
  • the sport profile goes from a range of flow in CIF @ 30Hz then a range of flow for QCIF @ 30Hz and finally for QCIF @ 15Hz, thus privileging a temporal fluidity during the use of mode of downturn.
  • bit rate ranges proposed in an application mode can overlap (see FIG. 7). This thus allows a hysteresis phenomenon in the algorithm described hereinafter which then allows greater stability of the system by limiting the use of fallback modes. 7.4 _ Generic adaptation algorithm
  • an adaptation algorithm works as follows: 1- Reading application profiles. For example the xml file described above: a- selection of an application mode. For example sport profile ("application one"); b- selection of an initial operating point. Default choice of the maximum operating mode; Point having the maximum priority_id in the "range” 9.
  • the external process then varies the value of the priority_id in the current range (for example by using a feedback system, or by using a tabukt ⁇ on " ⁇ riority_id" gives flow).
  • This step conventional in itself, consists of;
  • the invention can take into account a large number of application constraints and can be carried out indifferently at any point of the network placed on the path between the encoder and the decoder, in a real-time or processing process. delayed.
  • FIG. 14 shows the simplified structure of a server according to the invention, which comprises a memory M 148, a processing unit 146, equipped for example with a microprocessor: and driven by the computer program Pg 147.
  • a server which comprises a memory M 148, a processing unit 146, equipped for example with a microprocessor: and driven by the computer program Pg 147.
  • the code instructions of the computer program 147 are for example loaded into a RAM memory before being executed by the processor of the processing unit 146.
  • the processing unit 146 receives as input a set of NALUs 141, the microprocessor ⁇ p of the processing unit 146 delivers a filtered video stream 143 according to the profile, or path, selected, according to the instructions of the Pg 147 program.
  • the server 91 proposes (911) to the client 92 a choice of application profiles, according to a request 921 of video stream.
  • the customer chooses (922) a mode and an operating point.
  • the server receives the operating mode and the operating point
  • Modes and operating points can be updated by an external adaptation process 93 receiving reports from the user (or network).
  • the profile adapter 93 uses the "RangeOrder" elements of the profiles XML file. 7.6.2 Background 2; server-network-client model (network adaptation)
  • FIG. 15 shows the simplified structure of an intermediate network node according to the invention, which comprises a memory M 154, a processing unit 151, equipped for example with a microprocessor, and driven by the computer program Pg 152
  • the code instructions of the computer program 152 are for example loaded into a RAM memory before being executed by the processor of the processing unit 151.
  • the processing unit 151 receives as input a video stream 151.
  • the microprocessor ⁇ P of the processing unit 151 filters the video stream 151, according to a selected profile, and delivers a filtered stream 153, according to the instructions of the program Pg
  • the server 101 sends a high-speed video stream 102 to the network intended for a group of receivers accepting a high-quality image and with a high bit rate. Unlike the previous example running point-to-point, this example works in multicast.
  • the intermediate node 103 receives the same stream 02 as the other receivers placed on the network. It has a target application profile internally 1031 for controlling the filtering algorithm 1032 to achieve the target flow rate of the stream 1033, 1034 by eliminating off-profile packets.
  • the client 104 receives this filtered video 1033,
  • the intermediate node can calculate new profiles directly by analysis of the fields ⁇ P, D, T, Q ⁇ , 7.6.3 Adaptation of the flow rate to the resources of the terminal
  • FIG. 16 shows the simplified structure of a terminal according to the invention, which comprises a memory M 160, a processing unit 161, equipped for example with a microprocessor, and driven by the computer program Pg 162.
  • a terminal which comprises a memory M 160, a processing unit 161, equipped for example with a microprocessor, and driven by the computer program Pg 162.
  • the code instructions of the computer program 162 are for example loaded into a RAM before being executed by the processor of the processing unit 161.
  • the processing unit 161 receives an input.
  • the microprocessor ⁇ P of the processing unit 161 filters the video stream 163, according to the profile selected, according to the instructions of the program.
  • the processing unit 161 outputs a filtered video stream 164.
  • FIG. 11 gives an example of the adaptation of the display to the resources of a terminal 111, for example a terminal with limited resources.
  • the transport of the video 112 contains all the information for all the terminals. Depending on the reduced capacity of the terminal, a. user can choose
  • HMI It also has an HMI that will allow it to navigate the levels of quality.
  • H can choose to increase or decrease the operating point.
  • the application profiles are inserted into the general parameters 1121 of the video, by SEl message, xml table, EPG or by any other means.
  • the filtering 11 13 is performed according to the selected profile, and the decoder 1114 reconstructs the corresponding images. 7.6.4 Best quality recovery in the event of loss of NAL in a receiver
  • the adaptation of the NALUs may vary in the quality ranges corresponding to a level, as indicated by Figure 12, the switching from one level to another can be done at the ends of the range.
  • NALUs 131, 132 and 133 were lost.
  • the analysis of PDTQ fields makes it possible to find the available information of better quality while waiting for the next image received without error.
  • Received NALUs 134 and 135 correspond to the missing lower levels that do not allow decoding. We then fall back on the NALU 136.
  • element ref "debits"/> ⁇ ! - to define the type of the application profile. eg "sport”, “movie”, ... -> ⁇ ! - to illustrate the type of fallback strategy used, eg "temporal”, "quality”, ... ->
  • ⁇ ! allows to define the rates associated with the different rates e.g. "100-300 400" to indicate that the first range varies between 100 and 300 kbits; and that the second range is at a rate of 400 kbit / s -> ⁇ / xs: sequence>
  • ⁇ ! - Range defines an operating flow range (defined by Pmin, Pmax) for a given spatio-temporal resolution (defined by S, T, O) ->
  • Root for file definition. Must contain a definition of flow ranges (3D Space), and a list of application profiles (MyApplications) -> ⁇ / xs: element> ⁇ ! - Definition of types of syntax elements used

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

The invention relates to a method for filtering a scalable video stream, organised in the form of data unit blocks, each of which comprises a base data unit and a set of data units distributed according to two types of enhancement data, corresponding respectively to time and/or space and/or quality characteristics and making it possible to define several quality levels. The inventive method consists in defining at least two distinct filtering profiles, or paths of each block data units, wherein each path defines a row of successive foldover positions and each foldover position uses at least by one less data units than a previous position, and in selecting one of said paths according to a predetermined criterion, taking into account the type of content of said stream and/or at least one information item representing the capacities of a terminal receiving said stream.

Description

Procédés de filtrage, de transmission et de réception de flux vidéo scalables, programmes, serveur, nœud intermédiaire et terminal correspondants. Xt domaine de l'Invention Le domaine de l'invention est celui du traitement de signaux vidéo, et plus particulièrement de séquences vidéo compressées sous forme échelonnable, ou scalable. Plus précisément, l'invention concerne l'amélioration de l'exploitation d'un flux scalable, notamment, mais non exclusivement, dans le cadre du schéma de codage actuellement développé dans MPEG4-SVC. Cette technique MPEG4-SVC est notamment présentée dans les documents :Methods of filtering, transmitting and receiving scalable video streams, programs, server, intermediate node and corresponding terminal. FIELD OF THE INVENTION The field of the invention is that of the processing of video signals, and more particularly video sequences compressed in scalable or scalable form. More specifically, the invention relates to the improvement of the operation of a scalable stream, in particular, but not exclusively, within the framework of the coding scheme currently developed in MPEG4-SVC. This MPEG4-SVC technique is notably presented in the documents:
- JSVM 2.0 : Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, N7084, Joint Scalable Video Model (JSVM) 2,0 Référence Encodlng Algorithm, Description, April 2005, Busan (Julien Reichel, Heiko Schwarz, Mathias Wien) ; et- JSVM 2.0: Joint Video Team (JVT) of ISO / IEC MPEG & ITU-T VCEG, N7084, Scalable Video Model Joint (JSVM) 2.0 Encodlng Algorithm Reference, Description, April 2005, Busan (Julien Reichel, Heiko Schwarz, Mathias Wien); and
- W D2 : J. Reichel, H. Schwarz M. Wien - Scalable Video Coding - Working Draft 2 -ISO/IEC JTC1/SC29/WG11, W70S4, April 2005, Busan.- W D2: J. Reichel, H. Schwarz M. Wien - Scalable Video Coding - Working Draft 2 - ISO / IEC JTC1 / SC29 / WG11, W70S4, April 2005, Busan.
3, art antérieur % 1 les systèmes vidéo scalables (échelonnables)3, prior art% 1 scalable video systems (scalable)
Actuellement, la plupart des codeurs vidéo génèrent un seul flux compressé correspondant à l'intégralité d'une séquence codée. Chaque client souhaitant exploiter Ie fichier compressé pour décodage et visualisation doit pour cela télécharger (ou « streamer ») le fichier compressé complet. Or, dans un système hétérogène (par exemple Internet), tous les clients ne disposent pas du même type d'accès aux données : la bande passante, les capacités de traitement, les écrans des différents clients peuvent etre très différents (par exemple, sur un réseau Internet, l'un des clients pourra disposer d'un débit ADSL à 1024 kb/s et d'un micro-ordinateur (PC) puissant alors que l'autre ne bénéficiera que d'un accès modem et d'un PDA). Une solution évidente à ce problème consiste à générer plusieurs flux compressés correspondant à différents débits/résolutions de la séquence vidéo : c'est le simulcast, Cette solution est cependant sous-optimale en termes d'efficacité, et suppose de connaître à l'avance les caractéristiques de tous les clients potentiels ; Currently, most video encoders generate a single compressed stream corresponding to the entirety of an encoded sequence. Each client wishing to use the compressed file for decoding and visualization must download (or "stream") the complete compressed file. However, in a heterogeneous system (for example the Internet), not all clients have the same type of access to data: the bandwidth, the processing capacities, the screens of the different clients can be very different (for example, on an Internet network, one of the customers will be able to have an ADSL speed of 1024 kb / s and a powerful microcomputer (PC) while the other will only benefit from a modem access and a PDA ). An obvious solution to this problem is to generate several compressed streams corresponding to different bit rates / resolutions of the video sequence: it is the simulcast, This solution is however sub-optimal in terms of efficiency, and requires knowing in advance the characteristics of all potential customers ;
Plus récemment sont apparus des algorithmes de codage vidéo dit scalables (ou échelonnables), c'est-à-dire à qualité adaptable et résolution spatio- temporelle variable, pour lesquels le codeur génère un flux compressé en plusieurs couches, chacune de ses couches étant emboîtée dans la couche de niveau supérieur. Ces algorithmes sont aujourd'hui en cours d'adoption en amendement de MPEG4-AVC (appelé dans la suite de ce document : SVC).More recently, scalable (or scalable) video coding algorithms have been introduced, that is to say with adaptable quality and variable space-time resolution, for which the coder generates a compressed stream in several layers, each of its layers being nested in the upper level layer. These algorithms are now being adopted as an amendment to MPEG4-AVC (hereinafter referred to as SVC).
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, par exemple :Such encoders are very useful for all applications for which the generation of a single compressed stream, organized in several layers of scalability, can serve several clients of different characteristics, for example:
- service de vidéo à la demande, ou VOD (terminaux cibles : UMTS, PC ADSL, TV ADSL,..) ;- video on demand service, or VOD (target terminals: UMTS, PC ADSL, TV ADSL, ..);
- mobilité de session (reprise sur un PDA d'une session vidéo commencée sur TV ; ou sur un mobile UMTS d'une session commencée sur GPRS) ;- session mobility (resumption on a PDA of a video session started on TV, or on a UMTS mobile of a session started on GPRS);
- continuité de session (partage de la bande passante avec une nouvelle application) ;- continuity of session (bandwidth sharing with a new application);
- TV haute définition (encodage unique pour servir des clients SD - "Standard Définition" et HD - "High Définition") ; - visioconférence (encodage unique pour des clients UMTS/Internet) ;- High definition TV (single encoding to serve SD clients - "Standard Definition" and HD - "High Definition"); - videoconferencing (single encoding for UMTS / Internet clients);
2.1.1 Granularité de la scabilité2.1.1 Granularity of the scability
Un flux vidéo scalable peut être considéré comme un ensemble de sous- flux représentés par des cubes 11 dans un espace tridimensionnel formé des trois dimensions spatiale 12, temporelle 13, et qualité, oυ SNR, 14 (S,T,Q), comme illustré schématiquement par la figure 1.A scalable video stream can be considered as a set of substreams represented by cubes 11 in a three-dimensional space formed of the three spatial dimensions 12, temporal 13, and quality, where SNR, 14 (S, T, Q), as schematically illustrated in FIG.
La taille des incréments dans les différentes directions correspond à Ia "granularité" de la scabilité : elle peut etre fine, moyenne (10% de débit par incrément de scalabilité : MGS) ou grossière (25% de débit par incrément ; CGS). Dans la suite, on considérera que la scalabilité CGS correspond à un système « en couches » (« layers » dans le document MPEG2005/M 12043, Avril 2005. "ISO/MP4 File Format for Storage of Scalabie Video",Thomas Rathgen, Peter Amon et Andréas Hutter) et la scalabilité MGS à un système « par niveaux » (« levels » dans ce même document). 2.1.2 Mode de scalabilité fine (MGS)The size of the increments in the different directions corresponds to the "granularity" of the scability: it can be fine, average (10% of flow per increment of scalability: MGS) or coarse (25% of flow per increment, CGS). In the following, it will be considered that the CGS scalability corresponds to a "layered" system ("layers" in the document MPEG2005 / M 12043, April 2005. "ISO / MP4 File Format for Storage of Scalabie Video", Thomas Rathgen, Peter Amon and Andréas Hutter) and MGS scalability to a "level" system in this same document. 2.1.2 Fine Scalability Mode (MGS)
Un train binaire scalable peut être organisé pour supporter une scalabilité fine. On parlera par la suite de scalabilité MGS (« Médium Grain Scalability ») conformément à la règle adoptée dans MPEG. À partir du train binaire, n'importe quel sous-flux cohérent peut etre extrait (y compris le niveau de base) et décodé avec la qualité correspondante, c'est-à-dire n'importe quelle combinaison des résolutions supportées (temporelle, spatiale ou SNR) peut Être extraite. Les trains binaires MGS permettent k flexibilité Ia plus élevée. 2 J ,3 Mode d'organisation en couches (« Layered Scalability Mode »)A scalable bit stream can be arranged to support fine scalability. We will speak later of scalability MGS ("Medium Grain Scalability") in accordance with the rule adopted in MPEG. From the bit stream, any coherent substream can be extracted (including the base level) and decoded with the corresponding quality, ie any combination of supported resolutions (time, spatial or SNR) can be extracted. The MGS bitstreams allow for the highest flexibility. 2 J, 3 Layered Scalability Mode
Alternativement un train binaire peut être organisé en couches. On parlera alors de flux CGS (« Coarse Grain Scalability »). Une couche contient tous les niveaux de scalabilité nécessaires pour passer à la couche de qualité supérieure.Alternatively a binary train can be organized in layers. We will then talk about CGS flow ("Coarse Grain Scalability"). A layer contains all the scalability levels necessary to move to the top quality layer.
Une couche doit augmenter la qualité dans au moins une direction (temporelle, spatiale ou SNR).A layer must increase the quality in at least one direction (temporal, spatial or SNR).
Une représentation CGS permet des opérations simples d'adaptation, notamment au niveau des nœuds du réseau. Les évolutions des informations dans l'espace qualité-résolution spatiale-résolution temporelle sont définis a priori selon les conditions imposées par une application ou par un utilisateur du service. 2.2 MPBG-4 SVCA CGS representation allows simple adaptation operations, especially at the nodes of the network. The evolutions of the information in the quality-spatial resolution-temporal resolution space are defined a priori according to the conditions imposed by an application or by a user of the service. 2.2 MPBG-4 SVC
Le JSVM MPEG est décrit dans Ic document JSVM 2.0 déjà cité. Le modèle qui a été retenu est basé sui un codeur scalable fortement orienté vers des solutions de type AVC, dont Ia structure schématique d'un encodeur correspondant est présenté à la figure 2. Il s'agit d'une structure pyramidale. Les composantes d'entrée vidéo 20 subissent un sous-échantillonnage dyadique (décimatioπ 2D par 2 référencée 21, décimation 2D par 4 référencée 22). Chacun - -des flux sous-échantillonnés subit ensuite une décomposition temporelle 23 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 14 jusqu'à un débit donné R_rO_max qui correspond au débit maximum décodable pour Ia résolution spatiale basse rθ (ce niveau de base est compatible AVC).The JSVM MPEG is described in the already mentioned JSVM 2.0 document. The model that has been chosen is based on a scalable encoder strongly oriented towards AVC type solutions, whose schematic structure of a corresponding encoder is shown in Figure 2. It is a pyramid structure. The video input components 20 undergo dyadic subsampling (2D decimation by 2 referenced 21, 2D decimation by 4 referenced 22). Each of the subsampled streams is then subjected to a time division 23 of the MCTF type ("Motion Compensated Temporal Filtering" for "motion compensated temporal filtering"). A low resolution version of the video sequence is encoded 14 up to a given bit rate R_rO_max which corresponds to the maximum decodable bit rate for the low spatial resolution rθ (this base level is AVC compatible).
Les niveaux supérieurs sont ensuite codés 25, 26 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). Le résidu de prédiction est codé jusqu'à un débit R_rLmax qui correspond au débit maximum décodable pour la résolution ri. Plus précisément, les blocs de filtrage MCTF 23 réalisent un filtrage en ondelettes temporel, c'est-à-dire qu'ils réalignent les signaux dans le sens du mouvement avant filtrage en ondelettes : ils délivrent des informations de mouvement 27 qui alimentent un bloc de codage de mouvement 24-26, et des informations de texture 28, qui alimentent un module de prédiction 29. Les données prédites, en sortie du module de prédiction 29 servent à réaliser une interpolation 210 depuis le niveau inférieur. Elles alimentent également un bloc 211 de transformation spatiale et de codage entropique, qui travaille sur des niveaux de raffinement du signal. Un module de multiplexage 212 ordonne les différents sous-flux générés dans un flux de données compressé global. Cette nouvelle approche est capable de fournir des flux scalables à grain moyen dans les dimensions temporelles, spatiale, et en qualité.The higher levels are then encoded 25, 26 by subtracting the previous reconstructed and over-sampled level and encoding the residuals as: a base level; - Possibly one or more levels of enhancement obtained by multi-pass coding bit planes (hereinafter called FGS for "Fine Grain Scalability", fine grained scalability). The prediction residue is encoded up to a rate R_rLmax which corresponds to the maximum decodable bit rate for the resolution ri. More precisely, the MCTF filtering blocks 23 perform temporal wavelet filtering, that is to say they realign the signals in the direction of motion before filtering in wavelets: they deliver motion information 27 which feeds a block motion coding 24-26, and texture information 28, which feeds a prediction module 29. The predicted data at the output of the prediction module 29 serves to perform an interpolation 210 from the lower level. They also feed a block 211 of spatial transformation and entropy coding, which works on levels of signal refinement. A multiplexing module 212 orders the different subflows generated in a global compressed data stream. This new approach is able to provide grain scalable feeds average in the temporal, spatial, and quality dimensions.
Les caractéristiques principales de cette technique sont les suivantes :The main features of this technique are:
- solution pyramidale avec sous-échantillonnage dyadique des composantes d'entrée ; - - décomposition temporelle de type MCTF ("Motion Compensated Temporal Filtering" ou filtrage temporel de compensation de mouvement) à chaque niveau ;- pyramidal solution with dyadic subsampling of the input components; time-division decomposition of MCTF ("Motion Compensated Temporal Filtering") type at each level;
- codage du niveau de base (compatible AVC) ;- base level coding (AVC compatible);
- codage des niveaux supérieurs par soustraction du niveau précédent reconstruit et codage des résidus sous forme ;coding of the higher levels by subtraction of the reconstructed previous level and coding of the residues in form;
- d'un niveau de base ; et- a basic level; and
* d'un ou plusieurs niveaux de réhaussement obtenus par codage multipasse de plans de bits (par la suite : FGS),* one or more levels of enhancement obtained by multi-pass coding of bit planes (hereinafter: FGS),
Afin de réaliser une adaptation en débit, les informations de texture sont codées à l'aide d'un schéma progressif à chaque niveau :In order to achieve a rate adaptation, the texture information is coded using a progressive scheme at each level:
- codage d'un premier niveau de qualité minimale (appelé « Base Layer » - Couche de Base) ;coding of a first level of minimum quality (called "Base Layer" - Base layer);
- codage de niveaux de raffinement progressif (appelés "Enhancement Layer" - Couche de Rehaussement). 2,3 Architecture du, codeur SVC- coding of progressive refinement levels (called "Enhancement Layer"). 2.3 Architecture of the SVC Encoder
L'encodeur SVC est basé sur un système en deux couches, comme AVC :The SVC encoder is based on a two-layer system, like AVC:
- La couche VCL ( "Video Coding Layer") gère l'encodage de Ia vidéo ;- The VCL layer ("Video Coding Layer") manages the encoding of the video;
- La couche NAL ("Network Abstraction Layer") assure une interface entre la couche VCL et l'extérieur. En particulier, ce niveau organise en AUs ("access units" ou "blocs d'unités de données") les différentes- The Network Abstraction Layer (NAL) provides an interface between the VCL layer and the outside. In particular, this level organizes in AUs ("access units" or "blocks of data units") the different
NALU ("NAL Units" ou "unités de données") qui lui sont fournies par la couche VCL.NALU ("NAL Units" or "data units") provided by the VCL layer.
- Une NALU est une unité élémentaire contenant le niveau de base d'une Image spatio-temporelle, contenant tout (dans la version courante) ou partie (en cours de discussion pour les versions futures) d'un niveau FGS d'une image spatio-temporelle ; - Une AU est l'ensemble des NALUs correspondant à un instant temporel.- A NALU is an elementary unit containing the base level of a Spatiotemporal Image, containing all (in the current version) or part (being discussed for versions future) of an FGS level of a spatio-temporal image; An AU is the set of NALUs corresponding to a time instant.
24 Signalisation des modes de scalabilité dans la couche NAL SVC - - Afin de pouvoir décoder convenablement une NAL SVC, il faut pouvoir signaler son positionnement dans l'espace (S,T,Q) illustré par la figure 1.24 Scalability mode signaling in the NAL layer SVC - - In order to properly decode an NAL SVC, it is necessary to signal its positioning in the space (S, T, Q) illustrated in FIG.
Deux modes de signalisation (correspondant sensiblement aux modes CGS et MGS) sont actuellement en cours de discussion dans le JSVM : un mode de signalisation par chemin fixe, et un mode de signalisation par chemin variable. Un exemple simple est donné par la figure 3, pour un contexte à deux dimensions 2D (T, Q) : un flux vidéo scalable contient les représentation.. emboîtées de sous-flux en CIF, de résolutions temporelles 15 Hz (31) et 30 Hz (32). Le flux est constitué de quatre NALUs A(O), B (2), C(I) et D(2). En utilisant ces quatre NALUs on peut obtenir les points de débit-distorsion a, b, c, d. La priorité des NALUs est indiquée entre parenthèses.Two signaling modes (corresponding substantially to CGS and MGS modes) are currently being discussed in the JSVM: a fixed path signaling mode, and a variable path signaling mode. A simple example is given in FIG. 3, for a two-dimensional 2D context (T, Q): a scalable video stream contains the nested CIF sub-flow representations, of 15 Hz temporal resolutions (31) and Hz (32). The flow consists of four NALUs A (O), B (2), C (I) and D (2). Using these four NALUs we can obtain the flow-distortion points a, b, c, d. The priority of the NALUs is indicated in parentheses.
Sur cet exemple, on voit qu'il y a plusieurs "chemins" 33, 34 et 35, de décodage possible entre les points a et d : (a,b,c,d) mais aussi (a,b,d) ou (a,c,d).In this example, we see that there are several "paths" 33, 34 and 35, possible decoding between points a and d: (a, b, c, d) but also (a, b, d) or (a, c, d).
On comprend que certaines applications pourront privilégier un chemin par rapport à l'autre, Par exemple, il peut être judicieux d'utiliser le chemin (a,c,d) pour obtenir une vidéo fluide en 30 Hz, mais plutôt (a,b,d) si l'on souhaite privilégier la qualité en 15 Hz.We understand that some applications may favor a path relative to another, For example, it may be wise to use the path (a, c, d) to obtain a fluid video in 30 Hz, but rather (a, b , d) if one wishes to privilege the quality in 15 Hz.
Ce chemin est donc dépendant de l'application et du mode de codage utilisé. 2,5.1 Chemin fixeThis path is therefore dependent on the application and the coding mode used. 2.5.1 Fixed path
Ce mode signale un chemin unique dans l'espace 3D pour l'extraction du ftux scalable. Il est bien adapté au mode CGS pour certaines applications. Dans l'exemple de la figure 3, un chemin fixe va être choisi, par exemple (a,c,d).This mode signals a unique path in 3D space for extracting the scalable ftux. It is well adapted to the CGS mode for some applications. In the example of Figure 3, a fixed path will be chosen, for example (a, c, d).
Ce chemin sera toujours utilisé, que l'on décode en 30 ou en 15 Hz. L'inconvénient majeur qui apparaît alors est que Ie point b ne sera pas décodé, même en 15 Hz, alors qu'il pourrait être plus intéressant de le décoder pour avoir une meilleure qualité en 15Hz.This path will always be used, which is decoded in 30 or in 15 Hz. The major disadvantage that appears then is that point b will not be decoded, even in 15 Hz, whereas it could be more interesting to decode it to have a better quality in 15Hz.
Dans ce contexte, un indicateur unique permet de coder ce chemin fixe. 2.5,2 chemin variableIn this context, a single indicator is used to code this fixed path. 2.5.2 variable path
_ 5 Ce mode propose de laisser à 1,'application (ou au réseau) le choix du chemin d'extraction. Pour ce faire, on introduit un élément supplémentaire, que l'on appelle l'indicateur de priorité, et qui va permettre de résoudre le problème évoqué plus haut lorsqu'on décode en 30 Hz.This mode proposes to leave the application (or network) the choice of the extraction path. To do this, we introduce an additional element, called the priority indicator, which will solve the problem mentioned above when decoding in 30 Hz.
Les deux tableaux suivants montrent respectivement les priorités affectéesThe following two tables show respectively the priorities assigned
10 aux NALUs A, B, C et D dans l'exemple ci-dessus et le résultat du filtrage en 15 Hz et en 30 Hz selon la priorité choisie au décodage (sont décodées/conservées les NALUs qui apparaissent dans le tableau). On notera qu'il est possible en 30 Hz de définir plusieurs chemins différents en fonction de l'indice de priorité affecté aux quatre NALUs.10 to the NALUs A, B, C and D in the example above and the result of the filtering in 15 Hz and in 30 Hz according to the priority chosen at the decoding (are decoded / conserved the NALUs which appear in the table). It will be noted that it is possible in 30 Hz to define several different paths according to the priority index assigned to the four NALUs.
1515
Les règles de filtrage utilisées ici sont les suivantes : Pour une résolution temporelle T cible (30 ou 15 Hz) garder toutes lesThe filtering rules used here are: For a time resolution T target (30 or 15 Hz) keep all
20 NALs dont la résolution temporelle est inférieure ou égale à la résolution demandée (T_NAL <= T-CiWe) et la priorité est inférieure ou égale à la priorité demandée (pri,oritéJSTAL<= prioπté_cible). Le procédé est généralisante à plus de deux dimensions .* dans Vexemple illustré par Ia figure 4A, il y a trois dimensions de scalabilité :20 NALs whose temporal resolution is less than or equal to the requested resolution (T_NAL <= T-CiWe) and the priority is less than or equal to the requested priority (pri, orityJSTAL <= target_preferred). The method is generalizing to more than two dimensions. In the example illustrated by FIG. 4A, there are three dimensions of scalability:
25 D = Spatial : QCIF/CIF (la dépendance D est un sur-ensemble de la résolution spatiale S) ;D = Spatial: QCIF / CIF (dependence D is a superset of the spatial resolution S);
T = Temporel : 15 Hz/30 Hz ;T = Time: 15 Hz / 30 Hz;
Q = Qualité/complexité faible/forte (« low/high »)- Un exemple d'association de priorités aux différentes NALUs est précisé sur la figure, et un exemple de filtrage associé est montré dans le tableau ci- dessous.Q = Low / High Quality / Complexity - An example of an association of priorities to different NALUs is shown in the figure, and an example of associated filtering is shown in the table below.
Dans ce contexte, un indicateur double est nécessaire : le "priority fiels" contient l'indicateur de priorité et le "decolability info" contient les informations de résolution spatiale, temporelle et en qualité. Ces deux indicateurs nécessitent une représentation sur deux octets. Ainsi, dans toute la suite du document, une NAL sera repérée par ses quatre indices (P,D,T,Q) accessibles par exemple dans l'en-tête de fichier où : P indique la priorité ;In this context, a dual indicator is necessary: the "priority fiels" contains the priority indicator and the "decolability info" contains the information of spatial, temporal and quality resolution. Both of these indicators require a two-byte representation. Thus, throughout the rest of the document, a NAL will be identified by its four indices (P, D, T, Q) accessible for example in the file header where: P indicates the priority;
D indique la dépendance (sur-ensemble de la résolution spatialeD indicates the dependence (superset of the spatial resolution
S) ;S);
T indique la résolution temporelle ; Q indique la qualité, ou la complexité. On notera que les cellules en gras du tableau ci-dessus présentent des anomalies par rapport à la résolution spatio-temporelle demandée : en QCIF 30 Hz, il serait souhaitable de béneficier de la NALU B, et non uniquement de la NALU A qui est à 15 Hz.T indicates the temporal resolution; Q indicates quality, or complexity. It should be noted that the cells in bold of the table above have anomalies with respect to the requested spatial and temporal resolution: in QCIF 30 Hz, it would be desirable to benefit from the NALU B, and not only the NALU A which is at 15 Hz.
L'invention a entre autres comme objectif de pallier ce problème. 3 Inconvénients de la technique antérieureOne of the aims of the invention is to overcome this problem. 3 Disadvantages of the prior art
La solution à chemin fixe ne permet pas de servir simultanément des applications différentes, car il n'existe qu'une relation unique de dépendance entre les NALUs issus d'un codeur hiérarchique.The fixed-path solution does not allow different applications to be used simultaneously because there is only a single dependency relationship between the NALUs from a hierarchical coder.
La solution à chemins multiples est plus ouverte que la solution à chemins fixes : elle permet de s'adapter à des applications/résolutions différentes, dans le réseau, ou au niveau du décodeur. L'augmentation de complexité reste limitée, mais peut n'être pas adaptée pour une adaptation à très faible complexité comme fait sur certains routeurs de réseaux par exemple.The multi-path solution is more open than the fixed path solution: it can be adapted to different applications / resolutions in the network or at the decoder. The increase in complexity remains limited, but may not be suitable for adaptation to very low complexity as done on some network routers, for example.
La solution à chemin fixe ne permet pas de s'adapter au cours du temps à des conditions différentes du côté de l'utilisateur, du réseau ou du serveur : un client ne pourra choisir à un instant de favoriser un axe (par exemple la fluidité temporelle) plutôt qu'un autre (par exemple la qualité SNR) tel que le choix imposé par l'ordonnancement défini par le chemin fixe d'adaptation.The fixed-path solution does not adapt over time to different conditions on the side of the user, the network or the server: a customer can not choose at a moment to favor an axis (for example the fluidity temporal) rather than another (eg SNR quality) such as the choice imposed by the scheduling defined by the fixed adaptation path.
Aucune des deux solutions (fixe ou variable) ne permet de gérer un mode de repli qui permettrait à un utilisateur de réduire la qualité ou Ia résolution des données reçues selon ses propres préférences.Neither of the two solutions (fixed or variable) allows to manage a fallback mode that would allow a user to reduce the quality or the resolution of the received data according to his own preferences.
4 Objectifs de l'invention4 Objectives of the invention
L'invention a notamment pour objectif de pallier ces inconvénients de l'état de la technique. Plus précisément, un objectif de l'invention est de fournir une technique de représentation vidéo scalable fine (en couches) des unités de données, ou paquets, ou NALtJs, issus d'un codeur vidéo scalable dans le domaine 3D spatial-temporel- qualité, qui soit plus efficaces que les techniques connues.The invention particularly aims to overcome these disadvantages of the state of the art. More specifically, an object of the invention is to provide a fine scalable video representation technique (in layers) of data units, or packets, or NALtJs, from a scalable video coder in the spatial-temporal 3D-quality domain. which is more efficient than known techniques.
Ainsi, un objectif de l'invention est de permettre de gérer des chemins différents dans cet espace 3D en fonction des caractéristiques de l'application, du réseau ou des besoins du clientThus, an objective of the invention is to make it possible to manage different paths in this 3D space according to the characteristics of the application, the network or customer needs
En d'autres termes, un objectif de l'invention est de fournir une telle technique permettant de réaliser des traitements adaptés d'une même vidéo scalabte pour des applications différentes. Un autre objectif de l'invention est de permettre de définir des modes de repli spécifiques dépendants ou indépendants des applications.In other words, an object of the invention is to provide such a technique for performing adapted treatments of the same scalable video for different applications. Another objective of the invention is to make it possible to define specific dependency modes that are dependent on or independent of the applications.
L'invention a également pour objectif de permettre de définir des modes de remontée spécifiques dépendants ou indépendants des applications.The purpose of the invention is also to make it possible to define specific or application-independent modes of specific ascent.
Un autre objectif de l'invention est de permettre de varier au cours du temps modes et les points de fonctionnement pour un même flux vidéo.Another object of the invention is to allow variation over time and the operating points for the same video stream.
5._ Résumé de l'invention5._ Summary of the invention
Ces objectifs, ainsi que d'autres qui apparaîtront plus clairement par la suite, sont atteints selon l'invention à l'aide d'un procédé de filtrage d'un flux vidéo scalable» organisé en blocs d'unités de données comprenant chacun une unité de données de base et un ensemble d'unités de données de réhaussement distribuées selon au moins deux types de données de réhaussement, correspondant respectivement â des caractéristiques temporelles et/ou spatiales et/ou de qualité, et permettant de définir plusieurs niveaux de qualité, selon le nombre et îe type d'unités de données de réhaussement utilisées. Selon l'invention, ce procédé comprend une étape de définition d'au moins deux profils, ou chemins, distincts de filtrage des unités de données de chaque bloc, chaque chemin définissant une série de positions de repli successives, à partir d'une position initiale, chaque position de repli utilisant au moins une unité de données de moins que la position précédente, et une étape de sélection de l'un desdits chemins en fonction d'un critère prédéterminé tenant compte d'un type de contenu dudit flux et/ou d'au moins une information représentative des capacités du terminal recevant ledit flux.These objectives, and others which will become clear later, are achieved according to the invention using a filtering process of a scalable video stream "organized in blocks of data units each comprising a a basic data unit and a set of distributed enhancement data units according to at least two types of enhancement data, corresponding respectively to temporal and / or spatial and / or quality characteristics, and making it possible to define several levels of quality , depending on the number and type of uplift data units used. According to the invention, this method comprises a step of defining at least two distinct profiles, or paths, for filtering the data units of each block, each path defining a series of successive fallback positions, starting from a position initial, each fallback position using at least one data unit less than the previous position, and a step of selecting one of said paths according to a predetermined criterion taking into account a content type of said flow and / or at least one piece of information representative of the capabilities of the terminal receiving said stream.
Ainsi, l'invention permet de s'adapter finement à un grand nombre de contextes pour lesquels il est souhaitable de réduire ou augmenter la quantité d'informations transmises ou reçues. II peut par exemple s'agir d'adapter les données au niveau du serveur, au niveau de nœuds intermédiaires, ou translateurs, placés dans un réseau, ou au niveau du terminal par sélection d'un profil par l'usager.Thus, the invention makes it possible to adapt finely to a large number of contexts for which it is desirable to reduce or increase the quantity of information transmitted or received. For example, it may be necessary to adapt the data at the server level, at intermediate nodes, or translators, placed in a network, or at the terminal by selecting a profile by the user.
De façon avantageuse, un premier desdits chemins privilégie une caractéristique représentative de la -qualité de chaque image reconstruite par tin terminal et un deuxième desdits chemins privilégie une caractéristique représentative de la fluidité de la vidéo,Advantageously, a first of said paths favors a characteristic representative of the quality of each image reconstructed by a terminal and a second of said paths favors a characteristic representative of the fluidity of the video,
H est ainsi possible de privilégier, selon le contenu, la qualité de l'image» par exemple pour un film, ou la fluidité des mouvements, par exemple pour du sport. De nombreux autres chemins (également appelés profils) et variantes peuvent bien sûr être définis,It is thus possible to favor, depending on the content, the quality of the image " for example for a film, or the fluidity of the movements, for example for sports. Many other paths (also called profiles) and variants can of course be defined,
Préférentiellement, chacune desdites unités de données de réhaussement porte au moins deux indicateurs permettant de définir lesdits chemins, parmi les indicateurs appartenant au groupe comprenant : - un indicateur de priorité (P) ;Preferably, each of said raising data units carries at least two indicators for defining said paths, among the indicators belonging to the group comprising: a priority indicator (P);
- un indicateur de dépendance, relatif à la résolution spatiale (D) ;an indicator of dependence, relative to the spatial resolution (D);
- un indicateur de résolution temporelle (T) ;a time resolution indicator (T);
- un indicateur de qualité et/ou de complexité (Q).- an indicator of quality and / or complexity (Q).
Selon un mode de réalisation avantageux de l'invention, lesdits chemins sont stockés dans un fichier de chemins, associant chacun desdits chemins à un profil applicatif prédéterminé. Ce fichier de chemins peut notamment Être un fichier au format XML.According to an advantageous embodiment of the invention, said paths are stored in a path file, associating each of said paths with a predetermined application profile. This file of paths can notably be a file in XML format.
Il peut par exemple être stocké et/ou calculé à la volée par les terminaux. Dans un mode de réalisation préférentiel, ledit fichier de chemins est transmis dans ledit flux vidéo, sous la forme d'au moins une unité de données d'information.It can for example be stored and / or calculated on the fly by the terminals. In a preferred embodiment, said path file is transmitted in said video stream, in the form of at least one piece of information data.
De façon avantageuse, Ie procédé de filtrage comprend les étapes suivantes : - séparation desdites unités de données de rehaussement, en fonction du chemin sélectionné, entre des unités de données à utiliser et des unités de données ecartées ;Advantageously, the filtering method comprises the following steps: separating said enhancement data units, depending on the selected path, between data units to be used and data units being separated;
- reconstruction d'images vidéo à l'aide desdites unités de données à utiliser ;reconstruction of video images using said data units to be used;
- mémorisation desdites unités de données écartées.storage of said discarded data units.
Cette dernière étape peut correspondre à un stockage, par exemple sur un disque dur, permettant de rejouer plus tard la vidéo avec un autre niveau de qualité, par exemple si la taille d'écran n'est plus la meme. II peut également s'agir d'une mémorisation dans une mémoire tampon, en vue d'une transmission des unités de données écartées sur un autre canal de transmission.This last step can correspond to a storage, for example on a hard disk, making it possible to replay the video later with another level of quality, for example if the screen size is no longer the same. It can also be a storage in a buffer memory, for transmission of data units spread on another transmission channel.
Bien sûr, les unités de données écartées peuvent également être directement supprimées.Of course, the discarded data units can also be directly deleted.
Avantageusement, le procédé comprend les étapes suivantes : - détection d'au moins une unité de données à utiliser manquante ou détériorée ;Advantageously, the method comprises the following steps: detection of at least one data unit to be used that is missing or deteriorated;
- reconstruction d'une vidéo à partir d'unités de données correspondant à une des positions de repli du chemin sélectionné.reconstructing a video from data units corresponding to one of the fallback positions of the selected path.
Ainsi, en cas de perte d'un paquet, on ne perd pas la restitution de la vidéo, mais on passe simplement à une qualité inférieure.Thus, in case of loss of a package, we do not lose the restitution of the video, but we simply switch to a lower quality.
Le procédé de l'invention peut Être mis en œuvre à différents niveaux de la chaîne de transmission, et notamment par au moins un desdits éléments suivants :The method of the invention can be implemented at different levels of the transmission chain, and in particular by at least one of the following elements:
- serveur de flux vidéo ;- video stream server;
- nœud intermédiaire d'un réseau de transmission ; - terminal récepteur d'un flux vidéo.- intermediate node of a transmission network; - receiving terminal of a video stream.
L'invention concerne également 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, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en œuvre d'au moins une étape du procédé de filtrage décrit ci-dessus. Selon un autre aspect de l'invention, celle-ci concerne un procédé de transmission d'un flux vidéo scalable par un serveur de flux vidéo vers au moins un terminal récepteur, via un réseau de transmission, ledit flux, étant organisé en blocs d'unités de données comprenant chacun une unité de données de base et un ensemble d'unités de données de réhaussement distribuées selon au moins deux types de données de réhaussement, correspondant respectivement à des caractéristiques temporelles et/ou spatiales et/ou de qualité, et permettant de définir plusieurs niveaux de qualité, selon le nombre et le type d'unités de données de réhaussement utilisées. Ce procédé comprend une étape de transmission d'au moins deux profils, ou chemins, distincts de filtrage des unités de données de chaque bloc, chaque chemin définissant une série de positions de repli successives, à partir d'une position initiale, chaque position de repli utilisant au moins une unité de données de moins que la position précédente. Ledit serveur et/ou un nœud intermédiaire dudit réseau de transmission met en oeuvre une étape de sélection de l'un desdïts chemins en fonction d'un critère prédéterminé tenant compte d'un type de contenu dudit flux et/ou d'au moins une information représentative des capacités du terminal (ou de plusieurs terminaux) recevant ledit flux, et une étape de transmission des unités de données sélectionnées.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, characterized in that it comprises program code instructions for the implementing at least one step of the filtering method described above. According to another aspect of the invention, it relates to a method of transmitting a scalable video stream by a video stream server to at least one receiving terminal, via a transmission network, said stream being organized in blocks of data. data units each comprising a basic data unit and a set of enhancement data units distributed according to at least two types of enhancement data, corresponding respectively to temporal and / or spatial and / or quality characteristics, and to define multiple quality levels, depending on the number and type of lift data units used. This method comprises a step of transmitting at least two distinct profiles or paths for filtering the data units of each block, each path defining a series of successive fold positions, starting from an initial position, each position of fallback using at least one data unit less than the previous position. Said server and / or an intermediate node of said transmission network implements a step of selecting one of the two paths according to a predetermined criterion taking into account a content type of said flow and / or at least one information representative of the capabilities of the terminal (or multiple terminals) receiving said flow, and a step of transmitting the selected data units.
De façon avantageuse, ledit serveur et/ou ledit nœud intermédiaire met en œuvre ladite étape de sélection en fonction d'une information de sélection émise par ledit terminal. Elle peut également tenir compte d'une synthèse des informations émises par un groupe de terminaux. L'invention concerne également un produit programme d'ordinateur pour la mise en œuvre d'au moins une étape de ce procédé de transmission d'un flux vidéo scalable.Advantageously, said server and / or said intermediate node implements said selection step as a function of selection information transmitted by said terminal. It can also take into account a summary of information emitted by a group of terminals. The invention also relates to a computer program product for implementing at least one step of this method of transmitting a scalable video stream.
Selon encore un autre aspect, l'invention concerne un procédé de réception dans un terminal récepteur d'un flux vidéo scalable transmis par un serveur de flux vidéo, via un réseau de transmission, ledit flux étant organisé en blocs d'unités de données comprenant chacun une unité de données de base et un ensemble d'unités de données de réhaussement distribuées selon au moins deux types de données de réhaussement, correspondant respectivement à des caractéristiques temporelles et/ou spatiales et/ou de qualité, et permettant de définir plusieurs niveaux de-qualité, selon le nombre et Ie type d'unités de données de réhaussement utilisées.According to yet another aspect, the invention relates to a method of receiving in a receiving terminal a scalable video stream transmitted by a video stream server, via a transmission network, said stream being organized in blocks. data units each comprising a basic data unit and a set of enhancement data units distributed according to at least two types of enhancement data, corresponding respectively to temporal and / or spatial and / or quality characteristics, and allowing to define several levels of quality, according to the number and type of raising data units used.
Selon ce procédé, oit utilise au moins deux profils, ou chemina, distincts de filtrage des unités de données de chaque bloc, chaque chemin définissant une série de positions de repli successives, à partir d'une position initiale, chaque position de repli utilisant au moins une unité de données de moins que la position précédente, et ledit terminal récepteur met en œuvre une étape de sélection de l'un desdits chemins en fonction d'un critère prédéterminé tenant compte d'un type de contenu dudit flux et/ou d'au moins une information représentative des capacités du terminal recevant ledit flux, La notion d'utilisation d'au moins deux profils peut signifier que le terminal a préalablement reçu, du serveur, ces différents profils, et/ou qu'il les a calculé, par exemple à la volée. La sélection d'un chemin peut être automatique (pilotée par le terminal) et/qu à l'initiative de l'utilisateur.According to this method, it uses at least two profiles, or chemina, distinct from filtering the data units of each block, each path defining a series of successive foldback positions, from an initial position, each fallback position using at least one least one unit of data less than the previous position, and said receiving terminal implements a step of selecting one of said paths according to a predetermined criterion taking into account a content type of said stream and / or d at least one piece of information representative of the capabilities of the terminal receiving said stream. The notion of using at least two profiles may mean that the terminal has previously received from the server these different profiles and / or that it has calculated them. , for example on the fly. The selection of a path can be automatic (controlled by the terminal) and / or at the initiative of the user.
L'invention concerne également un produit programme d'ordinateur pour la mise en œuvre d'au moins une étape de ce procédé de réception d'un flux vidéo scalable.The invention also relates to a computer program product for implementing at least one step of this method of receiving a scalable video stream.
L'invention concerne également les serveurs de flux vidéo, les nœuds intermédiaires d'un réseau de transmission et les terminaux récepteurs de flux vidéo comprenant des moyens pour mettre en œuvre les procédés décrits ci- dessous.The invention also relates to the video stream servers, the intermediate nodes of a transmission network and the video stream receiving terminals comprising means for implementing the methods described below.
Enfin, l'invention concerne un signal destiné à être transmis depuis un serveur vers au moins un terminal, pour permettre Ie traitement d'un flux vidéo scalable transmis par ledit serveur de flux vidéo, via un réseau de transmission, ledit flux étant organisé comme détaillé précédemment. Un tel signal porte des données de définition d'au moins deux profils, ou chemins, distincts de filtrage des unités de données de chaque bloc, chaque chemin définissant une série de positions de repli successives, à partir d'une position initiale, chaque position de repli utilisant au moins une unité de données de moins que la position précédente.Finally, the invention relates to a signal intended to be transmitted from a server to at least one terminal, to allow the processing of a scalable video stream transmitted by said video stream server, via a transmission network, said stream being organized as detailed previously. Such a signal carries definition data of at least two profiles, or paths, distinct from filtering data units of each block, each path defining a series of successive fallback positions from an initial position, each fallback position using at least one data unit less than the previous position.
Ce signal permet ainsi une sélection de l'un desdits chemins en fonction d'un critère prédéterminé tenant compte d'un type de contenu dudit flux et/ou d'au moins une information représentative des capacités du terninal recevant ledit flux.This signal thus makes it possible to select one of said paths as a function of a predetermined criterion taking into account a content type of said stream and / or at least one piece of information representative of the capacities of the terminal receiving said stream.
Selon un mode de réalisation avantageux, le signal porte d'une part lesdites unités de données formant ledit flux vidéo, et d'autre part lesdites données de définition. Les deux éléments peuvent également être transmis de façons indépendantes. 6.. Liste des figuresAccording to an advantageous embodiment, the signal carries on the one hand said data units forming said video stream, and on the other hand said definition data. Both elements can also be transmitted independently. 6 .. List of 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à commentée en préambule, illustre la structure d'un flux vidéo scalable, dont les sous-flux sont représentés par des cubes dans un espace tridimensionnel formé des trois dimensions spatiale, temporelle, et qualité ; la figure 2, également commentée en préambule, présente la structure schématique d'un encodeur du flux de la figure 1 ; la figure 3, commentée en préambule, est un exemple de structuration d'un flux scalable en deux dimensions, et de trois chemins correspondants ; - la figure 4A, également commentée en préambule, illustre un exemple de structuration à trois dimensions de scalabilité, et la figure 4B présente une une variante de répartition des priorités pour une NAL, selon un aspect de l'invention ; la figure 5 est un organigramme simplifié du principe de l'invention ; - la figure 6 illustre un tableau de filtrage présentant deux chemins selon l'invention ; la figure 7 présente les plages de débit correspondant au tableau de la figure 6 ; la figure 8 est un autre exemple de tableau de filtrage selon l'invention, utilisant la notion d'indicateur de priorité ; les figures 9 à 11 illustrent trois mises en oeuvre de l'invention, respectivement dans un modèle client-serveur, l'adaptation du débit dans un noeud intermédiaire et l'adaptation à un terminal; la figure 12 illustre les dépendances définies par un profil, et la figure 13 la reconstruction des dépendances pour le répli sur la meilleure qualité possible en cas de perte d'une NALU ; les figures 14, 15 et 16 présentent respectivement des schémas simplifiés des serveur, nceud de transmission et terminal selon l'invention, 7. Description d'un mode de réalisation préférentiel de l'invention 7.1 éléments essentiels de l'inventionOther 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 nonlimiting example, and the appended drawings in which: FIG. 1, already commented on in the preamble, illustrates the structure of a scalable video stream, whose subflows are represented by cubes in a three-dimensional space formed of the three spatial, temporal and quality dimensions; Figure 2, also commented in the preamble, shows the schematic structure of an encoder of the flow of Figure 1; Figure 3, commented in the preamble, is an example of structuring a scalable flow in two dimensions, and three corresponding paths; FIG. 4A, also commented on in the preamble, illustrates an example of three-dimensional scalability structuring, and FIG. 4B shows an alternative distribution of priorities for a NAL, according to one aspect of the invention; Figure 5 is a simplified flowchart of the principle of the invention; FIG. 6 illustrates a filtering table presenting two paths according to the invention; Figure 7 shows the flow rates corresponding to the table of Figure 6; FIG. 8 is another example of a filtering table according to the invention, using the notion of priority indicator; FIGS. 9 to 11 illustrate three implementations of the invention, respectively in a client-server model, the adaptation of the bit rate in an intermediate node and the adaptation to a terminal; FIG. 12 illustrates the dependencies defined by a profile, and FIG. 13 the reconstruction of the dependencies for the replica on the best quality possible in the event of the loss of a NALU; FIGS. 14, 15 and 16 respectively show simplified diagrams of the servers, the transmission node and the terminal according to the invention, 7. Description of a preferred embodiment of the invention 7.1 essential elements of the invention
L'invention propose donc d'utiliser, selon le mode de réalisation décrit par la suite, les champs (P,D,T,Q) de NALUs SVC, afin de gérer des ordres de priorité dépendant des besoins applicatifs spécifiés et utilisable pour faire de l'adaptation d'un flux vidéo coté serveur (régulation de débit, adaptation à la demande), nœuds de transmission (DiffServ, TOS) ou côté client (adaptation en complexité, ...)-The invention therefore proposes to use, according to the embodiment described hereinafter, the fields (P, D, T, Q) of NALUs SVC, in order to manage priority orders depending on the specified application needs and usable for making the adaptation of a server-side video stream (rate control, adaptation to the request), transmission nodes (DiffServ, TOS) or client side (adaptation in complexity, ...) -
On se place dans le contexte du filtrage générique connu, décrit précédemment. Chaque NAL est donc définie par le quadruple! (P,D,T,Q).We place ourselves in the context of known generic filtering, described previously. Each NAL is therefore defined by the quadruple! (P, D, T, Q).
Le filtrage s'effectue selon N des 4 dimensions (N<=4). On dispose de modes de repli, c'est-à-dire de mécanismes permettant de privilégier un chemin dans l'espace (D,T,Q) lorsque les résolutions cibles ne peuvent être atteintes (pour des raisons de diminution de débit, de complexité, de choix de l'utilisateur...).The filtering is carried out according to N of the 4 dimensions (N <= 4). We have fallback modes, that is to say, mechanisms that make it possible to favor a path in space (D, T, Q) when the target resolutions can not be reached (for reasons of reduction of flow, of complexity, choice of the user ...).
Selon l'invention, un ensemble de profils applicatifs (ou chemins) est défini. Ces profils applicatifs définissent donc des ordres différents de priorité sur les modes de repli, en fonction de critères tels que le type de vidéo (sport ou cinéma par exemple), le type de terminal (capacité de traitement et de mémoire, taille de l'écran) et/ou les capacités du réseau. Par exemple, dans le premier cas, on peut définir deux profils : - - Profil sport ; on privilégie la fluidité temporelle :According to the invention, a set of application profiles (or paths) is defined. These application profiles therefore define different orders of priority over fallback modes, based on criteria such as the type of video (sports or cinema for example), the type of terminal (processing capacity and memory, screen size) and / or network capabilities. For example, in the first case, two profiles can be defined: - - Sport profile; we favor temporal fluidity:
SD@30Hz high ≈> SD@30Rz low => CIF@30Hz high => CIF@15Hz highSD @ 30Hz high ≈> SD @ 30Rz low => CIF @ 30Hz high => CIF @ 15Hz high
Profil film : on privilégie la qualité à la fluidité et résolution spatiale : SD@30Hz high => SD@15Hz high ≈> SD@7.5Hz high =>Film profile: we favor quality with fluidity and spatial resolution: SD @ 30Hz high => SD @ 15Hz high ≈> SD@7.5Hz high =>
CIF@7.5Eïz high.CIF@7.5Eïz high.
Un profil applicatif est alors défini par une suite de valeurs (P,D,T,Q)i. L'ensemble des profils applicatifs peut être stocké dans un fichier, par exemple un fichier XML (ce fichier s'appliquant à une séquence complète ou bien à des segments de la séquence ou encore à un ensemble de séquences). Ce fichier peut être transmis avec le flux vidéo, ou dans un canal séparé. Il doit être disponible avant le début du décodage de la séquence/segment...). Un autre mode de réalisation est le transport ces méta-paramètres dans des NALUs d'information (par exempte NALUs de type SEI), Le déroulement du procédé de filtrage, illustré par l'organigramme de Ia figure 5, est le suivant ;An application profile is then defined by a series of values (P, D, T, Q) i. The set of application profiles can be stored in a file, for example an XML file (this file applies to a complete sequence or to segments of the sequence or to a set of sequences). This file can be transmitted with the video stream, or in a separate channel. It must be available before the beginning of the decoding of the sequence / segment ...). Another embodiment is the transport of these meta-parameters in information NALUs (eg SEI-type NALUs). The flow of the filtering process, illustrated by the flowchart of FIG. 5, is as follows;
1. Lecture 51 du fichier des profils applicatifs contenant les modes de repli et choix 52 : a. d'un mode de fonctionnement initial (par exemple sport) (chemins de repli et de remontée) ; b. d'un point de fonctionnement initial (par exemple haut débit CIF@30 Hz) ;1. Reading 51 of the application profiles file containing fallback modes and choices 52: a. an initial mode of operation (eg sport) (fallback and recovery paths); b. an initial operating point (for example high speed CIF @ 30 Hz);
Ce point de fonctionnement peut être remis à jour de façon externe (sur une base d'adaptation en débit, en qualité, en complexité,..) conformément à une stratégie de repli définie ; 2. Lecture 53 des indices de l'unité de vidéo scalable à traiter : on Ht dans l'en-tête de la NAL les informations de résolution spatio-temporelles- qualité (P_paq, D__paq, T_paq, Q_paq) (une ou plusieurs des dimensions peuvent etre omises) ; 3, En fonction du point de fonctionnement (remis à jour ou non par le processus externe) ; a. Lecture 55 du mode de fonctionnement (par exemple : sport) associé à un chemin ascendant et descendant permettant de se déplacer dans l'espace de scalabilité ; b. Choix d'un point de fonctionnement (lecture ou calcul de F'_cibleThis operating point can be updated externally (on a bit rate, quality, complexity, etc. basis) in accordance with a defined fallback strategy; 2. Reading 53 of the indices of the scalable video unit to be processed: Ht in the header of the NAL the information of resolution spatio-temporal-quality (P_paq, D_paq, T_paq, Q_paq) (one or more of dimensions can be omitted); 3, depending on the operating point (updated or not by the external process); at. Reading 55 of the operating mode (for example: sport) associated with an ascending and descending path making it possible to move in the scalability space; b. Choosing an operating point (reading or calculating F'_cible
D'_cibIe, T'_cit>le, Q'_cîble) ; On _cibIe, T'_cit> on, Q'_ ible c);
4. Filtrage 56 : a. Réduction du débit ; suppression des paquets pour lesquels (P_paq, D_ρaq, T_paq, Q_Paq) ne sont pas conformes à la cible, conformément à la table XML ; b. rejet 57 ou utilisation 58 du paquet (ou NALU) ;4. Filtering 56: a. Flow reduction; deleting packets for which (P_paq, D_ρaq, T_paq, Q_Paq) do not conform to the target, according to the XML table; b. rejection 57 or use 58 of the packet (or NALU);
5. Modification 54 (éventuelle via un processus externe ou autre) du point de fonctionnement ; a. changement du mode de fonctionnement (passer d'une priorité donnée à la fluidité des images à une priorité sur la qualité ou la résolution spatiale) ; b. changement du point de fonctionnement (demande de remontée ou de descente en qualité de service).5. Modification 54 (possibly via an external process or otherwise) of the operating point; at. change of the operating mode (from a given priority to the fluidity of the images to a priority on the quality or the spatial resolution); b. change of the operating point (request of ascent or descent in quality of service).
La modification 54 tient compte d'un indicateur 59 de mode de repli délivré par un adaptateur de profil 510 contrôlé selon les cas par le terminal client 511 , le serveur 512 et Ie réseau 513.The modification 54 takes into account a fallback mode flag 59 issued by a profile adapter 510 controlled as appropriate by the client terminal 511, the server 512 and the network 513.
Chacune de ces étapes est détaillée par la suite.Each of these steps is detailed later.
L'invention s'appuie sur la définition d'une relation entre les champs P, D, T, Q de l'en-tête des NALUs en vue d'organiser le flux vidéo en sortie du procédé conformément aux attentes d'un service particulier, ou d'un groupe de services. 7..2 Signalisation des NALUSsThe invention is based on the definition of a relationship between the fields P, D, T, Q of the header of the NALUs in order to organize the video stream at the output of the method in accordance with the expectations of a service particular, or a group of services. 7..2 NALUS signaling
On propose, selon un mode de réalisation avantageux, d'améliorer la numérotation proposée dans l'art antérieur en déclarant que chaque niveau de base est de priority_id 0 Cette approche est illustrée par la figure 4B, Elle permet efficacement de faire disparaitre les points en anomalie entre les résolutions spatio-temporelles demandées et délivrées (case en gras du tableau de l'art antérieur). 7.3 Etablissement du tableau de filtrageAccording to an advantageous embodiment, it is proposed to improve the numbering proposed in the prior art by declaring that each basic level is of priority_id 0 This approach is illustrated by FIG. 4B. It effectively makes it possible to eliminate the points in anomaly between the spatio-temporal resolutions requested and delivered (box in bold of the table of the prior art). 7.3 Establishment of the filtering table
Le tableau de filtrage illustré en figure 6 est établi conformément à l'art antérieur. On peut aussi calculer, de manière optionnelle, un débit associé à chaque "case" significative du tableau.The filtering table illustrated in FIG. 6 is established in accordance with the prior art. One can also calculate, optionally, a rate associated with each "box" significant table.
On peut interpréter ce tableau comme un ensemble d'intervalles de résolutions avec des débits recouvrants (ou non). Cette interprétation est illustré par la figure 7. A l'intérieur de chaque intervalle, le débit augmente avec le Priority_id P,.This table can be interpreted as a set of resolution intervals with overlapping flows (or not). This interpretation is illustrated in Figure 7. Within each range, the rate increases with Priority_id P ,.
Sur le tableau de la figure 6, on peut noter que chaque série est monotone dans le tableau, alors que la courbe 61 ne l'est pas. Cela est un avantage de la solution de l'invention.In the table of Figure 6, it can be noted that each series is monotonous in the table, while the curve 61 is not. This is an advantage of the solution of the invention.
Un mode de repli correspond à une descente (flèches 61 et 62) dans le tableau de la figure 6. Par exemple, on définit :A fallback mode corresponds to a descent (arrows 61 and 62) in the table of FIG. 6. For example, we define:
- un profil sport 61, selon lequel on privilégie la fluidité temporelle CIF@30Hz high -> CIF@30Hz low => QCIF@30Hz high => QCDF®30HzLow > QCJF@15Hz high ;- A sport profile 61, according to which one favors the temporal fluidity CIF @ 30Hz high -> CIF @ 30Hz low => QCIF @ 30Hz high => QCDF®30HzLow> QCJF @ 15Hz high;
- un profil film 62, selon lequel on privilégie la qualité à la fluidité et résolution spatiale :a film profile 62, according to which quality is preferred over fluidity and spatial resolution:
CIF @30Hz high -> CIF @ 15Hz high =>QCtF @ 15Hz high =>QCIF @7.5Hz high.CIF @ 30Hz high -> CIF @ 15Hz high => QCtF @ 15Hz high => QCIF @ 7.5Hz high.
La meme approche peut etre définie par évolution de plages de débit, comme illustré par la figure 8 : - profil sport 81 : SD@30Hz (high to low) => CIP@30Hz (hîgh to low) => QCIF@30Hz (hightolow) ... - profil film 82...The same approach can be defined by evolution of flow ranges, as illustrated by FIG. 8: - sport profile 81: SD @ 30Hz (high to low) => CIP @ 30Hz (hgh to low) => QCIF @ 30Hz (hightolow) ... - film profile 82 ...
Afin de définir ces modes de repli en fonction des applications, on peut imaginer par exemple un fichier XML des profils applicatifs du type suivant-:-In order to define these fallback modes according to the applications, one can imagine for example an XML file of the application profiles of the following type -: -
<?xml veersion="1.0"? ><? xml veersion = "1.0"? >
<Root xmls: xsi="http : //www. w3.org/2001 /XMLSchema ~instance" xsi: noNamespaceSchemalocation ="C: \Mes Documents\Brevets\DIH\Transport SVC\XML\Repli. xsd"> <Espace3D><Root xmls: xsi = " http: // www .w3.org/2001 / XMLSchema ~ instance" xsi: noNamespaceSchemalocation = "C: \ My Documents \ Patents \ DIH \ SVC Transport \ XML \ Replication." Xsd "><3DSpace>
<!-- Définion de plages de fonctionnement pour des résolutions types -><! - Defining operating ranges for typical resolutions ->
<Range id="1" S="QCIF" T="15Hz " Q="low" PMin="0" PMax="0"/> < ! --cette première plage correspond a du QCIF 15hz avec PMin=PMax, i.e. un seul point" --><Range id = "1" S = "QCIF" T = "15Hz" Q = "low" PMin = "0" PMax = "0" /> <! --This first range corresponds to QCIF 15hz with PMin = PMax, i.e. a single point "->
<Range id="2" S="QCIF" T="15Hz"" Q="high" PMin="0" PMax= "1"/><Range id = "2" S = "QCIF" T = "15Hz" "Q =" high "PMin =" 0 "PMax =" 1 "/>
<! --cette première plage correspond à du QCIF 15hz avec PMin<PMax, plusieurs points"--><! --This first beach corresponds to QCIF 15hz with PMin <PMax, several points "->
<Range id="3" S="QCIF" T="30Hz" Q="low" PMin="0" PMax="0" /><Range id = "3" S = "QCIF" T = "30Hz" Q = "low" PMin = "0" PMax = "0" />
<Range id="4" S="QCIF" T="30Hz" Q="high" PMin="0" PMax="3" /> <Range id="5" S="CIF" T="15Hz" Q="low" PMin="0"<Range id = "4" S = "QCIF" T = "30Hz" Q = "high" PMin = "0 " PMax = "3"/><Range id = "5" S = "CIF" T = "15Hz "Q =" low "PMin =" 0 "
<Range id="6" S="CIF" T=" 15 Hz" Q="high" PMin ="1"<Range id = "6" S = "CIF" T = "15 Hz" Q = "high" PMin = "1"
<Range id="7" S="CIF" T= "30Hz" Q= "low" PMin="0" PMax="0"/> <Range id="8" S="CIF" T="30Hz" Q="high" PMin="0" PMax="3"/><Range id = "7" S = "CIF" T = "30Hz" Q = "low" PMin = "0" PMax = "0"/> <Range id = "8" S = "CIF" T = "30Hz" Q = "high" PMin = "0" PMax = "3"/>
<Range id="9" S="CIF" T="30Hz" Q="high" PMin ="2" PMax="3"/> <Espace 3D><Range id = "9" S = "CIF" T = "30Hz" Q = "high" PMin = "2" PMax = "3" /> <3D Space>
<Mesapplications ><Myapplications>
<Application name="application une"> <!-- application numero un — > <tγpe> sport </type> <! --application de type sport" --><Application name = "application one"> <! - application number one -> <tγpe> sport </ type> <! --Sports-type application ->
<path_preference> temporel </path_preference> <RangeOrder > "8 4 2"</RangeOrder> <!-- Ce chemin indique une preference de fluidite temporelle - -> <debits>"150 150-300 450 450-900"</debits ><path_preference> time </ path_preference> <RangeOrder> "8 4 2" </ RangeOrder> <! - This path indicates time flow preference - -> <flows> "150 150-300 450 450-900" </ debits>
</Application></ Application>
<Application name=" application deux"> <!-- application numero deux--> <type>film<type > <! --application de type film"— ><Application name = "application two"> <! - application number two -> <type> movie <type> <! --application type movie "->
<path_preference > qualité</path_preference > <RangeOrder> "9 6 2"</RangeOrder > <! — ce chemin indique une preference de qualite par rapport aux autres axes --> <debits> "100-200 400-600 800-900"</debits><path_ p reference> quality </ path_preference><RangeOrder>"9 6 2"</RangeOrder><! - this path indicates a preference of quality compared to the other axes -><flows>"100-200 400-600 800-900"</debits>
<Application> <Application name="application trois"><Application> <Application name = "application three">
<!-- mon application numero trois - -> <type>mobile</type> <path_preference > resolution</path _preference > <RangeOrder>"9 6 5"</RangeOrder> <debits/> </Application> </Mesapplications> <Roct ><! - my application number three - -><type> mobile </ type><path_preference> resolution </ path _preference> <RangeOrder>"9 6 5"</RangeOrder><debits/></Application></Myapplications><Roct>
On présente en annexe un schéma complet permettant de valider cet exemple.An appendix is a complete diagram to validate this example.
Tout autre moyen de description des profils applicatifs est possible, tel qu'un tableau dans un langage de programmation, ou une insertion dans le flux vidéo (SEI à définir).Any other means of describing the application profiles is possible, such as a table in a programming language, or an insertion in the video stream (SEI to be defined).
Sur l'exemple de fichier XML ci-dessus, on a défini des plages de fonctionnement (dénommées « range »). Ces plages de fonctionnement correspondent à un triplet de valeur (DTQ) et une plage de valeurs de ρriority_id {Pmin, Pmax). Cette plage de priority_id permet alors d'offrir une variation en qualité/débit pour une résolution donnée. La disponibilité de différentes plages pour différentes résolutions spatio-temporelles permet alors de définir des profils applicatifs de repli.On the example XML file above, we defined operating ranges (called "range"). These operating ranges correspond to a value triplet (DTQ) and a range of values of ρriority_id {Pmin, Pmax). This priority_id range then makes it possible to offer a variation in quality / throughput for a given resolution. The availability of different ranges for different space-time resolutions then makes it possible to define fallback application profiles.
Un profil applicatif est alors défini par une suite de « range ». Ainsi sur cet exemple, le profil sport passe d'une plage de débit en CIF@30Hz puis une plage de débit pour du QCIF@30Hz et enfin pour du QCIF@15Hz, privilégiant ainsi une fluidité temporelle lors de l'utilisation de mode de repli.An application profile is then defined by a sequence of "range". Thus on this example, the sport profile goes from a range of flow in CIF @ 30Hz then a range of flow for QCIF @ 30Hz and finally for QCIF @ 15Hz, thus privileging a temporal fluidity during the use of mode of downturn.
Il est à noter que les plages de débits proposées dans un mode applicatif peuvent se chevaucher (voir figure 7), Ceci autorise ainsi un phénomène d'hystérésis dans l'algorithme décrit par la suite qui permet alors une plus grande stabilité du système en limitant l'utilisation des modes de repli. 7,4 _ Algorithme générique d'adaptationIt should be noted that the bit rate ranges proposed in an application mode can overlap (see FIG. 7). This thus allows a hysteresis phenomenon in the algorithm described hereinafter which then allows greater stability of the system by limiting the use of fallback modes. 7.4 _ Generic adaptation algorithm
En reprenant l'exemple de profils applicatifs tels que décrit ci-dessus, un algorithme d'adaptation fonctionne de la manière suivante: 1- Lecture des profils applicatif. Par exemple le fichier xml décrit ci-dessus : a- sélection d'un mode applicatif. Par exemple profil sport ("application une") ; b- sélection d'un point de fonctionnement initial. Par défaut choix du mode de fonctionnement maximal; Point ayant le priority_id maximum dans le « range » 9. Soit p_cible=3, D_cible≈CIP, T_cible=30H2, Q_cible=High ; 2- Lors d'une adaptation nécessaire, le processus externe fait alors varier la valeur du priority_id dans le range courant (par exemple en utilisant un système de rétroaction, ou bien en utilisant une tabuktïon « ρriority_id » donne débit). Si Ia contrainte n'est pas satisfaite, on peut alors décider d'opérer un repli (sélection du range inférieur) ou de remontée (sélection du range supérieur). La recherche du « range » adéquat et du « priority_id » peut être poursuivi jusqu'à obtention de la contrainte. 7,5 FiltrageUsing the example of application profiles as described above, an adaptation algorithm works as follows: 1- Reading application profiles. For example the xml file described above: a- selection of an application mode. For example sport profile ("application one"); b- selection of an initial operating point. Default choice of the maximum operating mode; Point having the maximum priority_id in the "range" 9. Let p_cible = 3, D_cible≈CIP, T_cible = 30H2, Q_cible = High; 2- During a necessary adaptation, the external process then varies the value of the priority_id in the current range (for example by using a feedback system, or by using a tabuktïon "ρriority_id" gives flow). If the constraint is not satisfied, we can then decide to make a withdrawal (selection of the lower range) or recovery (selection of the upper range). The search for the appropriate "range" and "priority_id" can be continued until the constraint is obtained. 7.5 Filtering
Cette étape, classique en soi, consiste à ;This step, conventional in itself, consists of;
• Rejeter (ou traiter de façon adéquate - par exemple par routage haut débit) tous les paquets pour lesquels (P_paq > P_courant) et/ou• Reject (or adequately handle - for example, high-speed routing) all packets for which (P_paq> P_current) and / or
(S_paq > S_courant) et/ou (T_ρaq > T_couxant) et/ou (Q'_paq > Q_courant),(S_paq> S_current) and / or (T_ρaq> T_couxant) and / or (Q'_paq> Q_current),
• Traiter les autres paquets (transmission, stockage, ...). 7.6. Exemple d'applications de l'invention L'invention peut prendre en compte un grand nombre de contraintes applicatives et peut se réaliser indifféremment en tout point du réseau placé sur le chemin entre le codeur et le décodeur, dans un processus temps réel ou de traitement en différé.• Treat other packages (transmission, storage, ...). 7.6. EXAMPLE OF APPLICATIONS OF THE INVENTION The invention can take into account a large number of application constraints and can be carried out indifferently at any point of the network placed on the path between the encoder and the decoder, in a real-time or processing process. delayed.
Le tableau ci-dessous décrit plusieurs exemples d'actions types et leurs localisations possibles dans le réseau:The table below describes several examples of typical actions and their possible locations in the network:
7.6.1 Contexte 1 : modèle client-serveur (adaptation aux ressources et aux choix de l'utilisateur)7.6.1 Context 1: client-server model (adaptation to resources and user choices)
La Figure 14 présente la structure simplifiée d'un serveur selon l'invention, qui comprend une mémoire M 148, une unité de traitement 146, équipée par exemple d'un microprocesseur:, et pilotée par le programme d'ordinateur Pg 147. A l'initialisation, les instructions de code du programme d'ordinateur 147 sont par exemple chargées dans une mémoire RAM avant d'etre exécutées par le processeur de l'unité de traitement 146. L'unité de traitement 146 reçoit en entrée un ensemble de NALUs 141, Le microprocesseur μp de l'unité de traitement 146 délivre un flux vidéo filtré 143 en fonction du profil, ou chemin, sélectionné, selon les instructions du programme Pg 147.FIG. 14 shows the simplified structure of a server according to the invention, which comprises a memory M 148, a processing unit 146, equipped for example with a microprocessor: and driven by the computer program Pg 147. A initialization, the code instructions of the computer program 147 are for example loaded into a RAM memory before being executed by the processor of the processing unit 146. The processing unit 146 receives as input a set of NALUs 141, the microprocessor μp of the processing unit 146 delivers a filtered video stream 143 according to the profile, or path, selected, according to the instructions of the Pg 147 program.
Cette mise en œuvre est illustrée par la figure 9. Le serveur 91 propose (911) au client 92 un choix de profils applicatifs, en fonction d'une demande 921 de flux vidéo. Le client choisit (922) un mode et un point de fonctionnement.This implementation is illustrated by FIG. 9. The server 91 proposes (911) to the client 92 a choice of application profiles, according to a request 921 of video stream. The customer chooses (922) a mode and an operating point.
Le serveur reçoit le mode de fonctionnement et le point de fonctionnementThe server receives the operating mode and the operating point
912 du client, en fonction de quoi il filtre (913) les éléments 914 du codage vidéo.912 of the client, according to which it filters (913) the elements 914 of the video coding.
Seuls les paquets conservés, formant la vidéo filtrée 915, sont transmis au client.Only packets retained, forming the filtered video 915, are transmitted to the client.
Les modes et points de fonctionnement peuvent etre remis à jour par un processus d'adaptation externe 93 recevant des rapports de l'usager (ou du réseau).Modes and operating points can be updated by an external adaptation process 93 receiving reports from the user (or network).
L'adaptateur de profils 93 utilise les éléments "RangeOrder" du fichier XML de profils. 7.6.2 Contexte 2 ; modèle serveur-réseau- client (adaptation au réseau)The profile adapter 93 uses the "RangeOrder" elements of the profiles XML file. 7.6.2 Background 2; server-network-client model (network adaptation)
La figure 15 présente la structure simplifiée d'un nœud intermédiaire de réseau selon l'invention, qui comprend une mémoire M 154, une unité de traitement 151, équipée par exemple d'un microprocesseur, et pilotée par le programme d'ordinateur Pg 152. A l'initialisation, les instructions de code du programme d'ordinateur 152 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 151. L'unité de traitement 151 reçoit en entrée un flux vidéo 151. Le microprocesseur μP de l'unité de traitement 151 filtre le flux vidéo 151, en fonction d'un profil sélectionné, et délivre un flux filtré 153, selon les instructions du programme PgFIG. 15 shows the simplified structure of an intermediate network node according to the invention, which comprises a memory M 154, a processing unit 151, equipped for example with a microprocessor, and driven by the computer program Pg 152 At initialization, the code instructions of the computer program 152 are for example loaded into a RAM memory before being executed by the processor of the processing unit 151. The processing unit 151 receives as input a video stream 151. The microprocessor μP of the processing unit 151 filters the video stream 151, according to a selected profile, and delivers a filtered stream 153, according to the instructions of the program Pg
152.152.
Cette deuxième mise en oeuvre est illustrée par la figure 10. Le serveur 101 envoie dans le réseau un flux (vidéo haut débit) 102 destiné à un groupe de récepteurs acceptant une image haute qualité et avec un débit élevé. Contrairement à l'exemple précédent fonctionnant en point à point, cet exemple fonctionne en multicast.This second implementation is illustrated in FIG. 10. The server 101 sends a high-speed video stream 102 to the network intended for a group of receivers accepting a high-quality image and with a high bit rate. Unlike the previous example running point-to-point, this example works in multicast.
Le nœud intermédiaire 103 reçoit le même flux ]02 que les autres récepteurs placés sur Ic réseau. Il dispose en interne d'un profil applicatif cible 1031 permettant de piloter l'algorithme de filtrage 1032 pour aboutit au débit cible du flux 1033, par élimination 1034 des paquets hors profil. Le client 104 reçoit cette vidéo filtrée 1033,The intermediate node 103 receives the same stream 02 as the other receivers placed on the network. It has a target application profile internally 1031 for controlling the filtering algorithm 1032 to achieve the target flow rate of the stream 1033, 1034 by eliminating off-profile packets. The client 104 receives this filtered video 1033,
Dans le cas ou les profils fournis par le serveur ne sont pas adaptés, le nœud intermédiaire peut calculer de nouveaux profils directement par analyse des champs {P,D,T,Q}, 7,6.3 Adaptation du débit aux ressources du terminalIn the case where the profiles provided by the server are not adapted, the intermediate node can calculate new profiles directly by analysis of the fields {P, D, T, Q}, 7.6.3 Adaptation of the flow rate to the resources of the terminal
La figure 16 présente la structure simplifiée d'un terminal selon l'invention, qui comprend une mémoire M 160, une unité de traitement 161, équipée par exemple d'un microprocesseur, et pilotée par le programme d'ordinateur Pg 162. A l'initialisation, les instructions de code du programme d'ordinateur 162 sont par exemple chargées dans une mémoire RAM avant d'etre exécutées par le processeur de l'unité de traitement 161. L'unité de traitement 161 reçoit en entrée un. flux vidéo 163» Le microprocesseur μP de l'unité de traitement 161 filtre le flux vidéo 163, en fonction du profil sélectionné, selon les instructions du programmeFIG. 16 shows the simplified structure of a terminal according to the invention, which comprises a memory M 160, a processing unit 161, equipped for example with a microprocessor, and driven by the computer program Pg 162. A initialization, the code instructions of the computer program 162 are for example loaded into a RAM before being executed by the processor of the processing unit 161. The processing unit 161 receives an input. The microprocessor μP of the processing unit 161 filters the video stream 163, according to the profile selected, according to the instructions of the program.
Pg 162. L'unité de traitement 161 délivre en sortie un flux vidéo filtré 164.Pg 162. The processing unit 161 outputs a filtered video stream 164.
La figure 11 donne un exemple de l'adaptation de l'affichage aux ressources d'un terminal 111, par exemple un terminal à ressources limitées. Le transport de la vidéo 112 contient l'ensemble des informations pour tous les terminaux. En fonction de la capacité réduite du terminal, un. usager peut choisirFIG. 11 gives an example of the adaptation of the display to the resources of a terminal 111, for example a terminal with limited resources. The transport of the video 112 contains all the information for all the terminals. Depending on the reduced capacity of the terminal, a. user can choose
(11 11), pour son confort personnel, de privilégier uo profil avec une meilleure fluidité ou un profil avec une meilleure définition, parmi ceux disponibles 1112. Par exemple, l'utilisateur choisit le profil "sport".(11 11), for his personal comfort, to favor a profile with a better fluidity or a profile with a better definition, among those available 1112. For example, the user chooses the profile "sport".
Il dispose en outre d'une IHM qui va lui permettre de naviguer dans les niveaux de qualité. H peut en particulier choisir d'augmenter ou diminuer le point de fonctionnement.It also has an HMI that will allow it to navigate the levels of quality. In particular, H can choose to increase or decrease the operating point.
Les profils applicatifs sont insérés dans les paramètres généraux 1121 de la vidéo, par message SEl, table xml, EPG ou par tout autre moyen.The application profiles are inserted into the general parameters 1121 of the video, by SEl message, xml table, EPG or by any other means.
Le filtrage 11 13 est effectué en fonction du profil sélectionné, et le décodeur 1114 reconstruit les images correspondantes. 7,6.4 Récupération de la meilleure qualité en cas de perte de NAL dans un récepteurThe filtering 11 13 is performed according to the selected profile, and the decoder 1114 reconstructs the corresponding images. 7.6.4 Best quality recovery in the event of loss of NAL in a receiver
L'adaptation des NALUs peut varier dans les plages de qualité correspondant à un niveau, comme indiqué par la Figure 12, le basculement d'un niveau vers un autre peut s'effectuer aux- extrémités de la plage.The adaptation of the NALUs may vary in the quality ranges corresponding to a level, as indicated by Figure 12, the switching from one level to another can be done at the ends of the range.
En considérant un usager recevant le niveau CIP30, et donc tous les niveaux intermédiaires, la description des profils applicatifs permet de retrouver l'information fournissant la meilleure qualité. La figure 13 montre un exemple de cette approche. Les NALUs 131, 132 et 133 ont été perdus. L'analyse des champs PDTQ permet de retrouver l'information disponible de meilleure qualité en attendant l'image suivante reçue sans erreur. Les NALUs reçus 134 et 135 correspondent aux niveaux inférieurs manquants ne permettent pas le décodage. On se replie alors sur la NALU 136. By considering a user receiving the CIP30 level, and therefore all the intermediate levels, the description of the application profiles makes it possible to find the information providing the best quality. Figure 13 shows an example of this approach. NALUs 131, 132 and 133 were lost. The analysis of PDTQ fields makes it possible to find the available information of better quality while waiting for the next image received without error. Received NALUs 134 and 135 correspond to the missing lower levels that do not allow decoding. We then fall back on the NALU 136.
ANNEXEANNEX
<?xml version ="1.0" encoding="UTF-8 "?> <xs: schema xmlns:xs="http://www. w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs: element name="Application"><? xml version = "1.0" encoding = "UTF-8"?> <xs: schema xmlns: xs = "http: // www. w3.org/2001/XMLSchema" elementFormDefault = "qualified"> <xs: element name = "Application">
<xs : complexType><xs: complexType>
<xs:sequence ><xs: sequence>
<xs: element ref="type" /> <xs: element ref="path_preference"/> <xs: element ref="RangeOrder" minOccurs="l"/><xs: element ref = "type"/><xs: element ref = "path_preference"/><xs: element ref = "RangeOrder" minOccurs = "l"/>
<xs:element ref="debits" /> <!-- pour définir le type du profil applicatif. e.g. "sport", "film", ... — > <!-- pour illustrer le type de stratégie de repli utilisé, e.g. "temporel", "qualité", ... — ><xs: element ref = "debits"/><! - to define the type of the application profile. eg "sport", "movie", ... -><! - to illustrate the type of fallback strategy used, eg "temporal", "quality", ... ->
<!-- définit les plages de fonctionnement à utiliser dans l'ordre; cet élément est obligatoire — ><! - defines the operating ranges to be used in order; this element is mandatory ->
<! - permet de définir les débits associés aux di fférentes pl ages e.g.. "100-300 400" pour indiquer que la première plage varie entre 100 et 300 kbits; et que la deuxième plage est à un débit de 400 kbit/s — > </xs :sequence><! allows to define the rates associated with the different rates e.g. "100-300 400" to indicate that the first range varies between 100 and 300 kbits; and that the second range is at a rate of 400 kbit / s -> </ xs: sequence>
<xs : attribute name=name" type="xs: string" use="required" /><xs: attribute name = name "type =" xs: string "use = " required "/>
</xs : complexType ></ xs: complexType>
<! -- une application définit une gamme de plage de débit entre lesquels évoluer --><! - an application defines a range of flow rate between which to evolve ->
</xs:element > <xs:e lement name=Espace3D"> <xs : complexType></ xs: element><xs: e lename name = 3D Space "> <xs: complexType>
<xs:sequence><Xs: sequence>
<xs: element ref="Range" maxOccurs="unbounded"/> </xs:sequence><xs: element ref = "Range" maxOccurs = "unbounded" /> </ xs: sequence>
</xs:complexType></ Xs: complexType>
<!-- un espace 3D définit un ensemble de plage de débits (Range) susceptibles d' etre utilisés pour définir des profils d'applications --> </xs:element><! - a 3D space defines a set of range (Range) that can be used to define application profiles -> </ xs: element>
<xs:element name="Mesappllications "> <xs : complexType><xs: element name = "Myapplications"> <xs: complexType>
<xs :element ref="Application" maxOccurs="unbounded"/><xs: element ref = "Application" maxOccurs = "unbounded" />
</xs:sequence> < /xs :complexType></ xs: sequence> </ xs: complexType>
<!-- contient la liste des différents profils applicatifs--> </xs :element ><! - contains the list of different application profiles -> </ xs: element>
<xs:e lement name="Range"> <xs: c omplexType ><xs: e lement name = "Range"> <xs: c omplexType>
<xs:attribute name="id" type="xs: positiveInteger" use="required " /> <xs:attribute name="S" use=required "><xs: attribute name = "id" type = "xs: positiveInteger" use = "required" /> <xs: attribute name = "S" use = required ">
<xs : simpleType><xs: simpleType>
<xs: restriction base="xs: NMTOKEN"> <xs:enumeration value="CIF"/> <xs: enumeration value="QCIF"/> <xs:e numerationt value="SD"/> <xs:enumeration val ue="HD"/> < /x s: restriction> </ xs : simpleType><xs: base restriction = "xs: NMTOKEN"><xs: enumeration value = "CIF"/><xs: enumeration value = "QCIF"/><xs: numerationt value = "SD"/> <xs: enumeration val ue = "HD"/></ xs: restriction></ xs: simpleType>
<! - le champ S correspond au niveau spatial - -><! - the S field corresponds to the spatial level - ->
</xs: attribute></ xs: attribute>
<xs: attribute name="T" use="required"> <xs :simpleType><xs: attribute name = "T" use = "required"> <xs: simpleType>
<xs: restriction base="xs: NMTOKEN" > <xs:enumeration value="7.5Hz"/><xs: base restriction = "xs: NMTOKEN"> <xs: enumeration value = "7.5Hz" />
<xs:enumeration value="15 Hz"/> <xs :enumeration value="30Hz"/> <xs:enumeration value="60 Hz"/> </xs:restriction ><xs: enumeration value = "15 Hz" /> <xs: enumeration value = "30Hz" /> <xs: enumeration value = "60 Hz" /> </ xs: restriction>
</xs: simpleType></ xs: simpleType>
<!-- le champ T correspond au niveau temporel --- ><! - the field T corresponds to the temporal level --->
</xs:attribute> <xs: attribute name="Q" use="required" ></ xs: attribute> <xs: attribute name = "Q" use = "required">
<xs : simpleType><xs: simpleType>
<xs: restriction base="xs: NMTOKEN" ><xs: restriction base = "xs: NMTOKEN">
<xs : enumeration value= "high"/ > <xs:enumeration value ="med"/> <xs:enumeration value="low"/> </xs:restriction ><xs: enumeration value = "high" /> <xs: enumeration value = "med" /> xs: enumeration value = "low" /> </ xs: restriction>
</xs: simpleType></ xs: simpleType>
<! - - le champ Q correspond au niveau de qualité ou bien encore de complexité --><! - - the Q field corresponds to the level of quality or complexity ->
</xs:attribute> <xs: attribute name="PMin" type="xs:nonNegativeInteger" use="required"/></ Xs: attribute> <xs: attribute name = "PMin" type = "xs: nonNegativeInteger" use = "required " />
<xs: attribute name="PMax" type="xs : nonNegativeInteger" use="required"/ > <! - PMin, PMax définissent les limites de la plage de fonctionnement — ><xs: attribute name = "PMax" type = "xs: nonNegativeInteger" use = "required" /> <! - PMin, PMax define the limits of the operating range ->
</xs : complexType></ xs: complexType>
<!-- Range définit une plage de débit de fonctionnement (défini par Pmin, Pmax ) pour une résolution spatio- temporelle donnée (définie par S, T, O) --><! - Range defines an operating flow range (defined by Pmin, Pmax) for a given spatio-temporal resolution (defined by S, T, O) ->
</xs:element > <xs: élément name="Root"> <xs : complexType ></ xs: element> <xs: element name = "Root"> <xs: complexType>
<xs: sequence > <xs:element ref="Espace3D"/><xs: sequence> <xs: element ref = "3DSpace" />
<xs:element ref="Mesapplications"/ > <xs:s equence > </xs: complexType><xs: element ref = "myapplications" /> <xs: s equence> </ xs: complexType>
<!-- Racine de définition du fichier. Doit contenir une définition de plages de débit (Espace 3D) , et une liste de profils applicatifs (MesApplications ) - > </xs:element> <!- Définition des types des éléments syntaxiques utilisés<! - Root for file definition. Must contain a definition of flow ranges (3D Space), and a list of application profiles (MyApplications) -> </ xs: element> <! - Definition of types of syntax elements used
<xs :element name=" débits" type="xs :string"/><xs: element name = "bitrate" type = "xs: string" />
<xs: element name=RangeOrder" type="xs :string"/> <xs: element name ="path_preference "' type="xs:string "/> <xs: element name="type" type="xs: string "/> </xs:schema> <xs: element name = RangeOrder "type =" xs: string "/> xs: element name =" path_preference "" type = "xs: string" /> <xs: element name = "type" type = "xs: string "/> </ xs: schema>

Claims

REVENDICATIONS
1. Procédé de filtrage d'un flux vidéo scalable, organisé en blocs d'unités de données comprenant chacun une unité de données de base et un ensemble d'unités de données de réhaussement distribuées selon au moins deux types de données de réhaussement, correspondant respectivement à des caractéristiques temporelles et/ou spatiales et/ou de qualité, et permettant de définir plusieurs niveaux de qualité, selon le nombre et le type d'unités de données de réhaussement utilisées, caractérisé en ce qu'il comprend une étape de définition d'au moins deux profils, ou chemins, distincts de filtrage des unités de données de chaque bloc, chaque chemin définissant une série de positions de repli successives, à partir d'une position initiale, chaque position de repli utilisant au moins une unité de données de moins que la position précédente, et une étape de sélection de l'un desdits chemins en fonction d'un critère prédéterminé tenant compte d'un type de contenu dudit flux et/ou d'au moins une information représentative des capacités du terminal recevant ledit flux.A method of filtering a scalable video stream, organized into blocks of data units each comprising a basic data unit and a set of distributed enhancement data units according to at least two types of enhancement data, corresponding respectively to temporal and / or spatial and / or quality characteristics, and making it possible to define a plurality of quality levels, according to the number and type of raising data units used, characterized in that it comprises a definition step at least two distinct profiles, or paths, for filtering the data units of each block, each path defining a series of successive fallback positions, starting from an initial position, each fallback position using at least one unit of data. data of less than the previous position, and a step of selecting one of said paths according to a predetermined criterion taking into account a type of cont said flow and / or at least one information representative of the capabilities of the terminal receiving said flow.
2. Procédé de filtrage d'un flux vidéo scalable selon la revendication 1, caractérisé en ce qu'un premier desdits chemins privilégie une caractéristique représentative de la qualité de chaque image reconstruite par un terminal et un deuxième desdits chemins privilégie une caractéristique représentative de la fluidité de la vidéo.2. A method of filtering a scalable video stream according to claim 1, characterized in that a first of said paths favors a characteristic representative of the quality of each image reconstructed by a terminal and a second of said paths favors a characteristic representative of the fluidity of the video.
3. Procédé de filtrage d'un flux vidéo scalable selon l'une quelconque des revendications 1 et 2, caractérisé en ce que chacune desdites unités de données de réhaussement porte au moins deux indicateurs permettant de définir lesdits chemins, parmi les indicateurs appartenant au groupe comprenant : un indicateur de priorité (P) ;3. A method of filtering a scalable video stream according to any one of claims 1 and 2, characterized in that each of said raising data units carries at least two indicators for defining said paths, among the indicators belonging to the group. comprising: a priority indicator (P);
- un indicateur de dépendance, relatif à la résolution spatiale (D) ;an indicator of dependence, relative to the spatial resolution (D);
- un indicateur de résolution temporelle (T) ; un indicateur de qualité et/ou de complexité (Q). a time resolution indicator (T); an indicator of quality and / or complexity (Q).
4. Procédé de filtrage d'un flux vidéo scalable selon l'une quelconque des revendications 1 à 3, caractérisé en ce que lesdits chemins sont stockés dans un fichier de chemins, associant chacun desdits chemins à un profil applicatif prédéterminé. 4. A method of filtering a scalable video stream according to any one of claims 1 to 3, characterized in that said paths are stored in a path file, associating each of said paths to a predetermined application profile.
5. Procédé de filtrage d'un flux vidéo scalable selon la revendication 4, caractérisé en ce que ledit fichier de chemins est un fichier au format XML.5. A method of filtering a scalable video stream according to claim 4, characterized in that said path file is a file in XML format.
6. Procédé de filtrage d'un flux vidéo scalable selon l'une quelconque des revendications 4 et 5, caractérisé en ce que ledit fichier de chemins est transmis dans ledit flux vidéo, sous la forme d'au moins une unité de données d'information.6. A method of filtering a scalable video stream according to any one of claims 4 and 5, characterized in that said path file is transmitted in said video stream, in the form of at least one data unit of information.
7. Procédé de filtrage d'un flux vidéo scalable selon l'une quelconque des revendications 1 à 6, caractérisé en ce qu'il comprend les étapes suivantes : séparation desdites unités de données de réhaussement, en fonction du chemin sélectionné, entre des unités de données à utiliser et des unités de données écartées ; reconstruction d'images vidéo à l'aide desdites unités de données à utiliser ;7. A method of filtering a scalable video stream according to any one of claims 1 to 6, characterized in that it comprises the following steps: separation of said raising data units, depending on the selected path, between units data to be used and data units discarded; reconstructing video images using said data units to be used;
- mémorisation desdites unités de données écartées.storage of said discarded data units.
8. Procédé de filtrage d'un flux vidéo scalable selon la revendication 7, caractérisé en ce qu'il comprend une première étape de transmission desdites unités de données à utiliser via un premier canal de transmission, et une seconde étape de transmission desdites unités de données écartées via un second canal de transmission.8. A method of filtering a scalable video stream according to claim 7, characterized in that it comprises a first step of transmission of said data units to be used via a first transmission channel, and a second step of transmission of said data transmission units. data discarded via a second transmission channel.
9. Procédé de filtrage d'un flux vidéo scalable selon l'une quelconque des revendications 1 à 8, caractérisé en ce qu'il comprend les étapes suivantes : détection d'au moins une unité de données à utiliser manquante ou détériorée ;9. A method of filtering a scalable video stream according to any one of claims 1 to 8, characterized in that it comprises the following steps: detection of at least one data unit to be used missing or damaged;
- reconstruction d'une vidéo à partir d'unités de données correspondant à une des positions de repli du chemin sélectionné. reconstructing a video from data units corresponding to one of the fallback positions of the selected path.
10. Procédé de filtrage d'un flux vidéo scalable selon l'une quelconque des revendications 1 à 9, caractérisé en ce qu'il est mis en œuvre par au moins un desdits éléments suivants :10. A method of filtering a scalable video stream according to any one of claims 1 to 9, characterized in that it is implemented by at least one of the following elements:
- serveur de flux vidéo ; - nœud intermédiaire d'un réseau de transmission ; terminal récepteur d'un flux vidéo.- video stream server; - intermediate node of a transmission network; receiving terminal of a video stream.
11. 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, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en œuvre d'au moins une étape du procédé de filtrage d'un flux vidéo scalable selon l'une quelconque des revendications 1 à 10.11. Computer program product downloadable from a communication network and / or stored on a computer readable medium and / or executable by a microprocessor, characterized in that it comprises program code instructions for the implementation of at least one step of the method of filtering a scalable video stream according to any one of claims 1 to 10.
12. Procédé de transmission d'un flux vidéo scalable par un serveur de flux vidéo vers au moins un terminal récepteur, via un réseau de transmission, ledit flux étant organisé en blocs d'unités de données comprenant chacun une unité de données de base et un ensemble d'unités de données de réhaussement distribuées selon au moins deux types de données de réhaussement, correspondant respectivement à des caractéristiques temporelles et/ou spatiales et/ou de qualité, et permettant de définir plusieurs niveaux de qualité, selon le nombre et le type d'unités de données de réhaussement utilisées, caractérisé en ce qu'il comprend une étape de transmission d'au moins deux profils, ou chemins, distincts de filtrage des unités de données de chaque bloc, chaque chemin définissant une série de positions de repli successives, à partir d'une position initiale, chaque position de repli utilisant au moins une unité de données de moins que la position précédente, et en ce que ledit serveur et/ou un nœud intermédiaire dudit réseau de transmission met en œuvre une étape de sélection de l'un desdits chemins en fonction d'un critère prédéterminé tenant compte d'un type de contenu dudit flux et/ou d'au moins une information représentative des capacités d'au moins un terminal recevant ledit flux, et une étape de transmission des unités de données sélectionnées. A method of transmitting a scalable video stream by a video stream server to at least one receiving terminal, via a transmission network, said stream being organized into blocks of data units each comprising a basic data unit and a set of enhancement data units distributed according to at least two types of enhancement data, corresponding respectively to temporal and / or spatial and / or quality characteristics, and making it possible to define a plurality of quality levels, according to the number and the type of uplift data units used, characterized in that it comprises a step of transmitting at least two distinct profiles or paths for filtering the data units of each block, each path defining a series of positions of successive folds, starting from an initial position, each fallback position using at least one data unit less than the previous position, and in that said server and / or an intermediate node of said transmission network implements a step of selecting one of said paths according to a predetermined criterion taking into account a content type of said flow and / or of at least one piece of information representing the capabilities of at least one terminal receiving said stream, and a step of transmitting the selected data units.
13. Procédé de transmission selon la revendication 12, caractérisé en ce que ledit serveur et/ou ledit nœud intermédiaire met en œuvre ladite étape de sélection en fonction d'une information de sélection émise par ledit terminal.13. Transmission method according to claim 12, characterized in that said server and / or said intermediate node implements said selection step based on a selection information transmitted by said terminal.
14. 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, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en œuvre d'au moins une étape du procédé de transmission d'un flux vidéo scalable selon l'une quelconque des revendications 12 et 13. 14. Computer program product downloadable from a communication network and / or stored on a computer readable medium and / or executable by a microprocessor, characterized in that it comprises program code instructions for the implementation of at least one step of the method of transmitting a scalable video stream according to any one of claims 12 and 13.
15. Procédé de réception dans un terminal récepteur d'un flux vidéo scalable transmis par un serveur de flux vidéo, via un réseau de transmission, ledit flux étant organisé en blocs d'unités de données comprenant chacun une unité de données de base et un ensemble d'unités de données de réhaussement distribuées selon au moins deux types de données de réhaussement, correspondant respectivement à des caractéristiques temporelles et/ou spatiales et/ou de qualité, et permettant de définir plusieurs niveaux de qualité, selon le nombre et le type d'unités de données de réhaussement utilisées, caractérisé en ce qu'on utilise au moins deux profils, ou chemins, distincts de filtrage des unités de données de chaque bloc, chaque chemin définissant une série de positions de repli successives, à partir d'une position initiale, chaque position de repli utilisant au moins une unité de données de moins que la position précédente, et en ce que ledit terminal récepteur met en œuvre une étape de sélection de l'un desdits chemins en fonction d'un critère prédéterminé tenant compte d'un type de contenu dudit flux et/ou d'au moins une information représentative des capacités du terminal recevant ledit flux.A method of receiving in a receiving terminal a scalable video stream transmitted by a video stream server via a transmission network, said stream being organized into blocks of data units each comprising a basic data unit and a data stream. a set of distributed enhancement data units according to at least two types of enhancement data, corresponding respectively to temporal and / or spatial and / or quality characteristics, and making it possible to define a plurality of quality levels, according to the number and the type of raising data units used, characterized in that at least two distinct profiles or paths for filtering the data units of each block are used, each path defining a series of successive fallback positions, starting from an initial position, each fallback position using at least one data unit less than the previous position, and in that said receiving terminal toreur implements a step of selecting one of said paths according to a predetermined criterion taking into account a content type of said stream and / or at least one piece of information representative of the capabilities of the terminal receiving said stream.
16. 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, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en œuvre d'au moins une étape du procédé de réception d'un flux vidéo scalable selon la revendication 15.16. Computer program product downloadable from a communication network and / or stored on a computer-readable medium and / or executable by a microprocessor, characterized in that it comprises code instructions program for implementing at least one step of the method of receiving a scalable video stream according to claim 15.
17. Serveur de flux vidéo comprenant des moyens de filtrage d'un flux vidéo scalable, organisé en blocs d'unités de données comprenant chacun une unité de données de base et un ensemble d'unités de données de réhaussement distribuées selon au moins deux types de données de réhaussement, correspondant respectivement à des caractéristiques temporelles ou spatiales, et permettant de définir plusieurs niveaux de qualité, selon le nombre et le type d'unités de données de réhaussement utilisés, caractérisé en ce que lesdits moyens de filtrage comprennent des moyens de définition d'au moins deux profils, ou chemins, distincts de filtrage des unités de données de chaque bloc, chaque chemin définissant une série de positions de repli successives, à partir d'une position initiale, chaque position de repli utilisant au moins une unité de données de moins que la position précédente, et des moyens de sélection de l'un desdits chemins en fonction d'un critère prédéterminé tenant compte d'un type de contenu dudit flux et/ou d'au moins une information représentative des capacités du terminal recevant ledit flux.A video stream server comprising means for filtering a scalable video stream, organized into blocks of data units each comprising a basic data unit and a set of distributed enhancement data units according to at least two types. of enhancement data, respectively corresponding to temporal or spatial characteristics, and making it possible to define a plurality of quality levels, according to the number and type of raising data units used, characterized in that said filtering means comprise means of defining at least two distinct profiles, or paths, for filtering the data units of each block, each path defining a series of successive fallback positions, starting from an initial position, each fallback position using at least one unit of less than the previous position, and means for selecting one of said paths according to a predefined criterion determined taking into account a content type of said stream and / or at least one information representative of the capabilities of the terminal receiving said stream.
18. Nœud intermédiaire d'un réseau de transmission de flux vidéo comprenant des moyens de filtrage d'un flux vidéo scalable, organisé en blocs d'unités de données comprenant chacun une unité de données de base et un ensemble d'unités de données de réhaussement distribuées selon au moins deux types de données de réhaussement, correspondant respectivement à des caractéristiques temporelles ou spatiales, et permettant de définir plusieurs niveaux de qualité, selon le nombre et le type d'unités de données de réhaussement utilisés, caractérisé en ce que lesdits moyens de filtrage comprennent des moyens de définition d'au moins deux profils, ou chemins, distincts de filtrage des unités de données de chaque bloc, chaque chemin définissant une série de positions de repli successives, à partir d'une position initiale, chaque position de repli utilisant au moins une unité de données de moins que la position précédente, et des moyens de sélection de l'un desdits chemins en fonction d'un critère prédéterminé tenant compte d'un type de contenu dudit flux et/ou d'au moins une information représentative des capacités du terminal recevant ledit flux.18. An intermediate node of a video stream transmission network comprising filtering means of a scalable video stream, organized into blocks of data units each comprising a basic data unit and a set of data data units. enhancement distributed according to at least two types of enhancement data, respectively corresponding to temporal or spatial characteristics, and making it possible to define a plurality of quality levels, according to the number and type of enhancement data units used, characterized in that said filtering means comprise means for defining at least two distinct profiles, or paths, for filtering the data units of each block, each path defining a series of successive foldback positions, starting from an initial position, each position using at least one less unit of data than the previous position, and means for selecting one of said paths according to a predetermined criterion taking into account a content type of said stream and / or at least one piece of information representative of the capabilities of the terminal receiving said stream.
19. Terminal récepteur de flux vidéo comprenant des moyens de filtrage d'un flux vidéo scalable, organisé en blocs d'unités de données comprenant chacun une unité de données de base et un ensemble d'unités de données de réhaussement distribuées selon au moins deux types de données de réhaussement, correspondant respectivement à des caractéristiques temporelles ou spatiales, et permettant de définir plusieurs niveaux de qualité, selon le nombre et le type d'unités de données de réhaussement utilisés, caractérisé en ce que lesdits moyens de filtrage comprennent des moyens de prise en compte d'au moins deux profils, ou chemins, distincts de filtrage des unités de données de chaque bloc, chaque chemin définissant une série de positions de repli successives, à partir d'une position initiale, chaque position de repli utilisant au moins une unité de données de moins que la position précédente, et des moyens de sélection de l'un desdits chemins en fonction d'un critère prédéterminé tenant compte d'un type de contenu dudit flux et/ou d'au moins une information représentative des capacités du terminal recevant ledit flux.A video stream receiving terminal comprising means for filtering a scalable video stream, organized into blocks of data units each comprising a basic data unit and a set of enhancement data units distributed according to at least two types of enhancement data, respectively corresponding to temporal or spatial characteristics, and making it possible to define a plurality of quality levels, according to the number and type of enhancement data units used, characterized in that said filtering means comprise means taking into account at least two distinct profiles or paths for filtering the data units of each block, each path defining a series of successive fallback positions, starting from an initial position, each fallback position using at least one minus one data unit less than the previous position, and means for selecting one of said paths as a function of u n predetermined criterion taking into account a content type of said stream and / or at least one piece of information representative of the capabilities of the terminal receiving said stream.
20. Signal destiné à être transmis depuis un serveur vers au moins un terminal, pour permettre le traitement d'un flux vidéo scalable transmis par ledit serveur de flux vidéo, via un réseau de transmission, ledit flux étant organisé en blocs d'unités de données comprenant chacun une unité de données de base et un ensemble d'unités de données de réhaussement distribuées selon au moins deux types de données de réhaussement, correspondant respectivement à des caractéristiques temporelles et/ou spatiales et/ou de qualité, et permettant de définir plusieurs niveaux de qualité, selon le nombre et le type d'unités de données de réhaussement utilisées, caractérisé en ce que ledit signal porte des données de définition d'au moins deux profils, ou chemins, distincts de filtrage des unités de données de chaque bloc, chaque chemin définissant une série de positions de repli successives, à partir d'une position initiale, chaque position de repli utilisant au moins une unité de données de moins que la position précédente, de façon à permettre une sélection de l'un desdits chemins en fonction d'un critère prédéterminé tenant compte d'un type de contenu dudit flux et/ou d'au moins une information représentative des capacités du terminal recevant ledit flux.20. Signal intended to be transmitted from a server to at least one terminal, to allow the processing of a scalable video stream transmitted by said video stream server, via a transmission network, said stream being organized into blocks of video transmission units. data each comprising a basic data unit and a set of enhancement data units distributed according to at least two types of enhancement data, corresponding respectively to temporal and / or spatial and / or quality characteristics, and making it possible to define a plurality of quality levels, according to the number and type of enhancement data units used, characterized in that said signal carries definition data of at least two distinct profiles or paths for filtering the data units of each block, each path defining a series of successive fallback positions, from of an initial position, each fallback position using at least one data unit of less than the previous position, so as to allow selection of one of said paths according to a predetermined criterion taking into account a type of content of said stream and / or at least one piece of information representative of the capabilities of the terminal receiving said stream.
21. Signal selon la revendication 20, caractérisé en ce qu'il porte d'une part lesdites unités de données formant ledit flux vidéo, et d'autre part lesdites données de définition. 21. Signal according to claim 20, characterized in that it carries on the one hand said data units forming said video stream, and on the other hand said definition data.
EP06777838A 2005-07-19 2006-07-18 Method for filtering, transmitting and receiving scalable video streams and corresponding programs, server, intermediate node and a terminal Ceased EP1941734A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0507690A FR2889017A1 (en) 2005-07-19 2005-07-19 METHODS OF FILTERING, TRANSMITTING AND RECEIVING SCALABLE VIDEO STREAMS, SIGNAL, PROGRAMS, SERVER, INTERMEDIATE NODE AND CORRESPONDING TERMINAL
PCT/EP2006/064382 WO2007009996A1 (en) 2005-07-19 2006-07-18 Method for filtering, transmitting and receiving scalable video streams and corresponding programs, server, intermediate node and a terminal

Publications (1)

Publication Number Publication Date
EP1941734A1 true EP1941734A1 (en) 2008-07-09

Family

ID=36570538

Family Applications (1)

Application Number Title Priority Date Filing Date
EP06777838A Ceased EP1941734A1 (en) 2005-07-19 2006-07-18 Method for filtering, transmitting and receiving scalable video streams and corresponding programs, server, intermediate node and a terminal

Country Status (4)

Country Link
US (1) US8743950B2 (en)
EP (1) EP1941734A1 (en)
FR (1) FR2889017A1 (en)
WO (1) WO2007009996A1 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101601305B (en) * 2006-10-20 2013-01-23 诺基亚公司 Generic indication of adaptation paths for scalable multimedia
EP2037683A1 (en) * 2007-09-17 2009-03-18 Alcatel Lucent Process for delivering to a media terminal an adapted video stream by means of an access node
US8155184B2 (en) * 2008-01-16 2012-04-10 Sony Corporation Video coding system using texture analysis and synthesis in a scalable coding framework
GB0905184D0 (en) * 2009-03-26 2009-05-06 Univ Bristol Encryption scheme
WO2013049179A1 (en) 2011-09-29 2013-04-04 Dolby Laboratories Licensing Corporation Dual-layer frame-compatible full-resolution stereoscopic 3d video delivery
TWI595770B (en) 2011-09-29 2017-08-11 杜比實驗室特許公司 Frame-compatible full-resolution stereoscopic 3d video delivery with symmetric picture resolution and quality
US11327942B2 (en) 2015-10-08 2022-05-10 Signal Vine, Inc. Systems and methods for providing a two-way, intelligent text messaging platform
CN110830762B (en) * 2018-08-13 2021-06-18 视联动力信息技术股份有限公司 Audio and video data processing method and system
US10778938B2 (en) * 2018-12-20 2020-09-15 Hulu, LLC Video chunk combination optimization
CN110147239B (en) * 2019-05-22 2023-03-21 苏州仙峰网络科技股份有限公司 Method, equipment and storage medium for multiple compression of game installation inclusion

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5708473A (en) * 1994-08-30 1998-01-13 Hughes Aircraft Company Two stage video film compression method and system
US5621660A (en) * 1995-04-18 1997-04-15 Sun Microsystems, Inc. Software-based encoder for a software-implemented end-to-end scalable video delivery system
US6233017B1 (en) * 1996-09-16 2001-05-15 Microsoft Corporation Multimedia compression system with adaptive block sizes
US5844613A (en) * 1997-03-17 1998-12-01 Microsoft Corporation Global motion estimator for motion video signal encoding
CA2252170A1 (en) * 1998-10-27 2000-04-27 Bruno Bessette A method and device for high quality coding of wideband speech and audio signals
GB9909606D0 (en) * 1999-04-26 1999-06-23 Telemedia Systems Ltd Networked delivery of profiled media files to clients
WO2002031670A1 (en) * 2000-10-12 2002-04-18 Teraglobal Communications Corp. Method of and system for delivering receiver-selectable quality of service over networks
US20020073238A1 (en) * 2000-11-28 2002-06-13 Eli Doron System and method for media stream adaptation
KR100834748B1 (en) * 2004-01-19 2008-06-05 삼성전자주식회사 Apparatus and method for playing of scalable video coding
KR100834749B1 (en) * 2004-01-28 2008-06-05 삼성전자주식회사 Device and method for playing scalable video streams
EP1599046A1 (en) * 2004-05-19 2005-11-23 THOMSON Licensing Method for coding video data of a sequence of pictures
WO2006049412A1 (en) * 2004-11-01 2006-05-11 Electronics And Telecommunications Research Institute Method for encoding/decoding a video sequence based on hierarchical b-picture using adaptively-adjusted gop structure
US20060156363A1 (en) * 2005-01-07 2006-07-13 Microsoft Corporation File storage for scalable media
US7538823B1 (en) * 2005-09-23 2009-05-26 Cirrus Logic, Inc. Luminance/chrominance video data separation circuits and methods and video systems utilizing the same
WO2007058515A1 (en) * 2005-11-21 2007-05-24 Electronics And Telecommunications Research Institute Method and apparatus for controlling bitrate of scalable video stream
FR2894421B1 (en) * 2005-12-07 2008-01-18 Canon Kk METHOD AND DEVICE FOR DECODING A VIDEO STREAM CODE FOLLOWING A HIERARCHICAL CODING
FR2899758A1 (en) * 2006-04-07 2007-10-12 France Telecom METHOD AND DEVICE FOR ENCODING DATA INTO A SCALABLE FLOW
WO2008032001A1 (en) * 2006-09-15 2008-03-20 France Telecom Method and device for adapting a scalable data stream, corresponding computer program product and network equipment

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
NICOLA ADAMI ET AL: "Fully embedded entropy coding with arbitrary multiple adaptation capabilities", 70. MPEG MEETING; 18-10-2004 - 22-10-2004; PALMA DE MALLORCA; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11),, no. M11378, 15 October 2004 (2004-10-15), XP030040152, ISSN: 0000-0251 *
See also references of WO2007009996A1 *

Also Published As

Publication number Publication date
US20080310497A1 (en) 2008-12-18
WO2007009996A1 (en) 2007-01-25
FR2889017A1 (en) 2007-01-26
US8743950B2 (en) 2014-06-03

Similar Documents

Publication Publication Date Title
EP1941734A1 (en) Method for filtering, transmitting and receiving scalable video streams and corresponding programs, server, intermediate node and a terminal
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
FR2939593A1 (en) VIDEO ENCODING METHOD AND DEVICE
FR2931610A1 (en) METHOD AND DEVICE FOR TRANSMITTING IMAGE DATA
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
FR2903556A1 (en) Digital image encoding method for e.g. mobile phone, involves associating information, representative of bit rate and distortion corresponding to target definition comprised between lower and upper definition layers, with coding result
FR2909474A1 (en) Method for coding digital image, involves coding successive digital images corresponding to several versions of one and same initial image at spatial resolutions different from that of initial image
WO2006015979A1 (en) Method for formatting video sequence frames
EP2052545B1 (en) Device and method of scalable coding and decoding of flow of image data, respective signal and computer program
EP3707900B1 (en) Method for forming an output image sequence from an input image sequence, method for reconstructing an input image sequence from an output image sequence, associated devices, server equipment, client equipment and computer programs
FR2820255A1 (en) METHODS FOR ENCODING AND DECODING IMAGES, DEVICES, SYSTEMS, SIGNALS AND APPLICATIONS THEREOF
FR2896117A1 (en) METHODS OF ENCODING AND DECODING AN IMAGE SEQUENCE, DEVICES, COMPUTER PROGRAMS, AND CORRESPONDING SIGNAL
WO2009138656A2 (en) Transmission of a video stream coded by hierarchical coding
Capovilla et al. An architecture for distributing scalable content over peer-to-peer networks
EP3378232B1 (en) Method for processing encoded data, method for receiving encoded data, corresponding devices and computer programs
FR2913163A1 (en) Digital video data transmitting method for multicast telecommunication network, involves sending crossover signals to sub-group of clients based on information representing behavior of congestion control algorithms
WO2008032001A1 (en) Method and device for adapting a scalable data stream, corresponding computer program product and network equipment
EP2633686B1 (en) Scalable video encoding using a hierarchical epitome
EP2410749A1 (en) Method for adaptive encoding of a digital video stream, particularly for broadcasting over xDSL line
CN109348233B (en) Interlayer backfill self-adaptive SVC-DASH playing method
FR2923970A1 (en) METHOD AND DEVICE FOR FORMING, TRANSFERING AND RECEIVING TRANSPORT PACKETS ENCAPSULATING DATA REPRESENTATIVE OF A SEQUENCE OF IMAGES
FR3041851A1 (en) ASSOCIATED FLOW ALLOCATION METHOD, DEVICE, ENCODER AND COMPUTER PROGRAM
Ramzan et al. Scalable and Adaptable Media Coding Techniques for Future Internet.
FR2913844A1 (en) Transfer rate allocating method for telecommunication system, involves applying mechanism for allocating transfer rates to passage signals based on result of transfer rate allocation carried out previously on quality levels of image
EP2172023A1 (en) Adaptation of scalable data flow while taking retransmissions into account

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20080507

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

RIN1 Information on inventor provided before grant (corrected)

Inventor name: AMONOU, ISABELLE

Inventor name: PATEUX, STEPHANE

Inventor name: BABONNEAU, GERARD

DAX Request for extension of the european patent (deleted)
RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: ORANGE

17Q First examination report despatched

Effective date: 20140102

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20170612