Look-ahead scheduling to support video-on-demand applications

Abstract: A system and method of supporting pause-resume in a video-on-demand service of a type which can accommodate multiple viewers sharing a common data stream is described. When a video server receives a performance request from one of the viewers for showing a particular video, it identifies and reserves a look-ahead stream. The look-ahead stream is another video stream which is scheduled to become available after a predetermined time period. When the video is commenced, a common data stream for the video is concurrently transmitted from the video server to reception equipment at the viewers' locations. Transmission of the common data stream causes the particular video to be performed on the viewers' reception equipment. When the video server receives a pause request and then a subsequent resume request from one of the viewers, it transmits the video via the look ahead stream instead of the common data stream.

Description: Background of the Invention Field of the Invention The present invention relates to the support of on-demand pause-resume in a central video server. Related Art The feature of pause-resume is one of the most common operations in VCR. Recently, it has become increasingly popular to develop multimedia servers to support video-on-demand (VOD) applications. In a VOD environment, there are often hot videos which are requested by many viewers. The requirement that each viewer can independently pause the video at any instance and later resume the viewing has caused difficulties in batching of viewers on each showing. In one conventional approach to support on-demand pause-resume, one video stream is provided for each viewer video request. For each multimedia server, there is a maximum number of video streams to the disks that can be supported. This upper limit will be referred to as N MAX . Thus, the above-described approach can only support N MAX viewers. In another conventional approach to the pause-resume problem, video streams for "hot" (popular) movies are scheduled such that they commence at fairly close intervals. In response to receipt of a resume commend from a viewer (after having received a pause) the server assigns to the viewer one of the video streams for the same movie which is scheduled to reach the proper resume point in the near future. One problem with such a system is that the viewer must wait until a stream reaches the proper resume point before the movie can be viewed from the point at which the viewer paused. Communications- Rising to the heights, Denver, 23.06.91, vol. 2 of 3, IEEE, pages 842-846, XP 000 269 608, discloses a store-and-forward architecture for VOD supporting a pause function. Summary Of The Invention It is an object of the invention is to support pause and quick resume for a larger number of viewers than N MAX . In accordance with an embodiment of the present invention there is provided a system and method of supporting pause-resume in a video-on-demand service of a type which can accommodate multiple viewers sharing a common data stream. When a video server receives a performance request from one of the viewers for showing a particular video, it identifies and reserves a look-ahead stream. The look-ahead stream is another video stream which is scheduled to become available after a predetermined time period. When the video is commenced, a common data stream for the video is concurrently transmitted from the video server to reception equipment at the viewers' locations. Transmission of the common data stream causes the particular video to be performed on the viewers' reception equipment. When the video server receives a pause request and then a subsequent resume request from one of the viewers, it transmits the video via the look ahead stream instead of the common data stream. In a preferred embodiment, "look-ahead" stream scheduling with "look-aside" buffering is used to support a larger number of viewers than N MAX . This system avoids the need for backing each viewer by a real video stream capacity from the disk. If a buffer to store t time units of showing is available, two viewers share the same video stream as long as another stream will become available within t time units. This eliminates the need for a real stream capacity at least for t units of time. Look-ahead scheduling backs up viewers with a future (look-ahead) stream which is currently being used for another showing so he can pause and resume at any time. Before the look-ahead stream becomes available, the pausing and resuming viewing are supported by the original stream through buffering of the missed content. If there is not enough buffer space to support look-ahead scheduling, a reserved stream is used. A reserved stream is an otherwise unused stream capacity of the server. When a reserved stream is allocated, the useable stream capacity of the multimedia system is reduced by one. With a reserved stream, a viewer who is sharing a common video stream with other viewers can pause at any time. When the viewer resumes, the reserved stream becomes the viewers active stream to be viewed. At the time when the video showing associated with a look-ahead stream completes, if another playing or reserved stream can be found which will be completed within t units of time, a new look-ahead stream can be designated and the completing look-ahead stream can be used to schedule other viewers. So a viewer may be supported by a sequence of different look-ahead streams during the showing. Thus each viewer is supported by either the real stream showing the video, some look-ahead stream, or a reserved stream. Each real stream or reserved stream for a given showing can support one look-ahead stream of another showing. There is an additional level of complexity due to the fact that the viewer of a look-ahead stream may pause so that the actual finishing time can be uncertain. To get around this problem, a stream, once chosen as a look-ahead stream, is not allowed to pause. Instead, when the viewer pauses, the stream is buffered. Then, when the viewer resumes he views the video from the buffer. Once a viewer can get the remaining portion of the video from the buffer, there will be no further stream requirement for the video. The viewer's buffer contents are not released until the viewing is completed. Brief Description of the Drawings Fig. 1 is a block diagram of a multi-media server; Fig. 2 is a block diagram of the (look-aside) buffer status; Fig. 3 shows the stream status table; Fig. 4 shows a time line for a video request processing example; Fig. 5 is a flow diagram of an overall view of the look-ahead scheduler of FIG. 1, according to an embodiment of the present invention. Figs. 6a & 6b are a more detailed diagram of the look ahead scheduler task; Fig. 7 is a more detailed flow diagram of the pause operation; Fig. 8 is a more detailed flow diagram of the resume operation; Fig. 9 is a more detailed flow diagram of the stream completion operation; Fig. 10 is a more detailed flow diagram of the viewing completion operation; Fig. 11 is a more detailed flow diagram of the ahead stream switching process. Like reference numerals appearing in more than one drawing depict like elements. Detailed Description Of A Preferred Embodiment FIG. 1 is a block diagram of a video-on-demand system according to an embodiment of the present invention. In the following description, it is assumed that in a video-on-demand system clients 1 make requests from a video server 2 via a communication network 3. The movies (videos) are stored on disks 5. The server 2 includes memory buffers 6 for temporary storage of movies for handling short pause requests. The video server 2 also includes a processor 7 (cpu) which executes tasks under control of a main control program (mcp) 8. The video server can be embodied using any processor of sufficient performance for the number of video streams to be supported. For example, a small capacity video server could be embodied using an RISC System/6000 (RS/6000) system while a larger capacity server could be embodied using an ES/9000 system (both available from International Business Machines Corporation of Armonk, New York). The communication network 3 can be, for example, a fiber optic network. The clients 1 are supported by a set-top box which enables them to send commands to the server 2 by way of the network 3. In accordance with an embodiment of the present invention, one of the tasks is a look-ahead scheduler 9. The clients can make requests to start, stop, pause and resume a movie. The individual client requests are handled by a client scheduler 40. The look-ahead scheduler 9 attempts to conserve server resources by combining requests for the same movie that are close together in time while allowing each client to individually pause and resume. The look-ahead scheduler 9 maintains a buffer status table 4 which tracks the use of the memory buffer 6. Referring now to Fig. 2, the (look-aside) memory buffer status will be described. Each buffer block can be in one of the three states: reserved, in-use, and available. As will be explained in detail later, during scheduling of videos, buffers can be put into a "reserved" state to support pause-resume. A "reserved" buffer changes to an "active" (in-use) state when a video stream is stored into it. The buffers which are neither "reserved" nor "active" are available for future allocation. The look ahead scheduler also maintains a stream status table 11 which will now be described by reference to Fig. 3. The multimedia server can only support a fixed number of streams. A stream is considered to be "active", if it is supporting an actual showing of a video. A stream is considered "reserved" if it is reserved to support pause-resume of concurrent viewers of a showing. If a stream capacity is neither "active" nor "reserved", it is available for future showing. Fig. 3 illustrates one way to do the bookkeeping. For each stream, the status of active, reserved or none is recorded. The absence of a recorded status (none) in both the active field 301 and reserved field 302 indicates that the stream is available. For a reserved stream, information on the corresponding active stream showing the video is also recorded in the "reserved" field 302. If a stream is designated as a look-ahead stream for a viewer in another showing being serviced by an active stream, information identifying that active stream is provided in the "look-ahead" field 304. The ID of the video showing on the active stream is recorded in a video ID field 306. For example, in Fig. 4, assume that three video requests for video A get scheduled at time t 0 and at that moment, there is no other active stream. Stream 1 is chosen as the active stream and streams 2 and 3 are designated as reserved streams for concurrent viewers on stream 1. (See the reserved field of streams 2 and 3 in Fig. 3.) At time t 1 two video requests for video B get scheduled. Assume that stream 1 is within t units of time to completion and there is sufficient buffer to support stream 1 as a look-ahead stream. We can choose stream 4 as the active stream and use stream 1 as the look-ahead stream. (See Fig 3 on the look-ahead field of stream 1.) Note that this second group of viewers (of video B) are not current viewers of stream 1. They merely use stream 1 (which is currently carrying video A) as a look-ahead stream to support pause-resume operations. Hence, viewers of stream 1 always means the first group of viewers which is currently viewing video A. If another four requests for video C are scheduled immediately afterwards, stream 5 can be used as the active stream and streams 2 and 3 as the look-ahead steams, assuming sufficient buffer. In addition, stream 6 is needed as a reserved stream. (See the look-ahead field of streams 2 and 3 and the reserved field of stream 6 in Fig. 3.) Figure 3 shows the stream status at this point, where there are 9 viewers consuming six stream capacities. Assume that the multi-media system has a buffer for look-aside purposes of size B and a stream capacity of N MAX . Let N RESRV be the number of reserved streams in the system and N ACT be the number of active streams showing the videos. Let B RESRV be the amount of look-aside buffer reserved and B USE be the amount of look-aside buffer currently in use. We further assume that each unit of time showing requires K bits of data. Each time a video is selected for showing if N W customers are waiting for that video, the following procedure determines the largest number of viewers, C, that can be scheduled to allow for pause-resume. The procedure uses as many look-ahead streams as possible given the buffer constraint, and support the remaining viewers by reserved streams. To be more specific, 1. First the maximum number of additional look-ahead streams supportable given the current buffer usage is determined. This is referred to as N LAHEAD and is the minimum of the following two quantities, The number of video streams (not yet marked as look-ahead streams) to be completed in the next t units of time assuming no pausing, where t is a pre-specified operating parameter determined from the amount of buffer space available to support pause-resume. These are the potential look-ahead streams. The number of additional look-ahead streams supportable by the current state of the buffer. Let us order the potential look-ahead streams based on their remaining time to completion, assuming no pausing. From a buffering view point, one would choose look-ahead streams on that order, i.e. choose look-ahead streams based on their completion times. Assuming that the i th potential look-ahead stream has a remaining time to completion of tα i , it will need a buffer of size tKα i to be reserved if chosen. This buffer amount is needed to save the video contents to completion if the current viewer of the potential look-ahead stream goes into a pause mode. (It is large enough to stream the rest of the showing into buffer, even in the worst case of immediate pausing.) If x look-ahead streams are chosen, an amount of x tKα additional reserved buffer will be needed to handle pausing of their associated viewers, where αt is the average remaining time to complete for the first x potential look-ahead streams, i.e: In addition, an amount of tK buffer space needs to be reserved to support short pausing of the new group of viewers (currently waiting to be scheduled) before the look-ahead streams become available. Hence, with x look-ahead streams chosen, the total amount of buffer needs to be reserved is (tK + x tKα). Thus, from the buffer view point the maximum supportable look ahead streams is the largest x value such that the buffer constraint is satisfied. 2. If this maximum number ( x ) is larger than N W -1, all of these requesting viewers can be scheduled with one real stream for showing the video, and N W -1 look-ahead streams. In this case, C equals to N W . 3. Otherwise, the number of look-ahead streams used is N LAHEAD . We need to obtain some streams capacities to put in reserved mode in order to schedule additional viewers not backed up by the look-ahead streams. The reserved streams obtainable must be smaller than the number of streams available, N AVAIL , which is equal to N MAX - (N RESRV + N ACT ). If N W - N LAHEAD - 1 streams or more are available to be put into reserved mode, all requested viewers can still be scheduled, i.e. C equals to N W . Otherwise, C will be N AVAIL + N LAHEAD . Let D be the number of look-ahead streams used. We will then set B RESRV equal to tK + DKα + B RESRV and increase N ACT by one. Also if reserved streams are used, N RESRV is increased accordingly. Note that B USE will be incremented when the reserved buffers are actually in use to support the pause action. (B RESRV will be decremented for the same amount.) This buffer will be released when not needed. The buffer constraint in step 1, can be expressed as Θ(tK + xtKα + B RESRV ) < (B - B USE ), where Θ (theta) is a tuning parameter. Setting Θ equals to one guarantees that the paused viewer will always be able to get back with no delay. In reality, not all viewers are going to pause at the same time, so Θ can be set at a lower value while still maintaining very low probability that the returned viewer would need to wait. Similarly, N AVAIL can be redefined to be N MAX - (Θ'N RESRV + N ACT ), where Θ' is another tuning parameter. Note that in the case of a guaranteed no-delay resume, Θ' is set to one. The look-ahead streams assigned can be delayed. For an additional ΘtK amount of buffer that can be reserved within the next t units of time, look-ahead streams can be allowed to be available t time units later. This rule can be applied repeatedly. When a stream which is designated as a look-ahead stream is completed, if another look-ahead stream can be found to replace it (i.e. within t units of time to completion), new viewer requests can be scheduled using the newly available stream capacity. Otherwise it becomes a reserved stream. If a look-ahead stream will become available after t+w units of time, the reserved stream can be replaced by that look-ahead stream after w units of time. It can then be scheduled for other viewing. Another optimization to improve the throughput is to allow a resuming stream to merge with a later-showing real stream. Still an appropriate look-ahead stream is required as before to support additional pausing in the future. Referring now to FIG. 5 there is shown a flow diagram of an overall view of a scheduling method according to an embodiment of the present invention. The video request arrival is indicated in step 10. In step 15, the available stream capacity is checked. If there is no available stream capacity, step 20 is executed where the incoming video request is put into a request wait queue. Otherwise, if there is available stream capacity, steps 25-40 are executed. In step 25, the video request or requests is scheduled. The details of the scheduling procedure are given in Fig. 3. Once a video is scheduled, each viewer can pause and then resume at any time desired as indicated in step 30 for pausing operation and step 35 for resuming. The details of the bookkeeping to support the pause and resume operations are given in Figs. 4 and 5, respectively. Step 40 represents the completion of the viewing by a requester. The details of the operation associated with the viewing completion are given in Fig. 6. Referring now to Figs. 6a and 6b the details of the scheduling operation are shown in more detail. In step 50, it is assumed that each time a movie is selected for showing, there are N W customers waiting for that movie. In step 55, the number of available streams that may be marked as look-ahead streams is determined. This is the number of streams, not yet marked as look-ahead streams, that can be completed in the next t units of time assuming no pausing requests. In step 60, the maximum number of look-ahead streams (N LAHEAD ) supportable for the given buffer size is determined. In step 65, N LAHEAD is compared to N W-1 . If N LAHEAD is larger than N W-1 , all requesters can share one video stream, where another N W look-ahead streams are used to backup the pausing requirement, as indicated in step 70. In step 75, the number of buffer required to support the look-ahead scheduling is put into reserve mode. Going back to step 65, if the maximum number of look-ahead streams supportable for the given buffer size is smaller than N W-1 , there are not enough look-ahead streams, hence some video stream capacity needs to be put into reserve mode. Step 80 determines the number of video streams that are currently available (i.e. neither showing nor reserved). In step 85, the number of available video streams is compared to the requirement to support outstanding viewers for the video. If there is enough available video streams, steps 90 and 95 are executed. Otherwise, steps 100 and 105 are executed. In steps 90 and 100, the appropriate number of requesters are scheduled for viewing the video showing, respectively. In steps 95 and 105, the appropriate number of video streams are put into reserved mode, respectively. In step 110, the amount of buffer space required to support the look-ahead scheduling is put into reserve mode. In steps 115 and 120, the bookkeeping on the scheduling is complete. Referring now to Fig. 7 the details of the pausing operation are shown in more detail. Step 130 indicates the arrival of a pause request at the video server. In step 135, it is checked whether that viewer can be supported by a look-ahead stream. If the viewer can be supported by a look-ahead stream, as indicated by step 140, the reserved buffer is put into use to temporarily buffer the missing contents for the pausing viewer up to t units of time. In step 145, the pausing period is checked. If it exceeds the limit, in step 150 the buffer is released if no other viewers are using it. If, in step 135, the viewer can not be supported by a look-ahead stream, in step 155 it is further checked if the supporting stream is marked as a look-ahead stream for another viewer. If this is true, in step 160, the video stream will continue streaming the video into the buffer until completion. The stream completion operation indicated in step 170 is explained in Fig. 9. In step 155, if the stream is not marked as look ahead, it can be stopped as indicated in step 175. Referring now to Fig. 8 we examine the details of the resume operation. In step 200, it is checked whether the resuming point is available in the buffer. If so, as indicated in step 205, the viewer resumes the viewing from the buffer. Otherwise, as indicated in step 210, a reserved stream will be made into an actual showing stream to support the resumed viewer. Referring now to Fig. 9 the details of the stream completion operation are shown. In step 220, when a video stream is completed, the scheduler determines whether this stream or any other associated reserved stream has been marked as a look-ahead stream. For each stream marked as a look-ahead stream, as indicated in step 230, the scheduler determines whether another stream can be identified and switched into a look-ahead stream. This is addressed in details in Fig. 8. If another stream can be switched to a look-ahead stream, steps 235 and 240 are executed. In step 235, that stream is designated as a new look-ahead stream to replace the completing video stream and in step 240, the completing stream is released as an available stream and the process of scheduling new video requests can be initiated if there are waiting video requests. (the stream scheduling process is described in Fig. 6.) In step 230, if no other stream can be switched into a look-ahead stream, steps 245 and 250 are executed. In step 245, the completing stream is made into a reserved stream, and in step 250, the appropriate bookkeeping is done. Referring now to Fig. 10 we examine the details of the viewing completion operation. Note that viewing completion can be later than the stream completion, since during pausing, the video stream may continue and be saved in the buffer. In step 280, all buffer space in use or reserved for the completing viewer is released if not needed by another viewer. In step 285, simultaneous stream completion is checked. If so, the appropriate actions depicted in Fig. 6 are performed. Finally referring now to Fig. 11 the details of the process of switching look-ahead stream will be described. Fig. 8 is a more detailed flow diagram of step 230 of Fig. 6. In step 300, let ε (epsilon) be the lag of the look-ahead stream to the actual showing stream. In step 305, the value of epsilon is examined. If it is not equal to zero, in step 310, the amount of available buffer is examined. If there is sufficient buffer (larger than B MIN ) after some additional allocation (of the amount of Θtkε), steps 315 and 320 are executed. In step 315, that additional buffer allocation is being made, and in step 320, the look ahead interval is set to t. In step 335, it is checked for whether any stream not yet marked as a look-ahead stream can terminate in the next t time units, assuming pausing does not occur. (If so, in step 235, the earliest terminating stream assuming no pausing is chosen as the look-ahead stream to switch over.) Returning to step 310, if there is insufficient buffer (not larger than B MIN ) after some additional allocation (of the amount of Θtkε), no additional buffer is reserved and steps 325 and 335 are executed. In step 325, the look ahead interval is set to t - ε. Returning to step 305, if the value of ε is equal to zero, steps 330 and 335 are executed. In step 330, the look ahead interval is set to t. Now that the invention has been described by way of the preferred embodiment, various modifications and improvements will occur to those of skill in the art. Thus, it should be understood that the preferred embodiment has been provided as an example and not as a limitation. The scope of the invention is defined by the appended claims.

