This invention relates to data bitstreams, and more particularly to methods and apparatuses for switching between different bitstreams.
With steady growth of access bandwidth, more and more Internet applications start to use streaming audio and video contents. Since the current Internet is inherently a heterogeneous and dynamical best-effort network, channel bandwidth usually fluctuates in a wide range from bit rate below 64 kbps to well above 1 Mbps. This brings great challenges to video coding and streaming technologies in providing a smooth playback experience and best available video quality to the users. To deal with the network bandwidth variations, two main approaches, namely, switching among multiple non-scalable bitstreams and streaming with a single scalable bitstream, have been extensively investigated in recent years.
In the first approach, a video sequence is compressed into several non-scalable bitstreams at different bit rates. Some special frames, known as key frames, are either compressed without prediction or coded with an extra switching bitstream. Key frames provide access points to switch among these bitstreams to fit in the available bandwidth. One advantage of this method is the high coding efficiency with non-scalable bitstreams. However, due to limitation in both the number of bitstreams and switching points, this method only provides coarse and sluggish capability in adapting to channel bandwidth variations.
In the second approach, a video sequence is compressed into a single scalable bitstream, which can be truncated flexibly to adapt to bandwidth variations. Among numerous scalable coding techniques, MPEG-4 Fine Granularity Scalable (FGS) coding has become prominent due to its fine-grain scalability. Since the enhancement bitstream can be truncated arbitrarily in any frame, FGS provides a remarkable capability in readily and precisely adapting to channel bandwidth variations. However, low coding efficiency is the vital disadvantage that prevents FGS from being widely deployed in video streaming applications. Progressive Fine Granularity Scalable (PFGS) coding scheme is a significant improvement over FGS by introducing two prediction loops with different quality references. On the other hand, since only one high quality reference is used in enhancement layer coding, most coding efficiency gain appears within a certain bit rate range around the high quality reference. Generally, with today's technologies, there is still a coding efficiency loss compared with the non-scalable case at fixed bit rates.
Hence, there is a need for improved method and apparatuses for use in switching bitstreams.
A method is provided for switching between a first bitstream and a second bitstream, wherein the second bitstream provides a higher data rate than the first bitstream. The method includes identifying a switching up period associated with the first and second bitstreams. The method also includes establishing a third bitstream during the switching up period, the third bitstream being configured to carry additional data associated with a switch up from the first bitstream to the second bitstream. The method further includes switching up from the first bitstream to the second bitstream during the switching up period. The method may also support switching down.
An apparatus that is suitable for encoding a first bitstream and a second bitstream, wherein the second bitstream provides a higher data rate than the first bitstream is also provided. Here, the apparatus includes an interface that is configurable to selectively output the first and second bitstreams. The apparatus also includes logic that is configured to selectively encode a plurality of frames of a video sequence within the first bitstream as first encoded data that is at least partially transmittable by the interface in a base layer portion of the first bitstream and the plurality of frames of the video sequence within the second bitstream as second encoded data that is at least partially transmittable by the interface in a base layer portion of the second bitstream. The logic also establishes a plurality of temporally spaced switching up periods associated with the first and second bitstreams, during which, the logic causes the interface to output a third bitstream that is configured to carry additional data associated with a switch up from the first bitstream to the second bitstream. The apparatus may also support switching down.
The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings. The same numbers are used throughout the figures to reference like components and/or features.
In accordance with certain aspects of the present invention, methods and apparatuses are provided according to a seamless switching scheme. The seamless switching scheme is for scalable video bitstreams, and takes advantage of both the high coding efficiency of non-scalable bitstreams and the flexibility of scalable bitstreams. Small bandwidth fluctuations are accommodated by the scalability of the bitstreams, while large bandwidth fluctuations are tolerated by switching among scalable bitstreams. The flexible and effective scheme for seamless switching among scalable bitstreams significantly improves the efficiency of scalable video coding over a broad bit rate range.
By way of example, when the channel bandwidth drops below the effective range of a scalable bitstream operated at higher rates, certain exemplary methods and apparatus are configured to switch at any frame from a current scalable bitstream to one operated at lower rates without sending any overhead bits. Additional bits may be used when switching from a scalable bitstream operated at lower rate to one operated at higher rate. However, an efficient technique is described herein to greatly reduce the amount of overhead bits used.
Experimental results have shown that the exemplary methods and apparatuses significantly outperform both of the convention approaches described in the Background section, e.g., a single scalable bitstream approach and an approach of switching among multiple non-scalable bitstreams.
The next sections introduce some exemplary operating devices, followed by concepts of the seamless switching scheme. An exemplary seamless switching encoder, for example, configured with two MPFGS bitstreams is then described. Some exemplary methods for switching down and switching up are also described below, followed by some experimental results. Additionally, an improved SP coding technique is described
Exemplary Operational Environments:
Turning to the drawings, wherein like reference numerals refer to like elements, the invention is illustrated as being implemented in a suitable computing environment. Although not required, the invention will be described in the general context of computer-executable instructions, such as program modules, being executed by a personal computer.
Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including hand-held devices, multi-processor systems, microprocessor based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, portable communication devices, and the like.
The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
The improved methods and systems herein are operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable include, but are not limited to, personal computers, server computers, thin clients, thick clients, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
As shown in
Bus 136 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnects (PCI) bus also known as Mezzanine bus.
Computer 130 typically includes a variety of computer readable media. Such media may be any available media that is accessible by computer 130, and it includes both volatile and non-volatile media, removable and non-removable media.
In
Computer 130 may further include other removable/non-removable, volatile/non-volatile computer storage media. For example,
The drives and associated computer-readable media provide nonvolatile storage of computer readable instructions, data structures, program modules, and other data for computer 130. Although the exemplary environment described herein employs a hard disk, a removable magnetic disk 148 and a removable optical disk 152, it should be appreciated by those skilled in the art that other types of computer readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, random access memories (RAMs), read only memories (ROM), and the like, may also be used in the exemplary operating environment.
A number of program modules may be stored on the hard disk, magnetic disk 148, optical disk 152, ROM 138, or RAM 140, including, e.g., an operating system 158, one or more application programs 160, other program modules 162, and program data 164.
The improved methods and systems described herein may be implemented within operating system 158, one or more application programs 160, other program modules 162, and/or program data 164.
A user may provide commands and information into computer 130 through input devices such as keyboard 166 and pointing device 168 (such as a “mouse”). Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, serial port, scanner, camera, etc. These and other input devices are connected to the processing unit 132 through a user input interface 170 that is coupled to bus 136, but may be connected by other interface and bus structures, such as a parallel port, game port, or a universal serial bus (USB).
A monitor 172 or other type of display device is also connected to bus 136 via an interface, such as a video adapter 174. In addition to monitor 172, personal computers typically include other peripheral output devices (not shown), such as speakers and printers, which may be connected through output peripheral interface 175.
Computer 130 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 182. Remote computer 182 may include many or all of the elements and features described herein relative to computer 130.
Logical connections shown in
When used in a LAN networking environment, computer 130 is connected to LAN 177 via network interface or adapter 186. When used in a WAN networking environment, the computer typically includes a modem 178 or other means for establishing communications over WAN 179. Modem 178, which may be internal or external, may be connected to system bus 136 via the user input interface 170 or other appropriate mechanism.
Depicted in
In a networked environment, program modules depicted relative to computer 130, or portions thereof, may be stored in a remote memory storage device. Thus, e.g., as depicted in
Exemplary Switching Scheme:
An exemplary seamless switching scheme is provided, which significantly improves the efficiency of scalable video coding over a broad bit rate range by using multiple scalable bitstreams.
Each scalable bitstream has a base layer with a different bit rate and can best adapt to channel bandwidth variation within a certain bit rate range. If the channel bandwidth is out of this range, the scalable bitstream can be seamlessly switched to another with better coding efficiency. Switching from a scalable bitstream operated at lower bit rates to one operated at higher bit rates is referred to herein as switching up and the reversion as switching down.
One problem that is solved is how to flexibly and efficiently switch up and down among scalable bitstreams. There are different requirements for switching up and switching down, respectively. When channel bandwidth somehow drops, for example, the server has to rapidly switch from high bit rate bitstream to low bit rate bitstream to reduce packet loss ratio and maintain smooth video playback.
In accordance with certain aspects of the present invention, the techniques for switching down enable the scalable bitstreams to be switched down at any frame, and reduce/eliminate the use of overhead bits during switching down since the overhead bits tend to increase network traffic and therefore may further deteriorate network conditions.
When channel bandwidth increases, a delay is usually needed for the server to make a reliable decision for switching up. Moreover, in such as situation, improved/improving network conditions allow for additional bits to be transmitted. Thus, in accordance with certain exemplary implementations, the switching up scheme attaches an extra bitstream in some frames to support switching up. In order to avoid drifting errors, the extra bitstream can be formed by losslessly compressing the mismatches between the reconstructed frames with different bitstreams, which will add significant overhead to these frames. In accordance with still other implementations, another method, herein referred to as switching frame (SF), is exemplary to substantially reduce the overhead bits associated with switching up.
Reference is now made to
An important part of the exemplary seamless switching scheme is to selectively switch up and down between base layers 202b/204b without causing drifting and/or other like errors. In general, drifting errors caused, for example, by bitstream truncations, packet losses, transmitted errors, etc., at an enhancement layer, can be recovered automatically and gracefully. This is an important feature provided by fine granularity scalable video coding. Therefore, if the exemplary scheme can successfully switch up and down between the base layers of multiple scalable bitstreams, then whole scalable bitstreams also achieve such operations.
When a server is serving client(s) with one scalable bitstream, the base layer of the bitstream is transmitted to the client. However, the enhancement layer bitstream is usually transmitted partially dependent on the available channel bandwidth. The shaded regions shown in the enhancement layers 202e and 204e indicate the part of their respective bitstream that has been sent by the server. When channel bandwidth somehow drops below a base layer bit rate of the current scalable bitstream, then the exemplary switching scheme rapidly switches down from high bit rate scalable bitstream 202 to low bit rate scalable bitstream 204 to reduce the packet loss ratio and maintain smooth video playback. Therefore, as illustrated by solid arrows with dashed lines between the two base layers, the exemplary scheme reserves a path in every frame for switching down from one base layer (operated at higher bit rate) to another base layer (operated at lower bit rate), as is the case for base layers 202b and 204b. Since there are no overhead bits needed for switching down, the server can easily complete the switching operation by directly transmitting subsequent frames from the scalable bitstream with lower bit rate base layer, for example, base layer 204b.
The exemplary scheme deploys some special points (e.g., associated with 206 and 208) for switching up, such as illustrated the 2nd and (k+1)th frames in
An Exemplary Switching Scheme Using MPFGS Encoders:
In this example, either MPEG-4 FGS or PFGS coding is considered with regard to the switching scheme. This is not meant as a limitation to be placed on the exemplary methods and apparatuses described herein. Those skilled in the art will recognize that the switching scheme is clearly adaptable to these and other video formats, standards, coding techniques, as well as various implementations.
For better coding efficiency and/or other reasons, the macroblock-based PFGS (MPFGS) has been chosen as the basic scalable video codec for this example. The MPFGS codec compresses a video sequence into two bitstreams. In each frame, the base layer bitstream is first generated by traditional non-scalable coding technique, and then the residue between original/predicted DCT coefficients and dequantized DCT coefficients of the base layer forms the enhancement layer bitstream with bit-plane coding techniques. The bit rate of the base layer is the lower bound of the channel bandwidth covered by this scalable bitstream. The enhancement layer bitstream provides fine-grain scalability to adapt to channel bandwidth variations.
An exemplary arrangement 300 for encoding two scalable bitstreams suitable for use with the switching scheme is illustrated in
For convenience in this description, lowercase letters denote an image in pixel domain, and corresponding uppercase letters denote an image in DCT domain. The subscript “b” and “e” indicate the base layer and the enhancement layer, respectively. A tilde “{tilde over ( )}” denotes reconstructed image or DCT coefficients. The symbols “-H” and “-L” are used to distinguish the modules in HB-MPFGS and LB-MPFGS, respectively.
To ensure that the MPFGS bitstreams are able to be seamlessly switched from one to the other, the base layer bitstreams of these two MPFGS encoders are actually not generated independently. Firstly, motion vectors are estimated in HB-MPFGS and are applied to both HB-MPFGS and LB-MPFGS. Secondly, the video frames to be encoded for the base layer of LB-MPFGS are the reconstructed base layer frames from HB-MPFGS instead of the original video frames.
The original video is first input to HB-MPFGS. Since the motion vectors estimated will be used for both MPFGS encoders, original video frames are used as reference for estimating integer motion vectors, whereas fractional parts of motion vectors are still estimated by referencing the reconstructed base layer of HB-MPFGS to maintain the coding efficiency. There are two references in each MPFGS codec. The low quality reference {tilde over (r)}bH stored in refBase-H frame buffer is reconstructed from the base layer, whereas the high quality reference {tilde over (r)}eH stored in refEnh-H frame buffer is reconstructed from both the base layer and the enhancement layer. The base layer only uses low quality reference for prediction and reconstruction, while the enhancement layer can select either the low quality reference or the high quality reference, which is decided by mode decision algorithm. The base layer bitstream and the enhancement layer bitstream are generated using MPEG-4 non-scalable coding and bit plane coding, respectively.
The LB-MPFGS obtains the motion vectors directly from HB-MPFGS without motion estimation. Normally the bit rate of the base layer in HB-MPFGS is much higher than that in LB-MPFGS. To make seamless switching from HB-MPFGS bitstream to LB-MPFGS bitstream possible, the reconstructed high quality base layer from HB-MPFGS instead of the original video is input to the LB-MPFGS base layer encoder. In other words, the predicted error xbL encoded at LB-MPFGS base layer is the difference between the reconstructed HB-MPFGS base layer {tilde over (r)}bH and the prediction {tilde over (p)}bL. This is similar to transcoding bitstreams from high bit rate to low bit rate. On the other hand, the predicted error xeL is still calculated from the original video in order to maintain the coding efficiency of the enhancement layer in LB-MPFGS.
Switching Down Among Scalable Bitstreams:
One exemplary technique for switching down is similar to transcoding bitstreams from high bit rate to low bit rate. Normally the bit rate of the base layer in HB-MPFGS is much higher than that in LB-MPFGS. The reconstructed high quality base layer from HB-MPFGS instead of the original video is input to the LB-MPFGS base layer encoder. Thus, the signal encoded at the LB-MPFGS base layer is the difference between the reconstructed HB-MPFGS base layer and the temporal prediction. This is an important feature for achieving switching down in any frame without any overhead bits.
When the HB-MPFGS bitstream is being transmitted to the client, the reconstructed reference {tilde over (r)}bH, which is the image to be encoded at the base layer of LB-MPFGS, is very useful for switching down. When the network bandwidth somehow drops below the bit rate of the HB-MPFGS base layer, the HB-MPFGS bitstream has to be promptly switched to the LB-MPFGS bitstream.
One issue is how to precisely recover the reconstructed image {tilde over (r)}bL to avoid drifting errors. The exemplary scheme presented herein preferably does not transmit an extra bitstream since it is likely that the network can hardly tolerate more overhead bits in such situations. Instead, according to certain features of the scheme, a calculation {tilde over (r)}bL is made directly from {tilde over (r)}bH, provided that the low quality prediction {tilde over (p)}bL and quantization parameters of the LB-MPFGS base layer are available.
The quantization parameters of the LB-MPFGS base layer can be readily encoded into HB-MPFGS bitstream. If the quantization parameters are only adjusted at frame level, only five extra bits, for example, may be necessary for each frame. Even if the quantization parameters are adjusted at macroblock level, the number of overhead bits is still relatively small in HB-MPFGS base layer bitstream.
Reference is made to
When scalable bitstream is just switched up to HB-MPFGS, the prediction {tilde over (p)}bL is available in LB-MPFGS. After the next frame is decoded in HB-MPFGS, the reconstructed reference {tilde over (r)}bH is also available. Since the quantization parameters of LB-MPFGS are encoded in the HB-MPFGS base layer bitstream, the reconstructed reference {tilde over (r)}bL can be calculated as illustrated in
Hence, the exemplary scheme can switch down in any frame since the prediction {tilde over (p)}bL and the quantization parameters of the LB-MPFGS base layer are always available in HB-MPFGS. As shown, one advantage of this scheme is that no extra overhead bits are needed when switching down from HB-MPFGS to LB-MPFGS bitstreams.
Switching Up Among Scalable Bitstreams:
The exemplary scheme switches up for one MPFGS bitstream to the other by attaching an extra bitstream in some frames. Since the extra switching bitstream is usually generated with a lossless method, this would cause huge overhead bits in these frames. Therefore, the SF technique can be used to greatly reduce the overhead bits for switching up.
With reference to the illustrative diagram in
In the SF method, both SN and RN are first transformed into DCT domain, and then are quantized with the same quantization parameter. The difference between two sets of quantized DCT coefficients is compressed with the bit plane coding technique to form the switching bitstream. In this case, the recovered image by the dequantized SN plus the difference encoded in the switching bitstream is the dequantized {tilde over (R)}N. To avoid drifting errors at the HB-MPFGS base layer, the reference for the next frame coding is {tilde over (R)}N instead of RN in the switching frame.
Since the quantization is introduced in the SF method, the overhead bits in the switching bitstream can be greatly reduced by adjusting the quantization parameter. One concern is the effect of the SF method on the coding efficiency of two MPFGS encoders. Firstly, SN is used for the purposes of switching up. It is not used in the LB-MPFGS coding, thus the quantization of SN will have no effect on the LB MPFGS coding efficiency. Using {tilde over (R)}N as reference will affect the coding efficiency of HB-MPFGS to some extent. However, it is expected that the switching point/period can be inserted with about half a second or about a one second interval in most applications. Other intervals may also be used depending upon the design of the system. Here, it is assumed that this kind of coding efficiency losses is afforded in the HB-MPFGS.
Some Experimental Results:
Five different schemes were tested and compared in terms of both coding efficiency and channel bandwidth adaptation. The different schemes included: (1) a seamless switch with lossless SB, (2) a seamless switch with SF, (3) MPEG-4 FGS, (4) MPFGS, and (5) a switch between non-scalable bitstreams.
For the experiment, a QCIF sequence News and Foreman were used with a 10 Hz encoding frame rate. Only the first frame was encoded as I frame, and the subsequent frames were encoded as P frames. A TM5 rate control method was used in the base layer encoding. For the experiment, the range of motion vectors was limited to ±15.5 pixel with half pixel precision.
In the seamless scheme with or without the SF method, the bit rate of the LB-MPFGS base layer was 32 kbps. The high quality reference was reconstructed at 64 kbps (e.g., the base layer plus a 32 kbps enhancement layer), and channel bandwidth covered by LB-MPFGS was from 32 kbps to 128 kbps. The bit rate of the HB-MPFGS base layer was 80 kbps including the overhead bits for coding quantization parameters of the LB-MPFGS base layer. The high quality reference was reconstructed at 112 kbps. The channel bandwidth range covered by the HB-MPFGS can be from 80 kbps up to lossless rate. However, in this experiment, the upper bound of the HB-MPFGS bit rate was limited to 160 kbps.
Switching between non-scalable bitstreams is extensively used in many commercial streaming video systems. Two non-scalable bitstreams were used in this experiment with the same conditions as in the LB-MPFGS and HB-MPFGS base layers. However, I frames are inserted every ten frames for easy switching between bitstreams since channel bandwidth changes with minimum 1 second interval in this experiment. In the single MPEG-4 FGS and the single MPFGS schemes, the base layer bit rate was same as that in LB-MPFGS. The high quality reference in the single MPFGS bitstream was reconstructed at the bit plane with bit rate over 40 kbps. Thus, most coding efficiency gain was biased toward high bit rates.
The effect of the SF technique on the coding efficiency of the HB-MPFGS base layer was first evaluated using graphs 600 and 610 depicted in
The results in
The plots of average PSNR(dB) versus bit rate (kbps) are depicted in graphs 700 and 720 in
Switching between non-scalable bitstreams only provides two different quality levels, while other schemes can flexibly and precisely adapt to channel bandwidth and provide smooth visual quality. Compared with the single FGS and MPFGS bitstream schemes, the coding efficiency of the exemplary scheme can be about 2.0 dB higher than MPFGS and about 3.0 dB higher than FGS at higher bit rates. The SF method almost provides the same performance as the lossless coding while greatly reducing the overhead bits for switching up.
A dynamic channel was used to verify the performances of four different coding schemes in terms of bandwidth adaptation. The overhead bits for switching up were excluded in the simulation. In this experiment, the bit rate was periodically switched from 72 kbps to 152 kbps. Each cycle starts at 72 kbps for 1 second and then switches to 152 kbps for 3 seconds.
The results are plotted, PSNR(dB) versus frame number, in graphs 800 and 820 in
The exemplary scheme switches up 3 times and switches down 2 times in order to adapt channel bandwidth fluctuations. Clearly, the exemplary scheme with the SF technique achieves the best performances among these four schemes at both lower bit rates and higher bit rates.
Improved SP Coding Techniques:
In order to meet the requirements on file storage support, the joint video Team (JVT) (a standards body) has adopted an SP coding technique in the current reference software. Some desired functionalities are provided by the technique, such as bitstream switching, random access and bandwidth adaptation.
In order to switch between bitstreams in the SP frame, the original SP coding scheme compresses the difference between two prediction images into an additional bitstream, whereas the exemplary SP coding scheme compresses the difference between two reconstructed images.
Some further advantages of scheme 1000 are discussed in the following content.
Simplification for Hardware Implementation:
As shown in
Flexibility For Application Deployment:
Since different parameters can be used in the module Q and Qs, the exemplary scheme 1000 provides more flexibility for applications. Compared with the P frame, the coding efficiency loss in the SP frame is caused by the quantization Qs. By adjusting the parameter in the module Qs, a better trade-off between the number of switching bits and the coding efficiency can be achieved.
An example is shown by graph 1100 in
In the conventional scheme 900, since the quantization operates on the prediction image, any lost information would directly affect the coding efficiency of the current frame. However, in the exemplary scheme 1000, the quantization operates on the reconstructed image. However, the display image can still be reconstructed the same as the P frame. The degraded reference will affect the next frame. The coding efficiency loss may be less than that in the current frame due to motion compensation.
A seamless switching scheme for scalable video bitstreams has been described that takes advantage of both the high coding efficiency of non-scalable bitstreams and/or the flexibility of scalable bitstreams. Small bandwidth fluctuations are accommodated by the scalability of the bitstreams, while large bandwidth fluctuations are tolerated by switching between scalable bitstreams. The exemplary scheme can cover an extended bit rate range with significantly improved coding efficiency. Furthermore, no additional bits are needed in the freely switching down with the exemplary technique, and the exemplary SF technique also greatly reduces the overhead bits for switching up. The experimental results show that the exemplary scheme outperforms the method of switching non-salable bitstreams both in coding efficiency and bandwidth adaptation. The coding efficiency of the exemplary scheme is also significantly higher than that of single MPFGS or MPEG-4 FGS bitstream over a wide range of bit rates.
Although the description above uses language that is specific to structural features and/or methodological acts, it is to be understood that the invention defined in the appended claims is not limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the invention.
This continuation application claims priority to co-pending U.S. patent application Ser. No. 10/186,298 to Wu et al., filed Jun. 27, 2002, and entitled “Seamless Switching Of Scalable Video Bitstreams,” which in turn claims priority to U.S. Provisional Patent Application No. 60/351,891, filed Jan. 25, 2002. Furthermore, this application is related to co-pending U.S. patent application Ser. No. 10/185,741 to Li et al., filed Jun. 27, 2002, and entitled “Methods And Apparatuses For Use In Switching Between Streaming Video Bitstreams.”
Number | Name | Date | Kind |
---|---|---|---|
6292512 | Radha et al. | Sep 2001 | B1 |
6480541 | Girod et al. | Nov 2002 | B1 |
6700933 | Wu et al. | Mar 2004 | B1 |
6795501 | Zhu | Sep 2004 | B1 |
20020118755 | Karczewicz | Aug 2002 | A1 |
20030067872 | Harrell | Apr 2003 | A1 |
20030138042 | Chen et al. | Jul 2003 | A1 |
20030138142 | Hung | Jul 2003 | A1 |
20030206659 | Hamanaka | Nov 2003 | A1 |
20050002458 | Bruls | Jan 2005 | A1 |
20050135477 | Zhang et al. | Jun 2005 | A1 |
Number | Date | Country |
---|---|---|
WO0062552 | Oct 2000 | WO |
Number | Date | Country | |
---|---|---|---|
20060067402 A1 | Mar 2006 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10186298 | Jun 2002 | US |
Child | 11280619 | US |