I'm not an Instagram user, so I may be off base... but why not start uploading the photo right when the user snapped it, i.e. before selecting a filter. Then apply the selected filter server-side on the original photo. That way you save a few more seconds while the user is selecting the filter.
What about sending a video stream to the server and then when you hit the button it just sends a timestamp that determines which frame to extract on the server and delete the unneeded ones?