HEIF : comment Apple abandonne JPEG

Anthony Nelzin-Santos | | 15:00 |  103

En adoptant le HEIF, Apple met un premier clou dans le cercueil du JPG, et promet d'enterrer le (faux) débat sur la prononciation de « GIF ». Pour bien comprendre ce nouveau format graphique, il faut d'abord parler… de vidéo. Pour Apple en effet, le HEIF ne peut pas être dissocié du HEVC, le successeur annoncé du H.264.

Apple adopte HEVC contre l'AV1 de Google

La norme de codage vidéo HEVC, aussi connue sous le nom de MPEG-H Part 2 (ISO et IEC) ou de H.265 (ITU), a été publiée en avril 2013. Quatre ans plus tard, elle n'a guère été adoptée que par les fabricants de Blu-ray… alors même qu'elle a été pensée pour le streaming. Dépités que le MPEG LA ne souhaite placer HEVC sous le même régime de licence d'exploitation que le H.264, les grands acteurs de la diffusion de vidéos sur internet ont préféré développer une alternative gratuite et libre, AV1.

Un codec placé sous la protection d'une Alliance for Open Media qui réunit Google et Microsoft, Amazon et Netflix, AMD et Nvidia, Mozilla et Adobe… mais pas Apple. La firme de Cupertino parie sur HEVC, qui sera pleinement pris en charge par iOS 11 et macOS High Sierra. HEVC reçoit le soutien d'un acteur de premier plan avant même que l'AV1, dont Google est le principal promoteur, ne soit finalisé. Il y a là les germes d'une nouvelle guerre des formats, dont le monde de la vidéo est malheureusement coutumier.

HEVC contre H.264 : à qualité égale, le premier pèse deux fois moins que le second. Image Qualcomm.
HEVC contre H.264 : à qualité égale, le premier pèse deux fois moins que le second. Image Qualcomm.

Le codage HEVC repose sur la prédiction temporelle et la précision spatiale, comme H.264, mais emploie des techniques d'analyse et de compression plus perfectionnées et plus exigeantes. Elles permettent, selon Apple, d'améliorer la compression de 40 % en moyenne. Autrement dit, une vidéo encodée avec HEVC demandera moins de bande passante qu'une vidéo encodée avec H.264 à qualité équivalente, ou sera de meilleure qualité à bande passante constante.

La bande passante étant le principal facteur limitant l'adoption de la vidéo 4K, l'intérêt est évident pour de futurs Apple TV. Il est même immédiat pour l'iPhone : les vidéos filmées en 4K prendront jusqu'à deux fois moins de place avec HEVC, ce qui devrait réjouir les propriétaires d'appareils dotés de « seulement » 16 ou 32 Go de stockage. En contrepartie, l'encodage et le décodage demandent une plus grande puissance de calcul, et donc du matériel plus récent.

Apple prend en charge les trois « profils » HEVC principaux : main (le profil principal avec un profondeur de couleur de 8 bits), main 10 (avec une profondeur de couleurs de 10 bits), et main still picture (pour les images statiques). Tous les appareils compatibles avec iOS 11 ou macOS High Sierra peuvent décoder logiciellement des fichiers avec le profil main, mais seuls les appareils dotés d'un processeur Apple A9 ou Intel Core de sixième génération (Skylake) peuvent le faire matériellement.

Passez au profil main 10, et vous devrez utiliser un Mac à processeur Intel Core de septième génération (Kaby Lake). Par ailleurs, rien ne garantit qu'un appareil capable de décoder un fichier HEVC soit capable de l'afficher en temps réel. Un iPhone 5s, par exemple, n'est pas capable d'afficher une vidéo 4K encodée avec HEVC à 30 i/s (mais sait la décoder, et donc la convertir — lentement — dans un autre format).

HEIF : HEVC appliqué aux images

