Patentable/Patents/US-6947606
US-6947606

Skim encoding method for compression of a two dimensional array of data

PublishedSeptember 20, 2005
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

A process for compressing a two dimensional array of data including at least one array block having a plurality of block rows and a plurality of block columns of pixels, each pixel having at least one associated intensity value. The process includes generating a delta frame associated with a pair of the block columns, the delta frame having a plurality of delta rows and delta columns of delta bits, one of the delta rows being a highest order row; determining a number of duplicate rows of the delta rows, each of the duplicate rows forming an identical row byte value having delta bits which have a predetermined relationship with the delta bits of the highest order row; recording information indicative of the number of duplicate rows; and developing compressed data including the information indicative of the number of duplicate rows of the delta frame.

Patent Claims
38 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A process of compressing a two dimensional array of data in the form of a pixel map including an array of pixels having at least one array block having a plurality of block rows and a plurality of block columns of the pixels, each pixel having at least one associated intensity value, the process comprising: generating a delta frame associated with a pair of the block columns, said delta frame having a plurality of delta rows and delta columns of delta bits, one of said delta rows being a highest order row; determining a number of duplicate ones of said delta rows, each of said duplicate rows forming an identical row byte value having delta bits which have a predetermined relationship with the delta bits of said highest order row; recording information indicative of said number of duplicate rows; and developing compressed data including said information indicative of said number of duplicate rows of said delta frame.

2

2. A process as recited in claim 1 wherein determining a number of duplicate rows includes determining a skim one of said delta rows of said delta frame, said skim row being a highest order one of said delta rows less than the order of said highest order row and forming a skim row byte having at least one delta bit that is different from a corresponding one of said delta bits of said highest order row, each of said duplicate rows being of an order which is lower than the order of said highest order row and higher than the order of said skim row.

3

3. A process as recited in claim 1 wherein said highest order delta row is a sign row forming a sign byte having a plurality of sign bits each being associated with a corresponding one of adjacent pairs of pixels and indicating whether a difference between the intensity values of said corresponding adjacent pair of pixels is positive or negative, and wherein each of the delta bits of each said duplicate row is equal to an associated one of said sign bits.

4

4. A process as recited in claim 3 wherein determining a number of duplicate rows includes determining a skim one of said delta rows of said delta frame, said skim row being a highest order one of said delta rows less than the order of said sign row and forming a skim row byte having at least one delta bit that is different from a corresponding one of said sign bits of said sign row, each of said duplicate rows being of an order which is lower than the order of said sign row and higher than the order of said skim row.

5

5. A process as recited in claim 4 wherein recording information indicative of said number of duplicate rows includes determining and recording information indicative of a height value indicating a number of delta rows of said delta frame that are lower order rows than said skim row.

6

6. A process as recited in claim 5 wherein said delta frame is a first delta frame associated with a first pair of the block columns and wherein said height value is a first height value, the process further comprising: generating a second delta frame associated with a second pair of the block columns, said delta frame having a plurality of delta rows and delta columns of delta bits, each said delta column forming a delta byte indicating a difference between the intensity values of a corresponding adjacent pair of pixels disposed in said second pair of block columns, one of said delta rows being a highest order row of said second delta frame; determining a skim row of said second delta frame, said skim row being a highest order one of said delta rows less than the order of said sign row of said second delta frame and forming a skim row byte having at least one delta bit that is different from a corresponding one of said sign bits of said sign row of said second delta frame; and determining a second height value indicating a number of delta rows of said second delta frame that are lower order rows than said skim row; wherein recording information indicative of said number of duplicate rows of said first delta frame further includes, determining a height difference value between said first and second height values, determining a Huffman code value associated with said first delta frame based on at least one of said height difference value and said skim row byte of said first delta frame, and recording said Huffman code value.

7

7. A process as recited in claim 1 wherein each said delta byte formed by an associated delta column is determined by determining a difference between the intensity values of a corresponding adjacent pair of pixels disposed in said pair of the block columns.

8

8. A process as recited in claim 1 wherein said pair of the block columns includes a first block column and a second block column of pixels, and wherein generating a delta frame comprises: determining a first word value by concatenating each of said intensity values of the pixels of said first block column; determining a second word value by concatenating each of the intensity values of the pixels of said second block column; determining a delta word value by subtracting the second word value from the first word value; and subdividing the delta word value into a plurality of X-bit delta values each providing an associated one of a plurality of delta bytes of the delta frame.

