As @bubble.trouble kindly mentioned, my plugin Better Uploader does exactly what you need it to do! You can keep files in the browser and do anything you want with them before they get sent to bubble.
If you have some technical knowledge, you could use the “Raw Data” Exposed State inside the Better Uploader plugin and follow the steps here to compress images yourself using a <script></script> tag inside an HTML element and the Raw Data as the source file. Then you would have to save the somewhere and send it to the server.
Otherwise, I am not aware of a file compression plugin. Seems like something that could be achieved using my plugin though, and a little bit of work.
Slightly off subject but when I have a list of S3 URLs in the DB it takes an extremely long time to load those images, even at a lower res. when I view the database it even takes time to load. Any ideas??? I only had 3 data entries.