iMovie 10, QuickSync et l’encodage matériel

C’est en tombant sur un des premiers tests du Mac Pro que je me suis posé la question : est-ce qu’iMovie utilise l’encodage matériel ? MacWorld a un résultat qui donne un Mac Pro huit coeurs environ 3,5 fois plus lent qu’un iMac quatre coeurs pour un export. Ils attribuent ce décalage à un bug, mais c’est plutôt lié à l’accélération matérielle. Je m’explique.

Depuis 2011, Intel vend des processeurs avec un encodeur vidéo intégré, QuickSync. Il a notamment été utilisé pour AirPlay, pour envoyer l’image à un Apple TV sans pertes de performances (ou presque). Mais Apple indique que QuickTime, au moins sous Mavericks, peut aussi utiliser QuickSync. Et c’est aussi le cas d’iMovie 10, dernière version en date du logiciel d’Apple.

C’est assez simple à vérifier : j’ai importé une vidéo issue d’un iPhone 5 (1080p, 1 minute 43 seconde) dans iMovie 10 puis dans iMovie 9 sur la même machine (dernières versions en date dans les cas). La machine est un MacBook Air 2012 doté d’un Core i7 (deux coeurs, 2 GHz).

Avec iMovie 9, exporter directement la vidéo prend 7 minutes 46, en 1080p. On obtient un fichier de 265 Mo. Avec iMovie 10, exporter la même vidéo prend seulement 1 minute 24 secondes, pour un fichier de 260 Mo. La différence de qualité n’est pas visible, même si l’encodeur matériel est parfois moins bon.

Au vu des résultats de MacWorld, et étant donné que les résultats entre Mac Pro sont cohérents, c’est a priori l’absence de QuickSync sur les Mac Pro qui joue.

Au passage, exporter la même vidéo en 1080p avec QuickTime prend seulement 22 secondes, mais le fichier est plus petit, donc les réglages sont différents.

Au passage, le processus d’encodage s’appelle ProTranscoderTool_sb, le « _sb » indique a priori Sandy Bridge, le nom de l’architecture CPU de 2011 qui a amené QuickSync.