Win32 API 日本語リファレンス
ホームMedia.MediaFoundation › DXVA2_VideoChromaSubSampling

DXVA2_VideoChromaSubSampling

列挙型
基底型i4

メンバー 10

名前10進16進説明
DXVA2_VideoChromaSubsamplingMask150xFフラグ値を検証するためのビットマスクです。この値は有効なフラグではありません。
DXVA2_VideoChromaSubsampling_Unknown00x0エンコード方式が不明です。
DXVA2_VideoChromaSubsampling_ProgressiveChroma80x84:2:0 のインターレースクロマの再構成によるアーティファクトを最小限に抑えるためにフィールドをスキップしたりクロマフィルタリングを適用したりするのではなく、元のビデオがプログレッシブコンテンツであるものとしてクロマを再構成します。
DXVA2_VideoChromaSubsampling_Horizontally_Cosited40x4水平方向に同位置 (cosited) です。クロマサンプルは、ルーマサンプルの整数倍の位置に水平方向で揃えられます。このフラグが設定されていない場合、クロマサンプルは対応するルーマサンプルから右に 1/2 ピクセルの位置に配置されます。
DXVA2_VideoChromaSubsampling_Vertically_Cosited20x2垂直方向に同位置 (cosited) です。クロマサンプルは、ルーマサンプルの整数倍の位置に垂直方向で揃えられます。このフラグが設定されていない場合、クロマサンプルは対応するルーマサンプルから下に 1/2 ピクセルの位置に配置されます。
DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes10x1クロマプレーンが垂直方向に揃えられています。このフラグが設定されていない場合、クロマプレーンは 1/2 クロマサンプル分だけ位相がずれており、Cb と Cr のサンプルは交互のラインに配置されます。
DXVA2_VideoChromaSubsampling_MPEG250x5MPEG-2 ビデオのクロマエンコード方式を指定します。クロマサンプルは水平方向にはルーマサンプルと揃えられますが、垂直方向には揃えられません。U プレーンと V プレーンは垂直方向に揃えられます。
DXVA2_VideoChromaSubsampling_MPEG110x1MPEG-1 ビデオのクロマエンコード方式を指定します。
DXVA2_VideoChromaSubsampling_DV_PAL60x6PAL DV ビデオのクロマエンコード方式を指定します。
DXVA2_VideoChromaSubsampling_Cosited70x7水平方向および垂直方向に同位置 (cosited) です。クロマサンプルは、ルーマサンプルと水平方向および垂直方向で揃えられます。4:4:4、4:2:2、4:1:1 などの YUV 形式は常に両方向で同位置であり、このフラグを使用する必要があります。

公式ドキュメント

YUV ビデオフレームにおいて、クロマ値がルーマサンプルに対してどのように配置されるかを示します。これらのフラグは DXVA2_ExtendedFormat 構造体で使用されます。

解説(Remarks)

最も一般的な配置を次の図に示します。

4:4:4 水平方向および垂直方向に同位置 (cosited)。

4x4 のグリッドを示す図。各セルには 2 つの円 (ルーマ用とクロマ用) が含まれます

4:2:2 水平方向および垂直方向に同位置 (cosited)。

最初の図と同様ですが、2 列目と 4 列目のセルにはルーマのみがあり、クロマはありません

4:1:1 水平方向および垂直方向に同位置 (cosited)。

最初の図と同様ですが、1 列目のセルにのみクロマが含まれます

4:2:0 プログレッシブ、水平方向に同位置 (cosited)。

最初の図と同様ですが、クロマの円は奇数列における奇数行の境界上にのみ現れます 例: MPEG-2 プログレッシブ。

4:2:0 プログレッシブ、水平方向にも垂直方向にも同位置ではありません。

最初の図と同様ですが、クロマの円は奇数行の境界と奇数列の境界が交わる位置にのみ現れます 例: JPEG プログレッシブ。

4:2:0 インターレース、垂直方向に同位置 (cosited)。クロマプレーンは位相がずれています。

2 つの 4x4 の行列を示す図。一方は他方より行の幅の半分だけ下にずれており、各列のクロマの円は Cr と Cb が交互になります 例: DV PAL インターレース。

4:2:0 インターレース、水平方向に同位置 (cosited)。

4 番目の図を 2 つ示した図。一方は他方より行の幅の半分だけ下にずれています 例: MPEG-2 インターレース。

この列挙型は、DXVA 1.0 で使用される DXVA_VideoChromaSubsampling 列挙型と同等です。

