US5572645A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Buffer management policy for an on-demand video server
Assignee: Cisco Technology Inc
•
Filing: 1994-03-01
•
Granted: 1996-11-05
•
Expires: 2014-03-01
Abstract
Abstract A method for reducing the disk bandwidth capacity required by a multimedia server by selectively retaining blocks that have already been read in by one stream for re-use by another. Due to stream-dependent block buffering, the storage requirement is less than that for whole-movie buffering and because the policy is dynamic, it also adapts rapidly to changing access patterns.
Inventors
- 👤 Asit Dan
- 👤 Dinkar Sitaram
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-28 10:37
CPC Classifications
G; G06; G06F; G06F3/00; G06F3/06; G06F3/0601; G06F12/00; G06F12/02; G06F12/08; H; H04; H04N; H04N7/00; H04N7/16; H04N7/173; H04N7/17309; H04N7/17336; G06F3/0628; G06F3/0655; G06F3/0656
Claims Analysis
Total Claims: 16
Claim 1
Independent Claim
184 words
A method of managing memory buffer in a video server, wherein a plurality of clients are served from video streams provided from disks, comprising the step of: determining buffer requirements of a plurality of the video streams, the buffer requirements being a number of frames separating each video stream from an immediately previous video stream carrying the same video; creating a list of streams ordered by the buffer requirements; allocating the buffer starting from a stream with a smallest buffer requirement and proceeding to streams with larger buffer requirements until the buffer requirement of a stream can not be satisfied; retaining blocks of the immediately previous stream in the buffer allocated to a following stream and discarding the blocks from the buffer as they are read by a client viewing the following stream; updating the list when any of starting, stopping, pausing and resuming of a video occurs; and, responsive to the updating, reallocating the buffer starting from a stream with a smallest buffer requirement and proceeding to streams with larger buffer requirements until the buffer requirement of a stream can not be satisfied.
Claim 2
Independent Claim
184 words
A method of managing memory buffer in a video server, wherein a plurality of clients are served from video streams provided from disks, comprising the step of: determining buffer requirements of a plurality of the video streams, the buffer requirements being a number of frames separating each video stream from an immediately previous video stream carrying the same video; creating a list of streams ordered by the buffer requirements; allocating the buffer starting from a stream with a smallest buffer requirement and proceeding to streams with larger buffer requirements until the buffer requirement of a stream can not be satisfied; retaining blocks of the immediately previous stream in the buffer allocated to a following stream and discarding the blocks from the buffer as they are read by a client viewing the following stream; updating the list when any of starting, stopping, pausing and resuming of a video occurs; and, responsive to the updating, reallocating the buffer starting from a stream with a smallest buffer requirement and proceeding to streams with larger buffer requirements until the buffer requirement of a stream can not be satisfied.
Claim 3
Dependent Claim
149 words
The method of claim 1 wherein a plurality of clients share a common one of the video streams, comprising the further steps of: determining when one of the clients sharing the common one of the video streams has paused; allocating a portion of the buffer to retain the blocks of the common one of the video streams on behalf of the client who has paused; determining when the portion of the buffer is full; determining when a resume request has been received from the paused client; when the buffer is full and a resume request has not been received from the paused client for whom buffer was allocated before the buffer is full, deallocating the buffer; when a resume request is received before the portion of the buffer is full, serving the client from the buffer and discarding blocks from the buffer as they are consumed by the client.
Claim 4
Independent Claim
118 words
A method of managing memory buffer in a video server, wherein a plurality of clients are served from video streams provided from disks, comprising the step of: determining buffer requirements of a plurality of the video streams, the buffer requirements being a number of frames separating each video stream from an immediately previous video stream carrying the same video; and, examining the buffer requirements and as a function thereof, allocating the buffer so as to maximize a number of streams that can be provided therefrom; retaining blocks of the immediately preceding stream in the buffer allocated to a following stream and discarding the blocks from the buffer as they are read by a client viewing the following stream.
Claim 5
Independent Claim
118 words
A method of managing memory buffer in a video server, wherein a plurality of clients are served from video streams provided from disks, comprising the step of: determining buffer requirements of a plurality of the video streams, the buffer requirements being a number of frames separating each video stream from an immediately previous video stream carrying the same video; and, examining the buffer requirements and as a function thereof, allocating the buffer so as to maximize a number of streams that can be provided therefrom; retaining blocks of the immediately preceding stream in the buffer allocated to a following stream and discarding the blocks from the buffer as they are read by a client viewing the following stream.
Claim 6
Dependent Claim
64 words
The method of claim 3 comprising the further steps of: determining when one of the clients has paused; allocating a portion of the buffer to retain blocks of the video streams on behalf of the one of the clients who has paused; and, when a resume request is received from the one of the clients, serving the one of the clients from the buffer.
Claim 7
Dependent Claim
60 words
The method of claim 4 wherein at least some memory buffer is locally disposed at a site of the one of the clients and wherein when the resume request is received from the one of the clients before the portion of the buffer is full, the one of the clients is served from the memory buffer which is locally disposed.
Claim 8
Dependent Claim
149 words
The method of claim 3 wherein a plurality of clients share a common one of the video streams, comprising the further steps of: determining when one of the clients sharing the common one of the video streams has paused; allocating a portion of the buffer to retain the blocks of the common one of the video streams on behalf of the client who has paused; determining when the portion of the buffer is full; determining when a resume request has been received from the paused client; when the buffer is full and a resume request has not been received from the paused client for whom buffer was allocated before the buffer is full, deallocating the buffer; when a resume request is received before the portion of the buffer is full, serving the client from the buffer and discarding blocks from the buffer as they are consumed by the client.
Claim 9
Independent Claim
162 words
A method of managing memory buffer in a video server, wherein a plurality of clients are served from video streams provided from disks, comprising the steps of: determining when one of the clients sharing one of the video streams has paused; allocating a portion of the buffer to retain the blocks of the one of the video streams on behalf of the one of the clients; determining when the portion of the buffer is full; determining when a resume request has been received from the one of the clients; when the buffer is full and a resume request has not been received from the one of the clients before the buffer is full, deallocating the buffer; and, when a resume request is received from the one of the clients before the portion of the buffer is full, serving the one of the clients from the buffer and discarding blocks from the buffer as they are consumed by the one of the clients.
Claim 10
Independent Claim
162 words
A method of managing memory buffer in a video server, wherein a plurality of clients are served from video streams provided from disks, comprising the steps of: determining when one of the clients sharing one of the video streams has paused; allocating a portion of the buffer to retain the blocks of the one of the video streams on behalf of the one of the clients; determining when the portion of the buffer is full; determining when a resume request has been received from the one of the clients; when the buffer is full and a resume request has not been received from the one of the clients before the buffer is full, deallocating the buffer; and, when a resume request is received from the one of the clients before the portion of the buffer is full, serving the one of the clients from the buffer and discarding blocks from the buffer as they are consumed by the one of the clients.
Claim 11
Independent Claim
115 words
A system for managing memory buffer in a video server, wherein a plurality of clients are served from video streams provided from disks, comprising: means for determining buffer requirements of a plurality of the video streams, the buffer requirements being a number of frames separating each video stream from an immediately previous video stream carrying the same video; means for examining the buffer requirements and as a function thereof, allocating the buffer so as to maximize a number of streams that can be provided therefrom; and, means for retaining blocks of the immediately previous stream in the buffer and discarding the blocks from the buffer as they are read from the buffer by a client.
Claim 12
Independent Claim
115 words
A system for managing memory buffer in a video server, wherein a plurality of clients are served from video streams provided from disks, comprising: means for determining buffer requirements of a plurality of the video streams, the buffer requirements being a number of frames separating each video stream from an immediately previous video stream carrying the same video; means for examining the buffer requirements and as a function thereof, allocating the buffer so as to maximize a number of streams that can be provided therefrom; and, means for retaining blocks of the immediately previous stream in the buffer and discarding the blocks from the buffer as they are read from the buffer by a client.
Claim 13
Independent Claim
87 words
A method of managing memory buffer in a system, wherein a plurality of data consumers are served from data streams provided from at least one storage device, comprising the steps of: determining buffer requirements of a plurality of the data streams, the buffer requirements being a number of data blocks separating each data stream from an immediately previous data stream carrying the same information; and based on the buffer requirements, allocating the buffer so as to maximize a number of data streams that can be provided therefrom.
Claim 14
Independent Claim
87 words
A method of managing memory buffer in a system, wherein a plurality of data consumers are served from data streams provided from at least one storage device, comprising the steps of: determining buffer requirements of a plurality of the data streams, the buffer requirements being a number of data blocks separating each data stream from an immediately previous data stream carrying the same information; and based on the buffer requirements, allocating the buffer so as to maximize a number of data streams that can be provided therefrom.
Claim 15
Independent Claim
136 words
A method of managing memory buffer in a system wherein a plurality of data consumers are served from data streams, comprising the step of: determining buffer requirements of a plurality of the data streams, the buffer requirements being a number of data blocks separating each data stream from a previously commenced data stream carrying the same information; allocating the buffer starting from a data stream with the smallest buffer requirement and proceeding to data streams with larger buffer requirements until the buffer requirements of one of the data streams can not be satisfied; retaining blocks of a previously commenced data streams in the buffer allocated to a corresponding subsequently commenced data stream carrying the same information; and, servicing a data consumer from the subsequently commenced data streams using data blocks provided by way of the buffer.
Claim 16
Independent Claim
136 words
A method of managing memory buffer in a system wherein a plurality of data consumers are served from data streams, comprising the step of: determining buffer requirements of a plurality of the data streams, the buffer requirements being a number of data blocks separating each data stream from a previously commenced data stream carrying the same information; allocating the buffer starting from a data stream with the smallest buffer requirement and proceeding to data streams with larger buffer requirements until the buffer requirements of one of the data streams can not be satisfied; retaining blocks of a previously commenced data streams in the buffer allocated to a corresponding subsequently commenced data stream carrying the same information; and, servicing a data consumer from the subsequently commenced data streams using data blocks provided by way of the buffer.
References Cited (Backward Citations)
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1999-11-05 | 2000-05-06 | 2000-11-05 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2003-11-05 | 2004-05-06 | 2004-11-05 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2007-11-05 | 2008-05-06 | 2008-11-05 | $7700.00 | Window Closed / Lapsed |