Selon cnx-software, les décodeurs vidéo VDPU381 et VDPU383 sont intégrés dans les SoC Rockchip RK3588 et RK3576, ainsi que dans leurs variantes comme le RK3588S et le RK3576J. Alors que le décodage vidéo matériel dépendait auparavant du Rockchip BSP, Collabora a récemment annoncé le support Linux en amont pour le décodage des formats H.264 (AVC) et H.265 (HEVC) pour ces SoC RK3588 et RK3576.
17 correctifs et prise en charge complète H.265/H.264 pour RK3588
La mise en œuvre de la compatibilité pour le décodage vidéo H.265 et H.264 comprend une série de 17 correctifs. Ces correctifs ajoutent le support nécessaire pour le décodeur, ainsi que de nouvelles liaisons dt et des nœuds dans l’arborescence des périphériques. En outre, la version récente introduit des contrôles V4L2 HEVC UAPI pour gérer les ensembles d’images de références (RPS) à court et à long terme avec une gestion explicite des ressources. Cette fonctionnalité est cruciale pour les décodeurs vidéo VDPU381 et VDPU383, contrairement à certains décodeurs concurrents comme ceux de VeriSilicon qui n’honorent pas ces exigences.

IOMMU et gestion avancée des registres : vers une performance optimisée
En matière de gestion des paiements IOMMU, un problème particulier est noté. Intégré aux décodeurs Rockchip, lorsque le décodeur est réinitialisé, l’IOMMU interne est également réinitialisé, ce qui efface tous les mappages d’adresses. Le noyau peut encore considérer ces mappages comme valides après une réinitialisation, mais un récent correctif a été mis en place pour restaurer explicitement les mappages IOMMU mis en cache après une telle réinitialisation, influençant également d’autres blocs IP tels que l’accélérateur graphique RGA 2D.
Les registres du décodeur Rockchip, qui apparaissent avec des valeurs par défaut dans la documentation technique, peuvent se voir en désaccord avec l’état réel du matériel si certaines écritures sont ignorées. Les ingénieurs de Collabora ont ainsi déterminé qu’il était préférable de s’assurer que tous les registres reçoivent des écritures, même lorsqu’il s’agit de valeurs par défaut, car l’ordre d’écriture joue également un rôle vital. Pour cette raison, ils se sont orientés vers une programmation basée sur une structure C.
Fusion dans Linux 7.1 et avenir prometteur pour RK3588
Les supports pourraient être intégrés dans Linux 7.1, attendu dans quelques mois, car Linux 6.19 a été publié en début février et Linux 7.0 est programmé pour début avril. Bien que cela puisse paraître frustrant pour les utilisateurs souhaitant de nouveaux processeurs avec le support Linux-principal, il est rassurant de constater que des progrès sont réalisés.
Pour l’avenir, Collabora se concentre sur la prise en charge multicœur sur le RK3588, qui dispose de deux cœurs de décodeur VDPU381. Des travaux vont également porter sur l’implémentation du décodage AV1 sur le RK3576 et du VP9 sur le RK3588, ainsi que sur l’inclusion du décodeur VDPU346, une variante du VDPU381 trouvée sur les SoC RK356X. Pour des informations plus détaillées, un résumé complet des changements est présenté sur le site de Collabora.
