MXPA96005759A - Method to distribute dynamically communications channel bandwidth complete entreaplications - Google Patents

Method to distribute dynamically communications channel bandwidth complete entreaplications

Info

Publication number
MXPA96005759A
MXPA96005759A MXPA/A/1996/005759A MX9605759A MXPA96005759A MX PA96005759 A MXPA96005759 A MX PA96005759A MX 9605759 A MX9605759 A MX 9605759A MX PA96005759 A MXPA96005759 A MX PA96005759A
Authority
MX
Mexico
Prior art keywords
regime
data
variable
frame
data stream
Prior art date
Application number
MXPA/A/1996/005759A
Other languages
Spanish (es)
Other versions
MX9605759A (en
Inventor
Padmanabha Rao R
Original Assignee
Compression Labs Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/246,442 external-priority patent/US5506844A/en
Application filed by Compression Labs Inc filed Critical Compression Labs Inc
Publication of MX9605759A publication Critical patent/MX9605759A/en
Publication of MXPA96005759A publication Critical patent/MXPA96005759A/en

Links

Abstract

The present invention relates to a method of statistical multiplexing for a plurality of data streams competing for access to a communication channel, characterized in that it comprises the steps of: a) populating a statistical frame in a memory of a statistical multiplexer where said statistical frame has an entry for each unit of data that can be sent on said communication channel in a predetermined period wherein said statistical frame population step further comprises: i) distributing an entry in said static frame to one of said plurality of data streams, ii) store a predetermined code in said input if said input is distributed to a data stream having a variable rate, iii) store an indicator in said input if said input is distributed to the data stream that has a fixed regime where said indicator identifies the steady-state data stream, and iv) re to request steps i) to iii) for each entry in said static frame, and b) to use each frame input in said static frame in the selection of data stream in said plurality of data streams that the next unit of data sends to the channel of communication

Description

