IP Library Granted Patent US 8,510,105
Granted Patent B2
US 8,510,105 · App. 11/256,667 · Granted Aug 13, 2013

Compression and decompression of data vectors

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,510,105
App. No.
11/256,667
Granted
Aug 13, 2013
Kind
B2
Abstract

For an enhanced sequential compression of data vectors in a respective compression pass, a current data vector is mapped to at least one current code vector of at least one codebook in at least one quantization stage. The at least one codebook is reordered taking account of at least one intermediate result from the current compression pass and at least one intermediate result from a preceding compression pass. At least one codebook index that is associated in the at least one reordered codebook to the at least one current code vector is then provided for further use. For a decompression of compressed data vectors represented by such codebook indices, at least one codebook index is mapped to at least one code vector of at least one equally reordered codebook.

Claims (170)

1. A method for performance by at least one processing unit in compressing data vectors sequentially in a respective compression pass said method comprising:

said at least one processing unit mapping a current data vector to at least one current code vector of at least one codebook in at least one quantization stage;

said at least one processing unit reordering said at least one codebook taking account of at least one intermediate result from a current compression pass and at least one intermediate result from a preceding compression pass, wherein said intermediate result from a preceding compression pass comprises at least one of: (a) a codevector selected for two or more quantization stages of a multi-stage quantizer during the preceding compression pass and (b) a predicted vector from the preceding compression pass; and

providing at least one codebook index that is associated in said at least one reordered codebook to said at least one current code vector;

wherein said reordering is based at least upon a sum of code vectors respectively selected at earlier stages during the current compression pass.

2. The method according to claim 1 , wherein for providing said at least one codebook index, first said at least one codebook is reordered, and then at least one codebook index is selected that is associated in said at least one reordered codebook to said at least one current code vector.

3. The method according to claim 1 , wherein for providing said at least one codebook index, first at least one preliminary codebook index is selected that is associated in said at least one codebook to said at least one current code vector, then said at least one codebook is reordered, and finally said selected at least one preliminary codebook index of said at least one codebook is mapped to at least one codebook index of said at least one reordered codebook.

4. The method according to claim 1 , wherein said at least one codebook is reordered by generating a mapping vector mapping codebook indices of said codebook to codebook indices of said reordered codebook.

5. The method according to claim 1 , further comprising applying a lossless compression to said provided at least one codebook index.

6. The method according to claim 1 , wherein said mapping of a current data vector to at least one current code vector is performed by an advanced quantization structure.

7. The method according to claim 6 , wherein said advanced quantization structure is one of a multistage quantization structure, a predictive quantization structure and a predictive multistage quantization structure.

8. A method for performance by at least one processing unit in compressing data vectors sequentially in a respective compression pass, said method comprising:

said at least one processing unit mapping a current data vector to at least one current code vector of at least one codebook in at least one quantization stage;

said at least one processing unit reordering said at least one codebook taking account of at least one intermediate result from a current compression pass and at least one intermediate result from a preceding compression pass, wherein said intermediate result from a preceding compression pass comprises at least one of: (a) a codevector selected for two or more quantization stages of a multi-stage quantizer during the preceding compression pass and (b) a predicted vector from the preceding compression pass; and

providing at least one codebook index that is associated in said at least one reordered codebook to said at least one current code vector, wherein said mapping of a current data vector to at least one current code vector is performed by a multistage quantization structure, and wherein said reordering is based at least upon a sum of code vectors respectively selected at earlier stages during the current compression pass.

9. The method according to claim 1 , wherein said mapping of a current data vector to at least one current code vector is performed by a predictive one-stage quantization structure, and wherein said reordering is based on the following distance of each code vector in a codebook:

D=d ( c+p′+m,y+p+m ),

where y is the code vector selected during the previous compression pass,

where p is a predicted vector from the previous compression pass, where p′ is a predicted vector from the current compression pass, where m is an optional mean vector, where c j is the respective code vector from stage j for which the distance is to be computed, and where d(·) is a distortion measure.

10. The method according to claim 1 , wherein said mapping of a current data vector to at least one current code vector is performed by a predictive multistage quantization structure, and wherein said reordering is based on the following distance of each code vector in a respective codebook:

D

j

=

d

(

c

j

+

n

=

1

j

-

1

y

n

+

p

+

m

,

k

=

1

K

y

k

+

p

+

m

)

