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
히스토그램의 bin 수입니다.
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에 지정된 센서 출력 크기와 일치합니다.
사용 가능한 모든 채널에 대한 히스토그램 데이터는 하나의 히스토그램 아래에 그룹화됩니다. 각 채널의 히스토그램 데이터는 데이터 바로 위에 있는 HistogramDataHeader 로 식별됩니다. ChannelMasks 는 위에서 정의한 대로 지원되는 MF_HISTOGRAM_CHANNEL_ 비트 마스크의 비트 OR인 히스토그램 데이터가 있는 채널 수와 채널을 나타냅니다. ChannelMask는 데이터가 어떤 채널인지를 나타내며, MF_HISTOGRAM_CHANNEL_ 비트 마스크 중 하나로 식별됩니다.
히스토그램 데이터는 각 항목이 bin으로 분류된 색조 값 집합 아래에 떨어지는 픽셀 수를 나타내는 ULONG 배열입니다. 배열의 데이터는 bin 0에서 bin N-1로 시작해야 합니다. 여기서 N은 히스토그램의 bin 수(예: HistogramBlobHeader.Bins)입니다.
Windows 10 경우 KSPROPERTY_CAMERACONTROL_EXTENDED_HISTOGRAM 지원되는 경우 최소한 히스토그램 Blob의 첫 번째 히스토그램이어야 하는 Y 채널이 있는 전체 프레임 히스토그램을 제공해야 합니다. HistogramBlobHeader, HistogramHeader, HistogramDataHeader 및 히스토그램 데이터는 MF_CAPTURE_METADATA_HISTOGRAM 특성에 대한 Blob 형식만 설명합니다. 히스토그램의 메타데이터 항목 구조(KSCAMERA_METADATA_ITEMHEADER + 모든 히스토그램 메타데이터 페이로드)는 드라이버에 달려 있으며 8 바이트를 정렬해야 합니다.
요구 사항
머리글 | mfapi.h |