Frame compression using differential codes and an escape code
AssigneeSeiko Epson Corporation
InventorKevin C. Gold
Life of this patent
Estimating the term…
Abstract
Digital video data streams that conform to standards such as the ITU-T H.263 and MPEG-4 ISO/IEC standards are compressed to reduce the amount of memory needed to store these streams. Information for groups of pixels are compressed into segments of encoded information. Each segment of encoded information includes luminance values that are rounded and truncated, the full-length values of chrominance information for the first pixel in the group, and codes that represent differences in chrominance values between adjacent pixels in the remainder of the group. A special “escape” code is used to represent the chrominance value for a pixel whenever the difference in chrominance values between that pixel and the preceding pixel exceeds a threshold.
Claims36
A method for compressing digital video data representing luminance values, first chrominance values and second chrominance values for a sequence of pixels arranged in a group having a first pixel followed by one or more other pixels, wherein the method comprises:
- storing in memory a compressed representation of the luminance values;
- storing in memory a representation of the first chrominance value of the first pixel in the group of pixels;
- storing in memory a representation of the second chrominance value of the first pixel in the group of pixels;
- determining a first difference between the first chrominance value of a second pixel in the group and the first chrominance value of another pixel in the group that immediately precedes the second pixel;
- storing in memory a representation of the first difference when the first difference does not exceed a first threshold, and storing in memory a first code in memory when the first difference exceeds the first threshold, wherein the first code is represented by a value that is distinct from values stored to represent the first difference;
- determining a second difference between the second chrominance value of the second pixel and the second chrominance value of the other pixel that immediately precedes the second pixel;
- and
- storing in memory a representation of the second difference when the second difference does not exceed a second threshold, and storing in memory a second code in memory when the second difference exceeds the second threshold, wherein the second code is represented by a value that is distinct from values stored to represent the second difference.
A method for decompressing digital video data representing luminance values, first chrominance values and second chrominance values for a sequence of pixels arranged in segments of pixels, wherein each segment has a first pixel followed by one or more other pixels, and wherein a first segment of pixels immediately precedes a second segment of pixels in the sequence, wherein the method comprises:
- retrieving from memory and expanding the luminance values;
- retrieving from memory the first chrominance value of the first pixel in the first segment of pixels;
- retrieving from memory the second chrominance value of the first pixel in the first segment of pixels;
- retrieving from memory a first value that corresponds to the first chrominance value of a second pixel in the first segment of pixels, wherein the first value either represents a first difference between the first chrominance value of the second pixel and the first chrominance value of another pixel in the first segment that immediately precedes the second pixel or is a first code that is distinct from values representing the first difference;
- establishing the first chrominance value of the second pixel from the first chrominance value of the first pixel in the second segment of pixels when the first value is the first code and, when the first value is not the first code, establishing the first chrominance value of the second pixel by combining the first difference with the first chrominance value of the other pixel;
- retrieving from memory a second value that corresponds to the second chrominance value of the second pixel in the first segment of pixels, wherein the second value either represents a second difference between the second chrominance value of the second pixel and the second chrominance value of the other pixel in the first segment or is a second code that is distinct from values representing the second difference;
- and
- establishing the second chrominance value of the second pixel from the second chrominance value of the first pixel in the second segment of pixels when the second value is the second code and, when the second value is not the second code, establishing the second chrominance value of the second pixel by combining the second difference with the second chrominance value of the other pixel.
A medium readable by a device and conveying a program of instructions executable by the device to perform a method for compressing digital video data representing luminance values, first chrominance values and second chrominance values for a sequence of pixels arranged in a group having a first pixel followed by one or more other pixels, wherein the method comprises:
- storing in memory a compressed representation of the luminance values;
- storing in memory a representation of the first chrominance value of the first pixel in the group of pixels;
- storing in memory a representation of the second chrominance value of the first pixel in the group of pixels;
- determining a first difference between the first chrominance value of a second pixel in the group and the first chrominance value of another pixel in the group that immediately precedes the second pixel;
- storing in memory a representation of the first difference when the first difference does not exceed a first threshold, and storing in memory a first code in memory when the first difference exceeds the first threshold, wherein the first code is represented by a value that is distinct from values stored to represent the first difference;
- determining a second difference between the second chrominance value of the second pixel and the second chrominance value of the other pixel that immediately precedes the second pixel;
- and
- storing in memory a representation of the second difference when the second difference does not exceed a second threshold, and storing in memory a second code in memory when the second difference exceeds the second threshold, wherein the second code is represented by a value that is distinct from values stored to represent the second difference.
A medium readable by a device and conveying a program of instructions executable by the device to perform a method for decompressing digital video data representing luminance values, first chrominance values and second chrominance values for a sequence of pixels arranged in segments of pixels, wherein each segment has a first pixel followed by one or more other pixels, and wherein a first segment of pixels immediately precedes a second segment of pixels in the sequence, wherein the method comprises:
- retrieving from memory and expanding the luminance values;
- retrieving from memory the first chrominance value of the first pixel in the first segment of pixels;
- retrieving from memory the second chrominance value of the first pixel in the first segment of pixels;
- retrieving from memory a first value that corresponds to the first chrominance value of a second pixel in the first segment of pixels, wherein the first value either represents a first difference between the first chrominance value of the second pixel and the first chrominance value of another pixel in the first segment that immediately precedes the second pixel or is a first code that is distinct from values representing the first difference;
- establishing the first chrominance value of the second pixel from the first chrominance value of the first pixel in the second segment of pixels when the first value is the first code and, when the first value is not the first code, establishing the first chrominance value of the second pixel by combining the first difference with the first chrominance value of the other pixel;
- retrieving from memory a second value that corresponds to the second chrominance value of the second pixel in the first segment of pixels, wherein the second value either represents a second difference between the second chrominance value of the second pixel and the second chrominance value of the other pixel in the first segment or is a second code that is distinct from values representing the second difference;
- and
- establishing the second chrominance value of the second pixel from the second chrominance value of the first pixel in the second segment of pixels when the second value is the second code and, when the second value is not the second code, establishing the second chrominance value of the second pixel by combining the second difference with the second chrominance value of the other pixel.
An apparatus for compressing digital video data representing luminance values, first chrominance values and second chrominance values for a sequence of pixels arranged in a group having a first pixel followed by one or more other pixels, wherein the apparatus comprises memory and processing circuitry coupled to the memory, wherein the processing circuitry performs a process that comprises:
- storing in the memory a compressed representation of the luminance values;
- storing in the memory a representation of the first chrominance value of the first pixel in the group of pixels;
- storing in the memory a representation of the second chrominance value of the first pixel in the group of pixels;
- determining a first difference between the first chrominance value of a second pixel in the group and the first chrominance value of another pixel in the group that immediately precedes the second pixel;
- storing in the memory a representation of the first difference when the first difference does not exceed a first threshold, and storing in the memory a first code in the memory when the first difference exceeds the first threshold, wherein the first code is represented by a value that is distinct from values stored to represent the first difference;
- determining a second difference between the second chrominance value of the second pixel and the second chrominance value of the other pixel that immediately precedes the second pixel;
- and
- storing in the memory a representation of the second difference when the second difference does not exceed a second threshold, and storing in the memory a second code in the memory when the second difference exceeds the second threshold, wherein the second code is represented by a value that is distinct from values stored to represent the second difference.
An apparatus for decompressing digital video data representing luminance values, first chrominance values and second chrominance values for a sequence of pixels arranged in segments of pixels, wherein each segment has a first pixel followed by one or more other pixels, and wherein a first segment of pixels immediately precedes a second segment of pixels in the sequence, wherein the apparatus comprises memory and processing circuitry coupled to the memory, wherein the processing circuitry performs a process that comprises:
- retrieving from the memory and expanding the luminance values;
- retrieving from the memory the first chrominance value of the first pixel in the first segment of pixels;
- retrieving from the memory the second chrominance value of the first pixel in the first segment of pixels;
- retrieving from the memory a first value that corresponds to the first chrominance value of a second pixel in the first segment of pixels, wherein the first value either represents a first difference between the first chrominance value of the second pixel and the first chrominance value of another pixel in the first segment that immediately precedes the second pixel or is a first code that is distinct from values representing the first difference;
- establishing the first chrominance value of the second pixel from the first chrominance value of the first pixel in the second segment of pixels when the first value is the first code and, when the first value is not the first code, establishing the first chrominance value of the second pixel by combining the first difference with the first chrominance value of the other pixel;
- retrieving from the memory a second value that corresponds to the second chrominance value of the second pixel in the first segment of pixels, wherein the second value either represents a second difference between the second chrominance value of the second pixel and the second chrominance value of the other pixel in the first segment or is a second code that is distinct from values representing the second difference;
- and
- establishing the second chrominance value of the second pixel from the second chrominance value of the first pixel in the second segment of pixels when the second value is the second code and, when the second value is not the second code, establishing the second chrominance value of the second pixel by combining the second difference with the second chrominance value of the other pixel.
An apparatus for compressing digital video data representing luminance values, first chrominance values and second chrominance values for a sequence of pixels arranged in a group having a first pixel followed by one or more other pixels, wherein the apparatus comprises:
- means for storing in memory a compressed representation of the luminance values;
- means for storing in memory a representation of the first chrominance value of the first pixel in the group of pixels;
- means for storing in memory a representation of the second chrominance value of the first pixel in the group of pixels;
- means for determining a first difference between the first chrominance value of a second pixel in the group and the first chrominance value of another pixel in the group that immediately precedes the second pixel;
- means for storing in memory a representation of the first difference when the first difference does not exceed a first threshold, and for storing in memory a first code in memory when the first difference exceeds the first threshold, wherein the first code is represented by a value that is distinct from values stored to represent the first difference;
- means for determining a second difference between the second chrominance value of the second pixel and the second chrominance value of the other pixel that immediately precedes the second pixel;
- and
- means for storing in memory a representation of the second difference when the second difference does not exceed a second threshold, and for storing in memory a second code in memory when the second difference exceeds the second threshold, wherein the second code is represented by a value that is distinct from values stored to represent the second difference.
An apparatus for decompressing digital video data representing luminance values, first chrominance values and second chrominance values for a sequence of pixels arranged in segments of pixels, wherein each segment has a first pixel followed by one or more other pixels, and wherein a first segment of pixels immediately precedes a second segment of pixels in the sequence, wherein the apparatus comprises:
- means for retrieving from memory and expanding the luminance values;
- means for retrieving from memory the first chrominance value of the first pixel in the first segment of pixels;
- means for retrieving from memory the second chrominance value of the first pixel in the first segment of pixels;
- means for retrieving from memory a first value that corresponds to the first chrominance value of a second pixel in the first segment of pixels, wherein the first value either represents a first difference between the first chrominance value of the second pixel and the first chrominance value of another pixel in the first segment that immediately precedes the second pixel or is a first code that is distinct from values representing the first difference;
- means for establishing the first chrominance value of the second pixel from the first chrominance value of the first pixel in the second segment of pixels when the first value is the first code and, when the first value is not the first code, for establishing the first chrominance value of the second pixel by combining the first difference with the first chrominance value of the other pixel;
- means for retrieving from memory a second value that corresponds to the second chrominance value of the second pixel in the first segment of pixels, wherein the second value either represents a second difference between the second chrominance value of the second pixel and the second chrominance value of the other pixel in the first segment or is a second code that is distinct from values representing the second difference;
- and
- means for establishing the second chrominance value of the second pixel from the second chrominance value of the first pixel in the second segment of pixels when the second value is the second code and, when the second value is not the second code, for establishing the second chrominance value of the second pixel by combining the second difference with the second chrominance value of the other pixel.
Dependencies are inferred from the claim text.