The first trick with photos is always the best: download while the user is doing interaction. For example, you might see this interaction:
- Take photo
- Play around with filters, color, and cropping
- Click Send
- Be amazed at how fast it was!
What happened was:
- Take photo
** Start uploading photo data
- Play around with filters, color, and cropping
** Photo data finishes updating
- Click Send
** Send current filter settings up, which is a small packet of data
** Reapply the filters to large photo that was uploaded. Tell you are done.
There are other tricks:
- Do the visible first. For example, compute some downsampled results when a user touches a control. You can visually 'apply' results when dragging, but really only and 320x180 image. Similarly, a spreadsheet first updates the visible page and then worries about the future.
- Learn the hardware. Applying a 4x4 simple transform matrix to rotate and stretch a 3D graphic takes about 16 million operations on 1000x1000 image. Or 1 million using the right instructions. Or 1 using the right video instructions.
It's a wonderful, large field. Aiming at just one effect may get you more lot than trying to learn about the field and noticing what gives you the effect.