If your contacts are google-centred, then the photos get uploaded to the google server, and the google server down-scales the quality, which then gets returned to the phone on a synchronize.
As far as I know, I dont think there is anything that can be done about it