Collaboraは、Rockchip RK3588およびRK3576システムオンチップでのH.264およびH.265ハードウェアビデオデコーディングに対するメインフレームLinuxサポートを発表しました。この開発により、これらの機能のためのベンダー固有のBSPカーネルへの依存が終了します。更新には新しいAPIコントロールとハードウェア問題の修正が含まれます。
Rockchip RK3588およびRK3576 SoC、およびRK3588SやRK3576Jなどのバリアントは、それぞれVDPU381およびVDPU383ビデオデコーダーを搭載しています。これまで、H.264 (AVC)およびH.265 (HEVC)形式のハードウェアデコーディングにはRockchip BSPカーネルが必要でした。Collaboraの最近の作業は、デコーダー機能、デバイスツリーバインディング、およびノードを追加する17パッチシリーズにより、アップストリームLinuxサポートを導入します。 主な強化点には、短期および長期参照画像セット(RPS)を扱うための新しいV4L2 HEVCユーザースペースAPIコントロールが含まれます。これらのコントロールはVDPU381およびVDPU383デコーダーにとって不可欠であり、他のいくつかがこれらを回避できるのとは異なります。ユーザースペースアプリケーションは現在、カーネルに完全なRPSテーブルを提供する必要があります。これらのコントロールのサポートはGStreamer 1.28に追加され、FFmpegに予備統合され、Vulkan Video Decodeとの互換性を促進します。Virtual Stateless Decoder (visl)ドライバもすべてのコントロールパラメータをトレースするよう更新されました。 注目すべき修正はIOMMU復元問題に対処します:IOMMUがデコーダーに埋め込まれているため、リセットはアドレスマッピングをクリアしますが、カーネルは以前これらを有効として扱っていました。パッチはリセット後にキャッシュされたマッピングを復元し、RGA 2Dグラフィックスアクセラレータなどの他のRockchip IPブロックに影響します。 レジスタプログラミングについては、すべてのレジスタが正しい順序で設定されることを保証するため、デフォルト値でも一貫性を防ぐためにアドホック書き込みではなくC構造体ベースのモデルを採用しました。このアプローチは完全性を促進し、マルチコア使用に備えます。 パッチはLinux 6.19の2月リリースから約3ヶ月後のLinux 7.1にマージされる予定です。Collaboraの今後の取り組みには、RK3588でのマルチコアデコーディング、RK3576向けAV1サポート、RK3588向けVP9、RK356X SoC向けVDPU346互換性が含まれます。詳細なまとめはCollaboraのウェブサイトで入手可能です。