다음을 통해 공유


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

참고 항목

히스토그램블로브헤더

HistogramDataHeader

히스토그램그리드