9

9. A process of compressing a two dimensional array of data in the form of a pixel map including an array of pixels having at least one array block having a plurality of N block rows and a plurality of M block columns of the pixels, each pixel having at least one associated X-bit intensity value, the process comprising: (a) generating a first delta frame associated with a first pair of the block columns including first and second adjacent block columns, said first delta frame having a predetermined plurality of delta rows and N delta columns of delta bits, each said delta column forming a delta byte having said predetermined plurality of bits, each said delta row forming an N-bit row byte, wherein a highest order one of said delta rows is a sign row forming a sign byte having N sign bits; (b) determining a skim row of said first delta frame, said skim row being a highest order one of said delta rows less than the order of said sign row and forming a skim row byte having at least one delta bit that is different from a corresponding one of said sign bits of said sign row; (c) determining a first height value associated with said first delta frame, said first height value indicating a number of said delta rows of said first delta frame that are lower order rows than said skim row; (d) generating a second delta frame associated with a second pair of the block columns including said second block column and an adjacent third block column, said second delta frame having said predetermined plurality of delta rows and N delta columns of associated delta bits, each said delta column forming a delta byte having said predetermined plurality of bits, each said delta row forming an N-bit row byte, wherein a highest order one of said delta rows is a sign row forming a sign byte having N sign bits; (e) determining a skim row of said second delta frame, said skim row being a highest order one of said delta rows of said second delta frame less than the order of said sign row and forming a skim row byte having at least one delta bit that is different from a corresponding one of said sign bits of said sign row of said second delta frame; (f) determining a second height value associated with said second delta frame, said second height value indicating a number of delta rows of said second delta frame that are lower order rows than said skim row; (g) determining a height difference value between said first and second height values; (h) determining a Huffman code value associated with said first delta frame based on at least one of said height difference value and said skim row byte of said first delta frame; and (i) performing steps corresponding to steps (d) through (h) for each subsequent one of the block columns to develop compressed data including said Huffman code values.

10

10. A process as recited in claim 9 wherein: said step (a) of generating a first delta frame includes determining each said delta byte formed by a delta column of said first delta frame by determining a difference between the intensity values of a corresponding adjacent pair of pixels disposed in a corresponding one of the block rows and in said first and second block columns, each of said sign bits of said sign row of said first delta frame being associated with a corresponding one of said adjacent pairs of pixels and indicating whether the difference between the intensity values of said corresponding adjacent pair of pixels is positive or negative; and said step (d) of generating a second delta frame includes determining each said delta byte formed by a delta column of said second delta frame by determining a difference between the intensity values of a corresponding adjacent pair of pixels disposed in a corresponding one of the block rows and in said second and third block columns, each of said sign bits of said sign row of said second delta frame being associated with a corresponding one of said adjacent pairs of pixels and indicating whether the difference between the intensity values of said corresponding adjacent pair of pixels is positive or negative.

11

11. A process as recited in claim 9 wherein said step (a) of generating a first delta frame comprises: determining a first word value by concatenating each of said X-bit intensity values of the pixels of said first block column; determining a second word value by concatenating each of the X-bit intensity values of the pixels of said second block column; determining a delta word value by subtracting the second word value from the first word value; and subdividing the delta word value into a plurality of N X-bit delta values each providing one of a plurality of delta bytes of the first delta frame.

12

12. A process as recited in claim 9 wherein: said step (a) of generating a first delta frame includes, determining a first word value by concatenating each of said X-bit intensity values of said pixels of said first block column, determining a second word value by concatenating each of said X-bit intensity values of said pixels of said second block column, determining a delta word value by subtracting said second word value from said first word value, and subdividing said delta word value into a plurality of N X-bit delta values each providing one of a plurality of delta bytes of said first delta frame; and said step (d) of generating a second delta frame includes, determining a third word value by concatenating each of said X-bit intensity values of said pixels of said third block column, determining a delta word value by subtracting said third word value from said second word value, and subdividing said delta word value into a plurality of N X-bit delta values each providing one of a plurality of delta bytes of said second delta frame.

13

13. A process as recited in claim 9 wherein said step (h) of determining a Huffman code value further comprises: determining a dictionary element based on at least one of said skim row byte of said first delta frame, said height difference value and a number of zero delta word values; and using said dictionary element to reference a Huffman code table to determine said Huffman code value associated with said first delta frame.

14

