L’accélération vidéo dans HandBrake (avec une puce T2)

Récemment, je parlais d’HandBrake et de la possibilité d’utiliser le GPU pour compresser de la vidéo. Depuis, j’ai pu faire quelques tests avec un modèle en T2.

Petit résumé : VideoToolbox est l’API « boîte noire » d’Apple qui permet de compresser et décompresser de la vidéo. En fonction de l’équipement de votre Mac, elle va effectuer les calculs sur le CPU, une carte additionnelle (l’Afterburner des Mac Pro), une puce Apple ou les moteurs de compression et décompression des GPU.

Un modèle avec une puce T2

Dans mes premiers tests, l’encodage H.264 s’effectuait toujours sur l’IGP Intel (même avec des GPU dédiés) et l’encodage H.265 en partie sur l’IGP et un GPU dédié. Mais l’ajout d’un eGPU rapide (une Radeon Vega 64) offre de bien meilleures performances. Depuis, j’ai testé avec un Mac doté d’un puce T2, un MacBook Pro 13 pouces de 2019. Il dispose d’un IGP Intel (l’Iris Plus Graphics 645) et une puce Apple T2. L’IGP Intel offre plus d’unités que l’Intel HD Graphics 630 de mon MacBook Pro – 48 contre 24 – et 128 Mo d’eDRAM, mais le moteur vidéo est normalement le même.

Pour le H.264, l’encodage s’effectue en 2 minutes et 5 secondes (~115 fps). C’est plus rapide que sur mon MacBook Pro, mais de façon marginale et ça vient peu-être de l’eDRAM. C’est l’IGP qui encode et c’est assez visible dans le Moniteur d’activités.

On voit bien l’usage de l’IGP

Pour le H.265, c’est différent. Il faut 2 minutes et 2 secondes (117 fps) et c’est la puce T2 qui encode. L’IGP ne fait rien, le CPU travaille avec HandBrake, mais c’est pour les filtres. En comparaison, le MacBook Pro encode à 45 fps avec l’aide d’une Radeon RX 560 et à 101 fps avec une coûteuse et bruyante Radeon Vega 64. C’est rapide, avec une consommation sans commune mesure.

Assez bizarrement, donc, l’encodage H.264 ne passe pas par la puce T2 (c’est pourtant a priori possible, iOS le fait) et sur certaines machines – genre le Mac Pro et certains MacBook Pro -, il passe par un GPU dédié. C’est évidemment le cas sur toutes les machines qui ne possèdent pas d’IGP Intel (Mac Pro, iMac, etc.).

Reste que cet exemple montre bien l’intérêt des puces d’Apple, qui vont à mon avis remplacer peu à peu les composants « Intel » dans nos Mac.