PCX

檔案格式

PCX是一种由美国乔治亚州的ZSoft公司所开发的影像档格式,原本是该公司的PC Paintbrush软件的文件格式(PCX代表PC Paintbrush Exchange),却成了最广泛接受的DOS影像标准之一,然而这种使用格式已经被其他更复杂的影像格式GIFJPEGPNG渐渐取代。

典型的文件格式

Table A. Typical PCX Image Formats
Planes 位元深度 显示类型
1 1 Monochrome
1 2 CGA
3 1 EGA
4 1 EGA or VGA
1 8 Extended VGA
3 8 Extended VGA and above

PCX是一种不受平台限制的像素影像格式,文件标头存储著有关显示硬件方面的资讯(屏幕分辨率、颜色深度、色盘资讯、位元平面(bit planes)等),有别于后面夹带的实际文件资讯。这个资讯能让影像可以正确地发送与显示在不同硬件上的电脑系统。PCX文件一般来说,存储色盘索引的影像,范围从2、4种色彩至16与256种色彩,而且格式同样可扩展以记录真实色彩(24-bit)的影像。

PCX使用区段长度编码(Run Length Encode;缩写RLE),是一种简单的算法,可以把代表同一个颜色的多个连续字节,简化成一个双字节。当文件做处理时,最高位元会用来当作控制切换(旗标),用来决定所给的资料是代表一个像素中的色盘索引值、色彩数值,还是一个用来表示数个接连相同数值像素的RLE数值。

Table B. PCX Image Data Arranged into Color Planes
Row 0 R R R R R R R R R
G G G G G G G G
B B B B B B B B B
A A A A A A A A A
Row 1 R R R R R R R R R
G G G G G G G G
B B B B B B B B B
A A A A A A A A A
Row 2 etc. ....

由于使用两个最高位元来当作旗标,在一个具有256色盘的PCX文件里,色彩索引编号192至255(其两个最高位元都已设为1),则必须存储成RLE双字节,即使它们在区段中只出现过一两次。而色彩索引编号0至191就可以直接存储或是存成RLE双字节(无论哪一种较省空间)。因此实际的压缩率可以透过适当的排序色盘顺序来达到优化(然而若与其他影像共享色盘时则可能无法实行)。举例来说,一个色盘可以将最常出现的色彩放置于色盘索引编号的0至191的位置,而最少使用的色彩则可座落于色盘的后半部,这个RLE机制可以有不错的应用。

RLE压缩算法仅需少量的处理器资源与存储器即可应用,以当时的电脑系统来看是非常有用的,但现今电脑的硬件显示装置逐渐的复杂精密,RLE算法反而变成没那么省空间,它无法压缩混色(dithered)的影像例如照片或复杂的电脑图像。