A reader might wonder, why care about the arithmetic encoding? Recently, I 
tried to compress a rather big scan (private content, an A4 page at 1200 dpi 
with black foreground text and a nontrivial green-white background) into a JPEG 
file of a possibly small size. I ran:
cjpeg -quality 0 -arithmetic -dct float -outfile output.arithmetic.jpg -report 
-strict -verbose input.pnm
cjpeg -quality 0 -optimize -dct float -outfile output.optimized.jpg -report 
-strict -verbose input.pnm
cjpeg -quality 0 -dct float -outfile output.unoptimized.jpg -report -strict 
-verbose input.pnm
(Quality 1 would do as well. The real file names have been replaced by “input” 
and “output” for privacy here.)
The sizes are this:
output.arithmetic.jpg: 239224 bytes
output.optimized.jpg: 807963 bytes
output.unoptimized.jpg: 1928235 bytes
The foregrounds of the three files are readable and have visually comparable 
quality. The savings in size between output.arithmetic.jpg and 
output.optimized.jpg are a factor exceeding 3.3. (And NOT a tiny one-digit 
percentage, as reported in “A Review on JPEG2000 Image Compression” by Maini 
and Mehra and in the Wikipedia article on JPEG.) These savings do make a 
difference if you use more images of this kind and your storage or bandwidth is 
restricted.

Reply via email to