14. A process as recited in claim 13 wherein: said step (c) of determining a first height value associated with said first delta frame includes recording delta bit values of said delta rows of said first delta frame that are lower order rows than said skim row of said first delta frame; and said step (f) of determining a second height value associated with said second delta frame includes recording delta bit values of said delta rows of said second delta frame that are lower order rows than said skim row of said second delta frame; said recorded delta bits being literally encoded within said compressed data.

15

15. A process as recited in claim 9 wherein said step (b) of determining a skim row of said first delta frame includes, determining a number of duplicate rows of said first delta frame, each skim row being a higher order row than said skim row and a lower order row than said sign row of said first delta frame, and recording information indicative of said number of duplicate rows of said first delta frame; and said step (e) of determining a skim row of said second delta frame includes, determining a number of duplicate rows of said second delta frame, each duplicate row being a higher order row than said skim row and a lower order row than said sign row of said second delta frame, and recording information indicative of said number of duplicate rows of said second delta frame.

16

16. A process as recited in claim 9 wherein said predetermined plurality of delta rows includes at least X delta rows.

17

17. A process of compressing a two dimensional array of data in the form of a pixel map including an array of pixels having at least one array block having a plurality of N block rows and a plurality of M block columns of the pixels, each pixel having at least one associated X-bit intensity value, the process comprising: (a) generating a first delta frame associated with a first pair of the block columns including first and second adjacent block columns, said first delta frame having a predetermined plurality of delta rows and N delta columns of delta bits, each said delta column forming a delta byte having said predetermined plurality of bits and being indicative of a difference between the intensity values of a corresponding adjacent pair of pixels disposed in a corresponding one of the block rows and in said first and second block columns, each said delta row forming an N-bit row byte, wherein a highest order one of said delta rows is a sign row forming a sign byte having N sign bits each being associated with a corresponding one of said adjacent pairs of pixels and indicating whether the difference between the intensity values of said corresponding adjacent pair of pixels is positive or negative; (b) determining a skim row of said first delta frame, said skim row being a highest order one of said delta rows less than the order of said sign row which forms a skim row byte having at least one delta bit that is different from a corresponding one of said sign bits of said sign row; (c) determining a first height value associated with said first delta frame, said first height value indicating a number of said delta rows of said first delta frame that are lower order rows than said skim row; (d) generating a second delta frame associated with a second pair of the block columns including said second block column and an adjacent third block column, said second delta frame having said predetermined plurality of delta rows and N delta columns of associated delta bits, each said delta column forming a delta byte having said predetermined plurality of bits and being determined based at least in part on a difference between the intensity values of a corresponding adjacent pair of pixels disposed in a corresponding one of the block rows and in said second and third block columns, each said delta row forming an N-bit row byte, wherein a highest order one of said delta rows is a sign row forming a sign byte having N sign bits each being associated with a corresponding one of said adjacent pairs of pixels and indicating whether the difference between the intensity values of said corresponding adjacent pair of pixels is positive or negative; (e) determining a skim row of said second delta frame, said skim row being a highest order one of said delta rows of said second delta frame less than the order of said sign row which forms a skim row byte having at least one delta bit that is different from a corresponding one of said sign bits of said sign row of said second delta frame; (f) determining a second height value associated with said second delta frame, said second height value indicating a number of delta rows of said second delta frame that are lower order rows than said skim row; (g) determining a height difference value between said first and second height values; (h) determining a Huffman code value associated with said first delta frame based on at least one of said height difference value and said skim row byte of said first delta frame; and (i) performing steps corresponding to steps (d) through (h) for each subsequent one of the block columns to develop compressed data including said Huffman code values.

18

18. A process as recited in claim 17 wherein said step (h) of determining a Huffman code value further comprises: determining a dictionary element by concatenating said skim row byte of said first delta frame and said height difference value; and using said dictionary element to reference a Huffman code table to determine said Huffman code value associated with said first delta frame.

19

19. A process as recited in claim 18 wherein: said step (c) of determining a first height value associated with said first delta frame includes recording the delta bit values of said delta rows of said first delta frame that are lower order rows than said skim row of said first delta frame; and said step (f) of determining a second height value associated with said second delta frame includes recording the delta bit values of said delta rows of said second delta frame that are lower order rows than said skim row of said second delta frame; said recorded delta bits being literally encoded within said compressed data.

20

