Vector quantization method employing mirrored input vectors to search codebook
First Claim
Patent Images
1. In a data compression system employing a vector quantization codebook having a plurality of codevectors each representative of a possible input vector, each codevector having an associated address, a method comprising the steps of:
- a) receiving data to be compressed, and converting the data to a multi-dimensional input vector having a plurality of possible orientations, and assigning an identifying code to each orientation;
b) selecting one of the orientations;
c) comparing the input vector with the selected orientation to the codevectors of the codebook and selecting the codevector that most closely resembles the input vector with the selected orientation;
d) obtaining a measure of difference, if any, between the input vector with the selected orientation and the selected codevector;
e) selecting other ones of the remaining orientations of the input vector and, for each other selected orientation, repeating steps (c) and (d);
f) selecting the orientation and associated codevector that provided the least measure of difference in step (d); and
g) transmitting an indication of at least the address of the codevector and the identifying code of the orientation selected in step (f).
3 Assignments
0 Petitions
Accused Products
Abstract
A vector quantization me employs mirrored input vectors to increase the reproduction quality of transmitted vector quantized data. A codevector is selected from a vector quantization codebook for each possible orientation of an input vector. The codevector having the smallest distortion relative to the input vector is selected for transmission. An identification code identifying the selected orientation is also transmitted.
-
Citations
20 Claims
-
1. In a data compression system employing a vector quantization codebook having a plurality of codevectors each representative of a possible input vector, each codevector having an associated address, a method comprising the steps of:
-
a) receiving data to be compressed, and converting the data to a multi-dimensional input vector having a plurality of possible orientations, and assigning an identifying code to each orientation; b) selecting one of the orientations; c) comparing the input vector with the selected orientation to the codevectors of the codebook and selecting the codevector that most closely resembles the input vector with the selected orientation; d) obtaining a measure of difference, if any, between the input vector with the selected orientation and the selected codevector; e) selecting other ones of the remaining orientations of the input vector and, for each other selected orientation, repeating steps (c) and (d); f) selecting the orientation and associated codevector that provided the least measure of difference in step (d); and g) transmitting an indication of at least the address of the codevector and the identifying code of the orientation selected in step (f). - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 19)
-
-
13. Method of transmitting image data from a first location to a second location wherein the image data comprises temporally spaced image frames representing moving images, each image frame being defined by a plurality of pixels, comprising the steps of:
-
(a) receiving data indicative of image frames to be transmitted, and organizing each image frame into a plurality of blocks of pixels, and converting each block of pixels to a multi-dimensional input vector, each input vector having a plurality of possible orientations, and assigning an identifying code to each orientation; b) providing, in a memory at the first location, a first vector quantization codebook having a plurality of codevectors each representative of a possible input vector, each codevector having an associated address; c) performing the following steps for each input vector; i) selecting one of the orientations of the input vector; ii) comparing the input vector with the selected orientation to the codevectors of the codebook and selecting the codevector that most closely resembles the input vector with the selected orientation; iii) obtaining a measure of difference, if any, between the input vector with the selected orientation and the selected codevector; iv) selecting other ones of the remaining orientations of the input vector and, for each other selected orientation, repeating steps (ii) and (iii); v) selecting the orientation and codevector that provided the least measure of difference in step (iii); vi) transmitting from the first location an indication of at least the address of the codevector and the identifying code of the orientation selected in step (v); d) performing the following additional steps at the second location; i) providing, in a memory at the second location, a second vector quantization codebook substantially identical to the first codebook; (ii) receiving each indication transmitted from the first location, obtaining therefrom the identifying code of the orientation and the address of the codevector selected in step (c)(v), and retrieving from the second codebook the codevector residing at the obtained address to substantially reproduce the codevector selected in step (c)(v); and (iii) employing the identifying code of the orientation and the reproduced codevector to substantially re-orient the reproduced codevector, if necessary, so as to substantially re-create each block of image frame data. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
20. In a pay television system, a method of transmitting image data from a transmitter location of pay television signals to a plurality of receiving locations of pay television signals wherein the image data comprises temporally spaced image frames representing moving images to be displayed on a television set, each image frame being defined by a two-dimensional matrix of pixels having an x-axis and a y-axis, comprising the steps of:
-
(a) receiving data indicative of image frames to be transmitted, and organizing each image frame into a plurality of two-dimensional blocks of pixels, and converting each block of pixels to a two-dimensional input vector, each input vector having four possible orientations, a first orientation being representative of the block of pixels substantially as received, a second orientation being representative of the block of pixels mirrored about the x-axis, a third orientation being representative of the block of pixels mirrored about the y-axis, and a fourth orientation being representative of the block of pixels mirrored about both the x-axis and the y-axis; b) assigning an identifying code to each of the possible orientations; c) providing, in a memory at the transmitter location, a first vector quantization codebook having a plurality of codevectors each representative of a possible input vector, each codevector having an associated address; d) performing the following steps for each input vector; i) selecting one of the orientations of the input vector; ii) comparing the input vector with the selected orientation to the codevectors of the codebook and selecting the codevector that most closely resembles the input vector with the selected orientation; iii) obtaining a measure of difference, if any, between the input vector with the selected orientation and the selected codevector; iv) selecting other ones of the remaining orientations of the input vector and, for each other selected orientation, repeating steps (ii) and (iii); v) selecting the orientation and associated codevector that provided the least measure of difference in step (iii); vi) transmitting an indication of at least the identifying code of the orientation and the address of the associated codevector selected in step (v); d) performing the following additional steps at each receiving location; i) providing, in a memory at the receiving location, a second vector quantization codebook substantially identical to the first codebook; ii) receiving each transmitted indication, obtaining therefrom the identifying code of the orientation and the address of the codevector selected in step (c)(v), and retrieving from the second codebook the codevector residing at each obtained address to substantially reproduce each codevector selected in step (c)(v); (iii) employing each identifying code and reproduced codevector to substantially re-orient each reproduced codevector, if necessary, so as to substantially re-create each block of pixels; and (iv) reconstructing each image frame from the re-created blocks of pixels for display on a television set at the receiver location.
-
Specification