METHOD PRRR DISTRIBUTE DYNAMICALLY BAND WIDTH OF COMMUNICATION CHANNELS BETWEEN COMPETENT APPLICATIONS CRMPO DE LR INVENCIÓN This invention generally relates to selection data for transmission in a communication channel and very particularly to a multiplexer that distributes the bandwidth of a communication channel to a plurality of data streams to maintain the quality of the data transmitted within a communication channel. selected scale, or alternatively to maximize the quality through the data streams.
BACKGROUND OF THE INVENTION Video data typically includes luminance and chromatic data for each pixel in a frame. Digital video data contains too much information for transmission in a normal communication medium and requires considerable storage capacity. Consequently, to use either the limited bandwidth of the communication medium, or storage capacity efficiently, coding techniques are commonly used to compress the information contained in the empirical video data. For example, in Figure 1, a video camera 101 -.- generates an analog video signal that drives the input processor 102. The input processor 102 digitalizes and typically filters the analog video signal to produce a video serial empirical digital The empirical digital video signal is encoded, that is, compressed by the encoder 103. The compressed digital video signal is transmitted in a communication channel, eg, a satellite link, to a "decoding 120" system that includes a decoder 121, a post processor 122, and a deployment driver 123. The decoder 121 decompresses the encoded video data and supplies the resulting signal to the postprocessor «or 122, which in turn softens and increases the video signal . The video signal from the post-processor 122 supplies the deployment driver 123 which drives the display unit 130. The coding, ie compression, of the video signals for storage or subsequent transmission and decoding is well known. Typically, multiple applications are sharing access to a communication channel rather than just a single application, i.e., the video camera 101 as illustrated in Figure 1. For example, in Figure 2, the applications of "LH 201- 1 to 201-L are compressed using encoders 202-1 to 202-L, respectively, Applications 201-1 to 201-L can be formed from a variety of signal sources, eg, video, audio, etc.
Each application 201-1 to 202-L drives an encoder 202-1 to 202-L, respectively. Typically, for a video input signal a compression loop 204-1, inside the encoder 202-1, for example, perform prediction and quantization with the main operations. Since each frame of a video signal is compiled by means of a compression loop 204-1, the compressed data bits are written to a buffer 205-1. An "or" control (not shown) handles control of the compression rate to prevent the buffer 205-1 from being oversaturated or insufficient. The "Je video" encoder rate control ensures that the encoder 201-1 produces coded data bits at an approximately constant rate over a certain time interval from the buffer 205-1 while the frame quality of the data is maximized. the video sequence. Applications 201-1 to 201-L are either fixed-rate or variable-regime applications. A fixed rate application 201-i releases bits to a channel 230 at a constant rate. A variable rate application 201-i releases bits to a channel 230 over a non-constant rate, i.e., the rate may change over time. The output outputs of the encoders 202-1 to 202-L are each an input data stream to the multiplexer 210. The The data stream that passes through the multiplexer 210 is determined by a controller circuit "je rnultiplexor -. 211 receiving input signals from a system controller 250. the system controller 250 is typically a computer that is programmed to pass signals to a multiplexer control circuit 211 so that the encoded data is passed through the multiplexer 210 in a way that is independent of the content of the transmitted signal or the quality of the resulting image. The transfer of information from the encoders 202-1 to 202-L to the multiplexer 210 and subsequently to the communication channel is generally done in information packets. The multiplexer 210 passes through the communication channel 220 a packet of "jacks at a time from one of the applications 201-1 to 201-L. The number of packets transferred from a 201-i application to the communication channel 220 on average over a certain time interval, that is, a second, is equal to the regime distributed to that particular application. Note that it is not necessary for the transfer of information to be based on packages.
BRIEF DESCRIPTION OF THE INVENTION In accordance with the principles of this invention, a statistic multiplexer dynamically distributes the total communication channel capacity between a plurality of data streams that share the access to the communication channel. At the same time, the eetaditic multiplexer ensures that the communication channel capacity is not exceeded. In other words, the statistical multiplier of this invention determines what fraction of the communication channel capacity must be distributed for any time interval to a particular data stream, i.e., an application, to maximize the quality of the signals. of all the applications transmitted on the communication channel. In addition, the statistical multiplexer changes the fraction of the capacity of the distributed communication channel to the various data streams in real time to maximize the quality of the signals for all data streams that are transmitted on the communication channel. The statistical multiplexer operates as an external shell on the hardware regime control mechanism that provides each of the data streams to the statistical multiplexer. The statistical multiplexer generates and provides, at least once during each period of the statistical multiplexer, new regimes for those control mechanisms so that they maintain a selected parameter for each application within a predetermined scale. In one embodiment, the statistical multiplexer implements a statistical multiplexing method for a plurality of data streams competing for access to a communication channel that creates and populates a static frame in a memory of the statistical multiplexer. The static box • - has an entry for each unit of data that can be sent over the communication channel in a predetermined period. In the population of the eetático picture, some vecee denominated primary picture, the statistical multiplexer distributes each entrance of the static picture of a plurality of corrientee de datoe. If an input is given to a data stream having a variable rate, the statistical multiplexer stores a predetermined code, such as a null code, in the input. Conversely, if the input is distributed to a data stream that has a fixed rate, the statistical multiplexer stores an indicator to the fixed rate data stream in the input. The indicator identifies the fixed rate data stream and, in one mode, is an address for the hardware that generates the fixed rate data stream. Each entry in the static box is either an indicator for a fixed rate data stream or the default code. The statistical multiplexer uses the static frame to distribute the communication channel capacity between the plurality of data streams competing for access to the communication channel. Specifically, the statistical multiplexer has access to an input in the static frame to determine the data stream in the plurality of data streams that the next data unit sends to the communication channel during the predetermined period.
In addition, from the static table, the statistical multiplier also generates a dynamic picture in people, sometimes called secondary table. By populating the dynamic table, the statistical multiplexer distributes each entry in the dynamic table, in this modality, to one of a variable data stream and a minimum data unit. Later, the minimum data units could be considered as another stream of «Jatos of variable regime, which transmits minimum data on the communication channel. If an input is distributed to a variable rate data stream, the statistical multiplexer stores an indicator to the variable rate data stream at the input. The indicator identifies the data stream of variable regime and in a modality, ee an address for the hardware that generates a variable rate data stream. Each entry in the dynamic box is an indicator for either a variable rate data stream or a minimum data unit. In the determination of the application that can access the communication channel to transmit the next unit of data, the statistical multiplexer accesses an entry in the dynamic frame by detecting an entry in the static frame containing the predetermined code. The acceed input determines the variable rate data stream in the plurality of data streams that send the next data unit to the communication channel. Although the static multiplexer is using the static and dynamic frames to distribute the width of the communication channel to the data stream that competes for access to the communication channel, the statistical multiplexer is also adjusting a number. of data units, v. gr., a number of packets, distributed for transmission on the communication channel for each of the variable rate data streams having a calibration measurement parameter outside a predetermined scale. Statistically, the statistical multiplexer is generating new regimes for variable-rate data streams that are selected and the eetaditic multiplexer generates a second dynamic frame that uses the adjusted number of distributed data points for transmission over the communication channel. מ to generate the second dynamic table is the same as the one used for the first table d unsound, except that they are used in new regimes where necessary. Specifically, the statistical multiplexer distributes each input in the second dynamic frame, in this mode, of a data stream of variable rate and a minimum data unit. If an input is distributed to a variable rate data stream, the statistical multiplexer stores an indicator to the variable rate data stream at the input. Each input in the second dynamic frame is an indicator for either a variable rate data stream or a minimum data unit. After a selected time interval, v. gr. , in this mode, at approximately the end of a statistical multiplexer cycle, the statistical multiplexer changes from the first dynamic frame to the second dynamic frame. To determine how to adjust the regimes used to populate the dynamic frame, the statistical multiplexer collects data for each variable rate data stream that characterizes a variable rate data stream quality. The statistical multiplexer uses the collected data to generate a parameter that characterizes the quality of the variable rate data stream. In one embodiment, the parameter ee is a measurement of distribution and the predefined level has a lower limit that is a product of a first coefficient of hietéreeis and a minimum value of distortion. The statistical multiplexing method of this invention is applicable to a wide variety of data streams. In this mode, the plurality of data streams include a stream of video data encoded by "Jos. In another embodiment of this invention, an etetadithic multiplexing method for a plurality of encoded data streams competing for excess to a communication channel includes the steps of: assigning a rate to each encoder that it generates from a plurality of encoded data streams. where the encoders include fixed and variable rate encoders; populate a primary frame that has a predetermined number of entries using the assigned regimes. wherein each input in the primary frame has been distributed to one of i a plurality of encoded data stream and ii a minimum unit packet; and uear each table entry in the primary frame to select a coded data stream in the plurality of coded data streams that send the next packet to the communication channel. In another embodiment of this invention, a statistical multiplexing method for a plurality of modified data streams competing for access to a communication channel includes the steps of: collecting data for each variable rate encoded data stream of a rate coder variable in said plurality of coded data streams to generate a parameter of deactivation characterizing said coded data stream of variable rate; generating for each stream of variable rate coded data for said parameter of distortion characterizing a quality of said coded data stream of variable rate; adjusting a number of distributed packets to each of said streams of variable rate encoded data in a selected period if said parameter of distortion is outside a predetermined scale; populating a table using said adjusted number of distributed packets wherein said population step further comprises: i) distributing an entry in said table to one of A) a stream of "variable rate encoded jacks in a plurality of encoded streams" variable rate ee include in said plurality of coded data streams and B) a minimum unit packet. ii) storing in said input an indicator for said coded variable rate data stream; and iii) repeating steps i) to ii) for each entry and said table; switch to said table so that the frame is used by means of a statistical multiplexer to determine the rate encoded data stream that sends the next packet to a communication channel.
BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a block diagram of the prior art that encodes the decoding seventh. Figure 2 is a block diagram of a prior art system using a multiplexer to access a communication channel. Figure 3 is a block diagram of the statistical multiplexer of this invention.
Figure 4 is a processing flow diagram for rate update operations of the statistical multiplier of this invention within each statistical multiplexer period. Fig. 5 is a processing flow diagram for classifying applications within step 402 of Fig. 4 in accordance with the principles of this invention. Figure 6 is a more detailed flow diagram of the step modifier regimes 403 of Figure 4 according to the principles of this invention. Figure 7 is a flowchart of more detailed processing for increasing the rate steps 623 within step 403 of this invention. Figure 8 is a more detailed processing flow diagram for reducing the rate step 522 within step 403 of this invention. Figure 9 is a more detailed flow-through diagram for constructing the step "box" of the 404 package of this invention. 10 is a timeline for a method of the method of FIG. 4. FIG. 11 is a timeline for another embodiment of the method of FIG. 4. FIG. 12 is a detailed block diagram of the hardware in FIG. statistical multiplexer of this invention. Figure 13 is a timing diagram - * - showing the two time slots on the application bar within the packet time interval thus or the various message cycles within the first time interval. Figure 14 is a timing diagram for the operation of the statistical multiplexer showing the relationship "j time for data transfer on the application bar during the second portion of the packet time interval. Figure 15 is a timing diagram showing the various relationships of the signals on the application bar when the data is pressed on the application bar. Figure 16 is a timing diagram showing the relationship between the various signals on the application bar when a byte is written during a message cycle. Figure 1? is a timing diagram that shows the relationship between the various signals on the application bar when a byte is read during a message cycle. Figure 18 is a flow chart of the procedure showing how the statistical multiplexer distributes each packet within a window to either a fixed rate application or a variable rate application.
DETAILED DESCRIPTION OF THE INVENTION In accordance with the principles of this invention, a statistical multiplexer 300 selectively passes encoded data packets from the encoders 302-1 through 302-L to the communication channel 330 to maximize the quality of the encoded data representing each of the encoders. applications 301-1 to 301-L. The data encoded in the form of packets, in this mode, are transmitted on the communication channel 330 to a decoding system (not shown) which in turn decodes the data. In addition, although data is used as an example of the principles of this invention, those skilled in the art will recognize that the principles of the invention can also be applied to other signal sources that are traneed over a communication channel. . In the present, an application 301-i is encoded by the encoder 302-i, in < jon «je" i "varies from 1 to L. A reference to application 301-i should be interpreted as including a reference to encoder 302-i that it receives as an input signal application 301-i. Also, when the phrase "variable rate" is used to modify an application, an encoder or an encoded data stream, it means that the encoder, which receives the application as an input and generates a coded data stream, can change the data compression rate. over time. On the contrary, when the fixed speed is used to modify an application, an encoder or a stream of coded data, it means that the encoder that receives the application as input and generates a stream of encoded data does not change the rate of encoding. Data compression except at the time of configuration. The statistical multiplier 300 of this invention distributes the total communication channel capacity 330 over a certain time interval between the plurality of purified data streams to all applications 301-1 to 301-L so that the quality of the applications 301- 1 to 301-L is maximized. At the same time, the statistical multiplexer 300 ensures that the capacity of the communication channel is not exceeded. In another word, the statistical multiplexer 300 of this invention determines which fraction of the communication channel capacity must be distributed to an application 301-i to maximize the quality of the encoded signals of all applications. Specifically, a frame is stored in the memory 313 of the controller 310. The frame has an input for each unit of encoded data that can be transmitted on the communication channel 330 in a predetermined time interval, eg, one second. . Each input in the frame is distributed, as explained below, more complete, to one of the encoders 4302-1 to 302-L, that is, to a coded data stream of the encoder 302-i. The inputs are distributed for a 302-i encoder that has a high coding rate that for a code "or 302" has a slower encoding rate. Therefore, the entries in the table define the number of data units that are transmitted on the communication channel 330 in the predetermined time interval for each of the encoders 302-1 to 302-L. At each predetermined time interval, the controller 310 accesses each entry in the frame to obtain an indicator eg, an address, to an encoder 302-i that can transmit the next coded data unit to the input memory first output first (FIFO) 350 on the application control bar 360. As one coded data unit is loaded to FIFO 350, another coded data unit is passed from FIFO 350 to communication channel 330. The controller 310 , in this mode, it moves sequentially through the entries in the frame stored in the memory 313 and thus distributes the bandwidth of the communication channel 330 to encoders 302-1 to 302-L in a predetermined sequence on the predetermined time interval. In accordance with the principles of this invention, the statistical multiplexer 300 dynamically adjusts the data compression rate for each variable rate application 301-i over a selected range of time that is referred to as a window, so that the quality of the coded data streams is maximized in the time interval selected. Each fixed-rate application 301-i- ~ receives a distributed amount of packets, that is, a fraction of the communication channel bandwidth over the selected time interval. Typically, the number of variable rate applications is less than the total number of L applications. The statistical multiplexer 300 adjusts the data compression rate, sometimes referred to simply as "regime" to maintain a mecid of >; distortion, COHI? will be more fully completed later, for each variable rate application 301-i below a predetermined limit. Therefore, the stereo multiplexer 300 operates as an external shell on the video encoder rate control mechanism providing regime to the control mechanism to maintain a selected parameter for each variable rate application 301-i within a predetermined regime. Although controller 310 is passing through the frame stored in memory 313 to select packets, eg, coded data units, from encoder 302-1 of 302-L for transmission over communication channel 330, the controller 310 is also collecting and storing data in the memory 313 of each variable rate encoder 302-i. Controller 310 analyzes the collected data and adjusts the compression rate for each variable rate encoder 302-i to maximize quality for all encoders.
The new compression regime is used to build a new frame that is used in the next window. A window is more fully defined later. In this way, the controller 310 is selecting packets of encoders 302-1 through 302-L for transmission to the communication channel 330 and is generating a new frame of compression rates thereto. When the new frame is complete, new compression regimes are transmitted to 302-i encoders that are processing variable-rate applications. Approximately at the end of the window, the encoders 302-i that are processing variable rate applications change to the new compression rates and after the statistical multiplexer 300 changes to the new frame. Specifically, the statistical multiplexer 300 changes to the new frame. In a modality that is described below, the frame used by multiplexer 300 to distribute each unit of data that can be transmitted in a communication channel 330 in the window is in fact two frames, an eetático frame and a dynamic frame. The electronic frame has an input for each unit of encoded data that can be transmitted on the communication channel 330 in the predetermined time interval. In the time of configuration, the eetático picture is populated. Specifically, the entries in the static table are distributed to fixed-rate applications and "je < • '' - > variable regime, that is, each input is distributed to one of a plurality of data streams. For each input that is distributed to a fixed-rate data stream from a fixed-rate encoder, an indicator is stored at the input to the fixed-data data stream. For each input that is distributed to a stream of "jacks", variable rate, a predetermined code, eg, a null code is stored in the input. The dynamic table is populated with indicators for * - and variable rate applications. Specifically, each input in the dynamic frame is distributed to one of the variable rate applications, that is, to a coded data stream of variable rate from a variable rate application, or to a package of minimum units. In each entry that is distributed to a variable rate application, an indicator is stored for that variable rate application. When the statistical multiplexer 300 accesses the predetermined code in the static frame, the next input in the dynamic frame is used to determine the variable rate encoder that sends the next data unit to the communication channel 330. FIG. 4 is a block diagram. processing flow for the statistical multiplexer 300. At start-up, it is "in the initial configuration and in the reconfiguration, the statistical multiplexer 300 enters the initialization step 401. In the initialization step 401, the supervisor of the system 340 (figure 3) provides configuration information for use in a subsequent operation of statistical multiplier 300. Configuration information is stored in memory 313. As explained more fully below, in this embodiment, the stored configuration information includes a minimum data regime Rmin-i, maximum data rate max-i and a data regime ga "R" or Rgtd-i, a memory-size buffer Btrrarx-i, a maximum distortion coefficient Dmax-i, a priority number P-i, and distortion hysteresis coefficients Kl-i for each encoder 302-i. The schemes provided by the supervisor of the system 340 are converted, if necessary, to units which are compatible with the statistical multiplexer 300. In step 401, all the encoders 302-1 to 302-L are assigned to nominal nominal systems. . In the case of fixed regime applications, the nominal regime is the real regime. In the case of applications statistically submitted to and "-. Multiplexer, that is, applications of variable regime, the nominal regime is either the guaranteed regime or some other predefined value, such as the minimum regime. In this embodiment, each variable rate encoder 301-i is assigned a guaranteed data rate Rgtd_i as the initial R_i for application. Similarly, a distortion D_i for each variable rate encoder 302-i is set to a maximum distortion coefficient Dmax_i. Upon completion of the initialisation step 401, the processing transfers to the step "collection and classification 402. The collection and classification step 402 is also introduced at the end of each statistic multiplexer period, some time called a statistical multiplexer cycle. The data required to determine an updated distortion D_i for each variable rate application 301-i is compiled in step 402. As is explained more fully below, the distortion D_i implies a parameter number that characterizes the video sequence which is being processed by the variable regime encoder 302. i. The distortion D_i itself can be provided to a statistic multiplexer 300 by the variable rate encoder 302-io or the variable rate encoder 302-i can provide parametere to the statistical multiplexer 300 so that the statistical multiplexer 300 can determine the distortion D_i for each encoder of variable regime 302-i. In one embodiment, as more fully described below, the statistical multiplexer 300 registers each variable rate encoder 302-i in a circular fashion in a predefined sequence and reads one byte of information at a time from each encoder «je regime variable 302-i. The die-out D_i is determined once for each table in the sequence by an ethereal multiplexer 300. In this way, the frequency of traneference of the distortion parameters from a variable rate encoder 302-i to the statistical multiplexer 300 is once per second. >- "table" Consequently, the collection portion of step 402 is performed by the statistical multiplexer 300 on an on-the-fly basis The statistical multiplexer 300 tracks the variation in the entire buffer of each variable rate encoder 302-i to ensure that there is no superflow or insufficient flow when the regime is altered in step 402. The irvo iT? aeion of memory-buffer totality is available in each variable rate encoder 302-i and is passed, once per table, to the statistical multiplexer 300. The data set D_i is determined by the ethereal multiplexer 300 for each variable rate application 301-i in step 402 based on distortion parameters that were obtained from the variable rate encoder 302-i before the start of the program. step 402. Specifically, any information on new dietorium received in the collection and classification step 402 while the country or 402 is active, it is not effective until the next time step 402 becomes active. Therefore, the stereo multiplexer 300 uses data collected during the previous stage multiplexing cycle in step 402. The step classification in assignment 402 assigns each variable rate application 301-i to one of a plurality of clauses. In one embodiment, the plurality of class includes six classes. As explained more fully below, classes are defined based on i if the regime R_i is less than or less than or equal to, the guaranteed rate Rgt «j_i for the variable rate encoder 302-i; and (ii) and the distortion ratio D_i to the maximum distortion coefficient Drxx_i. By modifying the regime step 403, a new regime at least for each non-fixed rate application is generated, as explained more fully below, for each encoder 302-i where a change in the scheme preferably improves the distortion D_i or does not increase the distortion D_i to more than one maximum deactivation. For encoders with variable rate applications that are being compressed to achieve acceptable distortion D_i, the new regime is simply equal to the old regime. After a new regime is determined for each encoder, the variable regime 302-i, the new regimes are checked to determine whether the total regime exceeds the channel capacity of the communication 330. The new regimes are adjusted to use as much of the communication channel capacity 330 as possible, without exceeding its capacity. Upon completion of the modification regimen step 403, the link box 404 constructs a new frame, as explained more fully below. In one embodiment, a coded data unit sent over communication channel 330 is referred to as a packet and the box thus constructed 404 constructs a new packet mail box. In the statistical multiplexer 300, the regime requirements of different applications and 301-i change rapidly "* - with the time, and consequently the number of packages distributed to an application changes with time. each application 301- i obtains its distributed amount to getes over a specified time window in the formed table screen 404. The package program chart, constructed in step 404, is defined by the following statistical muitiplexer cycle, i.e. , a window, and contains information about which application is distributed to each packet in that time interval The distribution of packets is such that the packets belonging to any application are approximately evenly distributed over the time interval. at least any additional buffer in a demultiplexer in the decoding system. (The desrnultiplexer selecci ona the packets in the stream of input data that are of interest for the decoder system). The package program box, based on the new regimes distributed to each variable rate encoder 302-1 in step 403, goes into effect at the beginning of the next window. The smaller the window, the greater the processing per packet since the package program box has to be built more recently. On the other hand, a large window size reduces the reaction of the statistical multiplexer 300 to changes in the distortion v. gr. , a change of scene can make a video sequence become more complex. In such a case, if the regime R_? is ba, the scene change results in the distortion D_? becomes larger and the statistical multiplier 300 distributes more bits to the 302-1 encoder. However, if the size of the window is large, the statistical multiplexer 300 does not react in a timely manner to the scene change unless the scene change occurs by chance near the end of the window. As used herein, a frame refers to a characteristic unit of the encoder. For most of the cases, a frame is a frame, but since this invention is not limited to acting only on frames, the general term "frame" is the one that is used. In the case of non-video data, some other appropriate unit may be used, v. gr. , an audio frame. When the new packet program frame is constructed in step 404, the statistical multiplexer 300 communicates each new scheme to the respective variable rate encoder 302-1 in the step of regimes 405. Again, a predefined order can be used for that purpose . Finally, at some point in the passage of 406 shift regimes, the variable rate coders 302-1 change their control of the internal regime to new regimes. At that time, the statistical multiplier 300 changes to the new packet program frame formed in step 404. Therefore, in the synchronization between the statistical ultiplexer 300 and applications 301-1 to 301-L it is maintained to ensure that the - "sum of all the coding regimes, the total regime, is always equal to the communication channel capacity." Fst-o maximizes the efficiency of the use of communication channel and also eliminates the possibility of distributing- capacitance to the encoders that the communication channel 330 can support.Since the changeover step 406 is completed the processing is transferred to the complete step of period 407. When the period is complete, steps 402-407 are repeated In this way, operations in the steps 402-407 occur once every period.
INITIALIZATION STEP 401 In a 401-characterization step mode, the supervisor of system 340 specifies the total number of applications of rate fi and the total number of applications of variable rate r processed by the statistical multiplexer. 300. The system monitor 340 also specifies the parameters needed to characterize a primary packet programming frame, sometimes called a primary frame, used by the statistical multiplexer 300.
The primary packet schedule table parameters include an N number of packets that are provided by the statistical multiplier 300 for the communication channel 330 in about one second, i.e., a size of the primary packet programming box, and a number of entries in, * _ the primary programming box that must be distributed to variable-rate applications. In step 401, the supervisor of the system 340 establishes a parameter, called the distortion threshold Dmax-i, which is sometimes referred to as the target distortion for each variable rate application 30l- ?. In this mode, Drnax-i, is a distortion of the fact that the distortion on the distortion threshold Dmax-i was considered noteworthy to the human. The distortion threshold Drnax- is non-negative and in one mode, it is a negative real number with two precision bits. The system supervisor 340 also establishes rate limits, typically in bits / second, for each application 30J-1 to 301-L in the 401 micialization step. For variable rate applications, the regime limits are defined by a regime of minimum data Rmin-, a maximum data regime Rrnax-, and a regime of guaranteed data Rgtd- v í. For fixed-regime applications, the three speed limits are set to the same value by the system supervisor 340. The minimum Rmi-i regime is a lower limit in the speed regime for a variable regime application 301 - 1 for the multi p lexor sta ti st 300. In other words, this regime is ensured and respective "The quality of construction of that application. The minimum Rrpin-i regime can not be negative. twenty The Rinmax-i scheme is a higher limit - in the regime distributed to a variable rate application) ül-? by the statistical multiplier. This regime can not exceed the quality of reconstruction of that application, in the present, The quality of reconstruction is measured by a distortion factor D-1, as explained more fully below. The maximum regime Rrnax-i is equal to or greater than the regime m imo1 Rrmn-L. The guaranteed Rgtd-i regime is a regime that is guaranteed by the statistical multiplier 300 to a variable rate application 301-1 to allow that application to achieve its target distortion. This parameter may or may not be used by a particular application as determined by the system monitor 340. If the guaranteed rate Rgtd-i is to be ignored, the distortion threshold D ax- is set equal to zero at set time. By contrast, the guaranteed Rgtd-i regime must be within the L ~ Rrnm--? ?maxi]. Independent of the fact that if the guaranteed regime Rgtd-i is used, at the beginning, each variable regime application is initially assigned its guaranteed regime Rgtd-i. "Jernas, the sum of all regimes guaranteed Rgtd-i for applications" variable regime, and real regimes "All fixed-regime applications, which are represented in this by Rrnin-i, must equal the capacity" je channel, that is-, S Rgtd-i +? Rrnm- - channel capacity € A € B where "fl" is the series of all applications 301-1 that have a guaranteed Rgtd-i regime and "13" is the series and the other applications. Not all applications connected to multiplexer 300 statistically need to be multiplexed, that is, some or all of the applications may have regimes f? a «for the full duration« He operation. In this mode, it is the responsibility of the system to ensure that the previous relationship is satisfied. The regimes specified by the system monitor 340 are usually specified in terms of bits / second. In reality, most systems transfer bits of the encoder controller in the form of "packets", where one packet contains several bits. In other words, the rate quantity is not at the bit level, but at the multi-bit level. In a system as such, the communication channel capacity is translated to a specific number of packets / second. These packets must be distributed to encoders 302-1 through 302-L so that the encoder speed requirement is satisfied. Accordingly, the regimes in bits / second are converted in the initialization step 40J to the appropriate packets per time interval. Specifically, each regime is converted to a rate in packets per second. Because N is the number of, t entered into the primar box, each rate is converted to the number of packets in the primary packet programming box "packets per PT" that corresponds to the rate in bits per second. As explained above, the statistical multiplexer 300 also uses a sub-frame that has a fine number of inputs S. For each variable-rate application, the scheme is also converted to the number of packets in the programming table of secondary packets (packets per ST.) If S is 19 ?, the regime in packet / .í. is R (? Aquetee / s.T.) = Int (R (package / P.T.) X (192 / V)) in don «Je" int "is the entire function. Because the sum of the assigned regimes, which in this modality are ^ Guaranteed regimes, must equal the total communication channel capacity distributed to the variable rate encoders 302-1, the sum of the regimes allocated in the packets / ST is equal to 192. The truncation introduced by the entire function may cause the sum in the regimes assigned to be less than the total communication channel capacity distributed to variable rate coders 302-i. In this case, any unallocated packet is arbitrarily assigned to variable rate encoders by the statistical inultiplexer 300. eleven After the translation of the regimes into packages / S.T. , the statistical multiplexer 300 recalculates the regimes in terms of bits / second and the resulting guaranteed scheme Rgdt-i is passed to an encoder 302-1. This recalculation is needed by the truncation introduced by the integer function. To facilitate recalculation, the system supervisor 340 provides the statistical multiplier 300 in a steady state Y-gauge, which is defined as: Y = CX (I-TQLM) x (P-QV) XV Nxl92x (l + TOLv) X 400xP where: OV is the number of general load bits in each packet, which in this mode is 24 bits; C is the output rate of the nominal total statistical multiplexer (in bits / seconds); TOLM is the clock tolerance of the statistical multiplexer (expressed as a fraction), P is the channel packet size in bits (1040 in one mode) • V is the total number of inputs in the primary frame assigned to variable rate applications; N is the total number of entries in the primary table; and TOLv is the tolerance of the data regime at the input to the encoder.
The steady state calibration Y is provided for each encoder 30? -1 a, 302-L at confi uration time. A R rate in bits / second corresponding to 0 packets / S.T. is given by: R = 400 x int (0 x Y) where "int" is the entire function; 0 is the number of packages / S.T. assigned to an application; and the constant "400" is required by the MPEG compression model that counts regimes in multiples of 400 bits / second. In other applications, where a finer resolution in the regimes is allowed, the prior relationship is easily modified by those skilled in the art. The system supervisor 340 in the micisation step 401 assigns a number and priority P_? for each variable rate encoder 302-1, to indicate its importance. The greater the importance of a variable rate encoder 302-1, the higher the priority number P_? for that encoder. The number «je priority P_? It is used to weigh the distortion of each variable speed encoder 302-1, as it is explained completely beforehand. Therefore, a number «Je priority big P_? artificially scaling the distortion, which results in a '- variable rate encoder 102-1' which demands more bits of the communication channel 330. EJ priority number P_? ee is a non-negative one and, in one modality, is an integer within the scale of Cl, 16]. In one embodiment, the statistical multiplexer 300 normalizes the priority number P_? of each variable rate encoder 302-1 when dividing the priority number P_? by the average of all priority numbers. The resulting normalized priority number, which is also indicated by P_ ?, is the one indexed by the statistical multiplier 300 in the memory 313 and is used in the operations described below. Associated with each application of variable regime 301-1 are two hysteresis coefficients Kl_? and K2__ ?, which are used to introduce hysteresis in the procedure of determining regimes for each time interval fi o. In this mode, the fault values for the, coefficients of hysteresis Kl_? and K2_? They are 0.9 and 1.1, respectively. For each variable rate encoder 302-1, the system supervisor 340 also "Jefine the maximum controller size Bmax_? for the code "jor 302-1. The statistical ultiplexer 300 uses the maximum controller size Bmax_? and maximum regime Rmax_? for each encoder «Je variable regime 302-? to determine the end-to-end system delay time d_? , that is, the time in seconds from the moment a frame enters an encoder system until the moment it is finally represented by the decoder system. As will be appreciated by those skilled in the art, the end-to-end delay of the system is actually the system's payback time d_? other time delays introduced by frame regulation etc. However, for the statistical mul + iplexer 330, the information relevant to a variable rate coder 302-? Is it captured by defining the delay time of the ex-paddle to ex paddle system d_? as: d? = Bmax í / Rrnax i The delay time of the system d_ ?, in this mode, can not be changed without the loss of the encoder-decoder image synchronization until the next time of reconfiguration. The statistical multiplier 300 ensures that the delay time of the system d_? for each apr ication 301-1 it is not altered and at the same time there is no overflow of the regulator or subflow in the encoder and decoder systems. In another mode, the delay time of the system d_? it is allowed to change and is allowed in the representation of the fall of the mark and / or repetition. In the initialization step 401, the system supervisor 340 sets the starting distortion ü_a for each variable rate application 301-1 to its distortion threshold Dmax_ ?. Table I is a summary of the parameters provided *** by the system supervisor 340 to the statistical multiplier 300 for each variable rate encoder 302-1. In another modality, the information in Table I can be provided by both variable rate coders and f a.
TABLE I Parameters required by the statistical multiplexer ~ _ Par meter Scale Type Rmm 0 to 192 16-b? T integer Rmax 0 to 192 16-b? T enter-o Rgtd 0 to 192 16-b? T integer P 1 to 16 16-b? T whole (12-b? Ts reserved high: J5 bit (MSB) is "1" for the "fixed rate" and "0" for the variable rate) Drnax 16 bit integer number of 400- 16-b? T whole bits Lae units Particular scales and types of the parameters given in Table I are only illustrative of one embodiment of this invention and are not intended to limit the invention to the particular information given.
STEP OF COLLECTION AND CLASSIFICATION 402 As explained briefly before, the portion of collection of step 402 collects the data required to determine the distortion D_? for each variable rate coder 302-1 and the variation in the totality of the regulator-for each variable rate coder 302-1 on a continuous basis. In one embodiment, the communication in the encoders 302-1 through 302-L and the statistical inultiplexer 300 is maintained through a "message cycle". The statistical multiplexer 300 may read or write a byte of information to any of the encoders 302-1 through 302-L during a message cycle in each packet time. A packet time, sometimes called a packet interval, is typically the time interval required to transmit 130 bytes of data on the communication channel 330, but the packet time and / or size may vary. In addition, the statistical multiplexer 300 can transmit one byte «I information to all the encoders 302-1 to 302-L during the message cycle. If the encoder 302-1 only passes the necessary parameters to determine the distortion D_? to the statistical multiplier 300, the distortion D_? rotate the package several times for that encoder. The particular procedure used to pass data between the statistical multiplexer 300 and the encoders 302-1 to 302-L is not critical to this invention. The important aspect is the information required by the rnuitiplexer 3 statistical 300 and as the statistical multipiezer 300 pr-ocesa Jos data. In view of the description of the operation of the statistical multiplier 300, the required data can be passed in a wide variety of ways. However, in one embodiment, all direct communication between the statistical multiplexers 300 and the encoders 302-1 through 302-L is carried out to read inputs and write inputs to a general communications frame in the memory 313 of the statistical input 300. Specifically, when an input is written to the general communications box by the processor 312, the state machine 311 controls the hardware that (a) writes a byte in a first register on board the encoder 302-1 or in a first prirnera-entrada-prirnera-salida (FiFO) memory on board an encoder 302-1 or (b) it reads a byte of a second register on board the encoder 302-1 or of a second first-input-pprnera-output (FIFO) memory on the edge of an encoder 302-1 on the application control bar 360. The first register a The board of each 302-1 encoder contains a write owner FIFO flag and a read owner FIFO flag that can be set to the "rnux" or "encoder." The second record on board each encoder 302-1 contains a valid flag of write data. At the moment, the first and second FIFOs and registers are used, but these are only illustrative and those who are experts in the technique will realize "That the communications between *" "The encoders 302-1 and the statistical multiplexer 100 can be achieved in a wide variety in a manner without affecting the operation of statistical multiplier 300. The important aspect, as indicated above, is that each encoder collects distortion data and regulator totality and the data is communicated to the statistical tippler 300 at appropriate intervals for the operation of the statistical rnuitiplexer 300. Also, the statistical model 300 must communicate new regime information to the variable rate coders 30? -? once per each cycle of the statistical multiplier. Doe procedures are used to communicate data from the encoder 302-1 to the statistical multiplexer 300. In a first procedure, the statistical multiplexer 300, in the following order, (1) adjusts the owner flag FTFO of encoder write 302-1 to the "mux"; (2) it reads the valid flag of data of writing and 6 bits of the first FTFO; and (1) adjust the flag "J owner FIFO write to the" encoder ". When this procedure is completed by the encoder 302-1 the statistical multiplier 300 examines the valid flag of write data and if the flag is not valid, it discards the 6 bits of data. This procedure is repeated for each encoder at least once every 20 milliseconds. In the second procedure used to communicate data from the encoder 302-1 to the statistical rnuitiplexer 300, the encoder 102-1 verifies the flag of the owner FJFO of esc ur-a and the state of the first FIFO when the encoder J02-1 has collected the distortion data and regulator-totality, which is once per image. If the write FIFO owner flag is set to the "encoder" v The first FIFO is empty, the encoder 302-1 writes the collected data to the first FIFO and at the time of termination it uses the write data flag flag. If any of the conditions are not true, the encoder 302-1 waits until both conditions are true before writing the first FIFO. If new data becomes available before the collected data can be described in the first FIFO, the collected data is discarded and replaced with the new data. The data communication of the statistical muitiplexor 300 to the 302-1 encoder, that is, transfer of a new _ regime, is carried out in three step procedures. The statistical rnuitipiexor 300, in the following order, (1) adjusts The owner's flag FTFO read «jel encoder 300- i to" mux "; (2) write the new regime to the second FIFO; and (3) set the flag of the FIFO owner to read to the "encoder". The writings to the FIFO owner flag read generate interrupts to the processor-encoder. In response to the interruption, the data encoding processor of the second FIFO until the FTFO is empty.
While each series of parameters for an image is received by the statistical multiplexer 300 of the 300-1 encoder when using the "Jescpto" procedure, the series of parameters is used together with the assigned priority P-1. to generate an instantaneous distortion. The instantaneous distortion d-i is used to renew the d-i spacing for the variable rate encoder 302-1. in one modality, the D-period of each application is determined recursively, for example, the distortion D- i is the average of the three previous distortion values, fll use an average for the distortion D- i contrary to the most recently determined value , it is protected against sudden impulses in the distortion Di. In another mode, a recursive filter is used to renew the D-i distortion. Specifically, D- 1 = (ß * (D-1)) + ((1 - ß) * (< j- 1)).
The recursive filter introduces damping that also protects against sudden impulses in the D-i distortion. The value of the constant ß is determined empirically and a value of 0.8 is used in a modality. When a cycle of data collection is closed, the distortion D-i, i = 1, ..., NV, for all variable rate coders and the current regimes Ri. i = i, ...., NV, are always known 'because the regimes and distortions are adjusted to the time of configurations in step 401, as described above, or are the regimes and distortions of the previous statistical multiplexer cycle . The classification portion "Jel step 402 assigns each variable rate application 301 ~ i to one of a plurality of classes using the current regimes and distortions, in one mode, six classes are defined according to table II.
TABLE II Class definition for new regime generation / - The purpose of the classification portion of step 402 is to identify for each variable rate application 301-i if the current R-i regime for that application provides an acceptable distortion Di and classify application 301-i for the appropriate action in the passage of modification regimes 403. Procedure 500 is a possible implementation in the classification portion of step 402. step 501 checks to determine whether each of the applications "Je variable regime 301-i, i = l, mm, NV has been processed - if the variable-rate applications remain to be processed, the Di distortion for the next variable-rate application 301-i is verified in the "Je verification" section, very high distortion 502. Specifically, the distortion Di is compared with a maximum distortion (K2-i) * (Dmax-i) where the maximum distribution of the product of the second coefficient of histéreeis K2- i and one of distortion Dmax-i, is deci r, D-i > (K2-i) * (Dmax-i).
If the distortion Di is too high, the process is transferred in step 502 to the rate verification step 503, and conversely to the very low distortion step 506. in the rate verification step 503, if the R-i regime is lower than the Rgtd-i guaranteed regime for the 301-i application, the process _ ,. it is transferred to step 504 and otherwise to step 505. In step 504, application 301-i is assigned to class 3 and in step 505, application 301-i is assigned to class 6. Steps 504 and 505 transferred to the additional application step 501. Each application 301-i in clause 3 is currently distributed less than the guaranteed rate Rgtd-i and is being compressed to a level of quality less than the maximum distortion. Therefore, the application regimes in class 3 should be increased. Each application 301-i in class 6 is currently distributed at least in the guaranteed Tgdt-i regime and is being compressed to a quality level and less than the maximum distortion. Applications 301-i in class 6 compete with each other for rate increases, as described more fully below. In the very low distortion paeo 506, the distortion Di for the application 301-i is compared with the minimum distortion (Kl-i) * (Dmax-i), where the minimum scattering is the product of the first hysteresis coefficient Kl-i and the distortion threshold Dmax-i for the application 301 ~ i, that is, D-i < (Kl-i) * (Dmax-i).
If the distortion D-i is very low, the process is transferred in step 506 to the rate verification step 507, and conversely to the regime verification step 510. The regime check 507, if the R-i regime is less than the guaranteed Rgdt-1 regime for the variable rate application 301-i the process is transferred in step 508 and "Another way to step 509. In step 508, application 301-i is assigned to class 1 and in step 509, application 301-i is assigned to class 4. Loe paeos 508 and 509 transfer to additional application step 501. The applications in classes 1 and 4 have a Di distortion that is lower than the lower limit of the acceptable scale and thus are being compressed to a level "Je cali" Jad which is - better than its quality of white as defined by the minimum distortion. In other words, the current R-i regime for each application «Variable regime 301-i in this group is in excess of the regime required to operate at the level of distortion« White target, that is, within an acceptable distortion scale. Therefore, the regimen for each application of this group can be decreased. If an application reaches step 510, in a distortion D-i is within an acceptable range. Specifically, the distortion D-i of the application 301-i is greater than the minimum distortion (Kl-i) * (Dmax-i) and less than the maximum distortion (K2-i) * (Dmax-i) that is, (Kl-i) * (Dmax-i) < = D-i < = (K2-1) * (Drnax-1).
In this way, the application is being compressed at the correct quality level. Therefore, no change is required in the current regime Ri for the application of variable regime 301. The applications in this group are assigned to class 2 in step 511 if the current regime Ri is less than the guaranteed regime Tgdt-i and otherwise to class 5 in step 512. Steps 511 and 512 are transferred to additional application step 501. In this manner, procedure 500 assigned to each of the variable rate applications to one of the six classes defined in table II. The regimes for applications in case 2 are not changed. However, as discussed below, the step of modifying rule 403 may change the regimes for applications in classes 1 and 3 to 6. Before entering step 403, the rate increases deltaD, I, and C, as «Jefine further on, they become zero.
STEPS OF MODIFICATION SCHEDULES 403 and In step 403 modification regimes, the regimes for variable rate applications in classes 1 and 4 are processed as a group. The regimes for variable regime applications in clause 3 and the regimes for variable regime applications in class 6 are processed separately. If, after the regime settings, the capacity of the communication channel 330 is not fully utilized, the application regimes in classes 3 and 6 j- :. they are done Conversely, if after the rate settings, the capacity "jel communication channel 330 is exceeded, the application rates in classes 4 to 6 are revised. In one mode, all rules are measured in packet units / sub table. The unit uses < In order to measure the regime, the union affects the coefficients that are determined empirically. Therefore, a different unit of measure for the regimes will require a different value for the coefficients determined empirically. The lower rate process 600 illustrates the process -of regime modification within step 403 for applications in classes 1 and 4, that is, applied with a low and low distortion D_i. The lower-level process 600 is performed interactively for each application 301-i in classes 1 and 4. In this mode, the lower rate process 600 uses a feedback loop provides to decrease the current rate R_i for each application 301-i with too low distortion D_i the use of a loop «Je proportional rehabilitation eupone implicitly that the regime R_i and the diesion D_l of each application 301-i are inversely proportional to each other. In general, such an assumption is not true. However, in accordance with the principles of this invention, the R_i regime is allowed to change only in small increments, as described above and in this way there is not too much deviation from the distortion curve of ^ régime real. This assumption is used in all regime adjustment processes in this mode. Of course in other modalities, different functional relationships between a regime and distortion could be used. Also, different functional relationships between regime and distortion could be used in the different processes that make up step 403. A new regime Rnew_i for application 301-i with too low distortion D_i is determined in the adjustment rate 601. The adjustment regime 601, the previous regime R_i is set equal to the current regime R_i, for the application of variable regimen 301-i, for example a table of current regimes in a copy of previous regimes. Here, the reference number Rnew_i is used to distinguish between the previous regime and the new regime. In fact, each new regimen Rnew__i is stored in an appropriate location in the current regimes box so that at the end of the modification regimes step 403, the current regimes chart contains the new regimes for the next statistical multiplexer cycle. . In this way only two structures, for example the doe tables, are used in the step of modification regimes 403. Therefore, the references here to a new regime is the regime in the current regime table. The normalized difference between the distortion threshold Dmax_i and the distortion D_i is graded by a constant C and added to a previous regime Rold_i to generate a new regime Rnew_i. In one embodiment, the constant c is determined empirically and set to a value of 16. Specifically, Rnew_i = Rold_i + (c * ((D_i - Dmax_i) / Drnax_i)). Here the constant c has the same values for all applications in all cases. However, the constant c could also be defined in an application by application base or alternatively in a class by class basis. Then, the regime step «Je adjust 601 revises the new regime Rnw_? to ensure that the new regime Rnew_? it is within a predetermined scale, that is, the change in the regime is a small decrease. In one mode, the new regimen Rnw_? must be in the scale of a lower regime limit and a higher regime limit, for example: X * (Role «j_?. Rnew_? <Rold_? In this mode, the value of the constant s is chosen empirically as 0.9 If the new regime Rnw_? Is less than, the lower regime limit s * Rold__ ?, the new regime Rnew_? Ee equals the lower regime limit s * Rold__ ?. After the new regime is tested s * Rold To determine whether the change to the regime is still underestimated, the new regime Rnw_ is tested to determine whether the new regime Rnw_? is less than the minimum regime Rrn? n_? for the application 301_? new regime Rrnew_? Is less than the minimum rate Rrnm_? for the application ^ ~ Rm? N_ ?, the new regime Rnew_? it is equal to the minimum rate Rm? N_ ?. fll terminate the adjustment rate step 601 the processing is transferred to the size adjustment step of the buffer 6 '02. To maintain a constant delay time through the system, a decrease in the R_? of application 301: _? it is accompanied by a proportional decrease in the size of the effective buffer of the code "Jor 302_ ?. In this way, the buffer size setting step 602 determines a new effective buffer size. • .- in this modality, the new size «Je effective buffer" buf_sz_i "is equal to the product« Jel new regime Rnew_i and the system of the delay interval «Je time d_i. Specifically. (buf_sz_i) = (d_i) * (Rnwe_i) however, the buffer size can not be arbitrarily decreased. Obviously, care must be taken to ensure that the new buf_sz_i buffer size is not less than the current buffer complement. Actually, there is an even stricter requirement. The new buffer size d_i should not be less than the instantaneous buffer complement of the encoder measured for a period of time equal to the system delay time interval d_i preceding the current time. Therefore, as described now, the multiplier-statistics 300 obtains the complement value of , the buffer at the end of each image for the application 301-i and saves the value of the complement of the largest buffer, for the period of time d_i presenting the current time, in the memory 313 as the threshold buffer complement maximum max_buffer_i. It is possible to decrease a rate R_i without considering the buffer complement if the buffer of the encoder is at least as large as the buffer of the encoder multiplied by the ratio of the maximum rate Rrnax_i to the minimum rate Rrnin_i. However, this typically requires a large size for the encoder buffer. If the encoder and the encoder have the same size buffers, the complement of the buffer must be considered before decreasing a rate. Whenever a regimen is reduced, it is important to ensure that all bits that have already been inerted in the encoder's buffer before the change in speed are released to that of the encoder at time d_i. This is a benefit because the new regime, which will be released bits, lower than the previous regime to which they were generated. In this way, the rate can be lowered if, and only if the buffer complement for the time interval is equal to the time d_i before the rate change is instituted and does not exceed the new size of the buffer. Therefore, the threshold is compared with the new buffer size max_buffer_i. If the new buffer size buf__sz_i. It is less than the maximum buffer complement threshold max_b? Ffer_i, the new regime is set equal to Rnew_i to the previous regime roll < J_i. Otherwise, the new Rnew_i regime is retained and the operations in the buffer size step 602 are completed and the add-in is transferred to the step regime "Jo 603. In the accumulated regime change step 603, the change in regime for the application 301_i, that is, the difference between the new regime Rnew__i and the previous regime Role «J_i is determined and added to the decrement in« Jelta regime flD. Specifically, the complement in delta AD regime is the accumulation of the new regime Rnew_i and the previous regime Rold_i for applications 301_i with distortions too low. Remember that the decrement of the previous delta regime flD is initialized steel and steel is restored at the beginning of each statistical multiplexer cycle.
? D = S (Rnew_i - Rold_i) The decree in delta regime Ad is negative, fll terminate the step of change of accumulated regime 603, the processing is transferred to step 604 which in turn checks if there are additional applications in classes 1 and 4 for processing. ? i all applications in classes 1 and 4 have been processed, step 604 is transferred to full processing step 630 and otherwise to step 601. Applications in classes 3 and 6 have a distortion D_i that is too high . The applications in classes 3 have a current regime R_i that is less than the guaranteed regime Rgtd_i. Each of these applications is processed in a process called the 605 increment regime within the 403 regimen modification step. Applications processed in the 605 regime increase process are currently distributed less than their guaranteed regimes, but the The application is being compressed to a quality level that is less than the white quality defined by maximum distortion (K2_?) * (Drnax?) Consequently, the R_? regime for each of these applications is increased than the application 301- 1 has the diesion D_? On the acceptable scale of loss, or until the application has been distributed at a guaranteed rate Rgt «j_?, Which always comes first.In this mode, the process of regime increment 605 uses a loop of proportional reaiirnentation to increase the current regime R_? for each application 301-1 in class 3. The use of a proportional feedback loop implicitly assumes that What is the regimen R_? and the distortion D_? of each application 301_? in class 3 they are inversely proportional to each other. In general, such assumption is not true. However, in accordance with the principles of this invention, the R_? it is allowed to change only in small increments, as described above, and thus there is not too much deviation from the real regime-distortion curve. The new regime Rnew_? for the application 301-1 in Class 3 is determined in the adjustment rate step 606. In the adjustment rate step 506, the Rol «J_? above is set equal to the current regime R_? for application 301-1. The normalized difference between the distortion threshold Dmax__? and the distortion D__? is graduated by a constant c and added '- to the previous regime Rol <; j_i to generate the new regime Rnew_l. Rnew_i = Rold_i + (c * (D_i - Dmax_i) / Drnax_i) In one embodiment, the constant c is determined empirically and set to a value of 16. Next, the adjustment rate step 606, Czech "The new regime, to ensure that the change in regime is a small increase. In one modality, a new regime must come on a scale defined by a lower regime limit and a "higher regime" limit, for example: Rold_i < Rnew_i < t * Rol _i In this mode, the constant t ee selects empirically ^ as 1.1. If the new regime Rnew._i is greater than the upper regime limit t * Rold_i, the new regime Rnew_i is set equal to the upper regime limit t * Role «J_i. After the new regime Rnew_i is tested to determine that the change in regime is restricted to a small increase, the new regime Rnew_i is tested to determine whether the new regime Rnew_i is greater than the guaranteed regime Rgtd_i for application 301-i . If the new regime Rnew_i is greater than the guaranteed regime Rgt «J_i for the application 301-i, the new regime Rnew_i is set equal to the guaranteed regime Rgtd_i.
After finishing the adjustment rate step 606, a complete reversion of the buffer memory as described above would not be necessary, since an increase in the scheme is accompanied by an increase in the size of the effective buffer. Therefore, the processing is transferred from the adjustment regime step 606 to the regime change step 607. In the accumulated regime change step 607, the change in regime for the application 301-i, ie the difference between the new regime Rnew_i and the previous regime Rold_i, is determined and added to the rate increase delta I, which in turn is stored in memory 313. Remember that the increase rate delta I is initialized to zero and reset to zero at the beginning of each statistical multiplexer cycle. Specifically, 41 = S (Rnew i - Rold i) The increase of delta I regime is poetic. After completion of the cumulative regime change step 607, the procedure is transferred to step 608 which in turn reviews whether there are additional applications in class 3 for processing. If all of the applications in clause 3 have been processed, step 607 transfers to process completion step 630 and otherwise to step 606. In this way, procedure 605 is performed secondarily for each variable rate application. in class 3. Lae applications in class 6 have a di- storing D_i that is greater than the maximum distortion (K2_i) * (Dmax_i) and a rate R_i that is greater than or equal to the guaranteed rate Rgtd_i. The application in Clause 6 is compressed to values of distortion in excess of the quality of the target despite the fact that the applications have distributed their guaranteed scheme. These applications compete with each other in competitive processes of 610 regime increase to match their discrepancies. Speci fi cally, an average 610 dietary stipend, the average Davg dierention of all applications in class 6 is determined. Specifically, Davg = 1? Gave where H is the total number of applications in Class 6. fll finish the step of average 611 diesion, steps 612 to 616 are performed for each variable rate application 301-i in class 6. Processing is transferred from step of average 611 loss of adjustment regime 612. In the regime step "Je adjustment 612, the previous regime Role" J_i is set equal to the current regime R_i for application 301-i. The normalized difference between the average distortion Davg and the distortion D_i is graduated with a constant c and the previous regime Rold_i is added to generate a new regime Rnew_i. In one modality, the constant c is determined empirically and puts a value of 16. Specifically, the new regime Rnew__i is: Rnew_i = Rold_i + (c * (D__i - Davg) / Davg) Next step of the regime of ajuete 612 checks that the new regime Rnew_i to ensure that the change in the regime is small. The new regime Rnew_i is increased, the new regime Rnew_i must be in the scale defined by a lower regime limit and a higher regime limit, for example: Rold_i < Rnew_i < t * (Role «j" i) f In one mode, the constant t is empirically selected as 1.1. If the new regime Rnew_i is greater than the upper regime limit t * Rold_i, the new regime Rnew_i is set equal to the upper regime limit t * Rold_i. Conversely, if the new regime Rnew_i decreases, the new regime Rnew_i, must be in the scale of the lower regime limit and the upper regime limit, for example: s * (Rold i) < Rnew i < Rold i "* 'In one mode, the value of the constant s ee is empirically chosen as 0.9 If the new regime Rnew_i is less than the lower rate limit e * Rold_i, the new regime Rnew_i is set equal to the lower limit regime s * Rold_i.After testing the new Rnew_i regime for "To determine that the change in the regime is small, the new Rnew_i regime is testing to determine whether the new regime Rnew__i is in the scale of the guaranteed regime Rgt« J_i at a maximum regime Rmax_i. If a new regime Rnew_i is less than the guaranteed regime Rgtd_i for application 301-i, the new regime Rnew_i is set equal to the guaranteed regime Rgtd_i. If the new regime Rnew_i is greater than the maximum regime Rmax_i for the application 301-i, the new regime Rnew__i ee equals the maximum regime Rmax_i. At the end of the payday regime 612, the processing is transferred to the decrease revision step '. of regime 613. If the adjustment of the regime results in a decrease in the rate, the processing is transferred from the step of reviewing the decrement of regime 613 to adjust the payment of the buffer of the buffer 614, and otherwise to the accumulated rate change step 615. The buffer memory step 614 which is identical for adjusting the buffer step described above and that definition is incorporated herein by reference. At the end of the buffer step 614, the processing is transferred to the cumulative rate change step 615. As for the other cumulative regime change steps 603 and 607, described above, the exchange rate «Cumulative regime 615 accumulates the difference between the new and the previous regimes for all applications of variable regimes in class 6. Specifically, ? C = S (Rnew_i - Rold_i) where, C can be either positive or negative and zero at the start of each statistical multiplexer cycle, fll terminate the accumulated rate change step 615, the processing is transferred to step 616 which in turn reviews whether there are additional applications in Class 6 for processing. If all applications in class 6 have been processed, step 616 is transferred to process completion step 630 and otherwise to step 612. Thus, steps 612 to 616 of process 610 are performed interactively for each application in 6. In step 403, processes 600, 605 and 610 can run sequentially or in parallel. When all the applications in class 1, 3, 4 and 6 are? Roceea «Jas, the complete process review 630 goes through processing to the cumulative regime change step 620. The cumulative change regime step 620 determines the total difference between the new regimes and the previous regimes "so that the capacity of the communication channel 330 can be fully utilized but not overloaded. In step 620, the net rate change is determined by adding D, I, and C. Specifically, ? =? D +? L + ¿3C If the net change of regime is less than zero, the operations carried out so far in the change of regimen 403 have resulted in a net decrease in the distributed regimes. Conversely, in the case of the change in the net regime above zero, the operations carried out here in the step of modifying 403 regimes have resulted in a net increase in the distributed regimes. If the change in net regime is zero, the operations carried out here in the modification of regimes 403 have resulted in no change in the regimes distributed. The capacity review channel 621 determines which of these options occurred. If there is a net decrease in the distributed regimes, revision 621 proceeds to processing at the rate increment step 623 which in turn distributes the isponiblee bits, as described below, between applications between classes 3 and 6 in order to maximize bandwidth usage of the Chanel. If there is a net increase in the distributed regimes, the revision 621 goes to processing at the step of decreasing regimes 622"which in turn reduces the regimes". Some of the applications to operate within the capacity of the communication channel 330. If there is no net change in the distributed regimes, the revision 621 transfers the processing directly to the packet table pause of FIG. 404. In order to complete it, at the end, the move 623 involves processing to step 404. The move 622 transfers processing to step 404, if the regimes decreased with good results and otherwise to step 407. The process of the regime increase step 623 is shown in more detail in Figure 7. Applications with a D_i greater than the maximum extension, that is, applications in classes 3 and 6, are considered candidates for increased regimes. Within step 623, the applications in class 3 are initially processed separately from applications in class 6. In a first step of excess "Parametering 701 for application class 3, the excess parameter _i is generated subtracting the new regime of the guaranteed regime Rgtd_i. The excess parameter _i is saved for subsequent use. In a second step of excess parameter 704 for class 6 applications, the excess parameter _i is generated by subtracting the new regime Rnew_i «Jel maximum regime Rmax_i. The excess parameter _i generated in step 704 is also saved for subsequent use. The over-parameterization step 701 transfers the processing to the additional application step 703, which resets the processing to step 701 if additional Class 3 applications remain to be processed and otherwise to step 705. Similarly, the step of Excess parametrege 704 transfers processing to additional applications step 706, which returns the processing to step 704 if additional class 6 applications remain to be processed and otherwise to step 705. When all the applications in classes 3 and 6 have been proceeadae in loe paeoe 701 to 703 and 704 to 706, respectively, the cumulative excess passage 705 begins to be processed Initially, in the cumulative excess step 705 a parameter "Je excee sum_ is saved as zero. the surn_ excess parameter of the memory 313 and add each excess parameter _i in succession to the current value of the excess parameter sum_.
"Excess parameter sum_ is then stored in memory 313. In the adjustment regime 707, a new revised regime Rrnew_i is generated by increasing the Rnew_i regime by the fraction of available channel capacity attributable to this application. Remember that two structures are used as described above. At this point, the first standard has the original regimes for applications 301-i in classes 2 and 5 and the new regimes for applications 301-i in Clause 1, 3, 4, and 6. The second structure has the original regimes for applications 301-i in Classes 1, 3, 4, and 6. In the step «Je adjustment regime 707 only the first structure is used. Here, a new regime Rnew_i refers to the regime in the first structure at the start of step 707. The new regime Rnew_i is processed to generate a revised new regime Rrnew_i, which is then stored in the first structure. Specifically, Rrnew_i = Rne _i - e * cess_i sum_excess x Then the regime adjustment pause 707 revises the new revised regime Rrnew_i to ensure that the regime change is a small increase. The new regime performed Rrnew i must be on the scale defined by a lower regime limit and a higher regime limit, for example: Role «J_i < Rrnew_i < t * (Role «J_?) In one mode, the constant t is empirically selected as 1.1. If the new revised regime Rrnew_i is greater than the upper regime limit t * Role «J_i, the new revision regime Rrnew_ i is set equal to the upper regime limit t * Role« J_i. fll completing step 707, step 708 checks if there are any remaining applications in clauses 3 and 6 that have not been processed in step 707. If there are remaining applications, the processing reverts to step 707. After each applications in class 3 and 6 have been processed in step 707, any channel packet that remains unassigned is traded as an idle packet. A modality of the regimen reduction step 622 is shown in more detail in Figure 8. The application 301 i with regírnenee rnayoree that equals the guaranteed Rgtd i regime are considered as candidates for - decrease the regime in step 622, ie apply 301 i in classes 4 to 6. However, without pre-processing it reduces the Rrnew_i regime below the guaranteed Rgtd_i regime for any application 301_i in class 4, they are not processed in the performance plan of rule 622. In a step of exceeding 801, the excessive excess parameter i is generated by subtracting the regime -f guaranteed Rgtd i of the new regime Rrnew i. Excess__i excess parameter is saved in memory. The excess parameterization step 801 transfers processing to the additional application 802, which returns the processing to step 801 if additional applications remain with the new Rrnew_i regime greater than or equal to the guaranteed Rgt «j_i to be processed and on the other At step 803, this way, upon completion of step 801, the excess parameter exceeds the memory for each application with the new regime Rrnew_i greater than or equal to the guaranteed rate Rgtd i.
Initially, in the cumulative excess of 803, the excess sum_excess parameter is saved as zero. The accumulated excess step 803 retrieves the sum_excese excess parameter from the memory 313 and then sequentially recovers each of the stored excess parameters exceeds i and adds the recovered parameter of excess exceeds the current value of the excess exceeded parameter. The resulting value of the parameter d excess sum excess is then stored in the memory 313. After completion, the accumulated excess step 803 transfers processing to the rate setting step 804. Remember that two structures are used as described above. At this point, the first structure has the previous regimes for applications 301-i in classes 2 and 5 and the new regimes for applications 301-i in classes 1, 3, 4 and 6. The second structure has the regimes above for the 301-i applications in classes 1, 3, 4 and 6. In the regime setting step 804 only the first structure is used. Here, the new regime Rrnew_i refers to the regime in the first structure at the beginning of step 804. The new regime Rrnew_i is processed to generate a new regime realized Rrnew_i which is then stored in the first structure. The new revised regime Rrnew_i for application 301-? it is generated by decreasing a new regime Rrnew_ i with the capacity fraction "Je available channel attributable to application 301-i. Specifically, excess_? . Rrnew_? = Rnew_? x? sum_excess After adjusting the regime, the adjustment adjustment of regime 804 is transferred to the regime in step 805. Step 805 revises the new revised regime Rrnew i to ensure that the new revised regime Rrnew_i is within a predetermined scale, this is, the change in the regime is a small decrease. In this modality, the new revised regime Rrnew i must be on the scale of a lower regime limit and a higher regime limit, for example: s * (Rold i) < Rrnew i < Rold i Again, the value of the constant s is chosen empirically as 0.9. If the new revised regime Rrnew_i is not within the defined scale, step 805 transfers processing to step 807, and conversely to adjust the size of buffer 806. As explained above, to maintain time "constant delay". throughout the system, a decree in the regimen of an application 301-i is accompanied by a proportional increase in the effective buffer size of the encoder 302-i. In this way, the setting step "J the size of the buffer 806 determines a new size" J effective buffer. The new effective buffer size "buf_sz_i" is equal to the product of the new regime performed Rrnew_i and? N interval "Je delay time of the system d__i. Specifically, b? f_sz_i = d_i * Rrnew_i "'However, again the size of the buffer can not be decreased arbitrarily.Therefore, the threshold max_buffer i is compared to the new buffer size buf_sz_i and the processing is transferred from the step 806 to step 807.
In the buffer in the step 807, if the size of the new buffer buf_sz_i is less than the full threshold of the maximum buffer max_buffer i, the processing is transferred to the step 407 and contrary to the step 809. In step of test 809, the processing returns to pae 804 and additional application remains with the new regime Rrnew_i greater than or equal to the guaranteed regime Rgtd_i to be processed and otherwise to the step of table of package of figures 404. In the previous mode from step 622, all applications were processed with a regime R_i greater than or equal to the guaranteed regime Rgtd i. This modality is illustrative - 'only and is not intended to limit the invention to the particular application group. In another modality, there is an iterative procedure. Initially, the applications in clause 4 are processed as described above for step 622 and the decrease in channel capacity is compared with the excess capacity detected in step 621. If the decrease in capacity is greater than the exceedance of capacity, the paeo 622 is complete. Conversely, if the decrease in capacity is ^ Less than excess capacity, the applications in class 4 and 5 are processed, and the decrease in capacity is determined. If the decrease in capacity for the applications in classes 4 and 5 is due to the excess capacity, the 622 is complete. Conversely, step 622 is performed exactly as described above with respect to FIG. 8. This method requires more time, but may also improve overall performance, if it is unnecessary to reduce the rate for applications in class 6. In a modality, the 403 regime modification step, as described above, is modified to reduce the complexity of the process at the expense of a little efficiency in performance. Specifically, the steps in the buffer size adjustment are eliminated. The buffer size setting is not made until after all rate determinations have been completed. Then, new regimes are available for all the applications, the statistical multiplexer 300 performs a size review of the memory buffer, the complete reversal of the buffer for all those applications with a new regime that is lower than the previous regime. If an application fails to meet the full buffer requirement, the new regimes for all applications fall and all applications are assigned to the previous regimes for the application. -3.- next period. The modality of the regimen modification step 403 set forth above assures that each application 301-i having a defined Rgtd guaranteed regime i, receives a guaranteed number of bites per second to achieve a white extension so that the application preferably is within of classes 2 and 5. Also, if the application achieves its white distortion with a lower regime than ./ ', or equal to the guaranteed regime, this regime is not altered in spite of the performance of other applications. This means that if the level of target distortion and the guaranteed rate are properly chosen, the statistical multiplexer 300 can ensure the performance at the required distortion level. This allows performance control based on an individual application, which may be necessary in the case of applications with premium and pay per event. If performance control is not necessary based on an individual application, the modifying step '403 can be simplified so as to force the applications to end on a global basis. This can be done by joining the white distortion of all applications equal to zero. In this way, only part of the process is carried out, that is, only the 610 process, effectively driving the system to a state where the values of dietoreión (weighted) of all applications are approximately equal. Regardless of the process, at the end of i. paeo 403, a table is generated containing the regimes for each variable rate application for the next statistical multiplexer cycle. Alternatively, the table can contain both fixed and variable regimes for the next statistical multiplexer cycle.
STEP PICTURE FORMED 404 At the p > A packet box formed with 404, in z'etaeta modality, a particular process is used- to organize the package program box. Here, the process is generally considered first and then the specific applications of the process are considered. This process is illustrative only of one way of organizing the package schedule and is not intended to limit the invention to this particular process. In the process carried out in the formed screen box 404, a selected time interval is considered, that is, a window, which contains an integer number E of packets, that is, "'E ee the total number of packets that can be transmitted. for the communication channel 330 in the selected time interval The statistical multiplexer 300 handles L applications 301-ia 301-L and for any application 301-i, the number of packets distributed through this window ee m_i. 404, the number of m_i packages required for each application is known for the selected time interval, an obvious restriction that the total number of packets demanded by applications 301-a 301-L should not exceed 10 packets available, this ee, ¿M_i = i-1 The process of this invention assigns each packet to the application that is the most creditor in time. The determination of which application is the most creditworthy is based on "" the number of packages already assigns "Joe to the application up to that point (current distribution) in the window and the number of packages that the application has distributed to that point (white distribution) in the window. Since the packages must be distributed uniformly over the entire window, the white distribution for application 301-i up to package time n ee: ? 2R5 pt i (n) = (m i / E) * n, In other words, this is the number of packages that the 301-i application must have received for the nth packet. Clearly, pt_i (0) = 0 and pt_i (E) = m_i.
Denote by r_i (n) the actual number of paid packages for application 301-i haeta the same package but without including it. Merit figure d_i (n) is used to determine which application is the most deserving of the next package. In this modality, the figure of merit, d_i (n) is defined by: f_i (n) - pt_i (n) - r_i (n) = (m_i / E) n - r_i (n) In other words, the merit figure d_i (n) is determined for each of the L applications, and the nth packet is distributed to the application that has the large rnáe merit figure of merit d__i (n). Any remaining packet is inserted as an empty package «Jo. Repeating this operation for each packet, the packets are distributed to all the L applications in a reasonably uniform way, that is, the package program box is generated.
In a mode, the figure "Merit d_i (n) is not used because it requires division and multiplication that is slow when the hardware is deployed. Rather, an equivalent figure of merit is used that does not require division and thus the package program frame can be generated very quickly in hardware. Specifically, the new merit figure μ_i (n) is obtained by multiplying the merit figure d_i (n) by the number • E of packets in the window, that is, tj_i (n) - E * f_i (n) = (m_i * n) - (E * r_i (n)).
The package program frame is formed by executing the process illustrated in FIG. 9. In initialization step 901, the merit figure μ_i (n) is set to zero for each application: tj_i (n) = 0, for i = i, Alternatively, the merit figure u_i (n) is set to rn i for each application. Also, the index n for the current package number is set to zero as is the index and for the current application, the end of the initialization step 901, the process is transferred to an additional package revision step 902. The step Additional package revision 902 increases the current package index ny "Then it revises the index n to determine if the index n is greater than the total number of packages E. If the index n is less than or equal to the total number of packages E , the processing is transferred to the revision and additional application step 903 and otherwise step 404 terminates. The additional application revision step 904 increases the current application rate and then reviews the index and to determine whether the index i is greater than the total number of applications L. If the index i is less than or equal to the total number of applications L , the processing is transferred to update the figure of the step of merit 905 and another way to assign the step of the pack 906. In the update of the figure of the step of merit - > J? 05, is the merit figure μ_ generated first? (n) Next, the number of packages m_? Distributed through this window for application 301-1 is added to the mental figure μ_? (n) and processing returns to additional application step 904. Note that this repetitive addition effectively forms the product n * (m__?) in the merit figure μ_? (n) When the mental figure μ _? (N) has been updated for all L applications, the processing is transferred from additional application step 904 to the step "Je assignment of • Package 906. In the step" Je package assignment 906 , the application with the largest positive figure of merit μ_i (n), is assigned as a packet in n, that is,? n indicator for the converter for the application of the assigned packet n ee placed in the packet pogram box in the location n. The indicator is a signal that identifies the converter. If there is a nu «Jo, that is, two or more applications have the largest positive figure of merit μ_i (n), -.assigns the package n to the application with the largest number of m_i packages distributed through this window. In another mode, the application with the smallest number of rn_i packets distributed over this time slot is assigned as packet n. Of course, other knot breaking rules can also be used. If the merit figure μ_i (n) is not greater than zero, the packet is marked as an unoccupied packet. After the package n is assigned, the number -package total E is subtracted from the merit figure μ__i (n) for the application of the n-assigned packet. If the sum of the distributed packages is equal to the number E of the packet transmitted in a window, there are no unoccupied packets. However, if the unoccupied packets are desirable or if there are more entries in the program and package box than the sum of the distributed packets, an unoccupied source can be defined with its own distribution of packages m_j and so in each window rn_j the packets are transmitted as "Jesocupados" packages.
After completion of the assignment step "Je package 906, the processing returns to the step of reviewing the additional package 902 and the process is repeated as described above until each of the total number of E-packets has been assigned to any application or as a unoccupied package. When all the packages have been allocated, the step of the package box formed 404 is complete. The above description of the formed packet box step 404 generates a completely new packet program box for each window. The statistical multiplexer 300 has to program packets for applications that operate with both variable and fixed regimes. Although variable-rate applications demand a new package program box each window, statistical multiplexer 300 must ensure that fixed-rate applications also have their required share of packages. For any application of variable regime 301-i the number of packages distributed through the window is rn_i, wherein the number of distributed packets for a particular variable rate application 301-i is defined by the multiplication of the packet rate per second for application 301-i of the table generated in step 403 by the size of the window in seconds and truncating the product to the largest whole value that is less than this product. Similarly, for each fixed-rate application 301-, the number of packets distributed through the window is m_j, where "i total number of distributed packets for a particular fixed-rate application 301-1 is defined by the multiplication of the scheme in the pack per second for application 301__j provided by system monitor 340 in step 401 pro the size of the window in seconds and truncating the product to the largest integer value that is less than this product. Alternatively, to eliminate the reduction error, the number of packages rn_i distributed by the window for the variable rate 301-1 is determined directly in step 403 and the number of packages m_j distributed by the window for the fixed rate application 301 -j is provided directly by the supervisor of the 340 system. The number of packages required for each application of a fi ve regime in a window is combined with the number of packages required for the variable-rate applications and are used in the formation of the table. of package program for the next window, and ^ n a mode. This can be done during each window. In other words, the package program box is formed for all applications and is applied again in each window. This approach is preferred if only a few fixed-rate applications, for example less than 5, are handled by the statistical multiplier 300. However, the number defined as "a few fixed-rate applications" depends on the processor used in the statistical multiplier 300. The higher the power of the processor, the greater the number of fixed-rate applications that can be considered as a few fixed-rate applications. However, typically the number of applications related to a single statistical multiplexer 300 is very large (typically of the order of several tens). Most of these are applied in a fixed rate application. In this situation, it is grossly inefficient to update the package programs, this is the package schedule tables frequently. In addition to the fact that most of the applications are fixed-rate, some of the fixed-rate applications can operate at very low speed, which applications do not need to pack in each window. For example, if there are 6 multiplexer windows and devices in a second and a fixed-rate application requires only two packets per second, the statistical multiplexer must maintain the size of which of the 6 windows to send a packet for this application. This adds to the total complexity. - »Therefore, in one mode, two packet program tables are used, that is, a static packet box, sometimes referred to as a static box, primary packet box and a primary box, and a packet box dynamic that is sometimes called a dynamic table, a secondary package box, and a secondary table. The statistical package box is formed once during the configuration time in step 401 and covers a relatively large time interval, for example about one second. Therefore, in this modality, the 404 process is illustrated "Figure 9 and previously described, is used to form the eetático box within the initialization phase 401. The regimes specified for the fixed regime applications and the initial regimes for the variable rate applications are used in the process to generate the number of packages rn_i p >To be distributed by the interval for each application 301-i If a package n is distributed to a fixed-in-process application, that application indicator is inserted against the number n of packages in the static package box. However, if packet n is distributed to a variable rate application in the process, a predetermined code called a "null" code is inserted, against packet number n in the static packet box. Once formed in the initialization step 401, the static packet frame is not altered until the next time The particular way in which the packets are distributed within the static frame is not a critical part of the invention. Any number of forms can be used. For example, all applications of variable regime can be considered as a pseudo-application. The total dietribition for the pee-do application is the sum of the distributions for all the applications of variable regime. The programming of the package is made for the applications F + l, where F is the number of fixed rate applications and «1 1 is the pseudo application. In this mode, the positions in the static table assigned to the pseudo application have a null code inserted, so that the other position has an indicator inserted for the fixed rate application. The dynamic package box was built in each window in step 404 of the package box constructed using the new regimes for the variable rate application. However, the packet number in the -dynamic packet box is not the total of the packet number N but rather the total number of packets distributed in all variable rate applications in a statistical multiplexer period. The 404 process, as illustrated in Figure 9, is used to generate the dynamic packet table using the redefined number of total packets available in the window instead of the total number of packets N. Again, the programming method of The particular package used to distribute packages within dynamic and static frames is not a critical part of the invention. An important aspect is that the static table is configured once at a time of configuration with null codes inserted for the applications of variable regime and the dynamic table is updated, that is, populated, for the applications of variable regime one by window. The use of static and dynamic frames is shown later in the description of FIG. 18. The size of a period of the statistical multiplier, s < Jec? R, a window, is not fixed and can change over time. Consequently, the number of in radae in the dynamic box in the in the p > 404 for the next window is not fixed and you can change from window to window. In this mode, a constraint on the window size is that the window must be long enough so that a predetermined number of distortion values, eg, three, are picked up by the statistical rinter 300 of each encoder. of regime, j / ariable during the window. A «Jernae, the default number of distortion values collected can vary from window to window. As explained above, in this mode, the dynamic frame is limited to no more than 192 entries. Typically, the total number of packets distributed to all variable-rate applications in a window is much greater than 192. In this way, when all entries in the dynamic table have been accessed, the statistical rnuJtiplexor J00 is linked from the last entry to the first entry and begins to access-sequentially enter them again. In this way, the dynamic input frame 192 is repeatedly used until the end of the window. The interruption, which is "Written completely later, from one dynamic frame to another is made during the period of time when the statistical multiplier 300 has accessed the last entry in the frame and is linking back to the first entry, that is, "Jesus of the interruption, the statistical multiplexer 300 accesses the first input" Jel another dynamic frame.
STEP 405 OF STEP REGIMES In step 405 of step rates, the statistical multiplexer 300 passes the new regimes used to generate the new dynamic frame in step 404 to ca «to one of the 302-i encoders that are processing an application of variable regime 301-i. The new variable regime for each encoder 302-i is written to the general communications frame and communicated to the encoder using the process described above. All regime reductions are sent first and a time marker is turned on. In this mode, the time marker is a time marker of 34 millieecond. The time marker is used to determine the conclusion «He has a movie period after the conclusion "" "I read the sending of the regime reductions." This interval is selected to ensure that the regime decreases are implemented by the coders before the rate increases.When the time marker ends, the rate increases are sent to the coders 302-i.After completion of the transfer of the new regimes used to generate the new dynamic frame, the processing transfer from step 405 to step 405 of interrupt rate.
STEP 406 OF INTERRUPTION REGIME Step 406 of the interruption rate is coerced by hardware in the encoder 302-i. Typically, it is not possible to alter the internal rate control of the encoder 302-1 once the encoder 302-i has started encoding a movie. Therefore, the following description of the interruption rate step 406 gives rise to a regime interruption in the encoder 302-i occurring in the first film limit followed by the reception of the new rate by the encoder 302-i. If a 302-i encoder requires more time than the first film limit, the time periods in the next registration must be appropriately lengthened. Similarly, if a 302-i encoder has the ability to implement a new scheme within a movie, the time periods of the following description can be agreed upon. In view of this description, the Required isdifications based on the performance of the 302-i encoder will be apparent to those skilled in the art. Of course, if the encoders can change the regimes at any time and not just in the frame boundaries, for example, the interruption interval, as defined below, can be reduced to zero. Consequently, in this modality, alterations to the regime are allowed only between films, that is, at the beginning of a film. Moreover, the film limits of statistically multiplexed 302-i applications are not guaranteed to occur at the same instant in time. These "coercions operate in a row. Since the regime of a 301-i application within a film can not be changed, the new regime for application 301-i can not be implemented until the next film limit. However, when the application 301-i reaches a film limit, some other application 301-j may not be set at its limit "Je movie. Therefore, the new regime R_j for the - application 301-j can not be implemented in the limit of "film for application 301-i." In other words, it is not possible to alter the regimes of all the applications and alter the programming of the multiplexer packet to the same time. The solution to this problem is not to carry out the change to the new regimen of all applications 301-i and to the new package programming at the same time, but to carry out the change over a non-zero time interval, referred to as interruption interval 1020 (Figure 10). The interruption interval 1020 is chosen so that all the applications 301-i are guaranteed to have at least one film limit within the interruption interval 1020. In Figure 10, the measured sound marks 1001 to 1010 represent frame boundaries , which in the case of the NTSC input have a frequency of 30 Hz, really 29.97 Hz. The window 1050 starts at the arrow 1051 and ends at the arrow 1052. The step 403 of modification of the regimes is "complete" over the interval of time 1060. The frame step 404 of the built-in package is completed over a time interval 1070 and the step 405 of step rates over the time interval 1080. The length of the interruption interval 1020, in this case, is 2 /29.97 seconds. Application interruption regimes were found in the first film boundary within the interruption interval 1020. Specifically, all the Applications whose new regime is lower than the old regime, carry out the regime interruption first on the first medium interval 1020-1. Then, in the middle of the interruption interval, the statistical multiplier 300 changes to the new packet programming. Finally, all the applications, whose new regime is higher than the old regime, carry out the interruption in an average interval interval 1020-2. This process ensures that in no case the sum of all the application regimes is greater than the capacity of the communication channel 330. However, there is a slight drop in channel utilization during the first 1020-1 medium interval, because some applications can operate at a rate that is lower than the rate at which they would be supplied by the statistical multiplexer 300. Specifically, in the first 1020-1 average interval, the regime for some applications can be decreased, that is, the Encoders for these applications begin to "press" at a lower rate than the previous regime. However, until the statistical multiplexer 300 implements the new packet programming box, the legal multiplexer 300 continues to increase the application rate with lower rule in the older schedule. This effect is reflected in some underutilization of the communication channel 330. In FIG. 10, the sounds are accompanied by dialing by the statistical multiplexer 300 for the purposes of reference and are not insured to any of the applications per se. HE. In addition, it is assumed that each application completes the coding of each frame in the range limited by two sounds adjacent to each other, that is, in 1 / 29.97 seconds. The rate of the frame of each application is less than 29.97 Hz (eg, if it is a filial sequence at 23.97 Hz), even then it is assumed that the encoder compresses each Cu in 1 / 29.97 seconds and works in others. determined times to synchronize with the regime «Je input data. The statistical multiplexer 300 operates in a cyclic manner with the events within the period 1050 that are repeated continuously. The length of the period, as shown in Figure 10, is not indicative of any performance in real time. In fact, the only conclusion that should be takes < In this figure (and the p> g) above in reference to the time labeling is that the whole of the time during a period of the statistical multiplier is carried out in constructing the package program table and that the other aspects of this invention are executed in a relatively short period of time. The actual time required to execute each process of this invention depends on the coputational power available in the statistical multiplexer 300. However, it should be noted that there is a minimum value beyond which the period can not be decreased because, in the At the last moment, the period * must include an interruption interval 1020, which is 2 / 29.97 seconds in duration. Figure 11 illustrates an alternative implementation with a shorter period 1150. In this mode, the buffer sizes of the encoder and decoder are "sufficiently large", so that the interruption interval contains exactly one film limit of each application.
The applications carry out the interruption to regime more The lower or lower when they reach the film limit, and the multiplexer 300 interrupts to the new packet programming in the middle of the interrupt interval 1160. In this case, some applications may interrupt at a higher antee rate. The new packet programming is interrupted causing the fullness of its buffer to increase slightly. However, if the buffer sizes are large enough, this should not be a problem, although extreme care is needed to ensure proper alignment of the buffer memory. As explained above, the dietribration of the regimes among all the variable regime 301- i is based on s? respective diesion D_i. In the previous description, the distortion D_i was assumed as known. In fact, the distortion D_i must first be defined and then the data generated to determine the D-i extension as defined by each application. 'Ideally, the distortion D_l must be such that it incorporates the characteristic of the human visual system (HVS). Broadly speaking, HVS is more sensitive to distortion artifacts in areas of low space and temporal activity. Low space activity means relatively flat areas in a box. Low temporal activity means relatively minor frame-to-frame movement. In other words, the same "amount" of the distortion artifact is more easily -visible to the human eye if the scattering occurred either in relatively flat regions of an image, or during a relatively fixed portion of a video sequence, than the same amount of distortion occurred in the image area of the image or during the high movement of a video sequence. The word "quantity" refers to the measurement of some absolute error between the original and reconstructed video frames, v. Rg., A poor frame error measurement (MSE). In this way, the distortion D_i preferably takes into account the temporal characteristics and the space of a video sequence. In general, a distortion metric based on HVS is complicated to compute in real-time hardware. So a simplified definition of the de-storage of, which is still somewhat functional and implemented in the hardware of this invention, is defined as: D »P x (IF) mee (SA) A (TA) where rnse = Error in the poor box, IF = Interleaving factor, SA = Box space activity, TA = Time activity, and P = Priority number. The priority number P was defined above, and the definition is incorporated herein by reference. Particular methods for determining the interlaced factor, the activity of frame space, and temporal activity, as well as the expression for distortion are not critical in the invention. The important point is that a uniform methodology is used to determine the distortion D_i or some other parameter that is indicative "He is called" Jad "He is" Jatos encoded. The principles of this invention can be applied to any compression technology and the particular parameter used to measure the quality, they can be different from technology in technology and even "Jentro" from a given technology. Therefore, the following examples of the error in the table "Jefficient, interlacing factor, table space activity and temporal activity are only illustrative and are not designed to limit the invention to the particular examples. The deficient frame error mee ee generates by adding the square of the pixel to pixel difference between the original frame and the reconquered frame after encoding it and normalizing it, by the total number of pixels in the frame, ie, where x_i and y_i are the pixels of the original boxes and "• - reconstructed, respectively, and here, n is the total number of pixels in the box. (mse) is completely independent of the characteristics of the input sequence. In this modality, each codifier 302-i generates a faulty frame error renee once per frame and that ee value is paid to the statistical multiplexer 300. In another fashion, the de fi cient frame error is not used, but is e ected from the frame error that is generated by the encoder that is provided by C-Cube.
Microsystems of Milpitas, CA.
The IF interleaving factor in distortion D is used to normalize the effects of interlacing in video sequences. Typical video encoders consist of a sequence of movies without referring to the frame / field structure of the sequence. However, the characteristic of frames that originate from a video camera (typically 50 or 60 fields / second) is different from that originating in a film source and converted to a < - digital (assuming that any 3.2 downstroke operation has been reversed). The above has what is commonly called "interlacing artifacts" while the latter does not. The interlacing artifacts are nothing more than the movement between the two fields of a painting that is introduced because the two fields were captured in different instants «Je tiempo. Such an inter-field movement does not exist between the fields of a picture that originates from a film sequence - because the two fields in this case are captured at the same moment of time. It is for this reason that a typical video frame is harder to compress than a typical movie frame. As explained above, the statistical ripuper 300 uses the relative distortion values of different applications to redistribute regimes. For such a process to work efficiently, the method uses "Jo to determine the distortion must be non-polarized. However, since a video encoder typically operates in a frame network, the space activity calculated for an application becomes somewhat inflated if the application is an interlaced video stream. This results in a lower value than normal for the distortion. This polarization can be delayed by re-measuring the measurement of space activity by the factor «E interleaved. If it is known beforehand that a particular frame is encoded in the field mode, the IF interleaving factor for that movie can be sent to 1. In this mode, the interleaving factor IF is generated by doing statistics, ie, a "difference activity" DA and an "intra activity" IA. The DA difference activity is defined as the absolute average of the difference of pixel to pixel between the two fields belonging to a frame, ie, DA »i nf ñf 2 * | u-i- v_i | nf 1-1 where nf is the number of pixels in a field, and (u_?) and (v__?) are the corresponding pixels of the fields odd and even fields of the box, respectively. In a modality, a difference accumulator generates act? V? Jad of difference DA between two successive fields "Je a different parity. Specifically, the differential accumulator sum the absolute differences between a pixel of the normal field, v.gr-., Field al, and pixel "Jel ßig? Iente field of a different parity, eg, field a2. When all the data for a frame has been processed, the encoder 302-i provides the difference between the DA and an end-to-end multiplexer 300 once per frame. The intraactivity IA is the average abext of the pixel to pixel difference between each even-odd pair of the lines that belong to a field, measured on both fields of the frame, that is, IA "nf S 1-1 UPiodd- qi- u where? i and q1! are the corresponding pixels of the adjacent even-odd lines of the field j, j = odd, even. In one embodiment, a difference accumulator generates a different measure between each adjacent odd-even line pair that belongs to the same field. Specifically, the difference measurement "intra-activity IA" is obtained by adding the absolute differences between the pixel paree that belong to the even and odd line of the field member. The pixel differences are obtained between the following pairs of line (0,1), (2,3), (4,5), ... The pixel values for the lines with even number are passed to a line «Je delay and then to the differential accumulator, while the pixel values for the odd number lines are passed directly to the differential accumulator. When all the data for a table has been processed and the intra-activity IA is provided by the encoder 303 to the statistical multiplier 300 once per frame. Once the DA difference activity and the other IA activity are available, the IF interleaving factor defines as: IF = max (1, rnin ((DA / IA), 2)).
Both the activity "difference" DA as the other activity "IA" generate in hardware. Note that since the use of the doe eetadieticae relationship is used, the hardware does not need to use the pixel number nf. Therefore, statistics are updated using a differential accumulator, as described above. The SA box space activity in distortion D is a measure of space activity in a quad. An example of such a measurement is the average of the absolute difference between adjacent horizontal and vertical pixels. One embodiment of a hardware implementation of a SA box space activity suitable for use in this invention is available from C-cube Microsystems of M l pitas, CA. The important aspect in selecting hardware to generate SA box space activity is that as long as the activity "space" is measured in a frame network (ie, pixel differences between adjacent lines of a frame are taken into account). ), the SA box space activity has to be adjusted by the IF interleaving factor. Temporal activity TA in the distribution D ee an indicator of the differences from frame to frame in the video sequence. First the average absolute difference between the corresponding pixels of two adjacent frames is determined, that is, V r l '. = -1 A S 1 - 1 where, as above, n eß the total number of pixels in a frame, and xi and yi are respectively the corresponding pixels of two adjacent frames. V is used to update recursive between a parameter v, as follows. v * av + (l-a) V ' In one modality, the constant ce. is 0.9 and the parameter v is initially programmed to 40. Finally, in this mode, the temporary activity TA is obtained from v as 1, v = 10 2 + T? V 100 < V Any other function can be done as long as the function is bathed in a pixel difference from frame to frame. In the current implementation, both v and V are computed in the encoder and transferred to a statistical multiplexer 300 times per frame. A more detailed block diagram of a modality of the stereographic multiplier 300 is presented in FIG. 12. The statistical multiplexer 300 communicates with encoders 302-1 through 302-L and gathers compressed application data to be transferred to the communication channel 330 using the application control bar 360. In this mode, the memory 313 (Fig. 3) includes a plurality of memories 1201 to 1203 and memories 1205 to 1207, each of which is described more fully later. In one embodiment, the statistical multiplexer 300 supports four different application control bars through an application control bar interface circuit 1210. Multiple application control bars allow redundant 301-i applications to connect to the statistical multiplexer 300 over redundant application control bars 360. If one of the redundant applications fails in a way that corrupts its application control bar, another redundant application can still send "Jatos to the statistical multiplexer 300 over one of the three busbars." application control. All four application control bars are conducted in parallel with each application control bar that has its own set of drivers. The notes received from the four application control bars are logically "ORed" to each other in an interface circuit 1210. Any application control bar can be deactivated if a problem occurs with it. The application control bar state machine 311 is positioned between the bar interface circuit "Je application control 1210 and the microprocessor 312. In one embodiment, the functions described below of the control bar status machine application 311 are implemented in a programmable grid arrangement. The application control bar setting machine 311, defined from now on as ACB state machine - "311, controls the control bar" Je application 360 through an interface circuit 1210 and minimizes in this way the effect of bar operations on the microprocessor 312, which in one embodiment is a Motorola 68302 microprocessor. State machine ACB 311 is controlled by frames stored in memories 1201 to 1203 and 1207 and registered in the state machine 311, both of which are configured by the microprocessor 312. The frames used to control the machine "Status ACB 311 include , in one embodiment, a static rate frame stored in the DRAM information memory 1207, a frame "Dynamic rate stored in the dual-port memory 1202, and a general communication frame stored in the dual-port memory 1204, each one of those which are more fully described later.The ACB 311 labeling machine expresses memories 1202 to 1203 using expression generators 1222 to 1223 Specifically, those skilled in the art will appreciate that the expression generating circuits 1222 through 1223 can be included within the status bar 311. The registers of the ACB state machine, which are written therein by the 312 microprocessor. , are ACBSMCtr, ACBSMMask, and ACBSMClr records. These are eight-bit registers and the bit definitions for the ACBSMCtr and ACBSMMask registers are shown in tables III and IV. Writing to the ACBMSMCLr record disconnects pending '' '' 'interrupts, even if an interruption is masked.
TABLE III When the Reset bit is low, the ACB status machine 311 is restarted. The ACB 311 status machine can not operate when the Reset bit is low. The microprocessor 312 must program the bit to zero and then to one to affect a reprogramming of the ACB 311 scoring machine. The StComm eß bit programmed by the microprocessor 312 when the microprocessor 312 has programmed one of the general communication frames and is ready for the ACB 311 state machine to make the transfer. The StCornm bit is inter-round with the input machine ACB 311 arrives at an input in the general communication board that is switched off. The StFIFO bit is programmed by the microprocessor 312 when the new primary frame has been generated, and the DMA transfer of this frame to FIFO 1201 has begun. When the StFIFO bit is low, the ACB 311 status machine can not carry out the The message "Je this primary" is described below, but the machine may be able to carry out the other cycles of the application bar, described later. The reserved bits must always be programmed low. The bit. Need? Define which of the two frames in memory 1202 will be used, as described later. When the NeedSel bit is set to low, the bit of the ACB 311 setting machine goes to frame 1, the second one. The SecSel bit is not used. The ComSel bit defines which general communication frame in memory 1204 is to be used. When the Comsel is placed under the ACB 311 state machine it uses a general bit communication frame 1.
TABLE IV The CommMask interrupt bit disables the interrupt normally generated when the ACB 311 state machine reaches the end of the data in the general communication frame. The interrupt bit VarMask deactivates the interruption normally generated when the ACB 311 setting machine reaches the end of the sub-frame. The interrupt bit EmtyFIFOMaskk deectivates the interrupt normally generated when the FIFO 1201 is empty. The interrupt bit ACBTmeMask disables the interrupt generated when «Jo time counter > or ACB 1242 concludes. In this mode, this interruption is not used so this bit is programmed in low. The AppBus bit enables the application bars 4 to 1 respectively. When a particular bit is programmed, the corresponding bar is activated. The 360 application control barricade includes a "data bar / 8-bit parallel expression ADDR / DATA, a strobe direction line A, a DS data strobe line, a line" CLOK clock, and a DTACLK data clock or return clock line, and an ENA.BLE activation signal line.The signals of these lines are differential TTL signal levels in this modality.Moreover, for convenience, the same reference number is used for a line and for a signal on that line. The application control bar 360 also includes reference clock and reference counting lines which carry differential ECL signals in this modality.The implementation role bar 360 is the only communication path between the statistical multiplier 300 and The encoders 302-1 through 302-L The information traneference in the application control bar 360 is divided into packet time slots, wherein a packet time slot is defined as the re wanted to transmit a data packet on a communication channel 330. The time interval between the leading edges of the two consecutive pages 1301 and 1302, ie, package eetroboecopicoe, in PS package stroboscopic line (figure 13) define the packet time interval. In this mode, the communication channel 330 provides an external clock signal EXCLK. The external clock signal EXCLK is divided downwards by means of the statistical multiplexer 300 to generate the stroboscopic bundle in the line P ?. For this, a , -'Stroboscopic package is generated by dividing the rhythmic clock sounds in the external clock line EXCLK between the number of bits in a packet. Loe eßt package roboscopicos are very precise and very regular pulses. In this embodiment, the statistical multiplier 300 has two sections that run synchronized with each other. The application control bar 360 runs at 10 MHz. The output of the statistical multiplexer to the communication channel 330 runs synchronously with the signal "external clock EXCLK received from the communication channel 330, v.gr-., From a modem. that leads to the channel. These frequencies allow each portion of the statistical multiplier 30 to run optimally. This eliminates the problems that may occur by requiring the application control bar 360 to run at varying frequencies while the frequency of the external clock signal EXCLK is changed. In one embodiment, each packet time slot is further divided into an ACB message cycle interval (Fig. 13) and an ADB data transfer interval in application bar 360. The range of ADB data transfer cycles it is used by the statistical multiplexer 300 when it gathers compressed application data to be transferred to the communication channel. The message cycle interval ACB is used by the statistical multiplexer 300 to gather information from the encoders 302-1 to 302-L, and to distribute new regimes to each of the encoders -'302-i that process variable-rate applications. The control and data transfer cycles within ACB and ADB intervals are time multiplexed into DATA / ADR data bars within the application control bar 360. In one embodiment, a plurality of message cycloe occur within the ACB range Secured by a data packet transfer cycle within the ADB interval. As illustrated in FIG. 13, the message cycle time interval ACB is subdivided into three message cycles, i.e., primary state, bus bar, and general communication cycles. Any "These three cycles" message may be erased from the ACB feedback cycle time interval. However, any or all of the three cycles always occur in this order. There may be some unused portion of an ACB message cycle time interval, especially if one or more message cycles are erased. The three message cycles and functions are broadly defined later. At least one message cycle must precede each data transfer cycle to activate the data transfer. The number of message cycles that may occur between transfer cycles is limited by the required data transfer rate. With four message cycles between data transfers, and using a clock rate of approximately 12.5 MHz, the maximum transfer rate of the application packet data in - "-" the application bar eß of 60 Mbit / s The ACB timeout cycle interval ACB is determined by a time counter ACB 1242. (Fig. 12) The time counter ACB 1242 starts at the end of a packet strobe on the PS line. 1242 recounts a pre-set number of ßonidoß rhythmic control bar clock numbers, eg, 40 ßonidoß bar clock registers, and generates an output signal In response to the signal « When the ACB 1242 time counter is output, the machine in the ACB 311 mode drives the downstream strobe signal and sets the ENABLE signal to active after the tDSE time (Fig. 14 and panel V). Notice in Figure 13 that the The ENABLE signal is expanded and the lines are used to relate the increasing and decaying edge of the ENABLE signal to the ADB time slot in the application bar). For this, the data transfer protocol is controlled by means of the appropriate message cycles and the ENABLE signal. A data transfer cycle requires that the selected application have "Jo really tested, through a message cycle, to be the next application that provides package data. During a message cycle, the statistical multiplexer 300 makes it possible for a 301-i application to drive the DATA / ADR data bar, and the next ENABLE time signal is reaffirmed. The bar clock "CLOCK application" (FIG. 14) run '^ continuously. The ACB 311 status machine reaffirms and challenges the ENABLE signal (Figs 13 and 14) synchronized with the CLOCK application bar clock. The ENABLE signal is kept active for the number of measured bar clock sounds in the application control that is equal to the number of bits in a data packet. In this mode, the ADB 1241 time counter starts counting the number of rhythmic sounds of the control bar clock until the ENABLE signal is activated. When the time counter ADB 1241 has counted the required number, the clock is clocked, a signal is generated to the ACB 311 status machine, which in turn leads to the inactive ENABLE signal. The deactivated application drives data in the DATA / ADR bar for the number «Je cycles« that the ENABLE signal has reaffirmed. In this way, the eetheoretical multiplexer 300 controls the number of bits that the application 301-i sends in the application control bar 360 in any transfer '* of data. The 301-i application conducts data on the bar DATA / ADR and a clock signal on the DTACLK line synchronized. (Fig. 14). The signal on the DTACLK line is not required to be in phase with the CLOCK signal, but the signal on the DTACLK line must have the same frequency as the CLOCK signal. Some latency is allowed since the 301-i time application receives the ENABLE signal until the application ^ -301-i drives the DTACLK data clock signal. (see picture ). In this mode, the application 301-i, once activated, must reaffirm DATA and DTACLK in the bar 360 «Jentro« Je «Jos clock cycles of the first positive edge of the clock in which the ENABLE signal is activated. Application 301-i should drive the number of bits in the DATA / ADR bar as determined by the ENABLE time-slot signal when it is active. This means that the activated latency and latency disabled must be the same for any application, but the latency time may vary from one application to another. When the ADB 1241 timer expires after data transfer, the ACB 311 state machine drives the signal on the inactive ENABLE line and the statistical multiplier 300 makes the following data traeferible by message cycles a? ropia «Jos. Specifically, the 300-MHz multiplexer waits for at least one tEA time? (Fig. 14 and Table V) before reaffirming the stroboscopic signal of expression AS. A modality of the time relationships between the signals in the line CLOK, ENABLE, DTACLK and DATA / ADR bar is presented in Figure 15. Table V explains the interpretation of the time «Je activation tSU, type of wait tH and time of turn off «Jo tOFF. The tDSE time (figure 14) is the minimum time that the statistical multiplexer 300 eeperates after the DS strobe signal has been deactivated.
TABLE V The statistical multiplier 300 counts the number of bytee sent to the collecting bar 360 for the application control with meter 1240"J bytes ADB. In this mode, the ADB byte meter 1240 is a downstream meter that generates a signal to the state 311 ACB machine if and when the correct number of bytes has been received by it. When a 301-1 application is not driving the DTACLK line, the conductor for this line is brought to a high impedance state by the 302-1 encoder. To avoid damage to the DTACLK line, the encoder 302-1 takes the driver to a logic 0 state for at least the time tOFF before disabling or enabling the driver. To disable the driver, the encoder 302-1 first carries a logical 0 on the DTACLK line and then disables the driver, that is, the driver leads to a state of high impedance. The bus terminations hold the collector bar 360 in the logical zero state. When the next application 310-j enables ßu driver, there is no transition on the collector bar 360 because the conductors are enabled in the logic 0 equation. As indicated above, the ACB state machine 311 controls the collector bar 360 for the control of the applications by processing the information stored in the frame of the memory 311. The ACB state machine 311 causes the appropriate address generator 1222 to direct the 1223 an entry in the appropriate box containing information to control the operation of the collecting bar 360 for the control of applications or to enable the transfer of information from the primary FIFO 1201 to the collecting bar 360. The regietroe in each of the stored boxes controls one of the message cycles shown in figure 13. Each of the boxes has the same format for a record. The first byte is a control byte that is used by the ACB state machine 311. Table VI defines a modality of the byte «Je control. TABLE VI puts the Bit Off if the frame record is not used, The CF Bit is not important for this invention. Possible values for the field type eon: 00 - Inserted null package? 01 - Not used; 10 - Write to the busbar for application control; and 11 - Read from the busbar to control applications. ~ * ~ When the TF bit is set, a packet from the test FIFO is read. To use this aspect you must p > Set the Type bit to "01". This aspect is not required for the operation of the statistical multiplexer 300. The bit BC is set to transmit the encoders to all of the encoders on one of the application bus bars when reverting general communications. The two least significant bits of the data byte in the general communication box designate which application bus, 0, 1, 2 or 3, has to transmit the data byte. The least significant bits on the DATA / ADR data bus are known as logical zeros. It always puts the reeled bites in a logical zero. Each encoder 302-i is addressed by an application address, which is sometimes referred to as a channel identification of the SCID services. The addresses on the collector bar 360 are used to control the applications by means of the byte "Jo" and third in each region of the table, first with the most significant byte. The other of the address "Je sixteen bits, the twelve most significant bits, are the address for the encoder 302-1. Other modes can use a different bit number to address encoder 302-1. The gres next bits (3-1) are the address for the records esp > ec? inside «Jel encoder 302- 1. The last bit, that is, the least significant bit, indicates read or write. The "" "" fourth byte in each frame is a byte of data. A byte is written to application 301-1 during the cycle of maneuvering, the information contained in the fourth byte of the record box is provided to application 301-1. If a byte of the encoder 302-1 is read, the byte is passed to the microprocessor 312 by the encoder 302-1, which writes to this place. The address bytes are sent in a frame via the DATA / ADR busbar of the busbar 360 -for the control of consecutive puleoe applications on the AS-address line of the busbar for the control of applications (Figures 14, 16 and 17). The encoders 302-1 to 302-L ensure the address bytes ßon the edge of the output of the pulse on the address AS address streak. The readings and writings on the DATA / ADR bus during a cycle of messages to the fourth byte in a frame are cracked by a pulse on the DS data line «Je the collection bar 360 for application control (Figures 16 and 17) . During write transfers, the data is secured by the encoder 302-i directed on the trailing edge "Jel pulse on the DS line of the data heterotopic. During the read transfers, the ACB state machine assists the data on the trailing edge of the pulse on the datum-dot data line DS. When reading-, there is no guarantee to indicate that the reading data are valid. This means that the data on the collector bar 360 must be placed for application control within a specific type of the signal on the streptococcal DS data line that is eosting. The various synchronization characteristics between the signals on the lines AS, DS and the DATA / ADDR bus are defined, as shown in figures 16 and 17, in table VII.
TABLE VII As explained above, the primary frame, which is defined in the configuration time is stored in the memory 1207, divides a given interval of time into packet time. At each packet time the determined interval of time is assigned a record in the primary frame. Each record in the primary frame is an address that specifies which 301-i application this packet time is allocated to. I make the primary frame allocate a bandwidth in a reeolution by increasing packets per second, the primary frame, in one mode, has (39 Mb / sec), the statistical speed of the multiplexer output, multiplied by (1/1024 packets / bite) or 29,297 registers. As explained above, the statistical multiplexer 300 shares responsibility with the sister station 340 to construct the primary frame. After its arrangement, a cinema is placed in the first record of the primary frame. The statistical multiplexer 300 uses a primary record of the chart each packet time and from this row address to the primary chart once during each period "Je package. In this way, packet time slots are provided on communication channel 330 to applications 301-1 to 301-L in accordance with the information in the primary frame. The statistical multiplexer 300 actually provides the two primary frames. This allows the static multiplexer 300 to construct a next primary frame and then connect to the next primary frame, as described above. As mentioned above, the primary frame is stored in DRAM 1207. At the appropriate time, a DMA traneference is used to move the input expressed in the primary frame from memory 1207 to the primary FIFO 1201. After the last input of the primary frame is transferred to the primary FIFO 1201, the DMA controller is redirected to the first input of the primary frame. In this cycle, it continues that a new primary frame is connected in another section, "Je DRAM. The DMA controller is directed to this new primary frame when desired. During the primary packet message cycle of a packet time, the machine in ACB state 311 reads the control word, ie, the first bit, of the primary frame input indicated by the primary frame indicator. If the Off bit is programmed, the rest of the control word is ignored and the rest of this primary frame input is read and read and an entry in the secondary frame is examined - as described below. The "Type" field is used in the primary frame input to define whether this packet is a normal data packet or a system clock packet. If the field in the Type field specifies that this package is a p >At the system clock, the primary status message cycle is erased and the ACB 311 setting machine moves over the bus bar message cycle and informs the 301-i application that it received the previous packet interval and it also gets this packet bandwidth.
If the Off bit is not active and the Type field is defined as a normal «Je« Jatoe package, the output machine ACB 311 acts as a primary message cycle. The ACB machine 311 performs a reading on the expiration of the encoder specified in the following doe bite of the entry. The data in this expression is a state indicating to the ethernet multiplexer 300 whether the encoder is expired from the packet bandwidth. If the encoder expired - the bandwidth of the packet declines, the data bit of the primary frame input is read and discarded. If the expressed encoder returns to an integer that owes this packet bandwidth, the busbar shake cycle provides address to the expired encoder to enable the encoder to inherit packet bandwidth. The secondary frame is used to distribute packages ^ irue are not distributed by the primary frame. As indicated above, in one mode, only fixed-rate applications are distributed in the primary frame, and variable-rate applications are distributed in the secondary frame. In this way, when the bit Off in the control word of the primary frame is programmed, the secondary frame is accessed. In this case, the ACB 311 status machine reads the control byte in the expired entry of the sub-frame.
At initialization, an indicator is pointer to the first entry in the sub-box and after an entry is used, the indicator is incremented by the ACB 311 status machine. Specifically, the machine «Je esta« Jo ACB 311 cyclically accees Lae entries in the secondary box. The ACB 311 state machine uses a counter to generate an indicator that cyclizes through the inputs. If the Off bit is programmed into the expiratory input of the secondary frame, the eneamble machine "~ packet near a minimum packet in this bandwidth of the packet, and the cycle of drumming of dietribution is erased.If the Bit bit Off is not programmed, the ACB 311 setting machine distributes this bandwidth of the packet towards the application lightens "Ja in the next two byt.es of this entry in the secondary square." Therefore, the distribution of the packages using the secondary and primary tables now becomes a / range of two rows. The flow for this process is illustrated in Figure 18. ACB state machine 311 in step 1802 first examines the entry in the primary FIFO 1201. If the current package is given to a fixed rate application, the package is offered to that application and the indicator for the primary table advances to 1 (modulating the total number of entries). However, if the packet is distributed to a variable application, as indicated by the null code in the primary frame, the revision of null code 1803 passes control to step 1805 and the ACB 311 state machine checks the secondary frame to verify that variable regime application is already distributed in the normal package. After offering the package to the application "Variable regime, the amboe indicators, both the primary and secondary frames advance by 1 (modulating the total number of the respective entry). These secondary tables reside in the shared memory 1202. This allows the machine of eeta «Jo ~ ACB 311 uee a picture while the microprocessor 312 build a second. As described above, a byte in the register "AC state machine", which is controlled by the microprocessor 312, controls which secondary frame accesses the ACB 311 output machine. The last cycle of cycle in the cycle interval ACB shake time of a packet time ee for general communications between the statistical multiplexer 300 and the applications 302-1 to 320-L. This table is structured by the 312 microprocessor and stored in the memory shared 1203. The ACB 311 setting machine cyclically accesses the inputs in the general communications table by using a counter to generate an indicator that cyclizes through the inputs. The ACB 311 status machine clears the general communication message cycle each time an input has a programmed Off byte. The input indicator in the General communications box remains in this input until the microprocessor 312 describes the ACB status machine control register to send more bytes of general communication. The ACB state machine generates an interrupt when it reaches a general communications frame input with the programmed Off byte. In the general communications message cycle, the ACB 311 state machine either reads a byte of the expressed application and places the byte within the byte field - Data of the general communication frame input, or read the data byte field of the general communication frame input and write this byte to the application. The data address is controlled by the camp > o Type of the entry. There are general com-ings and general caches that reside in the shared memory 1204. This allows the ACB 311 state machine to use a box while the 312 microprocessor builds the second, one byte in the register "Checking the scanner machine". ACB, which is controlled by the microprocessor 312, controls which frame the access machine is going to be connected to. ACB 311. During a transfer of the data in the cycle of the general communications message, the daetoecopical data signal can be eer reaffirmed many times. This allows the reading and writing of registers with more than 1 byte of 8 bytes. The multiple byte registers use eetroboßcópicoß datoß eubßecuentee for byt.es ßucesivoe of the regietro, beginning with the last significant byte. In this way, to write to a 16 byteß register, the master bar reaffirms the DS data stroboscopic signal twice, the first time with the last significant data byte, and the second with the more reliable byte of data. The reading of the region is carried out in the same way. The regions are arranged so that the toolbar can optionally read or write only the last byte (ß) ßigni icante. - Technically, there is no limit to the byte number that a record can have. In this way, a memory can be treated as a record, performing multiple byte or script readings. The microprocessor 312 in the ethereal multiplexer 300 communicates with the supervisor «Je system 340 on a superwire bar of line a. As explained above for page 401, the β-static multiplexer 300 is configured and controlled by the supervisor from seven to 340. The information passed between the statistical multiplexer 300 and the supervisor of the seventh 340 using link communication protocol of high level data. The particular barricade structure designed to form a communication path between the ethereal multiplexer 300 and the Euper to 340 eupervisor is not part of the present invention. The important aspect of the information provided by the eupermater 340 is the statistical multiplexer 300. The particular mode used to transport the information to the statistical multiplexer 300 J21 it is defined by the configuration of the supervisor of the system supervisor 340 and that will know when the bistatic multiplexer is configured with a particular system supervisor. As indicated in step 401, the system supervisor of the statistical multiplexer 300 points to the statistical rippler 300 which applications 301-1 to 301-L are in the system and applications 301-2 to 301-1. eßtan - configured. The system supervisor 340 also provides a method for updating the statistical multiplier software. In this mode, the reversions of the statistical software Jel 300 are loaded downwards on the system bias bar to the statistical multiplexer 300 and stored in a non-volatile incident memory 1206. The previous hardware description is illustrative only of one embodiment of the invention. In view of this process, the tables and data set by the statistical multiplexer as well as the communications with the encoders, communication channel and system supervisor can be implemented in a wide variety of formats. In addition, as mentioned above, the use of the statistical multiplexer for video data included is only illustrative. The statistical multipiex principles of this invention, in view of this disclosure, may be made by those skilled in the art for a wide variety of data standards.

