IP Library Granted Patent US 7,639,883
Granted Patent B2
US 7,639,883 · App. 11/406,449 · Granted Dec 29, 2009

Method, device, mobile terminal and computer program product for providing variable compression of data files

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 7,639,883
App. No.
11/406,449
Granted
Dec 29, 2009
Kind
B2
Abstract

A device for providing variable compression of data files includes a weighting module, a summing module, and a processing element. The weighting module is capable of assigning a weighting value to each coefficient of an array of j number of coefficients. Each weighting value defines a characteristic associated with each corresponding coefficient. The summing module is in communication with the weighting module and is capable of adding the magnitude of a weighted value of an i th coefficient to the absolute sum of weighted values of all previous coefficients, i being a value from 1 to j. The processing element is in communication with the summing module and is capable of comparing the absolute sum of the weighted values of the i th coefficient and the previous coefficients to a threshold. If the absolute sum of the weighted values of the i th coefficient and the previous coefficients is greater than the threshold then each of the previous coefficients are replaced with a zero. If the absolute sum of the weighted values of the i th coefficient and the previous coefficients is less than or equal to the threshold, then i is incremented by one for repeated summing at the summing module.

Claims (64)

1. A method comprising:

utilizing a processor for assigning a weighting value to each coefficient of an array of j number of quantized coefficients, each weighting value defining a characteristic associated with each corresponding coefficient;

adding a magnitude of a weighted value of an i th coefficient to a magnitude of each weighted value of all previous coefficients, i being a value from 1 to j;

comparing an absolute sum of the weighted values of the i th coefficient and the previous coefficients to a threshold;

replacing each of the previous coefficients with a zero if the absolute sum of the weighted values of the i th coefficient and all previous coefficients is greater than the threshold; and

incrementing i by one and repeating the adding operation if the absolute sum of the weighted values of the i th coefficient and all previous coefficients is less than or equal to the threshold.

2. A method according to claim 1 , further comprising receiving an indication of an amount of data yet to be processed.

3. A method according to claim 2 , further comprising receiving an indication of a remaining amount of budget in order to achieve a target data file size.

4. A method according to claim 3 , further comprising changing the threshold dynamically in order to compress a data file to the target data file size in response to the indication of the amount of data yet to be processed and the remaining amount of budget.

5. A method according to claim 3 , further comprising changing the weighting values dynamically in order to compress a data file to the target data file size in response to the indication of the amount of data yet to be processed and the remaining amount of budget.

6. A method according to claim 1 , wherein the adding operation is performed in accordance with a predetermined sequence.

7. A method according to claim 1 , further comprising forming a resultant linear sequence of coefficients from one of:

a modified sequence including zeros for the previous coefficients and unchanged values for remaining coefficients in response to the absolute sum of the weighted values of the i th coefficient and the previous coefficients being greater than the threshold; and

a sequence formed from unchanged values from the array of j number of quantized coefficients if the absolute sum of the weighted values of the j th coefficient and the previous coefficients is less than or equal to the threshold.

8. A method according to claim 7 , further comprising encoding the resultant linear sequence of coefficients using a JPEG encoder.

9. A method according to claim 1 , the adding operation is performed in accordance with a sequence that is dynamically alterable.

10. A computer program product comprising at least one computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising:

a first executable portion for assigning a weighting value to each coefficient of an array of j number of quantized coefficients, each weighting value defining a characteristic associated with each corresponding coefficient;

a second executable portion for adding a magnitude of a weighted value of an i th coefficient to a magnitude of each weighted value of all previous coefficients, i being a value from 1 to j;

a third executable portion for comparing an absolute sum of the weighted values of the i th coefficient and the previous coefficients to a threshold;

a fourth executable portion for replacing each of the previous coefficients with a zero if the absolute sum of the weighted values of the i th coefficient and all previous coefficients is greater than the threshold; and

a fifth executable portion for incrementing i by one and repeating the adding operation if the absolute sum of the weighted values of the i th coefficient and all previous coefficients is less than or equal to the threshold.

11. A computer program product according to claim 10 , further comprising a sixth executable portion for receiving an indication of an amount of data yet to be processed.

12. A computer program product according to claim 11 , further comprising a seventh executable portion for receiving an indication of a remaining amount of budget in order to achieve a target data file size.

13. A computer program product according to claim 12 , further comprising an eighth executable portion for changing the threshold dynamically in order to compress a data file to the target data file size in response to the indication of the amount of data yet to be processed and the indication of the remaining amount of budget.

14. A computer program product according to claim 12 , further comprising an eighth executable portion for changing the weighting values dynamically in order to compress a data file to the target data file size in response to the indication of the amount of data yet to be processed and the remaining amount of budget.

15. An apparatus comprising a processor and memory including computer program code, the memory and the computer program code configured to, with the processor, cause the apparatus to perform at least:

assigning a weighting value to each coefficient of an array of j number of quantized coefficients, each weighting value defining a characteristic associated with each corresponding coefficient;

adding a magnitude of a weighted value of an i th coefficient to a magnitude of each weighted value of all previous coefficients, i being a value from 1 to j; and

comparing an absolute sum of the weighted values of the i th coefficient and the previous coefficients to a threshold,

replacing each of the previous coefficients with a zero in response to the absolute sum of the weighted values of the i th coefficient and the previous coefficients being greater than the threshold; and

incrementing i by one and repeating the adding operation in response to the absolute sum of the weighted values of the i th coefficient and the previous coefficients being less than or equal to the threshold.