HEIF (dites « if », pas « H. E. I. F. ») est aussi un standard, publié quant à lui en 2015. Quitte à devoir changer de format, Apple cherchait un format capable de résoudre tous ses problèmes à la fois :

  • la plupart des encodeurs JPG ne prennent pas en charge la transparence, et les formats qui la prennent en charge facilement comme le GIF ou le PNG ne sont pas les plus légers ;
  • une photo n'est plus nécessairement le produit d'une capture isolée réalisée à un instant précis, mais peut faire partie d'une séquence (rafale, mapping 3D) ou d'une animation (GIF, Live Photo) ;
  • une photo n'est plus nécessairement une ressource statique purement graphique, mais peut-être accompagnée de vidéos, de son et de texte ;
  • dans ce cas, il est préférable d'utiliser la même méthode de compression pour l'image et la vidéo ;
  • un « fichier image » ne représente qu'un état de la photo, et pas l'ensemble de ses états lors la capture (HDR) et des multiples opérations d'édition (rotation, rognage, ajustement et retouche) ;
  • il n'est plus forcément souhaitable d'enregistrer les informations de capture dans un même fichier (accès à la carte de disparité des images capturées avec un double objectif, ou aux données de détection des visages et des objets) ;
  • et enfin, l'affichage d'une image demande une puissance de calcul de plus en plus grande, les images l'étant tout autant.

Seul un format de conteneur, c'est-à-dire un fichier contenant d'autres fichiers, peut répondre à l'ensemble de ces questions. Apple aurait pu se tourner vers BPG, mais il ignore tout des versions dérivées et des données de profondeur. Seul HEIF correspond parfaitement à ses besoins — pour ne rien gâcher, il est basé sur le format de fichier média ISO, qui dérive lui-même du format de conteneur QuickTime… d'Apple.

La structure d'un fichier HEIF. Image Nokia Technologies.
La structure d'un fichier HEIF. Image Nokia Technologies.

Apple encode toutes les ressources graphiques placées dans un conteneur HEIF avec HEVC, pour former un fichier .heic. Les fichiers produits par d'autres systèmes pourraient contenir des ressources encodées différemment : iOS et macOS afficheront l'extension .avci avec H.264, .heif dans les autres cas. Grâce à la compression HEVC, une photo HEIF pèse deux fois moins lourd qu'une photo JPG : voilà qui devrait suffire à justifier cette transition.

Une transition « transparente »

Apple assure que cette transition sera « transparente »… mais le diable se cache dans les détails. Tous les iPhone et iPad sous iOS 11 et tous les Mac sous macOS High Sierra pourront lire des fichiers HEIF, mais seuls les appareils dotés d'un processeur Apple A9 ou Intel Core de sixième génération (Skylake) bénéficieront de l'accélération matérielle. La création de fichiers HEIF accélérée matériellement est réservée aux iPhone 7 et aux nouveaux iPad.

L'application Appareil photo d'iOS 11 enregistre les photos en HEIF et encode les vidéos en HEVC, à l'exception des rafales, qui attendront sans doute de futurs appareils plus puissants. Toutes les couches d'iOS et de macOS touchant aux graphismes comprennent et utilisent les deux formats : FaceTime s'accomode mieux des connexions faiblardes depuis trois ans qu'il utilise HEVC ; l'affichage des panoramas devrait être plus fluide, les images étant découpées en « tuiles » de 512 pixels de côté et chargées progressivement grâce à HEIF.

HEIF contre JPEG. À qualité constante (en bas), le HEIF pèse 20 % de moins que le JPEG. Les images prises avec un iPhone sont environ deux fois plus légères en HEIF qu'en JPEG. Image Nokia Technologies, qui propose plusieurs comparaisons du genre sur son site dédié au HEIF.
HEIF contre JPEG. À qualité constante (en bas), le HEIF pèse 20 % de moins que le JPEG. Les images prises avec un iPhone sont environ deux fois plus légères en HEIF qu'en JPEG. Image Nokia Technologies, qui propose plusieurs comparaisons du genre sur son site dédié au HEIF.

Apple utilisera systématiquement HEIF et HEVC à l'intérieur de son écosystème. (Les captures de l'écran des appareils iOS sont toujours enregistrées au format PNG, peut-être parce qu'Apple ne prend pas — encore – en charge la compression HEVC sans perte.) Une photo prise avec votre iPhone 7 Plus sous iOS 11 apparaitra donc comme un fichier HEIF dans Photos sur votre MacBook Pro sous macOS High Sierra.

