Twinside / Juicy.Pixels

Haskell library to load & save pictures
BSD 3-Clause "New" or "Revised" License
237 stars 58 forks source link

Support interleaved JPEG #19

Closed Twinside closed 10 years ago

Twinside commented 11 years ago

Might be on the rise in the future, better support them.

DiegoNolan commented 11 years ago

What are the chances of this being implemented? I would be glad to give it a shot but I don't know much about codecs.

dagit commented 11 years ago

A quick bit of googling tells me that interleaved and interlaced are synonyms here. A bit more googling tells me that in the JPEG world these are known as "Progressive JPEGs". More difficult than that is finding the standard.

This looks promising: http://halicery.com/jpeg/progjpegdecoder.txt

This research paper also looks relevant but I couldn't find a free pdf: http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=4239390

Notes from a university course: http://www.cs.auckland.ac.nz/compsci708s1c/lectures/jpeg_mpeg/jpeg.html

Presumably the jpeg.org has a free standards document on the topic (I think you want to look at JPEG 2000 standards), but I find their website and their pdfs to be confusing at best: http://www.jpeg.org/jpeg2000/CDs15444.html

Perhaps @Twinside can point you at some better documentation.

Twinside commented 11 years ago

The standard document can be accessed through paywalls from the ITU or free though one of the W3C Jpeg page which possess a link to the ITU 81 which is the defining standard.

I've pondered putting all the spec in the repository but I'm not sure about the legal issues associated to these documents.

Supporting progressive/interleaved JPEG is next on my TODO list for Juicy.Pixels, but I'm rather busy right now, I don't think I'll be able to work on it before July. If you're not afraid of the optimized (and unreadable) JPEG decoding, and want to give at shot, please do :)

DiegoNolan commented 11 years ago

Looking at the spec and the jpeg decode I don't know if I'm up to it. Not exactly my field of expertise. I'll have to think about it.

Twinside commented 10 years ago

AAAAAAAAAAAAAaaand done.