Method and apparatus for compression and decompression of video data streams
First Claim
1. A method of performing data compression with respect to a frame of image data, said image data being representative of pixels arrayed in an image plane, the method comprising the steps of:
- dividing said image data into a plurality of data blocks, each of said data blocks representing a respective rectangular part of said image plane;
comparing each of said data blocks with a corresponding data block of a preceding frame of image data to generate a similarity metric indicative of a degree of similarity between said each data block and the corresponding data block of the preceding frame;
comparing said similarity metric with a predetermined threshold value;
on the basis of said comparison of said similarity metric with said predetermined threshold value, selecting one of a first mode for generating encoding values for said each data block and a second mode for generating encoding values for said each data block;
generating encoding values for said each data block in accordance with the selected one of said first mode and said second mode; and
applying a transformation to said encoding values of said each data block to form a respective block of coefficient values therefrom.
4 Assignments
0 Petitions
Accused Products
Abstract
A video image data field to be compression-encoded is divided into rectangular blocks. Each of the rectangular blocks is compared with a corresponding block of a reference image to generate comparison data. The block of the image to be encoded is selected for representation if the comparison data for the block meets a selection criterion. Mapping data is generated which is indicative of locations in the image plane corresponding to the selected blocks. The image to be encoded is represented in compressed form by header data, the mapping data and image data representative of the selected blocks.
-
Citations
79 Claims
-
1. A method of performing data compression with respect to a frame of image data, said image data being representative of pixels arrayed in an image plane, the method comprising the steps of:
-
dividing said image data into a plurality of data blocks, each of said data blocks representing a respective rectangular part of said image plane; comparing each of said data blocks with a corresponding data block of a preceding frame of image data to generate a similarity metric indicative of a degree of similarity between said each data block and the corresponding data block of the preceding frame; comparing said similarity metric with a predetermined threshold value; on the basis of said comparison of said similarity metric with said predetermined threshold value, selecting one of a first mode for generating encoding values for said each data block and a second mode for generating encoding values for said each data block; generating encoding values for said each data block in accordance with the selected one of said first mode and said second mode; and applying a transformation to said encoding values of said each data block to form a respective block of coefficient values therefrom. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of reconstituting compressed image data, said compressed image data including image data frames representative of a dynamic sequence of m images, every nth one of said m image data frames having been compression-encoded using an intra-frame compression algorithm in which each of said every nth frame is encoded without reference to any other image frame, n being an integer greater than 2, m being an integral multiple of n and at least twice as large as n, all of said image data frames other than said every nth frame having been compression-encoded using a difference encoding algorithm such that said other image data frames are formed of data representing differences relative to a preceding image data frame, the method comprising the steps of:
-
reconstituting all of said difference-encoded image data frames; storing all of said reconstituted image data frames in storage means; and retrieving said reconstituted image data frames from said storage means and displaying said retrieved image data frames; wherein a plurality of said reconstituted difference-encoded image data frames are stored in said storage means before any of said reconstituted difference-encoded image data frames are retrieved from said storage means and displayed.
-
-
8. A method of reconstituting compressed image data, said compressed image data including image data frames representative of a dynamic sequence of images, every nth one of said image data frames having been compression-encoded using an intra-frame compression algorithm in which each of said every nth frames is encoded without reference to any other image frame, n being an integer greater than 1, all others of said image data frames having been compression-encoded using a difference encoding algorithm such that said other image data frames are formed of difference data representing differences relative to a respective preceding image data frame, the method comprising the steps of:
-
reconstituting all of said intra-frame-encoded image data frames; for each of said difference-encoded image data frames, forming second difference data representing differences relative to a respective succeeding reconstituted image data frame; and storing said second difference data in association with the respective difference-encoded image data frame.
-
-
9. A method of representing video data in compressed form, comprising the steps of:
-
dividing into rectangular blocks a present image to be compressed, the present image being formed in an image plane; comparing each of said rectangular blocks of the present image with a corresponding rectangular block of a reference image to generate comparison data for the block of the present image; selecting for representation the rectangular blocks of the present image for which the generated comparison data meets a selection criterion; generating mapping data indicative of locations in the image plane which correspond to the selected rectangular blocks for the present image; and representing the present image in compressed form by use of; (a) header data for identifying the present image; (b) said mapping data generated for the present image; and (c) image data representative of the selected rectangular blocks of the present frame. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. Apparatus for compressing video data, comprising:
-
means for dividing into rectangular blocks a present image to be compressed, the present image being formed in an image plane; means for comparing each of said rectangular blocks of the present image with a corresponding rectangular block of a reference image to generate compression data from the block of the present image; means for selecting for representation the rectangular blocks of the present image for which the generated comparison data meets a selection criterion; means for generating mapping data indicative of locations in the image plane which correspond to the selected rectangular blocks for the present image; and storage means for storing a representation of the present image, said representation including; (a) header data for identifying the present image; (b) said mapping data generated for the present image by said means for generating; and (c) image data representative of the rectangular blocks selected from the present frame by said means for selecting. - View Dependent Claims (29, 30, 31, 32, 33)
-
-
34. A method of representing video data in compressed form, comprising the steps of:
-
dividing an image plane into a plurality of rectangular areas; processing a first video image to generate a first set of characteristic statistics including at least one characteristic statistic corresponding to each of said plurality of rectangular areas; storing said first set of characteristic statistics; processing a second video image to generate a second set of characteristic statistics including at least one characteristic statistic corresponding to each of said plurality of rectangular areas; for each of said plurality of rectangular areas, comparing corresponding ones of said first and second sets of characteristic statistics; on the basis of said comparing step, selecting ones of said rectangular areas for which the corresponding ones of said first and second sets of characteristic statistics differ from each other by at least a predetermined degree of difference; updating said stored set of characteristic statistics by replacing the stored characteristic statistics corresponding to said selected rectangular areas with the characteristics of said second set which correspond to said selected rectangular areas; processing a third video image to generate a third set of characteristic statistics including at least one characteristic statistic corresponding to each of said plurality of rectangular areas; and for each of said plurality of rectangular areas, comparing corresponding ones of said updated set of characteristic statistics and of said third set of characteristic statistics. - View Dependent Claims (35, 36, 37)
-
-
38. A method of displaying in an image plane a video image represented by compressed video data, said compressed video data including replacement image data consisting of a plurality of image data portions each corresponding to a respective region of the image plane, said compressed video data also including mapping data indicative of the regions of the image plane to which the image data portions correspond, the method comprising the steps of:
-
storing in a buffer reference data representative of a reference video image; performing a first displaying step consisting of displaying the reference video image; reading said mapping data; on the basis of said read mapping data, updating said stored reference data by replacing portions of the stored reference data corresponding to the image plane regions indicated by said read mapping data with the corresponding replacement image data portions of said compressed video data; and performing a second displaying step consisting of displaying a second video image corresponding to said updated stored reference data. - View Dependent Claims (39, 40)
-
-
41. Apparatus for displaying in an image plane a video image represented by compressed video data, said compressed video data including replacement image data consisting of a plurality of image data portions each corresponding to a respective region of the image plane, said compression video data also including mapping data indicative of the regions of the image plane to which the image data portions correspond, the apparatus comprising:
-
a buffer for storing reference data representative of a reference video image; reading means for reading said mapping data; update means, responsive to said reading means, for replacing portions of the stored reference data corresponding to the image plane regions indicated by said read mapping data with the corresponding replacement image data portions of said compressed video data; and display means for sequentially displaying said reference image and a second image corresponding to said updated stored reference data. - View Dependent Claims (42, 43)
-
-
44. A random-access data storage device in which is stored compressed video data representing a sequence of images formed in an image plane by a video camera;
-
said compressed video data comprising a plurality of first compressed data portions representing reference images consisting of every nth one of said sequence of images, said first data portions having been respectively formed by applying an intra-image compression process to data representing each one of said reference images, n being an integer greater than three; said compressed video data also comprising a plurality of second compressed data portions, each representing a respective one of said sequence of images that is not one of said reference images, each of said second compressed data portions including replacement image data corresponding to selected portions of said image plane and mapping data indicative of said selected portions of said image plane. - View Dependent Claims (45, 46, 47, 48, 49, 50, 51, 52)
-
-
53. A method of displaying a sequence of video images in an order that is opposite to an order in which said sequence of video images was generated in an image plane by a video camera, said sequence of video images having been stored in a data storage device in the form of compressed video data including a first compressed data portion representing a forward reference image generated first in time in said sequence of video images, said first compressed data portion having been formed by applying an intra-image compression process to data representing said forward reference image, the stored compressed video data further including a sequence of second compressed data portions, each representing a respective one of said sequence of images other than said forward reference image, each of said second compressed data portions including forward replacement data corresponding to selected regions of said image plane and mapping data indicative of said selected regions of said image plane, the mapping data included in each of said second data portions having been formed on the basis of differences between the respective image represented by said second data portion and an image representing the image of said sequence generated immediately prior in time to the respective image, the method comprising the steps of:
-
(a) retrieving said first compressed data portion from said storage device; (b) decompressing the retrieved first compressed data portion to form decompressed forward reference video data; (c) storing the decompressed forward reference data in a buffer; (d) retrieving the second compressed data portion representing the image of said sequence that was generated immediately after the forward reference image; (e) reading the mapping data included in the second compressed data portion retrieved in step (d); (f) on the basis of the mapping data read in step (e), updating the decompressed forward reference data stored in the buffer by replacing portions of the stored forward reference data corresponding to the image plane regions indicated by the read mapping data with the corresponding forward replacement data included in the retrieved second compressed data portion, to form updated forward reference data; (g) retrieving the second compressed data portion representing the image of said sequence that was generated immediately after the image corresponding to the most recently retrieved second compressed data portion; (h) reading and storing the mapping data included in the second compressed data portion retrieved in step (g); (i) selecting portions of the updated forward reference data in accordance with the mapping data read at step (h); (j) storing the forward reference data portions selected at step (i) as backward replacement data corresponding to the earlier one of the two images referred to in step (g); (k) again updating the updated forward reference data by replacing portions thereof corresponding to the image plane regions indicated by the mapping data read at step (h) with the corresponding forward replacement data included in the second compressed data portion retrieved at step (g), to again form updated forward reference data; (l) repeating said steps (g)-(k) in sequence until the second compressed data portion representing the last image in said sequence has been retrieved at the latest step (g) and processed in succeeding steps (h)-(k), the updated forward reference data formed at the last repeated step (k) corresponding to said last image of the sequence and being considered also backward reference data; (m) displaying an image corresponding to said backward reference data; (n) retrieving and reading the mapping data included in the second compressed data portion corresponding to the image displayed at step (m); (o) retrieving the backward replacement data corresponding to the image in said sequence generated immediately prior to the image displayed at step (m); (p) updating said backward reference data by replacing portions thereof corresponding to the image plane regions indicated by the mapping data read at step (n) with the corresponding backward replacement data retrieved at step (o); (q) repeating steps (m)-(p) until the updated backward reference data corresponds to the image of said sequence generated immediately after the forward reference image; and (r) displaying an image corresponding to the latest updated backward reference data; and (s) displaying an image corresponding to the forward reference image. - View Dependent Claims (54)
-
-
55. Video information storage apparatus, comprising:
-
a plurality of video cameras, each for generating a respective stream of dynamic images; multiplexing means for multiplexing said streams of dynamic images to form a combined sequence of video images, images generated by respective ones of said video cameras being interspersed with each other in said combined sequence; compression means for receiving the combined sequence of video images and for applying a data compression algorithm to the images of said combined sequence, the compression algorithm applied to each of said images of said combined sequence being subject to variation depending on which camera generated the image to which the algorithm is applied; and storage means for storing compressed video images formed by said compression means. - View Dependent Claims (56)
-
-
57. A method of storing video information, comprising the steps of:
-
generating a plurality of streams of dynamic images by using a respective video camera to generate each stream; multiplexing said streams of dynamic images to form a combined sequence of video images, images generated by respective ones of said video cameras being interspersed with each other in said combined sequence; receiving the combined sequence of video images and applying a data compression algorithm to the images of said combined sequence, the compression algorithm applied to each of said images of said combined sequence being subject to variation depending on which camera generated the image to which the algorithm is applied; and storing the compressed video images. - View Dependent Claims (58)
-
-
59. Video data storage apparatus, comprising:
-
a video information source for outputting a sequence of fields of video data, each said field of video data representing a respective image; storage means for storing said video data fields in the form of compressed video data; a microprocessor for controlling storage of said compressed video data by said storage means; and a digital signal processing integrated circuit (DSP-IC) for exchanging data with said microprocessor and for applying a data compression algorithm to said fields of video data; said DSP-IC applying said data compression algorithm to a first field of said sequence of fields in accordance with a parameter which constrains operation of said data compression algorithm; upon said DSP-IC completing compression-processing of said first field, said DSP-IC receiving a signal from said microprocessor to change said parameter; said DSP-IC applying said data compression algorithm to a second field of said sequence of fields in accordance with the changed parameter, said second field immediately following said first field in said sequence of fields; upon said DSP-IC completing compression-processing of said second field, said DSP-IC receiving a signal from said microprocessor to again change said parameter; and said DSP-IC applying said data compression algorithm to a third field of said sequence of fields in accordance with the again-changed parameter, said third field immediately following said second field in said sequence of fields. - View Dependent Claims (60, 61)
-
-
62. A method of characterizing a block of video data in a first field of video data, said block of video data to be characterized in comparison with a corresponding block of video data in another field of video data, said block of video data in the first field being in the form of an m×
- m pixel data array, m being an even, positive integer, the method comprising the steps of;
dividing said m×
m pixel data into four quadrants each consisting of an (m/2)×
(m/2) pixel data array;selecting pixels from each of said quadrants in accordance with a checker-board sampling pattern; with respect to each of said quadrants, summing the pixels selected from said quadrant and dividing the resultant sum by a scaling factor to generate a characterizing statistic for the respective quadrant; subtracting each of the respective characterizing statistics from a characterizing statistic for a corresponding quadrant of the corresponding block of video data in said another field to generate a difference value for each quadrant of the block of video data in the first field; comparing each of said difference values with a threshold level; and characterizing the block of video data in the first field as different from the corresponding block of video data in said another field if the absolute value of any one of the difference values for the four quadrants of the block of video data in the first field exceeds the threshold level. - View Dependent Claims (63, 64, 65)
- m pixel data array, m being an even, positive integer, the method comprising the steps of;
-
66. A method of characterizing a block of video data in a first field of video data representing a color image, said block of video data to be characterized in comparison with a corresponding block of video data in another field of video data representing another color image, said block of video data in the first field corresponding to a 4m pixels by m pixels region in said first field and being in the form of four m×
- m arrays of luminance data, one m×
m array of a first type of chrominance data and one m×
m array of a second type of chrominance data, m being an even, positive integer, the method comprising steps of;dividing each of said six m×
m arrays into four quadrants each consisting of an (m/2)×
(m/2) pixel data array;selecting pixels from each of said quadrants in accordance with a checker-board sampling pattern; with respect to each of said quadrants, summing the pixels selected from said quadrant and dividing the resultant sum by a scaling factor to generate a characterizing statistic for the respective quadrant; subtracting each of the respective characterizing statistics from a characterizing statistic for a corresponding quadrant of a corresponding m×
m array of the corresponding block of video data in said another field to generate a difference value for each quadrant of the block of video data in the first field;comparing each of said difference values for said quadrants of luminance data with a first threshold level, and comparing each of said difference values for said quadrants of chrominance data with a second threshold level; and characterizing the block of video data in the first field as different from the corresponding block of video data in said another field if the absolute value of any one of the difference values for the luminance data quadrants exceeds the first threshold level or if any one of the difference values for the chrominance data quadrants exceeds the second threshold level. - View Dependent Claims (67, 68, 69, 70, 71)
- m arrays of luminance data, one m×
-
72. A method of performing data compression with respect to a plurality of streams of dynamic video images, each of said streams being generated by a respective video camera, images from said streams being interspersed with each other to form a composite stream, the method comprising the steps of:
-
storing statistics characterizing a respective reference image from each of said plurality of streams; and performing compression-encoding with respect to later images of each of said plurality of streams by comparing each of said later images with the statistics characterizing the reference image corresponding to the respective stream. - View Dependent Claims (73, 74)
-
-
75. Apparatus for performing data compression with respect to a plurality of streams of dynamic video images, each of said streams being generated by a respective video camera, images from said streams being interspersed with each other to form a composite stream, comprising:
-
means for storing statistics characterizing a respective reference image from each of said plurality of streams; and means for performing compression-encoding with respect to later images of each of said plurality of streams by comparing each of said later images with the statistics characterizing the reference image corresponding to the respective stream. - View Dependent Claims (76, 77)
-
-
78. A method of performing data compression with respect to a plurality of streams of dynamic video images, each of said streams being generated by a respective video camera, images from said streams being interspersed with each other to form a composite stream, the method comprising the steps of:
-
storing data representative of a respective reference image from each of said plurality of streams; and performing compression-encoding with respect to later images of each of said plurality of streams by comparing each of said later images with the reference image corresponding to the respective stream.
-
-
79. Apparatus for performing data compression with respect to a plurality of streams of dynamic video images, each of said streams being generated by a respective video camera, images from said streams being interspersed with each other to form a composite stream, comprising:
-
means for storing data representative of a respective reference image from each of said plurality of streams; and means for performing compression-encoding with respect to later images of each of said plurality of streams by comparing each of said later images with the reference image corresponding to the respective stream.
-
Specification