Envoyez cette photo via AirDrop, d'abord à un iPad sous iOS 11, puis à un MacBook Air sous macOS Sierra. Votre premier destinaire recevra un fichier HEIF, votre deuxième destinaire recevra un fichier JPEG. Envoyez-la par e-mail et sur Twitter, et elle sera systématiquement convertie en JPEG. La même logique s'applique aux fichiers HEVC, transmis tel quel aux appareils compatibles, mais transcodés en H.264 sinon.

La prise en charge des photos HEIF par les navigateurs est encore… inexistante. Nokia Technologies, autre grand promoteur de ce format, propose toutefois une implémentation d'un lecteur HEIF en JavaScript. Sa galerie d'exemples offre d'ailleurs un bon aperçu des possibilités de ce format, et quelques idées de présentation des images « enrichies » fort intéressantes. Cela promet.

Catégorie : 
Tags : 

Les derniers dossiers sur iGeneration

Ailleurs sur le Web


103 Commentaires Signaler un abus dans les commentaires

avatar v1nce29 12/06/2017 - 11:07

Il y en a qui sont tellement dans l'écosystème d'Apple qu'ils ne se rendent pas compte qu'il y a une vie en dehors.

avatar Alain Berset 12/06/2017 - 15:14 (edité)

@pocketalex: Il y a toujours des exemples de tous bords, mais je pensais au Thunderbolt qui est remplacé aujourd'hui par l'USB-C (ENFIN un format plus standard) et qui m'oblige à remplacer tous mes accessoires dont certains que j'avais même commandé aux US pour trouver le format. Le Quicktime? A chaque fois que j'envoie un fichier à un ami, je suis obligé de vérifier que ce ne soit pas un .mov car aujourd'hui, la plupart n'installe plus quicktime et n'arrivent plus à le lire (au-moins avant Windows Media Player le faisait, dans Windows 10 ils ont carrément retiré le codec) et ça ne change pas que le fond soit du x.264 puisque la forme ne l'est pas. L'AAC? Même chose...

Moi qui suis entièrement sous l'écosystème Apple, ça va encore, et encore, comme je le disais, Lightning, Thunderbolt, ... tout change tout le temps et m'oblige à tout racheter, mais dès que je sors chez des amis (et je dois avouer que j'en ai beaucoup qui ont quittés le Mac pour du Windows 10) je suis obligé de tout convertir.

D'où mon coup de gueule. En théorie, tu as peut-être raison pocketalex, mais pas dans la pratique.

avatar pocketalex 12/06/2017 - 16:25

@Alain

Merci pour ta réponse ! Je ne cherche pas à "avoir raison" :) par ailleurs toi tu à bien raison de soulever les soucis de normes qui changent régulièrement, entre autre chez Apple (Firewire > Thunderbolt 1 > Thunderbolt 2 > TB3 en USB-C) mais pas que, c'est la vie de l'informatique et chez nos amis PC aussi on en voit passer qui passent et disparaissent (Sata, IDE, les sockets des CPU, etc)

Par ailleurs, le TB3 en USB-C permet de connecter ses anciens périphériques via un adaptateur et prépare tout de même l'avenir avec une bande passante vraiment confortable, si ce n'est indispensable (montage 4K, etc)

Concernant Quicktime, c'est tout de même une techno "de travail" qui sert "à travailler", et pour diffuser (ou transmettre à quelqu'un) le MP4 / H264 est tout de même plus approprié car taillé pour la lecture, universel, léger.

Un exemple, pour le montage vidéo, il est préférable de travailler sur des flux Quicktime en ProRes, lourds car peu compressés (on garde la qualité) et permettant à la tête de lecture de se balader dedans sans requérir de puissance CPU, du coup c'est fluide même sur des petites configs, la qualité est conservée, etc
Et une fois le projet terminé, il est préférable de le communiquer en mp4 (h264) car très léger, lisible MAC/PC/Linux/iOS/Android/TV box/consoles/Facebook/Twitter/Tumblr/Instagram

L'inverse est possible, monter à partir de mp4 et communiquer des Quicktime mais totalement inadapté.
Dans le premier cas parceque le mp4 va bouffer des ressources CPU à mort, donc pas adapté au montage si ce n'est de faire fumer un i7 7700k gavé de RAM pour avoir un minimum de fluidité
Dans le second cas parcequ'on envoie un format "de travail" à des gens qui risquent de ne pas le lire, comme ton exemple des Quicktime envoyés à des PC

Pages