luca_ing@xxxxxxxxx wrote:
Hello, i am searching for a jpeg decompressor ( better someone who wants to write it :-) ) to include in my kernel driver for a webcam/chip which supports standard jpeg compression with yuv422/0 planar 8/16 bit encoding, non-interleaved scan. I found a jpeg decompression function in the kernel sources (linunx/drivers/video/fb-jpeg.c) but it seems to decode only encoded yuv411 format. I am not an expert about j pegs and, before studying the whole standard to write a jpeg decompressor by myself, i would like to have it in a easier way. Any ideas? (Exact vendor specifications about how the chip does the compression can be found here: go.lamarinapunto.com , download section) Thanks
I've seen a few replies suggesting the use of libjpeg. This works, but the IJG code is very slow. I've done some work on a new decoder, which currently runs at about twice the framerate of libjpeg. To get this I did some functions with mmx inline assembly, and vastly simplified the interface to the decoder. It currently decodes only yuv422 8 bit interleaved. It still needs more optimization and cleanup, but if you're interested (and this format will work for you) let me know and I'll send a src tarball. It compiles into libmjpeg.a, but should be easy enough to make a .so if you prefer. It definitely should _not_ go in kernel space.
Steve -- Steve Miller Software Engineer STMicroelectronics phone (602) 485-2014