A digital video recorder employing standard hard disk arrays employs a caching system to enable continuous video data to be supplied to and provided from the standard disk drives which may not be adapted for continuous data stream operation. The system is implemented as an array of disk drives and includes cache management functions for governing disk read and write operations. A predictor enables the cache to predict disk reads and disk writes and to maintain the cache based on the predictions. Redundancy enables playback in the event of failure of a drive in the array and also provides improved playback data retrieval time.
|
11. A method for recording and playing a television data stream having video and audio data comprising the steps of:
receiving the television data stream from an external device; storing continuously the received television data stream as the video and audio data in a cache having a circular structure and a capacity sufficient to minimize data transfer requests during motion state changes; transferring the video and audio data from the cache in discrete portions to an array of non-continuous access, asynchronous disk drives having a greater capacity than the cache while storing the received television data stream thereby recording the video and audio data; receiving the video and audio data in discrete portions from the array of non-continuous access, asynchronous disk drives; storing the received video and audio data in said cache; and transferring continuously the video and audio data from the cache to the external device as the television data stream while storing the video and audio data thereby playing the data.
7. A video disk recorder comprising:
an array of n non-continuous access, asynchronous disk drives for storing video and audio data from a television data stream, one of said asynchronous disk drives storing redundant data; a memory cache having a circular structure and a lesser capacity than the disk drives, but sufficient to minimize disk drive data requests during motion state changes, for either receiving the television data stream from an external device and storing the received television data stream temporarily as video and audio data until the television data stream can be transferred in discrete portions to the array of asynchronous disk drives while still storing the received television data stream, or retrieving discrete portions of video and audio data from the array of asynchronous disk drives and storing the retrieved video and audio data until the retrieved video and audio data is transferred as the television stream to an external device while still storing the retrieved video and audio data; and computer means for directing operation of said memory cache to provide interchange of video and audio data as the television data stream between the array of asynchronous disk drives and an external device.
1. Apparatus for recording and playing a television data stream having video data and audio data comprising:
an array of non-continuous access, asynchronous disk drives for storing the video and audio data from the television data stream; a cache having a circular structure and a capacity less than the array of asynchronous disk drives, but sufficient to minimize disk drive data requests during motion state changes, for either receiving the television data stream from an external device and storing said received television data stream temporarily until said television data stream can be transferred in discrete portions as video and audio data to said array of asynchronous disk drives while still storing the received television data stream, or retrieving discrete portions of video and audio data from said array of asynchronous disk drives and storing said retrieved video and audio data until said retrieved video and audio data is transferred as the television data stream to an external device while still storing the retrieved video and audio data; and computer means for directing operation of said cache to provide interchange of video and audio data as the television data stream between said array of asynchronous disk drives and an external device.
2. Apparatus according to
3. Apparatus according to
4. Apparatus according to
5. Apparatus according to
6. Apparatus according to
8. Apparatus according to
9. A digital video recorder according to
10. A digital video recorder according to
|
This is a continuation of U.S. patent application Ser. No. 08/885,074 filed Jun. 30, 1997, U.S. Pat. No. 6,289,172, which is a continuation of U.S. patent application Ser. No. 07/949,174 filed Sep. 21, 1992 and now abandoned.
This invention relates generally to digital video recorders and, more particularly, to cache management and disk utilization for digital video recorders having multiple inputs and outputs.
An array of disk drives may be assembled to provide sufficient bandwidth to record or play digitized video signals, allowing random access to video data (tape recorders allow only sequential access). However, the data transfer rate of standard disk drives is not constant in that the disk read/write heads must often move from one track to the next and during these periods of movement, no transfer of data to or from the disk may take place. Such limitations are easily overlooked in computer applications since the computer may wait during the periods when no access is available. However, such wait periods are not appropriate in video applications given the continuous stream of data associated with a video signal. While the disks cannot support a continuous transfer data rate required for video, disk arrays are typically able to transfer data in bursts (groups of data) at rates slightly higher than the required continuous rate.
Redundant data storage may be provided to insure accurate data reproduction in case of disk drive failure. However, such redundancy can greatly increase the cost of the system when expensive disk drives are employed. Once a determination of drive failure is made, the redundant data may be retrieved, but a redundant system typically will wait a relatively long time period before determining that a drive has failed. Such waits may not be appropriate during playback of continuous data.
Another problem attendant with an array of disks is that data retrieval speed is dictated by the slowest disk in the array.
Cache management/disk utilization for a digital video recorder according to the present invention employs a cache in conjunction with an array of inexpensive disk drives for recording and playing video signals. The cache is such that data coming in or going out (e.g., digital video) is buffered in the cache through a cache management algorithm, thereby compensating for the periods when the disks may be unable to transfer data. Data is maintained in video and audio blocks, enabling use and modification of either or both of video data and audio data. In playback mode, e.g., the cache management includes retrieving playback data from the disks in advance of their use, and storing this information in the cache, and making data available for output.
For a better understanding of the invention, and to show how the same may be carried into effect, reference will now be made, by way of example, to the accompanying drawings in which:
Data is spread across the plurality of drives 17, providing greater bandwidth than would be available with a single drive. Redundancy is provided through a redundant data controller 99 to handle possible failure of one drive in the array 12, by exclusive ORing corresponding bits sent to each drive, e.g., all bits 0 are exclusive ORed generating redundant bit 0. During write operations, this produces the value stored in a redundant drive 17. The data bit value from a non-responding drive 17 may then be reconstructed during a read by the process described above substituting the redundant drive's data for the missing data. The non-responding drive 17 is the last drive to complete its operation.
Coupled to disk controllers 13, redundant data control 99, transfer control 18 and I/O data channels 19 is the control system 16 which functions to direct management and operation of the recorder, governing where data is stored and the like. The control system 16 implements stop, play, record, etc. commands, managing the cache 14 and generating disk read and write requests as needed. The control system 16 also provides a high level user interface and an interface to other controlling devices. Primary input to the control system 16 is stimulus from an operator of the system.
All disk controllers 13 receive the same instructions from the control system 16. Cache 14 consists of multiple dual-ported memories, one memory for each disk drive 17 in disk array 12, each memory having a DMA controller. From the point of view of each disk controller 13, its portion of memory within the cache 14 is independent of the other controller cache memory portions. However, from the point of view of the redundant data control 99, the cache memories function as a single common memory. The bandwidth between the redundant data control 99 and the cache transfer control 18 is the product of one disk's bandwidth and the number of drives 17 in the array 12 minus one. The disk controllers 13 also include DMA controllers and independently perform direct memory access transfers between the cache 14 and each individual disk drive 17. In typical operation, the disks 17 in the array 12 are given instructions to transfer large blocks of data between the disks and the cache 14. The transfers are accomplished by the DMA controllers transferring smaller blocks. Once a DMA controller has completed an operation, it informs the control system 16, whereupon a new set of instructions is given to the DMA controller. A disk operation complete acknowledgment is generated by a disk array monitor after n-1 drives 17 in the array 12 of n drives have completed their operations and is sent to the Validator (described hereinbelow) for each DMA operation. Internal buffering within each drive 17 buffers data while DMA is reprogrammed, thereby eliminating rotational latency delays. Contiguous data on each disk drive 17 is thereby transferred to and from non-contiguous locations within the cache 14 (see FIG. 2).
Cache to I/O transfer control block 18 is responsible for transfer of data between the cache 14 and input/output data channels 19. Input/output data channels 19 convert incoming video/audio data into an internal format during record operations and convert back to the external video/audio format during playback operations. Any suitable video format may be employed.
In the illustrated embodiment, the array 12 of disk drives 17 has 13 hard disk drives 17, each disk drive being a 1.6 GByte SCSI drive and the cache 14 has 4 MBytes of memory per disk drive (for a total of 52 MBytes).
In the system according to the present invention, the algorithm for managing the cache 14 and the organization of disk data are tightly coupled. The illustrated embodiment of the invention stores both video and audio data on the same disk array 12.
Referring now to
The cache 14 is of lesser length than the disk array 12 and is organized as separate video arid audio portions Vl through Vm and Al through Am respectively. Signal data is stored in the cache 14 which is logically divided into a section of video blocks 25 and a section of audio blocks 27 wherein each video block may hold video data for a single disk element 20 and each audio block may hold audio data for a single disk element. Therefore, an element 20 from the disk array 12 corresponds to two blocks in the cache. In some cases a block may contain less than a complete element. The system allows random access to data which is stored contiguously on the disk array 12. A portion of a disk array element 20 may be transferred based on control commands received by the system from the user. In the illustrated embodiment, the cache 14 is of sufficient size to contain eight video blocks and eight audio blocks. The cache 14 is ordered such that the material within the cache is in sequential order. The cache 14 is organized as a circular structure. As the current position crosses a cache block boundary, the block containing the oldest material is used to fetch future material for playback or reserved for input during record. This organization retains the most current video and audio output in the cache 14 to minimize disk requests during motion state changes.
The control system 16 maintains a cache tag table for tracking information about data within individual cache data blocks. The cache tag includes a tag field state for each video and audio field in the tag which indicates what data within the cache 14 will be used for and with what step of the cache management process the data is currently engaged. The tag field state may be one of the following states:
EMPTY--a field is empty and available for use
PLAY RESERVED--this field is reserved for playback data but is empty
PLAY FILLING--data is being transferred from the disks 17 into this field
PLAY FILLED--all requested data is in the disk cache 14 for this field and is ready for transfer to input/output data channels 19
RECORD FILLING--record data is transferring into this field from input/output data channels 19
RECORD FILLED--data in this field is ready to be written to disk array 12
RECORD EMPTYING--the disk controllers--are in the process of writing data from this field to the disks 17.
The various states available may be better understood in conjunction with
The RECORD FILLED state 70 is reached from RECORD FILLING state 64 when all requested data is in the disk cache 14 and ready to be written to disk. From the RECORD FILLED state 70, transition may be made to the RECORD EMPTYING state 72 when the disk controllers 13 are in the process of writing data to the disks 17. Once the data is written to the disk array 12, the state is changed to PLAY FILLED 68, allowing playback or freeing the cache block for further use.
The cache tag also includes the playback starting and ending fields, the field corresponding to the first field of the disk element 20 mapped to the tag, the cache address of each field of the tag, the disk array 12 containing the data, and the late disk, identifying which was the last disk 17 to respond.
It is the responsibility of the control system 16 (
The control system 16 is responsible for executing high-level commands, providing disk read and write commands to the disk array 12 and monitoring each drive 17 in the array to determine completion of the data transfer.
In playback mode, the disk array 12 must read information in advance of when it will actually be output and store the information in the disk cache 14. The information in the disk cache 14 may then be transferred to video and audio outputs in real time. In record mode, incoming video and audio data are transferred to the disk cache 14 in real time, and the disk array 12 is instructed to write the cached information an element at a time.
Cache management is divided into three subsystems that deal with operation of the disk cache 14 and the disk array 12: Predictor; Validator; and Query. Predictor determines what material should be in the cache 14 based on the current position within the data and the current motion state. The motion state may be one of Stopped, Playing, Recording, or Shuttling, which are described hereinbelow with reference to Table I. Predictor also translates between playlist space and reel space. Reel space is a sequential series of fields stored on a disk array 12. A reel may span more than one disk array 12 or several reels may share a disk array 12. The system contains random-access playback capabilities which are provided to the user through the use of playlists. The system can access material scattered randomly across the disk array 12 in addition to the standard linear manner of playback. Playlist space comprises several segments, a segment being a set of one or more contiguous output fields. Each playlist may identify different portions of a reel. A field that is defined in terms of playlist space is designated as an offset of a number of fields relative from the first field in the playlist. Predictor will generate requests for material, e.g., video data or audio data, based on the current motion state, the contiguous desired material that is currently within the cache 14 and space available in the cache. Transfers may include playback (transfers from the disk array 12 to the cache 14) and record (transfers from the cache into the disk array). Predictor is performed once each field.
Validator updates the state of the cache 14 according to the acknowledgments received from the disk array 12. These acknowledgments indicate what data has been transferred to and from the disk array 12, validator is also responsible for indicating that sufficient material has been transferred into or out of the cache 14 to allow further commands to be processed.
Query facilitates transfer of data between the cache 14 and input/output data channels 19. It does this by providing cache addresses for location of video and audio materials that are needed for playback or providing the addresses necessary to indicate where newly recorded material will be placed within the cache 14 prior to transfer to the disk array 12.
The function of the Predictor is presented as a state table in Table I. The state table consists of the previous state along the horizontal axis and a new state along the vertical axis. Each box of Table I represents the procedure followed at the state transition. At any one time, the previous state or new state may comprise one of the following states: Initialize; Stopped; Playing; Recording; or Shuttling. Initialize is the state which occurs when the recorder 10 is first started. The Stopped state takes on two modes: steady state and go to request. In the steady state mode, Stopped is the state wherein the current position is not changing. In the case of a go to, Stopped state processes a request from the user to output a field other than the current position. The system processes this go to request by assessing the playlist field requested relative to the current contents of the cache 14 and only the data needed to center the request field within the cache is requested from the disk array. In the Playing state, the recorder retrieves data from the disk arrays 12 and supplies the retrieved data as output through input/output data channels 19. The Recording state involves transferring received data from input/output data channels 19 to the disk arrays 12. Shuttling is a state wherein the recorder 10 plays data.
TABLE 1 | |||||
Predictor State Transition Table | |||||
Previous State | |||||
Initialize | Stopped | Playing | Recording | Shuttling | |
Initialize | Invalid | Invalid | Invalid | Invalid | Invalid |
transition | transition | transition | transition | transition | |
Stopped | Set cache | Crossed | Time to | Set cache | Set cache |
busy | Elem | Fetch | busy | busy | |
Build | Time to | Build | Write | Build | |
Cache | Fetch | Cache | Residue | Cache | |
Build Cache | Build | ||||
Cache | |||||
Playing | Invalid | Play | Play | Set cache | Set cache |
transition | busy | busy | |||
Write | Calculate | ||||
Residue | Gap | ||||
Calculate | Play | ||||
Gap | |||||
Play | |||||
Recording | Invalid | Record | Record | Set Tracks | Record |
transition | Record | ||||
Shuttling | Invalid | Shuttle | Shuttle | Invalid | Shuttle |
transition | transition | ||||
With reference now to Table I, the various operations of the Predictor will be described. A number of processes are set out in Table I and are defined as follows:
Set cache busy--sets the state of the cache status to indicate to the system that the cache management process is not available for command input.
Build Cache--performs an analysis of the cache 14 to determine the usable contiguous material within the cache, the amount of cache space that is available, the size and distribution within disk elements 20 of desired segment and playlist fields. Build Cache also determines where new material will be placed within the cache, prioritizes and generates disk requests.
Crossed Elem(ent)--determines if the current position within the play or record data has crossed a cache element boundary. If a boundary has not been crossed, no further steps are taken.
Time to Fetch--determines if the amount of time that would be necessary to fetch the necessary material exceeds the limits of the system and if so, sets the state of the cache 14 to busy.
Play--maintains a centered cache as the current position moves through the cache 14. The cache is centered when the current position has equal amounts of forward and reverse play data in the cache on either side of the current position. Play optimizes and generates disk read requests to transfer data from the disk array 12 that may be needed to fill the cache.
Record--maintains a centered cache as input source data is recorded into the cache 14. Optimizes and generates disk requests to write recorded material from the cache to the disk array 12.
Shuttle--determines the expected field based on shuttle speed and change of direction. Generates disk read requests to fill the cache 14 with data from the disk array 12.
Write Residue--determines if the system has completed the recording of source material into the cache 14. If the recording is complete, a disk write request is issued to transfer material from the cache to the disk array 12.
Calculate Gap--determines the portion of the cache 14 which will not be usable because of transfer time constraints and other system constraints.
Set Tracks--determines whether, for example, video tracks, audio tracks or both are being recorded.
Invalid transition denotes that the state is not properly attainable during normal operation of the recorder.
The rules which the Predictor applies in operation are:
In forward play, the Predictor reserves cache blocks as far forward in time as needed to center the current output field in the cache 14. Future material will occupy up to five cache blocks ahead of the block containing the current output; likewise, previously played material will occupy about three blocks prior to the block containing the current output. Blocks previously played are maintained until needed for future playback material. This assures that material needed in the cache 14 for state transitions (i.e., Play to Stopped) is available without necessity of a disk request. For reverse play, this same algorithm is followed; however, a backward biased cache is built, again maintaining a centered output with approximately five blocks proceeding the block containing the current output.
The system is in the Record state when any or all tracks are recording. The procedure followed during Record is one of allocation of cache blocks for use by the input data. As a single block is filled by the input data, the cache manager issues disk requests for the disk array 12 to transfer data from the cache to the disk array 12. The cache manager then frees the next block as available for input. In order to minimize disk requests during state transitions, the material which has been previously recorded and transferred to disk array 12 is maintained in the cache 14. This assures that if a transition from Record to Play is made before the recorded material has filled the entire cache, the material contained in the cache 14 prior to the record is still available. Likewise, during a transition from Record to Play or Stopped, the material which was just recorded remains in the cache 14 requiring that only the material ahead of the recorded data needs to be fetched from the disk array 12.
In the Shuttle state, single fields are placed into the cache blocks. The field which will be requested from the disk array 12 is determined by the current output position plus a shuttle constant times the shuttle speed, e.g., with a current output field of 100 and a speed of 4 (unity is 1) and a constant of 3, the next field to be placed in the cache block adjacent to the block containing the current output is field 112. Again, the previously output data is retained in the cache 14 to allow for change in shuttle direction, e.g., reverse to forward.
In the Stopped state, the cache is built around the current output position. The current output position is the output field requested by the user. Depending on the previous state of the cache 14 (particularly the current output position) more or fewer disk reads will have to be generated to center the current output position. If the current output position is not contained within the cache 14, the entire cache must be rebuilt from the disk array 12. This current output position must be fetched from the disk array 12 immediately. Therefore, the material requested from the disk array 12 follows the pattern: request current output position, request data needed ahead of the current output position, request data needed behind the current output position. If the current output position is contained in the cache 14, the disk requests needed to center this position are generated. An assessment of the cache 14 is made to assure that the minimum number of fields are requested from the disk array 12.
The Validator process is responsible for maintaining the cache state in response to acknowledgment of data transfers to and from the disk arrays. Referring now to
If the result of decision block 52 is NO, then that system is in Shuttling state and step 56 determines a range of cache locations that would be acceptable to provide appropriate shuttle playback data. Following step 56, the cache 14 is searched in step 58 to determine the position within the cache of data that meets the range criteria determined in step 56. The Query operation is then completed.
As mentioned hereinabove, the system provides redundancy in the disk array 12 which enables playback to occur even though one drive 17 may not have responded. Such an operation would not be appropriate in record mode since the redundant data must be transferred reliably to be of any use in playback and, hence, the whole set of disks must respond before a record operation is completed. Employing such redundancy enables the system to provide playback data without waiting for the slowest disk 17 of an array to respond with data or without waiting to determine that a disk drive has failed. Therefore, the response of the system is not dictated by the slowest drive, providing a speed improvement on playback. Further, it is not necessary to determine that a drive 17 has actually failed before employing redundancy to reconstruct playback data; the reconstruction is automatically performed after n-1 drives respond with data. Since the identity of the non-responding (or last to respond) drive 17 is known, reconstruction of data is accomplished by exclusive ORing the data from the n-1 drives thereby producing the missing data. The resultant data is then inserted at the position where the data from the non-responding or late drive 17 would have been. Of course, if the non-responding drive is the one that contains the redundant data bit, no reconstruction is necessary. Thus, the recorder provides redundant storage of video and audio data.
Therefore, a system and method for managing a disk cache 14 for a digital video recorder 10 have been shown and described wherein a disk array 12 is managed to enable continuous data to be written to or supplied from a series of non-continuous access disks 17 wherein the disks 17 are more likely to be operating in a burst mode rather than in a continuous data stream mode wherein the burst rate of the disk array (the rate at which individual groups of data are transferred to the array) is higher than the continuous data stream rate. The term "continuous data" may be understood to include data transferred external to or received external from the recorder 10 at a uniform clock rate, while non-continuous access storage may include the transfer of data at non-uniform clock rates, sometimes at a higher rate than the "continuous" uniform rate, but other times at a much lower (e.g. zero) rate.
While the particular embodiment employs video and audio data, other information may also be used, for example, video and key data or video and key/depth data, wherein depth data may define layering priority of corresponding video data. The video portion of an element may also contain both a video signal and corresponding key data. Further, multiple disk reorders may be coupled together to provide multiple disk arrays to allow more record and playback storage time or to allow more channels of data to be recorded concurrently under control of one control system 16. Therefore, it will be appreciated that the invention is not restricted to the particular embodiment that has been described, and that variations may be made therein without departing from the scope of the invention as defined in the appended claims and equivalents thereof.
Windrem, Kevin D., O'Connor, Paul, Casper, David, Murray, Scott, Greco, Anna, Zamani, Elaine B.
Patent | Priority | Assignee | Title |
10115279, | Oct 29 2004 | SENSORMATIC ELECTRONICS, LLC | Surveillance monitoring systems and methods for remotely viewing data and controlling cameras |
10504347, | Oct 29 2004 | JOHNSON CONTROLS, INC ; Johnson Controls Tyco IP Holdings LLP; JOHNSON CONTROLS US HOLDINGS LLC | Wireless environmental data capture system and method for mesh networking |
10769910, | Oct 29 2004 | SENSORMATIC ELECTRONICS, LLC | Surveillance systems with camera coordination for detecting events |
11138847, | Oct 29 2004 | SENSORMATIC ELECTRONICS, LLC | Wireless environmental data capture system and method for mesh networking |
11450188, | Oct 29 2004 | JOHNSON CONTROLS, INC ; Johnson Controls Tyco IP Holdings LLP; JOHNSON CONTROLS US HOLDINGS LLC | Wireless environmental data capture system and method for mesh networking |
6823129, | Feb 04 2000 | Quvis, Inc. | Scaleable resolution motion image recording and storage system |
7508418, | Sep 24 2004 | SENSORMATIC ELECTRONICS, LLC | Wireless video surveillance system and method with DVR-based querying |
7539820, | Apr 20 2004 | Hitachi Global Storage Technologies Netherlands B.V. | Disk device and control method for cache |
7603087, | Aug 12 2005 | JOHNSON CONTROLS, INC ; Johnson Controls Tyco IP Holdings LLP; JOHNSON CONTROLS US HOLDINGS LLC | Wireless video surveillance jamming and interface prevention |
7719567, | Sep 24 2004 | SENSORMATIC ELECTRONICS, LLC | Wireless video surveillance system and method with emergency video access |
7728871, | Sep 30 2004 | SENSORMATIC ELECTRONICS, LLC | Wireless video surveillance system & method with input capture and data transmission prioritization and adjustment |
7730534, | Sep 23 2004 | SENSORMATIC ELECTRONICS, LLC | Enterprise video intelligence and analytics management system and method |
7784080, | Sep 30 2004 | SENSORMATIC ELECTRONICS, LLC | Wireless video surveillance system and method with single click-select actions |
7821533, | Sep 23 2004 | SENSORMATIC ELECTRONICS, LLC | Wireless video surveillance system and method with two-way locking of input capture devices |
7936370, | Sep 25 2004 | SENSORMATIC ELECTRONICS, LLC | Wireless video surveillance system and method with dual encoding |
7954129, | Sep 24 2004 | SENSORMATIC ELECTRONICS, LLC | Wireless video surveillance system and method with remote viewing |
7986686, | Nov 25 2005 | Cisco Technology, Inc. | Techniques for distributing network provider digital content to customer premises nodes |
8199195, | Sep 30 2004 | SENSORMATIC ELECTRONICS, LLC | Wireless video surveillance system and method with security key |
8208019, | Sep 24 2004 | SENSORMATIC ELECTRONICS, LLC | Wireless video surveillance system and method with external removable recording |
8253796, | Sep 30 2004 | SENSORMATIC ELECTRONICS, LLC | Wireless video surveillance system and method with rapid installation |
8259789, | Feb 08 2006 | ADTECH GLOBAL SOLUTIONS, INC | Methods and systems for picture rate reduction of stored video while under continuous record load |
8395664, | Sep 13 2006 | JOHNSON CONTROLS, INC ; Johnson Controls Tyco IP Holdings LLP; JOHNSON CONTROLS US HOLDINGS LLC | Wireless surveillance system and method for 3-D visualization and user-controlled analytics of captured data |
8457314, | Sep 23 2004 | SENSORMATIC ELECTRONICS, LLC | Wireless video surveillance system and method for self-configuring network |
8750509, | Sep 23 2004 | SENSORMATIC ELECTRONICS, LLC | Wireless surveillance system releasably mountable to track lighting |
8752106, | Sep 23 2004 | SENSORMATIC ELECTRONICS, LLC | Mesh networked video and sensor surveillance system and method for wireless mesh networked sensors |
8776158, | Sep 30 2009 | EMC IP HOLDING COMPANY LLC | Asynchronous shifting windows caching for forward and backward video streaming |
8824464, | Nov 25 2005 | Cisco Technology, Inc. | Techniques for distributing network provider digital content to customer premises nodes |
9407877, | Sep 30 2004 | SENSORMATIC ELECTRONICS, LLC | Wireless video surveillance system and method with input capture and data transmission prioritization and adjustment |
9544547, | Sep 30 2004 | SENSORMATIC ELECTRONICS, LLC | Monitoring smart devices on a wireless mesh communication network |
Patent | Priority | Assignee | Title |
4616263, | Feb 11 1985 | GTE Main Street Incorporated | Video subsystem for a hybrid videotex facility |
4647986, | Aug 06 1984 | General Electric Company | Storing video images on disk using video time base and retrieving the images using disk time base |
5261072, | Oct 31 1991 | Tandy Corporation | Compact disk data transfer system using cache memory |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jan 21 2000 | Grass Valley (US), Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Jul 14 2006 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jul 09 2010 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Aug 15 2014 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Feb 25 2006 | 4 years fee payment window open |
Aug 25 2006 | 6 months grace period start (w surcharge) |
Feb 25 2007 | patent expiry (for year 4) |
Feb 25 2009 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 25 2010 | 8 years fee payment window open |
Aug 25 2010 | 6 months grace period start (w surcharge) |
Feb 25 2011 | patent expiry (for year 8) |
Feb 25 2013 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 25 2014 | 12 years fee payment window open |
Aug 25 2014 | 6 months grace period start (w surcharge) |
Feb 25 2015 | patent expiry (for year 12) |
Feb 25 2017 | 2 years to revive unintentionally abandoned end. (for year 12) |