Silicon Graphics Image
   HOME

TheInfoList



OR:

Silicon Graphics Image (SGI) or the RGB file format is the native raster graphics file format for
Silicon Graphics Silicon Graphics, Inc. (stylized as SiliconGraphics before 1999, later rebranded SGI, historically known as Silicon Graphics Computer Systems or SGCS) was an American high-performance computing manufacturer, producing computer hardware and soft ...
workstations. The format was invented by Paul Haeberli. It can be run-length encoded (RLE).
FFmpeg FFmpeg is a free and open-source software project consisting of a suite of libraries and programs for handling video, audio, and other multimedia files and streams. At its core is the command-line ffmpeg tool itself, designed for processing of vid ...
and ImageMagick, among others, support this format.


Background

Common file extensions are: ;.sgi or .rgb: 3 colour channels ; .rgba: 3 colour channels and alpha ;.bw or .int: black and white ;.inta: black and white and alpha This format was originally developed for
IRIX IRIX ( ) is a discontinued operating system developed by Silicon Graphics (SGI) to run on the company's proprietary MIPS workstations and servers. It is based on UNIX System V with BSD extensions. In IRIX, SGI originated the XFS file system a ...
. The master files of the '' SVT High Definition Multi Format Test Set'' are SGIs. Frame 200 of the ''ParkJoy'' sequence in this set (15722.sgi, 3840×2160, 47.4 MB) was used in WebP comparisons.


Technical Details

SGI image format use
big endian In computing, endianness, also known as byte sex, is the order or sequence of bytes of a word of digital data in computer memory. Endianness is primarily expressed as big-endian (BE) or little-endian (LE). A big-endian system stores the most s ...
order. Image data scan from left to right from bottom to top.


Header

File Signature/Magic Number Should equal 0x01 0xda for SGI file. Compression If no compression equal 0; 1 for RLE compression. Bytes Per Pixel Channel Value is 1 for 8 bit per channel (most image); 2 for 16 bits per channel. Dimension Value equal 1 for 1 channel, 1 scanline image ; 2 for 1 channel, many scanline image (); 3 for many channel, many scanline image (most image). X Size Scanline width of image. Y Size Number of scanlines in image. Number Of Channels Number channels in image. Grey scale image is 1; RGB is 3; RGBA is 4. SGI can have more than 4 channels. Minimum Pixel Value Smallest pixel value in all channels. Because SGI use unsigned char or short for channels, smallest value can have is zero. Maximum pixel value Largest pixel value in all channels. Because SGI use unsigned char or short for channels, largest value can have for 8 bit/channel is 0xff; 16 bit/channel image is 0xffff. Dummy 4 bytes not use. Image name Image name is 80 bytes (maximum 79 characters ≠ 0x00) C string. If name is shorter than 79 characters, all bytes after equal 0x00 for fill all 80 bytes. Color Map ID Have 4 types: # 0x00 normal: image have 1 channel is grey scale; 3 channels is RGB, 4 channels is RGBA # 0x01 dithered: image is packed RGB. First 3 bits for R, next 3 bits G channel, and last 2 bits for B channel # 0x02 screen: image use colormap. Pixel data is index in color map and image only have 1 channel. # 0x03 colormap: file only have data for one color map (can use for different image file). This file no have image data. Dummy 404 bytes for header 512 bytes long.


Image Data

No Compression Image data start at byte 512 in file. Data length equal (x size) × (y size) × (number of channels) × (bytes per channel). Data for each channel is separate. If image have RGBA channels, then all scanlines for channel R first, scanlines for channel G next, scanlines for channel B next, scanlines for channel A last. RLE Compression Offset table start at byte 512 and is (y size) × (number of channels) × 4 bytes long. Each unsigned int in table is offset (from file start) for start of compressed data of each scanline in each channel. Data for each channel's scanline is separate. If image have RGBA channels, order for channel data is R, G, B and A. Next have data length table also (y size) × (number of channels) × 4 bytes long. This table tell size of compressed data (unsigned int) of each scanline. This size should equal difference of numbers in offset table. Last is RLE compressed image data. If bytes per channel equal 1, compressed data is unsigned char. Else if equal 2, compressed data is unsigned short. End of compressed scanline data have value zero. For both case have unsigned char or unsigned short data, lowest 7 bits tell count. If bit 8 is zero, count is number times copy value after count. If bit 8 is one, count is number times copy series of values after count byte. For 2 bytes/channel image, count and value is unsigned short and top byte of count always equal zero.


See also

*
SGI IRIS The SGI IRIS series of terminals and workstations from Silicon Graphics was produced in the 1980s and 1990s. IRIS is an acronym for Integrated Raster Imaging System. Overview 68000 The early systems up to IRIS 3000 use the Motorola 68000 serie ...


References

{{Graphics file formats Graphics file formats