Alternative University

Computer Science

Raster Image Storage

Higher Precision Extended Range

XRH File Format 2.0

The XRH file format (with  .xrh  file name extension) is a simple standard royalties-free file format for storing and archiving extended range raster image data. 

XRH stores higher precision extended range still images.  The images could be any spatially correlated rectangular raster data, such as photographs, or geographic elevation data, etc. Each image contains one or more channels (also called image planes or components).

Extended range (XR) images are images that store more than 8 bits per channel. XRH files store images that are 32 bits or 64 bits per channel. Each value (sample) stored in a channel in an XRH file is a floating point number (FLOAT32 or FLOAT64).

In an XRH file, each channel of floating point numbers is stored compressed. The following compression formats are supported for each channel in this version of the XRH file format specification:

  • Zebra lossless compression
  • SZMOD lossy compression
  • ZFP lossy compression
  • Porcupine lossless compression

Zebra is a lossless compression method using ZST o to store Byte Channels of 32-bit or 64-bit samples: four Byte Channels per 32-bit image channel, or eight Byte Channels per 64-bit image channel.

SZMOD is a lossy compression method. It is a modular port of the SZ 2.1 compression method that uses 2nd-order Lorenzo prediction.

“we successfully leverage adaptive parameter optimization techniques with a series of optimization strategies on data prediction, which can significantly improve the compression quality for SZ with the same level of data distortion.”
Kai Zhao, Sheng Di, et al., HPDC ’20, June 23–26, 2020, Stockholm, Sweden [DOI]

ZFP is an optional lossy compression method that is block oriented. It offers less compressibility, but allows random access that may be useful for dynamic purposes:

“Our approach is inspired by fixed-rate texture compression methods widely adopted in graphics hardware, but has been tailored to the high dynamic range and precision demands of scientific applications.”
Peter Lindstrom, “Fixed-Rate Compressed Floating-Point Arrays”

Porcupine is a lossless compression method for storing bit masks. It is like Zebra, but compresses Bit Channels instead of Byte Channels.

Additional modular compression methods will be added in the future as they are developed for higher precision extended range imaging.

Source Code

Free proof-of-concept C source code for reading and writing XRH files is provided in XRHLIB o

Next Page: File Layout & Header >

XRH File Format
Page 1 : 
Page 2 : 
Page 3 : 
Page 4 : 
Page 5 : 
Page 6 : 
Page 7 : 
Page 8 : 
Page 9 : 
Page 10 : 
Page 11 : 
Introduction (this page)
File Layout & Header
Custom Properties
Channel Names
Zebra Compression
SZMOD Compression
ZFP Compression
Porcupine Compression
Color Transformations

Return to Computer Science

Return to Alternative University

Copyright © 2021 Arc Math Software, All rights reserved
Arc Math Software, P.O. Box 221190, Sacramento CA 95822 USA   Contact
2021–Jun–14  14:31  UTC