[net.micro.atari16] image compression

montnaro%chenengo.tcpip@GE-CRD.ARPA (05/21/86)

Received: by chenengo.steinmetz (3.0/1.1x Steinmetz)
	id AA16370; Wed, 21 May 86 10:08:20 EDT
Date: Wed, 21 May 86 10:08:20 EDT
From: Skip Montanaro <montnaro%chenengo.tcpip@csbvax>
Posted-Date: Wed, 21 May 86 10:08:20 EDT
Message-Id: <8605211408.AA16370@chenengo.steinmetz>
To: info-atari16@score.stanford.edu
Subject: image compression


In <752@rclex.UUCP> Walt Weber writes:

>Has anyone ever seen or used an encoding or compression algorithm
>to store image files?  I have seen a couple of demos which appear
>to be compressed, as they are all different sizes and come up in
>a "slideshow" style presentation.

I would think that some adaptation of the algorithm used in compress
(available from mod.sources and quite protable) might be sufficiently fast
enough to do what you want. Compress is not restricted to ASCII files. We
use it to compress cpio output (used for backups) before sending to a VMS
VAX. We get (typically) about 50% compression and its speed is acceptably
fast. 

==========
Skip Montanaro
ARPA: montanaro@ge-crd.arpa
US Mail: General Electric Company
	 Corporate Research and Development
	 P.O. Box 8
	 Bldg KW, Room C210
	 Schenectady, NY 12304
Phone: 518-387-7312
==========

jhs@disunix.UUCP (05/22/86)

A lot of study has gone into image compression, so I am sure you can find some
very effective algorithms.  One of the simplest to understand is "run-length
coding", in which repeated data (pixel) values are sent as a special "repeat
code" followed by the repeat count and the value, or some such thing (invent
your own protocol if you like).  For certain kinds of images, this results is
a substantial compression.  E.g. line drawings where most space is white
anyway, or highly structured scenes where large regions have the same color
and little or no texture.

If you are constructing the image (i.e. have your mits on the semantics of the
scene) then you can do MUCH better with "Videotex" encoding.  The North
American Presentation-Level Protocol (NAPLPS) does a surprisingly good job of
representing simple pictures etc.  There is an ANSII standards group (X3H33?)
working on such things.  With Videotex encoding (NAPLPS, Teletel, Prestel,
several other standards), pictures can be coded in a few thousand bytes and
therefore sent over even 1200-baud lines in a few seconds!

That's about all I know except I could probably get some specific references
to articles, standards documents, etc. if you can't scrounge them up locally.

-John Sangster
jhs@mitre-bedford.arpa