![]() |
BitJazz Developer Support Can BitJazz compress 16-bit data?
Yes. BitJazz compression is always perfectly lossless. Lossless image compression is a way of squeezing all the information of an image into less space in such a way that the decompressed image is bit-for-bit identical with the original uncompressed image. BitJazz is the best lossless compressor for photo-quality images. Lossy image compression is a way of throwing away visually less-important information of an image and squeezing the rest into less space in such a way that the decompressed image is a good approximation of the original uncompressed image. Specifically, the image will still be the same size as the original, but the colors of the pixels will have changed. The more information you're willing to throw away, the more you can compress the image. Throw away all the information, and you'll be left with a blank image. JPEG is one of the best lossy image compressors.
The average compression ratio the BitJazz engine attains for photo-quality images, as verified with a standard set of test images donated to research by Kodak, is 2.5:1. See the statistics page for details.
Using the default tile size of 256 by 256 pixels, the maximum compression ratio the BitJazz engine can attain for large RGB images is a little over 1300:1, when each tile is a solid color. For photo-quality images, the compression ratio is rarely above 10:1.
The minimum compression ratio in PhotoJazz files, allowing for a few bytes of header information per tile and per image, is 1:1. Unlike some compression algorithms, such as TIFF-LZW and PICT's PackBits algorithm, the BitJazz engine never increases an image's file size. Compression ratio is the size of the uncompressed (raw) image divided by the size of the compressed image.
You can calculate the size of the raw, uncompressed image by multiplying the image's width (in pixels) by its height (in pixels) by the number of channels (e.g. 3 for RGB). In Photoshop, you can determine the width and height of the image by selecting Image > Image Size . Photoshop files generally contain a lot of other information in addition to the actual image. To get an accurate measurement of the compressed or uncompressed image file size, you need to exclude this extraneous information. To save just the image data in Adobe Photoshop, select File > Save A Copy , and check the Exclude Non-Image Data box. Note that this option is not available in the File > Save As dialog. To measure the compressed size, again select File > Save A Copy and check the Exclude Non-Image Data box, but this time set the Format pop-up menu to PhotoJazz, and click Save. In the Finder on the Macintosh, select the PhotoJazz file just created, and select File > Get Info . The Size field in the Get Info dialog tells you first the approximate size, and then, in parentheses, the exact size of the file in bytes. BitJazz is fast. On a 266MHz G3 Power Macintosh, BitJazz compresses about a million samples per second including disk i/o.
BitJazz compresses images one tile at a time, so it uses very little memory, and its memory usage does not increase for larger images.
BitJazz supports spectral light (RGB, monochrome, and multispectral), process ink (grayscale, CMYK, and high-fidelity), multitone (monotone/duotone/tritone/quadtone), and CIE L*a*b* color models.
Yes. BitJazz supports any number of alpha channels for transparency masks, opacity masks, or any other ancillary image data for all color models.
Yes. BitJazz supports any number of spot colors in addition to process inks.
Yes. BitJazz supports embedded application-specific private data chunks that can contain any non-image data.
Yes. BitJazz supports embedded ICC profiles for cross-platform color management.
Yes. Every bit in a compressed BitJazz image is safeguarded by CRC data integrity verification to detect errors in storage or transmission. Yes. BitJazz outputs and inputs all compressed image data in sequential order through a portable stream interface. The stream can be a file, part of a file, a socket, or a memory array. Yes. BitJazz supports tiles of arbitrary size. Larger tiles generally yield better compression, but require more memory. The default tile size is 256x256 pixels.
Yes. Because BitJazz uses tiling and streaming, it can compress images of arbitrary size.
Currently, BitJazz can compress up to 255 channels at once.
Yes. Version 2 of the BitJazz engine can compress 16-bit data.
Currently, you can feed slices of 3-dimensional data to BitJazz either as channels or as independent images. Native 3-dimensional compression support will be added to BitJazz soon.
The PhotoJazz file format is extremely flexible and extensible, and can accept application-specific private data chunks, unlimited additional parameters, and new compression algorithms. Open file-format standards are a mixed blessing. The relatively open JPEG standard currently has 40 different modes (excluding lossless JPEG and JPEG-LS), and most JPEG implementations support only a few of these. Similarly, the almost completely open TIFF standard has so many different flavors that nobody really knows how many variations there are, and no TIFF implementation supports more than a small fraction of the possibilities. To avoid compatibility problems, BitJazz has adopted the modern object-oriented approach in which the contents of the file can only be accessed through an abstract orthogonal procedural interface, while the actual contents of the file are private. There will always be only one implementation of BitJazz, and it will always be complete. Since decompression is free, anyone will always be able to get the latest version of the BitJazz engine and read any PhotoJazz file. An additional benefit of this arrangement is that the BitJazz engine relieves the developer of all internal file-format concerns, including chunking, tagging, parameter ordering, byte reversal, alignment, and CRC computation.
|