EP2060074A1 - Method and device for adapting a scalable data stream, corresponding computer program product and network equipment - Google Patents
Method and device for adapting a scalable data stream, corresponding computer program product and network equipmentInfo
- Publication number
- EP2060074A1 EP2060074A1 EP07823837A EP07823837A EP2060074A1 EP 2060074 A1 EP2060074 A1 EP 2060074A1 EP 07823837 A EP07823837 A EP 07823837A EP 07823837 A EP07823837 A EP 07823837A EP 2060074 A1 EP2060074 A1 EP 2060074A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- level
- data
- data unit
- regulation
- levels
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000004590 computer program Methods 0.000 title claims abstract description 10
- 230000001105 regulatory effect Effects 0.000 claims abstract description 8
- 230000007246 mechanism Effects 0.000 claims abstract description 6
- 230000033228 biological regulation Effects 0.000 claims description 144
- 230000005540 biological transmission Effects 0.000 claims description 20
- 230000006978 adaptation Effects 0.000 claims description 13
- 239000010813 municipal solid waste Substances 0.000 claims description 11
- 230000008844 regulatory mechanism Effects 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 description 15
- 230000008901 benefit Effects 0.000 description 11
- 230000003068 static effect Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 230000002123 temporal effect Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000001186 cumulative effect Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 101150012579 ADSL gene Proteins 0.000 description 3
- 102100020775 Adenylosuccinate lyase Human genes 0.000 description 3
- 108700040193 Adenylosuccinate lyases Proteins 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000004907 flux Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000009257 reactivity Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000001955 cumulated effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2458—Modification of priorities while in transit
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234327—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/4363—Adapting the video stream to a specific local network, e.g. a Bluetooth® network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440227—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by decomposing into layers, e.g. base layer and one or more enhancement layers
Definitions
- the field of the invention is that of the processing of scalable data streams, also called hierarchical data streams, provided to users by real-time transport over a communication network.
- the invention relates to a method of adapting a scalable data stream to the characteristics of a network and / or users.
- the invention applies in particular, but not exclusively, to the adaptation of a scalable video stream (for example an MPEG4-svc stream) to the characteristics of the link of the user and / or of his terminal.
- a scalable video stream for example an MPEG4-svc stream
- the 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 into several scalability layers, can serve several clients of different characteristics, for example:
- VOD Video On Demand
- UMTS-type radiocommunication terminals Universal Mobile Telecommunication
- the JSVM MPEG model is described in the already cited JSVM 2.0 document. It is based on a scalable encoder strongly oriented to AVC type solutions, whose schematic structure of a corresponding encoder is presented in Figure 1. It is a pyramidal structure.
- the video input components 10 undergo dyadic subsampling (2D decimation by 2 referenced 11, 2D decimation by 4 referenced 12).
- Each of the subsampled streams is then subjected to a temporal decomposition 13 of the MCTF type ("Motion Compensated Temporal Filtering").
- a low-resolution version of the video sequence is encoded 14 up to a given bit rate which corresponds to the maximum decodable bit rate for the low spatial resolution (this base level is AVC compatible).
- the higher levels are then encoded by subtracting the previous reconstructed and over-sampled level and encoding the residuals as a base level, and optionally one or more enhancement levels obtained by multi-bit coding of bit planes (called FGS for "Fine Grain Scalability", fine grain scalability).
- the motion information 17 and the texture information 18 are distinguished.
- the texture information 18 is coded using a progressive scheme: coding of a first level of minimum quality (called “Base Layer” in English, or Base Layer); coding of progressive refinement levels (called “Enhancement Layer” or “Enhancement Layer”).
- the texture information 18 feeds a coding module of the quantization base layer 19.
- the coded data, at the output of the module 19, are used to feed a block 21 for spatial transformation and entropic coding, which is working on the levels of signal refinement.
- the output data of the module 21 feeds an interpolation 20 from the base level. This interpolation is used as a prediction in the coding module 19 of the level above.
- a multiplexing module 22 orders the different sub-streams generated in a global compressed data stream 23.
- the compressed stream 23, at the output of the coder, is structured in data units called "NALU" (for "Network Abstraction Layer Unit”).
- the NALUs are organized in blocks of data units called subsequently "AU” (for "Access Units" in English).
- An AU comprises all the NALUs corresponding to the same time instant, that is to say having the same DTS (for "Decoding Time
- Each NALU is associated with an image resulting from spatio-temporal decomposition, a spatial resolution level, and a quantization level. This structuring in units of data makes it possible to adapt to bit rate and / or space-time resolution by eliminating the NALUs of too great spatial resolution, or of too high temporal frequency or even of too much encoding quality.
- the French patent application published under No. FR2854018 describes a technique for controlling data packet traffic at the input of a network.
- the traffic comprises N flows and / or substreams each associated with a priority level, N> 2.
- Each packet is marked with the priority level associated with the stream or sub-stream to which it belongs.
- the traffic comprises N substreams each corresponding to one of the N hierarchical levels of a hierarchical flow or an aggregate of hierarchical flows.
- This is for example an audio / video hierarchical stream comprising the following sub-streams: an audio sub-stream, a basic video sub-stream and a video enhancement sub-stream.
- the goal is to treat bursts to control congestions in a network. Indeed, congestions mainly affect bursts, which contain the most important information of an MPEG encoded stream. This control is particularly suitable for ADSL type networks when the nominal flow rate is close to the maximum flow of the link.
- MLTB multi-level chip bucket mechanism
- Each MLTB level is used to process one of the N priority levels.
- Each packets undergoes processing according to a marking corresponding to its priority level: it is accepted or refused according to whether or not it is possible to give it tokens according to its priority level.
- the accepted packets are placed in a buffer (buffer) of packets to be sent, which forms a means of managing a queue. Rejected packets are discarded or, in an alternative embodiment, placed in the buffer after being marked again with a lower priority level (i.e. after being reclassified to a lower priority level). .
- the aforementioned MLTB is placed at the input of the packet buffer to be transmitted, for burst control, and a single-level bucket is placed at the output, for the smoothing of traffic (TBTS, for "Token Bucket”). Traffic Shaper ").
- a disadvantage of this known technique is that the reclassification of a packet is performed independently of the notion of dependency between packets. In other words, it does not take into account that a packet is reclassified for processing subsequent packets that depend on this reclassified packet.
- Another disadvantage of the known technique is that the reclassification of a packet involves a new marking of this packet (that is to say a modification of this packet).
- Another disadvantage of the known technique is that it does not offer an optimal solution for the reclassification of a packet in a lower priority level.
- Another disadvantage of the known technique is that a packet is processed only when it is at the input of the packet buffer to be transmitted. It does not propose any processing on the packets already present in the buffer, and therefore does not require means of distinction between packets present in the buffer and having the same level of priority (no weighting of the packets).
- boost data for defining a plurality of quality and rate levels according to the number and type of data units used, each data unit being initially classified in a selected initial level from said plurality of levels.
- This method implements a control mechanism such that if a data unit is reclassified to a reclassification level different from the initial level of said data unit, all the data units that depend on the decoding of said reclassified data unit are also reclassified in reclassification levels where all the data units necessary for their decoding are accessible.
- the general principle of the invention therefore consists in dynamically taking into account the impact of the reclassification of a unit of data on the classification of the other data units which depend on this reclassified data unit. Thus, it is ensured that the stream can be decoded correctly by the user's terminal.
- each data unit is directed to an associated transmission means at the level in which said control mechanism has finally classified or reclassified said data unit.
- M different transmission means are used, with l ⁇ M ⁇ R, where R is the number of quality and throughput levels.
- the distribution of the units of data is modified either in a single transmission means or among several transmission means.
- the data units can be redirected from one transmission means to another, and the use of the different means is optimized. of transmission.
- At least one of the reclassification levels is such that the data units reclassified therein are not transmitted.
- This is for example a fictitious level forming trash, not part of the plurality of levels of quality and flow.
- said regulation mechanism comprises a multi-level chip bucket (MLTB) type algorithm.
- MLTB multi-level chip bucket
- a data unit is reclassified if a rate resource available for the initial level of said data unit is not sufficient.
- a unit of data may also be reclassified for other reasons, for example related to the resources of the terminal of the user receiving the stream.
- the flow comprises a reference data unit
- it is canceled, for the data units that follow said reference data unit.
- said regulation mechanism manages any dynamic modification of a flow rate resource assigned to one of said levels.
- a flow rate resource assigned to one of said levels can immediately improve (for example in real time) the adaptation of the flow.
- said regulation mechanism takes into account the actual transmission time of the data units, to manage the flow resources assigned to the levels.
- the resources eg flow resources assigned to the different levels and indirectly take into account the transport protocol headers that are unknown to the regulation.
- said regulation mechanism is such that it manages in a cumulative mode the flow resources assigned to the levels, so that at least one part of an unused resource of one level can benefit at another level. whose available throughput resource is not sufficient. This makes it possible to further improve the adaptation of the flow, without exceeding the overall predicted flow rate.
- said regulation mechanism is such that it manages in an independent mode the flow resources assigned to the levels, so that each resource assigned to one level can not benefit on another level.
- said regulation mechanism performs a simplified regulation comprising the following steps if the available bit rate resource for the selected initial level is not sufficient: a) a new level selected is selected which has a lower priority than the previous level selected; b) if the available rate resource for the newly selected level is sufficient, then said data unit is reclassified to the new selected level; c) otherwise: if the new level is not the lowest of the said plurality of quality and flow levels, then step a) is returned, otherwise the said data unit is reclassified to a fictitious trash level.
- This first embodiment is simple to implement but only acts when the data units are input into the device implementing the method of the invention.
- said regulation mechanism performs a complete regulation comprising the following steps if the available rate resource for the selected initial level is not sufficient: a) said data unit is classified in the level initial selected; b) the selected level is selected as the current level; c) if the flow rate resource for the current level is not exceeded, the current level is considered to be regulated and step d); otherwise: selecting at least one data unit to be reclassified from the data units classified in the current level, according to at least one predetermined reclassification criterion, reclassifying said at least one data unit selected in a lower priority level than the current level, and repeating step c); d) if the current level is not the least priority among the said plurality of quality and flow levels, a new current level with a lower priority than the previous current level is chosen, then it returns to step b), otherwise said regulation complete is complete.
- This second embodiment (complete regulation) is more complex than the first but offers the advantage of acting on all the data units already input and not yet output device implementing the method of the invention. As detailed later, the complete regulation is more efficient than the simplified regulation because it allows a better reactivity and a smoothing of the quality of the decoded flow.
- the method further comprises a step of assigning to said data unit a weighting among a plurality of possible weights each associated with a relative priority rank. within one level, said assignment being made according to at least one assignment rule making it possible to establish a correspondence between on the one hand said at least one marking information carried by data units and on the other hand one of the possible weights.
- said step of selecting at least one data unit is performed at least according to the weighting of the data units classified in said current level.
- weights are consistent with the dependencies between data units. Taking weighting into account facilitates the selection of excess data units in one level, following a reclassification.
- said step of selecting at least one data unit is performed with the following double criterion: the highest weighting, among weightings assigned to each of the data units; and for the same weighting, the most recent time reference.
- the initial classification of each data unit in an initial level is a function of at least one marking information carried by said data unit and comprising a n-tuple of at least two indicators among the indicators belonging to the group. comprising: a priority indicator (P); a dependency indicator (D), relating to a spatial resolution; a time resolution indicator (T); and- an indicator of quality and / or complexity (Q).
- P priority indicator
- D dependency indicator
- T time resolution indicator
- Q an indicator of quality and / or complexity
- NALUs data units
- the method is implemented by at least one of the following network equipment: stream server and intermediate node of a transmission network.
- the invention relates to a computer program product downloadable from a communication network and / or recorded on a computer readable medium and / or executable by a processor, this computer program product comprising instructions program code for executing the steps of the aforementioned method, when said program is executed on a computer.
- the invention relates to a device for adapting a scalable data stream organized in blocks of data units each comprising at least one basic data unit and at least one unit of data of enhancement. , for defining a plurality of quality and rate levels according to the number and type of data units used, each data unit being initially classified in a selected initial level from said plurality of levels.
- This device comprises regulating means such that, if a reclassification condition is satisfied for a data unit, then said data unit is reclassified to a reclassification level less priority than the initial level of said data unit, and all Data units that depend on the decoding of said reclassified data unit are also reclassified into reclassification levels where all the data units necessary for their decoding are accessible.
- the adaptation device comprises means for implementing the adaptation method as described above (in any one of its various embodiments).
- the invention relates to a network equipment comprising an adaptation device as mentioned above.
- the network equipment belongs to the group comprising stream servers and intermediate nodes of a transmission network. 4. LIST OF FIGURES
- FIG. 1 already described in relation with the prior art, presents a block diagram of a generating encoder; an MPEG4-svc stream (scalable video stream);
- FIG. 2 presents a block diagram of a scalable data stream adaptation device according to one embodiment of the invention;
- FIG. 3 shows the three scalability axes of an MPEG4-svc stream;
- Figure 4 shows an example of dependencies between NALUs of different coding levels;
- FIG. 1 already described in relation with the prior art, presents a block diagram of a generating encoder; an MPEG4-svc stream (scalable video stream);
- FIG. 2 presents a block diagram of a scalable data stream adaptation device according to one embodiment of the invention;
- FIG. 3 shows the three scalability axes of an MPEG4-svc stream;
- Figure 4 shows an example of dependencies between NALUs of different coding levels;
- FIG. 1 already described in relation with the prior art, presents a block diagram of a generating encoder; an
- FIG. 5 illustrates the operating principle of the regulation buffer and the reserve buffer appearing in FIG. 2;
- FIG. 6 shows a more detailed view of the regulation module appearing in FIG. 2;
- FIG. 7 illustrates a double referenced data structure, between the regulation buffer and the MLTB, according to a particular embodiment of the invention;
- FIGS. 8 and 9 illustrate two modes of operation, independent and cumulative respectively, of the MLTB implemented in the regulation module appearing in FIG. 2;
- Figure 10 shows another example of dependencies between different levels of coding;
- FIG. 11 presents a flowchart of a particular embodiment of a simplified regulation algorithm implemented by the regulation module appearing in FIG. 2;
- FIGS. 12 and 13 show a flowchart of a particular embodiment of a simplified control algorithm implemented by the regulation module appearing in FIG. 2 (FIG.
- the scalable data flow adaptation device comprises the following elements (which are described in detail below): a reserve buffer 3 (hereinafter referred to as reserve buffer), which receives an MPEG4-svc 2 stream; a control buffer 4 (hereinafter called regulation buffer), the input of which is connected to the output of the reserve buffer 3; a static classification table 5; a dynamic ranking table 6; a resource adjustment module 7; a regulation module 8, to guarantee the different requested rates (arrow referenced 26) for the different levels of regulation; and a switching module 9, for routing each of the NALUs present at the output of the regulation buffer 4 as a function of the regulation level in which the regulation module 8 has classified them.
- the routing module generates several sub-streams 24 each corresponding to one of the regulation levels.
- the device comprises a non-volatile memory storing a computer program implementing the flux matching method according to the invention, and a processing unit (microprocessor for example) controlled by this computer program.
- the code instructions of the computer program are for example loaded into a volatile memory before being executed by the processor of the processing unit.
- the classification tables 5 and 6 contain the different configurations allowing to distribute the NALUs in the different levels of the regulation. In fact, they contain correspondences between elements present in the additional information of the data and the regulation levels managed in the regulation module 8.
- NALUs used in MPEG4-svc
- these elements are indicators present in the header of each NALU, in the form of a quadruplet: ⁇ P,
- the ranking is made from the scalability properties of a stream
- an MPEG4-svc stream has three possible scalability axes: spatial axis S (image resolution), frequency axis T (image frequency) and Q axis, also called SNR axis (quality), translating the level of detail obtained by the truncation of the coefficients resulting from the coding.
- Each NALU is represented by a frame.
- Figure 4 shows an example of dependencies between NALUs of different coding levels.
- the first level of regulation base level B
- the second level of regulation first level of enhancement R1
- the third regulation level second enhancement level R2
- Each coding level includes, for a given spatial / temporal resolution (for example CIF / 15Hz), NALUs of different SNR qualities. It can therefore be said that each coding level comprises a plurality of SNR levels.
- a coding level corresponds to a rate range that can be adjusted by taking more or less NALUs with different SNRs.
- Figure 4 shows the dependencies between NALUs to access a specific level of quality.
- the CIF30 coding level is based on the CIF coding level 15, which itself relies on the QCIF or QCIF30 coding level.
- all SNR levels of a coding level are not routinely used by the higher quality coding levels.
- those used by the coding level CIF30 are referenced 41 and those that are not 42.
- the NALUs not needed for the above levels are identified by a high weight (value 255).
- this high value has the effect, in the case of a complete regulation, to encourage their rejection (reclassification in the fictitious trash level) or their reclassification in a very low priority level.
- the patent application No. FR0507690 specifies that several fallback modes (also called filtering paths) are possible.
- the static and dynamic classification tables 5 correspond to a given fallback mode.
- the table examples below give priority to the fluidity of the images (QCIF 15 and QCIF30 at the first level) over the resolution of the display (CIF 15 at the second level).
- Another fallback mode would prioritize display resolution (QCIF 15 and CIF 15 at the first level and QCIF30 at the second level).
- the simultaneous presence of QCIF30 and QCIF in the first level is justified by their need for decoding CIF30.
- the dynamic ranking table is not updated with the previous static table, but with the new static table. Then, the adaptation of the video stream to the rate (s) modifies this dynamic ranking table as indicated above.
- the ranking tables therefore contain a list of correspondences in the form: ⁇ P, D, T, Q ⁇ -> (regulation level, weighting within the flow).
- ⁇ P, D, T, Q ⁇ regulation level, weighting within the flow.
- each type of NALU, defined by a particular quadruplet ⁇ P, D, T, Q ⁇ is associated with information "level of regulation” and information "weighting”.
- the information “level of regulation” corresponds to the level of regulation in which the NALU will be affected.
- the information “weighting within the flow” makes it possible to be able to order the NALUs within the same level of regulation.
- This weighting information is independent of ranking in a regulation level. In a particular embodiment, this weighting information is equal to the value P of the NALU header.
- the static ranking table 5, referred to as a reference, is provided with metadata included in the accompanying data of the audiovisual content. It contains the ranking levels defined by the provider of the content.
- the purpose of the dynamic ranking table 6 is to take into account the dependencies between the NALUs. It intervenes in case of modification of the classification by the regulation module. Its goal is to maintain flow consistency. Since rate control can place N-level NALUs in a higher level (or delete them: classification in a fictitious trash level), this dynamic ranking table makes it possible to avoid placing NALUs in decoding relies on NALUs placed at level N + 1 (or deleted). This dynamic ranking table may not contain the weighting elements.
- the dynamic ranking table is reset with the values from the static classification table to each reference image (IDR or I image).
- the content of the static and dynamic ranking tables 5 is not static.
- the correspondences evolve as and when regulation is carried out by the regulation module, in order to take into account all evolutions of the constraints. It is up to an external module, decision, to dynamically modify their content.
- an incoming NALU of value ⁇ P, D, T, Q ⁇ can be reclassified in a level N + k less priority, with k> l, in order to limit the flow of the level N.
- NALU are not all present.
- the N-I level is independent of the N level, while the N level is dependent on the N-I level (hierarchical principle).
- the following table shows an example of a static table for three-level control.
- the "Target" column 51 presents, for information purposes, a possibility of flow characteristic (coding level).
- the following table shows an example of an example of a dynamic classification table according to the invention, obtained by updating the static table example above after regulating the first regulation level.
- this update concerns two types of NALUs: NALUs having a PDTQ ⁇ 3,0,1,2 ⁇ (fifth line) will have to be reclassified in level 4 of regulation (fictitious level forming trash). ; and the NALUs with a PDTQ ⁇ 2,0,1,1 ⁇ (twelfth line) will have to be reclassified in level 2 of regulation.
- FIG. 5 illustrates the operating principle of the regulation buffer and the reserve buffer.
- the regulation buffer 4 contains the data coming directly from the source. It is essentially used to keep the order of arrival of the data in order to facilitate their processing during the broadcast. Indeed, all the data having the same DTS must be transmitted at the same time, this information setting the emission. It is a FIFO file whose arrow referenced 70 indicates the direction.
- the associated constraint is the rate calculation of each adjustment level of the regulation, its size must be fixed throughout the process and it must be constantly filled to be able to perform this calculation. The notion of filling is done on the basis of the temporal information of the data.
- DTSi - DTSo constant, with DTSi the DTS value of the last AU input in the regulation buffer, and DTSo the DTS value of the first AU to be output of the regulation buffer.
- the reserve buffer 3 is added to the input of the regulation buffer 4. The presence of this reserve also allows the grouping of the NALUs to form the AUs. In fact, the data are processed at the AU level in the regulation buffer 4, but at the NALU level in the regulation module 8.
- This reserve also makes it possible to introduce the problem of supercharging and under-powering of the regulation buffer. Overfeeding is an input of a larger number of data than the regularization buffer can consume. In this case, the additional data will be stored in the reserve, until saturation thereof. Finally, if the reserve is considered to have reached its maximum size, the data will no longer be accepted and rejected from the system. Underrange means faster data consumption than entering data into the control buffer. The buffer regulation therefore does not have its optimal size, and the flow calculation remains possible, but on an incomplete basis because all the expected data are not present. However, the operation is still possible, as long as the control buffer is not completely empty because there is always data to be sent on the output network.
- Control module 8 ( Figures 6 to 14) 5.4.1 General principle of control In order to guarantee the different requested bit rates, the regulation module 8 is implemented. It: receives as input the references of the NALUs contained in the regulation buffer
- a resource adjustment can be established based on the targeted rates and feedback (arrow referenced 27 in Figure 2) from the broadcast. This adjustment is performed by the resource adjustment module 7 which can, for example, refine the rates to take into account the headers of the NALUs transmitted.
- the referral module 9 directs the NALUs at the output of the regulation buffer.
- Each NALU is routed to the transmission means corresponding to the regulation level in which it is classified.
- At each regulation level corresponds for example a different means of transmission, in order to separate the levels. This differentiation can be done at the IP / port address, TOS mark, track within a multiplexing ...
- the regulation module 8 implements, for example, a regulation mechanism comprising a multi-level chip bucket type algorithm (hereinafter called MLTB).
- MLTB multi-level chip bucket type algorithm
- the MLTB manages three levels of regulation N1, N2 and N3.
- the arrows referenced 81, 82 and 83 symbolize the flow resources assigned to each of the regulation levels.
- the arrow referenced 84 the regulation between the levels
- the MLTB allows a dynamic change of the flow rate of any regulation level (without modifying the flow rates of the other levels).
- changing the rate of a level instantaneously changes the tokens allocated at this level, thus adapting the regulation to the new rate setpoint.
- the data within the MLTB are references (pointers) to the regulation buffer.
- the smallest information is NALU.
- AU integrity and temporal notions are managed only indirectly via the regulation buffer. Only the notion of token is used in MLTB calculations.
- the data present in the reserve are not taken into account in the MLTB.
- the MLTB can operate in independent or cumulative mode. 5.4.2.1 Organization of the data between the regulation buffer and the MLTB
- FIG. 7 shows a dual referenced data structure between the regulation buffer and the MLTB, according to a particular embodiment of the invention.
- Each level of the MLTB contains first pointers to the NALUs stored in the regulation buffer 4.
- each NALU contains a header
- the first pointers of level N1 are referenced 9I 1 , 9I 2 , ..., those of level N2 are referenced 92 ls 92 2 , etc.
- the first pointers of NALUs are ranked in order of weighting (as symbolized by the arrow referenced 93). For the same weighting level, the pointers to the oldest DTS NALUs are placed first. This organization makes it possible to immediately find the lowest priority NALUs (in the case of complete regulation, described below). The addition of new NALUs in the MLTB respects this rule.
- the buffer buffer data is ordered by AU, and following the DTS
- the order of the NALUs within an AU is indifferent for the regulation carried out by the MLTB (the MLTB contains the order of priority). This makes it possible to dispense with the order of arrival of the NALUs, for example in the case of cooperation of networks with different transfer times.
- control buffer 4 contains second pointers to the first pointers within the MLTB. This double referencing structure (first and second pointers), symbolized by the referenced arrows
- a bucket of chips is assigned for each regulation level, with a number of tokens set according to the requested rate for this regulation level and the size of the regulation buffer. For example, one of two ways to calculate the released tokens is used:
- Tokens released AU size: the MLTB behaves as a simple average on the regulation buffer, and the bit rate is AU level;
- Tokens released flow output * time out AU: the MLTB integrates the IP headers in its calculation. The rate corresponds to the IP level.
- FIGS 8 and 9 illustrate these two modes of operation, independent and cumulative respectively.
- C1 and C2 represent the target flow rates of the respective levels 1 and 2.
- D1 and D2 represent the actual flow rates.
- the regulation can use, for each level, the available resources of the lower level.
- an MLTB operating with a mixture of independent and cumulative modes.
- an SD base flow (of target bit rate C1) having HD enhancement flux in 72Op mode (of target bit rate C2) and another HD enhancement mode in FIG. 1080i mode (target rate C3), these two enhancement modes are independent.
- the flow constraints are then: D1 + D2 ⁇ C1 + C2 D1 + D3 ⁇ C1 + C3
- the MLTB When the output of an AU, the MLTB indicates the distribution of the NALUs of this
- the simplified regulation only acts when entering the data (AU grouping NALUs) into the regulation buffer.
- the quantity of tokens freed by the data output of the regulation buffer is not sufficient to allow the entry of a new datum by taking into account only the classification operation, this data is reclassified in the upper levels of the MLTB. .
- the dynamic ranking table is updated.
- an event causes the output of an AU of the regulation buffer.
- the tokens that were associated with the NALUs of this AU become available again for the MLTB (according to the calculation of chips detailed above).
- an AU taken from the reserve buffer is imported into the regulation buffer.
- an AU output is an AU input.
- the ranking is applied sequentially to each NALU of the AU entry, thanks to the chips available in the MLTB.
- a step 134 it is detected whether all the NALUs composing the AU input have been processed. If so, go to the end step 135. Otherwise, in a step 136, a NALU is to be processed, then in a step 137 it is detected whether the available tokens of the requested N regulation level (according to dynamic classification table) suffice for the NALU.
- NALU is ranked in the N level and N level tokens are awarded. Then, we return to step 134. If the available tokens of the level N are not sufficient for the NALU, then in a step 139 the regulation level N + 1 is chosen, of lower priority than the N level.
- step 1310 it is detected whether the available tokens of the N + 1 regulation level suffice for the NALU: if the available tokens of the N + 1 level are sufficient, then one goes on to the 1311 modification step of the dynamic ranking table (to take dependencies into account) before proceeding to step 138 so that the NALU is reclassified in the level N + 1 and the tokens of the level N + 1 are allotted to it; if the available tokens of the N + 1 regulation level are not sufficient for the NALU, one returns to the step 139.
- the last passage by the step 139 consists in choosing the level of fictitious regulation forming trash, and in this case the The following step 1310 is considered as verified and therefore, step 1311 is taken.
- an event causes the output of an AU of the regulation buffer.
- the tokens that were associated with the NALUs of this AU become available again for the MLTB.
- an AU taken in the reserve buffer is imported into the regulation buffer.
- a step 144 it is detected whether all the NALUs composing the AU input have been processed. If so, we go to the end step 145. Otherwise, in a step 146 we take a NALU to be processed, then in a step 147 we detect if the available tokens of the N regulation level requested (according to the dynamic classification table) suffice for the NALU. If the available tokens of the N level are sufficient, then in a step 148 the NALU is ranked in the N level and the tokens of the N level are assigned to it.
- step 149 a regulation of the set of NALUs of all the regulation levels of the MLTB is carried out, then in a step 1410 the dynamic classification table is modified. (in order to take dependencies into account) before returning to step 144.
- step 149 of adjustment of the regulation levels (regulation of the set of NALUs of all the MLTB regulation levels) is now presented.
- step 151 the input NALU is added to the N level.
- the number of tokens available in this level of regulation is then likely to become negative if, before the addition, there were not enough tokens available. NALU is nevertheless added because it must be taken into account in future research.
- a step 152 it is detected whether all the regulation levels to be processed (namely the level N and the lower priority levels) have been. If so, we go to the end step 153. If not, in a step 154 we take a new current regulation level to be processed (we start with the level N and then at each iteration we go to the next level N + 1 of lower priority), then in a step 155 it is detected whether the number of available tokens for the current level is correct (that is, greater than or equal to zero).
- the level is considered to be regulated and it returns to step 152.
- step 156 NALU selection, among those classified in the current regulation level, having the least dependence.
- a selection criterion is to take the NALU with the highest weighting and the most recent DTS.
- step 157 the selected NALU is reclassified at the N + 1 level, thus releasing the tokens associated with it. Then we return to step 155, to check if the reclassification of this NALU was sufficient.
- the last pass through step 157 consists of a reclassification into the dummy trash control level, and in this case the test of step 155 which follows is considered as checked, and therefore step 152 is returned.
- Figure 14 shows an example of distribution of NALUs (represented by black squares) in three possible control levels N1, N2, N3 and a dummy trash control level N4.
- Each AU is represented by a column of NALUs that may have a different number of NALUs.
- the NALUs are selected to be assigned to a regulation level.
- the number of NALUs classified in one level of regulation may vary from one DTS to another, depending on the flow rate assigned to this level of regulation.
- there is a decrease in the flow rate assigned to the Nl level, between the second and third DTS (starting from DTSo) then an increase in this rate between the fifth and sixth DTS.
- the flow rate assigned at level N3 remains constant.
- the dashed arrow referenced 161 illustrates the order of travel for the reclassification of the NALUs.
- the NALUs reclassified first are those with the highest weighting and the most recent DTS (close to DTSi).
- Each of the arrows referenced 162 and 163 illustrates the dependence between two NALUs. It is recalled that a NALU of a regulation level N can only depend on a NALU of the same N regulation level or a N 'less priority regulation level (N'> N).
- This figure 14 also illustrates the (re) classification of two NALUs, according to the example of dynamic classification table above (see the fifth and twelfth lines), following a reduction of the flow rate assigned to level N1: - IaNALU referenced 164 is (re) ranked in level 2; and
- IaNALU referenced 165 is (re) classified in level 4 (trash).
- level 4 level 4
- the complexity of the algorithm of the complete regulation is increased compared to that of the simplified regulation, because it must consult, or even modify, all the NALUs contained in the buffer of regulation, and this for each introduction of a new given.
- the advantage of the complete regulation is the reactivity. Indeed, all the data present in the system are regulated during the change of constraints. Thus, the data transmitted just after the change will already respect these new constraints.
- Another advantage of this complete regulation is to smooth the quality of the decoded stream, by regulating the classification of NALUS over the entire regulation buffer.
- the order of selection of reclassified NALUs optimizes the quality in an order that respects dependencies.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0608104 | 2006-09-15 | ||
PCT/FR2007/051942 WO2008032001A1 (en) | 2006-09-15 | 2007-09-14 | Method and device for adapting a scalable data stream, corresponding computer program product and network equipment |
Publications (1)
Publication Number | Publication Date |
---|---|
EP2060074A1 true EP2060074A1 (en) | 2009-05-20 |
Family
ID=38001786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP07823837A Withdrawn EP2060074A1 (en) | 2006-09-15 | 2007-09-14 | Method and device for adapting a scalable data stream, corresponding computer program product and network equipment |
Country Status (3)
Country | Link |
---|---|
US (1) | US8392595B2 (en) |
EP (1) | EP2060074A1 (en) |
WO (1) | WO2008032001A1 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2889017A1 (en) * | 2005-07-19 | 2007-01-26 | France Telecom | METHODS OF FILTERING, TRANSMITTING AND RECEIVING SCALABLE VIDEO STREAMS, SIGNAL, PROGRAMS, SERVER, INTERMEDIATE NODE AND CORRESPONDING TERMINAL |
KR20100071688A (en) * | 2008-12-19 | 2010-06-29 | 한국전자통신연구원 | A streaming service system and method for universal video access based on scalable video coding |
KR101803970B1 (en) * | 2011-03-16 | 2017-12-28 | 삼성전자주식회사 | Method and apparatus for composing content |
US8806529B2 (en) | 2012-04-06 | 2014-08-12 | Time Warner Cable Enterprises Llc | Variability in available levels of quality of encoded content |
US9589533B2 (en) | 2013-02-28 | 2017-03-07 | Robert Bosch Gmbh | Mobile electronic device integration with in-vehicle information systems |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6781971B1 (en) * | 1999-04-02 | 2004-08-24 | Qualcomm Incorporated | System and method for prioritizing traffic channel messages |
US20020073238A1 (en) * | 2000-11-28 | 2002-06-13 | Eli Doron | System and method for media stream adaptation |
JP2003152544A (en) * | 2001-11-12 | 2003-05-23 | Sony Corp | Data communication system, data transmitter, data receiver, data-receiving method and computer program |
JP2004266503A (en) | 2003-02-28 | 2004-09-24 | Matsushita Electric Ind Co Ltd | Video transmission system |
CN101077010A (en) | 2004-12-15 | 2007-11-21 | 皇家飞利浦电子股份有限公司 | Method and system for the transmission of digital video over a wireless network |
US20060156363A1 (en) * | 2005-01-07 | 2006-07-13 | Microsoft Corporation | File storage for scalable media |
US9197912B2 (en) * | 2005-03-10 | 2015-11-24 | Qualcomm Incorporated | Content classification for multimedia processing |
-
2007
- 2007-09-14 WO PCT/FR2007/051942 patent/WO2008032001A1/en active Application Filing
- 2007-09-14 US US12/440,622 patent/US8392595B2/en not_active Expired - Fee Related
- 2007-09-14 EP EP07823837A patent/EP2060074A1/en not_active Withdrawn
Non-Patent Citations (1)
Title |
---|
See references of WO2008032001A1 * |
Also Published As
Publication number | Publication date |
---|---|
US20100005184A1 (en) | 2010-01-07 |
WO2008032001A1 (en) | 2008-03-20 |
US8392595B2 (en) | 2013-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1839442B1 (en) | Device and method for scalably encoding and decoding an image data stream, a signal, computer program and an adaptation module for a corresponding image quality | |
US9923945B2 (en) | Virtual assets for on-demand content generation | |
FR2857198A1 (en) | Digital data e.g. audio, stream distribution method, involves selecting code conversion method admissible for each client from set of predetermined code conversion methods based on calculated flow and classification of client | |
FR2939593A1 (en) | VIDEO ENCODING METHOD AND DEVICE | |
FR2894421A1 (en) | METHOD AND DEVICE FOR DECODING A VIDEO STREAM CODE FOLLOWING A HIERARCHICAL CODING | |
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 | |
WO2007009996A1 (en) | Method for filtering, transmitting and receiving scalable video streams and corresponding programs, server, intermediate node and a terminal | |
EP2060074A1 (en) | Method and device for adapting a scalable data stream, corresponding computer program product and network equipment | |
FR2932938A1 (en) | METHOD AND DEVICE FOR DATA TRANSMISSION | |
EP2052545A2 (en) | Device and method of scalable coding and decoding of flow of image data, respective signal and computer program | |
FR2896117A1 (en) | METHODS OF ENCODING AND DECODING AN IMAGE SEQUENCE, DEVICES, COMPUTER PROGRAMS, AND CORRESPONDING SIGNAL | |
EP3780632B1 (en) | System for distributing audiovisual content | |
FR3021489A1 (en) | METHOD FOR ADAPTIVE DOWNLOAD OF DIGITAL CONTENT FOR MULTIPLE SCREENS | |
EP2368367B1 (en) | Interactive system and method for transmitting key images selected from a video stream over a low bandwidth network | |
FR2879387A1 (en) | METHOD FOR TRANSMITTING A VARIABLE BINARY RATE THROUGH A TRANSMISSION CHANNEL. | |
US8429706B2 (en) | Method and device for transmitting data | |
EP2172023B1 (en) | Adaptation of scalable data flow while taking retransmissions into account | |
FR2923970A1 (en) | METHOD AND DEVICE FOR FORMING, TRANSFERING AND RECEIVING TRANSPORT PACKETS ENCAPSULATING DATA REPRESENTATIVE OF A SEQUENCE OF IMAGES | |
Rieckh | Scalable video for peer-to-peer streaming | |
EP3675505B1 (en) | Method and system for distributing audiovisual content | |
EP2819424A1 (en) | Method for improving the time for switching between audiovisual programs | |
EP3675425B1 (en) | Basic module of a system for the distribution of audiovisual content | |
FR3055762A1 (en) | METHOD AND DEVICE FOR ENCODING AUDIOVISUAL CONTENT TO BE DIFFUSED BY SUCCESSIVE DOWNLOADS OF DATA PIECES | |
FR2926177A1 (en) | Data e.g. audio data, flow transmitting method, involves controlling coding flow of data flow, and reducing or increasing quality objective when reactivity parameter is increased or reduced, respectively, so as to modify quality objective | |
FR3096210A1 (en) | A method of transmitting digital content having several versions accessible from a content server to a playback terminal. |
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: 20090306 |
|
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 MT NL PL PT RO SE SI SK TR |
|
AX | Request for extension of the european patent |
Extension state: AL BA HR MK RS |
|
17Q | First examination report despatched |
Effective date: 20110209 |
|
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 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20140704 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R079 Free format text: PREVIOUS MAIN CLASS: H04L0012560000 Ipc: H04L0012833000 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R079 Free format text: PREVIOUS MAIN CLASS: H04L0012560000 Ipc: H04L0012833000 Effective date: 20141203 |