Live data from Hacker News

Scientific Breakthrough Lets SnappyCam App Take 20 Full-Res Photos Per Second

techcrunch.com

201–210 of 262 posts

Re: Scientific Breakthrough Lets SnappyCam App Take 20 Full-Res Photos Per Second

#201
post #191
post #118

Earlier quoted context omitted.

Thanks! :-) To be honest, none of my formal training prepared me for what went into SnappyCam---only the "how" to go about learning to do so. I'm sure you could pick up a few tricks in the same way by working on a cool pet project or two. With so many recent requests for AGIF, I'm absolutely going to add it to the app. (It's been on my list for a while, but lower priority than getting up a solid core product and the…

Hah, I told you getting your PhD was a waste of time ;-)

LOL! Thanks @danpat. :-) How are you going these days? I heard you might be moving to the Big Apple?

Re: Scientific Breakthrough Lets SnappyCam App Take 20 Full-Res Photos Per Second

#202
post #16

Earlier quoted context omitted.

You are right on the loss: it's purposefully introduced as a quantization step after performing the DCT, and before losslessly compressing the resulting coefficients with Huffman and encoding to the final JPEG bitstream. Despite all of that, JPEG has now become computationally tractable. I remember the days where it took tens of seconds to encode a JPEG on a commodity machine. Now, with the help of SIMD, we can encod…

SIMD, you say? Are you relying mainly on NEON optimizations or are you also doing encoding stuff on the GPU? Very impressive performance I must say!

Thanks! :-)

I first tried using the GPU, using old school GPGPU textures and OpenGL ES 2.0 shaders, but unfortunately the performance wasn't there for a variety of reasons given in [1].

SnappyCam has since been making extensive use of ARM NEON for the JPEG codec and a bunch of other image signal processing operations, like digital zoom. It's a great instruction set!

[1] http://www.snappylabs.com/blog/snappycam/2013/07/31/iphone-k...

Re: Scientific Breakthrough Lets SnappyCam App Take 20 Full-Res Photos Per Second

#203
post #16

Earlier quoted context omitted.

You are right on the loss: it's purposefully introduced as a quantization step after performing the DCT, and before losslessly compressing the resulting coefficients with Huffman and encoding to the final JPEG bitstream. Despite all of that, JPEG has now become computationally tractable. I remember the days where it took tens of seconds to encode a JPEG on a commodity machine. Now, with the help of SIMD, we can encod…

It's just bizarre that you would be doing the complete JPEG process at the instant you get the image from the sensor. As you note, there are a plethora of steps that JPEG performs, from color space conversion, to DCT transformation (essentially a gigantic matrix multiplication), Huffman coding, quantization, arithmetic coding and encoding as JPEG bitstream. The only reason would be that you are pressed for memory or…

Why is this comment getting downvoted? I see that it adds insight to the subject and makes some good points, which OP even acknowledges. The written complaint is that revelation is not being deferential enough, which is bullshit on an in-depth technical discussion.

Re: Scientific Breakthrough Lets SnappyCam App Take 20 Full-Res Photos Per Second

#204
post #31

Looks like they've an instagram-type site set up too. http://snappyc.am/2LdRMF28U0 http://snappyc.am/4HHxyCad7D http://snappyc.am/3G3i6QCJUk

Just for your info, the top link actually crashed my Windows Phone 8's Internet Explorer. Clearly that's an IE bug and nothing else, but I thought you should know :-) Keep up the good work!

That's unfortunate. I suspect there's a JS memory leak in the viewer, as it will cause a crash on iOS Safari after prolonged use. It's on the list.

Thanks for letting me know!

Re: Scientific Breakthrough Lets SnappyCam App Take 20 Full-Res Photos Per Second

#205
post #148
post #133

Earlier quoted context omitted.

I'm Aussie, so I did my schooling in Melbourne, Australia. I don't recommend the same path for everyone, but my ugrad at RMIT University, dual bachelors of EE and CS. I then went on to do a Ph.D at the University of Melbourne in EE. My dissertation was on mathematical optimization of wireless and wireline DSL. (Prof Jamie Evans is an awesome guy if you're on the lookout for an advisor!) I've been in SFO for just over…

Congrats fellow Australian. Two of us here in an office in Adelaide just bought the app. Guy behind me said "Hey, this is pretty cool. Have you seen... oh, you're looking at it already."

Hi, what is Adelaide like to work in? I assume you guys are in IT? From what I hear, it is mostly government work.

Re: Scientific Breakthrough Lets SnappyCam App Take 20 Full-Res Photos Per Second

#208

Wow, amazing performance tuning, so rare these days! However, you should be careful with this online ARM simulator. It simulates Cortex-A8 while iPhone 5 runs on Apple Swift, two generations ahead. It very likely has different instruction timings compared to Cortex-A8. I didn't have a chance to test Swift, but here is a list of what might be different, judging by Qualcomm Krait and ARM Cortex-A15, which are in the sa…

That's really cool, Marat. Thanks for the additional info on the A15 and Swift.

It's a lot of work to optimize the assembly code to each ARM variant, but glad to know that Swift will generally run the same code at the same or faster speeds as the Cortex-A8.

The 3-cycle latency on simple ALU instructions is a bummer, but fortunately I use them sparingly for computation as compared to NEON. (They're great for pointer arithmetic and computing image row strides.)

The multiple issue of an ALU + LOAD is awesome. That would definitely help some of my routines.

Re: Scientific Breakthrough Lets SnappyCam App Take 20 Full-Res Photos Per Second

#209
post #207

Please tell me there's an ipad version in the pipeline. This is the second non-free app I have on my ipad - it doesn't disappoint at all. Great work!

I have it in mind at a lower priority. To be honest, my main impetus is for better discoverability on the App Store from an iPad device.

They really like to hide those iPhone apps! ;-)

It will be nice to play with the interactive living photos full-screen, though iOS 7 makes iPhone apps look amazing on the iPads in any case.

Re: Scientific Breakthrough Lets SnappyCam App Take 20 Full-Res Photos Per Second

#210
post #183

To be clear, using SIMD for JPEG encoding is not new. I'd be curious how this JPEG encoder compares to libjpeg-turbo's NEON encoder. http://libjpeg-turbo.virtualgl.org/

Hey @jlebar, you're right--it's existed on the desktop for some time (MMX, SSE). When I first started, libjpeg-turbo never had an ARM port, which was part of the motivation to do it myself.

See my post in another thread here on the same topic.

Post reply on HN