Просто подумал, что поделюсь немного данными о производительности декомпрессии ...
Я делаю прототип 360-градусного средства просмотра - карусели, где пользователь может прокручивать серию фотографий, сделанных под разными углами, чтобы создать впечатление, что он может плавно вращать объект.
Я загрузил данные изображения в массив NSData, чтобы исключить ввод-вывод файлов из уравнения, но создать NSImage на лету. Тестирование с почти максимальной частотой кадров (~ 25 кадров в секунду) и просмотр в инструментах, я вижу, что приложение явно связано с ЦП, и загрузка ЦП увеличивается примерно на 10%, показывая ~ 275 кб в формате png по сравнению с ~ 75 кб в формате jpg.
Я не могу сказать точно, но я предполагаю, что ограничение ЦП обусловлено общим выполнением программы и перемещением всех данных в памяти, но эта распаковка изображения выполняется на графическом процессоре. В любом случае аргумент производительности JPG и PNG выглядит в пользу JPG, особенно когда принимаются во внимание меньшие размеры файлов (и, следовательно, меньшие размеры объектов в памяти, по крайней мере, в некоторых частях цепочки).
Конечно, все ситуации индивидуальны, ничто не заменит тестирование ...