In-browser RAW Processing: How We Did It
blog.pics.io
blog.pics.io
It's pretty easy ( http://blog.bitops.com/blog/2013/06/04/webraw-asmjs/ ) and provides a proven set of demosiacing algorithms that work well, in addition to support for a lot more cameras (Sony springs to mind).
At any rate this looks like it was a quite fun exercise, and the blog post is well written.
http://dev.tag.is/rawson.js/ seems to be an emscripten-to-JS compiled dcraw.c, and while less functional than libraw it's under 500kb.
The OP site is quite slow but does work: it produces a JPEG in the end (using Canon 6D original CR2 files).
"LightRoom in the browser" would be the greatest thing ever.
The alternative seems a little crazy to me. Reimplementing a full raw library in JS is a huge task. I've just spent a total of 6-7 hours getting the basics of MRW support in rawspeed and those formats are just insane, and change continuously between models of the same manufacturer. And even within a single model you'll get crazy variations depending on camera settings.
Best of luck.
Anyway, I'd be interested to see how much faster you are (at comparable image quality) than one of the suggested libraries. If you are in fact a lot faster, I'd be curious to know what it is that you're doing that you think makes it run significantly faster in current JavaScript engines than translated code.
http://raw.pics.io http://people.mozilla.org/~vladimir/demos/webraw/ http://dev.tag.is/rawson.js/rawson.html
The libraw / dcraw-based demosaic algorithms are, I am told, very good; it'd be interesting to compare the image quality that they get (if they reinvented the wheel) vs. libraw, vs. the camera's on-board ISP.
Either way, having an in-browser RAW experimentation platform could be a very interesting tool; even if for nothing else, using it for education could be very neat. Good work!
Am I understanding this right, the conversion is done in the browser, so rather than using something like dcraw that's quick and featureful and exist, you've reimplemented the whole thing in js? (I do get that it's a trade-off concerning what you want to enable). Do you see this as viable for use on tablets and such? Today's tablets, or are you targeting the tablets of, say, 2015+?
You are correct about our approach (I'm referring to dcraw here).
>Do you see this as viable for use on tablets and such?
It's a question of hardware, most of the things we build can run in browsers on tablets (in theory). We actually don't see much benefit in editing on a tablet. But iPad can be a good device for photo management and sharing.
Setups like this usually suck. These workflows are hard to maintain, especially by not so tech-clever photographers.
>what's the benefit of editing in the browser
You mean from a user perspective? Then "no installation", freedom choosing platform, collaborative editing, etc. If we talk in a greater perspective... Web version of software for RAW processing can be easily integrated into any web service: Google+, Dropbox...
>> Setups like this usually suck. These workflows are hard to maintain, especially by not so tech-clever photographers.
Maybe. Then again, I don't really see the need for syncing going away in the near future -- it's still hard to "just upload" the result of a single photo session/trip/whatever? Even if you're great at deleting obviously bad shots, it's pretty hard to keep the number of photos below the low hundreds (ie: 2+ GB of raws)?
I suppose some will prefer to synch up once, then have "the cloud" maintain the working set of images (as bad ones are deleted, cropped/edited/black'n'white copies are created). Does sound like a lot of data going up and down though.
>> what's the benefit of editing in the browser
> You mean from a user perspective?
> Then "no installation", freedom choosing platform,
Fair enough -- I see how this can be a benefit -- it also highlights how much more comfortable my life has become after I gave up on dualbooting and just stuck with Debian as my main desktop/workstation setup. But that might not be for everyone.
>> collaborative editing, etc.
Do you plan on supporting some form of non-destructive editing, where changes can be easily propagated?
>> If we talk in a greater perspective... Web version of software for RAW processing can be easily integrated into any web service: Google+, Dropbox...
I'd like to see that :-) I still think there's a bandwidth problem though -- I have problems managing my RAWs locally, I can't imagine it will work (yet) with the actual image data only in the cloud -- and I'm not sure if caching gigabytes of data on the client is an acceptable solution (mostly because of poor uis for controlling the cache, purging parts etc).
I'd be happy to be proved wrong, however :-)
raw.pics.io doesn't support your browser
IE 11 supports WebGL (and is a pretty decent HTML5 browser)In case some of you want to put it as a desktop wallpaper :)
As a Pentax (K-5, K-5II, K-3) and Nokia (Lumia 1020) user, I use nothing but DNG. Sure I could squeeze a few more bytes from a memory card with PEF, but I prefer my records to be in a standardised format.
The next part - processing the debayered pic on the browser. I like ACR a lot, the highlight recovery is the best I've seen.. plans?
We already added Exposure Compensation to http://raw.pics.io, and we think about upcoming features. What features are the most useful for you?