,

where K is the total number of quantization stages, where j is the stage number, where y k is the code vector selected at stage k during the previous compression pass, where y′ n is the code vector selected at the earlier stage n during the current compression pass, where p is a predicted vector from the previous compression pass, where p′ is a predicted vector from the current compression pass, where m is an optional mean vector, where c j is the respective code vector from stage j for which the distance is to be computed, and where d(·) is a distortion measure.

11. The method according to claim 1 , further comprising providing synchronization information enabling a synchronization of a decompression of said provided at least one codebook index with said compression.

12. The method according to claim 1 , wherein said data vectors comprise at least one of speech data, audio data, image data, and video data.

13. An encoder comprising a processing unit and a storage medium including computer program code for compressing data vectors sequentially in a respective compression pass, the storage medium and the computer program code configured to, with the processing unit, cause the encoder at least to:

map a current data vector to at least one current code vector of at least one codebook in at least one quantization stage;

reorder at least one codebook taking account of at least one intermediate result from a current compression pass and at least one intermediate result from a preceding compression pass wherein said intermediate result from a preceding compression pass comprises at least one of: (a) a codevector selected for two or more quantization stages of a multi-stage quantizer during the preceding compression pass and (b) a predicted vector from the preceding compression pass; and

provide at least one codebook index that is associated in at least one reordered codebook to at least one current code vector;

wherein the encoder is configured to perform said reordering based at least upon a sum of code vectors respectively selected at earlier stages during the current compression pass.

14. The encoder according to claim 13 , wherein the storage medium and the computer program code configured to map a current data vector to at least one current code vector of at least one codebook in at least one quantization stage form an advanced quantization structure.

15. The encoder according to claim 14 , wherein said advanced quantization structure is one of a multistage quantization structure, a predictive quantization structure and a predictive multistage quantization structure.

16. An electronic device comprising a processing unit and a storage medium including computer program code for a sequential compression of data vectors in a respective compression pass, the storage medium and the computer program code configured to, with the processing unit, cause the encoder at least to:

map a current data vector to at least one current code vector of at least one codebook in at least one quantization stage;

reorder at least one codebook taking account of at least one intermediate result from a current compression pass and at least one intermediate result from a preceding compression pass, wherein said intermediate result from a preceding compression pass comprises at least one of: (a) a codevector selected for two or more quantization stages of a multi-stage quantizer during the preceding compression pass and (b) a predicted vector from the preceding compression pass; and

provide at least one codebook index that is associated in at least one reordered codebook to at least one current code vector;

wherein the reordering is based at least upon a sum of code vectors respectively selected at earlier stages during the current compression pass.

17. A non-transitory software program product in which a software code for compressing data vectors sequentially in a respective compression pass is stored, said software code realizing the following steps when being executed by a processing unit of an electronic device:

mapping a current data vector to at least one current code vector of at least one codebook in at least one quantization stage;

reordering said at least one codebook taking account of at least one intermediate result from a current compression pass and at least one intermediate result from a preceding compression pass, wherein said intermediate result from a preceding compression pass comprises at least one of: (a) a codevector selected for two or more quantization stages of a multistage quantizer during the preceding compression pass and (b) a predicted vector from the preceding compression pass; and

providing at least one codebook index that is associated in said at least one reordered codebook to said at least one current code vector;

wherein the reordering is based at least upon a sum of code vectors respectively selected at earlier stages during the current compression pass.

18. The software program product according to claim 17 , wherein for providing said at least one codebook index, first said at least one codebook is reordered, and then at least one codebook index is selected that is associated in said at least one reordered codebook to said at least one current code vector.

19. The software program product according to claim 17 , wherein said at least one codebook is reordered by generating a mapping vector mapping codebook indices of said codebook to codebook indices of said reordered codebook.

20. A non-transitory software program product in which a software code for compressing data vectors sequentially in a respective compression pass is stored, said software code realizing the following steps when being executed by a processing unit of an electronic device:

mapping a current data vector to at least one current code vector of at least one codebook in at least one quantization stage;

reordering said at least one codebook taking account of at least one intermediate result from a current compression pass and at least one intermediate result from a preceding compression pass, wherein said intermediate result from a preceding compression pass comprises at least one of: (a) a codevector selected for two or more quantization stages of a multistage quantizer during the preceding compression pass and (b) a predicted vector from the preceding compression pass; and