20. A process as recited in claim 17 wherein said step (b) of determining a skim row of said first delta frame includes, determining a number of duplicate rows of said first delta frame, each duplicate row being a higher order row than said skim row and a lower order row than said sign row of said first delta frame, and recording information indicative of said number of duplicate rows of said first delta frame; and said step (e) of determining a skim row of said second delta frame includes, determining a number of duplicate rows of said second delta frame, each duplicate row being a higher order row than said skim row and a lower order row than said sign row of said second delta frame, and recording information indicative of said number of duplicate rows of said second delta frame.

21

21. A process as recited in claim 17 wherein said predetermined plurality of delta rows includes at least X delta rows.

22

22. A process as recited in claim 17 wherein said step (a) of generating a first delta frame comprises: determining a first word value by concatenating each of said X-bit intensity values of the pixels of said first block column; determining a second word value by concatenating each of the X-bit intensity values of the pixels of said second block column; determining a delta word value by subtracting the second word value from the first word value; and subdividing the delta word value into a plurality of N X-bit delta values each providing one of a plurality of delta bytes of said first delta frame.

23

23. A machine readable storage device having stored therein encoding instructions for executing a process of compressing a two dimensional array of data in the form of a pixel map including an array of pixels having at least one array block having a plurality of block rows and a plurality of block columns of the pixels, each pixel having at least one associated intensity value, comprising: generating a delta frame associated with a pair of the block columns, said delta frame having a plurality of delta rows and delta columns of delta bits, one of said delta rows being a highest order row; determining a number of duplicate ones of said delta rows, each of said duplicate rows forming an identical row byte value having delta bits which have a predetermined relationship with the delta bits of said highest order row; recording information indicative of said number of duplicate rows; and developing compressed data including said information indicative of said number of duplicate rows of said delta frame.

24

24. A machine readable storage device as recited in claim 23 wherein determining a number of duplicate rows includes determining a skim one of said delta rows of said delta frame, said skim row being a highest order one of said delta rows less than the order of said highest order row and forming a skim row byte having at least one delta bit that is different from a corresponding one of said delta bits of said highest order row, each of said duplicate rows being of an order which is lower than the order of said highest order row and higher than the order of said skim row.

25

25. A machine readable storage device as recited in claim 23 wherein said highest order delta row is a sign row forming a sign byte having a plurality of sign bits each being associated with a corresponding one of said adjacent pairs of pixels and indicating whether the difference between the intensity values of said corresponding adjacent pair of pixels is positive or negative, and wherein each of the delta bits of each said duplicate row is equal to an associated one of said sign bits.

26

26. A machine readable storage device as recited in claim 25 wherein determining a number of duplicate rows includes determining a skim one of said delta rows of said delta frame, said skim row being a highest order one of said delta rows less than the order of said sign row and forming a skim row byte having at least one delta bit that is different from a corresponding one of said sign bits of said sign row, each of said duplicate rows being of an order which is lower than the order of said sign row and higher than the order of said skim row.

27

27. A machine readable storage device as recited in claim 26 wherein recording information indicative of said number of duplicate rows includes determining and recording information indicative of a height value indicating a number of delta rows of said delta frame that are lower order rows than said skim row.

28

28. A machine readable storage device as recited in claim 27 wherein said delta frame is a first delta frame associated with a first pair of the block columns and wherein said height value is a first height value, the process further comprising: generating a second delta frame associated with a second pair of the block columns, said delta frame having a plurality of delta rows and delta columns of delta bits, each said delta column forming a delta byte indicating a difference between the intensity values of a corresponding adjacent pair of pixels disposed in said second pair of block columns, one of said delta rows being a highest order row of said second delta frame; determining a skim row of said second delta frame, said skim row being a highest order one of said delta rows less than the order of said sign row of said second delta frame and forming a skim row byte having at least one delta bit that is different from a corresponding one of said sign bits of said sign row of said second delta frame; and determining a second height value indicating a number of delta rows of said second delta frame that are lower order rows than said skim row; wherein recording information indicative of said number of duplicate rows of said first delta frame further includes, determining a height difference value between said first and second height values, determining a Huffman code value associated with said first delta frame based on at least one of said height difference value and said skim row byte of said first delta frame, and recording said Huffman code value.

29

29. A machine readable storage device as recited in claim 28 wherein each said delta byte formed by an associated delta column is determined by determining a difference between the intensity values of a corresponding adjacent pair of pixels disposed in said pair of block columns.

30

