WO2002045307A1 - Method and apparatus for progressive transmission of time based signals - Google Patents

Method and apparatus for progressive transmission of time based signals Download PDF

Info

Publication number
WO2002045307A1
WO2002045307A1 PCT/US2000/032628 US0032628W WO0245307A1 WO 2002045307 A1 WO2002045307 A1 WO 2002045307A1 US 0032628 W US0032628 W US 0032628W WO 0245307 A1 WO0245307 A1 WO 0245307A1
Authority
WO
WIPO (PCT)
Prior art keywords
signal
key
data
value
key values
Prior art date
Application number
PCT/US2000/032628
Other languages
French (fr)
Inventor
Halldor Gudjonsson
Original Assignee
Oz.Com
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oz.Com filed Critical Oz.Com
Priority to AU2001219367A priority Critical patent/AU2001219367A1/en
Priority to PCT/US2000/032628 priority patent/WO2002045307A1/en
Publication of WO2002045307A1 publication Critical patent/WO2002045307A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/062Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
    • H04J3/0632Synchronisation of packets and cells, e.g. transmission of voice via a packet network, circuit emulation service [CES]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0204Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using subband decomposition

Definitions

  • the present invention relates generally to signal transmission and, more specifically, to a computer-implemented method for optimizing the transmission of an animation across an electronic network.
  • Animations were being produced soon after the development of the movie camera. These early animations were stop-motion films of two or three dimensional representations, such as watercolors or clay figures. With advances in the fields of computing and electronic networks, it has now become possible to computer generate animations, and to electronically transmit animations over networks such as the Internet.
  • a fixed rate data channel can be characterized by a steady stream of data packets of uniform size.
  • the signal To stream a signal, the signal must first be parsed into packets for transmission.
  • One typical prior approach for parsing the signal is to sample the signal values over time at a fixed rate. A fixed time slice of the resulting information can then be packaged into a data packet. Compression methods can then be used to decrease the size of each packet before transmission. This produces data packets of fixed time length but, usually, variable size. During periods of low signal activity, higher compression can be achieved per time slice than during periods of high signal activity. Data packets describing periods of low signal activity can therefore be compressed to smaller sizes than other packets.
  • This prior art method is subject to several limitations. First, sampling the signal values and transmitting the samples results in loss of some signal data.
  • the sampling rate imposes a fixed frame rate on the signal curves and the receiver is not provided with precise information as to the behavior of the curves at the times between the samples.
  • the sampling rate is frequently used as a driving rate for the regeneration of the signal curve. Therefore, the receiver never receives the signal at a higher frame rate than the sampling rate.
  • Another limitation of the prior art method is that fixing the packet time span while varying the packet size is an inefficient use of bandwidth. Some packets may contain no data, while excess data may be truncated from other packets. This may result in significant signal degradation. Furthermore, the amount of time required to stream the entire signal can be significantly increased if many packets contain little or no data.
  • Figure 5a is a diagram of signal data packets according to the prior art.
  • Each data packet 502, 504, 506 represents the same time slice, in this example, two seconds. However, the amount of data stored in each of these packets is different. For example, the first packet 502 is filled with data while the second packet 504 is only partially filled.
  • the third packet 508 originally included more data than could be accommodated by the transmission bandwidth. As a result, the excess data 514 was truncated and not transmitted.
  • the present invention is a computer-implemented method and apparatus for progressively transmitting time-based signals across an electronic network.
  • data signal parameters are analyzed and the signal is encoded and transmitted such that data packet storage capacity is optimized.
  • the invention can be used for purposes including but not limited to transmitting animation, audio, and video signals across an electronic network and reconstructing the signal or signals at a receiver.
  • the preferred embodiment of the present invention is directed to the streaming of animation signals.
  • a first computer is used to parse the signal into transmittable data packets using the method according to the present invention.
  • an encoding software application is used to mathematically model the signal, to identify key values, and to sort the key data into data packets for transmission across the electronic network.
  • a second computer receives the data packets and re-generates the original signal using a decoding software application.
  • the present invention can be used with signals that are reasonably well-behaved such that a mathematical model can be derived to approximate the signal to within an acceptable level of accuracy.
  • This model must be localized such that relatively few points are needed to effectively use the model.
  • the amount of data in each transmitted data packet is optimized.
  • Data is not transmitted sequentially according to consecutive time slices. Rather, the signal data is parsed according to when the information is actually required at the receiver to regenerate the signal. This data is then transmitted in temporal order, according to when it is needed, rather than according to when the data actually occurs in the signal. Any space that is not filled in earlier data packets is filled with data from later time slices in the signal. This data is stored in a buffer until needed to re-generate the signal. As a result, the data packets according to the present invention each contain approximately the same amount of data, but represent differing time slices.
  • Figure 1 is a block diagram of a computer network according to one embodiment of the present invention.
  • Figure 2 is a block diagram illustrating an apparatus for accessing an electronic network, according one embodiment of the present invention.
  • Figure 3 is a graph of a general signal over time.
  • Figure 4 is a graph of an audio signal over time.
  • Figure 5 a is a diagram of signal data packets according to the prior art.
  • Figure 5b is a diagram of signal data packets according to the present invention.
  • Figure 7 is a graph illustrating the timing curve of Equation (5).
  • Figure 8 is a schematic depiction illustrating the progressive transmission of N signals from server to client according to the present invention.
  • Figures 9a and b are bar graphs illustrating the bandwidth requirements for a packet stream according to Equation (23).
  • Figure 10 is a flow chart of the method according to a preferred embodiment of the present invention.
  • Figures 1 la-c are graphs of the timing curves in Equations (26) through (28).
  • Figure l id depicts an example of the variance over time of an animated signal when different timing curves are combined into a piecewise curve.
  • Figure 12 is a series of graphs of concurrent real-time signals according to the present invention.
  • Figures 13 through 14 are graphs illustrating the encoding and temporal re-ordering of the real-time signals of Figure 12.
  • a method and apparatus for progressively transmitting time-based signals is described.
  • data signal parameters are analyzed and the signal is encoded and transmitted such that data packet storage capacity is optimized.
  • the present invention can be used for purposes including but not limited to transmitting animation, audio, and video signals across an electronic network and reconstructing the signal or signals at a receiver.
  • the present invention is implemented using a computer.
  • Such computer can include but is not limited to a personal computer, network computer, network server computer, dummy terminal, local area network, wide area network, personal digital assistant, work station, minicomputer, and mainframe computer.
  • One such computer is operable to parse the signal into transmittable data packets according to the present invention, and another such computer that receives the data packets is used to re-generate the original signal.
  • the present invention can be used with any other hardware components that facilitate the creation, transmission, and regeneration of the signal.
  • Such hardware components include but are not limited to video capture boards, sound cards, rendering devices, sound recording equipment, film editing equipment, video cameras, and microphones.
  • the signal identification, parsing, sorting, transmission, buffering, and/or regeneration features of the present invention can be implemented as one or more software applications, software modules, firmware such as a programmable ROM or EEPROM, hardware such as an application-specific integrated circuit ("ASIC"), or any combination of the above.
  • the present invention can be used with any appropriate third-party software applications, for example, animation rendering applications, music composition applications, sound mixing applications, and graphics applications.
  • FIG. 1 is a block diagram of a computer network system 100 according to one embodiment of the present invention.
  • a network server computer 104 is connected to a network client computer 102 through a network 110.
  • the network interface between server computer 104 and client computer 102 can also include one or more routers, such as routers 106 and 108.
  • the routers serve to buffer and route the data transmitted between the server and client computers.
  • Network 110 may be the Internet, a Wide Area Network (WAN), a Local Area Network (LAN), or any combination thereof.
  • WAN Wide Area Network
  • LAN Local Area Network
  • one or more encoding software applications accessible to a transmitting network client computer can be used to mathematically model a signal and to identify and sort the key values of the mathematical model into data packets for transmission.
  • Decoding software applications can also be used to re-generate the original signal at a receiving network client computer.
  • Any or all of the software applications or hardware configurations of the present invention can be implemented by one skilled in the art using well known programming techniques and hardware components. The entire process and apparatus or any portion thereof can reside with one or more users or third parties.
  • the present invention can be implemented as one or more software applications, software modules, plug-ins, firmware, and hardware that are provided to individual users for their utilization in transmitting or receiving time-based signals.
  • the encoding and decoding functions are performed by the same software application. However, in alternative embodiments, the encoding and decoding functions are performed by different applications.
  • the original signal data source for the original signal can be in any appropriate form, including but not limited to processed film (black-and-white, color, or negatives), video, CD, CD-ROM, photographs, optical disks, audio tape, phonographic recordings, Digital Video Disks, and computer images.
  • Computer image data sources can be stored in any format including but not limited to MP3, and QuickTime animations.
  • the present invention is used to transmit signals across an electronic network, such as the Internet or a local area network ("LAN").
  • the transmitting and receiving computers are adapted for communication with the Internet.
  • the signal is transmitted through any appropriate communication device or connection, including but not limited to modem, satellite transmission, cable transmission, Ethernet, ADSL, ISDN, or TI.
  • Figure 2 is a block diagram illustrating an apparatus 200 for accessing an electronic network, according to one embodiment of the present invention.
  • a computer 202 is adapted for communication with an electronic network 204 such as the Internet.
  • Animation signal 206 can be stored on the computer, for example, in a database.
  • An encoding software application according to the present invention 208 also resident on the computer, can be used for example, to mathematically model the invention, to identify key values, and to sort the key data into data packets for transmission across the electronic network. The re-generation of the received signal or signals can then be performed using a decoding software application 210 resident on the receiving computer 212.
  • the encoding and decoding software applications must be compatible with one another. As an example, there must be an agreement between these applications as to the types of parametric curves that are to be used in the streaming session.
  • the types of parametric curves are incorporated as a part of the software. For example, information that curve 1 is a constant curve while curve 2 is linear can be hardcoded into the encoder application that generates the streaming data and the decoder application that decodes the key values and timing curves into signal data. Both applications will therefore be configured to use the same types of parametric curves.
  • the transmitting computer and the receiving computer can initiate a "handshake" session to mutually establish an agreement as to the types of timing curves to be used in a streaming session.
  • the transmitting computer provides instructional information to the receiving computer so that the receiving computer can interpret different timing curves. The embodiment is advantageous because it is dynamic and provides flexibility.
  • the transmitted signal is stored for re- generation at a later time.
  • the signal data can be stored on at least one database that is on the same computer as the signal re-generation software application, or on any storage device or other computer(s) accessible thereto.
  • This embodiment is advantageous when it is desirable to optimize the data transmission process but there is no need for immediate re-generation of the transmitted signal.
  • this alternative embodiment can be used to reduce expenses when the cost of transmission is related to the length of the transmission across the electronic network.
  • the present invention can also be used with conversion methods that transform irregular signals that are not readily mathematically modeled into more regular signals. For example, when there is an error tolerance level for a re-generated signal such that an approximation of the original signal can be transmitted, the present invention can be adapted to approximate the signal and then transmit it according to the teachings herein.
  • a signal can be represented as a series of curves that describe the change of signal values over the time period of the signal.
  • a curve is the locus of a point moving in space with one degree of freedom.
  • a common method for describing curves mathematically is by representing them with parametric equations. Parametric equations express the points on a curve explicitly in terms of other variables or parameters that are, in this context, regarded as independent variables.
  • Figure 3 is a graph of a general signal over time.
  • the signal S can be any type of signal such as a sound, a video signal, and an animation.
  • the term signal can refer to any particular quantity that varies with time.
  • the graph of Figure 3 represents a model of 3,000 seconds of a signal.
  • the present invention can be used with signals that are reasonably well- behaved such that a mathematical model can be derived to approximate the signal to within an acceptable level of accuracy. This model must be localized such that relatively few points are needed to effectively use the model. By contrast, in a non-localized signal, all of the points for the entire signal might be required to determine the signal parameters at, for example, point TI of Figure 3.
  • Figure 4 is a graph of an audio signal 400 over time.
  • the signal is sampled at various points.
  • it can be extremely difficult to sample a complex signal and might require the sampling of a very large number of points to achieve a reasonable level of accuracy. It is not practical or even possible to sample certain signals with any accuracy.
  • the present invention uses a mathematical model 420 of the audio signal with a set of key values 402, 404, 406,
  • the preferred embodiment of the present invention is directed to the streaming of animations.
  • One way to transmit an animation over an electronic network is as a signal.
  • Animation signals are well-adapted to being represented by a mathematical model.
  • the teachings of the invention can also be applied to any other type of signal that is capable of being represented by a mathematical model that is well localized.
  • the invention can also be adapted to permit the streaming of signals that are not well-represented by a mathematical model, such as a high frequency signal. However, in this case, more data would be required to be processed to properly stream the signal.
  • Each data packet is then transmitted over an electronic network, regardless of how much data is actually included or excluded from a packet at a particular time slice. Thus, it is possible to send an empty packet, or to lose information that could not fit into the packet for the particular time slice.
  • FIG. 5b is a diagram of signal data packets according to the present invention. Each data packet 508, 510, 512 is filled with data, unlike the prior art data packets 502, 504, 506 of Figure 5 a.
  • timing curves can be used to describe the change of a value or property over time.
  • timing curves describe signals over time.
  • time is the key parameter, it can be desirable to represent a timing curve by a parametric equation.
  • a timing curve, f can be represented by an equation of the form:
  • Equation (3) is a parametric representation of the family of curves that begin at value zero and grow at some steady rate over a period of time. It is important to distinguish between the two parameters of time t and rate r.
  • the rate r is a fixed attribute of a particular signal.
  • the time t is a continuous variable that represents the time variations of the signal.
  • f(a,b,t) the function representing the linear timing curve with parameters a,b, at time t.
  • Equation (4) describes a signal that starts at a fixed value b and then changes at a steady rate a. However, Equation (4) does not represent a signal that does not change at a steady rate. Therefore, it is desirable to divide the time span of a signal into smaller intervals, each of which can have a different fixed value and can change at a different steady rate. Therefore:
  • s(t) the time-variable signal
  • brush the fixed value for interval n
  • a n the rate of change for interval n
  • triz the time at the beginning of interval n.
  • Figure 7 illustrates the timing curve 700 described by Equation (5).
  • the formulation described by Equation (5) does not require the signal to change continuously with time.
  • Figure 7 is a curve represented by individual line segments 702, 704, 706. It is possible to select individual values, or points on the curve of Figure 7 that, combined with Equation (4) can be used to describe a signal over time. These characteristic parameters of the signal will be referred to for the purposes of this discussion as key values.
  • the values a_, b_, and t_ are key values of the signal s(t) of Equation (5).
  • Equation (5) can also be written in a different, more compact notation.
  • the linear timing curve can be defined as follows:
  • Equation (6) On the interval [t,, t 2 ) the curve represented by Equation (6) is the same as that represented by Equation (4). Outside of the interval [t perennial t 2 ), the value of the equation is zero. Equation (5) can therefore be re-written as:
  • Equation (8) It is required that the key values of Equation (8) be ordered such that:
  • Streaming is the process of progressively sending data in packets that are re-generated at a receiver during transmission.
  • a data packet is a portion of a signal that is separated for transmission across an electronic network according to a selected time interval.
  • a fixed rate data channel can be characterized by a steady stream of data packets of uniform size.
  • the key values in the set K are transmitted across the electronic network in data packets through such fixed rate channel.
  • a set S of signals described by parametric timing curves can be described by the notation:
  • Figure 8 is a schematic depiction of the signals in set S.
  • the Figure illustrates the progressive transmission of N signals 802, 804, 806 from the server 810 to the client 820 across an electronic network 814.
  • the signals are transmitted from the server as packet data 812 that is received 822 at the client. No correlation is assumed between the signals in S. For purposes of this description, these signals can be independent or interdependent. In
  • the time t c is the current location of signal re-generation on the client side.
  • the time t s is the time length of server transmitted signal data.
  • each signal s_ can be completely described by a finite set of key values
  • n_ - the number of key values for signal s
  • the number of key values is allowed to vary among signals. This number is specific to each signal. In general, signals exhibiting regularity or little variation require fewer key values than irregular signals. Because each signal is completely described by its key values, it is possible to define a general mapping, s(K_,t). Using this mapping, it is possible to derive the signal value at any time t given the key value set for a signal.
  • mapping T min (k_ ⁇ and T max (k iJ ) can be introduced to properly define K (t).
  • the mapping T min (k ⁇ gives the smallest time value at which a key value contributes to the signal value.
  • the present invention can be used to stream the key values in K by transmitting them in data packets through a fixed rate channel.
  • key values are transmitted in data packets of varying time slice and filled to approximately the same size.
  • the present invention uses a stream header to transmit certain information to the receiver.
  • a stream header is a packet block that is sent before a streaming session is initiated.
  • the stream header includes information that the decoder will need to re-generate the animation signal. This information can include but is not limited to the time length of the animation and mapping parameters.
  • the stream header information is used by the decoder to determine the signal output. In the example of animation, the stream header information contains binding information regarding exactly what the signal animates.
  • mapping parameters can include, for example, the information that a first signal is the height of a first element (property) in the animation and that a second signal is the color of a second element (property).
  • temporal order is defined as the order in which the key values should be sent to maximize the time length of valid signal data at the receiver.
  • the union K of all key values can be represented as:
  • T middy(Ki j ) is the time at which key / first contributes to the value of signal s. To properly re-generate this signal, the key y ' is needed at and after that time.
  • the first key that should be transmitted is the key among all the signals that has the lowest T min , i.e. the first key in K. This is because the time length of valid signal data at the receiver is only as long as the shortest valid signal.
  • the order of T min values can be determined using, for example, the Quick Sort function of the C programming language.
  • the decoder software application at the receiving computer is programmed with the types of parametric timing curves, in other words the equations, that will be utilized by the encoder software application, the only information that the encoder requires to generate the signals according to the present invention is the key values. Each key value has a particular associated time. Therefore, even if packets are received in a non-sequential order, the decoder will be able to re-generate the signal from the timing information and the key values.
  • the timing information for a key value is transmitted to the receiving computer in the data packet containing that key value. For example, if a data packet contains ten different key values, the packet will also contain the timing information for each of the ten key values.
  • the data packets also include information that identifies the particular signal to which each key value belongs.
  • an effective data compression procedure is preferably used to compress the timing information.
  • Timing information can therefore be encoded as time differences within the respective packets.
  • the time span of a packet is defined as the time interval that the packet data describes completely. It is assumed herein that all previous packets have been received. The time span of packet/? is therefore:
  • k'_ denotes the first key in packet number i.
  • a common procedure used to facilitate streaming methods is buffering.
  • Buffering is the act of transmitting signal data to the receiver before any signal re-generation is performed at the receiver.
  • This signal data is temporarily stored or buffered in one or more buffers until it is required for the re-generation procedure. Buffering can be advantageous because it gives the transmitter a lead time over the receiver. This makes the streaming more tolerant of bandwidth fluctuations.
  • the channel data rate temporarily drops during the streaming process, the receiver will be unaffected for the duration of the buffered signal data. If the data rate accelerates before the buffer is cleared, then the receiver will not experience any signal loss.
  • buffering can be used to lower the bandwidth required for the streaming process. This can be particularly effective for signal sets that require a large number of key values at the beginning, i.e. when E Organic,, and, until E Organic,, until E Organic, until E Organic, until E Organic, until E Organic, until E Organic, until E Organic, until E Organic, until E Organic, until E Organic, until E Organic, until E Organic, until E Organic, until E Organic, until E Organic, until E Organic
  • the lead time provided to the transmitter is determined by the equation:
  • Equation (18) makes use of the fact that, as has been shown in Equation (17), the sum is telescoping. Equation (18) can also be viewed as an expression determining / for a given T b ⁇ r Therefore, the equation determines the number of packets required to furnish a specified buffer time.
  • the number of seconds ⁇ that it takes to transmit the next packet should be selected to be:
  • Equation (21) expresses the bandwidth required by the first progressively transmitted packet. In the Example, this is packet number 1 + 2. Equation (21) can be used to determine a good location in the packet sequence to stop buffering and to start streaming. The number of buffered packets / is increased until the equation produces a reasonable bandwidth 20 requirement. This determination is especially useful if a specific buffer time is not mandated. To find the bandwidth required for a streaming session of n packets, Equation (21) must be maximized over the entire set of progressively transmitted packets:
  • Equation (17) the sum in the denominator is telescoping and thus:
  • Figures 9a and b are bar graphs illustrating the bandwidth requirements for a packet stream according to Equation (23).
  • the bandwidth, R, as determined by Equation (23) for packets 3 and 4 is sufficient to successfully stream packets 5 and 6 as well as parts of packets 7 and 8.
  • Equation (23) is derived with the condition that at least a buffer of time length T b ⁇ r is maintained.
  • this restriction can be loosened such that it is required only that the receiver never run out of valid signal data.
  • streaming can begin with packet number / + 1, instead of / + 2.
  • the bandwidth required for this packet is:
  • Equations (17) and (18) have both been used in the derivation of Equation (25).
  • Figure 10 is a flow chart of the method according to a preferred embodiment of the present invention.
  • a new and empty streaming file must first be opened 1000 and signal data acquired 1005. A determination must then be made as to whether the signal data is in parametric timing curve format 1010. If not, the signals are converted to parametric format 1015.
  • Redundant key values are filtered out from the parametric signal data 1020. Curve fitting over two or more time intervals can be used to reduce the number of key values required to represent the signal data 1025. A user-specified error margin can be used to determine whether the curve fitting is within acceptable parameters. All key values are subsequently merged into one list 1030. The temporal order of the key values of the list are determination must then be made as to whether the signal data is in parametric timing curve format 1010. If not, the signals are converted to parametric format 1015.
  • Redundant key values are filtered out from the parametric signal data 1020. Curve fitting over two or more time intervals can be used to reduce the number of key values required to represent the signal data 1025. A user-specified error margin can be used to determine whether the curve fitting is within acceptable parameters. All key values are subsequently merged into one list 1030. The temporal order of the key values of the list are determined and the list is sorted accordingly 1035. If the key list is empty 1040, the packet time length table and Equations (23) and (25) are used to calculate the required streaming bandwidth 1045. If the bandwidth requirements are acceptable 1050, the streaming file is closed 1055. If the bandwidth requirements are not acceptable, the contents of the streaming file are erased 1065. New user-defined values for curve-fitting and quantization error are selected 1060 and the curve fitting step 1025 is once again performed.
  • a new empty data packet of fixed size is created 1070.
  • the first key is removed from the temporal order list and encoded into this empty data packet within a user-specified quantization error.
  • a determination is made as to whether the data packet is now full 1080. If not, step 1075 is repeated with the next key in temporal order from the list. If the data packet is full, the time length of the valid curve data is stored in the packet in a table 1085. The packet is then written to the end of the streaming file 1090.
  • the method disclosed herein will be applied to the streaming of three-dimensional ("3D") animation. Motion and any other temporal changes in a computer generated 3D environment are generally grouped under the term "3D animation" This type of animation is most commonly acquired by three means:
  • Equation (28) The following Hermite basis functions have been introduced into Equation (28):
  • Figures 1 la-c are graphs of the timing curves in Equations (26) through (28).
  • Figure lid depicts an example of the variance over time of an animated signal when different timing curves are combined into a piecewise curve. This is similar to the signal illustrated in Figure 7. However, in this example, curves of different degree can be used on each interval. Thus, the signal shape is potentially more varied that that shown in Figure 7.
  • the signal shown in Figure 11 changes continuously with time with the exception of the endpoints of constant curves g,.
  • This is a common practice in animation authoring tools because animated values usually change continuously with time and any desired discontinuities can be introduced by using constant curves.
  • This property allows adjacent signal intervals to share parameter values. For example, if a linear segment g 2 connects continuously with a Hermite segment g 3 , the parameters ⁇ and t 2 for the linear segment must be equal top, and t, for the Hermite segment. This property becomes evident upon examination of Equations (27) and (28).
  • the key value vector k can be defined as follows:
  • j e ⁇ 1,2,3 ⁇ denotes the timing curve type; p is the value of the curve at time r; d " is the left tangent of the curve at time ⁇ ; and d + is the right tangent of the curve at time ⁇ .
  • Tangents are only needed for parametrization of Hermite splines. Therefore, specifying tangents for other curve types is redundant. However, such redundancy is warranted in this example because it facilitates the unification of the notation and the simplification of the related algorithms. This redundant information is eliminated in the pre- process steps for progressive transmission.
  • 1 and m will represent two successive key values. Therefore, it is required that the time rof 1 is less than that of m.
  • the notation k_ will be used to denote the i-th component of vector k. The two key values are then successive if:
  • K ⁇ k tract ..., k navig ⁇ is the set of key values for the signal.
  • Equation (37) The sharing of parameter values is demonstrated by the formulation of Equation (37). Curves on adjacent time intervals, for example,/ andy + 1, both require the key value k j+1 . The temporal order of the key values must also be determined. This is achieved using the operator T min . T mi heap gives the smallest time value at which a key contributes to a signal value.
  • a key value is needed at the time of the previous key ,.. ; if the timing curve between the two is linear or Hermite. Both these curves interpolate between the points of two key values. Both keys are therefore required to generate a value on the curve. It is only in the case of the non-interpolating curve, g clergy that the second key isn't needed.
  • the preferred embodiment of the present invention is adapted for use with any 3D rendering engine for visualization, including but not limited to Microsoft's Direct3D and Criterion's RenderWare.
  • the present invention can be implemented with any computer operating system including but not limited to Microsoft Windows, UNIX, LINUX, Apple's MacOS. It is also compatible with any networking applications including but not limited to those of Sybase, Novell, Apple, and Microsoft.
  • the present invention can be integrated with computer games or other applications through SDK.
  • the application can be used as a complement to, or as a module for integration with other applications requiring 3D visualization.
  • the preferred embodiment of the invention is compatible with high-end authoring tools such as Softimage 3D, Maya, and 3D Studio Max.
  • the present invention can be used with any appropriate streaming protocol, including but not limited to RealNetwork's RTSP.
  • the present invention can be applied to any type of signal transmitted over an electronic, satellite, or other type of data broadcast network. Such signals can also include analog, digital, and power signals.
  • the method and apparatus described herein can readily be used to stream either compressed or uncompressed signals. Other streaming methods can also be used in conjunction with the present invention.
  • Figure 12 is a series of graphs of concurrent real-time signals according to the present invention.
  • One of skill in the art will readily recognize that the key values of signals s,(t) s 2 (t) and s 3 (t) can be determined, for example, using the process described herein with respect to Figure 10.
  • Figures 13 and 14 are graphs illustrating the encoding and temporal re-ordering of the real-time signals of Figure 12. As shown in Figure 13, the bandwidth required to transmit the concurrent real-time signals of Figure 12 might, at times, exceed the available bandwidth for transmission and therefore not be transmitted.
  • By encoding and temporally re-ordering the signal data according to the present invention it is possible to transmit the signal data for the concurrent signals while minimizing, if not eliminating entirely, signal loss and degradation due to inadequate bandwidth.

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A method and apparatus are provided for progressively transmitting time-based signals across an electronic network (204). A first computer (202) uses an encoding software application (208) to analyze and mathematically model the signal (206). The signal data is parsed according to when the information is actually required at the receiver to re-generate the signal and key values are identified. The key value data is sorted into data packets for transmission in temporal order, according to when it is needed, rather than according to when the data actually occurs in the signal. Any space that is not filled in earlier data packets is filled with data from later time slices in the signal. This data is stored in a buffer until needed to re-generate the signal. As a result, the data packets according to the present invention each contain approximately the same amount of data, but represent differing time slices. Data packet storage capacity is optimized. A second computer (212) receives the data packets and re-generates the original signal using a decoding software application (210).

Description

METHOD AND APPARATUS FOR PROGRESSIVE TRANSMISSION OF TIME BASED
SIGNALS
FIELD OF THE INVENTION
The present invention relates generally to signal transmission and, more specifically, to a computer-implemented method for optimizing the transmission of an animation across an electronic network.
BACKGROUND OF THE INVENTION
Animations were being produced soon after the development of the movie camera. These early animations were stop-motion films of two or three dimensional representations, such as watercolors or clay figures. With advances in the fields of computing and electronic networks, it has now become possible to computer generate animations, and to electronically transmit animations over networks such as the Internet.
One common technique for electronically transmitting signal data such as animations is known as streaming. In data streaming, a signal is progressively transmitted through a fixed rata data channel in time slices, known as packets, so that the signal can be regenerated on the receiving end during transmission. A fixed rate data channel can be characterized by a steady stream of data packets of uniform size.
To stream a signal, the signal must first be parsed into packets for transmission. One typical prior approach for parsing the signal is to sample the signal values over time at a fixed rate. A fixed time slice of the resulting information can then be packaged into a data packet. Compression methods can then be used to decrease the size of each packet before transmission. This produces data packets of fixed time length but, usually, variable size. During periods of low signal activity, higher compression can be achieved per time slice than during periods of high signal activity. Data packets describing periods of low signal activity can therefore be compressed to smaller sizes than other packets. This prior art method is subject to several limitations. First, sampling the signal values and transmitting the samples results in loss of some signal data. The sampling rate imposes a fixed frame rate on the signal curves and the receiver is not provided with precise information as to the behavior of the curves at the times between the samples. As a result of this limitation, the sampling rate is frequently used as a driving rate for the regeneration of the signal curve. Therefore, the receiver never receives the signal at a higher frame rate than the sampling rate.
Another limitation of the prior art method is that fixing the packet time span while varying the packet size is an inefficient use of bandwidth. Some packets may contain no data, while excess data may be truncated from other packets. This may result in significant signal degradation. Furthermore, the amount of time required to stream the entire signal can be significantly increased if many packets contain little or no data.
Figure 5a is a diagram of signal data packets according to the prior art. Each data packet 502, 504, 506 represents the same time slice, in this example, two seconds. However, the amount of data stored in each of these packets is different. For example, the first packet 502 is filled with data while the second packet 504 is only partially filled. The third packet 508 originally included more data than could be accommodated by the transmission bandwidth. As a result, the excess data 514 was truncated and not transmitted.
It would be an advantage to provide a method and apparatus for streaming signals that minimizes the loss of data resulting from bandwidth restrictions. It would be a further advantage if such method and apparatus maintained the resolution provided by the parametric representation of signal data. It would be yet another advantage if such method and apparatus were available to optimize the amount of data transmitted in streamed data packets.
SUMMARY AND OBJECTS OF THE INVENTION
The present invention is a computer-implemented method and apparatus for progressively transmitting time-based signals across an electronic network. In the invention, data signal parameters are analyzed and the signal is encoded and transmitted such that data packet storage capacity is optimized. The invention can be used for purposes including but not limited to transmitting animation, audio, and video signals across an electronic network and reconstructing the signal or signals at a receiver. The preferred embodiment of the present invention is directed to the streaming of animation signals. In the apparatus according to the present invention, a first computer is used to parse the signal into transmittable data packets using the method according to the present invention. In the presently preferred embodiment, an encoding software application is used to mathematically model the signal, to identify key values, and to sort the key data into data packets for transmission across the electronic network. A second computer receives the data packets and re-generates the original signal using a decoding software application.
The present invention can be used with signals that are reasonably well-behaved such that a mathematical model can be derived to approximate the signal to within an acceptable level of accuracy. This model must be localized such that relatively few points are needed to effectively use the model. In the invention, the amount of data in each transmitted data packet is optimized.
Data is not transmitted sequentially according to consecutive time slices. Rather, the signal data is parsed according to when the information is actually required at the receiver to regenerate the signal. This data is then transmitted in temporal order, according to when it is needed, rather than according to when the data actually occurs in the signal. Any space that is not filled in earlier data packets is filled with data from later time slices in the signal. This data is stored in a buffer until needed to re-generate the signal. As a result, the data packets according to the present invention each contain approximately the same amount of data, but represent differing time slices. BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a block diagram of a computer network according to one embodiment of the present invention. Figure 2 is a block diagram illustrating an apparatus for accessing an electronic network, according one embodiment of the present invention.
Figure 3 is a graph of a general signal over time.
Figure 4 is a graph of an audio signal over time.
Figure 5 a is a diagram of signal data packets according to the prior art. Figure 5b is a diagram of signal data packets according to the present invention.
Figure 6 is a graph of the function/ft = rt.
Figure 7 is a graph illustrating the timing curve of Equation (5).
Figure 8 is a schematic depiction illustrating the progressive transmission of N signals from server to client according to the present invention. Figures 9a and b are bar graphs illustrating the bandwidth requirements for a packet stream according to Equation (23).
Figure 10 is a flow chart of the method according to a preferred embodiment of the present invention.
Figures 1 la-c are graphs of the timing curves in Equations (26) through (28). Figure l id depicts an example of the variance over time of an animated signal when different timing curves are combined into a piecewise curve.
Figure 12 is a series of graphs of concurrent real-time signals according to the present invention.
Figures 13 through 14 are graphs illustrating the encoding and temporal re-ordering of the real-time signals of Figure 12. DETAILED DESCRIPTION
A method and apparatus for progressively transmitting time-based signals is described. In the invention, data signal parameters are analyzed and the signal is encoded and transmitted such that data packet storage capacity is optimized.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be evident, however, to one skilled in the art that the present invention may be practiced without the specific details. In other instances, well-known structures and devices are shown in block diagram form to facilitate explanation. The description of preferred embodiments is not intended to limit the scope of the claims appended hereto.
The present invention can be used for purposes including but not limited to transmitting animation, audio, and video signals across an electronic network and reconstructing the signal or signals at a receiver. In the preferred embodiment, the present invention is implemented using a computer. Such computer can include but is not limited to a personal computer, network computer, network server computer, dummy terminal, local area network, wide area network, personal digital assistant, work station, minicomputer, and mainframe computer. One such computer is operable to parse the signal into transmittable data packets according to the present invention, and another such computer that receives the data packets is used to re-generate the original signal. In addition, the present invention can be used with any other hardware components that facilitate the creation, transmission, and regeneration of the signal. Such hardware components include but are not limited to video capture boards, sound cards, rendering devices, sound recording equipment, film editing equipment, video cameras, and microphones. The signal identification, parsing, sorting, transmission, buffering, and/or regeneration features of the present invention can be implemented as one or more software applications, software modules, firmware such as a programmable ROM or EEPROM, hardware such as an application-specific integrated circuit ("ASIC"), or any combination of the above. In addition, the present invention can be used with any appropriate third-party software applications, for example, animation rendering applications, music composition applications, sound mixing applications, and graphics applications.
Figure 1 is a block diagram of a computer network system 100 according to one embodiment of the present invention. In computer network system 100, a network server computer 104 is connected to a network client computer 102 through a network 110. The network interface between server computer 104 and client computer 102 can also include one or more routers, such as routers 106 and 108. The routers serve to buffer and route the data transmitted between the server and client computers. Network 110 may be the Internet, a Wide Area Network (WAN), a Local Area Network (LAN), or any combination thereof. It should be noted that, although only one server and client computer each are illustrated in network system 100, a network that implements embodiments of the present invention may include a large number of interconnected client and server computers.
For example, one or more encoding software applications accessible to a transmitting network client computer can be used to mathematically model a signal and to identify and sort the key values of the mathematical model into data packets for transmission. Decoding software applications can also be used to re-generate the original signal at a receiving network client computer. Any or all of the software applications or hardware configurations of the present invention can be implemented by one skilled in the art using well known programming techniques and hardware components. The entire process and apparatus or any portion thereof can reside with one or more users or third parties. The present invention can be implemented as one or more software applications, software modules, plug-ins, firmware, and hardware that are provided to individual users for their utilization in transmitting or receiving time-based signals. For example, in one embodiment of the present invention, the encoding and decoding functions are performed by the same software application. However, in alternative embodiments, the encoding and decoding functions are performed by different applications.
The original signal data source for the original signal can be in any appropriate form, including but not limited to processed film (black-and-white, color, or negatives), video, CD, CD-ROM, photographs, optical disks, audio tape, phonographic recordings, Digital Video Disks, and computer images. Computer image data sources can be stored in any format including but not limited to MP3, and QuickTime animations.
The present invention is used to transmit signals across an electronic network, such as the Internet or a local area network ("LAN"). In the preferred embodiment of the invention, the transmitting and receiving computers are adapted for communication with the Internet. The signal is transmitted through any appropriate communication device or connection, including but not limited to modem, satellite transmission, cable transmission, Ethernet, ADSL, ISDN, or TI.
Figure 2 is a block diagram illustrating an apparatus 200 for accessing an electronic network, according to one embodiment of the present invention. In this embodiment, a computer 202 is adapted for communication with an electronic network 204 such as the Internet. Animation signal 206 can be stored on the computer, for example, in a database. An encoding software application according to the present invention 208, also resident on the computer, can be used for example, to mathematically model the invention, to identify key values, and to sort the key data into data packets for transmission across the electronic network. The re-generation of the received signal or signals can then be performed using a decoding software application 210 resident on the receiving computer 212.
The encoding and decoding software applications must be compatible with one another. As an example, there must be an agreement between these applications as to the types of parametric curves that are to be used in the streaming session. Generally, for animation streaming, the types of parametric curves are incorporated as a part of the software. For example, information that curve 1 is a constant curve while curve 2 is linear can be hardcoded into the encoder application that generates the streaming data and the decoder application that decodes the key values and timing curves into signal data. Both applications will therefore be configured to use the same types of parametric curves.
In an alternative embodiment, the transmitting computer and the receiving computer can initiate a "handshake" session to mutually establish an agreement as to the types of timing curves to be used in a streaming session. In yet another embodiment, the transmitting computer provides instructional information to the receiving computer so that the receiving computer can interpret different timing curves. The embodiment is advantageous because it is dynamic and provides flexibility.
While the preferred embodiment of the invention is directed to streaming a signal, such as an animation, in an alternative embodiment, the transmitted signal is stored for re- generation at a later time. The signal data can be stored on at least one database that is on the same computer as the signal re-generation software application, or on any storage device or other computer(s) accessible thereto. This embodiment is advantageous when it is desirable to optimize the data transmission process but there is no need for immediate re-generation of the transmitted signal. For example, this alternative embodiment can be used to reduce expenses when the cost of transmission is related to the length of the transmission across the electronic network.
The present invention can also be used with conversion methods that transform irregular signals that are not readily mathematically modeled into more regular signals. For example, when there is an error tolerance level for a re-generated signal such that an approximation of the original signal can be transmitted, the present invention can be adapted to approximate the signal and then transmit it according to the teachings herein.
A signal can be represented as a series of curves that describe the change of signal values over the time period of the signal. In the broad sense, a curve is the locus of a point moving in space with one degree of freedom. A common method for describing curves mathematically is by representing them with parametric equations. Parametric equations express the points on a curve explicitly in terms of other variables or parameters that are, in this context, regarded as independent variables.
Figure 3 is a graph of a general signal over time. The signal S can be any type of signal such as a sound, a video signal, and an animation. The term signal can refer to any particular quantity that varies with time. The graph of Figure 3 represents a model of 3,000 seconds of a signal. The present invention can be used with signals that are reasonably well- behaved such that a mathematical model can be derived to approximate the signal to within an acceptable level of accuracy. This model must be localized such that relatively few points are needed to effectively use the model. By contrast, in a non-localized signal, all of the points for the entire signal might be required to determine the signal parameters at, for example, point TI of Figure 3.
Figure 4 is a graph of an audio signal 400 over time. In the prior art, there is no pattern analysis of this signal. Rather, the signal is sampled at various points. However, it can be extremely difficult to sample a complex signal and might require the sampling of a very large number of points to achieve a reasonable level of accuracy. It is not practical or even possible to sample certain signals with any accuracy. By contrast, the present invention uses a mathematical model 420 of the audio signal with a set of key values 402, 404, 406,
408, 410, 412, 414 to represent the audio signal. The preferred embodiment of the present invention is directed to the streaming of animations. One way to transmit an animation over an electronic network is as a signal.
Animation signals are well-adapted to being represented by a mathematical model. The teachings of the invention can also be applied to any other type of signal that is capable of being represented by a mathematical model that is well localized. The invention can also be adapted to permit the streaming of signals that are not well-represented by a mathematical model, such as a high frequency signal. However, in this case, more data would be required to be processed to properly stream the signal.
In the prior art, a signal is sequentially parsed into data packets of fixed time slice.
Each data packet is then transmitted over an electronic network, regardless of how much data is actually included or excluded from a packet at a particular time slice. Thus, it is possible to send an empty packet, or to lose information that could not fit into the packet for the particular time slice.
By contrast, in the invention, the amount of data in each packet is optimized. Data is not transmitted sequentially according to consecutive time slices. Rather, the signal data is parsed according to when the information is actually required at the receiver to re-generate the signal. This data is then transmitted in temporal order, according to when it is needed, rather than according to when the data actually occurs in the signal. Any space that is not filled in earlier packets is filled with data from later time slices in the signal. This data is stored in a buffer until needed to re-generate the signal. Figure 5b is a diagram of signal data packets according to the present invention. Each data packet 508, 510, 512 is filled with data, unlike the prior art data packets 502, 504, 506 of Figure 5 a. In addition, the data packets according to the present invention each contain approximately the same amount of data, but represent differing time slices. Timing curves can be used to describe the change of a value or property over time. Thus, timing curves describe signals over time. Where time is the key parameter, it can be desirable to represent a timing curve by a parametric equation. For example, a timing curve, f, can be represented by an equation of the form:
f=f(t) (1)
where t = time.
For example, iff describes a signal that begins at zero but grows at a steady rate of r per second, then:
f(t) = rt. (2)
Figure 6 is a graph 600 of the function f(t) = rt. If the rate r of Equation (2) is a variable, then parametrization yields the equation:
f(r,t) = rt. (3)
Equation (3) is a parametric representation of the family of curves that begin at value zero and grow at some steady rate over a period of time. It is important to distinguish between the two parameters of time t and rate r. The rate r is a fixed attribute of a particular signal. The time t is a continuous variable that represents the time variations of the signal.
Equation (3) can be generalized to represent the family of linear timing curves as follows: f(a,b,t) = at + b. (4)
where f(a,b,t) = the function representing the linear timing curve with parameters a,b, at time t.
Equation (4) describes a signal that starts at a fixed value b and then changes at a steady rate a. However, Equation (4) does not represent a signal that does not change at a steady rate. Therefore, it is desirable to divide the time span of a signal into smaller intervals, each of which can have a different fixed value and can change at a different steady rate. Therefore:
( fi*ι, t) i£ tι < t < t2 f(aι, h, t) i£ t2 < t < t ': (5)
Figure imgf000013_0001
where s(t) = the time-variable signal; b„ = the fixed value for interval n; an = the rate of change for interval n; and t„ = the time at the beginning of interval n.
Figure 7 illustrates the timing curve 700 described by Equation (5). As illustrated by the Figure, the formulation described by Equation (5) does not require the signal to change continuously with time. Figure 7 is a curve represented by individual line segments 702, 704, 706. It is possible to select individual values, or points on the curve of Figure 7 that, combined with Equation (4) can be used to describe a signal over time. These characteristic parameters of the signal will be referred to for the purposes of this discussion as key values. For example, the values a_, b_, and t_ are key values of the signal s(t) of Equation (5).
Equation (5) can also be written in a different, more compact notation. The linear timing curve can be defined as follows:
g(a, b. tι, t2. t) f{a_ b, t) if iL < t < t2 " ' ""' -{ 1 00 .. i j££ tt << ttι aτ t ≥ t<_. (6) where g(a,b,t„t2,t) = the function representing the linear timing curve at values a,b,t„t2, and t.
On the interval [t,, t2) the curve represented by Equation (6) is the same as that represented by Equation (4). Outside of the interval [t„ t2), the value of the equation is zero. Equation (5) can therefore be re-written as:
=
Figure imgf000014_0001
+3, £3i+6, i). (8)
where k = key value.
It is required that the key values of Equation (8) be ordered such that:
{***«, A3i+2, i+3} - {α,.+1, bi+lt t.+l } (9)
The entire set of key values K for a signal is sufficient to describe a signal completely for purposes of this discussion.
While the present invention is described herein with respect to linear timing curves, the invention is not in any way restricted to this class of curves. The method and apparatus taught herein can also readily be applied to any types of curves, or combinations thereof, that represent a signal where each curve has a limited contribution time to the signal value. For example, a combination of cubic splines, time harmonics, and constant curves can be used to describe a signal for purposes of the invention if these types of parametric curves have a limited time range and relatively few associated parameters. Therefore, the discussion of linear time curves is for descriptive purposes only and is not in any way intended to limit the scope and spirit of the present invention. Using the present invention, data from multiple parametric timing curves can be processed and transmitted as streamed data in a fixed rate data channel. Streaming is the process of progressively sending data in packets that are re-generated at a receiver during transmission. A data packet is a portion of a signal that is separated for transmission across an electronic network according to a selected time interval. A fixed rate data channel can be characterized by a steady stream of data packets of uniform size. In the invention, the key values in the set K are transmitted across the electronic network in data packets through such fixed rate channel.
A set S of signals described by parametric timing curves can be described by the notation:
S = {S1>S2,...,SN} (10)
where s, describes the time dependence of the signal.
Figure 8 is a schematic depiction of the signals in set S. The Figure illustrates the progressive transmission of N signals 802, 804, 806 from the server 810 to the client 820 across an electronic network 814. The signals are transmitted from the server as packet data 812 that is received 822 at the client. No correlation is assumed between the signals in S. For purposes of this description, these signals can be independent or interdependent. In
Figure 8, the time tc is the current location of signal re-generation on the client side. The time ts is the time length of server transmitted signal data. As has been discussed previously, each signal s_ can be completely described by a finite set of key values
ir- e {* .*W..-. , J^n-,}. ' (11)
where n_ - the number of key values for signal s,.
The number of key values is allowed to vary among signals. This number is specific to each signal. In general, signals exhibiting regularity or little variation require fewer key values than irregular signals. Because each signal is completely described by its key values, it is possible to define a general mapping, s(K_,t). Using this mapping, it is possible to derive the signal value at any time t given the key value set for a signal. Thus:
Figure imgf000016_0001
This mapping has strong locality, therefore, the signal value at each time can be deduced from only a few key values. The efficiency of the method increases with the strength of the locality. The locality requirement permits the definition of a subset of the key values, K1 (f) that holds the smallest set sufficient to generate the signal value for s_ at time t. Thus:
*(Kit t) =* a(K<(t), t).
(13)
Two additional mappings, Tmin(k_^ and Tmax(kiJ) can be introduced to properly define K (t). The mapping Tmin(k^ gives the smallest time value at which a key value contributes to the signal value. The mapping Tmax(k, gives- the largest time value at which a key value contributes to the signal value. These mappings essentially produce the time span over which a key k contributes to a signal st. The key values in the reduced set can therefore be described as:
Λjrø = {k Ki I l rø < t < T^ik)} . (14)
The present invention can be used to stream the key values in K by transmitting them in data packets through a fixed rate channel. As distinguished from the prior art approach of sampling the signals and transmitting the samples in fixed time slice data packets of varying size, in the invention, key values are transmitted in data packets of varying time slice and filled to approximately the same size.
The present invention uses a stream header to transmit certain information to the receiver. A stream header is a packet block that is sent before a streaming session is initiated. The stream header includes information that the decoder will need to re-generate the animation signal. This information can include but is not limited to the time length of the animation and mapping parameters. The stream header information is used by the decoder to determine the signal output. In the example of animation, the stream header information contains binding information regarding exactly what the signal animates. Such mapping parameters can include, for example, the information that a first signal is the height of a first element (property) in the animation and that a second signal is the color of a second element (property).
The efficiency of the present invention is increased by determining the temporal order of the key values. For the purposes of this disclosure, temporal order is defined as the order in which the key values should be sent to maximize the time length of valid signal data at the receiver. The union K of all key values can be represented as:
K = Kl \ K2 U ... U KN (15)
The elements in this set are ordered by requiring that
WW ≤r.fcft^. (16)
where km is the m-th element in K.
The order shown by Equation (16) is the temporal order of the key values. As has been previously discussed, Tmi„(Kij) is the time at which key / first contributes to the value of signal s. To properly re-generate this signal, the key y' is needed at and after that time. Thus, the first key that should be transmitted is the key among all the signals that has the lowest Tmin, i.e. the first key in K. This is because the time length of valid signal data at the receiver is only as long as the shortest valid signal. The order of Tmin values can be determined using, for example, the Quick Sort function of the C programming language.
Once all keys from k, to km have been sent from K, it must then be determined which key should be transmitted next. This is the key that has the lowest Tmin from its set of non- transmitted key values. According to the definition in Equation_(16) this is Tmi„(km+!). The present invention permits the transmission of the key values in optimal order. There is no fixed time slice associated with each packet of data.
Because the decoder software application at the receiving computer is programmed with the types of parametric timing curves, in other words the equations, that will be utilized by the encoder software application, the only information that the encoder requires to generate the signals according to the present invention is the key values. Each key value has a particular associated time. Therefore, even if packets are received in a non-sequential order, the decoder will be able to re-generate the signal from the timing information and the key values.
The timing information for a key value is transmitted to the receiving computer in the data packet containing that key value. For example, if a data packet contains ten different key values, the packet will also contain the timing information for each of the ten key values.
This is in contrast to the prior art method of time-stamping each packet. When multiple signals are being transmitted according to the present invention, the data packets also include information that identifies the particular signal to which each key value belongs.
Because the timing information is transmitted within the individual data packets, an effective data compression procedure is preferably used to compress the timing information.
Such compression is facilitated by the temporal ordering of key values, because adjacent key values have the smallest time difference possible. The timing information can therefore be encoded as time differences within the respective packets.
The time span of a packet is defined as the time interval that the packet data describes completely. It is assumed herein that all previous packets have been received. The time span of packet/? is therefore:
Figure imgf000018_0001
where k'_ denotes the first key in packet number i.
A common procedure used to facilitate streaming methods is buffering. Buffering is the act of transmitting signal data to the receiver before any signal re-generation is performed at the receiver. This signal data is temporarily stored or buffered in one or more buffers until it is required for the re-generation procedure. Buffering can be advantageous because it gives the transmitter a lead time over the receiver. This makes the streaming more tolerant of bandwidth fluctuations. Thus, if the channel data rate temporarily drops during the streaming process, the receiver will be unaffected for the duration of the buffered signal data. If the data rate accelerates before the buffer is cleared, then the receiver will not experience any signal loss.
Additionally, buffering can be used to lower the bandwidth required for the streaming process. This can be particularly effective for signal sets that require a large number of key values at the beginning, i.e. when E„,,„ approaches zero for a large number of keys in K.
The lead time provided to the transmitter is determined by the equation:
I
^buffer = Δ i = i fcf+i). (18)
where / is the number of packets that are buffered before streaming commences; and where Tbuffer (830) = the lead time.
All signals start at time zero. As a result, the first key in K must therefore have a T ______ equal to zero. Temporal ordering ensures that this is the first key in the first packet, i.e. Tmin (k'j) = 0. Equation (18) makes use of the fact that, as has been shown in Equation (17), the sum is telescoping. Equation (18) can also be viewed as an expression determining / for a given Tbφr Therefore, the equation determines the number of packets required to furnish a specified buffer time.
The bandwidth consumed by a stream of uniform size packets with variable time span must be estimated. Assuming that / packets have been buffered, there are Tbuffer seconds of signal data at the receiver. At the same time as packet number / + 1 is received from the transmitter, signal generation commences at the receiving end. If the transmission of the next packet takes τ seconds, then the time span of valid data at the receiver reaches a minimum of
Figure imgf000019_0001
just before the new packet is received. To ensure that the time length of buffered data, Treceiver, never goes below Tbuffer, then the number of seconds τ that it takes to transmit the next packet should be selected to be:
5
(20)
This requires a corresponding bandwidth of:
V
10 r Δr,+l (21)
where is the uniform .packet size, usually specified in bits; T_ are the time slices, usually .expressed in seconds; and r is the bandwidth (rate), usually expressed in bits per second. L5
Equation (21) expresses the bandwidth required by the first progressively transmitted packet. In the Example, this is packet number 1 + 2. Equation (21) can be used to determine a good location in the packet sequence to stop buffering and to start streaming. The number of buffered packets / is increased until the equation produces a reasonable bandwidth 20 requirement. This determination is especially useful if a specific buffer time is not mandated. To find the bandwidth required for a streaming session of n packets, Equation (21) must be maximized over the entire set of progressively transmitted packets:
Figure imgf000020_0001
According to Equation (17) the sum in the denominator is telescoping and thus:
Figure imgf000020_0002
The properties of Equation (23) are illustrated by Figure 9. Figures 9a and b are bar graphs illustrating the bandwidth requirements for a packet stream according to Equation (23). In the example shown in Figure 9a, the bandwidth, R, as determined by Equation (23) for packets 3 and 4 is sufficient to successfully stream packets 5 and 6 as well as parts of packets 7 and 8.
To lower the consumed bandwidth, a more aggressive approach can be adopted. Equation (23) is derived with the condition that at least a buffer of time length Tbφr is maintained. In an alternative, more aggressive embodiment of the present invention, this restriction can be loosened such that it is required only that the receiver never run out of valid signal data. As a result, in this embodiment, streaming can begin with packet number / + 1, instead of / + 2. The bandwidth required for this packet is:
* •'-5GT (24) A streaming session of n packets, where n - 1 are progressively transmitted, will require:
Figure imgf000021_0001
Equations (17) and (18) have both been used in the derivation of Equation (25).
Figure 10 is a flow chart of the method according to a preferred embodiment of the present invention. To convert signal data into a streamable file of key values, a new and empty streaming file must first be opened 1000 and signal data acquired 1005. A determination must then be made as to whether the signal data is in parametric timing curve format 1010. If not, the signals are converted to parametric format 1015.
Redundant key values are filtered out from the parametric signal data 1020. Curve fitting over two or more time intervals can be used to reduce the number of key values required to represent the signal data 1025. A user-specified error margin can be used to determine whether the curve fitting is within acceptable parameters. All key values are subsequently merged into one list 1030. The temporal order of the key values of the list are determination must then be made as to whether the signal data is in parametric timing curve format 1010. If not, the signals are converted to parametric format 1015.
Redundant key values are filtered out from the parametric signal data 1020. Curve fitting over two or more time intervals can be used to reduce the number of key values required to represent the signal data 1025. A user-specified error margin can be used to determine whether the curve fitting is within acceptable parameters. All key values are subsequently merged into one list 1030. The temporal order of the key values of the list are determined and the list is sorted accordingly 1035. If the key list is empty 1040, the packet time length table and Equations (23) and (25) are used to calculate the required streaming bandwidth 1045. If the bandwidth requirements are acceptable 1050, the streaming file is closed 1055. If the bandwidth requirements are not acceptable, the contents of the streaming file are erased 1065. New user-defined values for curve-fitting and quantization error are selected 1060 and the curve fitting step 1025 is once again performed.
If the key list is not empty, a new empty data packet of fixed size is created 1070. The first key is removed from the temporal order list and encoded into this empty data packet within a user-specified quantization error. A determination is made as to whether the data packet is now full 1080. If not, step 1075 is repeated with the next key in temporal order from the list. If the data packet is full, the time length of the valid curve data is stored in the packet in a table 1085. The packet is then written to the end of the streaming file 1090. As an example of present invention, the method disclosed herein will be applied to the streaming of three-dimensional ("3D") animation. Motion and any other temporal changes in a computer generated 3D environment are generally grouped under the term "3D animation" This type of animation is most commonly acquired by three means:
1. Digital recording of motion through use of a motion capture device;
2. Digital recording of animation through use of a connected puppeteering device; and
3. Direct authoring of computer animation by a human operator. Thus, for the purposes of this example, it is possible to use any of the three different types of curves: constant, linear, and cubic spline (also known as "Hermite spline"). The Hermite spline representation will be discussed herein because it has widespread use in the animation industry and is readily subject to parametrization. The three basic timing curves, constant, linear, and Hermite, are defined as follows, according to the previous discussion of the invention presented herein:
gι(P„Ltt * h *_t rt) = s J J Λ0 * ^f*l≤*<*2 a (26)
92(Pi,P2.h.t2.t) = fcΛ-0+»{*r*ϋ)/« -eϋ **ι<*<fc (27)
[_ « else, z(P Pz.J_.d.t _t) = {ft«*)+aArø +*««+**»(*) «***<* (28)
The following Hermite basis functions have been introduced into Equation (28):
bo(t) - 2«t3(t) - Zu*{t) + 1 (29)
6ι(i) * -23(t)+32(i) (30)
bι(t) = («*(*) -2B»(*) +«(*)) (tβ-tϋ (31)
63(f) = (τx3(i}~ tfitήitz- ) (32)
where u(t\ _ *-*t (33)
and where b2 and b5are the basis functions for the curve tangents, d, and d2 in Equation (28).
Figures 1 la-c are graphs of the timing curves in Equations (26) through (28). Figure lid depicts an example of the variance over time of an animated signal when different timing curves are combined into a piecewise curve. This is similar to the signal illustrated in Figure 7. However, in this example, curves of different degree can be used on each interval. Thus, the signal shape is potentially more varied that that shown in Figure 7.
In addition, the signal shown in Figure 11 changes continuously with time with the exception of the endpoints of constant curves g,. This is a common practice in animation authoring tools because animated values usually change continuously with time and any desired discontinuities can be introduced by using constant curves. This property allows adjacent signal intervals to share parameter values. For example, if a linear segment g2 connects continuously with a Hermite segment g3, the parameters^ and t2 for the linear segment must be equal top, and t, for the Hermite segment. This property becomes evident upon examination of Equations (27) and (28). Thus, the key value vector k can be defined as follows:
where: k = (j, p, d', d +, f) (34)
j e {1,2,3} denotes the timing curve type; p is the value of the curve at time r; d " is the left tangent of the curve at time τ; and d + is the right tangent of the curve at time τ.
Tangents are only needed for parametrization of Hermite splines. Therefore, specifying tangents for other curve types is redundant. However, such redundancy is warranted in this example because it facilitates the unification of the notation and the simplification of the related algorithms. This redundant information is eliminated in the pre- process steps for progressive transmission.
For the purposes of this example, 1 and m will represent two successive key values. Therefore, it is required that the time rof 1 is less than that of m. The notation k_ will be used to denote the i-th component of vector k. The two key values are then successive if:
ls < m5 . (35) To simplify the notation, the general parametric timing curve is defined as:
Iteih, a, k. m5t i) if ϋ - 2 (36)
9a(h, m2t ht n»3l Zβ, m&. t) if ZL — 3 where the functions g, are defined in Equations (26) through (28). An animation signal can therefore be written as:
Figure imgf000025_0001
where K = {k„ ..., k„} is the set of key values for the signal.
The sharing of parameter values is demonstrated by the formulation of Equation (37). Curves on adjacent time intervals, for example,/ andy + 1, both require the key value kj+1. The temporal order of the key values must also be determined. This is achieved using the operator Tmin. Tmi„ gives the smallest time value at which a key contributes to a signal value. By examination of Equations (26) through (28) and (36) through (37), the following can be deduced:
Figure imgf000025_0002
A key value is needed at the time of the previous key ,..; if the timing curve between the two is linear or Hermite. Both these curves interpolate between the points of two key values. Both keys are therefore required to generate a value on the curve. It is only in the case of the non-interpolating curve, g„ that the second key isn't needed.
Although the present invention has been described with reference to specific exemplary embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention as set forth in the claims. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.
For example, the preferred embodiment of the present invention is adapted for use with any 3D rendering engine for visualization, including but not limited to Microsoft's Direct3D and Criterion's RenderWare. The present invention can be implemented with any computer operating system including but not limited to Microsoft Windows, UNIX, LINUX, Apple's MacOS. It is also compatible with any networking applications including but not limited to those of Sybase, Novell, Apple, and Microsoft.
The present invention can be integrated with computer games or other applications through SDK. In addition, the application can be used as a complement to, or as a module for integration with other applications requiring 3D visualization. The preferred embodiment of the invention is compatible with high-end authoring tools such as Softimage 3D, Maya, and 3D Studio Max. The present invention can be used with any appropriate streaming protocol, including but not limited to RealNetwork's RTSP. The present invention can be applied to any type of signal transmitted over an electronic, satellite, or other type of data broadcast network. Such signals can also include analog, digital, and power signals. The method and apparatus described herein can readily be used to stream either compressed or uncompressed signals. Other streaming methods can also be used in conjunction with the present invention. The teachings of the present invention can be applied to the transmission of a plurality of concurrent real-time signals. Figure 12 is a series of graphs of concurrent real-time signals according to the present invention. One of skill in the art will readily recognize that the key values of signals s,(t) s2(t) and s3(t) can be determined, for example, using the process described herein with respect to Figure 10. Figures 13 and 14 are graphs illustrating the encoding and temporal re-ordering of the real-time signals of Figure 12. As shown in Figure 13, the bandwidth required to transmit the concurrent real-time signals of Figure 12 might, at times, exceed the available bandwidth for transmission and therefore not be transmitted. By encoding and temporally re-ordering the signal data according to the present invention, however, it is possible to transmit the signal data for the concurrent signals while minimizing, if not eliminating entirely, signal loss and degradation due to inadequate bandwidth.

Claims

CLAIMSWhat is claimed is:
1. A method for progressive transmission of time based signals through an electronic 5 network, comprising the steps of: selecting a set of key values that can be used to describe at least one data signal over a period of time; associating timing information with each key value; streaming the key values in the set by transmitting them through a fixed rate channel 10 in at least one data packet; and transmitting the timing information for a key value in the data packet containing the key value.
2. The method of claim 1 further comprising the step of temporally ordering the key values. L5
3. The method of claim 2, wherein the step of temporally ordering the key values comprising the steps of: determining the smallest time value at which a key value contributes to signal value; determining the largest time value at which a key value contributes to signal value; >0 and determining the time span over which a key value contributes to the at least one signal.
4. The method of claim 3 further comprising the step of streaming the key values in temporal £5 order.
5. The method of claim 1, further comprising the steps of: defining a subset of the key values that holds the smallest set sufficient to generate the 10 signal value during the time period; and streaming the key values in the subset.
6. The method of claim 5, wherein the step of defining a subset of the key values further comprises the steps of:
5 determining the smallest time value at which a key value contributes to the curve value; and determining the largest time value at which a key contributes to the signal value.
7. The method of claim 1 further comprising the step of regenerating the at least one signal [-0 from the streamed key values and associated timing information.
8. The method of claim 1 further comprising the step of using a stream header to transmit decoding information to a receiver of the streamed key values.
L5 9. The method of claim 4 wherein the decoding information comprises the time length of the signal and mapping parameters.
10. The method of claim 1 further comprising the steps of: transmitting key values and associated timing information for a plurality of signals; >0 and transmitting information identifying the particular signal to which a key value belongs in the data packet containing the key value.
11. The method of claim 1 further comprising the step of using a data compression >5 procedure to compress the timing information.
12. The method according to claim 1 further comprising the step of buffering transmitted signal data at the receiver.
13. A method for converting signal data into a streamable file of key values, comprising the steps of: opening a new and empty streaming file; acquiring signal data in the streaming file; determining whether the signal data is in parametric timing curve format; for signal data in parametric timing curve format, filtering out redundant key values from the parametric signal data; using curve fitting to reduce the number of key values required to represent the signal data; merging all key values into one list; determining the temporal order of the key values of the list; sorting the list according to temporal order; and determining whether the key list is empty.
14. The method of claim 13, further comprising the steps of: if the key list is empty, calculating the required streaming bandwidth; closing the streaming file if the bandwidth requirements are acceptable; if the bandwidth requirements are not acceptable, performing the steps of: erasing the contents of the streaming file; selecting new user-defined values for curve-fitting and quantization error; and using curve fitting to reduce the number of key values required to represent the signal data.
15. The method of claim 13, further comprising the steps of: if the key list is not empty, creating a new empty data packet of fixed size; removing the first key from the temporal order list and encoding the first key into the new empty data packet within a user-specified quantization error; determining whether the new data packet is full; if the data packet is not full, removing the next key in temporal order from the list and encoding the nest key into the new data packet within a user-specified quantization error; if the data packet is full, storing the time length of the valid curve data in the packet in a table; and writing the packet to the end of the streaming file.
16. The method of claim 15 further comprising the step of using a user-specified error margin to determine whether the curve fitting is within acceptable parameters.
17. The method of claim 13, further comprising the step of converting non-parametric format signals to parametric timing curve format.
18. A method for streaming a data signal over an electronic network, comprising the steps of: selecting a set of key values that can be used to describe at least one data signal over a period of time; associating timing information with each key value; using a data compression procedure to compress the timing information; temporally ordering the key values by determining the smallest time value at which a key value contributes to signal value, determining the largest time value at which a key value contributes to signal value, and determining the time span over which a key value contributes to the at least one signal; streaming the key values in the set in temporal order by transmitting them through a fixed rate channel in at least one data packet; transmitting the timing information for a key value in the data packet containing the key value; and transmitting decoding information to a receiver of the streamed key values using a stream header.
19. The method of claim 18, further comprising the steps of: defining a subset of the key values that holds the smallest set sufficient to generate the signal value during the time period; and streaming the key values in the subset.
5 20. The method of claim 18 further comprising the step of regenerating the at least one signal from the streamed key values and associated timing information.
21. The method of claim 18 further comprising the steps of: transmitting key values and associated timing information for a plurality of signals; .0 and transmitting information identifying the particular signal to which a key value belongs in the data packet containing the key value.
22. The method according to claim 18 further comprising the step of buffering transmitted .5 signal data at the receiver.
23. An article of manufacture embodying a program of instructions executable by a computer, the program of instructions including instructions for: selecting a set of key values that can be used to describe at least one data signal over a 0 period of time; associating timing information with each key value; using a data compression procedure to compress the timing information; temporally ordering the key values by determining the smallest time value at which a key value contributes to signal value, determining the largest time value at which a key value '5 contributes to signal value, and determining the time span over which a key value contributes to the at least one signal; streaming the key values in the set in temporal order by transmitting them through a fixed rate channel in at least one data packet; transmitting the timing information for a key value in the data packet containing the 0 key value; and transmitting decoding information to a receiver of the streamed key values using a stream header.
24. The article of manufacture of claim 23, the program of instructions further including instructions for: defining a subset of the key values that holds the smallest set sufficient to generate the signal value during the time period; and streaming the key values in the subset.
25. The article of manufacture of claim 23, the program of instructions further including instructions for regenerating the at least one signal from the streamed key values and associated timing information.
26. The article of manufacture of claim 23, the program of instructions further including instructions for: transmitting key values and associated timing information for a plurality of signals; and transmitting information identifying the particular signal to which a key value belongs in the data packet containing the key value.
27. The article of manufacture of claim 23, the program of instructions further including instructions for buffering transmitted signal data at the receiver.
28. A system for streaming data signals across an electronic network comprising: a first computer; at least one encoding software application accessible to the first computer for: selecting a set of key values that can be used to describe at least one data . signal over a period of time; associating timing information with each key value; using a data compression procedure to compress the timing information; temporally ordering the key values by determining the smallest time value at which a key value contributes to signal value, determining the largest time value at which a key value contributes to signal value, and determining the time span over which a key value contributes to the at least one signal; streaming the key values in the set in temporal order by transmitting them through a fixed rate channel in at least one data packet; transmitting the timing information for a key value in the data packet containing the key value; and transmitting decoding information to a receiver of the streamed key values using a stream header; a second computer; and at least one decoding software application accessible to the second computer for: receiving the data packets; and regenerating the data signal.
29. The system of claim 28, further comprising at least one database accessible to the second computer for buffering at least one received data packet.
PCT/US2000/032628 2000-11-28 2000-11-28 Method and apparatus for progressive transmission of time based signals WO2002045307A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU2001219367A AU2001219367A1 (en) 2000-11-28 2000-11-28 Method and apparatus for progressive transmission of time based signals
PCT/US2000/032628 WO2002045307A1 (en) 2000-11-28 2000-11-28 Method and apparatus for progressive transmission of time based signals

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2000/032628 WO2002045307A1 (en) 2000-11-28 2000-11-28 Method and apparatus for progressive transmission of time based signals

Publications (1)

Publication Number Publication Date
WO2002045307A1 true WO2002045307A1 (en) 2002-06-06

Family

ID=21742039

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/032628 WO2002045307A1 (en) 2000-11-28 2000-11-28 Method and apparatus for progressive transmission of time based signals

Country Status (2)

Country Link
AU (1) AU2001219367A1 (en)
WO (1) WO2002045307A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023169332A1 (en) * 2022-03-08 2023-09-14 盖玉梅 Method for regenerating signal by model

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995014337A1 (en) * 1993-11-19 1995-05-26 Codex Corporation Method for adaptive smoothing delay for packet voice applications
US5535209A (en) * 1995-04-10 1996-07-09 Digital Equipment Corporation Method and apparatus for transporting timed program data using single transport schedule
EP0731348A2 (en) * 1995-03-07 1996-09-11 Advanced Micro Devices, Inc. Voice storage and retrieval system
US5623690A (en) * 1992-06-03 1997-04-22 Digital Equipment Corporation Audio/video storage and retrieval for multimedia workstations by interleaving audio and video data in data file

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623690A (en) * 1992-06-03 1997-04-22 Digital Equipment Corporation Audio/video storage and retrieval for multimedia workstations by interleaving audio and video data in data file
WO1995014337A1 (en) * 1993-11-19 1995-05-26 Codex Corporation Method for adaptive smoothing delay for packet voice applications
EP0731348A2 (en) * 1995-03-07 1996-09-11 Advanced Micro Devices, Inc. Voice storage and retrieval system
US5535209A (en) * 1995-04-10 1996-07-09 Digital Equipment Corporation Method and apparatus for transporting timed program data using single transport schedule

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A MARTENSSON, T EINARSSON, L JONSSON: "ROCCO CONVERSATIONAL VIDEO PROFILES", INTERNET-DRAFT, 24 May 2000 (2000-05-24), pages 1 - 30, XP002181684, Retrieved from the Internet <URL:http://www.ietf.org/proceedings/00jul/I-D/rohc-rtp-rocco-video-00.txt> [retrieved on 20011031] *
KAI CHEN: "3D FACIAL MOTION ANALYSIS AND TRANSMISSION THROUGH INTERNET", THESIS, 1998, UNIVERSITY OF DELAWARE, XP002181685, Retrieved from the Internet <URL:http://citeseer.nj.nec.com/cache/papers/cs/19535/http:zSzzSzwww.vims.cis.udel.edu:8888zSzthesis_kchen.pdf/chen98facial.pdf> [retrieved on 20011031] *
NAKA T ET AL: "A COMPRESSION/DECOMPRESSION METHOD FOR STREAMING BASED HUMANOID ANIMATION", PROCEEDINGS VRML 99. 4TH. SYMPOSIUM ON THE VIRTUAL REALITY MODELING LANGUAGE. PADERBORN, GERMANY, FEB. 23 - 26, 1999, SYMPOSIUM ON THE VIRTUAL REALITY MODELING LANGUAGE, NEW YORK, NY: IEEE, US, 23 February 1999 (1999-02-23), pages 63 - 70, XP000977128, ISBN: 1-58113-079-1 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023169332A1 (en) * 2022-03-08 2023-09-14 盖玉梅 Method for regenerating signal by model

Also Published As

Publication number Publication date
AU2001219367A1 (en) 2002-06-11

Similar Documents

Publication Publication Date Title
US6490627B1 (en) Method and apparatus that provides a scalable media delivery system
EP1049074B1 (en) Hierarchical multi-rate coding of a signal containing information
US20060122835A1 (en) Method and apparatus for reconstructing voice information
EP1987513B1 (en) Method and device for the hierarchical coding of a source audio signal and corresponding decoding method and device, programs and signal
JP2010016841A (en) Data transmitting method and compressing method
JP2003173625A (en) Method and apparatus for file conversion, and file generation apparatus
US20030220801A1 (en) Audio compression method and apparatus
JPS62289900A (en) Voice analyzer/synthesizer
US11974026B2 (en) Apparatus, a method and a computer program for volumetric video
WO2002045307A1 (en) Method and apparatus for progressive transmission of time based signals
US7813566B2 (en) Data processing apparatus and data processing method
CN114244778B (en) QoE-aware WebRTC congestion control method
Hesse Design of scheduling and rate-adaptation algorithms for adaptive HTTP streaming
JP4132091B2 (en) Video signal bandwidth allocation method and apparatus
US7224853B1 (en) Method and apparatus for resampling data
US20030007694A1 (en) Coding and decoding apparatus of key data for graphic animation and method thereof
US20030083864A1 (en) File creating method and data reproduction method
JP3547210B2 (en) Video data generator with sound
CN111462868B (en) Medical image management method, device and storage medium
JP3688064B2 (en) Image compression method and image compression apparatus
CN112367271B (en) AI-based congestion control feature extraction method, device, equipment and medium
US20040125001A1 (en) Synchronous method and system for transcoding existing signal elements while providing a multi-resolution storage and transmission medium among reactive control schemes
Cheong et al. A study of the burstiness of combined MPEG video and audio bitstreams
CN117354556A (en) Monitoring video analysis management system and method
JP2022063178A (en) Packet generation device and program

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP