US 6151632 Method and apparatus for distributed transmission of real-time multimedia information
ABSTRACT – A method and apparatus for delivering real-time multimedia information to clients via a distributed network is provided. The method and apparatus includes a LiveStation for encoding the real-time multimedia information into a number of different bandwidth points, and associated indexes, each bandwidth point for transmission over data channels of a particular bandwidth. The bandwidth points and indexes are provided to a recaster server to push the bandwidth points and indexes in parallel to secondary servers. The secondary servers then provide clients with compressed multimedia information according to the type of data channel used for connection. Parallel transmission of multiple bandwidth points and indexes allows the secondary servers to dynamically switch bandwidth points if data channels to clients change during transmission. Protocol between the LiveStation and a Recaster server, and between Recaster servers and secondary servers, is provided to allow configuration and transmission of real-time multimedia information to be controlled over a computer network from a single point.
FIELD OF THE INVENTION
The present invention relates generally to the distribution of information in a client/server computer environment, and more specifically to a method and apparatus for delivering real-time multimedia information to clients via a distributed network.
BACKGROUND OF THE INVENTION
The creation of pictures or images has been a human activity since the beginning of humanity. However, until recent history viewing of an image required the viewer to be physically present at the image. This was geographically cumbersome. Photography, both still and motion, broke this geographic constraint by allowing pictures to be captured and transported independent of the physical images they represented. Television enhanced transmission of images, by sending images, recorded or live, to any geographic location capable of receiving a radio signal. But for the most part, viewers of television can only view images that are scheduled for transmission, rather than selecting images at will.
With the development of computers, and more specifically computers that are linked across a network, images stored on one computer may be demanded by a viewer at a remote computer, and almost instantaneously provided to the viewer’s computer over the computer network. One computer network that is increasingly being used is the Internet, the well-known international computer network that links various military, government, education, nonprofit, industrial and financial institutions, commercial enterprises, and individuals.
To illustrate how computers are used to transmit images to a viewer, reference is made to FIG. 1. FIG. 1 represents a computer system 100 that includes a server 102 connected to a number of mass storage devices 104. The mass storage devices 104 are used to store a number of video frames 120. The video frames 120 can be still images, or can be combined into sequences to create moving pictures. The sequences reside on the mass storage devices 104, and upon request, may be transmitted by the server 102 to other computers 108 via a network 106. In addition, the video frames 120 may be transferred to remote computers, such as the computer 112, via a network 116, using a router 110 and/or a modem 114. One skilled in the art should appreciate that the network 116 could be a dedicated connection, or a dial-up connection, and could utilize any of a number of network protocols such as TCP/IP or Client/Server configurations.
In operation, a user sitting at any of the computers 108, 112 can request video frames 120 from the server 102, and the server will retrieve the video frames 120 from the mass storage devices 104, and transmit the frames 120 over the network 106. Upon receipt of the video frames 120, the computers 108, 112 displays the images for the requester.
It should be appreciated that the computers 108, 112 may be positioned physically close to the server 102, or may be thousands of miles away. The computers 108, 112 may be connected to the server 102 via a direct LAN connection such as Ethernet or Token Ring, or may utilize any of a number of different data channels such as plain old telephone service (POTS), ISDN or ADSL, depending on the availability of each of these services, their cost, and the performance required by the end user. As should be appreciated, the more bandwidth required by the user, the higher the cost.
In most cases, the amount of data required to represent a video frame, or more specifically a sequence of video frames 120 is significant. For example, a color image or frame is typically represented by a matrix of individual dots or pixels, each having a particular color defined by a combination of red, green and blue intensities (RGB). To create a palette of 16 million colors (i.e., true color), each of the RGB intensities are represented by an 8-bit value. So, for each pixel, 24-bits are required to define a pixel’s color. A typical computer monitor has a resolution of 1024 pixels (across) by 768 pixels (down). So, to create a full screen image for a computer requires 1024×768×24 bits=18,874,368 bits, or 2,359,296 bytes of data to be stored. And that is just for one image.
If a moving picture is to be displayed, a sequence of images are grouped, and displayed one after another, at a rate of approximately 30 frames per second. Thus, a 1 second, 256 color, full screen movie could require as much as 60 megabytes of data storage. With present technology, even very expensive storage systems, and high speed networks would be overwhelmed if alternatives were not provided.
One alternative to reducing the amount of data required to represent images or moving pictures is to simply reduce the size of frames that are transmitted and displayed. One popular frame size is 320 pixels in width and 240 pixels in height, or 320×240. Thus, a 256 color frame of this size requires 320×240×24=1,843,200 bits, or 230 kilobytes of data. This is significantly less (1/10th) than what is required for a full screen image. However, as frames are combined into moving pictures, the amount of data that must be transmitted is still significant.
An additional solution to reducing the amount of space required for video frames involves compressing the data, i.e., data is compressed before it is transmitted to a remote computer, and then decompressed by the remote computer before viewing. One skilled in the art will appreciate that a number of different compression methodologies have been developed, each directed at providing optimum compression for a particular data channel. In general, greater compression strategies are used where video frames are to be transmitted over low bandwidth connections, such as a standard analog telephone line. Faster compression strategies, that provide higher resolution images but lesser compression ratios, are typically used where high speed data channels transmit the video frames. Thus, depending on the speed of the data channel connection to a client, different compression methods may be used.
However, providing different compression methodologies for a single video sequence is problematic when attempting to transmit a video sequence to a large number of clients using a prior art distributed network. This will best be understood by providing a brief overview of a prior art solution for distributing video to a large number of clients, using a method referred to as “splitter” technology.
In the prior art, if a single server is used to provide a compressed video sequence to a number of different clients, the server may be overwhelmed by requests to the point where transmission performance to one or all of the clients is hindered. A solution to this problem has been to provide a primary server that serves a number of secondary servers, that in turn serve clients. In operation, a request for a video sequence is made by a client, causing its secondary server to request the compressed video sequence from the primary server. Upon receipt, the secondary server provides the compressed video sequence to the client. In addition, the secondary server stores the compressed video sequence so that for future requests, it can provide the compressed sequence to clients without disturbing the primary server. The task of providing the video sequence to the clients has thus been “split” according to the number of secondary servers used to provide the sequence to clients. This prior art solution of splitting has at least three inherent problems.
First, the secondary servers are viewed by the primary server as a client, which means that the information received by, and stored on the secondary server, is an exact replica of what will ultimately be provided to the client. While not discussed above, one skilled in the art should appreciate that the compressed video provided to a client only contains image data, and/or audio data, but does not contain any index information relating to the data. Such index information is often used to allow a user to rewind, fast forward, or seek for a particular location within a video sequence. When a client connected to a primary server, the primary server allowed clients to seek, rewind, etc. However, since the index information is not transferred to a client, and thus is not transferred to secondary servers, the client loses this indexing capability.
A second problem associated with splitter technology is that since the secondary servers do not contain compressed video for all possible data channels, the secondary servers are unable to dynamically switch video transmission to a client when the bandwidth of their data channels is altered. For example, if a client requests data from a secondary server over a high bandwidth data channel, the data received by the secondary server from the primary server will be for a high bandwidth data channel. If the data channel loses some of its bandwidth during transmission, the secondary server cannot effectively continue the data transmission to the client.
A third problem inherent in splitter technology is that since secondary servers merely request video sequences on behalf of clients, multiple clients accessing a secondary server over different data channels require the secondary server to make multiple requests to the primary server for different compressed video sequences. For example, a first client might request a compressed video sequence associated with transmission over a 28.8 Kbps telephone line. A second client might request the compressed video sequence associated with transmission over a 56 Kbs telephone line. The secondary server, in this instance, would be required to initiate two data transfer sessions with the primary server, one for the 28.8 Kbs video sequence, another for the 56 Kbs video sequence. Making multiple requests to the primary server hinders performance of the primary server, with the situation being further perturbed according to the number of different data channels supported by the secondary servers.
SUMMARY OF THE INVENTION
What is needed is method and apparatus that overcomes the problems discussed above in delivering real-time video information to a large number of clients utilizing different data channels in a distributed network.
More specifically, what is needed is a computer network that distributes video data to a number of different clients using different data channels. In one embodiment of the present invention, a computer network is provided that includes an encoding server, a recaster server, and a secondary server. The encoding server is connected to a video source that provides real-time video data to be distributed over the computer network. The encoding server encodes the video data into a video file that includes a number of different bandwidth points. The bandwidth points correspond to different compressions of the video data, each encoded for distribution particular data channels. In addition, the video file contains a corresponding number of indexes that are associated with each of the bandwidth points. The indexes allow a client to index the video data, regardless of which bandwidth point is provided to him. The recaster server is connected to the encoding server to receive the video file, and to transfer the video file to the secondary server, or to a number of different secondary servers. The secondary server(s) then transmit(s) one of the bandwidth points to a client depending on the data channel used by the client to connect to the secondary server. Thus, any secondary server can provide the video data to any number of clients, on any number of different data channels, without having to access the recaster. Moreover, since the index files are available on the secondary server(s), clients can index the video data regardless of which data channel they use to connect to the secondary server.
In another embodiment of the present invention, what is provided is a client/server computing system that distributes real-time and on demand multimedia data from an encoding server to a number of clients using different data channels. The computing system includes a recaster server, a secondary server and a number of different clients. The recaster server receives a video file from the encoding server, and delivers the video file to a secondary server. Clients connect to the secondary server over a number of different data channels. The video file provided by the encoding server to the recaster server, and by the recaster server to the secondary server, includes a number of bandwidth points, each of which are encoded for transmission over different data channels. The video file also includes a number of corresponding indexes, associated with the bandwidth points. When the video file is transmitted by the recaster server to the secondary server, the bandwidth points and the associated indexes are transmitted in parallel, over multiple sessions, to allow clients, regardless of which data channel they use, to receive and index video data real-time.
In another aspect of the present invention, what is provided is a method to distribute real-time multimedia data to clients over different data channels. The method includes providing a recaster server for transferring a video file of encoded multimedia data to a secondary server, initiating transfer of the video file to the secondary server, and transferring the video file to the secondary server. The video file contains a number of bandwidth points and associated indexes that are transferred in parallel between the recaster server and the secondary server. By providing the bandwidth points and indexes in parallel to the secondary server, different clients can receive and view the multimedia data over different data channels at essentially the same time.