Subiendo Imágenes al Servidor de Android

Quería saber cuál es la mejor manera de cargar la imagen en el servidor sin perder su calidad. He buscado en google encontrado varios métodos de publicación de datos. Pero no estoy seguro de cuál sería mejor subir. Me encontré con

Carga de imágenes multiparte.Subiendo imágenes usando una matriz de bytesSubiendo imágenes usando una cadena codificada en base64.

He intentado la codificación Base64, me lleva a OOM (sin memoria) si la imagen tiene una resolución demasiado alta. Cualquier tutorial que aborde este tema sería apreciado. Gracias por adelantado.