知識マップ: Media FoundationでYUVをRGBに変換する方法

記事「Media FoundationでYUVをRGBに変換する方法」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

この記事は、Media Foundationのdecoderから出る非圧縮フレームがRGBではなくNV12やYUY2のようなY'CbCr系であることを起点に、YUV→RGB変換の2つの経路を整理している。Source ReaderでMF_SOURCE_READER_ENABLE_VIDEO_PROCESSINGを有効にしてRGB32を要求する自動変換は手軽だがsoftware処理でリアルタイム再生には向かず、大量処理や色の制御が必要ならNV12/YUY2を自分で受けてBGRAへ変換する。自前変換ではchroma subsamplingの復元に加え、IMFMediaTypeが持つMF_MT_YUV_MATRIX(BT.601/BT.709)とMF_MT_VIDEO_NOMINAL_RANGEを見て係数とrangeを正しく選び、strideをwidth×bytesPerPixelで決め打ちせずIMF2DBuffer::Lock2Dが返す実際の値を使う必要がある。

Media FoundationでのYUV→RGB変換の知識マップMedia Foundationのdecoderが出すNV12/YUY2などYCbCr系フレームをRGBへ変換する2つの経路と、chroma subsampling・matrix・nominal range・strideという実装上の落とし穴の関係を示す図前提とするで構成できるで構成できる利用する利用する利用する利用する利用する実装を担う利用する推奨される対応前提とするで確認できる推奨される対応利用する利用するで構成できる前提とする利用する利用する利用する利用する利用するYUV→RGB変換NV12ピクセル形式YUY2ピクセル形式クロマサブサンプリング(4:4:4/4:2:2/4:2:0)MF_MT_YUV_MATRIX属性MF_MT_VIDEO_NOMINAL_RANGE属性Y'CbCrIMFSourceReader(Source Reader)MF_SOURCE_READER_ENABLE_VIDEO_PROCESSINGMFVideoFormat_RGB32Video Processor MFTstride(画像の行送りバイト数)IMF2DBuffer::Lock2DIMFMediaTypeIMFAttributesBT.601BT.709Media Foundation

概念間の関係(全23件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

YUV→RGB変換
Media FoundationのdecoderがYUV(Y'CbCr)系で出力する非圧縮フレームを、画像処理や保存で使うRGB系の画素列へ変換する処理。
NV12ピクセル形式
輝度(Y)プレーンと、間引かれた色差(UV)プレーンを持つ4:2:0のYUV系ピクセル形式。幅・高さが偶数である必要がある。
YUY2ピクセル形式
横方向に2画素でU/Vを共有する、packedな4:2:2のYUV系ピクセル形式。幅が偶数である必要がある。
IMFSourceReader(Source Reader)
Media Foundationが提供する、メディアファイルからサンプルを同期的または非同期的に読み出すための入口となるインターフェイス。
MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING
Source Readerに設定すると、内部のsoftware処理でYUV系フレームをRGB32へ自動変換させられる属性。リアルタイム再生向けには最適化されていない。
Video Processor MFT
色空間変換・サイズ変更・インターレース解除・フレームレート変換をまとめて扱えるMedia FoundationのTransform。
stride(画像の行送りバイト数)
画像バッファで1行分が占めるバイト数。幅×1画素のバイト数と一致するとは限らず、行末にpaddingが入ることがある。
IMF2DBuffer::Lock2D
2Dの画像バッファをロックし、scan line 0の先頭ポインタと実際のstrideを取得するMedia FoundationのAPI。
IMFMediaType
IMFAttributesを継承し、major type・subtype・フレームサイズ・色情報などメディア形式の情報を属性として保持するMedia FoundationのCOMインターフェース。
MF_MT_YUV_MATRIX属性
メディアタイプが持つ、YUVからRGBへの変換にBT.601とBT.709のどちらの係数を使うかを示す属性。
Media Foundation
Windowsが提供する、メディアの再生・変換・エンコード/デコードを行うためのCOMベースのフレームワーク。

機械可読データ

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。