Vector quantization
First Claim
1. An automatic method in an encoding device of vector quantization of an image comprising the following steps:
- a. initializing N initial nodes in a vector quantizer tree in a dynamic storage device of said encoding device;
b. sampling a vector from said image;
c. determining a node in said vector quantizer tree which is a best representative sample of the vector sampled from said image;
d. associating the vector with said node in said vector quantizer tree in said dynamic storage device;
e. sampling a next vector from said image;
f. repeating steps c-f until there are no more vectors to be sampled from said image, said next vector becoming said vector;
g. determining which of the nodes in said tree is the most distorted node in said tree;
h. splitting said most distorted node into two children nodes in said dynamic storage device;
i. associating a first portion of the vectors associated with said most distorted node with a first of said children nodes in said dynamic storage device, and a second portion of the vectors associated with said most distorted node with a second of said children nodes in said dynamic storage device;
j. determining a current error of the two children nodes compared to the first and second portions of the vectors;
k. if the change in error between the current error and a previous error is less than an error threshold then proceeding to step l otherwise determining new values of said first and second children, and proceeding to step i, said current error becoming said previous error;
l. repeating steps g through l until the number of terminal nodes in said vector quantizer tree has reached a desired population; and
m. associating indices with each of the terminal nodes in said vector quantizer tree in said dynamic storage device.
1 Assignment
0 Petitions
Accused Products
Abstract
Improved method and apparatus for vector quantization (VQ) to build a codebook for the compression of data. The codebook or "tree" is initialized by establishing N initial nodes and creating the remainder of the codebook as a binary codebook. Children entries are split upon determination of various attributes, such as maximum distortion, population, etc. Vectors obtained from the data are associated with the children nodes, and then representative children entries are recalculated. This splitting/reassociation continues iteratively until a difference in error associated with the previous children and current children becomes less than a threshold. This splitting and reassociating process continues until the maximum number of terminal nodes is created in the tree, a total error or distortion threshold has been reached or some other criterion. The data may then be transmitted as a compressed bitstream comprising a codebook and indices referencing the codebook.
114 Citations
41 Claims
-
1. An automatic method in an encoding device of vector quantization of an image comprising the following steps:
-
a. initializing N initial nodes in a vector quantizer tree in a dynamic storage device of said encoding device; b. sampling a vector from said image; c. determining a node in said vector quantizer tree which is a best representative sample of the vector sampled from said image; d. associating the vector with said node in said vector quantizer tree in said dynamic storage device; e. sampling a next vector from said image; f. repeating steps c-f until there are no more vectors to be sampled from said image, said next vector becoming said vector; g. determining which of the nodes in said tree is the most distorted node in said tree; h. splitting said most distorted node into two children nodes in said dynamic storage device; i. associating a first portion of the vectors associated with said most distorted node with a first of said children nodes in said dynamic storage device, and a second portion of the vectors associated with said most distorted node with a second of said children nodes in said dynamic storage device; j. determining a current error of the two children nodes compared to the first and second portions of the vectors; k. if the change in error between the current error and a previous error is less than an error threshold then proceeding to step l otherwise determining new values of said first and second children, and proceeding to step i, said current error becoming said previous error; l. repeating steps g through l until the number of terminal nodes in said vector quantizer tree has reached a desired population; and m. associating indices with each of the terminal nodes in said vector quantizer tree in said dynamic storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. An automatic apparatus for vector quantization of an image comprising:
-
a. means for initializing N initial nodes in a vector quantizer tree in a dynamic storage device of said encoding device; b. means for sampling a vector from said image; c. means for determining a node in said vector quantizer tree which is a best representative sample of the vector sampled from said image; d. means for associating the vector with said node in said vector quantizer tree in said dynamic storage device; e. means for sampling a next vector from said image; f. means for activating components c-e until there are no more vectors remain to be sampled from said image, said next vector becoming said vector; g. means for determining which of the nodes in said tree is the most distorted node in said tree; h. means for splitting said most distorted node into two children nodes in said dynamic storage device; i. means for associating a first portion of the vectors associated with said most distorted node with a first of said children nodes in said dynamic storage device, and a second portion of the vectors associated with said most distorted node with a second of said children nodes in said dynamic storage device; j. means for determining a current error of the two children nodes relative to the first and second portions of the vectors; k. means for determining new values of said first and second children nodes and continuously activating components i-j if the change in error between the current error and a previous error is greater than an error threshold said current error becoming said previous error; l. means for continuously activating components g through l until the number of terminal nodes in said vector quantizer tree has reached a desired population; and m. means for associating indices with each of the terminal nodes in said vector quantizer tree in said dynamic storage device.
-
-
18. An automatic apparatus in an encoding device for vector quantization of an image comprising:
-
a. means for initializing N initial nodes in a vector quantizer tree in a dynamic storage device of said encoding device wherein N is greater than 2; b. means for sampling non-overlapping fixed-size vectors from said image; c. means for determining nodes in said vector quantizer tree which are best representative samples of the vectors sampled from said image; d. means for associating said vectors with said nodes in said vector quantizer tree in said dynamic storage device; e. means for iterating and creating new nodes in the vector quantizer tree in said dynamic storage device by determining worst nodes in said tree, splitting said nodes into more than two children nodes and reassociating said vectors with said children nodes in said vector quantizer tree until a number of terminal nodes in said tree reaches a desired population.
-
-
19. A tree-searched vector quantizer for encoding an image, said tree-searched vector quantizer for generating a codebook from first signals received from said image, said first signals representative of vectors sampled from said image, and terminal nodes in a tree created by said tree-searched vector quantizer are used for said codebook, wherein second signals are transmitted from said vector quantizer, said second signals including indices referencing said terminal nodes in said tree, said tree-searched vector quantizer comprising:
-
a processor; and a storage device coupled to said processor;
said storage device having stored therein executable code which, when executed by said processor, causes said processor to perform the steps of;a. determining which of the nodes in said tree is a most distorted node in said tree based on error criteria; b. splitting said most distorted node into children nodes by performing the following steps; sampling K representative vectors for said children nodes; perturbing vectors for said most distorted node in order to create said children nodes if said step of sampling K representative vectors fails to split said most distorted node; re-associating vectors from said most distorted node with said children nodes; and tagging said most distorted node as a terminal node if said children nodes are unable to be created; c. repeating steps a and b until a desired population of said terminal nodes in said tree are created. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
-
26. An encoding apparatus for compressing an image by performing vector quantization on said image, said apparatus comprising:
-
a processor; and a storage device coupled to said processor;
said storage device having stored therein executable code which, when executed by said processor, causes said processor to perform the steps of;a. initializing N initial nodes in a vector quantizer tree; b. sampling a vector from said image; c. determining a node in said vector quantizer tree which is a best representative sample of the vector sampled from said image; d. associating the vector with said node in said vector quantizer tree; e. sampling a next vector from said image; f. repeating steps c-f until there are no more vectors to be sampled from said image, said next vector becoming said vector; g. determining which of the nodes in said tree is the most distorted node in said tree; h. splitting said most distorted node into two children nodes; i. associating a first portion of the vectors associated with said most distorted node with a first of said children nodes, and a second portion of the vectors associated with said most distorted node with a second of said children nodes; j. determining a current error of the two children nodes compared to the first and second portions of the vectors; k. if the change in error between the current error and a previous error is less than an error threshold then proceeding to step 1 otherwise determining new values of said first and second children, and proceeding to step i, said current error becoming said previous error; l. repeating steps g through k until the number of terminal nodes in said vector quantizer tree has reached a desired population; and m. associating indices with each of the terminal nodes in said vector quantizer tree. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41)
-
Specification