Claims (31)

NOVELTY OF THE INVENTION CLAIMS
1. - A procedure of statistical multiplexing for a plurality of data streams competing for access to a communication channel comprising the steps of: a) populating a statistical frame in a memory of a multiplexer
"Statistical" Where said statistical table has an entry for each unit of data that can be sent on said communication channel in a predetermined period wherein said population step of the statistical table comprises: i) to give an entry in said statistical table to a said plurality of current of Jatoe; ii) storing a predetermined code in said input if said input is distributed to a data stream having a variable rate, iii) storing an indicator in said input that said input it is distributed to the data stream that has a fixed rate in which said indicator identifies the fixed rate data stream, and iv) repeats the item i) to iii) for each entry in said table, and b) each input In said statistical table, in the current selection of "Jatos in said plurality in data streams, the following data unit is sent to the data channel. 2. A method of statistical multiplexing according to claim 1, further characterized in that it comprises the step of: populating a dynamic frame wherein said dynamic frame population step further comprises: L) distributing an input of said dynamic frame to one of A) one of a plurality of entities of "variable rate jacks in said plurality of data streams and B) a variable rate data stream of minimum data units; n) storing in said input an indicator for said variable rate data stream when distributing said input to the variable data variable current; and ni) repeat steps i) to n) for each entry in said dynamic frame.
3. A method of statistical multiplexing according to claim 2, characterized by "Jernas" because said step of each input in said static table comprises: accessing an input in said dynamic frame, upon detecting an entry in said static frame that contains the default code, to select the variable rate data stream.
4. A method of statistical multiplexing according to claim 3, further characterized by comprising the step "To adjust a number of datasets for data transmission for transmission on said communication channel for each data stream". of variable regime that has a quality measurement parameter outside of a predetermined scale.
5. A method of statistical multiplexing according to claim 4, further characterized in that it comprises the step of: distributing- an input in the second dynamic frame to one of A) said plurality of variable rate data stream in the plurality of data streams and B) a variable rate data stream of minimum data units; ii) storing in said input an indicator for said data stream of variable regime when said input is distributed to said variable regime current; and iii) repeating steps i) to ii) for each entry in the second dynamic frame.
6. A statistical multiplexing procedure according to claim 5, further characterized in that it comprises the steps of: changing said dynamic frame to said second dynamic frame so that the second dynamic frame is available for use in another window of predetermined time following a predetermined time window in which the dynamic frame is used.
7. A method of statistical multiplexing according to claim 2, further characterized in that the step of populating a dynamic frame is done once in a predetermined time window.
8. A method of statistical multiplexing according to claim 3, characterized in that the step of: collecting data for each stream «Je« Jatoe variable rate to generate a parameter that characterizes the data stream of variable regime.
9. - A statistical analysis procedure according to claim 8, further characterized in that it comprises step e: generating for each variable rate data stream said parameter that characterizes the variable data rate comentor.
10. A method of statistical multiplexing according to claim 8, further characterized in that said parameter comprises a measure "Je distortion.
11. A method of statistical multiplexing according to claim 9, further characterized in that it comprises the step of: adjusting a number of distributed data units for transmission on said communication channel for each of the data streams of variable rate with said pair out of a predetermined scale.
12. A procedure for statistical nultiplexion according to claim 11, further characterized in that a lower limit of said predetermined scale is a product of a first hysteresis coefficient and a distortion stop.
13. A statistical nultiplexing procedure according to claim 11, characterized by "Jemas because a limit eup > This parameter is determined by a product of a second hysterectie coefficient and a parameter of tensor.
14. A method "Statistical multiplexing according to claim 11, further characterized in that it comprises the step" Je: populating a second dynamic quadr-o using the number of units adjusted of data distributed for tranemieión on said communication channel for each one of the variable rate data streams wherein said second population step "The dynamic frame further comprises: i) giving an input in the second dynamic frame to one of A) one of said plurality of data streams of variable rate in said plurality of data rate and B) a variable rate data stream of minimum data units; ii) storing in said input an indicator for said variable data stream to the eer distributed in said input to the data stream of variable regime; and iii) repeat loe paeoe i) to ii) for each entry in said second dynamic table.
15. An endpoint multiplexing method according to claim 14, characterized in that it comprises the step of: changing said dynamic frame to the second dynamic frame so that said second dynamic frame is available to be stored in another predetermined time window. by following a predetermined time window in which the dynamic frame is displayed.
16. An end-user multiplexing method according to claim 3, characterized in that said plurality of data streams includes a stream of coded video data.
17. - A statistical multiplexing procedure for a plurality of coded streams by sharing access to a communication channel comprising the steps "E: assigning a scheme to each encoder", the variable regime that generates one of said plurality of data streams. encoded, and each fixed rate encoder that generates one of said plurality of encoded data streams; populate a table that has a predetermined number of entries, where said regime is assigned, where each entry in said table is distributed to one of i) of said plurality of streams of encrypted data and ii) a stream of "Jatoe of variable variable of minimum size; and using each frame entry in said frame to select a coded data stream.
18. A method of statistical multiplexing according to claim 17, characterized in that said assignation of a steady state regime and a fixed rate encoder and to each encoder of variable regime is assigned a guaranteed regime.
19. A method of statistical multiplexing according to claim 18, characterized in that in said step of initialization, to each encoder of variable regime, a minimum value of dietoreión is assigned.
20. A method of statistical multiplexing according to claim 18, characterized by "Jemás" because said step of populating a table further comprises: i) storing a predetermined code in said entry if said entry "D is allocated to a stream of" Jatos that have a variable regime; ii) storing an indicator in said input and said input is distributed to a coded data stream having a fixed rate wherein said indicator identifies the fixed rate data stream; iii) repeat step i) and ii) for each entry in said table.
21. A process of statistical multiplexing according to claim 20, further characterized in that it comprises the step of: populating a second frame wherein said second frame population step further comprises: i) distributing an entry in the second frame in one of A) one of a plurality of variable data streams of variable rate in said plurality of data streams encodes "Jos and B) a variable rate data stream of minimum unit packets; ii) storing in said input an indicator for said coded data stream of variable rate to the eer distributed said input to the coded variable rate data stream; and iii) repeat loe paeoe i) and ii) for each entry in said second table.
22. A method of statistical multiplexing according to claim 21, characterized in that the step of passing each entry in the first mentioned frame also comprises: accessing an entry in the second frame, upon detecting an entry in the first mentioned frame that contains the predetermined code, to select the variable rate data stream that sends the next packet to the communication channel.
23. A method of statistical multiplexing according to claim 21, further characterized in that it comprises the step of: collecting data for each data stream encoded variable rate of a variable rate encoder to generate a parameter e distortion that characterizes said variable rate encoded data stream and said variable rate encoder.
24. A method of statistical multiplexing in accordance with claim 23, characterized in that it comprises the step of: generating said dietorection parameter that characterizes a variable rate data stream quality.
25. A method of statistical multiplexing according to claim 24, characterized by "Jemae" because it comprises the task of: adjusting a number of dielectric packets to each of the coded data streams of variable regime using the dietary parameter ei said eeta scatter parameter out of a predetermined scale. 26.- A process of modular multiplexing according to claim 25, further characterized in that a lower limit of said predetermined scale ee a product of a first hysteresis coefficient and a minimum value of distortion. 27. A method of statistical multiplexing according to claim 25, further characterized in that an upper limit of said predetermined scale is a product of a second coefficient of hystereey and a second minimum value of distortion. 28. A method of statistical multiplexing according to claim 25, further characterized in that it comprises the step of: populating a third frame using said adjusted number of distributed packets for transmission on said communication channel where the third frame population step further comprises: i) distributing - one entered in the third frame for one of A) one of said plurality of coded data stream of variable rate in said plurality of coded data stream and B) a data stream "Je regime minimum unidadee package variable; ii) store-in said entry an indicator- for said stream of variable-rate coded data when it is distributed in said input to said stream "Je" Jatos of variable regime; and iii) repeating steps i) to ii) for the entry into said third table. 29. A method of statistical multiplexing according to claim 28, characterizes «Ja a« Jernás because it contains the purpose of: changing from the second frame to the third frame so that the third frame can be set in another predetermined time window following a certain time window in which the second frame is used picture. 30. A method of statistical multiplexing according to claim 21, further characterized in that said plurality of data stream includes a coded video data stream. 31.- A procedure of statistical multiplexing for a plurality of streams of coded data that share a communication channel that includes the data of: collect data p >For each variable data stream encoded by a variable rate encoder in said plurality of data stream encoded to generate a parameter of characterization that characterizes said data stream of variable regime, generate for each data stream encoded by regime variable said distortion parameter that characterizes a quality of the variable rate encoded data stream, adjust a number of packets located to each of the variable rate encoded data streams in a selected period if said etore differential parameter is a eecala predetermines; populating a frame using an adjusted number of distributed packets where said frame population step comprises: i) distributing an input in said frame to a "Je A" a variable rate data stream in a plurality of data streams; coded variable regime that includes in said? lurali «Jad« Je streams «Je 'coded atos and B) a stream of variable coded data from packages of minimum units; ii) storing in said input an indicator for said variable rate coded data stream when said input is distributed to the coded variable rate data stream; and iii) repeating steps i) to ii) for each entry in said table; change to said box so that the table is used «Jo by an efficient multiplexer to determine the current of« variable rate Jatoe that sends in new package to the communication channel.
MXPA/A/1996/005759A 1994-05-20 1995-05-19 Method to distribute dynamically communications channel bandwidth complete entreaplications MXPA96005759A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08246442 1994-05-20
US08/246,442 US5506844A (en) 1994-05-20 1994-05-20 Method for configuring a statistical multiplexer to dynamically allocate communication channel bandwidth

