Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De onderstaande tabel bevat een overzicht van de beschikbare capture stats IMFAttributes voor de metadataset voor kenmerken MFT0's MFSampleExtension_CaptureMetaData die gebruikt wordt voor preview, video en statische opname.
De opgegeven statistieken voor stilstaande beelden zijn verplicht voor elke vastgelegde foto, tenzij anders aangegeven. De opnamestatistieken die worden vermeld voor preview en video, moeten worden geleverd als de beste inspanning en het stuurprogramma kan al dan niet alle opnamestatistieken leveren op alle frames op basis van de beschikbaarheids- en prestatieoverwegingen.
| Naam | Typ | Pincode | Beschrijving |
|---|---|---|---|
| MF_CAPTURE_METADATA_FOCUSSTATE | UINT32 | Voorbeeld | Dit kenmerk bevat de huidige focusstatus die een van de volgende waarden kan aannemen. |
| MF_CAPTURE_METADATA_SENSORFRAMERATE | UINT64 | Voorbeeld | Dit kenmerk bevat de gemeten leessnelheid van de sensor in hertz wanneer een voorbeeldframe wordt vastgelegd, dat bestaat uit een tellerwaarde in de bovenste 32-bits en een noemerwaarde in de lagere 32-bits. |
| MF_CAPTURE_METADATA_FACEROIS | Blob | Voorvertoning, video | Dit kenmerk bevat de gezichtsrechthoekgegevens die door het stuurprogramma zijn gedetecteerd. |
| MF_CAPTURE_METADATA_FACEROITIMESTAMPS | Druppel | Voorbeeld, Video | Dit kenmerk bevat de tijdstempelgegevens voor de gezichts-ROIs die zijn geïdentificeerd in MF_CAPTURE_METADATA_FACEROIS. |
| MF_CAPTURE_METADATA_FACEROICHARACTERIZATIONS | Blob | Voorbeeld, Video | Dit kenmerk bevat de knipper- en/of gelaatsuitdrukkingstoestand van de gezichts-ROIs die zijn geïdentificeerd in MF_CAPTURE_METADATA_FACEROIS. |
| MF_CAPTURE_METADATA_EXPOSURE_TIME | UINT64 | Voorbeeld, stil | Dit kenmerk bevat de blootstellingstijd die is toegepast in 100 nanoseconden |
| MF_CAPTURE_METADATA_EXPOSURE_COMPENSATION | Blob | Voorbeeld, stilstaand beeld | Dit kenmerk bevat een vlag voor een EV-compensatiestap en een EV-compensatiewaarde uitgedrukt in de eenheden van de stap die werd toegepast op de bestuurder toen de foto werd vastgelegd. |
| MF_CAPTURE_METADATA_ISO_SPEED | UINT32 | Voorbeeldweergave, stilstaand | Dit kenmerk bevat de ISO-snelheidswaarde die wordt toegepast als een geheel getal. |
| MF_CAPTURE_METADATA_LENS_POSITION | UINT32 | Voorbeeld, stilstaand beeld | Dit kenmerk bevat de logische lenspositie wanneer de focus is toegepast op de foto die is vastgelegd. Deze waarde heeft geen specifieke eenheid. |
| MF_CAPTURE_METADATA_SCENE_MODE | UINT64 | Nog | Dit kenmerk bevat de scènemodus die is toegepast als een UINT64KSCAMERA_EXTENDEDPROP_SCENEMODE_XXX vlag. |
| MF_CAPTURE_METADATA_FLASH | UINT32 (Boolean) | Voorbeeld, stilstaand beeld | Dit kenmerk bevat een Booleaanse waarde die de flashstatus bevat. Een waarde van 1 geeft aan dat de flits is ingeschakeld en een waarde van 0 geeft aan dat de flits is uitgeschakeld voor de foto die is vastgelegd. |
| MF_CAPTURE_METADATA_FLASH_POWER | UINT32 | Nog | [Optioneel] Dit kenmerk bevat de flashstroom die wordt toegepast als een percentagewaarde tussen 0 en 100. |
| MF_CAPTURE_METADATA_WHITEBALANCE | UINT32 (Kelvin) | Voorbeeld, nog steeds | Dit kenmerk bevat de witbalans die wordt toegepast als een waarde in Kelvin. |
| MF_CAPTURE_METADATA_ZOOMFACTOR | UINT32 (Q16) | Nog | Dit kenmerk bevat de toegepaste zoomwaarde en is dezelfde waarde die kan worden opgevraagd vanuit KSPROPERTY_CAMERACONTROL_EXTENDED_ZOOM in een GET-aanroep. De waarde moet in Q16 staan. |
| MF_CAPTURE_METADATA_EXIF | Blob | Nog steeds | [Optioneel] Dit kenmerk bevat EXIF-metagegevens zoals opgegeven in de sectie blobdefinitie |
| MF_CAPTURE_METADATA_REQUESTED_FRAME_SETTING_ID | UINT32 | Nog steeds | [Optioneel] Dit kenmerk bevat de frame-id voor het bijbehorende frame in de reeks variabele foto's. Dit kenmerk is alleen ingesteld voor een variabele fotoreeksopname. |
| MF_CAPTURE_METADATA_ISO_GAINS | Blob | Voorbeeld | Dit kenmerk bevat de analoge en digitale versterkingen die worden toegepast op de sensor wanneer het voorbeeldframe is vastgelegd. Dit is eenheidloos. |
| MF_CAPTURE_METADATA_WHITEBALANCE_GAINS | Blob | Voorbeeld | Dit kenmerk bevat de witbalanswinsten die worden toegepast op R, G, B door de sensor en\of internetprovider wanneer het voorbeeldframe is vastgelegd. Dit is dimensieloos. |
| MF_CAPTURE_METADATA_HISTOGRAM | Blob | Voorbeeld | Dit kenmerk bevat het histogram wanneer het voorbeeldframe wordt vastgelegd. |
| MF_CAPTURE_METADATA_FRAME_ILLUMINATION | UINT64 | IR-pincode gebruikt voor Hello | Dit kenmerk voor IR-camera's geeft aan of de frames actieve IR-verlichting gebruiken en moeten worden gebruikt in combinatie met FACEAUTH_MODE_ALTERNATIVE_FRAME_ILLUMINATION. |
| Elke aangepaste GUID | Elke variant type | Dit kenmerk bevat de aangepaste gegevens die zijn gekoppeld aan de aangepaste GUID |
MF_CAPTURE_METADATA_FOCUSSTATE
MF_CAPTURE_METADATA_FOCUSSTATE kenmerk bevat de huidige focusstatus die een van de volgende waarden kan aannemen.
typedef enum
{
KSCAMERA_EXTENDEDPROP_FOCUSSTATE_UNINITIALIZED = 0,
KSCAMERA_EXTENDEDPROP_FOCUSSTATE_LOST,
KSCAMERA_EXTENDEDPROP_FOCUSSTATE_SEARCHING,
KSCAMERA_EXTENDEDPROP_FOCUSSTATE_FOCUSED,
KSCAMERA_EXTENDEDPROP_FOCUSSTATE_FAILED,
} KSCAMERA_EXTENDEDPROP_FOCUSSTATE;
MF_CAPTURE_METADATA_SENSORFRAMERATE
MF_CAPTURE_METADATA_SENSORFRAMERATE kenmerk bevat de gemeten leessnelheid van de sensor in hertz op het moment dat een voorbeeldframe wordt vastgelegd; deze snelheid bestaat uit een tellerwaarde in de bovenste 32 bits en een noemerwaarde in de onderste 32 bits.
MF_CAPTURE_METADATA_FACEROIS
MF_CAPTURE_METADATA_FACEROIS kenmerk bevat de gezichtsrechthoekgegevens die door het stuurprogramma zijn gedetecteerd. Standaard moet de driver\MFT0 de gezichtsinformatie in de voorbeeldstroom opgeven. Als het stuurprogramma de mogelijkheid op andere streams adverteert, moet driver\MFT de gezichtsinformatie over de bijbehorende streams opgeven als de toepassing gezichtsdetectie op deze streams inschakelt. Wanneer videostabilisatie is ingeschakeld op de bestuurder, moet de gezichtsinformatie worden verstrekt na de videostabilisatie. In de onderstaande gegevensstructuren wordt de blob-indeling voor MF_CAPTURE_METADATA_FACEROIS beschreven. Het dominante gezicht moet de eerste FaceRectInfo in de blob zijn.
typedef struct tagFaceRectInfoBlobHeader
{
ULONG Size; // Size of this header + all FaceRectInfo following
ULONG Count; // Number of FaceRectInfo’s in the blob
} FaceRectInfoBlobHeader;
typedef struct tagFaceRectInfo
{
RECT Region; // Relative coordinates on the frame that face detection is running (Q31 format)
LONG ConfidenceLevel; // Confidence level of the region being a face ([0, 100])
} FaceRectInfo;
Houd er rekening mee dat FaceRectinfoBlobHeader en FaceRectInfo-structs alleen de blob-indeling voor het kenmerk MF_CAPTURE_METADATA_FACEROIS beschrijven. De structuur van het metagegevensitem voor gezichts-ROIs (KSCAMERA_METADATA_ITEMHEADER + metadata-last voor gezichts-ROIs) wordt bepaald door de driver en moet 8-byte gealigneerd zijn.
Als een stream is geconfigureerd met gezichtsdetectie ingeschakeld en de scène in kwestie geen gezichten bevat tijdens het vastleggen, moet het stuurprogramma nog steeds een dummy-MF_CAPTURE_METADATA_FACEROIS kenmerk koppelen aan elk voorbeeld waaraan geen gezichtsinformatie is gekoppeld. (Het 'dummy' face ROI-attribuut heeft het veld Count van de structuur FaceRectInfoBlobHeader op nul staan.)
MF_CAPTURE_METADATA_FACEROITIMESTAMPS
MF_CAPTURE_METADATA_FACEROITIMESTAMPS kenmerk bevat de tijdstempelgegevens voor de gezichts-ROIs die zijn geïdentificeerd in MF_CAPTURE_METADATA_FACEROIS. Voor het apparaat dat de tijdstempel voor gezichts-URI's niet kan opgeven, moet dit kenmerk worden weggelaten.
In de onderstaande gegevensstructuur wordt de blob-indeling voor MF_CAPTURE_METADATA_FACEROITIMESTAMPS beschreven.
typedef struct tagMetadataTimeStamps
{
ULONG Flags; // Bitwise OR of MF_METADATATIMESTAMPS_XXX flags
LONGLONG Device; // QPC time for the sample where the face rect is derived from (in 100ns)
LONGLONG Presentation; // PTS for the sample where the face rect is derived from (in 100ns)
} MetadataTimeStamps;
Voor het veld Vlaggen definiëren we de volgende bitvlaggen om aan te geven welke tijdstempel geldig is. MFT0 moet de vlaggen instellen op MF_METADATATIEMSTAMPS_DEVICE en de juiste QPC-tijd voor het apparaat als het stuurprogramma de metagegevens van de tijdstempel voor de gezichtsregio's van interesse levert.
#define MF_METADATATIMESTAMPS_DEVICE 0x00000001
#define MF_METADATATIMESTAMPS_PRESENTATION 0x00000002
Houd er rekening mee dat de struct MetadataTimeStamps alleen de blob-indeling voor het kenmerk MF_CAPTURE_METADATA_FACEROITIMESTAMPS beschrijft. De structuur van het metagegevensitem voor tijdstempel (KSCAMERA_METADATA_ITEMHEADER + tijdstempelmetagegevens payload) is afhankelijk van de stuurprogramma en moet 8-byte uitgelijnd zijn.
MF_CAPTURE_METADATA_FACEROICHARACTERIZATIONS
MF_CAPTURE_METADATA_FACEROICHARACTERIZATIONS kenmerk bevat de knipper- en/of de status van gezichtsuitdrukking voor de gezichts-ROIs die zijn geïdentificeerd in MF_CAPTURE_METADATA_FACEROIS. Voor het apparaat dat geen knipper- en/of gezichtsexpressiedetectie ondersteunt, moet dit kenmerk worden weggelaten.
In de onderstaande gegevensstructuur wordt de blob-indeling voor MF_CAPTURE_METADATA_FACEROICHARACTERIZATIONS beschreven.
Let op: FaceCharacterizationBlobHeader en FaceCharacterization-structs beschrijven alleen de blob-indeling voor het kenmerk MF_CAPTURE_METADATA_FACEROICHARACTERIZATIONS. De structuur van metagegevensitems voor de gezichtstekeningen (KSCAMERA_METADATA_ITEMHEADER + nettolading voor gezichtstekeningen) is maximaal stuurprogramma en moet 8 byte zijn uitgelijnd.
typedef struct tagFaceCharacterizationBlobHeader
{
ULONG Size; // Size of this header + all FaceCharacterization following
ULONG Count; // Number of FaceCharacterization’s in the blob. Must match the number of FaceRectInfo’s in FaceRectInfoBlobHeader
} FaceCharacterizationBlobHeader;
typedef struct tagFaceCharacterization
{
ULONG BlinkScoreLeft; // [0, 100]. 0 indicates no blink for the left eye. 100 indicates definite blink for the left eye
ULONG BlinkScoreRight; // [0, 100]. 0 indicates no blink for the right eye. 100 indicates definite blink for the right eye
ULONG FacialExpression; // Any one of the MF_METADATAFACIALEXPRESSION_XXX defined
ULONG FacialExpressionScore; // [0, 100]. 0 indicates no such facial expression as identified. 100 indicates definite such facial expression as defined
} FaceCharacterization;
Hieronder wordt de mogelijke gezichtsexpressie gedefinieerd die kan worden gedetecteerd.
#define MF_METADATAFACIALEXPRESSION_SMILE 0x00000001
Als het MF_CAPTURE_METADATA_FACEROICHARACTERIZATIONS-kenmerk aanwezig is, moeten het aantal en de volgorde van de FaceCharacterization-vermeldingen in de blob overeenkomen met het aantal en de volgorde van de FaceRectInfo-vermeldingen in de blob van MF_CAPTURE_METADATA_FACEROIS. Elke FaceCharacterization-vermelding vertegenwoordigt de knipper- en/of gezichtsexpressiestatus van het gezicht in de bijbehorende FaceRectInfo-vermelding in dezelfde index.
In de onderstaande afbeelding ziet u de indelingen van een face characterizations-blob en een gezichts-ROIs-blob van vier gezichten, met de eerste die niet knippert of glimlacht, de tweede die met het linkeroog knippert, de derde die glimlacht en de vierde die zowel met beide ogen knippert als glimlacht.
MF_CAPTURE_METADATA_EXPOSURE_TIME
MF_CAPTURE_METADATA_EXPOSURE_TIME kenmerk bevat de belichtingstijd die is toegepast op de sensor wanneer een voorbeeld of fotoframe is vastgelegd. Deze waarde is een UINT64 en wordt uitgedrukt in 100 ns.
MF_CAPTURE_METADATA_BELICHTINGSCOMPENSATIE
MF_CAPTURE_METADATA_EXPOSURE_COMPENSATION kenmerk bevat een vlag voor een EV-compensatiestap en een EV-compensatiewaarde in eenheden van de stap die op de sensor wordt toegepast wanneer het voorbeeld en/of het fotoframe zijn vastgelegd.
In de gegevensstructuur hieronder wordt het blob-formaat voor MF_CAPTURE_METADATA_EXPOSURE_COMPENSATION beschreven.
typedef struct tagCapturedMetadataExposureCompensation
{
UINT64 Flags; // KSCAMERA_EXTENDEDPROP_EVCOMP_XXX step flag
INT32 Value; // EV Compensation value in units of the step
} CapturedMetadataExposureCompensation;
Houd er rekening mee dat de struct CapturedMetadataExposureCompensation alleen de blob-indeling voor het kenmerk MF_CAPTURE_METADATA_EXPOSURE_COMPENSATION beschrijft. De structuur van metagegevensitems voor EV-compensatie (KSCAMERA_METADATA_ITEMHEADER + EV-compensatielading) is maximaal stuurprogramma en moet 8 byte zijn uitgelijnd.
MF_CAPTURE_METADATA_ISO_SPEED
MF_CAPTURE_METADATA_ISO_SPEED kenmerken bevatten de ISO-snelheidswaarde die is toegepast op de sensor wanneer het voorbeeld en/of het fotoframe zijn vastgelegd. Dit is eenheidloos.
MF_CAPTURE_METADATA_ISO_GAINS
MF_CAPTURE_METADATA_ISO_GAINS kenmerk bevat de analoge en digitale versterkingen die worden toegepast op de sensor wanneer het previewframe is vastgelegd. Dit is eenheidloos.
In de onderstaande gegevensstructuur wordt de blob-indeling voor MF_CAPTURE_METADATA_ISO_GAINS beschreven.
typedef struct tagCapturedMetadataISOGains
{
FLOAT AnalogGain;
FLOAT DigitalGain;
} CapturedMetadataISOGains;
Houd er rekening mee dat de struct Van CapturedMetadataISOGains alleen de blob-indeling voor het kenmerk MF_CAPTURE_METADATA_ISO_GAINS beschrijft. De structuur van metagegevensitems voor ISO-versterking (KSCAMERA_METADATA_ITEMHEADER + metadata-belasting van ISO-versterking) is aan de stuurprogramma en moet 8 byte zijn uitgelijnd.
MF_CAPTURE_METADATA_LENS_POSITION
MF_CAPTURE_METADATA_LENS_POSITION kenmerk bevat de logische lenspositie wanneer het voorbeeld en/of het fotokader is vastgelegd, wat eenheidsloos is. Dit is dezelfde waarde die kan worden opgevraagd vanuit KSPROPERTY_CAMERACONTROL_EXTENDED_FOCUS in een GET-aanroep.
MF_CAPTURE_METADATA_SCENE_MODE
MF_CAPTURE_METADATA_SCENE_MODE attribuut bevat de scènemodus die is toegepast op de foto die is vastgelegd, wat een KSCAMERA_EXTENDEDPROP_SCENEMODE_XXX 64-bit vlag is.
MF_CAPTURE_METADATA_FLASH
MF_CAPTURE_METADATA_FLASH kenmerk bevat een booleaanse waarde wanneer een voorbeeld en/of fotokader werd vastgelegd, waarbij 1 staat voor flitser aan en 0 voor flitser uit.
MF_CAPTURE_METADATA_FLASH_POWER
MF_CAPTURE_METADATA_FLASH_POWER kenmerk bevat de flitskracht die is toegepast op de foto die is vastgelegd, een waarde in het bereik van [0, 100]. Dit kenmerk moet worden weggelaten als het stuurprogramma geen aanpasbare voeding voor flash ondersteunt.
MF_CAPTURE_METADATA_WHITEBALANCE
Het kenmerk MF_CAPTURE_METADATA_WHITEBALANCE bevat de witbalans die is toegepast op de sensor bij het vastleggen van een voorbeeld en/of een fotografiekader, wat een waarde is in Kelvin.
MF_CAPTURE_METADATA_WHITEBALANCE_GAINS
MF_CAPTURE_METADATA_WHITEBALANCE_GAINS kenmerk bevat de witbalanswinsten die worden toegepast op R, G, B door de sensor en\of internetprovider wanneer het voorbeeldframe is vastgelegd. Dit is een eenheidsloos.
In de onderstaande gegevensstructuur wordt de blob-indeling voor MF_CAPTURE_METADATA_WHITEBALANCE_GAINS beschreven.
typedef struct tagCapturedMetadataWhiteBalanceGains
{
FLOAT R;
FLOAT G;
FLOAT B;
} CapturedMetadataWhiteBalanceGains;
Houd er rekening mee dat de struct CapturedMetadataWhiteBalanceGains alleen de blob-indeling voor het kenmerk MF_CAPTURE_METADATA_WHITEBALANCE_GAINS beschrijft. De structuur van het metagegevensitem voor witbalanswinsten (KSCAMERA_METADATA_ITEMHEADER + metagegevenspayload voor witbalanswinsten) is aan de stuurprogramma-implementatie en moet 8-byte uitgelijnd zijn.
MF_CAPTURE_METADATA_ZOOMFACTOR
MF_CAPTURE_METADATA_ZOOMFACTOR kenmerk bevat de zoomwaarde die is toegepast op de foto die is vastgelegd, dezelfde waarde die kan worden opgevraagd vanuit KSPROPERTY_CAMERACONTROL_EXTENDED_ZOOM in een GET-aanroep. Dit moet in Q16 staan.
MF_CAPTURE_METADATA_EXIF
MF_CAPTURE_METADATA_EXIF bevat EXIF-metagegevens zoals opgegeven in sectie 3.1 (blobdefinitie). MFT0 haalt de onbewerkte EXIF-metagegevens op, die worden geïdentificeerd als een aangepast metagegevensitem (MetadataId >= MetadataId_Custom_Start), vanuit de MF_CAPTURE_METADATA_FRAME_RAWSTREAM buffer die door het stuurprogramma wordt geleverd. MFT0 converteert de onbewerkte gegevens vervolgens naar een MF_CAPTURE_METADATA_EXIF kenmerk.
Blobdefinitie
De blob bestaat uit een volledige TIFF-header, 0e IFD en EXIF-sub-IFD, zoals gedefinieerd door de specificaties EXIF 2.3 en TIFF 6.0. De blob mag geen gegevens vóór de TIFF-header bevatten. De blob mag na het einde van de 0e IFD geen gegevens bevatten. Het is bijvoorbeeld niet geldig om een IFD met miniatuurgegevens op te nemen.
In het volgende diagram, gekopieerd uit de TIFF-specificatie, ziet u de verwachte geheugenindeling:
Hier volgen de vereisten die consistent zijn met de EXIF- en TIFF-specificaties, maar die specifiek worden genoemd voor de nadruk.
- De bytevolgorde moet "little endian" ("II") of "big endian" ("MM") zijn.
- Aanwijzers ("byte offsets" in de TIFF-specificatie) moeten ten opzichte van het begin van de TIFF-header zijn.
Hier volgen de vereisten die meer beperkend zijn dan de EXIF- en TIFF-specificaties:
- De verschuiving naar de volgende IFD moet 0 zijn, dit betekent dat er naar geen aanvullende IFD's wordt verwezen.
- De TIFF-header en de 0e IFD moeten aaneengesloten zijn, dat wil zeggen dat de offset naar de 0e IFD zoals opgeslagen in bytes 4-7, 0x8 moet zijn.
Verplichte EXIF-metagegevens
In de onderstaande sectie worden EXIF-metagegevens beschreven die moeten worden opgenomen in MF_CAPTURE_METADATA_EXIF.
| Naam | EXIF-tag | Beschrijving |
|---|---|---|
| Oriëntatie | 274 | De afbeelding wordt bekeken in termen van rijen en kolommen. Zie EXIF-specificatie voor volledige beschrijving |
| Maak | 271 | De fabrikant van de opnameapparatuur |
| Modelleren | 272 | De modelnaam of het modelnummer van het apparaat |
| XResolution | 282 | Het aantal pixels per resolutie-eenheid in de richting van de afbeeldingsbreedte |
| Y-resolutie | 283 | Het aantal pixels per resolutie-eenheid in de ImageLength-richting |
| Resolutie-eenheid | 296 | De eenheid voor het meten van XResolution en YResolution |
| Software | 305 | Naam en versie van de firmware |
| ColorSpace | 40961 | De informatie over de kleurruimte, meestal sRGB |
| OorspronkelijkeSecundaireTijd | 37521 | Registreren van fracties van seconden die zijn gekoppeld aan de DateTimeOriginal-tag |
| SubSecTimeDigitized | 37522 | Legt fracties van seconden vast die geassocieerd zijn met de tag DateTimeDigitized |
| Belichtingstijd | 33434 | Belichtingstijd in seconden (nauwkeurig tot 0,001s) |
| FNumber | 33437 | Het F-nummer dat wordt gebruikt voor het maken van opnames |
| ISO-snelheidswaarden | 34855 | ISO-snelheidswaarde zoals gedefinieerd in ISO 12322, op basis van verzadiging |
| DateTimeOriginal | 36867 | Datum en tijd waarop de oorspronkelijke afbeeldingsgegevens zijn gegenereerd |
| DateTimeDIgitized | 36868 | De datum en tijd waarop de afbeelding is opgeslagen als digitale gegevens |
| Sluitersnelheidswaarde | 37377 | Sluitertijd in Additief Systeem van Fotografische blootstelling (APEX) eenheden |
| Aperture-waarde | 37378 | De lensopening in APEX-eenheden |
| ExposureBias-waarde | 37380 | Waarde voor blootstellingsbias in APEX-eenheden |
| Metingsmodus | 37383 | AE-metermodus (zie EXIF-specificatie) |
| LightSource | 37384 | Het soort lichtbron (zie EXIF-specificatie) |
| Flits | 37385 | Status van de flash tijdens het vastleggen van afbeeldingen |
| FocalLength | 37386 | De werkelijke brandpuntsafstand van de lens |
| Belichtingsmodus | 41986 | Belichtingsmodus tijdens opname |
| WhiteBalance | 41987 | Witbalansmodus tijdens het vastleggen |
| DigitalZoomRatio | 41988 | Digitale zoomverhouding tijdens het vastleggen van afbeeldingen |
| BrandpuntsafstandIn35mmFilm | 41989 | 35 mm equivalente brandpuntlengte |
| SceneCaptureType | 41990 | Het type scène dat is opgenomen |
Optionele/OEM-gedefinieerde metagegevens
Het camerastuurprogramma kan aanvullende metagegevens bevatten in de vorm van aangepaste EXIF-tags zolang deze voldoet aan de EXIF-specificatie en wordt opgeslagen in de 0e TIFF IFD of de EXIF-sub-IFD.
Vereisten voor MakerNote en verwachtingen voor binaire indeling
Het camerastuurprogramma kan fabrikanteigen informatie bevatten in de vorm van een makernotitie (tag 37500). De makernotitie mag geen aanwijzers bevatten naar of anderszins afhankelijk zijn van gegevens die zich buiten de makernotitie zelf bevinden, inclusief het begin van het bestand en de positie van de TIFF-header. Bovendien mag het geen veronderstellingen maken over de endianiteit van het bestand zoals opgegeven in de TIFF-header.
Over het algemeen geeft het besturingssysteem geen garanties dat de binaire indeling van de metagegevens-blob behouden blijft wanneer deze naar de uitvoer JPEG-stroom wordt geschreven. Het garandeert alleen dat de metagegevens worden weggeschreven in overeenstemming met de EXIF-specificatie. Het garandeert bijvoorbeeld alleen dat de makernotitie wordt gekopieerd als een aaneengesloten blok en wordt geïdentificeerd door de juiste IFD-tag, het type en de offset.
Gebruik met WIC JPEG-encoder
Het beoogde gebruik van MF_CAPTURE_METADATA_EXIF is met de WIC JPEG-encoder (Windows Imaging Component) van het besturingssysteem. Windows Camera-pijplijn maakt gebruik van de Windows WIC JPEG-encoder om EXIF-metagegevens te verwerken die zijn verkregen uit MF_CAPTURE_METADATA_EXIF en combineert dit met afbeeldingspixelgegevens tot een JPEG-bestand wanneer de toepassing geen JPEG rechtstreeks van de camera vastlegt, maar de pijplijn geconfigureerd is om vast te leggen in NV12/YUY2-formaat en dit door het besturingssysteem wordt gecodeerd.
MF_CAPTURE_METADATA_AANGEVRAAGDE_FRAME_INSTELLING_ID
MF_CAPTURE_METADATA_REQUESTED_FRAME_SETTING_ID kenmerk bevat de frame-id voor het bijbehorende frame in de variabele fotoreeks. Dit kenmerk is alleen ingesteld voor een variabele fotoreeksopname.
MF_CAPTURE_METADATA_FRAME_ILLUMINATION
MF_CAPTURE_METADATA_FRAME_ILLUMINATION attribuut voor IR-camera's geeft aan of het frame actieve IR-verlichting gebruikt en moet worden gebruikt in combinatie met FACEAUTH_MODE_ALTERNATIVE_FRAME_ILLUMINATION. Het wordt alleen gebruikt voor IR-voorbeelden en mag niet aanwezig zijn op RGB-frames als de camera zowel IR- als kleurvoorbeelden ondersteunt.
De waarde moet worden ingesteld op 0xXXXXXXXXXXXXXXXXXXXXX1 als frame is vastgelegd wanneer actieve verlichting was ingeschakeld en is ingesteld op 0xXXXXXXXXXXXXXXXXX0 als er geen verlichting aanwezig was bij het vastleggen van het frame.
MF_CAPTURE_METADATA_HISTOGRAM
Het kenmerk MF_CAPTURE_METADATA_HISTOGRAM bevat het histogram wanneer een voorbeeldframe wordt vastgelegd.
In de onderstaande gegevensstructuren wordt de blob-indeling voor MF_CAPTURE_METADATA_HISTOGRAM beschreven.
typedef struct tagHistogramGrid
{
ULONG Width; // Width of the sensor output that histogram is collected from
ULONG Height; // Height of the sensor output that histogram is collected from
RECT Region; // Absolute coordinates of the region on the sensor output that the histogram is collected for
} HistogramGrid;
typedef struct tagHistogramBlobHeader
{
ULONG Size; // Size of the entire histogram blob in bytes
ULONG Histograms; // Number of histograms in the blob. Each histogram is identified by a HistogramHeader
} HistogramBlobHeader;
typedef struct tagHistogramHeader
{
ULONG Size; // Size of this header + (HistogramDataHeader + histogram data following) * number of channels available
ULONG Bins; // Number of bins in the histogram
ULONG FourCC; // Color space that the histogram is collected from
ULONG ChannelMasks; // Masks of the color channels that the histogram is collected for
HistogramGrid Grid; // Grid that the histogram is collected from
} HistogramHeader;
typedef struct tagHistogramDataHeader
{
ULONG Size; // Size in bytes of this header + histogram data following
ULONG ChannelMask; // Mask of the color channel for the histogram data
ULONG Linear; // 1, if linear; 0 nonlinear
} HistogramDataHeader;
Voor het veld ChannelMasks definiëren we de volgende bitmaskers om de beschikbare kanalen in het histogram aan te geven.
#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
Opmerkingen:
- Elke blob kan meerdere histogrammen bevatten die zijn verzameld uit verschillende regio's of verschillende kleurruimten van hetzelfde frame
- Elk histogram in de blob wordt geïdentificeerd door een eigen HistogramHeader
- Elk histogram heeft een eigen regio en sensoruitvoergrootte. Voor een volledig frame histogram komt de regio overeen met de sensoruitvoergrootte die is opgegeven in HistogramGrid.
- Histogramgegevens voor alle beschikbare kanalen worden gegroepeerd onder één histogram. Histogramgegevens voor elk kanaal worden geïdentificeerd door een HistogramDataHeader direct boven de gegevens. ChannelMasks geven aan hoeveel en welke kanalen de histogramgegevens hebben. Dit is de bitsgewijze OF van de ondersteunde MF_HISTOGRAM_CHANNEL_XXX bitmaskers zoals hierboven gedefinieerd. ChannelMask geeft aan voor welk kanaal de gegevens zich bevinden, die wordt geïdentificeerd door een van de MF_HISTOGRAM_CHANNEL_XXX bitmaskers die hierboven zijn gedefinieerd.
In de onderstaande figuur ziet u de indeling van een histogram-blob met een volledig frame Y-alleen histogram.
Histogramgegevens zijn een matrix van ULONG, waarbij elke vermelding het aantal pixels vertegenwoordigt dat onder een set tonale waarden valt, zoals gecategoriseerd door de bin. De gegevens in de matrix moeten beginnen van bin 0 naar bin N-1, waarbij N het aantal bins in het histogram is, bijvoorbeeld HistogramBlobHeader.Bins.
In de onderstaande afbeelding ziet u de indeling van de sectie met histogramgegevens.
In de onderstaande afbeelding ziet u de indeling van een histogram-blob met een volledig YRGB-histogram met vier kanalen.
In de onderstaande afbeelding ziet u de indeling van een histogram-blob met een alleen-Y-histogram, gevolgd door een RGB-histogram met drie kanalen.
Voor Drempelwaarde moet minimaal een volledig frame histogram met Y-kanaal worden opgegeven. Dit moet het eerste histogram in de histogram-blob zijn als KSPROPERTY_CAMERACONTROL_EXTENDED_HISTOGRAM wordt ondersteund.
Houd er rekening mee dat HistogramBlobHeader-, HistogramHeader-, HistogramDataHeader- en Histogramgegevens alleen de blob-indeling beschrijven voor het kenmerk MF_CAPTURE_METADATA_HISTOGRAM. De structuur van een histogram metagegevensitem (KSCAMERA_METADATA_ITEMHEADER + alle histogrammetagegevenslading) ligt bij de stuurprogramma en moet worden uitgelijnd op 8 bytes.
Besturingselement voor histogrammetagegevens
KSPROPERTY_CAMERACONTROL_EXTENDED_HISTOGRAM is een eigenschaps-id die wordt gebruikt om de histogrammetagegevens te beheren die door het stuurprogramma worden geproduceerd. Dit is een controle op pinniveau die alleen geldt voor een voorbeeldpin en is als volgt gedefinieerd:
typedef enum {
…
#if (NTDDI_VERSION >= NTDDI_WIN8)
KSPROPERTY_CAMERACONTROL_EXTENDED_HISTOGRAM
#endif
} KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY;
Voor KSCAMERA_EXTENDEDPROP_HEADER definiëren we de volgende bitvlagmen om de metagegevens van het histogram in het stuurprogramma te beheren. De standaardwaarde is UITGESCHAKELD.
#define KSCAMERA_EXTENDEDPROP_HISTOGRAM_OFF 0x0000000000000000
#define KSCAMERA_EXTENDEDPROP_HISTOGRAM_ON 0x0000000000000001
Dit besturingselement moet worden gebruikt voordat het KSPROPERTY_CAMERACONTROL_EXTENDED_METADATA-besturingselement wordt gebruikt, om ervoor te zorgen dat de juiste metagegevensbuffer wordt toegewezen.
Indien ingesteld op HISTOGRAM_OFF, levert het stuurprogramma de metagegevens van het histogram niet op de previewuitgang. Het stuurprogramma mag de metagegevensgrootte van het histogram niet opnemen in de vereiste voor de grootte van de metagegevensbuffer.
Indien ingesteld op HISTOGRAM_ON, levert het stuurprogramma de metagegevens van het histogram op de preview-pin. Het stuurprogramma moet de metagegevensgrootte van het histogram opnemen in de vereiste voor de grootte van de metagegevensbuffer.
Als het stuurprogramma niet de mogelijkheid heeft om histogrammetagegevens te produceren, moet het stuurprogramma dit besturingselement niet implementeren. Als het stuurprogramma dit besturingselement ondersteunt, moet het ook KSPROPERTY_CAMERACONTROL_EXTENDED_METADATA besturingselement ondersteunen.
De SET-aanroep van dit besturingselement heeft geen effect wanneer de preview-pincode een hogere status heeft dan de status KSSTATE_STOP. Het stuurprogramma weigert de SET-aanroep als de preview zich niet in de stopstatus bevindt en retourneert STATUS_INVALID_DEVICE_STATE. In een GET-aanroep moet het stuurprogramma de huidige instellingen in het veld Vlaggen retourneren.
Dit is een synchrone controle. Er zijn geen mogelijkheden gedefinieerd voor dit besturingselement.
KSCAMERA_EXTENDEDPROP_HEADER
Versie
Moet 1 zijn.
PinId
Moet de Pin-ID zijn die is gekoppeld aan de voorbeeldpin.
Grootte
Moet sizeof(KSCAMERA_EXTENDEDPROP_HEADER) + sizeof(KSCAMERA_EXTENDEDPROP_VALUE) zijn
Resultaat
Geeft de foutresultaten van de laatste SET-bewerking aan. Als er geen SET-bewerking heeft plaatsgevonden, moet dit 0 zijn.
Vermogen
Moet 0 zijn.
Vlaggen
Dit is een lees-/schrijfveld. Dit kan een van de hierboven gedefinieerde KSCAMERA_EXTENDEDPROP_HISTOGRAM_XXX vlaggen zijn.
KSCAMERA_EXTENDEDPROP_VALUE
Niet gebruikt