A dire il vero assumere che una immagine X x Y a n bit occupi XxYxn/8 byte in memoria e' una affermazione del tutto campata in aria. Che occupi quello spazio nella memoria della scheda video e' sicuramente vero, ma non sta scritto da nessuna parte che una immagine venga mantenuta in memoria decompressa, ne' che nel trattamento della stessa questa venga mantenuta decompressa per intero.
Se dovessi fare una classe JPGImage, terrei un buffer interno con i dati compressi, e quando dovessi visualizzarla farei il deconding al volo.
Dovendo poi fare operazioni su delle porzioni dell'immagine, a seconda dell'algoritmo utilizzato e' del tutto plausibile pensare che venga decodificata solo la porzione di immagine necessaria.
E' evidente che software come Photoshop mantiene in memoria l'immagine decompressa, perche' per lo scopo dell'applicazione e' necessario sacrificare il consumo di memoria per avere performance migliori, ma gli algoritmi possono essere i piu' disaparati.