Method and system for compressing video data
First Claim
1. A method for compressing video data, the video data being formed by a plurality of pixels, the method including the computer-implemented steps:
- (a) forming a plurality of pixel groupings;
(b) determining a characteristic value for each pixel grouping;
(c) specifying a tolerance;
(d) determining a variance between the characteristic values of the pixel groupings;
(e) when the determined variance is within the tolerance, specifying a specified characteristic value to represent the pixel groupings, setting the characteristic value of each pixel grouping to the specified characteristic value; and
(f) counting a number of consecutive pixel groupings having the same specified characteristic value and storing the counted number and the specified characteristic value in a compressed version of the video data.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for compressing video movie data to a specified target size using intraframe and interframe compression schemes. In intraframe compression, a frame of the movie is compressed by comparing adjacent pixels within the same frame. In contrast, interframe compression compresses by comparing similarly situated pixels of adjacent frames. The method begins by compressing the first frame of the video movie using intraframe compression. The first stage of the intraframe compression process does not degrade the quality of the original data, e.g., the method uses run length encoding based on the pixels'"'"' color values to compress the video data. However, in circumstances where lossless compression is not sufficient, the method utilizes a threshold value, or tolerance, to achieve further compression. In these cases, if the color variance between pixels is less than or equal to the tolerance, the method will encode the two pixels using a single color value--otherwise, the method will encode the two pixels using different color values. The method increases or decreases the tolerance to achieve compression within the target range. In cases where compression within the target range results in an image of unacceptable quality, the method will split the raw data in half and compress each portion of data separately. Frames after the first frame are generally compressed using a combination of intraframe and interframe compression. Additionally, the method periodically encodes frames using intraframe compression only in order to enhance random frame access.
234 Citations
74 Claims
-
1. A method for compressing video data, the video data being formed by a plurality of pixels, the method including the computer-implemented steps:
-
(a) forming a plurality of pixel groupings; (b) determining a characteristic value for each pixel grouping; (c) specifying a tolerance; (d) determining a variance between the characteristic values of the pixel groupings; (e) when the determined variance is within the tolerance, specifying a specified characteristic value to represent the pixel groupings, setting the characteristic value of each pixel grouping to the specified characteristic value; and (f) counting a number of consecutive pixel groupings having the same specified characteristic value and storing the counted number and the specified characteristic value in a compressed version of the video data. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
2. The method of claim wherein the characteristic value is a color value.
-
13. A method for mapping a video, the video being formed by a plurality of raw video frames, the frames being formed by a plurality of pixels, the method including the computer-implemented steps:
-
(a) forming a plurality of pixel groupings from the pixels of each raw data frame; (b) determining a characteristic value for each pixel grouping; (c) specifying a tolerance; (d) determining a variance between the characteristic values of the pixel groupings; and (e) when the determined variance is within the tolerance, specifying a specified characteristic value to represent the pixel groupings, and setting the characteristic value of each pixel grouping to the specified characteristic value. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A method for compressing a video, the video being formed by a plurality of raw data video frames, the frames being formed by a plurality of pixels, the method including the computer-implemented steps:
-
(a) forming a plurality of pixel groupings from the pixels of each raw data video frame; (b) determining a characteristic value for each pixel grouping; (c) specifying a tolerance; (d) determining a variance between the characteristic values of the pixel groupings; (e) when the determined variance is within the tolerance, specifying a specified characteristic value to represent the pixel groupings, and setting the characteristic value of each pixel grouping to the specified characteristic value; and (f) counting a number of consecutive pixel groupings having the same specified characteristic value and storing the counted number and the specified characteristic value in a compressed data video frame. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
34. A method for compressing a video, the video being formed by a plurality of raw data video frames, the frames being formed by a plurality of pixels, the method including the computer-implemented steps:
-
(a) forming a plurality of pixel groupings from the pixels of each raw data video frame; (b) determining a characteristic value for each pixel grouping; (c) specifying an interframe tolerance; (d) for a plurality of corresponding interframe pixel groupings, determining an interframe variance between the characteristic values of the interframe pixel groupings; (e) counting a number of consecutive interframe pixel groupings whose determined interframe variance is within the interframe tolerance; and (f) encoding a delta indicative of the counted number of consecutive interframe pixel groupings in a compressed data video frame. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56)
-
-
57. A method for compressing a video, the video being formed by a plurality of raw data video frames, the frames being formed by a plurality of pixels, the method including the computer-implemented steps:
-
(a) forming a plurality of pixel groupings from the pixels of each raw data frame; (b) determining a characteristic value for each pixel grouping; (c) specifying an interframe tolerance; (d) determining an interframe variance between the characteristic values of a plurality of corresponding interframe pixel groupings; (e) when the determined interframe variance is not within the interframe tolerance, creating an intraframe compressed frame by forming a plurality of intraframe pixel groupings from one of the raw data frames, specifying an intraframe tolerance, determining an intraframe variance between the characteristic values of the intraframe pixel groupings, when the determined intraframe variance is within the intraframe tolerance, specifying a specified characteristic value to represent the intraframe pixel grouping, setting the characteristic value of each intraframe pixel grouping to the specified in characteristic intraframe value, counting a number of consecutive intraframe pixel groupings having the same specified characteristic intraframe value and storing the counted number and the specified characteristic value in a compressed data video frame; (f) when the determined interframe variance is within the interframe tolerance, creating an interframe compressed frame by counting a number of consecutive interframe pixel groupings, encoding a delta indicative of the counted number of consecutive interframe pixel groupings in a compressed data video frame by selecting a range of acceptable delta values, and when the counted number of consecutive interframe pixel groupings is within the range acceptable delta of values, encoding the delta as the counted number, else when the counted number of consecutive interframe pixel groupings is not within the range of values, encoding the delta using an escape sequence, the counted number and additional positioning information; (g) specifying a periodic key frame interval; (h) designating a raw data frame as a key frame at the conclusion of the periodic key frame interval; (i) for a plurality of intraframe pixel groupings of the key frame, specifying a key frame intraframe tolerance, determining a key frame intraframe variance between the characteristic values between the key frame intraframe pixel groupings, when the determined key frame variance is within the key frame tolerance, specifying a key frame characteristic value to represent the key frame pixel grouping, setting the key frame characteristic value of each key frame pixel grouping to the specified key frame characteristic value, counting a number of consecutive key frame pixel groupings having the same specified key frame characteristic value, storing the counted number and the specified key frame characteristic value in the compressed data video frame; (j) specifying a target range for the compressed data video frame; (k) determining a size of each compressed data video frame; (l) when the determined size is not within the target range, specifying a minimum acceptable resolution level for the compressed data video frame; (m) when the compressed data video frame is within the acceptable resolution level, adjusting at least one of the tolerances, and repeating steps (e)-(f) using the adjusted tolerance; and (n) when the compressed data video frame is not within the acceptable resolution level, splitting the raw data frame into a plurality of raw data portions and repeating steps (a)-(f) using each raw data portion as a raw data frame.
-
-
58. A method for encoding a quantum of data formed by a plurality of data units, including the computer-implemented steps:
-
selecting a range of acceptable delta values; determining the number of data units; and when the determined number of data units is within the range of delta values, encoding a delta as the determined number of data units, wherein the delta is indicative of positioning information for a location in the quantum of data. - View Dependent Claims (59, 60, 61, 62)
-
-
63. A method for encoding a delta, wherein the delta is indicative of a number data units in a second data grouping that are similar to identically positioned data units in a first data grouping, including the computer-implemented steps:
-
selecting a range of acceptable delta values; determining the number of consecutive data units; and when the determined number of consecutive data units is within the range of delta values, encoding the delta as the determined number of consecutive data units. - View Dependent Claims (64, 65, 66, 67)
-
-
68. A method for encoding data, the method including the computer-implemented steps of:
-
determining a directional offset; encrypting a delta as a single value, the value representing a magnitude of the directional offset, the delta having a maximum delta value; adding the maximum delta value to a length of run value to define a first run length value; encoding the first run length value; determining a characteristic value to define a second run length value; and encoding the second run length value.
-
-
69. A method for creating a decompressed version of video data from a plurality of compressed data groupings, the compressed data groupings formed by a plurality of run length data groupings, each run length data grouping formed by a characteristic value and a proportional magnitude value, and a plurality of deltas, each delta having a maximum possible delta value, the method including the computer-implemented steps:
-
retrieving a compressed data grouping; when the compressed data grouping is a run length representation, determining the characteristic value of the representation, determining a run length value of the representation by subtracting the maximum possible delta value from the proportional magnitude value, and, for a number equal to the run length value, writing the characteristic value in a number of data locations of the decompressed version of the video data; and when the compressed data grouping is a delta unit, determining a value of the delta unit and moving a positioning pointer a number of data units equal to the value of the delta unit.
-
-
70. A method for creating a decompressed version of video data from a compressed version of video data, the method including the computer-implemented steps:
-
retrieving a compressed data grouping from the compressed version of video data; identifying a range of acceptable delta values; determining a magnitude of the compressed data grouping; and when the magnitude of the compressed data grouping is within the range of acceptable delta values, moving a portioning pointer a number of data units equal to the magnitude of the compressed delta grouping.
-
-
71. In a computer system, an apparatus for compressing video data to a range of target sizes, wherein the video data is formed by a plurality of pixels, the apparatus comprising:
-
means for determining a variance between a first and a second pixel by comparing a characteristic value for the first pixel with a characteristic value for the second pixel, the first and the second pixel being from among the plurality of pixels that form the video data; means for specifying a single characteristic value for the first and the second pixel when the determined variance is within a provided tolerance; and means for storing the single characteristic value in a compressed version of the video data, wherein the stored single characteristic value represents the characteristic value for the first pixel and the characteristic value for the second pixel. - View Dependent Claims (72)
-
-
73. In a computer system, an apparatus for compressing a video, the video having at least two frames wherein each frame is formed by a plurality of pixels, and wherein each pixel has a characteristic value, the apparatus comprising:
-
means for determining a number of consecutive pixels of a first frame that, relative to similarly positioned pixels of a second frame, have characteristic values that are within a specified tolerance; and means for storing the determined number in a compressed version of the second frame, the stored determined number indicating a number of consecutive pixels of the second frame that do not have to be altered when decompressing the compressed version of the second frame. - View Dependent Claims (74)
-
Specification