ビデオ形式の記述に IMFMediaType インターフェイスを使用している場合、クロマの配置は MF_MT_VIDEO_CHROMA_SITING 属性で指定します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum DXVA2_VideoChromaSubSampling : int {
    DXVA2_VideoChromaSubsamplingMask = 15,
    DXVA2_VideoChromaSubsampling_Unknown = 0,
    DXVA2_VideoChromaSubsampling_ProgressiveChroma = 8,
    DXVA2_VideoChromaSubsampling_Horizontally_Cosited = 4,
    DXVA2_VideoChromaSubsampling_Vertically_Cosited = 2,
    DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes = 1,
    DXVA2_VideoChromaSubsampling_MPEG2 = 5,
    DXVA2_VideoChromaSubsampling_MPEG1 = 1,
    DXVA2_VideoChromaSubsampling_DV_PAL = 6,
    DXVA2_VideoChromaSubsampling_Cosited = 7
} DXVA2_VideoChromaSubSampling;
public enum DXVA2_VideoChromaSubSampling : int
{
    DXVA2_VideoChromaSubsamplingMask = 15,
    DXVA2_VideoChromaSubsampling_Unknown = 0,
    DXVA2_VideoChromaSubsampling_ProgressiveChroma = 8,
    DXVA2_VideoChromaSubsampling_Horizontally_Cosited = 4,
    DXVA2_VideoChromaSubsampling_Vertically_Cosited = 2,
    DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes = 1,
    DXVA2_VideoChromaSubsampling_MPEG2 = 5,
    DXVA2_VideoChromaSubsampling_MPEG1 = 1,
    DXVA2_VideoChromaSubsampling_DV_PAL = 6,
    DXVA2_VideoChromaSubsampling_Cosited = 7,
}
Public Enum DXVA2_VideoChromaSubSampling As Integer
    DXVA2_VideoChromaSubsamplingMask = 15
    DXVA2_VideoChromaSubsampling_Unknown = 0
    DXVA2_VideoChromaSubsampling_ProgressiveChroma = 8
    DXVA2_VideoChromaSubsampling_Horizontally_Cosited = 4
    DXVA2_VideoChromaSubsampling_Vertically_Cosited = 2
    DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes = 1
    DXVA2_VideoChromaSubsampling_MPEG2 = 5
    DXVA2_VideoChromaSubsampling_MPEG1 = 1
    DXVA2_VideoChromaSubsampling_DV_PAL = 6
    DXVA2_VideoChromaSubsampling_Cosited = 7
End Enum
import enum

class DXVA2_VideoChromaSubSampling(enum.IntEnum):
    DXVA2_VideoChromaSubsamplingMask = 15
    DXVA2_VideoChromaSubsampling_Unknown = 0
    DXVA2_VideoChromaSubsampling_ProgressiveChroma = 8
    DXVA2_VideoChromaSubsampling_Horizontally_Cosited = 4
    DXVA2_VideoChromaSubsampling_Vertically_Cosited = 2
    DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes = 1
    DXVA2_VideoChromaSubsampling_MPEG2 = 5
    DXVA2_VideoChromaSubsampling_MPEG1 = 1
    DXVA2_VideoChromaSubsampling_DV_PAL = 6
    DXVA2_VideoChromaSubsampling_Cosited = 7
