Live data from Hacker News

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

techcrunch.com

71–80 of 262 posts

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

#71
post #58

Earlier quoted context omitted.

Don't overlook the fact that the source for the stock Android camera is available under a commercial-use-friendly open source license and has a quite nice native android UI. You don't have to reinvent all the wheels unless you're stubborn. https://android.googlesource.com/platform/packages/apps/Came... I would buy that in a heartbeat. Unrelated, how quickly can you alter exposure settings? Can you get 30 pictures per…

That's really interesting. I wasn't aware of that. I'll have a look at it once social sharing is out the door. I did consider getting into other aspects of iPhoneography, like HDR, etc. The trouble with HDR in particular is that there's no API access to direct the sensor into each of the bracketing modes. In the case of HDR, it might be more fruitful to attempt some kind of image signal processing, similar to "Clarit…

Hi,

There's also a cool technology allows you to save near the same jpeg with much, much smaller file size.

https://news.ycombinator.com/item?id=2940505

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

#73
post #69

jpap, I don't quite fully understand the implementation (though I'd love to one day be proficient enough to). But maybe you can explain how the format compares to motion JPEG. Or maybe it's very similar? About 15 years ago I dabbled in live video recording on old Pentium II hardware with an old BT878 video input card. Motion JPEG was the only feasible option to obtain relatively high quality (for the time) results al…

There are a lot of similarities actually. In SnappyCam, each photo is compressed to a separate JPEG file. There's no inter-frame compression, no motion vectors, etc. The same as mJPEG. The main differences are: * Each photo is stored in an individual file. This makes seeking through the living photo blindingly fast. (I guess you could do this with motion JPEG by utilizing an index.) * Each photo also has full metadat…

This is amazing work. Could you explain why you decided to go with many individual stills rather than filling in the gaps in a video codec? It's a really counterintuitive approach.

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

#74
post #62
post #57

Earlier quoted context omitted.

There's similar app on Android for years https://play.google.com/store/apps/details?id=com.spritefish... The claimed speed is 30 fps, the moar RAM the better I think.

I thought the app was pretty cool, just super slow to save out the JPEGs. That's one of the reasons I spent a lot of time to make sure SnappyCam could compress these images, thumbnails and Exif metadata included, at a ridiculous speed.

I might point out that, depending on the device, you could have many more cores to work with in Android-land.

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

#75

Any chance of this coming to Android soonish? This is seriously cool!

Purely wishful thinking: how about this and the latest lumia camera?

I don't know much about their device (maybe Nokia might send me one?!? hehe)...

... but they must have an awesome JPEG encoder. I'd assume 41Mpx stills would need to be compressed in no more than 1 second for a reasonable UX. That there is a 41+Mpx/sec encoder.

I've also noticed they are using higher quality chroma sampling (4:2:2) so their encoder is actually doing a lot more work than say SnappyCam.

But I bet they're not doing it in software, either.

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

#76
post #21
post #13

Earlier quoted context omitted.

So the summary is "JPEG encoder written in assembly with NEON instructions saves images faster than Apple's encoder." That's a cool feat and is a little damning for Accelerate.framework, although the way techcrunch writes it I expected a new kind of fast cosine transform.

Don't forget that SnappyCam pumps both CPU cores when available. The actual DCT algorithm created and used in the app is different to the typical AAN (Arai, Agui, Nakajima) DCT algorithm that's used in JPEG codecs, at least all the ones I've seen. It's all about doing as little work as possible to achieve the end result. That's why there's so much asm implementation, with carefully chosen NEON instructions for each s…

Really interested in the nuts and bolts - are you optimizing specifically for one quality setting (in which case I'm guessing you could probably do the quantization as part of the dct and throw away some calculations)? I played with a realtime jpeg compression implementation back in college on transputers (yes I'm that old). Fun stuff, nice to see there are still places where going right down to the metal can make a real impact on a product...

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

#77
post #75

Earlier quoted context omitted.

Purely wishful thinking: how about this and the latest lumia camera?

I don't know much about their device (maybe Nokia might send me one?!? hehe)... ... but they must have an awesome JPEG encoder. I'd assume 41Mpx stills would need to be compressed in no more than 1 second for a reasonable UX. That there is a 41+Mpx/sec encoder. I've also noticed they are using higher quality chroma sampling (4:2:2) so their encoder is actually doing a lot more work than say SnappyCam. But I bet they'…

They will send you one if you send them 670 USD back...

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

#78
post #69

Earlier quoted context omitted.

There are a lot of similarities actually. In SnappyCam, each photo is compressed to a separate JPEG file. There's no inter-frame compression, no motion vectors, etc. The same as mJPEG. The main differences are: * Each photo is stored in an individual file. This makes seeking through the living photo blindingly fast. (I guess you could do this with motion JPEG by utilizing an index.) * Each photo also has full metadat…

This is amazing work. Could you explain why you decided to go with many individual stills rather than filling in the gaps in a video codec? It's a really counterintuitive approach.

Good question!

Several reasons:

* Video codecs are much more complex.

* Random access seek is a lot slower, unless you're using all I-frames. (That's now a codec option on iOS, but not when I started.)

* "Studio swing" reduces the dynamic range of the YCbCr components so the quality suffers.

* Each frame lacks their own thumbnail, unless you maintain an adjunct "thumbnail video"

* Each frame might(?) not be able to have attached separate metadata, like geotagging, sensor settings at time of capture, etc.

* Deleting one frame causes a "hole" and headache.

* Standards compliant JPEG means export is super easy.

* Anything above full HD video is difficult to deal with in 3rd party software.

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

#79
post #60

Earlier quoted context omitted.

Thanks for the download! Let me know if you've got any feedback, I can be easily contacted through the app. :D I'd just like to add that in addition to handcrafted code, choosing the right algorithm and always trying to "do less work" (less cycles, less data IO, better use of registers) makes a big difference.

I always say a good programmer has to be "lazy"! Some feedback, the default exposure settings showed my room as pitch black (I have it very dim now), the native iphone5 camera adjusted automatically. I was able to snap a shot by pointing to the light. Personally I prefer not to crank the gain on the sensor.

haha, yes, if only it pays to be lazy. :) Sometimes doing "less work" means more up-front planning and thinking. Not a bad thing necessarily.

Interesting on the native camera adjustment. SnappyCam will use the "low light boost" high ISO capabilities of the camera. I'll have a play around with it.

Otherwise, does the continuous flash help you much?

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

#80
post #39
post #35

This is quite remarkable. I just tested it and works even better than advertised. I hope you become rich and famous for this. And I really hope there's not a hidden gotcha I haven't seen yet.

Thanks! :D I'm just very happy to have more people try the app. It's been a hard slog working 7 day weeks for just over two years now. Feels great to receive some kind of recognition for the work.

I too have purchased the app, and initial testing on a 4S seems to show it works exactly as advertised. This is a really great app, and an astoundingly low price. You should be very proud I think, I'll definitely be using the app as my goto in the future.

(Hmm, after writing that, I somehow feel it sounds like it should have a reference to my rural, folksy, respected job that clearly makes me qualified to discuss such things. Unlike those Amazon reviews I'm refering to though, I mean every word.)

Post reply on HN