Publications (2)

Publication Number Publication Date
MX9605759A MX9605759A (en) 1998-10-31
MXPA96005759A true MXPA96005759A (en) 1999-01-11

Family

ID=

Similar Documents

Publication Publication Date Title
US5506844A (en) Method for configuring a statistical multiplexer to dynamically allocate communication channel bandwidth
US5909250A (en) Adaptive video compression using variable quantization
US5260783A (en) Layered DCT video coder for packet switched ATM networks
CA2166387C (en) System for multiplexed transmission of compressed video and auxiliary data
US5838686A (en) System for dynamically allocating a scarce resource
US6049330A (en) Method and apparatus for optimizing storage of compressed images in memory
US5848266A (en) Dynamic data rate adjustment to maintain throughput of a time varying signal
US20070053380A1 (en) Apparatus and method to achieve a constant sample rate for multiplexed signals with frame boundaries
KR20010053002A (en) Video encoder and encoding method with buffer control
US5926223A (en) Adaptive video decompression
CN114510191A (en) Screen projection method and device
EP0759677A2 (en) A method of storing data and a data storing apparatus
US6954503B1 (en) Video image coding apparatus with individual compression encoding sections for different image divisions
EP0803163B1 (en) A multiplexer system using constant bit rate encoders
Claypool et al. End-to-end quality in multimedia applications
CN108769600A (en) A kind of desktop sharing system and its desktop sharing method based on video flowing tune frame per second
MXPA96005759A (en) Method to distribute dynamically communications channel bandwidth complete entreaplications
JP2003259315A (en) Apparatus and method for transmitting image
WO2019077303A1 (en) Encoding and transmission of display data
JPH09512397A (en) Complexity determination device
CN113707101A (en) Mini LED backlight control method, device and related equipment
JP2003134342A (en) Picture processor, and method therefor and program thereof
EP0756789B1 (en) Complexity determining apparatus
Chang Delay-cognizant video coding
EP0756788B1 (en) Parameter sampling apparatus