Method and apparatus implementing random access and time-based functions on a continuous stream of formatted digital data
DCFirst Claim
Patent Images
1. A process for capturing and storing a video signal, comprising the steps of:
- providing a plurality of linear caches for storing said video signal as digital blocks;
providing signal capture means for capturing said video signal and separating multiplexed components of said video signal before storing said components into separate linear caches;
providing cache playback means for selecting a portion of said linear caches for streaming access;
providing cache control means for controlling a rate of streaming access from said linear caches;
synchronizing streaming digital blocks from said linear caches for delivery to said cache playback means;
wherein said cache control means sends clock events to said cache playback means to control a rate and direction of streaming access;
wherein said synchronization step synchronizes the streaming digital blocks from said linear caches such that the streaming digital blocks are correctly positioned relative to each other;
wherein said linear caches maintain a window that represents a time span into a past history of said video signal that includes a currently captured portion of said video signal; and
wherein said linear caches discard any information that outside of said window.
6 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A continuous stream of formatted digital data, such as a video segment, audio segment, or information stream, appears to be a fixed length segment under certain circumstances, defining a virtual segment within the continuous stream which moves forward in time in synchrony with the continuous stream. The virtual segment thus defined can be explored in a non-linear fashion at arbitrary playback rates. For instance, concepts such as rewind, pause, frame advance, and fast forward become meaningful even though the continuous stream never ceases.
-
Citations
141 Claims
-
1. A process for capturing and storing a video signal, comprising the steps of:
-
providing a plurality of linear caches for storing said video signal as digital blocks;
providing signal capture means for capturing said video signal and separating multiplexed components of said video signal before storing said components into separate linear caches;
providing cache playback means for selecting a portion of said linear caches for streaming access;
providing cache control means for controlling a rate of streaming access from said linear caches;
synchronizing streaming digital blocks from said linear caches for delivery to said cache playback means;
wherein said cache control means sends clock events to said cache playback means to control a rate and direction of streaming access;
wherein said synchronization step synchronizes the streaming digital blocks from said linear caches such that the streaming digital blocks are correctly positioned relative to each other;
wherein said linear caches maintain a window that represents a time span into a past history of said video signal that includes a currently captured portion of said video signal; and
wherein said linear caches discard any information that outside of said window. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
providing presentation means for presenting the streamed digital blocks from said cache playback means to a display device; and
wherein said presentation means decodes the streamed digital blocks before presentation to said display device.
-
-
4. The process of claim 3, wherein each digital block is marked with a time stamp that indicates when that block should be presented to said presentation means.
-
5. The process of claim 1, wherein said cache playback means provides random access to said linear caches.
-
6. The process of claim 1, wherein said cache playback means provides functions including any of:
- pause, rewind, fast forward, play, play faster, play slower, skip/jump, replay, repeat, and play in reverse.
-
7. The process of claim 1, further comprising the step of:
providing clip capture means for capturing a range of information from said linear caches.
-
8. The process of claim 7, wherein said clip capture means saves said range of information to a storage device.
-
9. The process of claim 7, wherein said clip capture means decodes and displays said range of information on a display device.
-
10. The process of claim 7, wherein said clip capture means converts said range of information into an appropriate format for transmission.
-
11. The process of claim 2, wherein said cache playback means implements a forward function by moving a current block indicator forwards through said key stream.
-
12. The process of claim 11, wherein said cache access means moves said current block indicator by one block for each clock event.
-
13. The process of claim 11, wherein said cache playback means skips intermediate blocks in said key stream and selects only key frames if the clock event rate is high.
-
14. The process of claim 2, wherein said cache playback means implements a reverse function by moving a current block indicator backwards through said key stream.
-
15. The process of claim 14, wherein said cache access means moves said current block indicator by one block for each clock event.
-
16. The process of claim 14, wherein said cache playback means reverts to moving said current block indicator forward through said key stream if said current block indicator cannot be moved past the oldest block in said key stream.
-
17. The process of claim 2, wherein said cache playback means implements a pause function by locking a current block indicator to one block in said key stream.
-
18. The process of claim 17, wherein said cache playback means reverts to moving said current block indicator forward through said key stream if a clock event results in moving said current block indicator past the earliest block in said key stream.
-
19. A process for capturing and storing a video signal, comprising the steps of:
-
providing a plurality of linear caches for storing said video signal as digital blocks;
providing signal capture means for capturing said video signal and separating multiplexed components of said video signal before storing said components into separate linear caches;
providing cache playback means for selecting a portion of said linear caches for playback;
providing cache control means for controlling a rate of playback from said linear caches;
providing data synchronization means for synchronizing selected digital blocks from said linear caches for delivery to said cache playback means;
wherein said data synchronization means synchronizes said selected digital blocks from said linear caches such that said selected digital blocks are correctly positioned relative to each other;
wherein said linear caches maintain a window that represents a time span into a past history of said video signal that includes a currently captured portion of said video signal; and
wherein said linear caches discard any information that falls outside of said window. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37)
providing presentation means for presenting said selected digital blocks from said cache playback means to a display device; and
wherein said presentation means decodes said selected digital blocks before presentation to said display device.
-
-
23. The process of claim 22, wherein each digital block is marked with a time stamp that indicates when that block should be presented to said presentation means.
-
24. The process of claim 19, wherein said cache playback means provides random access to said linear caches.
-
25. The process of claim 19, wherein said cache playback means provides functions including any of:
- pause, rewind, fast forward, play, play faster, play slower, skip/jump, replay, repeat, and play in reverse.
-
26. The process of claim 19, further comprising the step of:
providing clip capture means for capturing a range of information from said linear caches.
-
27. The process of claim 26, wherein said clip capture means saves said range of information to a storage device.
-
28. The process of claim 26, wherein said clip capture means decodes and displays said range of information on a display device.
-
29. The process of claim 26, wherein said clip capture means converts said range of information into an appropriate format for transmission.
-
30. The process of claim 21, wherein said cache playback means implements a forward function by moving a current block indicator forwards through said key stream.
-
31. The process of claim 30, wherein said cache access means moves said current block indicator by one block for each clock event.
-
32. The process of claim 30, wherein said cache playback means skips intermediate blocks in said key stream and selects only key frames if the clock event rate is high.
-
33. The process of claim 21, wherein said cache playback means implements a reverse function by moving a current block indicator backwards through said key stream.
-
34. The process of claim 33, wherein said cache access means moves said current block indicator by one block for each clock event.
-
35. The process of claim 33, wherein said cache playback means reverts to moving said current block indicator forward through said key stream if said current block indicator cannot be moved past the oldest block in said key stream.
-
36. The process of claim 21, wherein said cache playback means implements a pause function by locking a current block indicator to one block in said key stream.
-
37. The process of claim 36, wherein said cache playback means reverts to moving said current block indicator forward through said key stream if a clock event results in moving said current block indicator past the earliest block in said key stream.
-
38. A process for capturing and storing a video signal, comprising the steps of:
-
providing a plurality of linear caches for storing said video signal as digital blocks;
providing signal capture means for capturing said video signal and separating multiplexed components of said video signal before storing said components into separate linear caches;
providing cache playback means for selecting a portion of said linear caches for playback;
providing cache control means for controlling a rate of playback from said linear caches; and
wherein said linear caches maintain a window that represents a time span into a past history of said video signal that includes a currently captured portion of video signal; and
wherein said linear caches discard any information that falls outside of said window. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57)
providing data synchronization means for synchronizing selected digital blocks from said linear caches for delivery to said cache playback means; and
wherein said data synchronization means synchronizes said selected digital blocks from said linear caches such that said selected digital blocks are correctly positioned relative to each other.
-
-
40. The process of claim 38, wherein said cache control means sends clock events to said cache playback means to control a rate and direction of playback.
-
41. The process of claim 38, wherein said synchronization means designates a linear cache as a key stream and synchronizes the additional linear caches to said key stream.
-
42. The process of claim 38, further comprising the step of:
-
providing presentation means for presenting said selected digital blocks from said cache playback means to a display device; and
wherein said presentation means decodes said selected digital blocks before presentation to said display device.
-
-
43. The process of claim 42, wherein each digital block is marked with a time stamp that indicates when that block should be presented to said presentation means.
-
44. The process of claim 38, wherein said cache playback means provides random access to said linear caches.
-
45. The process of claim 38, wherein said cache playback means provides functions including any of:
- pause, rewind, fast forward, play, play faster, play slower, skip/jump, replay, repeat, and play in reverse.
-
46. The process of claim 38, further comprising the step of:
providing clip capture means for capturing a range of information from said linear caches.
-
47. The process of claim 46, wherein said clip capture means saves said range of information to a storage device.
-
48. The process of claim 46, wherein said clip capture means decodes and displays said range of information on a display device.
-
49. The process of claim 46, wherein said clip capture means converts said range of information into an appropriate format for transmission.
-
50. The process of claim 41, wherein said cache playback means implements a forward function by moving a current block indicator forwards through said key stream.
-
51. The process of claim 50, wherein said cache access means moves said current block indicator by one block for each clock event.
-
52. The process of claim 50, wherein said cache playback means skips intermediate blocks in said key stream and selects only key frames if the clock event rate is high.
-
53. The process of claim 41, wherein said cache playback means implements a reverse function by moving a current block indicator backwards through said key stream.
-
54. The process of claim 53, wherein said cache access means moves said current block indicator by one block for each clock event.
-
55. The process of claim 53, wherein said cache playback means reverts to moving said current block indicator forward through said key stream if said current block indicator cannot be moved past the oldest block in said key stream.
-
56. The process of claim 41, wherein said cache playback means implements a pause function by locking a current block indicator to one block in said key stream.
-
57. The process of claim 56, wherein said cache playback means reverts to moving said current block indicator forward through said key stream if a clock event results in moving said current block indicator past the earliest block in said key stream.
-
58. A process for capturing and storing a data stream, comprising the steps of:
-
providing a linear cache for storing information from said data stream;
providing cache access means for selecting a portion of the linear cache for streaming access to information stored therein;
providing cache control means for controlling a rate of said streaming access to said linear cache;
providing synchronization means for synchronizing streamed information from said linear cache for delivery to said cache access means;
wherein said cache control means controls a rate and direction of said streaming access;
wherein said linear cache maintains a window that represents a time span into a past history of said data stream that includes a most recently stored portion of said data stream; and
wherein said linear cache discards any information that falls outside of said window. - View Dependent Claims (59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77)
providing stream capture means for capturing information for a particular data stream type and encoding said information before storing said information in said linear cache.
-
-
61. The process of claim 58, wherein said linear cache stores said information as a list of digital blocks.
-
62. The process of claim 58, further comprising the step of:
providing presentation means for presenting the streamed information from said cache access means to a display device.
-
63. The process of claim 62, wherein said presentation means decodes the streamed information before presentation to said display device.
-
64. The process of claim 58, further comprising the step of:
providing presentation means for presenting the streaming access from said cache access means to a storage device.
-
65. The process of claim 58, wherein said cache playback means provides random access to said linear cache.
-
66. The process of claim 58, wherein said cache playback means provides functions including any of:
- pause, rewind, fast forward, play, play faster, play slower, skip/jump, replay, repeat, and play in reverse.
-
67. The process of claim 58, further comprising the step of:
providing clip capture means for capturing a range of information from said linear cache.
-
68. The process of claim 67, wherein said clip capture means saves said range of information to a storage device.
-
69. The process of claim 67, wherein said clip capture means converts said range of information into an appropriate format for transmission.
-
70. The process of claim 58, wherein said cache access means implements a forward function by moving a current block indicator forwards through said cache.
-
71. The process of claim 70, wherein said cache access means moves said current block indicator by one block for each clock event.
-
72. The process of claim 70, wherein said cache access means skips intermediate blocks in said linear cache, selecting only key frames if the clock event rate is high.
-
73. The process of claim 58, wherein said cache access means implements a reverse function by moving a current block indicator backwards through said cache.
-
74. The process of claim 73, wherein said cache access means moves said current block indicator by one block for each clock event.
-
75. The process of claim 73, wherein said cache access means reverts to moving said current block indicator forward through said cache if said current block indicator cannot be moved past the oldest block in said linear cache.
-
76. The process of claim 58, wherein said cache access means implements a pause function by locking a current block indicator to one block in said linear cache.
-
77. The process of claim 76, wherein said cache access means reverts to moving said current block indicator forward through said cache if said current block indicator is moved past the earliest block in said linear cache.
-
78. A process for capturing and storing a data stream, comprising the steps of:
-
providing a linear cache for storing information from said data stream;
providing cache access means for selecting a portion of the linear cache for streaming access to information stored therein;
providing cache control means for controlling a rate of said streaming access to said linear cache;
providing synchronization means for synchronizing streamed information from said linear cache for delivery to said cache access means;
wherein said cache control means sends clock events to said cache access means to control a rate and direction of said streaming access; and
wherein said linear cache maintains a window that represents a time span into a past history of said data stream that includes a most recently stored portion of said data stream; and
wherein said linear cache discard any information that falls outside of said window. - View Dependent Claims (79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96)
providing stream capture means for capturing information for a particular data stream type and encoding said information before storing said information in said linear cache.
-
-
80. The process of claim 78, wherein said linear cache stores said information as a list of digital blocks.
-
81. The process of claim 78, further comprising the step of:
providing presentation means for presenting the streamed information from said cache access means to a display device.
-
82. The process of claim 81, wherein said presentation means decodes the streamed information before presentation to said display device.
-
83. The process of claim 78, further comprising the step of:
providing presentation means for presenting the streaming access from said cache access means to a storage device.
-
84. The process of claim 78, wherein said cache playback means provides random access to said linear cache.
-
85. The process of claim 78, wherein said cache playback means provides functions including any of:
- pause, rewind, fast forward, play, play faster, play slower, skip/jump, replay, repeat, and play in reverse.
-
86. The process of claim 78, further comprising the step of:
providing clip capture means for capturing a range of information from said linear cache.
-
87. The process of claim 86, wherein said clip capture means saves said range of information to a storage device.
-
88. The process of claim 86, wherein said clip capture means converts said range of information into an appropriate format for transmission.
-
89. The process of claim 78, wherein said cache access means implements a forward function by moving a current block indicator forwards through said cache.
-
90. The process of claim 89, wherein said cache access means moves said current block indicator by one block for each clock event.
-
91. The process of claim 89, wherein said cache access means skips intermediate blocks in said linear cache, selecting only key frames if the clock event rate is high.
-
92. The process of claim 78, wherein said cache access means implements a reverse function by moving a current block indicator backwards through said cache.
-
93. The process of claim 92, wherein said cache access means moves said current block indicator by one block for each clock event.
-
94. The process of claim 92, wherein said cache access means reverts to moving said current block indicator forward through said cache if said current block indicator cannot be moved past the oldest block in said linear cache.
-
95. The process of claim 78, wherein said cache access means implements a pause function by locking a current block indicator to one block in said linear cache.
-
96. The process of claim 95, wherein said cache access means reverts to moving said current block indicator forward through said cache if a clock event results in moving said current block indicator past the earliest block in said linear cache.
-
97. A process for processing data streams, comprising the steps of:
-
providing a plurality of linear caches for storing information from said data streams as digital blocks;
providing cache access means for selecting a portion of said linear caches for streaming access;
providing cache control means for controlling a rate of streaming access from said linear caches;
providing synchronization means for synchronizing streaming digital blocks from said linear caches for delivery to said cache playback means;
wherein said cache control means sends clock events to said cache playback means to control a rate and direction of streaming access;
wherein said synchronization means synchronizes the streaming digital blocks from said linear caches such that the streaming digital blocks are correctly positioned relative to each other;
wherein said linear caches maintain a window that represents a time span into a past history of said transport data streams that includes a most recently stored portion of said transport data streams; and
wherein said linear caches discard any information that falls outside of said window. - View Dependent Claims (98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118)
providing stream capture means for capturing the information for a particular data stream type.
-
-
99. The process of claim 97, further comprising the step of:
encoding said information before storing said information in a linear cache.
-
100. The process of claim 97, wherein said synchronization means designates a linear cache as a key stream and synchronizes additional linear caches to said key stream.
-
101. The process of claim 97, further comprising the step of:
providing presentation means for presenting the streamed digital blocks from said cache access means to a display device.
-
102. The process of claim 101, wherein each digital block is marked with a time stamp that indicates when that block should be presented to said presentation means.
-
103. The process of claim 101, wherein said presentation means decodes the streamed digital blocks before presentation to said display device.
-
104. The process of claim 97, further comprising the step of:
providing presentation means for presenting the streaming access from said cache access means to a storage device.
-
105. The process of claim 104, wherein each digital block is marked with a time stamp that indicates when that block should be presented to said presentation means.
-
106. The process of claim 97, wherein said cache access means provides random access to said linear caches.
-
107. The process of claim 97, wherein said cache access means provides functions including any of:
- pause, rewind, fast forward, play, play faster, play slower, skip/jump, replay, repeat, and play in reverse.
-
108. The process of claim 97, further comprising the step of:
providing clip capture means for capturing a range of information from said linear caches.
-
109. The process of claim 108, wherein said clip capture means saves said range of information to a storage device.
-
110. The process of claim 108, wherein said clip capture means converts said range of information into a selected transmission format.
-
111. The process of claim 100, wherein said cache access means implements a forward function by moving a current block indicator forwards through said key stream.
-
112. The process of claim 111, wherein said cache access means moves said current block indicator by one block for each clock event.
-
113. The process of claim 111, wherein said cache access means skips intermediate blocks in said key stream and selects only key frames if the clock event rate is high.
-
114. The process of claim 100, wherein said cache access means implements a reverse function by moving a current block indicator backwards through said key stream.
-
115. The process of claim 114, wherein said cache access means moves said current block indicator by one block for each clock event.
-
116. The process of claim 114, wherein said cache playback means reverts to moving said current block indicator forward through said key stream if said current block indicator cannot be moved past the oldest block in said key stream.
-
117. The process of claim 100, wherein said cache playback means implements a pause function by locking a current block indicator to one block in said key stream.
-
118. The process of claim 117, wherein said cache playback means reverts to moving said current block indicator forward through said key stream if a clock event results in moving said current block indicator past the earliest block in said key stream.
-
119. A process for processing data streams, comprising the steps of:
-
providing a plurality of linear caches for storing information from said data streams as digital blocks;
providing cache access means for selecting a portion of said linear caches for streaming access;
providing cache control means for controlling a rate of streaming access from said linear caches;
wherein said cache control means controls a rate and direction of streaming access;
wherein said linear cache maintains a window that represents a time span into a past history of said data stream that includes a most recently stored portion of said data stream; and
wherein said linear cache discard any information that falls outside of said window. - View Dependent Claims (120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141)
providing synchronization means for synchronizing streaming digital blocks from said linear caches for delivery to said cache access means; and
wherein said synchronization means synchronizes the streaming digital blocks from said linear caches such that the streaming digital blocks are correctly positioned relative to each other.
-
-
121. The process of claim 119, further comprising the step of:
providing stream capture means for capturing the information for a particular data stream type.
-
122. The process of claim 121, further comprising the step of:
encoding said information before storing said information in a linear cache.
-
123. The process of claim 119, wherein said synchronization means designates a linear cache as a key stream and synchronizes additional linear caches to said key stream.
-
124. The process of claim 119, further comprising the step of:
providing presentation means for presenting the streamed digital blocks from said cache access means to a display device.
-
125. The process of claim 124, wherein each digital block is marked with a time stamp that indicates when that block should be presented to said presentation means.
-
126. The process of claim 124, wherein said presentation means decodes the streamed digital blocks before presentation to said display device.
-
127. The process of claim 119, further comprising the step of:
providing presentation means for presenting the streaming access from said cache access means to a storage device.
-
128. The process of claim 127, wherein each digital block is marked with a time stamp that indicates when that block should be presented to said presentation means.
-
129. The process of claim 119, wherein said cache access means provides random access to said linear caches.
-
130. The process of claim 119, wherein said cache access means provides functions including any of:
- pause, rewind, fast forward, play, play faster, play slower, skip/jump, replay, repeat, and play in reverse.
-
131. The process of claim 119, further comprising the step of:
providing clip capture means for capturing a range of information from said linear caches.
-
132. The process of claim 131, wherein said clip capture means saves said range of information to a storage device.
-
133. The process of claim 131, wherein said clip capture means converts said range of information into a selected transmission format.
-
134. The process of claim 123, wherein said cache access means implements a forward function by moving a current block indicator forwards through said key stream.
-
135. The process of claim 134, wherein said cache access means moves said current block indicator by one block for each clock event.
-
136. The process of claim 134, wherein said cache access means skips intermediate blocks in said key stream and selects only key frames if the clock event rate is high.
-
137. The process of claim 123, wherein said cache access means implements a reverse function by moving a current block indicator backwards through said key stream.
-
138. The process of claim 137, wherein said cache access means moves said current block indicator by one block for each clock event.
-
139. The process of claim 137, wherein said cache playback means reverts to moving said current block indicator forward through said key stream if said current block indicator cannot be moved past the oldest block in said key stream.
-
140. The process of claim 123, wherein said cache playback means implements a pause function by locking a current block indicator to one block in said key stream.
-
141. The process of claim 140, wherein said cache playback means reverts to moving said current block indicator forward through said key stream if a clock event results in moving said current block indicator past the earliest block in said key stream.
Specification