このプロジェクトについて
libplaceboは、元々mpvから派生したGPU加速ビデオ処理およびレンダリングアルゴリズムのスタンドアロンライブラリです。GPUプログラミング、色空間、サブサンプリング、画像メタデータの詳細を階層化APIの背後に隠蔽しつつ、大規模アプリケーション向けの低レベル制御も可能に設計されています。
レンダリング機能には、Jincなどのポーラーフィルターを用いた最適化されたアップスケーリングとダウンスケーリング、アンチエイリアシング、アンチリンギング、ガンマ補正スケーリングが含まれます。動的HDRトーンマッピングは、リアルタイムシーンヒストグラム測定、シーン変化検出、露出制御、知覚的色域ストレッチ、コントラスト回復を提供します。Dolby Visionサポートには、プロファイル5のHDR/PQまたはSDRへの変換、サイドデータの読み取り、関連依存関係がビルド時に存在する場合のリシェイピングが含まれます。
カラーマネジメントエンジンは、ソフト色域マッピング、ICCプロファイル、ITU-R BT.1886エミュレーション、黒点補償、カスタム.cube 3DLUTをサポートします。カスタムシェーダーシステムはGLSLまたはmpv .hookシェーダーを取り込むことができ、RAVU、FSRCNNX、Anime4Kなどのユーザーシェーダーの使用を可能にします。ライブラリはさらに、AV1およびH.274フィルムグレイン合成、デバンディング、YADIFスタイルのデインターレース、誤差拡散を含むガンマ補正ディザリングを提供します。
対応グラフィックスバックエンドは、Vulkan 1.2(MoltenVKを含む)、GLSL 130以降のOpenGL、OpenGL ES 3.0以降、Direct3D 11機能レベル9_1以降です。ダミーのCPU専用インターフェースもエクスポートされます。高レベルヘルパーには、pl_render_imageおよびAVFrameベースのメディアフレームワークとの相互運用が含まれます。
公開APIは階層に整理されています。Tier 0は、ロギング、キャッシング、色空間計算、フィルター、トーンマッピング、色域マッピング、ディザリングヘルパーを提供します。Tier 1は、GPUおよびスワップチェーン抽象化に加え、Vulkan、OpenGL、D3D11、ダミー実装を提供します。Tier 2は、色空間変換、カスタムシェーダー、デインターレース、ディザリング、フィルムグレイン、ICCプロファイル、LUT、サンプリング、デバンディング、スケーリングのためのGLSL生成およびシェーダールーチンを公開します。Tier 3は完全なシェーダーのディスパッチとキャッシュを行い、Tier 4は高レベルレンダラー、オプションフレームワーク、フレームキュー、テクスチャアップロードヘルパー、Dav1dPicture相互運用、FFmpeg libav相互運用を提供します。
プロジェクトには、デモとテスト内にplplayデモプログラムと例が含まれます。VLCではオプションのVulkanベースビデオ出力パスとして、FFmpegではVulkanベースビデオフィルターとして採用されています。
libplaceboはNinjaと共にMesonビルドシステムを使用します。再帰的クローンはバンドルされた依存関係を取り込みますが、ほとんどの依存関係はオプションです。有用なオプションコンポーネントには、glslangまたはshaderc、lcms2、libdovi、コード生成用Python Jinja2を使用したVulkanサポート、glad2によるOpenGLサポート、xxhashが含まれます。テストおよびベンチマークターゲットは設定可能なMesonオプションです。ライブラリはLGPLv2.1以降で配布され、READMEでは特定のユースケースに対してより寛容なBSD2ライセンスが検討される可能性があると記載されています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.