send pics over slow line?

Bryn M. Reeves bmr at redhat.com
Thu Feb 16 22:33:59 UTC 2012


On 02/16/2012 08:06 PM, Dave Stevens wrote:
> I'm sure this is a solved problem somewhere but I can't see it.  
> Certainly zipping or gzipping don't work in any obvious way (or not  
> obvious enough, anyway!) Suggestions?

Lossless coding like zip/bz2/xz et al won't do much on top of a lossy
media codec. The jpeg formats also don't have a notion of inter-frame
coding (frame-to-frame diffs). Unfortunately the binary coding isn't
especially amenable to diffing without special tools. A friend of mine
wrote some tools like this for a college project (not available online
sadly) - it's not that difficult but it does require a certain amount of
work.

If you want to do this with off-the-shelf parts the best option might be
to use e.g. mplayer/mencoder which will take a stream of jpeg images and
convert them into a video codec that does support predicted frames:

http://www.mplayerhq.hu/DOCS/HTML/en/menc-feat-enc-images.html

You don't have to use mpeg4 although it will probably give pretty good
compression.

Once you have the images encoded as video you can split them out to
individual frames again with something like this:

mplayer -frames 1 -vo jpeg outdir=/tmp:quality=75 path/to/video.file

Depending on your quality needs this might work - passing images through
two rounds of lossy coding is generally a bad idea as you'll get
additional artefacts in the movie as the codec tries to code the
artefacts in the original jpeg image but for many uses it's tolerable.

I think ImageMagick can also split the movie to images if it was
compiled with support for the codec you use.

Regards,
Bryn.


More information about the users mailing list