FFmpeg Vulkan
Compute Codecs
FFv1 as a production backbone
制作基盤としてのFFv1
Lynne — FFmpeg
1 / why ffv1
Why FFv1
FFv1を選ぶ理由
Lossless. Bit-exact
ロスレス、ビット単位で完全一致
Open standard:
RFC 9043
— free to read, forever
オープン標準:RFC 9043 — 誰でも永久に無料で閲覧可能
No patents. No licensing. No paywalled specs
特許なし、ライセンス料なし、有料仕様書なし
Compare JPEG 2000: ISO spec behind a paywall
対してJPEG 2000:ISO仕様書は有料
Any bit depth: 8–16 bit, float. Any format: RGB, YUV, Bayer
8〜16bit・浮動小数点、RGB / YUV / Bayer対応
Frame checksums built in
フレーム毎のチェックサムを内蔵
v3 frozen — archival-safe. v4 open IETF process — extensible as we need
v3は凍結済みでアーカイブに安全。v4はオープンなIETFプロセスで必要に応じて拡張可能
Design lineage lives on: basis of JPEG XL lossless
設計はJPEG XLロスレスの基礎として受け継がれる
Already the archival standard: Library of Congress, national archives
既にアーカイブ標準:米国議会図書館、各国公文書館で採用
2 / why vulkan
Why Vulkan for codecs
コーデックにVulkanを使う理由
CPUs too slow at high resolution and bit depth
高解像度・高bit深度ではCPUは遅すぎる
Fixed-function hardware: limited formats, vendor-dependent
固定機能ハードウェアは対応形式が限られ、ベンダー依存
Vulkan compute runs on
every
modern GPU
Vulkanコンピュートは全ての最新GPUで動作
One codebase — Windows, Linux, macOS
単一のコードベース — Windows / Linux / macOS
No CUDA. No vendor SDKs
CUDA不要、ベンダーSDK不要
Full codec flexibility, not limited by silicon
シリコンの制約を受けない完全なコーデック柔軟性
Lives in FFmpeg. Ships everywhere FFmpeg ships
FFmpeg本体に統合 — FFmpegが届く所すべてに
3 / ffv1 + vulkan
FFv1 on the GPU
GPU上のFFv1
64 fps
encode & decode — 6K×5K, 16-bit RGB
エンコード&デコード
500 fps
decode — 4K, 10-bit
デコード
Encode and decode, fully on GPU
エンコードもデコードも完全にGPU上で実行
Faster than real time at cinema resolutions
シネマ解像度でリアルタイム超
Detailed benchmarks to follow
詳細ベンチマークは後日
4 / one format
One format, every stage
ひとつのフォーマットで全工程を
FFv1
Camera RAW
Editing
Mezzanine
Mastering
Archival
Streaming
VFX / interchange
カメラRAW
編集
メザニン
マスタリング
アーカイブ
配信
VFX・素材交換
5 / applications
Acquisition
撮影・収録
Native
Bayer
encoding
ネイティブBayerエンコード
Lossless raw camera storage
カメラRAWのロスレス保存
No proprietary raw formats
独自RAWフォーマット不要
Smaller than uncompressed. Bit-exact
非圧縮より小さく、ビット完全一致
6 / applications
Post
ポストプロダクション
Editing: decode fast enough to scrub
編集:スクラブに十分なデコード速度
Mezzanine: one format across the pipeline
メザニン:全パイプラインを単一フォーマットで
Masters:
float
encode and decode
マスター:浮動小数点エンコード&デコード
No generational loss, ever
世代劣化は一切なし
7 / applications
Archival
アーカイブ
Same file from camera to vault
カメラから保管庫まで同一ファイル
Checksummed per frame
フレーム毎にチェックサム
Archival horizon: decades to
centuries
アーカイブの時間軸:数十年から数百年
Free spec + open implementations = decodable in 100 years
無料の仕様書とオープン実装 = 100年後もデコード可能
No dependency on any company, patent pool, or standards fee
企業・パテントプール・標準化団体の料金に依存しない
GPU speed makes archive migration and verification practical
GPU速度で大規模アーカイブの移行・検証が現実的に
8 / apv
APV
1200 fps
encode & decode — consumer GPUs
エンコード&デコード、民生GPU
<1 ms
streaming latency
ストリーミング遅延
Very high performance, intra-only
超高速なイントラオンリーコーデック
IETF standard
IETF標準
Streams individual tiles
as the image is captured
撮像中にタイル単位で逐次伝送
In production:
Kyber
— game streaming by VideoLabs
実運用例:Kyber — VideoLabsのゲームストリーミング
9 / the family
The Vulkan codec family
Vulkanコーデックファミリー
Shipping:
FFv1 · ProRes · ProRes RAW · APV · DPX
提供中:FFv1・ProRes・ProRes RAW・APV・DPX
Shared infrastructure, shared design
共通のインフラと設計
Vendor-independent GPU decode in Blender and others
BlenderほかでベンダーフリーのGPUデコードを実現
10 / next
Ready, pending funding
準備完了 — 資金を待つのみ
JPEG 2000
decoder — DCP playback on GPU
JPEG 2000デコーダー — GPUでのDCP再生
120 fps 4K DCP decode · 280 fps 2K
4K DCPデコード120fps・2K 280fps
Real-time, full-resolution monitoring while mastering DCPs
DCP作成中にフル解像度・リアルタイムで監視可能
DNxHD
encoder and decoder
DNxHDエンコーダー&デコーダー
Code complete. Needs review and merge work
コードは完成済み。レビューとマージ作業が必要
Funding accelerates upstreaming
資金提供でアップストリーム化を加速
Funding buys influence over where the formats go next
資金提供はフォーマットの今後の方向性への影響力に
Discussion
質疑応答
[contact]
1
/
← → · Space · F11 fullscreen · Ctrl+P → PDF