Earlier quoted context omitted.
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/0…
Scientific Breakthrough Lets SnappyCam App Take 20 Full-Res Photos Per Second
231–240 of 262 posts
Re: Scientific Breakthrough Lets SnappyCam App Take 20 Full-Res Photos Per Second
#232jpap, Could you take the 'trimmed' section and create a looping GIF from that? (Can I do that already?)
The whole "living image" sounds nice. If it was possible to create a format, say "AJPEG", out of it, it would be awesome.
Re: Scientific Breakthrough Lets SnappyCam App Take 20 Full-Res Photos Per Second
#233Also, some people were saying that webapp wasn't working for them on some chrome versions. As for me - I've got the 28.0.1500.95 - the culprit was Disconnect extension, which when disabled, allowed the whole application to behave as expected.
Re: Scientific Breakthrough Lets SnappyCam App Take 20 Full-Res Photos Per Second
#234Re: Scientific Breakthrough Lets SnappyCam App Take 20 Full-Res Photos Per Second
#235Earlier quoted context omitted.
We should create a "marketing core" term the same way we have marketing HDD size. I have seen big.little advertised as 8 cores. I think the main advantage of the androids will be the fact that high end devices have generally more RAM than iOS counterparts. So even if the codec cannot be pushed as far as on the iOS the bigger possible buffers can help.
Yes, more RAM definitely helps. On SnappyCam, I had to arbitrarily limit the size of the buffer to a fraction of the system memory because there's no way to know "how much" RAM can be allocated to avoid the dreaded memory warnings until you hit one; and then it's a three strike's out policy: you get two and the third kills the app. The first two are "soft" warnings, but I suspect have a lower threshold than the "hard…
Re: Scientific Breakthrough Lets SnappyCam App Take 20 Full-Res Photos Per Second
#236This is pretty cool. You got my buck! I was kinda hoping I could also turn the speed down to multiple seconds per photo, since it talks about doing time-lapse shots. One of my major uses for my phone's camera is selfies for art reference, currently done with Genius - which annoyingly won't do repeated shots at anything less than 10 seconds. Being able to take one shot every 1-3 seconds would be pretty damn cool for m…
Thanks! You can reduce the capture rate in the app settings, down to 1 photo per {1, 5, 10, 30, ... } seconds. Move the slider toward the turtle under "Camera Lens". jpap
Re: Scientific Breakthrough Lets SnappyCam App Take 20 Full-Res Photos Per Second
#237Earlier quoted context omitted.
Have you thought about displaying a semi-transparent bar to show the buffer? Or maybe a one or 2 px white mark creeping up the side of the screen (turning to red as it get towards the top)? Just some thoughts. If you have a buffer, and I'm gonna get fubarr'd if I hit the limit, you should probably show me the buffer (not just a warning that it's too late).
Versions 1.x.x of SnappyCam had a linear buffer [1] but I felt it was distracting. I generally can see the "end" of the circular buffer around the shutter button, so it doesn't seem to be an issue for me. Perhaps I tend to touch it on the lower-right instead of dead-center. I made an effort to support lefties in the UI (see Advanced Settings), but the buffer doesn't spin the other way just yet. (To be honest, I've ha…
The red bar on the bottom woul probably be fine of you could make it like 70% transparent until it gets toward the end, the vacillate it between 0% and 50% so it looks like its flashing. Some visual indicator that I should be paying more attention to it.
Re: Scientific Breakthrough Lets SnappyCam App Take 20 Full-Res Photos Per Second
#238Wow, 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 a…
Re: Scientific Breakthrough Lets SnappyCam App Take 20 Full-Res Photos Per Second
#239Earlier quoted context omitted.
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/0…
Just curious, I know nothing about low level ARM stuff. I was wondering is this iPhone/Apple specific tech or is the work you've done portable to other mobile platforms? Congrats on what you've done. I couldn't quite work out whether you've optimized the hell out of the standard DCT algorithms or whether you've come up with new algorithms. If it's the latter would you be able to publish them or would that give away t…
It's like MMX / SSE of x86 world, a set of extra instructions to process many small integers in parallel in one instruction. Since image data are usually independent 3-byte pixels (or 3 planes of 1-byte subpixels, one per color channel), NEON is great for many image-processing tasks.
See e.g. https://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD...