Depuis iOS 11, quand vous prenez une photo avec votre iPhone, celle-ci est enregistrée en HEIF/HEIC, un nouveau format qui offre une meilleure compression que le JPEG. À qualité équivalente, une image HEIF peut être jusqu’à deux fois moins lourde qu’un JPEG.
Pourquoi ne pas tirer parti de ce nouveau format pour réduire la taille des contenus mis en cache par une application ? C’est ce qu’a expérimenté PSPDFKit, le créateur de PDF Viewer Pro. Et surprise, les résultats ne sont pas toujours positifs.
Dans un billet de blog, l’éditeur commence par expliquer que son application a besoin de mettre en cache le résultat d’un rendu de PDF, sans quoi il faudrait recalculer de zéro chaque page à chaque défilement, ce qui aurait un impact important sur la batterie en fin de course.
Ce contenu en cache est encodé en JPEG. Est-ce que l’encoder en HEIF à la place permet de réduire l’espace occupé ? La réponse est oui. Pour une image en qualité originale, un HEIF est 10 % plus petit qu’un JPEG, et pour une image dont la qualité est réglée à 90 %, on gagne 20 % d’espace.
Si cet aspect est positif, c’est quand vient le moment d’encoder ou de décoder le HEIF que les choses se détériorent. Les tests menés sur trois appareils récents (iPhone XS Max, iPad Pro 10,5“, iPad Pro 11”) donnent tous les mêmes résultats : le décodage du cache en HEIF prend deux fois plus de temps que son équivalent en JPEG.
Concernant l’encodage, à qualité 100 %, l’opération est un poil plus rapide en HEIF, mais quand on règle la qualité sur 90 %, le JPEG reprend l’avantage. Ces résultats sont étonnants dans la mesure où, depuis l’A9, le processeur des terminaux iOS est censé savoir décoder/encoder matériellement le HEIC, c’est-à-dire de manière efficace.
Ces mauvaises performances empêchent donc PSPDFKit d’exploiter le HEIF dans son application pour le moment. Dans le cas présent, utiliser le HEIF à la place du JPEG reviendrait à réduire un petit peu la place occupée par le cache, mais surtout à ralentir considérablement l’affichage des PDF. Ce manque d’optimisation vaut pour ce cas précis. L’application Photos gère parfaitement les HEIF et des applications tierces, comme les éditeurs d’images, semblent bien s’en accommoder.