Wednesday, July 31, 2019

Simple, streaming, lossless image compression



Does anyone know of any image compression techniques with the following characteristics:



  • lossless

  • streaming - I want to compress on the fly, pixel-by-pixel.

  • low-memory overhead - I can afford to buffer a single line, but ideally not even that.

  • no dynamic dictionaries

  • "real-world" images only, so performance on "nasty cases" like chequerboards is not important

  • 2-3x compression (5x-10x would be even better, but that's asking a lot I know)

  • can operate on 10-16 bit pixels (depending on my camera)



My images will be ~1k pixels wide, with pixel rates of ~20Mpix/sec. The pixel depth will be something between 10 and 16 bits per pixel (depending on the choice of camera). Assume sub-16-bit pixel widths would be represented within a 16-bit word for now, rather than needing to be extracted from a continuous bit-stream.


Some form of delta+arithmetic coding perhaps?



Answer



You can consider using Huffyuv : http://neuron2.net/www.math.berkeley.edu/benrg/huffyuv.html


This is no great better than simple zip, but still slightly optimized for images.


Any Image related compression comes from the techniques like Vector quantization or Transform coding. In order to make use of transform such as DCT/Wavelet yet make it lossless you can think of JPEG-LS or JPEG2000 for compression. Only thing is, it is not streaming in your sense of definition.


No comments:

Post a Comment

digital communications - Understanding the Matched Filter

I have a question about matched filtering. Does the matched filter maximise the SNR at the moment of decision only? As far as I understand, ...