HistogramHeader 構造体 (mfapi.h)
HistogramHeader 構造体は、MF_CAPTURE_METADATA_HISTOGRAMの BLOB 形式を表します。
構文
typedef struct tagHistogramHeader {
ULONG Size;
ULONG Bins;
ULONG FourCC;
ULONG ChannelMasks;
HistogramGrid Grid;
} HistogramHeader;
メンバー
Size
このヘッダーのサイズ + (HistogramDataHeader + ヒストグラム データフォロー) * 使用可能なチャネルの数。
Bins
ヒストグラム内のビンの数。
FourCC
ヒストグラムが収集される色空間
ChannelMasks
ヒストグラムが収集されるカラー チャネルのマスク。
Grid
ヒストグラムの収集元となるグリッド。
解説
MF_CAPTURE_METADATA_HISTOGRAM属性には、プレビュー フレームがキャプチャされるときにヒストグラムが含まれます。
ChannelMasks フィールドの場合、次のビットマスクはヒストグラムで使用可能なチャネルを示します。
#define MF_HISTOGRAM_CHANNEL_Y 0x00000001
#define MF_HISTOGRAM_CHANNEL_R 0x00000002
#define MF_HISTOGRAM_CHANNEL_G 0x00000004
#define MF_HISTOGRAM_CHANNEL_B 0x00000008
#define MF_HISTOGRAM_CHANNEL_Cb 0x00000010
#define MF_HISTOGRAM_CHANNEL_Cr 0x00000020
各 BLOB には、異なるリージョンまたは同じフレームの異なる色空間から収集された複数のヒストグラムを含めることができます。 BLOB 内の各ヒストグラムは、独自の HistogramHeader によって識別されます。 各ヒストグラムには、独自の領域とセンサー出力サイズが関連付けられています。 フル フレーム ヒストグラムの場合、領域は HistogramGrid で指定されたセンサー出力サイズと一致します。
使用可能なすべてのチャネルのヒストグラム データは、1 つのヒストグラムの下にグループ化されます。 各チャネルのヒストグラム データは、データのすぐ上にある HistogramDataHeader によって識別されます。 ChannelMasks は、 ヒストグラム データを持つチャネルの数と数を示します。これは、上記で定義した、サポートされている MF_HISTOGRAM_CHANNEL_ ビットマスクのビットごとの OR です。 ChannelMask は、データの対象となるチャネルを示します。これは、MF_HISTOGRAM_CHANNEL_ビットマスクのいずれかによって識別されます。
ヒストグラム データは ULONG の配列であり、各エントリは、ビン別に分類された一連の色調値の下にあるピクセル数を表します。 配列内のデータは、bin 0 から bin N-1 に始まる必要があります。ここで、N はヒストグラム内のビンの数 ( HistogramBlobHeader.Bins など) です。
Windows 10の場合、KSPROPERTY_CAMERACONTROL_EXTENDED_HISTOGRAMがサポートされている場合は、少なくとも、ヒストグラム BLOB の最初のヒストグラムである Y チャネルを含むフル フレーム ヒストグラムを指定する必要があります。 HistogramBlobHeader、HistogramHeader、HistogramDataHeader、および Histogram データでは、MF_CAPTURE_METADATA_HISTOGRAM属性の BLOB 形式のみが記述されることに注意してください。 ヒストグラムのメタデータ項目構造 (KSCAMERA_METADATA_ITEMHEADER + すべてのヒストグラム メタデータ ペイロード) はドライバーに対して行われ、8 バイトのアラインが必要です。
必要条件
Header | mfapi.h |