Twice in two weeks: Another Web app for processing raw photos

A Mozilla programmer has demonstrated how ASM.js is powerful enough to handle decoding raw-format photos. Might it help startup Pics.io?

Stephen Shankland Former Principal Writer
Stephen Shankland worked at CNET from 1998 to 2024 and wrote about processors, digital photography, AI, quantum computing, computer science, materials science, supercomputers, drones, browsers, 3D printing, USB, and new computing technology in general. He has a soft spot in his heart for standards groups and I/O interfaces. His first big scoop was about radioactive cat poop.
Expertise Processors | Semiconductors | Web browsers | Quantum computing | Supercomputers | AI | 3D printing | Drones | Computer science | Physics | Programming | Materials science | USB | UWB | Android | Digital photography | Science Credentials
  • Shankland covered the tech industry for more than 25 years and was a science writer for five years before that. He has deep expertise in microprocessors, digital photography, computer hardware and software, internet standards, web technology, and more.
Stephen Shankland
2 min read
WebRaw demonstrates how a browser can perform the computationally challenging task of decoding a raw image.
WebRaw demonstrates how a browser can perform the computationally challenging task of decoding a raw image. Vladimir Vukecevic

Web-based photo editing took a second step forward Tuesday with the release of WebRaw, a tool that uses Mozilla's ASM.js technology for the computationally intense process of handling raw photos.

Raw photo formats, available on high-end cameras, offer better image quality and more editing flexibility, but they also are much more of a hassle than standard formats like JPEG, in part because they're so burdensome for computers to decode. That's why the demo, from Mozilla's Vladimir Vukicevic, is interesting: processing raw photos is the sort of chore that only a couple of years ago would have been impossible with a Web application running in a browser.

Vukicevic's demonstration is an illustration of what's possible with a browser today, not an attempt to create an online competitor to premium raw-processing software like Adobe Systems' Lightroom or Apple's Aperture.

"It's obviously not functional for real usage, and is purely an interesting tech demo," he said of WebRaw.

But the idea isn't purely academic, either. A Ukranian startup called Pics.io is building a service to handle raw photo editing with a Web app. It's quite possible that in coming years, people will be able to manage raw photos on the Web -- if nothing else, at least letting software like Google's Chrome OS or Mozilla's Firefox OS view the images in a file manager or image-upload tool.

Pics.io and WebRaw use very different approaches. Pics.io offloads processing to a computer's graphics processor using a technology called WebGL that can tap into hardware power. Vukicevic uses new Mozilla technologies called ASM.js and Enscripten that convert a program written in C or C++ into JavaScript that a suitably adapted browser can run very fast. So far, only new developer builds of Firefox have ASM.js support built in.

Vukicevic based WebRaw on an open-source raw-processing engine called LibRaw. He compared the ASM.js version of the software to a version compiled straight from the C++ source code into a native app.

The native app, unsurprisingly, is faster. For a 36-megapixel 40MB raw file from his Nikon D800, the native version of LibRaw took 7.8 seconds to decode while WebRaw took 12.9 seconds.

"The initial results were quite good, and directly in line with what we have consistently seen with Emscripten and asm.js performance," he said.

One nice thing about Web apps is that they're easy to install -- all you have to do is point your browser at a Web page. Vukicevic encouraged people to try out WebRaw as long as they have a developer version of Firefox such as Aurora.

Mozilla is a big fan of Web apps, and Vukicevic hopes his work might help the team at Pics.io.

"I hope they succeed!" he said. "A combination of an asm.js-compiled existing decoding library along with their WebGL-based manipulation tools could be a winner."

ASM.js competes with Google's approach to handling C and C++ code, Native Client, and more recently Portable Native Client. So far, no other browser maker has found Google's arguments in favor of PNaCl support compelling.