PCIDSK (PIX)

Long name PCIDSK
Short name PIX
File name extension .pix

The PCIDSK (PIX) format is fully supported by the GDB library. It is the only format that supports "adding" segments, and one of the few which supports data-description fields to be extracted from and written to the file.

You can perform a variety of database-maintenance operations for PIX files by using the CATALYST Professional File Utility, often found as a Utility command on the File menu of PCI programs, such as CATALYST Professional Focus.

A single PCIDSK file can hold a variety of geospatial data including rasters, bitmaps, vectors, lookup tables (LUT), pseudocolor tables (PCT) and georeferencing information.

To control the raster layout of a PIX file being created, you can use any of the following option strings:

Option string Creates
BAND Band-interleaved file
PIXEL Pixel-interleaved file
FILE PIX file (header) and a separate external file for each raster channel
TILED[nnn] [compression] [ENCRYPT=key] Tiled file

With the TILED option, you can specify a tile size, in pixels, by entering a number [nnn] immediately after the TILED keyword; otherwise, a default tile size of 256 x 256 is applied.

For details about compression, see Compression but four keywords are supported:
  1. JPEG
  2. RLE
  3. QUADTREE
  4. WAVE

If you add the ENCRYPT=key option, the image data for the file remains encrypted, based on the key given. This key must be supplied to unencrypt the data. An example is TILED RLE ENCRYPT=password.

The choice of layout is based primarily on performance:
  • A band-interleaved file stores all of the data for one band together, and gives superior performance when all bands are not being accessed at all times.
  • A pixel-interleaved file stores the data for all bands at a particular pixel together, and may give somewhat improved performance when all bands are being used at once.
  • A file-interleaved file is similar to band-interleaved, but the image-channel data is stored in external files (one file per band).
    Note: If additional bands are added to an existing file-interleaved file, they are added to the PIX file itself.
  • A tiled file has the image organized in many square subimages, and access can be much faster when only a subarea is being extracted, such as when viewing the image. Tiling is also the only layout that supports compression.

Compression

When creating a tiled PIX file, there are four types of compression available:
  1. JPEG[mmm]: a lossy compression technique that is only available for CHN_8U channels. JPEG compression is normally suitable for continuous images such as airphotos. The amount of compression can be influenced by specifying a compression quality value, [mmm], between 1 and 100. When no quality value is specified, a default value of 75 is used. For example, JPEG60 would mean that the resultant PIX file would be, at most, 60% of the size of the uncompressed version.
  2. RLE: is lossless, but provides good compression only with images in which long sequences of pixels have the same value, which is typical of pseudocolored or thematic rasters. It is possible for an RLE-compressed file to be bigger than the uncompressed version.
  3. QUADTREE: a lossless two-dimensional version of RLE, see see Quadtree compression for details.
  4. WAVE[mmm]: JPEG2000 wavelet compression that allows for a compression quality value, [mmm], and can work on a variety of raster bit depths. See WAVE (JPEG2000) compression for further details.

Typically, tiles are stored uncompressed, but if a compression keyword is added (separated by a space), the pixel values in the tiles will be compressed. Example values are TILED, TILED512 JPEG, TILED512 QUADTREE, TILED RLE and TILED512 WAVE100.

WAVE (JPEG2000) compression

The WAVE compression option uses JPEG2000 compression technology. It is available for all raster bit depths except for C32S and C32R. But channels that are greater than 16-bit are first converted to a 16-bit representation before being compressed. This means that it is going to work well only when the range of pixel values within one tile is less than 65,536.

The amount of compression can be influenced by specifying a compression quality value between 1 and 100. When no quality value is specified, a default value of 75 is used. For example, WAVE50 would mean that the resultant PIX file would be, at most, 50% of the size of the uncompressed version. Note that WAVE100 will result in lossless JPEG2000 compression.

PCI saves a NoData mask if a NoData value is known at the time of compression. This NoData mask is to ensure that any pixel that was considered NoData before being written to the file is still considered NoData after it is read from the file. Further, no pixel is set to the NoData value if it was not considered NoData at the time of compression. This is necessary to keep the integrity of the NoData pixels.

A WAVE-compressed file is guaranteed to be smaller than the uncompressed version.

Note: PIX files created with this WAVE option will not be readable by third-party tools or versions of PCI software released before September 2020.

Quadtree compression

Each channel in a GDB PIX file can be a quadtree-compressed image at different quad levels.

Although Quadtree compression is lossless, it provides good compression only with images in which large regions of pixels have the same value, which is typical of pseudocolored or thematic images. The tile is compressed based on the pixel value and regions of pixels with the same value. The compression technique stores only the number of bits required to store the maximum pixel value in a tile. For example, a tile with a maximum pixel value of 1 stores only 1 bit for the pixel value.

The quadtree-encoding process continually divides the tile by a factor of two in both the x and y directions until the quadtree cell is a homogeneous value or a quadtree cell represents one raster pixel:
  • A tile with zero divisions is a quadtree level of 0
  • A tile divided into four cells is a level of 1
  • A tile divided into 16 cells is a level of 2
  • A tile of size 256 by 256 has a quadtree level of 8
  • A tile of size 512 by 512 has a quadtree level of 9
  • A tile of size 1024 by 1024 has a quadtree level of 10
Note: Because GDB loads individual tiles into memory, a large tile size is not advisable.
Restrictions on quadtree compression:
  • Quadtree compression is limited to unsigned integral data types, such as CHN_8U and CHN_16U.
  • The size of a square tile is restricted to a power of two.

© PCI Geomatics Enterprises, Inc.®, 2022. All rights reserved.