Claims
- 1. A method of processing a graphic image, comprising:
dividing an image data array comprising the graphic image into blocks, wherein a majority of the blocks have a predefined fixed size; and independently, losslessly encoding each of the blocks and storing each respective encoded block in a separate, respective data structure.
- 2. A method of processing a graphic image, comprising:
dividing an image data array comprising the graphic image into blocks, wherein a majority of the blocks have a predefined fixed size; and generating a plurality of encoded blocks by independently processing each block of a plurality of the blocks to produce a corresponding encoded block by:
applying a plurality of distinct lossless encodings to the block to produce an equal plurality of distinct encoded block versions; selecting as the encoded block one of the plurality of distinct encoded block versions in accordance with predefined selection criteria; and storing each encoded block in a distinct data structure.
- 3. The method of claim 2, including storing in a header of each encoded block an encoding type identifier that identifies the encoding of the encoded block.
- 4. The method of claim 3, wherein the graphic image is stored in GIF format image file, and a first one of the plurality of distinct encodings includes remapping original pixel values in the block into remapped pixel values in accordance with a histogram mapping method and encoding the remapped pixel values using a nested quadratic splitting method.
- 5. The method of claim 4, wherein encoding the remapped pixel values using a nested quadratic splitting method includes encoding differential bit depth values using a Huffman coding table.
- 6. The method of claim 4, including storing in the header of each encoded block that is encoded using the first distinct encoding a remapping table that includes pixel value mapping information for mapping the remapped pixel values back to their respective original pixel values.
- 7. The method of claim 3, wherein at least a first one of the plurality of distinct encodings includes remapping original pixel values in the block into remapped pixel values in accordance with a histogram mapping method and storing in the header of each encoded block that is encoded using the first distinct encoding a remapping table that includes pixel value mapping information for mapping the remapped pixel values back to their respective original pixel values.
- 8. The method of claim 2, wherein the graphic image is stored in a GIF format image file, and a first one of the plurality of distinct encodings includes remapping pixel values in accordance with a histogram mapping method and encoding the remapped pixel values using run length coding method.
- 9. The method of claim 2, wherein a first one of the plurality of distinct encodings includes remapping pixel values in accordance with a histogram mapping method and encoding the remapped pixel values using an encoding method based on how many distinct pixel values are included in the block, such that the encoded remapped pixel values have a bit length determined by the number of distinct pixel values in the block.
- 10. The method of claim 2, wherein the graphic image is stored in a GIF format image file, and a first one of the plurality of distinct encodings is the GIF format, and at least one of the blocks is selected to be encoded in the GIF format.
- 11. The method of claim 2, wherein a first one of the plurality of distinct encodings is a predefined GIF encoding format, at least one of the blocks is selected to be encoded in the GIF encoding format.
- 12. The method of claim 11, wherein at least one of the blocks is selected to be encoded in the GIF encoding format, and at least one of the blocks is selected to be encoded in another one of the plurality of distinct lossless encodings.
- 13. The method of claim 2, including
transmitting a plurality of the encoded blocks to a device; at the device, receiving and decoding each respective transmitted encoded block in accordance with the one of the plurality of distinct lossless encodings used to encode the encoded block; and at the device, displaying at least a portion of the decoded blocks.
- 14. The method of claim 2, including
transmitting a plurality of the encoded blocks to a device; at the device, receiving and decoding each respective transmitted encoded block in accordance with the one of the plurality of distinct lossless encodings used to encode the encoded block; and at the device, combining at least one of the decoded blocks with data representing a natural image to produce combined data representing a combined graphic and natural image, and then displaying at least a portion of the combined graphic and natural image.
- 15. The method of claim 2, including
transmitting to a device an encoded block of the plurality of encoded blocks; at the device, receiving and decoding the transmitted encoded block in accordance with the one of the plurality of distinct lossless encodings used to encode the encoded block; and at the device, displaying at least a portion of the decoded block.
- 16. The method of claim 2, including
transmitting to a device an encoded block of the plurality of encoded blocks; at the device, receiving and decoding the transmitted encoded block in accordance with the one of the plurality of distinct lossless encodings used to encode the encoded block; and at the device, combining the decoded block with data representing a natural image to produce combined data representing a combined graphic and natural image, and then displaying at least a portion of the combined graphic and natural image.
- 17. The method of claim 2, including
transmitting a plurality of the encoded blocks to a device; at the device, receiving and decoding each respective transmitted encoded block in accordance with the one of the plurality of distinct lossless encodings used to encode the encoded block; and at the device, applying an image transformation function to at least one of the decoded blocks to produce transformed data representing a transformed image, and then displaying at least a portion of the transformed image.
- 18. A method of processing a graphic image, comprising:
dividing a first image data array comprising the graphic image at a first resolution level into a first set of blocks, wherein a majority of the blocks in the first set of blocks have a first predefined block size; independently, losslessly encoding each of the blocks in the first set of blocks to produce a first set of encoded blocks, and storing each respective encoded block in the first set of encoded blocks in a separate, respective data structure; dividing a second image data array comprising the graphic image at a second resolution level into a second set of blocks, wherein a majority of the blocks in the second set of blocks have a second predefined block size; independently, losslessly encoding each of the blocks in the second set of blocks to produce a second set of encoded blocks, and storing each respective encoded block in the second set of encoded blocks in a separate, respective data structure; and storing in a data structure zoom out linkage information, linking a first block in the first set of encoded blocks to a corresponding lower resolution encoded block in the second set of encoded blocks, and zoom in linkage information linking a second block in the second set of encoded blocks to a corresponding higher resolution encoded block in the first set of blocks; wherein
the first resolution level is a higher resolution level than the second resolution level and the first set of encoded blocks represent portions of the graphic image at higher resolution than portions of the graphic image represented by the second set of encoded blocks, and the zoom out linkage information and zoom in linkage information facilitate zoom out and zoom in operations.
- 19. The method of claim 18, including
transmitting the first encoded block of the first set of encoded blocks to a device; at the device, receiving and decoding the first encoded block and displaying at least a portion of the decoded block; at the device, performing a zoom out operation, including requesting the lower resolution encoded block in the second set of encoded blocks that is linked to the first encoded block by the zoom out linkage information, receiving the requested lower resolution encoded block, decoding the lower resolution encoded block, and displaying at least a portion of the lower resolution encoded block.
- 20. The method of claim 19, including
dividing a third image data array comprising the graphic image at a third resolution level into a third set of blocks, wherein a majority of the blocks in the third set of blocks have a third predefined block size; independently, losslessly encoding each of the blocks in the third set of blocks to produce a third set of encoded blocks, and storing each respective encoded block in the third set of encoded blocks in a separate, respective data structure; and storing in the data structure additional zoom in linkage information, linking the first block in the first set of encoded blocks to a corresponding higher resolution encoded block in the third set of encoded blocks; and at the device, performing a zoom in operation, including requesting the higher resolution encoded block in the third set of encoded blocks that is linked to the first encoded block by the zoom in linkage information, receiving the requested higher resolution encoded block, decoding the higher resolution encoded block, and displaying at least a portion of the higher resolution encoded block;
wherein the third resolution level is a higher resolution level than the first resolution level and the third set of encoded blocks represent portions of the graphic image at higher resolution than portions of the graphic image represented by the first set of encoded blocks.
- 21. A method of processing an graphic image file, encoded using a first predefined run-length based or pattern based encoding method, the graphic image file representing a graphic image, the method, comprising:
decoding the graphic image file to produce an image data array; dividing the image data array into blocks, wherein a majority of the blocks have a predefined fixed size; independently processing each block of a plurality of the blocks to produce a corresponding encoded block by remapping pixel values in accordance with a histogram mapping method and encoding the remapped pixel values using an lossless encoding method based on how many distinct pixel values are included in the block, such the encoded remapped pixel values have a bit length determined, at least in part, by the number of distinct pixel values in the block; and storing each encoded block in a distinct data structure.
- 22. A method of processing an graphic image file, encoded using a first predefined run-length based or pattern based encoding method, the graphic image file representing a graphic image, the method, comprising:
decoding the graphic image file to produce an image data array; dividing the image data array into blocks, wherein a majority of the blocks have a predefined fixed size; generating a plurality of encoded blocks by independently processing each block of a plurality of the blocks to produce a corresponding encoded block by:
applying a plurality of distinct lossless encodings to the block to produce an equal plurality of distinct encoded block versions; selecting as the encoded block one of the plurality of distinct encoded block versions in accordance with predefined selection criteria; and storing each encoded block in a distinct data structure.
- 23. The method of claim 22, including storing in a header of each encoded block an encoding type identifier that identifies the encoding of the encoded block.
- 24. The method of claim 23, wherein the graphic image is stored in GIF format image file, and a first one of the plurality of distinct encodings includes remapping original pixel values in the block into remapped pixel values in accordance with a histogram mapping method and encoding the remapped pixel values using a nested quadratic splitting method.
- 25. The method of claim 24, wherein encoding the remapped pixel values using a nested quadratic splitting method includes encoding differential bit depth values using a Huffman coding table.
- 26. The method of claim 24, including storing in the header of each encoded block that is encoded using the first distinct encoding a remapping table that includes pixel value mapping information for mapping the remapped pixel values back to their respective original pixel values.
- 27. The method of claim 23, wherein at least a first one of the plurality of distinct encodings includes remapping original pixel values in the block into remapped pixel values in accordance with a histogram mapping method and storing in the header of each encoded block that is encoded using the first distinct encoding a remapping table that includes pixel value mapping information for mapping the remapped pixel values back to their respective original pixel values.
- 28. The method of claim 22, wherein the graphic image is stored in a GIF format image file, and a first one of the plurality of distinct encodings includes remapping pixel values in accordance with a histogram mapping method and encoding the remapped pixel values using run length coding method.
- 29. The method of claim 22, wherein a first one of the plurality of distinct encodings includes remapping pixel values in accordance with a histogram mapping method and encoding the remapped pixel values using an encoding method based on how many distinct pixel values are included in the block, such that the encoded remapped pixel values have a bit length determined by the number of distinct pixel values in the block.
- 30. The method of claim 22, wherein the graphic image is stored in a GIF format image file, and a first one of the plurality of distinct encodings is the GIF format, and at least one of the blocks is selected to be encoded in the GIF format.
- 31. The method of claim 22, wherein a first one of the plurality of distinct encodings is a predefined GIF encoding format, at least one of the blocks is selected to be encoded in the GIF encoding format.
- 32. The method of claim 31, wherein at least one of the blocks is selected to be encoded in the GIF encoding format, and at least one of the blocks is selected to be encoded in another one of the plurality of distinct lossless encodings.
- 33. The method of claim 22, including
transmitting a plurality of the encoded blocks to a device; at the device, receiving and decoding each respective transmitted encoded block in accordance with the one of the plurality of distinct lossless encodings used to encode the encoded block; and at the device, displaying at least a portion of the decoded blocks.
- 34. The method of claim 22, including
transmitting a plurality of the encoded blocks to a device; at the device, receiving and decoding each respective transmitted encoded block in accordance with the one of the plurality of distinct lossless encodings used to encode the encoded block; and at the device, combining at least one of the decoded blocks with data representing a natural image to produce combined data representing a combined graphic and natural image, and then displaying at least a portion of the combined graphic and natural image.
- 35. The method of claim 22, including
transmitting to a device an encoded block of the plurality of encoded blocks; at the device, receiving and decoding the transmitted encoded block in accordance with the one of the plurality of distinct lossless encodings used to encode the encoded block; and at the device, displaying at least a portion of the decoded block.
- 36. The method of claim 22, including
transmitting to a device an encoded block of the plurality of encoded blocks; at the device, receiving and decoding the transmitted encoded block in accordance with the one of the plurality of distinct lossless encodings used to encode the encoded block; and at the device, combining the decoded block with data representing a natural image to produce combined data representing a combined graphic and natural image, and then displaying at least a portion of the combined graphic and natural image.
- 37. The method of claim 22, including
transmitting a plurality of the encoded blocks to a device; at the device, receiving and decoding each respective transmitted encoded block in accordance with the one of the plurality of distinct lossless encodings used to encode the encoded block; and at the device, applying an image transformation function to at least one of the decoded blocks to produce transformed data representing a transformed image, and then displaying at least a portion of the transformed image.
- 38. A method of processing an image file, encoded using a first predefined run-length based or pattern based encoding method, the method, comprising:
decoding the image file to produce an image data array; dividing the image data array into at least four blocks, wherein a majority of the blocks have a predefined fixed size; and independently processing each block of a plurality of the blocks to produce a corresponding re-encoded block by remapping pixel values in accordance with a histogram mapping method and encoding the remapped pixel values using an lossless encoding method based on how many distinct pixel values are included in the block, such that the bit length of the encoded remapped pixel values is determined, at least in part, by the number of distinct pixel values in the block; and storing each re-encoded block in a distinct data structure.
- 39. A method of processing an graphic image file, encoded using a first predefined run-length or pattern based encoding method, the method, comprising:
decoding the image file to produce an image data array; dividing the image data array into blocks, wherein a majority of the blocks have a predefined fixed size; and independently, losslessly re-encoding each of the blocks and storing each respective re-encoded block in a separate, respective data structure; where the re-encoding of each respective block uses a respective encoding method that is distinct from the first predefined encoding method.
- 40. A computer program product for use in conjunction with a computer system, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:
an encoding module for dividing a graphic image comprising an image data array into blocks, wherein a majority of the blocks have a predefined fixed size and for encoding at least a plurality of the blocks, the encoding module including instructions for independently processing each block of a plurality of the blocks to produce a corresponding encoded block by:
applying a plurality of distinct lossless encodings to the block to produce an equal plurality of distinct encoded block versions; selecting as the encoded block one of the plurality of distinct encoded block versions in accordance with predefined selection criteria; and storing each encoded block in a distinct data structure
- 41. The computer program product of claim 40, wherein the encoding module includes instructions for storing in a header of each encoded block an encoding type identifier that identifies the encoding of the encoded block.
- 42. The computer program product of claim 41, wherein the image file is a GIF format image file, and a first one of the plurality of distinct encodings includes remapping original pixel values in the block into remapped pixel values in accordance with a histogram mapping method and encoding the remapped pixel values using a nested quadratic splitting method.
- 43. The computer program product of claim 42, wherein encoding module includes instructions for encoding the remapped pixel values using a nested quadratic splitting method that include encoding differential bit depth values using a Huffman coding table.
- 44. The computer program product of claim 42, wherein the encoding module includes instructions for storing in the header of each encoded block that is encoded using the first distinct encoding a remapping table that includes pixel value mapping information for mapping the remapped pixel values back to their respective original pixel values.
- 45. The computer program product of claim 41, wherein at least a first one of the plurality of distinct encodings includes remapping original pixel values in the block into remapped pixel values in accordance with a histogram mapping method and storing in the header of each encoded block that is encoded using the first distinct encoding a remapping table that includes pixel value mapping information for mapping the remapped pixel values back to their respective original pixel values.
- 46. The computer program product of claim 40, wherein the graphic image is a GIF format image file, and a first one of the plurality of distinct encodings includes remapping pixel values in accordance with a histogram mapping method and encoding the remapped pixel values using run length coding method.
- 47. The computer program product of claim 40, wherein a first one of the plurality of distinct encodings includes remapping pixel values in accordance with a histogram mapping method and encoding the remapped pixel values using an encoding method based on how many distinct pixel values are included in the block, such that the encoded remapped pixel values have a bit length determined by the number of distinct pixel values in the block.
- 48. The computer program product of claim 40, including
a server module for transmitting to a client device a plurality of the encoded blocks; a client module, for use in the client device, for receiving and decoding each respective transmitted encoded block in accordance with the one of the plurality of distinct lossless encodings used to encode the encoded block.
- 49. The computer program product of claim 40, including
a server module for transmitting to a client device a plurality of the encoded blocks; a client module, for use in the client device, for receiving and decoding each respective transmitted encoded block in accordance with the one of the plurality of distinct lossless encodings used to encode the encoded block; and at the device, combining at least one of the decoded blocks with data representing a natural image to produce combined data representing a combined graphic and natural image, and then displaying at least a portion of the combined graphic and natural image.
- 50. The computer program product of claim 40, including
a server module for transmitting to a client device an encoded block of the plurality of the encoded blocks'a client module, for use in the client device, for receiving and decoding the transmitted encoded block in accordance with the one of the plurality of distinct lossless encodings used to encode the encoded block.
- 51. The computer program product of claim 40, including
a server module for transmitting to a client device an encoded block of the plurality of the encoded blocks; a client module, for use in the client device, for receiving and decoding the transmitted encoded block in accordance with the one of the plurality of distinct lossless encodings used to encode the encoded block; and for combining the decoded block with data representing a natural image to produce combined data representing a combined graphic and natural image.
- 52. The computer program product of claim 40, including
a server module for transmitting to a client device a plurality of the encoded blocks; a client module, for use in the client device, for receiving and decoding each respective transmitted encoded block in accordance with the one of the plurality of distinct lossless encodings used to encode the encoded block; and for applying an image transformation function to at least one of the decoded blocks to produce transformed data representing a transformed image, and then displaying at least a portion of the transformed image.
- 53. A computer program product for use in conjunction with a computer system, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:
an encoding module including instructions for:
dividing a first image data array comprising a graphic image at a first resolution level into a first set of blocks, wherein a majority of the blocks in the first set of blocks have a first predefined block size; independently, losslessly encoding each of the blocks in the first set of blocks to produce a first set of encoded blocks, and storing each respective encoded block in the first set of encoded blocks in a separate, respective data structure; dividing a second image data array comprising the graphic image at a second resolution level into a second set of blocks, wherein a majority of the blocks in the second set of blocks have a second predefined block size; independently, losslessly encoding each of the blocks in the second set of blocks to produce a second set of encoded blocks, and storing each respective encoded block in the second set of encoded blocks in a separate, respective data structure; and storing in a data structure zoom out linkage information, linking a first block in the first set of encoded blocks to a corresponding lower resolution encoded block in the second set of encoded blocks, and zoom in linkage information linking a second block in the second set of encoded blocks to a corresponding higher resolution encoded block in the first set of blocks; wherein
the first resolution level is a higher resolution level than the second resolution level and the first set of encoded blocks represent portions of the graphic image at higher resolution than portions of the graphic image represented by the second set of encoded blocks, and the zoom out linkage information and zoom in linkage information facilitate zoom out and zoom in operations.
- 54. The computer program product of claim 53, including
a server module for transmitting the first encoded block of the first set of encoded blocks to a device; a client module, for use in a client device, for receiving and decoding the first encoded block and displaying at least a portion of the decoded block, and for performing a zoom out operation, by obtaining the lower resolution encoded block in the second set of encoded blocks that is linked to the first encoded block by the zoom out linkage information, decoding the lower resolution encoded block, and displaying at least a portion of the lower resolution encoded block.
- 55. The computer program product of claim 54, wherein
the encoder module includes instructions for:
dividing a third image data array comprising the graphic image at a third resolution level into a third set of blocks, wherein a majority of the blocks in the third set of blocks have a third predefined block size; independently, losslessly encoding each of the blocks in the third set of blocks to produce a third set of encoded blocks, and storing each respective encoded block in the third set of encoded blocks in a separate, respective data structure; and storing in the data structure additional zoom in linkage information, linking the first block in the first set of encoded blocks to a corresponding higher resolution encoded block in the third set of encoded blocks; and the client module includes instructions for performing a zoom in operation, including instructions for obtaining the higher resolution encoded block in the third set of encoded blocks that is linked to the first encoded block by the zoom in linkage information, decoding the higher resolution encoded block, and displaying at least a portion of the higher resolution encoded block;
wherein the third resolution level is a higher resolution level than the first resolution level and the third set of encoded blocks represent portions of the graphic image at higher resolution than portions of the graphic image represented by the first set of encoded blocks.
- 56. A computer program product for use in conjunction with a computer system, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:
an re-encoding module including instructions for:
decoding a graphic image file to produce an image data array, the graphic image file having previously been encoded using a first predefined run-length based or pattern based encoding method, the graphic image file representing a graphic image; dividing the image data array into blocks, wherein a majority of the blocks have a predefined fixed size; independently processing each block of a plurality of the blocks to produce a corresponding encoded block by remapping pixel values in accordance with a histogram mapping method and encoding the remapped pixel values using an lossless encoding method based on how many distinct pixel values are included in the block, such the encoded remapped pixel values have a bit length determined, at least in part, by the number of distinct pixel values in the block; and storing each encoded block in a distinct data structure.
- 57. A computer program product for use in conjunction with a computer system, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:
an re-encoding module including instructions for:
decoding a graphic image file to produce an image data array; the graphic image file having previously been encoded using a first predefined run-length based or pattern based encoding method, the graphic image file representing a graphic image; dividing the image data array into blocks, wherein a majority of the blocks have a predefined fixed size; generating a plurality of encoded blocks by independently processing each block of a plurality of the blocks to produce a corresponding encoded block by:
applying a plurality of distinct lossless encodings to the block to produce an equal plurality of distinct encoded block versions; selecting as the encoded block one of the plurality of distinct encoded block versions in accordance with predefined selection criteria; and storing each encoded block in a distinct data structure.
- 58. The computer program product of claim 57, the re-encoding module including instructions for storing in a header of each encoded block an encoding type identifier that identifies the encoding of the encoded block.
- 59. The computer program product of claim 58, wherein the graphic image is stored in GIF format image file, and a first one of the plurality of distinct encodings includes remapping original pixel values in the block into remapped pixel values in accordance with a histogram mapping method and encoding the remapped pixel values using a nested quadratic splitting method.
- 60. The computer program product of claim 59, wherein encoding the remapped pixel values using a nested quadratic splitting method includes encoding differential bit depth values using a Huffman coding table.
- 61. The computer program product of claim 59, wherein the encoding module includes instructions for storing in the header of each encoded block that is encoded using the first distinct encoding a remapping table that includes pixel value mapping information for mapping the remapped pixel values back to their respective original pixel values.
- 62. The computer program product of claim 58, wherein at least a first one of the plurality of distinct encodings includes remapping original pixel values in the block into remapped pixel values in accordance with a histogram mapping method and storing in the header of each encoded block that is encoded using the first distinct encoding a remapping table that includes pixel value mapping information for mapping the remapped pixel values back to their respective original pixel values.
- 63. The computer program product of claim 57, wherein the graphic image is stored in a GIF format image file, and a first one of the plurality of distinct encodings includes remapping pixel values in accordance with a histogram mapping method and encoding the remapped pixel values using run length coding method.
- 64. The computer program product of claim 57, wherein a first one of the plurality of distinct encodings includes remapping pixel values in accordance with a histogram mapping method and encoding the remapped pixel values using an encoding method based on how many distinct pixel values are included in the block, such that the encoded remapped pixel values have a bit length determined by the number of distinct pixel values in the block.
- 65. The computer program product of claim 57, wherein the graphic image is stored in a GIF format image file, and a first one of the plurality of distinct encodings is the GIF format, and at least one of the blocks is selected to be encoded in the GIF format.
- 66. The computer program product of claim 57, wherein a first one of the plurality of distinct encodings is a predefined GIF encoding format, at least one of the blocks is selected to be encoded in the GIF encoding format.
- 67. The computer program product of claim 66, wherein at least one of the blocks is selected to be encoded in the GIF encoding format, and at least one of the blocks is selected to be encoded in another one of the plurality of distinct lossless encodings.
- 68. The computer program product of claim 57, including
a server module for transmitting to a client device a plurality of the encoded blocks; a client module, for use in the client device, for receiving and decoding each respective transmitted encoded block in accordance with the one of the plurality of distinct lossless encodings used to encode the encoded block.
- 69. The computer program product of claim 57, including
a server module for transmitting to a client device a plurality of the encoded blocks; a client module, for use in the client device, for receiving and decoding each respective transmitted encoded block in accordance with the one of the plurality of distinct lossless encodings used to encode the encoded block, for combining at least one of the decoded blocks with data representing a natural image to produce combined data representing a combined graphic and natural image, and then displaying at least a portion of the combined graphic and natural image.
- 70. The computer program product of claim 57, including
a server module for transmitting to a client device a plurality of the encoded blocks; a client module, for use in the client device, for receiving and decoding the transmitted encoded block in accordance with the one of the plurality of distinct lossless encodings used to encode the encoded block.
- 71. The computer program product of claim 57, including
a server module for transmitting to a client device an encoded block of the plurality of encoded blocks; a client module, for use in the client device, for receiving and decoding the transmitted encoded block in accordance with the one of the plurality of distinct lossless encodings used to encode the encoded block, and for combining the decoded block with data representing a natural image to produce combined data representing a combined graphic and natural image, and then displaying at least a portion of the combined graphic and natural image.
- 72. The computer program product of claim 57, including
a server module for transmitting to a client device a plurality of the encoded blocks; a client module, for use in the client device, receiving and decoding each respective transmitted encoded block in accordance with the one of the plurality of distinct lossless encodings used to encode the encoded block, and for applying an image transformation function to at least one of the decoded blocks to produce transformed data representing a transformed image, and then displaying at least a portion of the transformed image.
- 73. A computer program product for use in conjunction with a computer system, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:
a re-encoding module including instructions for:
decoding a graphic image file to produce an image data array, the graphic image file having previously been encoded using a first predefined run-length based or pattern based encoding method, the graphic image file representing a graphic image; dividing the image data array into at least four blocks, wherein a majority of the blocks have a predefined fixed size; and independently processing each block of a plurality of the blocks to produce a corresponding re-encoded block by remapping pixel values in accordance with a histogram mapping method and encoding the remapped pixel values using an lossless encoding method based on how many distinct pixel values are included in the block, such that the bit length of the encoded remapped pixel values is determined, at least in part, by the number of distinct pixel values in the block; and storing each re-encoded block in a distinct data structure.
- 74. A computer program product for use in conjunction with a computer system, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:
a re-encoding module including instructions for:
decoding a graphic image file to produce an image data array, the graphic image file having previously been encoded using a first predefined run-length based or pattern based encoding method, the graphic image file representing a graphic image; dividing the image data array into blocks, wherein a majority of the blocks have a predefined fixed size; and independently, losslessly re-encoding each of the blocks and storing each respective re-encoded block in a separate, respective data structure; where the re-encoding of each respective block uses a respective encoding method that is distinct from the first predefined encoding method.
Parent Case Info
[0001] This application claims priority on U.S. provisional patent application 60/271,171, filed Feb. 23, 2001, which is hereby incorporated by reference in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60271171 |
Feb 2001 |
US |