Claims: A method of supporting pause-resume for a video-on-demand system of a type which can accommodate multiple viewers sharing a common data stream, comprising the steps of: receiving a performance request from one of the viewers for showing a particular video; in response to the performance request, identifying and reserving a look-ahead stream, the look ahead stream being another video stream which is scheduled to become available after a predetermined time period; concurrently transmitting the common data stream from a video server to reception equipment at the multiple viewers' locations, transmission of the data stream causing the particular video to be performed on the reception equipment; receiving at the video server, a pause request and a subsequent resume request from one of the viewers; and, in response to the resume request, transmitting the particular video by way of the look ahead stream instead of the common data stream. The method of Claim 1 wherein a different look ahead stream is identified after a period of time has elapsed without the viewer initiating a pause request. The method of claim 1 or 2 wherein in response to the performance request the one of the viewers is assigned a reserved stream which is released when the look ahead stream is identified. The method of one of claims 1 to 3 wherein the one of the viewers is allocated sufficient buffer space to buffer the common video stream for a predetermined period of time. The method of one of claims 1 to 4 comprising the further step of buffering video data streams in response to pause requests from the viewers, whereby a number of viewers supportable by a given stream capacity is increased. A system for supporting pause-resume for a video-on-demand system of a type which can accommodate multiple viewers sharing a common data stream, comprising: receiving means for receiving a performance request from one of the viewers for showing a particular video; identifying means, coupled to the receiving means and responsive to receipt of the performance request, for identifying and allocating a look-ahead stream, the look ahead stream being another video stream which is scheduled to become available after a predetermined time period; transmission means for concurrently transmitting the common data stream from a video server to reception equipment at the multiple viewers locations, transmission of the data stream causing the particular video to be performed on the reception equipment; pause/resume means for receiving a pause request and a subsequent resume request from one of the viewers; and, substitution means, for in response to the resume request, transmitting the particular video by way of the look ahead stream instead of the common data stream. The system of Claim 6 wherein a different look ahead stream is identified after a period of time has elapsed without the viewer initiating a pause request. The system of claim 6 or 7 wherein the viewer is assigned a reserved stream which is released when the look ahead stream is identified. The system of one of claims 6 to 8 wherein the substitution means does not transmit the particular video by way of the look ahead stream unless the resume request is received in greater than a predetermined period of time from the pause request, and further comprising: buffer means for, in response to the pause request, buffering the common video stream for the predetermined period of time, and buffer access means, for serving the one of the viewers from the buffer means if the resume request is received within the predetermined period of time. A method of supporting pause-resume for a video-on-demand service of a type which can accommodate multiple viewers sharing a common data stream, comprising the steps of: receiving a performance request from one of the viewers for showing a particular video; concurrently transmitting the common data stream from a video server to reception equipment at the multiple viewers' locations, transmission of the data stream causing the particular video to be performed on the reception equipment; receiving at the video server, a pause request and a subsequent resume request from one of the viewers; in response to the resume request, performing the particular video for the one of the viewers by commencing transmission of an alternative stream carrying the particular video other than the common data stream. The method of claim 10 wherein the particular video is commenced at a point from which the one of the viewers made the pause request. The method of claim 10 or 11 comprising the further step of: buffering video data streams in response to pause requests from the viewers, whereby a number of viewers supportable by a given stream capacity is increased. The method of one of claims 10 to 12 comprising the further steps of: in response to the performance request, identifying and allocating a look-ahead stream, the look ahead stream being another video stream which is scheduled to become available after a predetermined time period; and, using the look-ahead stream as the alternative stream. The method of one of claims 10 to 13 wherein the alternative is a reserved stream allocated from reserve capacity of the video server. The method of one of claims 10 to 14 comprising the further steps of: assigning buffer space to buffer the common video stream for a predetermined period of time, and when the one of the viewers resumes before the predetermined period of time, serving the one of the viewers the particular video from the buffer space instead of by way of the alternative stream.

Inventors: WOLF JOEL LEONARD, YU PHILIP SHI-LUNG, WOLF, JOEL LEONARD, YU, PHILIP SHI-LUNG
Applicants: IBM, INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1995
Main classification: H04N7
IPC codes: H04N7, G06F12