METHOD AND APPARATUS FOR VIDEO IMAGE DATA RECORDING AND PLAYBACK
First Claim
1. A video recording method implemented in a system which includes a video data transmitting device and a video data recording device, wherein a recording process implemented in the video data recording device comprises:
- (a) receiving input video data, wherein the input video data include a plurality of initial blocks of data collectively representing an initial frame of video image, and further include, for each subsequent changed frame of video image, a time stamp for the changed frame and one or more subsequent blocks of data representing changed blocks of that frame, and wherein the input video data further include a block index associated with each initial and subsequent block of data to indicate a position of the block within the frame of video image;
(b) storing the initial blocks of data with the associated block indices in a data file, and storing a data location for each initial block in a virtual frame table, wherein the data location for a block indicates a location in the data file where the block is stored;
(c) for each subsequent changed frame of video image, storing the changed blocks of data with the associated block indices in the data file, and updating the virtual frame table by replacing existing data locations for the changed blocks with new data locations; and
(d) at each of a plurality of predetermined time points, storing in a snapshot file a time stamp for the time point, a current copy of the virtual frame table at the time point, and a next changed frame location indicating a location in the data file where data for a next changed frame after the time point will be stored,wherein the initial blocks for the initial frame and the changed blocks for the subsequent frames are stored in the data file sequentially.
1 Assignment
0 Petitions
Accused Products
Abstract
A video data recoding method suitable for recording computer sessions. Each video image frame is divided into multiple blocks. A server processes the video frames and transmits only changed blocks for each frame to a video log server. The video log server stores the changed blocks with block indices in a data file. The video log server also maintains a virtual frame table which stores, for each block of the frame, the data location within the data file where the most recent occurrence of that block is stored. The virtual frame table is continuously updated as changed blocks are stored in the data file. The video log server further stores a snapshot file containing snapshots of the virtual frame table at predetermined time points, along with time stamps and a next changed frame location. The data file and the snapshot file are used to reproduce the video images.
23 Citations
20 Claims
-
1. A video recording method implemented in a system which includes a video data transmitting device and a video data recording device, wherein a recording process implemented in the video data recording device comprises:
-
(a) receiving input video data, wherein the input video data include a plurality of initial blocks of data collectively representing an initial frame of video image, and further include, for each subsequent changed frame of video image, a time stamp for the changed frame and one or more subsequent blocks of data representing changed blocks of that frame, and wherein the input video data further include a block index associated with each initial and subsequent block of data to indicate a position of the block within the frame of video image; (b) storing the initial blocks of data with the associated block indices in a data file, and storing a data location for each initial block in a virtual frame table, wherein the data location for a block indicates a location in the data file where the block is stored; (c) for each subsequent changed frame of video image, storing the changed blocks of data with the associated block indices in the data file, and updating the virtual frame table by replacing existing data locations for the changed blocks with new data locations; and (d) at each of a plurality of predetermined time points, storing in a snapshot file a time stamp for the time point, a current copy of the virtual frame table at the time point, and a next changed frame location indicating a location in the data file where data for a next changed frame after the time point will be stored, wherein the initial blocks for the initial frame and the changed blocks for the subsequent frames are stored in the data file sequentially. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method implemented in a video player for reproducing video images from recorded video data, the recorded video data including a data file and a snapshot file, wherein the data file stores a plurality blocks of data including zero or more changed blocks for each frame of video data, each block of data being stored with an associated block index,
wherein the snapshot file includes a plurality of time point records for a plurality of time points, each time point record including a time stamp representing a time of the time point, a copy of a virtual frame table for that time point, and a next changed frame location representing a data location within the data file for storing the next frame after that time point, wherein the copy of the virtual frame table stores, for each block in a frame as represented by the block index, a data location within the data file where a most recent occurrence of that block is stored, the method comprising: -
(a) receiving a video reproduction request specifying a requested starting time; (b) searching the snapshot file to identify a time point having a time stamp before the requested starting time as a starting time point; (c) reading the snapshot file to obtain the virtual frame table and the next changed frame location for the starting time point; (d) using the data locations stored in the virtual frame table, reading the data file at the data locations to obtain the blocks of the frame and their associated block indices; (e) processing the blocks read in step (d), and assembling the blocks using the block indices to form a first frame of reproduced video image; (f) using the next changed frame location obtained in step (c), reading the data file continuously starting from the next changed frame location to obtain changed data blocks for changed frames; and (g) for each changed frame, processing the blocks read in step (f) for that frame, and replacing corresponding blocks of a previous frame with the processed blocks based on the associated block indices to form a new frame of reproduced video image. - View Dependent Claims (8, 9, 10)
-
-
11. A computer program product comprising a computer usable medium having a computer readable program code embedded therein for controlling a video data recording device, the computer readable program code configured to cause the video data recording device to execute a video data recording process, the process comprising:
-
(a) receiving input video data, wherein the input video data include a plurality of initial blocks of data collectively representing an initial frame of video image, and further include, for each subsequent changed frame of video image, a time stamp for the changed frame and one or more subsequent blocks of data representing changed blocks of that frame, and wherein the input video data further include a block index associated with each initial and subsequent block of data to indicate a position of the block within the frame of video image; (b) storing the initial blocks of data with the associated block indices in a data file, and storing a data location for each initial block in a virtual frame table, wherein the data location for a block indicates a location in the data file where the block is stored; (c) for each subsequent changed frame of video image, storing the changed blocks of data with the associated block indices in the data file, and updating the virtual frame table by replacing existing data locations for the changed blocks with new data locations; and (d) at each of a plurality of predetermined time points, storing in a snapshot file a time stamp for the time point, a current copy of the virtual frame table at the time point, and a next changed frame location indicating a location in the data file where data for a next changed frame after the time point will be stored, wherein the initial blocks for the initial frame and the changed blocks for the subsequent frames are stored in the data file sequentially. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A computer program product comprising a computer usable medium having a computer readable program code embedded therein for controlling a video player device, the computer readable program code configured to cause the video player device to execute a process for reproducing video images from recorded video data, the recorded video data including a data file and a snapshot file, wherein the data file stores a plurality blocks of data including zero or more changed blocks for each frame of video data, each block of data being stored with an associated block index, wherein the snapshot file includes a plurality of time point records for a plurality of time points, each time point record including a time stamp representing a time of the time point, a copy of a virtual frame table for that time point, and a next changed frame location representing a data location within the data file for storing the next frame after that time point, wherein the copy of the virtual frame table stores, for each block in a frame as represented by the block index, a data location within the data file where a most recent occurrence of that block is stored, the process comprising:
-
(a) receiving a video reproduction request specifying a requested starting time; (b) searching the snapshot file to identify a time point having a time stamp before the requested starting time as a starting time point; (c) reading the snapshot file to obtain the virtual frame table and the next changed frame location for the starting time point; (d) using the data locations stored in the virtual frame table, reading the data file at the data locations to obtain the blocks of the frame and their associated block indices; (e) processing the blocks read in step (d), and assembling the blocks using the block indices to form a first frame of reproduced video image; (f) using the next changed frame location obtained in step (c), reading the data file continuously starting from the next changed frame location to obtain changed data blocks for changed frames; and (g) for each changed frame, processing the blocks read in step (f) for that frame, and replacing corresponding blocks of a previous frame with the processed blocks based on the associated block indices to form a new frame of reproduced video image. - View Dependent Claims (18, 19, 20)
-
Specification