// DXVA2_VideoChromaSubSampling
pub const DXVA2_VideoChromaSubsamplingMask: i32 = 15;
pub const DXVA2_VideoChromaSubsampling_Unknown: i32 = 0;
pub const DXVA2_VideoChromaSubsampling_ProgressiveChroma: i32 = 8;
pub const DXVA2_VideoChromaSubsampling_Horizontally_Cosited: i32 = 4;
pub const DXVA2_VideoChromaSubsampling_Vertically_Cosited: i32 = 2;
pub const DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes: i32 = 1;
pub const DXVA2_VideoChromaSubsampling_MPEG2: i32 = 5;
pub const DXVA2_VideoChromaSubsampling_MPEG1: i32 = 1;
pub const DXVA2_VideoChromaSubsampling_DV_PAL: i32 = 6;
pub const DXVA2_VideoChromaSubsampling_Cosited: i32 = 7;
// DXVA2_VideoChromaSubSampling
const (
	DXVA2_VideoChromaSubsamplingMask int32 = 15
	DXVA2_VideoChromaSubsampling_Unknown int32 = 0
	DXVA2_VideoChromaSubsampling_ProgressiveChroma int32 = 8
	DXVA2_VideoChromaSubsampling_Horizontally_Cosited int32 = 4
	DXVA2_VideoChromaSubsampling_Vertically_Cosited int32 = 2
	DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes int32 = 1
	DXVA2_VideoChromaSubsampling_MPEG2 int32 = 5
	DXVA2_VideoChromaSubsampling_MPEG1 int32 = 1
	DXVA2_VideoChromaSubsampling_DV_PAL int32 = 6
	DXVA2_VideoChromaSubsampling_Cosited int32 = 7
)
const
  DXVA2_VideoChromaSubsamplingMask = 15;
  DXVA2_VideoChromaSubsampling_Unknown = 0;
  DXVA2_VideoChromaSubsampling_ProgressiveChroma = 8;
  DXVA2_VideoChromaSubsampling_Horizontally_Cosited = 4;
  DXVA2_VideoChromaSubsampling_Vertically_Cosited = 2;
  DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes = 1;
  DXVA2_VideoChromaSubsampling_MPEG2 = 5;
  DXVA2_VideoChromaSubsampling_MPEG1 = 1;
  DXVA2_VideoChromaSubsampling_DV_PAL = 6;
  DXVA2_VideoChromaSubsampling_Cosited = 7;
// DXVA2_VideoChromaSubSampling
pub const DXVA2_VideoChromaSubsamplingMask: i32 = 15;
pub const DXVA2_VideoChromaSubsampling_Unknown: i32 = 0;
pub const DXVA2_VideoChromaSubsampling_ProgressiveChroma: i32 = 8;
pub const DXVA2_VideoChromaSubsampling_Horizontally_Cosited: i32 = 4;
pub const DXVA2_VideoChromaSubsampling_Vertically_Cosited: i32 = 2;
pub const DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes: i32 = 1;
pub const DXVA2_VideoChromaSubsampling_MPEG2: i32 = 5;
pub const DXVA2_VideoChromaSubsampling_MPEG1: i32 = 1;
pub const DXVA2_VideoChromaSubsampling_DV_PAL: i32 = 6;
pub const DXVA2_VideoChromaSubsampling_Cosited: i32 = 7;
const
  DXVA2_VideoChromaSubsamplingMask* = 15
  DXVA2_VideoChromaSubsampling_Unknown* = 0
  DXVA2_VideoChromaSubsampling_ProgressiveChroma* = 8
  DXVA2_VideoChromaSubsampling_Horizontally_Cosited* = 4
  DXVA2_VideoChromaSubsampling_Vertically_Cosited* = 2
  DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes* = 1
  DXVA2_VideoChromaSubsampling_MPEG2* = 5
  DXVA2_VideoChromaSubsampling_MPEG1* = 1
  DXVA2_VideoChromaSubsampling_DV_PAL* = 6
  DXVA2_VideoChromaSubsampling_Cosited* = 7
enum DXVA2_VideoChromaSubSampling : int {
    DXVA2_VideoChromaSubsamplingMask = 15,
    DXVA2_VideoChromaSubsampling_Unknown = 0,
    DXVA2_VideoChromaSubsampling_ProgressiveChroma = 8,
    DXVA2_VideoChromaSubsampling_Horizontally_Cosited = 4,
    DXVA2_VideoChromaSubsampling_Vertically_Cosited = 2,
    DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes = 1,
    DXVA2_VideoChromaSubsampling_MPEG2 = 5,
    DXVA2_VideoChromaSubsampling_MPEG1 = 1,
    DXVA2_VideoChromaSubsampling_DV_PAL = 6,
    DXVA2_VideoChromaSubsampling_Cosited = 7,
}
#define global DXVA2_VideoChromaSubsamplingMask                            0xF
#define global DXVA2_VideoChromaSubsampling_Unknown                        0x0
#define global DXVA2_VideoChromaSubsampling_ProgressiveChroma              0x8
#define global DXVA2_VideoChromaSubsampling_Horizontally_Cosited           0x4
#define global DXVA2_VideoChromaSubsampling_Vertically_Cosited             0x2
#define global DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes 0x1
#define global DXVA2_VideoChromaSubsampling_MPEG2                          0x5
#define global DXVA2_VideoChromaSubsampling_MPEG1                          0x1
#define global DXVA2_VideoChromaSubsampling_DV_PAL                         0x6
#define global DXVA2_VideoChromaSubsampling_Cosited                        0x7