센서 그룹 생성(카메라 프로필 V2)
RS1에서 센서 그룹 생성은 동시 프로필의 존재 또는 디바이스 인터페이스 노드의 FSSensorGroupId 필드 선언을 기반으로 했습니다. FSSensorGroupId가 일치하고 디바이스에 모두 동일한 컨테이너 ID가 있는 경우 센서 그룹이 생성됩니다.
동시성 프로필
동시성 프로필의 카메라 프로필 1507에서는 각 디바이스가 동시에 스트리밍할 수 있는 다른 모든 디바이스의 지원되는 동시 미디어 정보를 명시적으로 나열해야 했습니다. 이 요구 사항으로 인해 상당한 양의 중복 정보가 발생했습니다.
동시 프로필 선언을 간소화하기 위해 OEMCameraProfileVersion이 설정되고 버전이 2 이상인 경우 프레임 서버는 프로필 ID를 사용하여 동시성을 확인합니다. FSSensorGroupId는 센서 그룹을 생성하고 해당 디바이스에서 정의한 프로필을 기반으로 프로필 ID가 일치하는 경우 동시 프로필로 간주됩니다.
예를 들어 다음 프로필을 지원하는 두 개의 디바이스(디바이스 1 및 디바이스 2)가 있습니다.
디바이스 | 지원되는 프로필 |
---|---|
디바이스 1 | VideoRecording,0 VideoRecording,1 VideoRecording,2 HighQualityPhoto,0 HighQualityPhoto,1 HighQualityPhoto,2 |
장치 2 | VideoRecording,1 VideoRecording,2 VideoRecording,3 VideoRecording,4 HighQualityPhoto,2 HighQualityPhoto,3 HighQualityPhoto,4 |
그리고 디바이스 1과 디바이스 2 모두 디바이스 인터페이스에서 FSSensorGroupId를 선언하고 동일한 컨테이너 ID를 갖습니다. 프레임 서버는 이러한 두 디바이스에 대한 센서 그룹을 만듭니다.
또한 Frame Server는 일치하는 프로필 ID가 있는 프로필에 대해 두 디바이스 간의 동시성도 게시합니다.
VideoRecording,1
VideoRecording,2
HighQualityPhoto,2
[VideoRecording,1], [VideoRecording,2] 및 [HighQualityPhoto,2] 프로필 ID는 두 디바이스 간에 일반적이므로 프레임 서버는 해당 프로필에 대한 동시 프로필을 게시합니다.
이렇게 하면 개별 카메라가 디바이스 인터페이스 노드에서만 동시 프로필과 함께 프로필을 선언할 수 있습니다.
카메라 프로필 V2에 대한 동시 프로필은 센서 그룹에서 게시한 프로필로 생성됩니다. 애플리케이션 개발자는 프로필이 단일 물리적 디바이스에 속하는지 또는 센서 그룹을 통해 가상화된 디바이스 컬렉션에 속하는지에 관계없이 카메라 프로필 V2를 균일한 방식으로 처리할 수 있습니다.
센서 그룹 프로필
센서 그룹은 가상 구문이므로 센서 그룹에 사용할 수 있는 특정 프로필이 없습니다. 대신 프레임 서버에서 센서 그룹 정보와 함께 가상 프로필 집합을 게시합니다.
샘플 디바이스 1 및 디바이스 2의 경우 결과 센서 그룹의 프로필 집합은 다음과 같습니다.
VideoRecording,0
VideoRecording,1
VideoRecording,2
VideoRecording,3
VideoRecording,4
HighQualityPhoto,0
HighQualityPhoto,2
HighQualityPhoto,3
HighQualityPhoto,4
강조 표시된 프로필은 동시 프로필이므로 프레임 서버에서 합성됩니다.
예를 들면 다음과 같습니다.
디바이스 1의 VideoRecording,1 및 VideoRecording,2는 다음과 같이 선언됩니다.
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,1","BlockedControls",0,"PHSEQ"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,1","MTF0",0,"Pin0:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,1","MTF1",0,"Pin1:((RES==;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,1","MTF2",0,"Pin2:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF0",0,"Pin0:((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF1",0,"Pin0:((RES<=1280,720;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF2",0,"Pin1:((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF3",0,"Pin1:((RES<=1280,720;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF4",0,"Pin2:((RES<=3840,2880;FRT<=8,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF5",0,"Pin2:((RES<=3840,2160;FRT<=8,1;SUT==ALL))"
더 큰 센서가 있는 세계적 카메라인 Device 2는 다음 프로필을 선언합니다.
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,1","BlockedControls",0,"PHSEQ"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,1","MTF0",0,"Pin0:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,1","MTF1",0,"Pin1:((RES==;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,1","MTF2",0,"Pin2:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF0",0,"Pin0:((RES<=1920,1440;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF1",0,"Pin0:((RES<=1920,1080;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF2",0,"Pin1:((RES<=1920,1440;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF3",0,"Pin1:((RES<=1920,1080;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF4",0,"Pin2:((RES<=5120,3840;FRT<=8,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF5",0,"Pin2:((RES<=5120,2880;FRT<=8,1;SUT==ALL))"
생성된 센서 그룹의 경우 디바이스 1이 먼저 추가되었다고 가정합니다. VideoRecording,1 및 VideoRecording,2 프로필은 다음과 같습니다.
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,1","BlockedControls",0,"PHSEQ"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,1","MTF0",0,"Pin0:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,1","MTF1",0,"Pin1:((RES==;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,1","MTF2",0,"Pin2:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,1","MTF3",0,"Pin3:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,1","MTF4",0,"Pin4:((RES==;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,1","MTF5",0,"Pin5:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF0",0,"Pin0:((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF1",0,"Pin0:((RES<=1280,720;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF2",0,"Pin1:((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF3",0,"Pin1:((RES<=1280,720;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF4",0,"Pin2:((RES<=3840,2880;FRT<=8,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF5",0,"Pin2:((RES<=3840,2160;FRT<=8,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF6",0,"Pin3:((RES<=1920,1440;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF7",0,"Pin3:((RES<=1920,1080;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF8",0,"Pin4:((RES<=1920,1440;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF9",0,"Pin4:((RES<=1920,1080;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF10",0,"Pin5:((RES<=5120,3840;FRT<=8,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2","MTF11",0,"Pin5:((RES<=5120,2880;FRT<=8,1;SUT==ALL))"
볼 수 있듯이 센서 그룹이 가상 디바이스를 반영하도록 핀 인덱스를 변환하는 것처럼 프로필 선언에 대해 동일한 핀 인덱스 변환이 수행됩니다.
참고: 동시 프로필에 대한 프로필 제약 조건은 동일해야 합니다. 위의 예제에서 두 프로필 모두 프로필 제약 조건이 없으므로 병합할 수 있습니다. 프로필 중 하나가 프로필 제약 조건을 선언하거나 다른 프로필 제약 조건을 선언한 경우 프로필 구문이 잘못되고 거부됩니다.
샘플 프로필 선언(센서 그룹 생성)
새로운 선언적 프로필 스키마를 설명하기 위해 두 개의 가상 카메라에 대한 INF 항목을 통해 샘플 카메라 프로필을 생성할 수 있습니다.
카메라 UF(사용자 연결)와 월드 연결(카메라 WF)의 두 대의 카메라가 있다고 가정해 보겠습니다. 카메라 WF에는 더 높은 해상도와 프레임 속도를 지원하는 더 큰 센서가 있다고 가정해 보겠습니다.
두 카메라의 사용 가능한 미디어 유형 집합은 다음과 같습니다.
카메라 | 사용 가능한 미디어 유형 |
---|---|
WF: 미리 보기 | 3840x2160@30fps 2560x1920@30fps 1920x1080@30fp 1280x960@30fps 1280x720@30fps 800x600@30fps 640x480@30fps 640x360@30fps |
WF: 캡처 | 3840x2160@60fps 3840x2160@30fps 2560x1920@60fps 2560x1920@30fps 1920x1080@120fp 1920x1080@60fp 1920x1080@30fp 1280x960@120fps 1280x960@60fps 1280x960@30fps 1280x720@120fps 1280x720@60fps 1280x720@30fps 800x600@120fps 800x600@60fps 800x600@30fps 640x480@120fps 640x480@60fps 640x480@30fps 640x360@120fps 640x360@60fps 640x360@30fps |
WF: 사진 | 5120x3840(사진 시퀀스 없음) 3840 x 2160 2560x1920 1920 x 1080 1280x960 280x720 |
UF: 미리 보기 | 1920x1080@30fp 1280x960@30fps 1280x720@30fps 800x600@30fps 640x480@30fps 640x360@30fps |
UF: 캡처 | 1920x1080@120fp 1920x1080@60fp 1920x1080@30fp 1280x960@120fps 1280x960@60fps 1280x960@30fps 1280x720@120fps 1280x720@60fps 1280x720@30fps 800x600@120fps 800x600@60fps 800x600@30fps 640x480@120fps 640x480@60fps 640x480@30fps 640x360@120fps 640x360@60fps 640x360@30fps |
UF: 사진 | 3840x2160(사진 시퀀스 없음) 2560x1920(사진 시퀀스 없음) 1920 x 1080 1280x960 1280 x 720 |
몇 가지 가상의 하드웨어 제약 조건도 추가해 보겠습니다.
미리 보기 핀은 핀 0입니다. KSFILTER_DESCRIPTOR KSPIN_DESCRIPTOR_EX 배열이 정의되면 첫 번째 KSPIN_DESCRIPTOR_EX 미리 보기 핀의 설명자입니다. 마찬가지로 핀 1은 캡처 핀이고 핀 2는 사진 핀입니다.
WF 카메라 블록에서 높은 프레임 속도 캡처를 사용하면 UF 카메라(프레임 속도가 30fps보다 큰 미디어 유형은 높은 프레임 속도로 간주됨)를 사용합니다.
WF 카메라에서 4K 캡처(3840x2160) 이상의 해상도를 사용하면 UF 연결 카메라가 720p로 제한됩니다.
높은 프레임 속도 캡처를 사용하는 경우 미리 보기 및 캡처는 동일한 해상도를 사용해야 합니다.
모든 프로필은 미리 보기, 레코드, 사진 작업에서 가로 세로 비율이 동일해야 합니다.
높은 프레임 속도 캡처가 사용되지 않고 4K 이상의 비디오 녹화가 활성화되지 않는 한 두 카메라 모두 동시에 캡처 및 사진을 사용할 수 있습니다.
두 카메라 모두 활성 상태이고 해상도가 1080p로 제한되고 프레임 속도가 30fps 이하여야 하는 경우 두 카메라에 대해 비디오 녹화 작업만 가능합니다.
위의 제약 조건을 샘플 프로필로 변환하면 다음과 같은 선언이 있습니다.
; Camera WF
[SampleDriver.WorldFacingCameraInterface.AddReg]
HKR,,"FSSensorGroupId",0,"{E770B3DB-F6C9-4303-B767-97F17A6BD123}"
HKR,,"OEMCameraProfileVersion",0x00010001,2
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","Constraint",0,"LRS;LST"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF0",0,"Pin0:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF1",0,"Pin1:((RES==;FRT>=60,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF2",0,"Pin2:(!)"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,0","MTF0",0,"Pin0:((RES<=1920,1080;FRT<=30,1;SUT==ALL))((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,0","MTF1",0,"Pin1:(!)"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,0","MTF2",0,"Pin2:((RES<=3840,2160;FRT==;SUT==ALL))((RES<=2560,1920;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,0","BlockedControls",0,"PHSEQ"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,0","MTF0",0,"Pin0:((RES<=1920,1080;FRT<=30,1;SUT==ALL))((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,0","MTF1",0,"Pin1:((RES<=1920,1080;FRT<=30,1;SUT==ALL))((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,0","MTF2",0,"Pin2:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2000","MTF0",0,"Pin0:((RES<=1920,1080;FRT<=30,1;SUT==ALL)) ((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2000","MTF1",0,"Pin1:((RES<=1920,1080;FRT<=30,1;SUT==ALL)) ((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2000","MTF2",0,"Pin2:(!)"
; Camera UF
[SampleDriver.UserFacingCameraInterface.AddReg]
HKR,,"FSSensorGroupId",0,"{E770B3DB-F6C9-4303-B767-97F17A6BD123}"
HKR,,"OEMCameraProfileVersion",0x00010001,2
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,1000","Constraint",0,"LRS;LST"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,1000","MTF0",0,"Pin0:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,1000","MTF1",0,"Pin1:((RES==;FRT>=60,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,1000","MTF2",0,"Pin2:(!)"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,1000","MTF0",0,"Pin0:((RES<=1920,1080;FRT<=30,1;SUT==ALL))((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,1000","MTF1",0,"Pin1:(!)"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,1000","MTF2",0,"Pin2:((RES<=1920,1080;FRT==;SUT==ALL))((RES<=1280,960;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,1000","BlockedControls",0,"PHSEQ"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,1000","MTF0",0,"Pin0:((RES<=1920,1080;FRT<=30,1;SUT==ALL))((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,1000","MTF1",0,"Pin1:((RES<=1920,1080;FRT<=30,1;SUT==ALL))((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,1000","MTF2",0,"Pin2:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2000","MTF0",0,"Pin0:((RES<=1920,1080;FRT<=30,1;SUT==ALL)) ((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2000","MTF1",0,"Pin1:((RES<=1920,1080;FRT<=30,1;SUT==ALL)) ((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2000","MTF2",0,"Pin2:(!)"
센서 그룹 생성 중에 이러한 프로필이 처리되면(위의 INF 지시문에 대해 FSSensorGroupId가 선언됨) 결과 센서 그룹의 "INF"는 다음 선언과 유사합니다(카메라 WF가 센서 그룹에 먼저 추가되었다고 가정).
그러나 생성된 INF는 없습니다. 이는 센서 그룹 게시 프로세스가 여러 디바이스에서 프로필을 합성하는 방법을 보여 주는 샘플일 뿐입니다.
; Sensor Group WF & UF
[SampleDriver.SensorGroupInterface.AddReg]
HKR,,"OEMCameraProfileVersion",0x00010001,2
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","Constraint",0,"LRS;LST"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF0",0,"Pin0:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF1",0,"Pin1:((RES==;FRT>=60,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF2",0,"Pin2:(!)"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,1000","MTF0",0,"Pin3:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,1000","MTF1",0,"Pin4:((RES==;FRT>=60,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,1000","MTF2",0,"Pin5:(!)"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,0","MTF0",0,"Pin0:((RES<=1920,1080;FRT<=30,1;SUT==ALL))((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,0","MTF1",0,"Pin1:(!)"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,0","MTF2",0,"Pin2:((RES<=3840,2160;FRT==;SUT==ALL))((RES<=2560,1920;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,1000","MTF0",0,"Pin3:((RES<=1920,1080;FRT<=30,1;SUT==ALL))((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,1000","MTF1",0,"Pin4:(!)"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,1000","MTF2",0,"Pin5:((RES<=1920,1080;FRT==;SUT==ALL))((RES<=1280,960;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,0","BlockedControls",0,"PHSEQ"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,0","MTF0",0,"Pin0:((RES<=1920,1080;FRT<=30,1;SUT==ALL))((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,0","MTF1",0,"Pin1:((RES<=1920,1080;FRT<=30,1;SUT==ALL))((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,0","MTF2",0,"Pin2:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,1000","BlockedControls",0,"PHSEQ"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,1000","MTF0",0,"Pin3:((RES<=1920,1080;FRT<=30,1;SUT==ALL))((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,1000","MTF1",0,"Pin4:((RES<=1920,1080;FRT<=30,1;SUT==ALL))((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,1000","MTF2",0,"Pin5:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2000","MTF0",0,"Pin0:((RES<=1920,1080;FRT<=30,1;SUT==ALL)) ((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2000","MTF1",0,"Pin1:((RES<=1920,1080;FRT<=30,1;SUT==ALL)) ((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2000","MTF2",0,"Pin2:(!)"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2000","MTF3",0,"Pin3:((RES<=1920,1080;FRT<=30,1;SUT==ALL)) ((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2000","MTF4",0,"Pin4:((RES<=1920,1080;FRT<=30,1;SUT==ALL)) ((RES<=1280,960;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2000","MTF6",0,"Pin5:(!)"
AAR 프로필 제약 조건
프로필을 선언할 수 있는 바로 가기 중 하나는 AAR 프로필 제약 조건을 설정하는 것입니다. 기본 하드웨어의 제약 조건이 순전히 대역폭 제한인 경우 위의 프로필 선언이 다음으로 감소될 수 있습니다.
; Camera WF
[SampleDriver.WorldFacingCameraInterface.AddReg]
HKR,,"FSSensorGroupId",0,"{E770B3DB-F6C9-4303-B767-97F17A6BD123}"
HKR,,"OEMCameraProfileVersion",0x00010001,2
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","Constraint",0,"LRS;LST"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF0",0,"Pin0:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF1",0,"Pin1:((RES==;FRT>=60,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF2",0,"Pin2:(!)"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,0","Constraint",0,"AAR"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,0","MTF0",0,"Pin0:((RES<=1920,1080;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,0","MTF1",0,"Pin1:(!)"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,0","MTF2",0,"Pin2:((RES<=3840,2160;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,0","Constraint",0,"AAR"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,0","BlockedControls",0,"PHSEQ"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,0","MTF0",0,"Pin0:((RES<=1920,1080;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,0","MTF1",0,"Pin1:((RES<=1920,1080;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,0","MTF2",0,"Pin2:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2000","MTF0",0,"Pin0:((RES<=1920,1080;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2000","MTF1",0,"Pin1:((RES<=1920,1080;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2000","MTF2",0,"Pin2:(!)"
; Camera UF
[SampleDriver.UserFacingCameraInterface.AddReg]
HKR,,"FSSensorGroupId",0,"{E770B3DB-F6C9-4303-B767-97F17A6BD123}"
HKR,,"OEMCameraProfileVersion",0x00010001,2
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,1000","Constraint",0,"LRS;LST"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,1000","MTF0",0,"Pin0:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,1000","MTF1",0,"Pin0:((RES==;FRT>=60,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,1000","MTF2",0,"Pin2:(!)"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,1000","Constraint",0,"AAR"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,1000","MTF0",0,"Pin0:((RES<=1920,1080;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,1000","MTF1",0,"Pin1:(!)"
HKR,"Profiles\KSCAMERAPROFILE_PhotoSequence,1000","MTF2",0,"Pin2:((RES<=1920,1080;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,1000","Constraint",0,"AAR"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,1000","BlockedControls",0,"PHSEQ"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,1000","MTF0",0,"Pin0:((RES<=1920,1080;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,1000","MTF1",0,"Pin1:((RES<=1920,1080;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,1000","MTF2",0,"Pin2:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2000","MTF0",0,"Pin0:((RES<=1920,1080;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2000","MTF1",0,"Pin1:((RES<=1920,1080;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,2000","MTF2",0,"Pin2:(!)"
이렇게 하면 AAR 프로필 제약 조건이 적용되므로 모든 해상도 기반 일치 논리가 모든 가로 세로 비율에 적용됩니다.
따라서 다음 항목 대신
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,0","MTF0",0,"Pin0:((RES<=1920,1080;FRT<=30,1;SUT==ALL))((RES<=1280,960;FRT<=30,1;SUT==ALL))"
1080p 이하 및 1280x960 이하의 16:9 및 4:3 해상도를 모두 일치하려면 선언은 다음과 같습니다.
HKR,"Profiles\KSCAMERAPROFILE_HighQualityPhoto,0","MTF0",0,"Pin0:((RES<=1920,1080;FRT<=30,1;SUT==ALL))"
이는 총 픽셀 수가 1920 * 1080보다 작은 모든 해상도에 일치하는 논리를 적용합니다.
이 바로 가기는 HW 제약 조건이 픽셀 대역폭만을 기반으로 하는 경우에만 유효합니다.