Patent Publication Number: US-2006018378-A1

Title: Method and system for delivery of coded information streams, related network and computer program product therefor

Description:
BACKGROUND OF THE INVENTION  
      1. Field of the Invention  
      The invention relates to coding techniques, for instance for video signals. The invention may be applied to the dynamic adaptation of pre-encoded video streams to an error prone wireless channel, having an available bandwidth changing in a non deterministic way, while preserving the optimal quality of the streamed content. The invention was developed by paying specific attention to the possible application to MPEG-2 coded video streams.  
      However, reference to this specific possible application is not to be construed in a limiting sense of the scope of the invention.  
      2. Description of the Related Art  
      The MPEG video standard is based on a video compression procedure that exploits the high degree of spatial and temporal correlation in natural video sequences.  
      The MPEG standard defines the syntax and semantics of the transmitted bit-stream and the functionality of the decoder. However, the encoder is not strictly standardized: any encoder that produces a valid MPEG bit-streams is acceptable.  
      Motion estimation is used to compute similarities among successive pictures, in order to remove temporal redundancy, i.e., to transmit only the difference among successive pictures. In particular, Block Matching Motion Estimation (BM-ME) is a common way to extract the similarities among pictures and it is the method selected by the MPEG-2 standard.  
       FIG. 1  shows an example of a hybrid Differential Pulse Code Modulation/Discrete Cosine Transform (DPCM/DCT)) coding loop (MPEG encoder).  
      Such an encoder system removes temporal redundancy from the video Input Sequence, indicated with reference I, which is initially elaborated by a Frame Reorder block  200 . Temporal redundancy is then removed in a block  210  that performs an inter-frame Motion Estimation (ME) operation.  
      A summation node  212  operates on the output signal coming from the Motion Estimation block  210 , and also receives a signal representative of a previous picture coming from a block  280  that represents the Anchor Frames Buffer.  
      The residual error images, obtained as output of the summation node  212 , are further processed by a block  220  in which a Discrete Cosine Transform (DCT) operation is performed, which reduces spatial redundancy by de-correlating the pixels within a block and concentrating the energy of the block itself into a few low order coefficients.  
      Finally, blocks  230  and  240 , representing respectively a Scalar Quantization (Quant) operation and a Variable Length Coding (VLC) operation, produce a bit-stream with good statistical compression efficiency.  
      The quantized sequence outgoing from block  230 , is also fed to an Inverse Quantization (IQ) block  290 , and followed by a cascaded Inverse Discrete Cosine Transform (IDCT) block  295 .  
      Due to the intrinsic structure of MPEG standard, the final bit-stream outputted by the Variable Length Coding block  240  is produced at variable bit-rate; hence, it has to be transformed to constant bit-rate by the insertion of a suitable Multiplexer  250  and an Output Buffer  260 . Such an Output Buffer  260  feeds a control signal to a Feedback Bit-rate Controller, which decides the granularity of scalar quantization applied in the Scalar Quantization block  230 .  
      The Multiplexer  250  works on bit-stream signals coming from the Variable Length Coding block  240  and Motion Estimation block  210 .  
      A block  270  represents the already mentioned Feedback Bit-rate Controller and elaborates signals coming from Frame Reorder block  200  and Output Buffer block  260 . The output signal from the Feedback Bit-rate Controller  270  is fed to the Quantization block  230 .  
      As mentioned, block  280  represents the Anchor Frames Buffer, which receives and elaborates inputs coming from Motion Estimation block  210  and from the summation node  214 . The summation node  214  sums signals coming from the Anchor Frame Buffer block  280  and Inverse Discrete Cosine Transform (IDCT) block  295 . The signal coming from the Anchor Frame Buffer block  280  is obtained from the motion vectors calculated by the Motion Estimation block  210 .  
      Finally, the Output MPEG Bit Stream of this encoder is indicated O in  FIG. 1 .  
      The coding technique just described must be considered in view of the fact that, in recent times, it has become increasingly important to be able to adapt the multimedia content to the client devices, and it widens increasingly the range of transformations needed.  
      A general access to the multimedia content can be provided in two basic ways; the first is by storing, managing, selecting, and delivering different versions of the media objects (images, video, audio, graphics and text) that include the multimedia presentations.  
      The second is by manipulating the media objects on the fly, by using, for example, methods for text-to-speech translation, image and video transcoding, media conversion, and summarization. This allows for adapting the multimedia content delivery to the wide diversity of client device capabilities in communication, processing storage and display.  
      In both of the basic ways, the need arises of converting a compressed signal into another compressed signal format. The device that performs such an operation is called a transcoder. Such a device could be placed in the network to help relaying transmissions between these different bit rates or could be used as a pre-processing tool to create the various versions of the media objects that were mentioned earlier.  
      By way of example, one may consider the case of a user that desires to watch a Digital Video Disk (DVD) movie, that is MPEG-2 encoded at 8 Mbit/s at standard definition (Main Profile at Main Level), by using a portable wireless device assisted by a Common Intermediate Format (CIF) display.  
      In order to allow viewing of such a movie, a MPEG-2 decoding has to take place, the picture resolution must be changed from standard to Common Intermediate Format, and then again the movie must be MPEG encoded. The resulting bit-stream can be transmitted over a limited bandwidth error-prone channel, received by the portable device and decoded for related display.  
      The main issue is, therefore, to adapt the bit-rate and the picture resolution of a compressed data stream compliant to a video standard (e.g., MPEG-2) to another one. The most widely adopted procedure is to decode the incoming bit-stream, optionally down-sampling the decoded images to generate a sequence with a reduced picture size, and re-encode with a new encoder, suitably set for achieving the required bit-rate.  
       FIG. 2  shows a block diagram of a transcoding chain, where reference numeral  300  indicates a sequence of blocks collectively named MPEG decoder and reference numeral  350  indicates a sequence of blocks collectively named MPEG encoder.  
      As shown in  FIG. 2 , a video Input Bit-stream I′, representing information in the form of MPEG coded frames, is led to the MPEG decoder  300 . Specifically, such video Input Bit-stream I′ is first fed to a Headers Detection block  302 . The signal coming from the Headers Detection block  302  is then fed to a Buffer block  304  to be subsequently processed by a Demultiplexer Variable Length Coding Run-level Decoder block indicated with reference  306  in  FIG. 2 .  
      The processed signal from the block  306  is sent to an Inverse Quantization block  308 , with a Quantization level  318  extracted by the same block  306 , to be then fed to an Inverse Discrete Cosine Transform block  310 . Block  312  represents an Anchor Frame Buffer that operates by exploiting Motion Vector Values  314  and a Motion Vector Modes  316  that receives as input signals, originated from the Decoder block  306 .  
      The output signal from the Anchor Frame Buffer  312  is in turn fed to a summation node  320  that receives also the processed signal from the Inverse Discrete Cosine Transform block  310 . The output signal from the summation node  320  is then fed to the MPEG encoder  350 , and also fed back to the Anchor Frame Buffer  312 .  
      The overall scheme of the MPEG encoder block  350  is substantially analogous to the scheme of the encoder  200  shown in  FIG. 1 , but the signal outputted from the MPEG decoder block  300  is here sent preliminarily to a Chroma Filtering block  360 . The filtered signal coming from block  360  is then sent to a Frame Reorder block  370 , and a cascaded Motion Estimation block  380 . The Motion Vectors  385  originated from such Motion Estimation block  380  are fed to an Anchor Frame Buffer block  390  and to a Multiplexer  430 .  
      The signal coming from the Anchor Frame Buffer  390  is fed to two summation nodes,  382  and  392 , and fed back to the Motion Estimation block  380 .  
      The summation node  382  receives signals from the Frame Reorder block  370  and from the Anchor Frame Buffer block  390 . The output signal from the summation node  382  is fed to a Discrete Cosine Transform block  400  to be subsequently quantized in a Quantizer block  410 . The quantized signal from the block  410  is fed to a Variable Length Coding block  420  and to an Inverse Quantizer block  450 .  
      The signal coming out from Variable Length Coding block  420  is fed to a Multiplexer  430 . The multiplexed signal is in turn fed to an Output Buffer  440  that returns the Output MPEG Bit-stream O. The output signal from the block  440  is also fed to a Feedback Bit-rate Controller  470 , that controls the Quantizer block  410 .  
      The signal generated from the Inverse Quantizer block  450  is fed to an Inverse Discrete Cosine Transform block  460 . The inverse transformed signal from block  460  is fed to the summation node  392 . The output signal from the summation node  392  is fed to Anchor Frame Buffer block  390 .  
      To perform the transcoding procedure above outlined alternative methods have been developed, that are able to operate directly in the Discrete Cosine Transform domain, joining together the decoder and the encoder, and reusing the available useful information, like for example, motion vectors: these systems are able to remove the unnecessary redundancies present in the system.  
       FIG. 3  shows an example of such a transcoder system. The video Input Bit-stream indicated with reference I′ is fed to a Sequence &amp; Group Of Pictures headers block  500  that separates the signal and feeds a Sequence &amp; Group Of Pictures Data delay memory block  510  and a Picture Header block  520 .  
      The output signal from block  520  is fed to a Local Cache memory block  530 . A Multiplexer  540  operates on signals coming from block  520  and from block  530 . The multiplexed signal from block  540  is fed to an Inverse-Variable Length Coding block  560 . The signal coming from block  560  is fed to an Inverse-Run Length block  570 . The resultant output signal is fed to a Re-quantizer block  585  that is made up with an Inverse Quantizer block  580  followed by a Quantizer block  590 . The signal from block  585  is fed to a Run Length block  600  followed by a Variable Length Coding block  610 . The output signal form block  610  is fed to a Bit Usage Profile block  620  followed by a Rate Control block  630  that controls the Quantizer block  590 .  
      Finally, the Multiplexer  640  elaborates the signals from the block  510 , the block  530  and the block  610  and returns the Output Bit-stream O.  
      Conventional systems always provide, as in the transcoder just described with reference to  FIG. 3 , a de-quantization followed by a re-quantization step, together with an output rate control step.  
      Such a kind of system is able to operate only on a single level of transcoding. In order to operate with more levels, additional complexity should be included in the system.  
      In particular, as described with reference to the encoder of  FIG. 2 , explicit transcoding is a long and complex sequential chain, and involves various sources of inefficiency, because the motion information coming from the source stream is completely discarded. The transcoder shown in  FIG. 3 , instead, is able to reuse inasmuch as possible the incoming information, to the expense of losses in terms of output bit-rate precision and drift being introduced.  
      Solutions as depicted in the foregoing are disclosed by published patents WO03047264, WO03047265, EP1374593, EP1231794, and EP1294195.  
      From published patent WO02080518 is known a system for simultaneous transmission of multiple media streams in a fixed bandwidth network, wherein a state machine detects if the network bandwidth is close to saturation and executes a process of selecting at least one stream as a target for lowering total bandwidth usage. In one embodiment, the amount of data is reduced by a gradual degradation of the precision of the data, resulting in a greater potential for data compression, and/or by gradually reducing the resolution of the data of the target stream.  
     BRIEF SUMMARY OF THE INVENTION  
      One embodiment of the present invention provides a method for dynamically adapting pre-encoded video streams to an error prone wireless channel, in which the available bandwidth changes in non-deterministic way, by matching the available bandwidth and preserving at the same time the optimal quality of the streamed content.  
      One embodiment of the present invention is a method having the features set forth in the claims that follow. The invention also relates to a corresponding system, a related network as well as a related computer program product, loadable in the memory of at least one computer and including software code portions for performing the steps of the method of the invention when the product is run on a computer. As used herein, reference to such a computer program product is intended to be equivalent to reference to a computer-readable medium containing instructions for controlling a computer system to coordinate the performance of the method of the invention. Reference to “at least one computer” is evidently intended to highlight the possibility for the present invention to be implemented in a distributed/modular fashion.  
      The arrangement described herein proposes a method that, substantially, provides for operating on a plurality of complexity levels, in particular four, and for choosing the best level among such a plurality of complexity levels by evaluating the available output bit rate and the complexity of the incoming compressed sequence. Such an evaluation is based on the available information contained in the incoming bit-stream, like the motion vector fields and the error level.  
      In particular, a scenario where a home access point is connected with several mobile wireless terminals is considered.  
      Adaptive video transcoding capabilities are becoming more and more important in a broad range of applications in the consumer electronics field; the proposed method be easily applied in such field, enhancing the performances of the transcoding system.  
      The proposed method enhances the quality achievable by a system able to transcode from one (or a plurality on multimedia stream to another one (or a plurality of), introducing very little computational complexity. The arrangement described herein thus allows for deciding among re-quantization, frame rate down-sampling, frame size down-sampling procedures, that are very easy to be implemented, and allows the system to achieve better final quality, avoiding the drawbacks of the prior art. 
    
    
     BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS  
      The invention will now be described, by way of example only, with reference to the enclosed figures of drawing, wherein:  
       FIG. 1  shows a block diagram of an MPEG encoder system,  
       FIG. 2  shows a block diagram of an explicit transcoding chain,  
       FIG. 3  shows a block diagram of a transcoder,  
       FIG. 4  shows a basic block diagram of a typical Wireless Home Network scenario,  
       FIG. 5  shows a diagram representative of a transcoding adaptation procedure according to the invention, and  
       FIG. 6  shows a schematic diagram of a system for implementing a transcoding adaptation procedure according to the invention. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION  
      A scenario where a home access point is connected with several mobile wireless terminals is shown in  FIG. 4 .  FIG. 4  shows a home access point  10  connected with a Wide Area Cellular Network  20  and with an Internet network  30 . The home access point  10  is connected, by means of a Wireless Bridge  40 , with a Gateway  50 . The Gateway  50  is in turn connected with several mobile terminals, like: Desktop Computer  60 , Printer  65 , Monitor device  70 , Digital Video Disk (DVD) reader  75 , Camcorder  80 , Personal Digital Assistant (PDA)  85 , Laptop Computer  90 , Digital Camera  95 , TV device  100 , and Audio device  105 .  
      The available bandwidth for an 802.11 a/b/gin wireless LAN card is nominally 11 (11b), 54 (11a and 11g), &gt;100(11n) Mbit/s respectively, but, depending on the number of active cards, the relative motions between server and clients and the obstacles between them, the real channel bandwidth could be reduced down to hundreds of Kbits per seconds. For this reason, there is the necessity to find a way to modify dynamically the incoming content to the variable transmission conditions.  
      The transcoder, as seen with reference to  FIGS. 2 and 3 , is a system able to convert a MPEG high quality compressed video stream into another one, that is less bandwidth consuming, through a dynamic re-quantization performed in the compressed domain. However dynamic re-quantization is not able to achieve compression bit rates lower than few Mbit/sec at full resolution with acceptable quality, because of the limitation of the standard and the intrinsic complexity of the task.  
      In order to overcome such limitations a method of controlling a network is proposed that operates at a plurality of transcoding levels, in particular at four different levels of complexity. The proposed method provides for choosing the best level depending on the available output bit rate and the complexity of the incoming compressed sequence, i.e., basing the choice on the available information contained in the stream, like the motion vector fields and the error level.  
      In a preferred embodiment, the four level of transcoding are the following:  
      full resolution, full frame rate  
      full resolution, reduced frame rate  
      reduced resolution, full frame rate  
      reduced resolution, reduced frame rate  
      The resolution is varied by spatial downsampling, i.e., frame size downsampling, whereas the frame rate is varied by temporal downsampling.  
      Each of such levels can furthermore include sub-levels. Each sublevel is characterized by a different quantization parameter. In other words, the method described herein is able to change the frame size (full or reduced), frame rate (full or reduced) and quantization parameter (the whole MPEG-2 range).  
      It must be noted that methods for transcoding a MPEG-2 stream changing bit rate, operating on quantization level and frame rate, are known per se from the prior art.  
      In particular, when a MPEG-2 stream is considered, such a stream generally contains I, P and B pictures.  
      I pictures are coded with reference to no other picture, so are self-decodable.  
      P pictures are instead coded starting from a Prediction coming from the previous I or P pictures.  
      B pictures are generally coded starting from one previous I or P picture, and one following I or P picture. B picture cannot be taken as reference for other picture.  
      Assuming that the standard sequence of picture type for transmission is IBB PBB PBB PBB, repeated, it can be seen that a frame rate reduction to one third can be obtained by just dropping the bits relating to the B pictures. More complex frame rate reduction processes can be envisaged by people skilled in the art, including partial decoding of the pictures.  
      The method proposed, however, deals with procedures for using the above mentioned transcoding processes to dynamically adapt the stream to instantaneous channel bandwidth variations.  
      In the European patent application n. 04007275.3 in the name of the STMicroelectronics SrI, the assignee of the present invention, it is disclosed a method for measuring in real time the network bandwidth variations, so it can be possible to have an exact estimation of the channel conditions. The results about the channel conditions obtained by such a method can be used as input values for selecting the use of the transcoding levels and the extent of their use.  
      The proposed method, as mentioned above, envisages down-sampling operations for reducing both the frame rate and the frame size. This arises from the observation that, if the quantizer values are increased in order to decrease the bit-rate or bandwidth, above a certain value of compression factor/quantizer, it is better, in terms of perceived quality by the user, to watch a sequence that is reduced in frame size and/or frame rate, but less quantized, rather than a full size and/or frame rate sequence that undergoes a heavy coarse quantization.  
      The proposed method, further, in order to optimize the visual quality at any given bit-rate, provides for operating on such three parameters, frame rate, frame size and quantizer, in a combined and adaptive manner, depending not only on the available bandwidth but also on the picture content.  
      At a defined quantization level, the compressed bit-stream has a variable bit-rate depending on the picture content. Conversely, different sequences coded at the same bit-rate have different perceived quality, depending on the sequence content. Therefore, a solution using fixed thresholds in terms of bit-rate for shifting frame size and rate is unsuitable and a basic control scheme, such as shown in the following example of pseudo-code, based on assigning fixed thresholds to the bandwidth, would fail to obtain the best possible visual quality given any video content and any channel condition:  
      IF(rate&gt;Threshold  1 )  
      THEN full_rate  
      ELSE reduce_rate;  
      IF (rate&gt;Threshold  2 )  
      THEN full_size  
      ELSE reduce_size;  
      where Threshold  1  and Threshold  2  represent rate threshold that trigger reduction of the frame rate or of the frame size respectively.  
      The proposed method adopts instead a strategy aimed at getting the best possible video quality in every channel condition and for every video content. Such a strategy is based on the above mentioned fact that the perceived quality is strongly dependent on a Quantization parameter Q of the stream, i.e., the more it is quantized, the less quality is left on the stream.  
      Control of the quantization parameter Q, as seen for instance with reference to  FIG. 3 , is driven by the transcoder rate control  630 , which selects the appropriate standard quantization parameter Qp, depending on the video content and desired bit-rate.  
      The proposed method thus provides for making available a first cost function QUANTIZATION_COST, that is a function that take into account how the image has been quantized, according to the following relation: 
 
QUANTIZATION_COST= H   1 * Qp+H   2   *m _quant 
 
      H 1 , H 2  are two real numbers, and Qp and m_quant are quantities in the bit-stream defined in the MPEG- 2  standard that allow bit rate control. The m_quant is the quantizer scale factor, while Qp, as mentioned, is the standard Quantization Parameter. The standard Quantization Parameter Op determines the step size for associating the DCT transformed coefficients with a finite set of steps. Large values of Quantization Parameter Qp represent big steps that roughly approximate the spatial transform, so that most of the signal can be captured by only a few coefficients. Small values of Quantization Parameter Qp more accurately approximate the block&#39;s spatial frequency spectrum, but at the cost of more bits.  
      A metric to assess the level of motion content in a sequence and the level of details of the same sequence is also provided in association with the proposed method. Such a metric, a second cost function MOTION_COST, is computed starting from entities already available in the incoming bit-stream such as the motion vectors and the number of intra, P and B macroblocks of the incoming bit-stream to assess the level of motion content in the sequence. In addition, other typical metrics used in the art, like pixels/blocks/macroblock MAE (Mean Absolute Error), MSE (Mean Square Error), activity or variances could be used as well in connection with the proposed method.  
      It is underlined that for what concerns these metrics, and also other metrics mentioned in the foregoing and in the following, a person skilled in the art could supply different definitions, without departing substantially from the scope of the invention.  
      Other variables that can be introduced in the metrics could be, by way of example, the size of the motion compensated block, in case the video coding standard (like H.264) allows selecting different motion compensation bases (16×16 pixels down to 4×4 pixels).  
      In the present embodiment the second cost function MOTION_COST includes computing an average modulus of the motion vectors average_MV modulus, a number of intra macroblocks number_of_intra_MB, and a number of B macroblocks number_of_birectionally_predicted_MB in the picture, as well as the motion entropy motion_entropy. Such values are combined as follows: 
 
MOTION_COST= K   1 *average —   MV _modulus+ K   2 *number_of_intra —   MB+K   3 *number_of_birectionally_predicted —   MB+K   4 * motion_entropy 
 
 where K 1 , K 2 , K 3 , K 4  represent constants that can assume any real value (positive or negative), including zero. Many variation are possible also on the second cost function MOTION_COST for the person skilled in the art, for instance by including other parameters extracted from the incoming bit-stream(e.g., DCT coefficient values and numbers). Such a second cost function MOTION_COST, working on already available compressed information, is computationally very inexpensive, therefore it is well suited for real-time implementation. Motion entropy motion_entropy is a measure of the variability of the motion vectors modulus and directions within the image. For example, for each motion vector, the absolute value of the difference in x and y direction of the vector itself with respect to all the neighbors is accumulated. These values are summed for all the vectors in the picture. The higher the results, the more uncorrelated the vectors will be. 
 
      Further, according to the proposed method, a third cost function DETAILS_COST is computed that represents a metric for the level of details in the bit-stream; once again, such a third cost function DETAILS_COST can be computed starting from information contained in the incoming bit-stream, such as number of Discrete Cosine Transform coefficients different from zero or above a certain threshold, before or after quantization, before or after motion compensation. All other quantities already used above for the second cost function MOTION_COST can be reused, in a different fashion, for the third cost function DETAILS_COST evaluation.  
      In the present embodiment such a third cost function DETAILS_COST is: 
 
DETAILS_COST= J   1 *number_of_hi_freq —   DCT _count+ J   2 *number_of intra  MB+J   3 *motion_entropy 
 
 where again J 1 , J 2 , J 3  are constants assuming real values. 
 
      Number_of_hi_freq_DCT count is defined as the count in an entire frame of the number of hi-frequency Discrete Cosine Transform coefficients that are, after dequantization, higher than a certain threshold TH_DCT. The hi-frequency DCT coefficients are the Discrete Cosine Transform coefficients that come, in a zig-zag-scan order, after the N th  position. The threshold TH_DCT and the position N are threshold values arbitrarily chosen.  
      In addition, as above, well-known quantities in the art can be used, such as prediction error MAE, macroblock variance or activity to be included in the above metrics.  
      Therefore, the proposed method makes available two metrics that allow for understanding if the content being processed has a high amount of motion, i.e., the second cost function MOTION_COST, or has many details, i.e., the third cost function DETAILS_COST.  
      Although it is known to provide at the receiver side, after the decoding operation and before displaying the video, means and methods to up-sample both the frame size and the frame rate, therefore reversing the action of downsampling frame size and frame rate, such means and methods however cannot recreate information lost during the down-sampling, thus the up-sampling will produce acceptable results only if in the preceding down-sample procedure it was avoided in some way to discard a too large amount of information. Typical examples of cases where the up-sampling is not effective are situations where reduced frame rate in a sequence with a great amount of motion is considered, or reduced frame size in a sequence with many details is considered.  
      In case no up-sampling is available in the post-processing at the display, these impairments will be even more evident. Therefore, it is crucial to correctly understand when to apply down-sampling, and of which type, spatial or temporal. In a sequence with high detail but slow motion, it is correct to reduce the frame rate; in a sequence where a great amount of chaotic motion is present, but little details (e.g., big objects bouncing around) is correct to safely down-sample image size.  
      The proposed method supplies an adaptive selection rule to choose the operation to perform, decrease or increase bit-rate, that is thus based on the comparison of the three cost functions identified in the foregoing:  
      MOTION_COST,  
      DETAILS_COST,  
      QUANTIZATION_COST.  
      Such three cost functions are continuously re-computed and compared among each other, in order to establish which is the next action, among the possible actions, i.e., reduce frame rate, reduce frame size, increase quantization, to perform in order to adapt the output bit-rate to the actual channel condition. The action most suitable for decreasing the bandwidth needed is identified as the one involving the smaller cost according to such three cost functions.  
      The proposed method thus provides for comparing such three cost functions.  
      Assuming that the smaller cost function initially is the first cost function QUANTIZATION_COST, the quantization is increased. By keeping on quantizing, at some point of such a quantization increase, however, the first cost function QUANTIZATION_COST will become greater in value than either the second cost function MOTION_COST or the third cost function DETAILS_COST and this will trigger a change in transcoding level.  
      More specifically, as shown in the diagram of  FIG. 5 , where the Quantization Parameter Q is plotted against the bit-rate R, line T 1  indicates adaptation to different values of bit-rate R by increasing (decreasing) the Quantization Parameter Q and maintaining the full frame rate and full frame size. Line T 1  is represented as a straight line for simplicity&#39;s sake, but this does not imply necessarily a linear relationship between Quantization Parameter Q and bit-rate R.  
      As the Quantization Parameter Q reaches a value indicated by the horizontal line HL, where the second cost function MOTION_COST becomes smaller than the first cost function QUANTIZATION_COST, the proposed method provides for applying frame rate reduction. Line T 2  indicates the corresponding reduced frame rate, full frame size quantization trend, showing that, in changing from line T 1  to line T 2 , the value of the Quantization Parameter Q necessary for maintaining the same bit rate R drops, since the frame rate is now reduced and thus, as a consequence, the first cost function QUANTIZATION_COST drops. Such a new value assumed by the first cost function QUANTIZATION_COST, is registered as a “switch off” point SO for frame rate reduction.  
      In the case that the output bit-rate can be increased again because of improved bandwidth conditions on the network, the frame rate reduction will be then switched off only when the first cost function QUANTIZATION_COST will be lower or equal than such a value of “switch off” point SO. This conditions applies, if also frame size reduction, that will be now discussed, is already disabled, if it was switched on when the frame size reduction, better illustrated in the following, was on  
      After passing from the transcoding level indicated from line T 1  to the transcoding level indicated from line T 2 , to reduce further the bit rate, the proposed method provides again for increasing the quantization, thus the Quantization Parameter Q and the first cost function QUANTIZATION_COST increase again.  
      During such an increment, the first cost function QUANTIZATION_COST will surmount also the third cost function DETAILS_COST value. In this case the proposed method provides for reducing frame size as well. The reduced frame size transcoding level is represented by line T 3 , while line T 4  represents a reduced frame rate reduced frame size transcoding level.  
      Once again, after such an action is taken, the first function QUANTIZATION_COST drops, and the proposed method provides for recording this new value as a second switch off point SO 2  to switch the frame size sub sampling off. In this case, third function DETAILS_COST and second function MOTION_COST costs are not compared any more, but attention will be paid only to monitor when the first cost function QUANTIZATION_OST will go below the second switch off point SO 2 .  
      The reduction schemes above illustrated can be recursive, e.g., when a resolution reduction to one fourth is already enabled and the first cost function QUANTIZATION_COST gets higher than the function DETAIL_COST, then a one sixteenth frame size reduction is enabled, and so on.  
      In other possible embodiments, simplified sub cases can envisage for choosing fixed quantization thresholds to switch on and off the sub-sampling, and only the values of the second cost function MOTION_COST and the third function DETAIL_COST are used to select which sub sampling to enable first.  
      The proposed method can additionally envisage letting the “switch off” point SO of the frame rate and the “switch off” point SO 2  of size down-sampling not fixed, but instead variable, because the sequence content can vary over time, e.g., a complex scene can follow a simple one. In this case, an update of the switch off points SO and SO 2  will improve visual quality. The relative position of lines T 2  and T 3 , as indicated by the arrows in  FIG. 5 , thus can change with respect to the stream content.  
      Such an update can easily be obtained by linear combinations of the “fixed” value of the switch off point SO and the variations of the functions MOTION_COST and DETAILS_COST with regards to their value when the quality switch off point was taken. An expression for the quality switch off point QUALITY_COST switch_off_point SO can be: 
 
Current_QUALITY_COST_switch_off_point  SO= 
 
 M 1 *recorded_QUALITY_COST_switch_off_point+ M   2 *(current_VECTOR_COST−recorded_VECTOR_COST)+ M   3 *(current_DETAILS_COST−recorded_DETAILS_COST) 
 
      The quantities with the prefix ‘recorded_’ are the ones sampled when the switch on took place, while the quantities with the prefix ‘current_’ are the latest computed values. M 1 , M 2 , M 3  indicate integer constant values.  
      It must be noted that the proposed method operates without any difference both when the bit-rate must be reduced and when must be increased, adjusting the bit-rate along the lines and the thresholds indicated in  FIG. 5 . Therefore, it is not necessary to provide another method to increase the bandwidth.  
      A communication network  700  according to one embodiment of the invention is shown in  FIG. 6 . The network  700  includes a communication link  702  exposed to variable operating conditions; and a control system  704  for controlling delivery of a coded information stream to a user via the communication link  702 . The control system  700  includes a controller module  706  configured for monitoring operating conditions of the link  702  by evaluating a set of cost functions related to the available output bit rate and the complexity of the information stream. The control system  700  also includes a transcoder  708  configured for selectively transcoding the coded information stream by selectively varying a transcoding parameter as a function of said operating conditions monitored. The transcoder  708  is also configured for selectively varying the transcoding parameter by selecting among a plurality of transcoding levels associated with different values of quantization, resolution, and frame rate.  
      The controller module  706  includes a quantization cost analyzer  710  that computes the QUANTIZATION_COST, a motion cost analyzer  712  that computes the MOTION_COST, and a details cost analyzer  714  that computes the DETAILS_COST. The control module  706  also includes a comparator  716  that compares the QUANTIZATION_COST, MOTION_COST, and DETAILS_COST and provides the result of the comparison to a transcoder level modifier  718 . The transcoder level modifier  718  uses the result of the comparison to modify the transcoder level as described above. It will be appreciated that although the controller module  706  and transcoder  708  are shown schematically in  FIG. 6  as separate modules, such modules can be incorporated in a single device.  
      The proposed method and circuit can be hardware implemented at least partially through an ASIC, e.g., by a suitable mixing of hardware and software on a embedded processor.  
      Consequently, without prejudice to the underlying principles of the invention, the details and the embodiments may vary, also appreciably, with reference to what has been described by way of example only, without departing from the scope of the invention as defined by the annexed claims.  
      All of the above U.S. patents, U.S. patent application publications, U.S. patent applications, foreign patents, foreign patent applications and non-patent publications referred to in this specification and/or listed in the Application Data Sheet are incorporated herein by reference, in their entirety.