providing at least one codebook index that is associated in said at least one reordered codebook to said at least one current code vector, wherein said mapping of a current data vector to at least one current code vector is performed by a predictive multistage quantization, and wherein said reordering is based at least upon a sum of code vectors respectively selected at earlier stages during the current compression pass.

21. A method for performance by at least one processing unit in a decoder of an electronic device in decompressing compressed data vectors sequentially in a respective decompression pass, wherein each compressed data vector is represented by at least one codebook index, said method comprising:

said at least one processing unit reordering at least one codebook taking account of at least one intermediate result from a current decompression pass and at least one intermediate result from a preceding decompression pass, wherein said intermediate result from a preceding decompression pass comprises at least one of: (a) a codevector selected for two or more quantization stages of a multi-stage quantizer during the preceding decompression pass and (b) a predicted vector from the preceding decompression pass; and

said at least one processing unit mapping at least one codebook index representing a compressed current data vector to at least one code vector of said at least one reordered codebook, and wherein said reordering is based at least upon a sum of code vectors respectively selected at earlier stages during the current compression pass.

22. A decoder comprising a processing unit and a storage medium including program code for decompressing compressed data vectors sequentially in a respective decompression pass, wherein each compressed data vector is represented by at least one codebook index, the storage medium and the computer program code configured to, with the processing unit, cause the decoder at least to:

reorder at least one codebook taking account of at least one intermediate result from a current decompression pass and at least one intermediate result from a preceding decompression pass, wherein said intermediate result from a preceding decompression pass comprises at least one of: (a) a codevector selected for two or more quantization stages of a multi-stage quantizer during the preceding decompression pass and (b) a predicted vector from the preceding decompression pass; and

map at least one codebook index representing a compressed current data vector to at least one code vector of said at least one reordered codebook, and wherein said reordering is based at least upon a sum of code vectors respectively selected at earlier stages during the current compression pass.

23. A non-transitory software program product in which a software code for decompressing compressed data vectors sequentially in a respective decompression pass, wherein each compressed data vector is represented by at least one codebook index, is stored, said software code realizing the following steps when being executed by a processing unit of an electronic device:

reordering at least one codebook taking account of at least one intermediate result from a current decompression pass and at least one intermediate result from a preceding decompression pass, wherein said intermediate result from a preceding decompression pass comprises at least one of: (a) a codevector selected for two or more quantization stages of a multi-stage quantizer during the preceding decompression pass and (b) a predicted vector from the preceding decompression pass; and

mapping at least one codebook index representing a compressed current data vector to at least one code vector of said at least one reordered codebook, and wherein said reordering is based at least upon a sum of code vectors respectively selected at earlier stages during the current compression pass.

24. A non-transitory storage medium comprising program code stored thereon for carrying out the method of claim 1 when run on a processing unit.

25. The method of claim 8 , wherein said reordering is based at least upon the following distance of each code vector in a respective codebook:

D

j

=

d

(

c

j

+

n

=

1

j

-

1

y

n

+

m

,

k

=

1

K

y

k

+

m

)

,

where K is the total number of quantization stages, where j is the stage number, where y k is the code vector selected at stage k during the previous compression pass, where y′ n is the code vector selected at the earlier stage n during the current compression sass where m is an optional mean vector where c j is the respective code vector from stage i for which the distance is to be computed, and where d(·) is a distortion measure.

26. The software program product of claim 20 , wherein said reordering is based at least upon the following distance of each code vector in a respective codebook:

D

j

=

d

(

c

j

+

n

=

1

j

-

1

y

n

+

m

,

k

=

1

K

y

k

+

m

)

,

where K is the total number of quantization stages, where j is the stage number, where y k is the code vector selected at stage k during the previous compression pass, where y′ n is the code vector selected at the earlier stage n during the current compression pass, where m is an optional mean vector, where c j is the respective code vector from stage j for which the distance is to be computed, and where d(·) is a distortion measure.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2015
From: NOKIA CORPORATION
To: NOKIA TECHNOLOGIES OY
Reel/Frame 035564/0861 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2006
From: NURMINEN, JANI K.
To: NOKIA CORPORATION
Reel/Frame 017424/0892 →