16. An apparatus according to claim 15 , wherein the apparatus is further configured to receive an indication of an amount of data yet to be processed.

17. An apparatus according to claim 16 , wherein the apparatus is further configured to receive an indication of a remaining amount of budget in order to achieve a target data file size.

18. An apparatus according to claim 17 , wherein the apparatus is further configured to change the threshold dynamically in order to compress a data file to the target data file size in response to the indications of the amount of data yet to be processed and the remaining budget.

19. An apparatus according to claim 17 , wherein the apparatus is further configured to change the weighting values dynamically in order to compress a data file to the target data file size in response to the indications of the amount of data yet to be processed and the remaining budget.

20. An apparatus according to claim 15 , wherein the apparatus is configured to add coefficients in accordance with a predetermined sequence.

21. An apparatus according to claim 15 , wherein the apparatus is configured to add coefficients in accordance with a sequence that is dynamically alterable.

22. An apparatus according to claim 15 , wherein the apparatus is further configured to form a resultant linear sequence of coefficients from one of:

a modified sequence including zeros for the previous coefficients and unchanged values for remaining coefficients in response to the absolute sum of the weighted values of the i th coefficient and the previous coefficients being greater than the threshold; and

a sequence formed from unchanged values from the array of j number of quantized coefficients if the absolute sum of the weighted values of the j th coefficient and the previous coefficients is less than or equal to the threshold.

23. An apparatus according to claim 22 , further comprising a JPEG encoder that encodes the resultant linear sequence of coefficients.

24. A mobile terminal a processor and memory including computer program code, the memory and the computer program code configured to, with the processor, cause the mobile terminal to perform at least:

assigning a weighting value to each coefficient of an array of j number of quantized coefficients, each weighting value defining a characteristic associated with each corresponding coefficient;

adding a magnitude of a weighted value of an i th coefficient to a magnitude of each weighted value of all previous coefficients, i being a value from 1 to j; and

comparing an absolute sum of the weighted values of the i th coefficient and the previous coefficients to a threshold,

replacing each of the previous coefficients with a zero in response to the absolute sum of the weighted values of the i th coefficient and the previous coefficients being greater than the threshold; and

incrementing i by one and repeating the adding operation in response to the absolute sum of the weighted values of the i th coefficient and the previous coefficients being less than or equal to the threshold.

25. A mobile terminal according to claim 24 , wherein the mobile terminal is further configured to receive an indication of an amount of data yet to be processed.

26. A mobile terminal according to claim 25 , wherein the mobile terminal is further configured to receive an indication of a remaining amount of budget in order to achieve a target data file size.

27. A mobile terminal according to claim 26 , wherein the mobile terminal is further configured to change the threshold dynamically in order to compress a data file to the target data file size in response to the indications of the amount of data yet to be processed and the remaining budget.

28. A mobile terminal according to claim 26 , wherein the mobile terminal is further configured to change the weighting values dynamically in order to compress a data file to the target data file size in response to the indications of the amount of data yet to be processed and the remaining budget.

29. A mobile terminal according to claim 24 , wherein the mobile terminal is further configured to add coefficients in accordance with a predetermined sequence.

30. A mobile terminal according to claim 24 , wherein the mobile terminal is further configured to add coefficients in accordance with a sequence that is dynamically alterable.

31. A mobile terminal according to claim 24 , wherein the mobile terminal is further configured to form a resultant linear sequence of coefficients from one of:

a modified sequence including zeros for the previous coefficients and unchanged values for remaining coefficients in response to the absolute sum of the weighted values of the i th coefficient and the previous coefficients being greater than the threshold; and

a sequence formed from unchanged values from the array of j number of quantized coefficients if the absolute sum of the weighted values of the j th coefficient and the previous coefficients is less than or equal to the threshold.

32. A mobile terminal according to claim 31 , further comprising a JPEG encoder that encodes the resultant linear sequence of coefficients.

33. A method comprising:

receiving a data segment comprising a plurality of blocks having respective coefficients associated with each of the blocks;

utilizing a processor for assigning a weighting value, calculated for each of the blocks during compression of a data file to which the blocks correspond, to each of the coefficients based on frequency information associated with data in each of the blocks; and

setting one or more of the coefficients to zero based on an aggregation of weighted values,

wherein different numbers of coefficients are set to zero in one data segment than in another data segment.

34. A method according to claim 33 , wherein the setting operation comprises comparing the aggregation of the weighted values to a threshold and setting the one or more coefficients to zero in response to the aggregation reaching the threshold.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2021
From: PROVENANCE ASSET GROUP LLC
To: RPX CORPORATION
Reel/Frame 059352/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: NOKIA US HOLDINGS INC.
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058363/0723 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: CORTLAND CAPITAL MARKETS SERVICES LLC
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058983/0104 →
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Feb 14, 2019
From: NOKIA USA INC.
To: NOKIA US HOLDINGS INC.
Reel/Frame 048370/0682 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2017
From: NOKIA TECHNOLOGIES OY; NOKIA SOLUTIONS AND NETWORKS BV; ALCATEL LUCENT SAS
To: PROVENANCE ASSET GROUP LLC
Reel/Frame 043877/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP LLC
To: NOKIA USA INC.
Reel/Frame 043879/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP, LLC
To: CORTLAND CAPITAL MARKET SERVICES, LLC
Reel/Frame 043967/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2015
From: NOKIA CORPORATION
To: NOKIA TECHNOLOGIES OY
Reel/Frame 035581/0654 →