30. A machine readable storage device as recited in claim 23 wherein said pair of the block columns includes a first block column and a second block column of pixels, and wherein generating a delta frame comprises: determining a first word value by concatenating each of said intensity values of the pixels of said first block column; determining a second word value by concatenating each of the intensity values of the pixels of said second block column; determining a delta word value by subtracting the second word value from the first word value; and subdividing the delta word value into a plurality of X-bit delta values each providing an associated one of a plurality of delta bytes of said delta frame.

31

31. A system for compressing a two dimensional array of data in the form of a pixel map including an array of pixels having at least one array block having a plurality of block rows and a plurality of block columns of the pixels, each pixel having at least one associated intensity value, comprising: means for generating a delta frame associated with a pair of the block columns, said delta frame having a plurality of delta rows and delta columns of delta bits, one of said delta rows being a highest order row; means for determining a number of duplicate ones of said delta rows, each of said duplicate rows forming an identical row byte value having delta bits which have a predetermined relationship with the delta bits of said highest order row; means for recording information indicative of said number of duplicate rows; and means for developing compressed data including said information indicative of said number of duplicate rows of said delta frame.

32

32. A system as recited in claim 31 wherein said means for determining a number of duplicate rows includes means for determining a skim one of said delta rows of said delta frame, said skim row being a highest order one of said delta rows less than the order of said highest order row and forming a skim row byte having at least one delta bit that is different from a corresponding one of said delta bits of said highest order row, each of said duplicate rows being of an order which is lower than the order of said highest order row and higher than the order of said skim row.

33

33. A system as recited in claim 31 wherein said highest order delta row is a sign row forming a sign byte having a plurality of sign bits each being associated with a corresponding one of said adjacent pairs of pixels and indicating whether the difference between the intensity values of said corresponding adjacent pair of pixels is positive or negative, and wherein each of the delta bits of each said duplicate row is equal to an associated one of said sign bits.

34

34. A system as recited in claim 33 wherein said means for determining a number of duplicate rows includes means for determining a skim one of said delta rows of said delta frame, said skim row being a highest order one of said delta rows less than the order of said sign row and forming a skim row byte having at least one delta bit that is different from a corresponding one of said sign bits of said sign row, each of said duplicate rows being of an order which is lower than the order of said sign row and higher than the order of said skim row.

35

35. A system as recited in claim 34 wherein said means for recording information indicative of said number of duplicate rows includes determining and recording information indicative of a height value indicating a number of delta rows of said delta frame that are lower order rows than said skim row.

36

36. A system as recited in claim 35 wherein said delta frame is a first delta frame associated with a first pair of the block columns and wherein said height value is a first height value, the system further comprising: means for generating a second delta frame associated with a second pair of the block columns, said second delta frame having a plurality of delta rows and delta columns of delta bits, each said delta column forming a delta byte indicating a difference between the intensity values of a corresponding adjacent pair of pixels disposed in said second pair of block columns, one of said delta rows being a highest order row of said second delta frame; means for determining a skim row of said second delta frame, said skim row being a highest order one of said delta rows less than the order of said sign row of said second delta frame and forming a skim row byte having at least one delta bit that is different from a corresponding one of said sign bits of said sign row of said second delta frame; and means for determining a second height value indicating a number of delta rows of said second delta frame that are lower order rows than said skim row; wherein said means for recording information indicative of said number of duplicate rows of said first delta frame further includes, means for determining a height difference value between said first and second height values, means for determining a Huffman code value associated with said first delta frame based on at least one of said height difference value and said skim row byte of said first delta frame, and means for recording said Huffman code value.

37

37. A system as recited in claim 36 wherein each said delta byte formed by an associated delta column is determined by determining a difference between the intensity values of a corresponding adjacent pair of pixels disposed in said pair of block columns.

38

38. A system as recited in claim 31 wherein said pair of block columns includes a first block column and a second block column of pixels, and wherein said means for generating a delta frame comprises: means for determining a first word value by concatenating each of said intensity values of the pixels of said first block column; means for determining a second word value by concatenating each of the intensity values of the pixels of said second block column; means for determining a delta word value by subtracting the second word value from the first word value; and means for subdividing the delta word value into a plurality of X-bit delta values each providing an associated one of a plurality of delta bytes of said delta frame.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

August 19, 2002

Publication Date

September 20, 2005

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Skim encoding method for compression of a two dimensional array of data” (US-6947606). https://patentable.app/patents/US-6947606

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.