@photivra/engine 1.5.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +393 -6
- package/CITATION.cff +1 -1
- package/NODE_SUPPORT.md +64 -12
- package/README.md +301 -182
- package/SECURITY.md +37 -28
- package/THIRD_PARTY.md +148 -4
- package/dist/camera/equivalent-focal-length.d.ts +13 -14
- package/dist/camera/equivalent-focal-length.js +15 -13
- package/dist/camera/equivalent-focal-length.js.map +1 -1
- package/dist/camera/field-of-view.d.ts +30 -19
- package/dist/camera/field-of-view.js +67 -18
- package/dist/camera/field-of-view.js.map +1 -1
- package/dist/camera/lens-projection.d.ts +170 -0
- package/dist/camera/lens-projection.js +444 -0
- package/dist/camera/lens-projection.js.map +1 -0
- package/dist/camera/projected-object-size.d.ts +10 -11
- package/dist/camera/projected-object-size.js +12 -10
- package/dist/camera/projected-object-size.js.map +1 -1
- package/dist/capture/capture-export-metadata.d.ts +9 -10
- package/dist/capture/capture-export-metadata.js +8 -5
- package/dist/capture/capture-export-metadata.js.map +1 -1
- package/dist/capture/dng-import.d.ts +91 -0
- package/dist/capture/dng-import.js +343 -0
- package/dist/capture/dng-import.js.map +1 -0
- package/dist/capture/environment-raw-producer.d.ts +37 -17
- package/dist/capture/environment-raw-producer.js +43 -19
- package/dist/capture/environment-raw-producer.js.map +1 -1
- package/dist/capture/export-jpeg.d.ts +35 -4
- package/dist/capture/export-jpeg.js +133 -47
- package/dist/capture/export-jpeg.js.map +1 -1
- package/dist/capture/export-tiff.d.ts +48 -24
- package/dist/capture/export-tiff.js +91 -31
- package/dist/capture/export-tiff.js.map +1 -1
- package/dist/capture/focus-control.d.ts +42 -65
- package/dist/capture/focus-control.js +56 -75
- package/dist/capture/focus-control.js.map +1 -1
- package/dist/capture/host-yield-cadence.d.ts +25 -0
- package/dist/capture/host-yield-cadence.js +25 -0
- package/dist/capture/host-yield-cadence.js.map +1 -0
- package/dist/capture/linear-encoding.d.ts +14 -12
- package/dist/capture/linear-encoding.js +14 -13
- package/dist/capture/linear-encoding.js.map +1 -1
- package/dist/capture/lossless-jpeg.d.ts +27 -0
- package/dist/capture/lossless-jpeg.js +237 -0
- package/dist/capture/lossless-jpeg.js.map +1 -0
- package/dist/capture/native-environment-lean.d.ts +227 -0
- package/dist/capture/native-environment-lean.js +974 -0
- package/dist/capture/native-environment-lean.js.map +1 -0
- package/dist/capture/native-environment-optical-stage.d.ts +97 -0
- package/dist/capture/native-environment-optical-stage.js +340 -0
- package/dist/capture/native-environment-optical-stage.js.map +1 -0
- package/dist/capture/native-environment-raw.d.ts +140 -6
- package/dist/capture/native-environment-raw.js +435 -34
- package/dist/capture/native-environment-raw.js.map +1 -1
- package/dist/capture/native-raw-development.d.ts +116 -9
- package/dist/capture/native-raw-development.js +221 -62
- package/dist/capture/native-raw-development.js.map +1 -1
- package/dist/capture/native-raw-dng.d.ts +60 -0
- package/dist/capture/native-raw-dng.js +167 -0
- package/dist/capture/native-raw-dng.js.map +1 -0
- package/dist/capture/native-raw.d.ts +65 -12
- package/dist/capture/native-raw.js +81 -19
- package/dist/capture/native-raw.js.map +1 -1
- package/dist/capture/packed-sensor-raw.d.ts +160 -0
- package/dist/capture/packed-sensor-raw.js +221 -0
- package/dist/capture/packed-sensor-raw.js.map +1 -0
- package/dist/capture/photographic-export.d.ts +58 -35
- package/dist/capture/photographic-export.js +177 -70
- package/dist/capture/photographic-export.js.map +1 -1
- package/dist/capture/raw-development-kernel.d.ts +52 -0
- package/dist/capture/raw-development-kernel.js +88 -0
- package/dist/capture/raw-development-kernel.js.map +1 -0
- package/dist/capture/raw-frame-limits.d.ts +7 -7
- package/dist/capture/raw-frame-limits.js +7 -6
- package/dist/capture/raw-frame-limits.js.map +1 -1
- package/dist/capture/raw-frame-reconstruction.d.ts +8 -9
- package/dist/capture/raw-frame-reconstruction.js +9 -8
- package/dist/capture/raw-frame-reconstruction.js.map +1 -1
- package/dist/capture/raw-white-level.d.ts +55 -0
- package/dist/capture/raw-white-level.js +165 -0
- package/dist/capture/raw-white-level.js.map +1 -0
- package/dist/capture/release-sequence.d.ts +5 -7
- package/dist/capture/release-sequence.js +15 -13
- package/dist/capture/release-sequence.js.map +1 -1
- package/dist/capture/sensor-raw-frame.d.ts +5 -6
- package/dist/capture/sensor-raw-frame.js +26 -9
- package/dist/capture/sensor-raw-frame.js.map +1 -1
- package/dist/capture/sensor-raw-producer.d.ts +21 -13
- package/dist/capture/sensor-raw-producer.js +86 -25
- package/dist/capture/sensor-raw-producer.js.map +1 -1
- package/dist/capture/simulated-capture.d.ts +15 -16
- package/dist/capture/simulated-capture.js +22 -12
- package/dist/capture/simulated-capture.js.map +1 -1
- package/dist/color/camera-color-matrix.d.ts +69 -0
- package/dist/color/camera-color-matrix.js +132 -0
- package/dist/color/camera-color-matrix.js.map +1 -0
- package/dist/color/capture-color.d.ts +17 -10
- package/dist/color/capture-color.js +50 -17
- package/dist/color/capture-color.js.map +1 -1
- package/dist/color/chromatic-adaptation.d.ts +63 -0
- package/dist/color/chromatic-adaptation.js +91 -0
- package/dist/color/chromatic-adaptation.js.map +1 -0
- package/dist/color/color-difference.d.ts +104 -0
- package/dist/color/color-difference.js +205 -0
- package/dist/color/color-difference.js.map +1 -0
- package/dist/color/color-matching-functions.d.ts +168 -0
- package/dist/color/color-matching-functions.js +309 -0
- package/dist/color/color-matching-functions.js.map +1 -0
- package/dist/color/colorimetry-math.d.ts +52 -0
- package/dist/color/colorimetry-math.js +144 -0
- package/dist/color/colorimetry-math.js.map +1 -0
- package/dist/color/gamut-mapping.d.ts +54 -0
- package/dist/color/gamut-mapping.js +107 -0
- package/dist/color/gamut-mapping.js.map +1 -0
- package/dist/color/illuminants.d.ts +182 -0
- package/dist/color/illuminants.js +434 -0
- package/dist/color/illuminants.js.map +1 -0
- package/dist/color/rgb-color-spaces.d.ts +79 -0
- package/dist/color/rgb-color-spaces.js +115 -0
- package/dist/color/rgb-color-spaces.js.map +1 -0
- package/dist/color/sensor-color-development.d.ts +33 -11
- package/dist/color/sensor-color-development.js +104 -30
- package/dist/color/sensor-color-development.js.map +1 -1
- package/dist/color/srgb-icc.d.ts +9 -2
- package/dist/color/srgb-icc.js +16 -5
- package/dist/color/srgb-icc.js.map +1 -1
- package/dist/color/srgb-transfer.d.ts +1 -2
- package/dist/color/srgb-transfer.js +1 -1
- package/dist/color/srgb-transfer.js.map +1 -1
- package/dist/color/white-balance.d.ts +68 -19
- package/dist/color/white-balance.js +168 -35
- package/dist/color/white-balance.js.map +1 -1
- package/dist/composition/image-formation-plan.d.ts +152 -128
- package/dist/composition/image-formation-plan.js +292 -138
- package/dist/composition/image-formation-plan.js.map +1 -1
- package/dist/composition/plan-consumer.d.ts +6 -7
- package/dist/composition/plan-consumer.js +14 -11
- package/dist/composition/plan-consumer.js.map +1 -1
- package/dist/core/calculation-result.d.ts +21 -14
- package/dist/core/calculation-result.js +209 -11
- package/dist/core/calculation-result.js.map +1 -1
- package/dist/core/canonical-json.d.ts +13 -8
- package/dist/core/canonical-json.js +34 -15
- package/dist/core/canonical-json.js.map +1 -1
- package/dist/core/configuration-error.d.ts +5 -4
- package/dist/core/configuration-error.js +5 -3
- package/dist/core/configuration-error.js.map +1 -1
- package/dist/core/evidence-provenance.d.ts +12 -12
- package/dist/core/evidence-provenance.js +10 -9
- package/dist/core/evidence-provenance.js.map +1 -1
- package/dist/core/image-formation.d.ts +11 -10
- package/dist/core/image-formation.js +11 -9
- package/dist/core/image-formation.js.map +1 -1
- package/dist/core/owned-data.d.ts +9 -17
- package/dist/core/owned-data.js +9 -16
- package/dist/core/owned-data.js.map +1 -1
- package/dist/core/portable-math.d.ts +15 -0
- package/dist/core/portable-math.js +56 -0
- package/dist/core/portable-math.js.map +1 -0
- package/dist/core/record-validation.d.ts +48 -9
- package/dist/core/record-validation.js +93 -19
- package/dist/core/record-validation.js.map +1 -1
- package/dist/core/scientific-assurance.d.ts +16 -14
- package/dist/core/scientific-assurance.js +22 -18
- package/dist/core/scientific-assurance.js.map +1 -1
- package/dist/core/spectral-composition.d.ts +13 -14
- package/dist/core/spectral-composition.js +30 -27
- package/dist/core/spectral-composition.js.map +1 -1
- package/dist/core/spectral.d.ts +5 -6
- package/dist/core/spectral.js +9 -7
- package/dist/core/spectral.js.map +1 -1
- package/dist/core/validation.d.ts +3 -6
- package/dist/core/validation.js +3 -5
- package/dist/core/validation.js.map +1 -1
- package/dist/core/version.d.ts +6 -6
- package/dist/core/version.js +6 -5
- package/dist/core/version.js.map +1 -1
- package/dist/equipment/exposure-capabilities.d.ts +10 -10
- package/dist/equipment/exposure-capabilities.js +40 -30
- package/dist/equipment/exposure-capabilities.js.map +1 -1
- package/dist/equipment/generic-tier-assets.d.ts +13 -6
- package/dist/equipment/generic-tier-assets.js +34 -15
- package/dist/equipment/generic-tier-assets.js.map +1 -1
- package/dist/equipment/generic-tier-presets.d.ts +5 -6
- package/dist/equipment/generic-tier-presets.js +15 -13
- package/dist/equipment/generic-tier-presets.js.map +1 -1
- package/dist/equipment/iso-capabilities.d.ts +21 -22
- package/dist/equipment/iso-capabilities.js +49 -44
- package/dist/equipment/iso-capabilities.js.map +1 -1
- package/dist/equipment/metering-capabilities.d.ts +5 -6
- package/dist/equipment/metering-capabilities.js +22 -19
- package/dist/equipment/metering-capabilities.js.map +1 -1
- package/dist/equipment/release-capabilities.d.ts +3 -4
- package/dist/equipment/release-capabilities.js +18 -14
- package/dist/equipment/release-capabilities.js.map +1 -1
- package/dist/exposure/exposure-duration-control.d.ts +19 -17
- package/dist/exposure/exposure-duration-control.js +27 -23
- package/dist/exposure/exposure-duration-control.js.map +1 -1
- package/dist/exposure/exposure-mode-resolver.d.ts +42 -39
- package/dist/exposure/exposure-mode-resolver.js +127 -82
- package/dist/exposure/exposure-mode-resolver.js.map +1 -1
- package/dist/exposure/exposure.d.ts +17 -16
- package/dist/exposure/exposure.js +22 -15
- package/dist/exposure/exposure.js.map +1 -1
- package/dist/exposure/flash-ttl.d.ts +135 -0
- package/dist/exposure/flash-ttl.js +193 -0
- package/dist/exposure/flash-ttl.js.map +1 -0
- package/dist/exposure/flash.d.ts +144 -36
- package/dist/exposure/flash.js +259 -59
- package/dist/exposure/flash.js.map +1 -1
- package/dist/exposure/metering-scene-radiance.d.ts +10 -10
- package/dist/exposure/metering-scene-radiance.js +42 -23
- package/dist/exposure/metering-scene-radiance.js.map +1 -1
- package/dist/exposure/metering-target.d.ts +8 -8
- package/dist/exposure/metering-target.js +30 -20
- package/dist/exposure/metering-target.js.map +1 -1
- package/dist/exposure/metering-temporal.d.ts +16 -15
- package/dist/exposure/metering-temporal.js +41 -19
- package/dist/exposure/metering-temporal.js.map +1 -1
- package/dist/exposure/metering.d.ts +64 -17
- package/dist/exposure/metering.js +159 -30
- package/dist/exposure/metering.js.map +1 -1
- package/dist/exposure/program-line.d.ts +5 -5
- package/dist/exposure/program-line.js +20 -13
- package/dist/exposure/program-line.js.map +1 -1
- package/dist/facade/camera-preset.d.ts +8 -0
- package/dist/facade/camera-preset.js +102 -0
- package/dist/facade/camera-preset.js.map +1 -0
- package/dist/facade/chart-radiance-batch.d.ts +57 -0
- package/dist/facade/chart-radiance-batch.js +121 -0
- package/dist/facade/chart-radiance-batch.js.map +1 -0
- package/dist/facade/chart-scenes.d.ts +177 -0
- package/dist/facade/chart-scenes.js +232 -0
- package/dist/facade/chart-scenes.js.map +1 -0
- package/dist/facade/host-yield.d.ts +7 -0
- package/dist/facade/host-yield.js +23 -0
- package/dist/facade/host-yield.js.map +1 -0
- package/dist/facade/scene-radiance.d.ts +117 -0
- package/dist/facade/scene-radiance.js +205 -0
- package/dist/facade/scene-radiance.js.map +1 -0
- package/dist/facade/simulate-capture.d.ts +284 -0
- package/dist/facade/simulate-capture.js +1026 -0
- package/dist/facade/simulate-capture.js.map +1 -0
- package/dist/gpu/chart-radiance-gpu.d.ts +17 -0
- package/dist/gpu/chart-radiance-gpu.js +176 -0
- package/dist/gpu/chart-radiance-gpu.js.map +1 -0
- package/dist/gpu/image-kernel-accelerator.d.ts +132 -0
- package/dist/gpu/image-kernel-accelerator.js +720 -0
- package/dist/gpu/image-kernel-accelerator.js.map +1 -0
- package/dist/gpu/image-kernel-execution.d.ts +92 -0
- package/dist/gpu/image-kernel-execution.js +84 -0
- package/dist/gpu/image-kernel-execution.js.map +1 -0
- package/dist/gpu/sensor-stage-gpu.d.ts +44 -0
- package/dist/gpu/sensor-stage-gpu.js +317 -0
- package/dist/gpu/sensor-stage-gpu.js.map +1 -0
- package/dist/gpu/temporal-sum-gpu.d.ts +23 -0
- package/dist/gpu/temporal-sum-gpu.js +150 -0
- package/dist/gpu/temporal-sum-gpu.js.map +1 -0
- package/dist/gpu/webgpu-runtime.d.ts +63 -0
- package/dist/gpu/webgpu-runtime.js +215 -0
- package/dist/gpu/webgpu-runtime.js.map +1 -0
- package/dist/gpu/wgsl-chart-kernel.d.ts +30 -0
- package/dist/gpu/wgsl-chart-kernel.js +165 -0
- package/dist/gpu/wgsl-chart-kernel.js.map +1 -0
- package/dist/gpu/wgsl-kernels.d.ts +53 -0
- package/dist/gpu/wgsl-kernels.js +365 -0
- package/dist/gpu/wgsl-kernels.js.map +1 -0
- package/dist/gpu/wgsl-sensor-kernel.d.ts +64 -0
- package/dist/gpu/wgsl-sensor-kernel.js +409 -0
- package/dist/gpu/wgsl-sensor-kernel.js.map +1 -0
- package/dist/index.d.ts +89 -25
- package/dist/index.js +59 -15
- package/dist/index.js.map +1 -1
- package/dist/motion/camera-rotation.d.ts +92 -40
- package/dist/motion/camera-rotation.js +84 -47
- package/dist/motion/camera-rotation.js.map +1 -1
- package/dist/motion/capture-rotation-inverse-mapping.d.ts +37 -34
- package/dist/motion/capture-rotation-inverse-mapping.js +32 -24
- package/dist/motion/capture-rotation-inverse-mapping.js.map +1 -1
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts +39 -35
- package/dist/motion/capture-rotation-temporal-quadrature.js +37 -28
- package/dist/motion/capture-rotation-temporal-quadrature.js.map +1 -1
- package/dist/motion/capture-rotation-trajectory.d.ts +32 -28
- package/dist/motion/capture-rotation-trajectory.js +36 -26
- package/dist/motion/capture-rotation-trajectory.js.map +1 -1
- package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts +23 -21
- package/dist/motion/capture-translation-parallax-temporal-quadrature.js +33 -14
- package/dist/motion/capture-translation-parallax-temporal-quadrature.js.map +1 -1
- package/dist/motion/extended-object-projection.d.ts +19 -16
- package/dist/motion/extended-object-projection.js +38 -18
- package/dist/motion/extended-object-projection.js.map +1 -1
- package/dist/motion/projected-motion.d.ts +18 -17
- package/dist/motion/projected-motion.js +25 -17
- package/dist/motion/projected-motion.js.map +1 -1
- package/dist/motion/temporal-exposure-sum.d.ts +55 -0
- package/dist/motion/temporal-exposure-sum.js +141 -0
- package/dist/motion/temporal-exposure-sum.js.map +1 -0
- package/dist/motion/video-sequence.d.ts +111 -0
- package/dist/motion/video-sequence.js +179 -0
- package/dist/motion/video-sequence.js.map +1 -0
- package/dist/optics/aperture.d.ts +14 -15
- package/dist/optics/aperture.js +13 -11
- package/dist/optics/aperture.js.map +1 -1
- package/dist/optics/atmospheric-haze.d.ts +83 -0
- package/dist/optics/atmospheric-haze.js +113 -0
- package/dist/optics/atmospheric-haze.js.map +1 -0
- package/dist/optics/brown-conrady-distortion.d.ts +116 -0
- package/dist/optics/brown-conrady-distortion.js +291 -0
- package/dist/optics/brown-conrady-distortion.js.map +1 -0
- package/dist/optics/circle-of-confusion.d.ts +10 -10
- package/dist/optics/circle-of-confusion.js +15 -11
- package/dist/optics/circle-of-confusion.js.map +1 -1
- package/dist/optics/complex-pupil-psf.d.ts +64 -33
- package/dist/optics/complex-pupil-psf.js +190 -98
- package/dist/optics/complex-pupil-psf.js.map +1 -1
- package/dist/optics/depth-of-field.d.ts +25 -15
- package/dist/optics/depth-of-field.js +67 -27
- package/dist/optics/depth-of-field.js.map +1 -1
- package/dist/optics/diffraction.d.ts +14 -13
- package/dist/optics/diffraction.js +14 -10
- package/dist/optics/diffraction.js.map +1 -1
- package/dist/optics/focus-breathing.d.ts +88 -27
- package/dist/optics/focus-breathing.js +114 -23
- package/dist/optics/focus-breathing.js.map +1 -1
- package/dist/optics/focus-state.d.ts +18 -18
- package/dist/optics/focus-state.js +21 -15
- package/dist/optics/focus-state.js.map +1 -1
- package/dist/optics/front-of-lens-filter.d.ts +45 -14
- package/dist/optics/front-of-lens-filter.js +259 -88
- package/dist/optics/front-of-lens-filter.js.map +1 -1
- package/dist/optics/illumination-vignetting.d.ts +16 -17
- package/dist/optics/illumination-vignetting.js +40 -17
- package/dist/optics/illumination-vignetting.js.map +1 -1
- package/dist/optics/irradiance-convolution.d.ts +59 -0
- package/dist/optics/irradiance-convolution.js +138 -0
- package/dist/optics/irradiance-convolution.js.map +1 -0
- package/dist/optics/lateral-chromatic-aberration.d.ts +33 -30
- package/dist/optics/lateral-chromatic-aberration.js +33 -23
- package/dist/optics/lateral-chromatic-aberration.js.map +1 -1
- package/dist/optics/lens-psf-kernels.d.ts +89 -0
- package/dist/optics/lens-psf-kernels.js +175 -0
- package/dist/optics/lens-psf-kernels.js.map +1 -0
- package/dist/optics/lens-psf-profile.d.ts +78 -46
- package/dist/optics/lens-psf-profile.js +335 -124
- package/dist/optics/lens-psf-profile.js.map +1 -1
- package/dist/optics/longitudinal-chromatic-aberration.d.ts +102 -0
- package/dist/optics/longitudinal-chromatic-aberration.js +210 -0
- package/dist/optics/longitudinal-chromatic-aberration.js.map +1 -0
- package/dist/optics/polygon-diffraction.d.ts +80 -23
- package/dist/optics/polygon-diffraction.js +130 -25
- package/dist/optics/polygon-diffraction.js.map +1 -1
- package/dist/optics/profile-contract.d.ts +5 -6
- package/dist/optics/profile-contract.js +14 -11
- package/dist/optics/profile-contract.js.map +1 -1
- package/dist/optics/psf-foundation.d.ts +23 -23
- package/dist/optics/psf-foundation.js +24 -21
- package/dist/optics/psf-foundation.js.map +1 -1
- package/dist/optics/pupil-vignetting.d.ts +118 -0
- package/dist/optics/pupil-vignetting.js +264 -0
- package/dist/optics/pupil-vignetting.js.map +1 -0
- package/dist/optics/radial-distortion.d.ts +34 -33
- package/dist/optics/radial-distortion.js +37 -30
- package/dist/optics/radial-distortion.js.map +1 -1
- package/dist/optics/scene-to-sensor-irradiance.d.ts +47 -33
- package/dist/optics/scene-to-sensor-irradiance.js +73 -45
- package/dist/optics/scene-to-sensor-irradiance.js.map +1 -1
- package/dist/optics/scene-to-sensor-quadrature.d.ts +23 -18
- package/dist/optics/scene-to-sensor-quadrature.js +16 -11
- package/dist/optics/scene-to-sensor-quadrature.js.map +1 -1
- package/dist/optics/sensor-aperture-rays.d.ts +20 -4
- package/dist/optics/sensor-aperture-rays.js +32 -14
- package/dist/optics/sensor-aperture-rays.js.map +1 -1
- package/dist/optics/sensor-environment-query.d.ts +81 -16
- package/dist/optics/sensor-environment-query.js +145 -12
- package/dist/optics/sensor-environment-query.js.map +1 -1
- package/dist/optics/sensor-psf-quadrature.d.ts +12 -10
- package/dist/optics/sensor-psf-quadrature.js +18 -11
- package/dist/optics/sensor-psf-quadrature.js.map +1 -1
- package/dist/optics/sensor-psf-support.d.ts +8 -6
- package/dist/optics/sensor-psf-support.js +8 -5
- package/dist/optics/sensor-psf-support.js.map +1 -1
- package/dist/optics/stray-light.d.ts +22 -19
- package/dist/optics/stray-light.js +18 -12
- package/dist/optics/stray-light.js.map +1 -1
- package/dist/optics/thin-lens.d.ts +10 -9
- package/dist/optics/thin-lens.js +12 -8
- package/dist/optics/thin-lens.js.map +1 -1
- package/dist/optics/zernike-wavefront.d.ts +154 -0
- package/dist/optics/zernike-wavefront.js +352 -0
- package/dist/optics/zernike-wavefront.js.map +1 -0
- package/dist/output/capture-corrected-sdr.d.ts +16 -8
- package/dist/output/capture-corrected-sdr.js +16 -8
- package/dist/output/capture-corrected-sdr.js.map +1 -1
- package/dist/output/capture-geometry.d.ts +34 -36
- package/dist/output/capture-geometry.js +52 -32
- package/dist/output/capture-geometry.js.map +1 -1
- package/dist/output/capture-sdr.d.ts +7 -6
- package/dist/output/capture-sdr.js +11 -8
- package/dist/output/capture-sdr.js.map +1 -1
- package/dist/output/crop.d.ts +22 -6
- package/dist/output/crop.js +40 -6
- package/dist/output/crop.js.map +1 -1
- package/dist/output/geometric-transforms.d.ts +60 -23
- package/dist/output/geometric-transforms.js +111 -24
- package/dist/output/geometric-transforms.js.map +1 -1
- package/dist/output/lens-corrections.d.ts +27 -19
- package/dist/output/lens-corrections.js +29 -13
- package/dist/output/lens-corrections.js.map +1 -1
- package/dist/output/native-capture-sdr.d.ts +71 -16
- package/dist/output/native-capture-sdr.js +190 -33
- package/dist/output/native-capture-sdr.js.map +1 -1
- package/dist/output/png-encoder.d.ts +65 -0
- package/dist/output/png-encoder.js +461 -0
- package/dist/output/png-encoder.js.map +1 -0
- package/dist/output/print-contrast-reference.d.ts +10 -9
- package/dist/output/print-contrast-reference.js +10 -8
- package/dist/output/print-contrast-reference.js.map +1 -1
- package/dist/output/print-detail.d.ts +18 -17
- package/dist/output/print-detail.js +12 -10
- package/dist/output/print-detail.js.map +1 -1
- package/dist/output/print-jpeg.d.ts +26 -5
- package/dist/output/print-jpeg.js +117 -50
- package/dist/output/print-jpeg.js.map +1 -1
- package/dist/output/print-plan.d.ts +19 -19
- package/dist/output/print-plan.js +11 -10
- package/dist/output/print-plan.js.map +1 -1
- package/dist/output/print-region-statistics.d.ts +14 -15
- package/dist/output/print-region-statistics.js +11 -11
- package/dist/output/print-region-statistics.js.map +1 -1
- package/dist/output/sdr-rendering.d.ts +48 -10
- package/dist/output/sdr-rendering.js +114 -25
- package/dist/output/sdr-rendering.js.map +1 -1
- package/dist/output/subject-framing-crop.d.ts +6 -10
- package/dist/output/subject-framing-crop.js +23 -13
- package/dist/output/subject-framing-crop.js.map +1 -1
- package/dist/processing/demosaic.d.ts +90 -0
- package/dist/processing/demosaic.js +275 -0
- package/dist/processing/demosaic.js.map +1 -0
- package/dist/processing/denoise.d.ts +68 -0
- package/dist/processing/denoise.js +214 -0
- package/dist/processing/denoise.js.map +1 -0
- package/dist/processing/focus-stacking.d.ts +17 -0
- package/dist/processing/focus-stacking.js +80 -0
- package/dist/processing/focus-stacking.js.map +1 -0
- package/dist/processing/hdr.d.ts +54 -0
- package/dist/processing/hdr.js +172 -0
- package/dist/processing/hdr.js.map +1 -0
- package/dist/processing/image-ops.d.ts +66 -0
- package/dist/processing/image-ops.js +192 -0
- package/dist/processing/image-ops.js.map +1 -0
- package/dist/processing/panorama.d.ts +51 -0
- package/dist/processing/panorama.js +305 -0
- package/dist/processing/panorama.js.map +1 -0
- package/dist/processing/processing-task.d.ts +85 -0
- package/dist/processing/processing-task.js +164 -0
- package/dist/processing/processing-task.js.map +1 -0
- package/dist/processing/tone-mapping.d.ts +69 -0
- package/dist/processing/tone-mapping.js +310 -0
- package/dist/processing/tone-mapping.js.map +1 -0
- package/dist/schema/camera.d.ts +5 -4
- package/dist/schema/illumination-spectral.d.ts +13 -19
- package/dist/schema/illumination-spectral.js +23 -19
- package/dist/schema/illumination-spectral.js.map +1 -1
- package/dist/schema/illumination-temporal.d.ts +12 -15
- package/dist/schema/illumination-temporal.js +43 -28
- package/dist/schema/illumination-temporal.js.map +1 -1
- package/dist/schema/illumination.d.ts +5 -4
- package/dist/schema/illumination.js +55 -20
- package/dist/schema/illumination.js.map +1 -1
- package/dist/schema/scene-radiance-temporal.d.ts +9 -11
- package/dist/schema/scene-radiance-temporal.js +26 -23
- package/dist/schema/scene-radiance-temporal.js.map +1 -1
- package/dist/schema/scene-radiance.d.ts +17 -17
- package/dist/schema/scene-radiance.js +56 -34
- package/dist/schema/scene-radiance.js.map +1 -1
- package/dist/schema/scene.d.ts +14 -13
- package/dist/schema/validation.d.ts +0 -1
- package/dist/schema/validation.js +17 -15
- package/dist/schema/validation.js.map +1 -1
- package/dist/sensor/accumulated-charge.d.ts +45 -64
- package/dist/sensor/accumulated-charge.js +41 -47
- package/dist/sensor/accumulated-charge.js.map +1 -1
- package/dist/sensor/architecture.d.ts +22 -25
- package/dist/sensor/architecture.js +17 -16
- package/dist/sensor/architecture.js.map +1 -1
- package/dist/sensor/camera-saturation-capacity.d.ts +21 -28
- package/dist/sensor/camera-saturation-capacity.js +36 -34
- package/dist/sensor/camera-saturation-capacity.js.map +1 -1
- package/dist/sensor/capture-color-sampling-binding.d.ts +46 -51
- package/dist/sensor/capture-color-sampling-binding.js +39 -41
- package/dist/sensor/capture-color-sampling-binding.js.map +1 -1
- package/dist/sensor/capture-mode-timing.d.ts +8 -9
- package/dist/sensor/capture-mode-timing.js +24 -21
- package/dist/sensor/capture-mode-timing.js.map +1 -1
- package/dist/sensor/capture-mode.d.ts +28 -30
- package/dist/sensor/capture-mode.js +33 -31
- package/dist/sensor/capture-mode.js.map +1 -1
- package/dist/sensor/color-sampling.d.ts +30 -33
- package/dist/sensor/color-sampling.js +32 -37
- package/dist/sensor/color-sampling.js.map +1 -1
- package/dist/sensor/constant-rate-temporal-integration.d.ts +19 -23
- package/dist/sensor/constant-rate-temporal-integration.js +28 -26
- package/dist/sensor/constant-rate-temporal-integration.js.map +1 -1
- package/dist/sensor/dark-current.d.ts +53 -49
- package/dist/sensor/dark-current.js +87 -46
- package/dist/sensor/dark-current.js.map +1 -1
- package/dist/sensor/environment-photo-signal.d.ts +71 -30
- package/dist/sensor/environment-photo-signal.js +127 -46
- package/dist/sensor/environment-photo-signal.js.map +1 -1
- package/dist/sensor/eqe-electron-rate.d.ts +14 -13
- package/dist/sensor/eqe-electron-rate.js +34 -14
- package/dist/sensor/eqe-electron-rate.js.map +1 -1
- package/dist/sensor/eqe-local-exposure.d.ts +24 -24
- package/dist/sensor/eqe-local-exposure.js +15 -11
- package/dist/sensor/eqe-local-exposure.js.map +1 -1
- package/dist/sensor/eqe-temporal-exposure.d.ts +11 -11
- package/dist/sensor/eqe-temporal-exposure.js +15 -10
- package/dist/sensor/eqe-temporal-exposure.js.map +1 -1
- package/dist/sensor/exposure-window.d.ts +48 -34
- package/dist/sensor/exposure-window.js +77 -36
- package/dist/sensor/exposure-window.js.map +1 -1
- package/dist/sensor/fixed-pattern-noise.d.ts +108 -0
- package/dist/sensor/fixed-pattern-noise.js +166 -0
- package/dist/sensor/fixed-pattern-noise.js.map +1 -0
- package/dist/sensor/iso-gain.d.ts +44 -0
- package/dist/sensor/iso-gain.js +119 -0
- package/dist/sensor/iso-gain.js.map +1 -0
- package/dist/sensor/iso-signal-chain.d.ts +25 -48
- package/dist/sensor/iso-signal-chain.js +52 -66
- package/dist/sensor/iso-signal-chain.js.map +1 -1
- package/dist/sensor/local-exposure-binding.d.ts +21 -21
- package/dist/sensor/local-exposure-binding.js +22 -18
- package/dist/sensor/local-exposure-binding.js.map +1 -1
- package/dist/sensor/optical-stack.d.ts +36 -40
- package/dist/sensor/optical-stack.js +34 -37
- package/dist/sensor/optical-stack.js.map +1 -1
- package/dist/sensor/photon-energy.d.ts +22 -28
- package/dist/sensor/photon-energy.js +42 -34
- package/dist/sensor/photon-energy.js.map +1 -1
- package/dist/sensor/physical-charge-capacity.d.ts +20 -30
- package/dist/sensor/physical-charge-capacity.js +35 -36
- package/dist/sensor/physical-charge-capacity.js.map +1 -1
- package/dist/sensor/pixel-pitch.d.ts +2 -3
- package/dist/sensor/pixel-pitch.js +4 -2
- package/dist/sensor/pixel-pitch.js.map +1 -1
- package/dist/sensor/radiometry-readiness.d.ts +13 -15
- package/dist/sensor/radiometry-readiness.js +20 -17
- package/dist/sensor/radiometry-readiness.js.map +1 -1
- package/dist/sensor/raw-readout.d.ts +173 -83
- package/dist/sensor/raw-readout.js +425 -160
- package/dist/sensor/raw-readout.js.map +1 -1
- package/dist/sensor/raw-reconstruction.d.ts +112 -44
- package/dist/sensor/raw-reconstruction.js +200 -47
- package/dist/sensor/raw-reconstruction.js.map +1 -1
- package/dist/sensor/readout-exposure-linkage.d.ts +103 -34
- package/dist/sensor/readout-exposure-linkage.js +125 -27
- package/dist/sensor/readout-exposure-linkage.js.map +1 -1
- package/dist/sensor/readout-timing.d.ts +43 -44
- package/dist/sensor/readout-timing.js +38 -30
- package/dist/sensor/readout-timing.js.map +1 -1
- package/dist/sensor/response-application-compatibility.d.ts +21 -28
- package/dist/sensor/response-application-compatibility.js +35 -34
- package/dist/sensor/response-application-compatibility.js.map +1 -1
- package/dist/sensor/response-operating-range.d.ts +26 -35
- package/dist/sensor/response-operating-range.js +40 -39
- package/dist/sensor/response-operating-range.js.map +1 -1
- package/dist/sensor/responsivity-photocurrent.d.ts +21 -29
- package/dist/sensor/responsivity-photocurrent.js +57 -40
- package/dist/sensor/responsivity-photocurrent.js.map +1 -1
- package/dist/sensor/sampling-aperture.d.ts +21 -25
- package/dist/sensor/sampling-aperture.js +29 -28
- package/dist/sensor/sampling-aperture.js.map +1 -1
- package/dist/sensor/scene-eqe-temporal-exposure.d.ts +14 -12
- package/dist/sensor/scene-eqe-temporal-exposure.js +13 -8
- package/dist/sensor/scene-eqe-temporal-exposure.js.map +1 -1
- package/dist/sensor/sensor-geometry.d.ts +28 -32
- package/dist/sensor/sensor-geometry.js +35 -20
- package/dist/sensor/sensor-geometry.js.map +1 -1
- package/dist/sensor/signal-noise.d.ts +14 -16
- package/dist/sensor/signal-noise.js +15 -13
- package/dist/sensor/signal-noise.js.map +1 -1
- package/dist/sensor/spatial-sample-reduction.d.ts +45 -60
- package/dist/sensor/spatial-sample-reduction.js +39 -48
- package/dist/sensor/spatial-sample-reduction.js.map +1 -1
- package/dist/sensor/spatial-sampling-quadrature.d.ts +46 -54
- package/dist/sensor/spatial-sampling-quadrature.js +31 -36
- package/dist/sensor/spatial-sampling-quadrature.js.map +1 -1
- package/dist/sensor/spatio-spectral-reduction.d.ts +32 -42
- package/dist/sensor/spatio-spectral-reduction.js +24 -29
- package/dist/sensor/spatio-spectral-reduction.js.map +1 -1
- package/dist/sensor/spectral-coverage.d.ts +6 -9
- package/dist/sensor/spectral-coverage.js +9 -6
- package/dist/sensor/spectral-coverage.js.map +1 -1
- package/dist/sensor/spectral-quadrature.d.ts +46 -60
- package/dist/sensor/spectral-quadrature.js +38 -48
- package/dist/sensor/spectral-quadrature.js.map +1 -1
- package/dist/sensor/spectral-response.d.ts +53 -41
- package/dist/sensor/spectral-response.js +80 -47
- package/dist/sensor/spectral-response.js.map +1 -1
- package/dist/sensor/stochastic-seed.d.ts +50 -0
- package/dist/sensor/stochastic-seed.js +123 -0
- package/dist/sensor/stochastic-seed.js.map +1 -0
- package/dist/sensor/temporal-eqe-sum.d.ts +2 -4
- package/dist/sensor/temporal-eqe-sum.js +5 -6
- package/dist/sensor/temporal-eqe-sum.js.map +1 -1
- package/dist/sensor/temporal-photo-signal.d.ts +5 -6
- package/dist/sensor/temporal-photo-signal.js +11 -10
- package/dist/sensor/temporal-photo-signal.js.map +1 -1
- package/dist/sensor/temporal-sample-binding.d.ts +1 -2
- package/dist/sensor/temporal-sample-binding.js +3 -3
- package/dist/sensor/temporal-sample-binding.js.map +1 -1
- package/dist/simulation/poc-simulation.d.ts +16 -16
- package/dist/simulation/poc-simulation.js +20 -15
- package/dist/simulation/poc-simulation.js.map +1 -1
- package/dist/stabilization/camera-shake.d.ts +42 -18
- package/dist/stabilization/camera-shake.js +43 -20
- package/dist/stabilization/camera-shake.js.map +1 -1
- package/dist/stabilization/system.d.ts +44 -41
- package/dist/stabilization/system.js +196 -108
- package/dist/stabilization/system.js.map +1 -1
- package/docs/AGENT_GUIDE.md +183 -0
- package/docs/API_REFERENCE.md +761 -2
- package/docs/QUICK_START.md +495 -0
- package/docs/USAGE.md +1719 -714
- package/docs/api/camera-equivalent-focal-length.md +6 -7
- package/docs/api/camera-field-of-view.md +16 -8
- package/docs/api/camera-lens-projection.md +246 -0
- package/docs/api/camera-projected-object-size.md +6 -5
- package/docs/api/capture-capture-export-metadata.md +10 -10
- package/docs/api/capture-dng-import.md +134 -0
- package/docs/api/capture-environment-raw-producer.md +17 -11
- package/docs/api/capture-export-jpeg.md +16 -0
- package/docs/api/capture-focus-control.md +25 -47
- package/docs/api/capture-linear-encoding.md +21 -12
- package/docs/api/capture-lossless-jpeg.md +49 -0
- package/docs/api/capture-native-environment-optical-stage.md +75 -0
- package/docs/api/capture-native-environment-raw.md +161 -4
- package/docs/api/capture-native-raw-development.md +69 -8
- package/docs/api/capture-native-raw-dng.md +84 -0
- package/docs/api/capture-native-raw.md +21 -10
- package/docs/api/capture-packed-sensor-raw.md +156 -0
- package/docs/api/capture-photographic-export.md +69 -31
- package/docs/api/capture-raw-frame-reconstruction.md +8 -8
- package/docs/api/capture-raw-white-level.md +37 -0
- package/docs/api/capture-release-sequence.md +6 -7
- package/docs/api/capture-sensor-raw-frame.md +6 -6
- package/docs/api/capture-sensor-raw-producer.md +17 -11
- package/docs/api/capture-simulated-capture.md +15 -15
- package/docs/api/color-camera-color-matrix.md +103 -0
- package/docs/api/color-capture-color.md +22 -11
- package/docs/api/color-chromatic-adaptation.md +82 -0
- package/docs/api/color-color-difference.md +134 -0
- package/docs/api/color-color-matching-functions.md +259 -0
- package/docs/api/color-colorimetry-math.md +54 -0
- package/docs/api/color-gamut-mapping.md +72 -0
- package/docs/api/color-illuminants.md +280 -0
- package/docs/api/color-rgb-color-spaces.md +151 -0
- package/docs/api/color-sensor-color-development.md +27 -0
- package/docs/api/color-srgb-icc.md +2 -4
- package/docs/api/color-white-balance.md +95 -19
- package/docs/api/composition-image-formation-plan.md +124 -95
- package/docs/api/composition-plan-consumer.md +7 -7
- package/docs/api/core-calculation-result.md +18 -14
- package/docs/api/core-configuration-error.md +1 -1
- package/docs/api/core-image-formation.md +7 -7
- package/docs/api/core-scientific-assurance.md +12 -10
- package/docs/api/core-spectral-composition.md +14 -14
- package/docs/api/core-spectral.md +6 -6
- package/docs/api/core-validation.md +3 -3
- package/docs/api/core-version.md +7 -6
- package/docs/api/equipment-exposure-capabilities.md +11 -10
- package/docs/api/equipment-generic-tier-assets.md +7 -2
- package/docs/api/equipment-generic-tier-presets.md +6 -6
- package/docs/api/equipment-iso-capabilities.md +18 -18
- package/docs/api/equipment-metering-capabilities.md +6 -6
- package/docs/api/equipment-release-capabilities.md +4 -4
- package/docs/api/exports.json +2213 -8
- package/docs/api/exposure-exposure-duration-control.md +9 -9
- package/docs/api/exposure-exposure-mode-resolver.md +35 -31
- package/docs/api/exposure-exposure.md +10 -10
- package/docs/api/exposure-flash-ttl.md +182 -0
- package/docs/api/exposure-flash.md +183 -28
- package/docs/api/exposure-metering-scene-radiance.md +11 -10
- package/docs/api/exposure-metering-target.md +9 -8
- package/docs/api/exposure-metering-temporal.md +8 -8
- package/docs/api/exposure-metering.md +69 -9
- package/docs/api/exposure-program-line.md +6 -5
- package/docs/api/facade-chart-radiance-batch.md +96 -0
- package/docs/api/facade-chart-scenes.md +240 -0
- package/docs/api/facade-scene-radiance.md +122 -0
- package/docs/api/facade-simulate-capture.md +324 -0
- package/docs/api/gpu-image-kernel-accelerator.md +157 -0
- package/docs/api/gpu-image-kernel-execution.md +152 -0
- package/docs/api/motion-camera-rotation.md +43 -26
- package/docs/api/motion-capture-rotation-inverse-mapping.md +24 -23
- package/docs/api/motion-capture-rotation-temporal-quadrature.md +22 -22
- package/docs/api/motion-capture-rotation-trajectory.md +15 -15
- package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +15 -14
- package/docs/api/motion-extended-object-projection.md +10 -8
- package/docs/api/motion-projected-motion.md +8 -8
- package/docs/api/motion-temporal-exposure-sum.md +98 -0
- package/docs/api/motion-video-sequence.md +159 -0
- package/docs/api/optics-aperture.md +8 -8
- package/docs/api/optics-atmospheric-haze.md +104 -0
- package/docs/api/optics-brown-conrady-distortion.md +123 -0
- package/docs/api/optics-circle-of-confusion.md +5 -4
- package/docs/api/optics-complex-pupil-psf.md +57 -16
- package/docs/api/optics-depth-of-field.md +12 -6
- package/docs/api/optics-diffraction.md +8 -7
- package/docs/api/optics-focus-breathing.md +104 -16
- package/docs/api/optics-focus-state.md +9 -10
- package/docs/api/optics-front-of-lens-filter.md +72 -14
- package/docs/api/optics-illumination-vignetting.md +10 -10
- package/docs/api/optics-irradiance-convolution.md +95 -0
- package/docs/api/optics-lateral-chromatic-aberration.md +22 -21
- package/docs/api/optics-lens-psf-kernels.md +72 -0
- package/docs/api/optics-lens-psf-profile.md +48 -26
- package/docs/api/optics-longitudinal-chromatic-aberration.md +128 -0
- package/docs/api/optics-polygon-diffraction.md +78 -13
- package/docs/api/optics-profile-contract.md +4 -4
- package/docs/api/optics-psf-foundation.md +12 -12
- package/docs/api/optics-pupil-vignetting.md +132 -0
- package/docs/api/optics-radial-distortion.md +12 -12
- package/docs/api/optics-scene-to-sensor-irradiance.md +25 -14
- package/docs/api/optics-scene-to-sensor-quadrature.md +15 -12
- package/docs/api/optics-sensor-aperture-rays.md +3 -2
- package/docs/api/optics-sensor-environment-query.md +52 -9
- package/docs/api/optics-sensor-psf-quadrature.md +13 -10
- package/docs/api/optics-stray-light.md +12 -11
- package/docs/api/optics-thin-lens.md +4 -3
- package/docs/api/optics-zernike-wavefront.md +229 -0
- package/docs/api/output-capture-corrected-sdr.md +10 -7
- package/docs/api/output-capture-geometry.md +35 -36
- package/docs/api/output-capture-sdr.md +4 -4
- package/docs/api/output-crop.md +7 -4
- package/docs/api/output-geometric-transforms.md +65 -19
- package/docs/api/output-lens-corrections.md +17 -15
- package/docs/api/output-native-capture-sdr.md +26 -13
- package/docs/api/output-png-encoder.md +105 -0
- package/docs/api/output-print-contrast-reference.md +8 -8
- package/docs/api/output-print-detail.md +14 -14
- package/docs/api/output-print-jpeg.md +22 -5
- package/docs/api/output-print-plan.md +18 -18
- package/docs/api/output-print-region-statistics.md +14 -14
- package/docs/api/output-sdr-rendering.md +52 -10
- package/docs/api/output-subject-framing-crop.md +5 -6
- package/docs/api/processing-demosaic.md +120 -0
- package/docs/api/processing-denoise.md +148 -0
- package/docs/api/processing-focus-stacking.md +41 -0
- package/docs/api/processing-hdr.md +113 -0
- package/docs/api/processing-panorama.md +82 -0
- package/docs/api/processing-processing-task.md +107 -0
- package/docs/api/processing-tone-mapping.md +142 -0
- package/docs/api/schema-camera.md +6 -4
- package/docs/api/schema-illumination-spectral.md +10 -11
- package/docs/api/schema-illumination-temporal.md +13 -15
- package/docs/api/schema-illumination.md +4 -4
- package/docs/api/schema-scene-radiance-temporal.md +10 -11
- package/docs/api/schema-scene-radiance.md +18 -17
- package/docs/api/schema-scene.md +9 -9
- package/docs/api/schema-validation.md +1 -1
- package/docs/api/sensor-accumulated-charge.md +12 -20
- package/docs/api/sensor-architecture.md +15 -16
- package/docs/api/sensor-camera-saturation-capacity.md +9 -11
- package/docs/api/sensor-capture-color-sampling-binding.md +47 -51
- package/docs/api/sensor-capture-mode-timing.md +9 -9
- package/docs/api/sensor-capture-mode.md +29 -30
- package/docs/api/sensor-color-sampling.md +31 -33
- package/docs/api/sensor-constant-rate-temporal-integration.md +10 -11
- package/docs/api/sensor-dark-current.md +30 -14
- package/docs/api/sensor-environment-photo-signal.md +13 -6
- package/docs/api/sensor-eqe-electron-rate.md +9 -8
- package/docs/api/sensor-eqe-local-exposure.md +18 -17
- package/docs/api/sensor-eqe-temporal-exposure.md +12 -11
- package/docs/api/sensor-exposure-window.md +24 -24
- package/docs/api/sensor-fixed-pattern-noise.md +104 -0
- package/docs/api/sensor-iso-gain.md +63 -0
- package/docs/api/sensor-iso-signal-chain.md +13 -22
- package/docs/api/sensor-local-exposure-binding.md +12 -13
- package/docs/api/sensor-optical-stack.md +37 -40
- package/docs/api/sensor-photon-energy.md +10 -11
- package/docs/api/sensor-physical-charge-capacity.md +8 -13
- package/docs/api/sensor-pixel-pitch.md +1 -1
- package/docs/api/sensor-radiometry-readiness.md +9 -9
- package/docs/api/sensor-raw-readout.md +118 -52
- package/docs/api/sensor-raw-reconstruction.md +97 -20
- package/docs/api/sensor-readout-exposure-linkage.md +120 -24
- package/docs/api/sensor-readout-timing.md +33 -35
- package/docs/api/sensor-response-application-compatibility.md +9 -11
- package/docs/api/sensor-response-operating-range.md +14 -18
- package/docs/api/sensor-responsivity-photocurrent.md +9 -12
- package/docs/api/sensor-sampling-aperture.md +22 -25
- package/docs/api/sensor-scene-eqe-temporal-exposure.md +9 -8
- package/docs/api/sensor-sensor-geometry.md +23 -24
- package/docs/api/sensor-signal-noise.md +10 -10
- package/docs/api/sensor-spatial-sample-reduction.md +27 -30
- package/docs/api/sensor-spatial-sampling-quadrature.md +37 -39
- package/docs/api/sensor-spatio-spectral-reduction.md +27 -29
- package/docs/api/sensor-spectral-coverage.md +5 -5
- package/docs/api/sensor-spectral-quadrature.md +33 -35
- package/docs/api/sensor-spectral-response.md +28 -16
- package/docs/api/sensor-temporal-photo-signal.md +6 -6
- package/docs/api/simulation-poc-simulation.md +17 -16
- package/docs/api/stabilization-camera-shake.md +29 -10
- package/docs/api/stabilization-system.md +25 -21
- package/docs/examples/production-request.json +3821 -2157
- package/docs/examples/simulate-capture.mjs +14 -0
- package/llms.txt +35 -0
- package/package.json +32 -12
- package/AGENTS.md +0 -674
- package/CONTRIBUTING.md +0 -76
- package/DCO +0 -33
- package/dist/camera/equivalent-focal-length.d.ts.map +0 -1
- package/dist/camera/field-of-view.d.ts.map +0 -1
- package/dist/camera/projected-object-size.d.ts.map +0 -1
- package/dist/capture/capture-export-metadata.d.ts.map +0 -1
- package/dist/capture/environment-raw-producer.d.ts.map +0 -1
- package/dist/capture/export-jpeg.d.ts.map +0 -1
- package/dist/capture/export-tiff.d.ts.map +0 -1
- package/dist/capture/focus-control.d.ts.map +0 -1
- package/dist/capture/linear-encoding.d.ts.map +0 -1
- package/dist/capture/native-environment-raw.d.ts.map +0 -1
- package/dist/capture/native-raw-development.d.ts.map +0 -1
- package/dist/capture/native-raw.d.ts.map +0 -1
- package/dist/capture/photographic-export.d.ts.map +0 -1
- package/dist/capture/raw-frame-limits.d.ts.map +0 -1
- package/dist/capture/raw-frame-reconstruction.d.ts.map +0 -1
- package/dist/capture/release-sequence.d.ts.map +0 -1
- package/dist/capture/sensor-raw-frame.d.ts.map +0 -1
- package/dist/capture/sensor-raw-producer.d.ts.map +0 -1
- package/dist/capture/simulated-capture.d.ts.map +0 -1
- package/dist/color/capture-color.d.ts.map +0 -1
- package/dist/color/sensor-color-development.d.ts.map +0 -1
- package/dist/color/srgb-icc.d.ts.map +0 -1
- package/dist/color/srgb-transfer.d.ts.map +0 -1
- package/dist/color/white-balance.d.ts.map +0 -1
- package/dist/composition/image-formation-plan.d.ts.map +0 -1
- package/dist/composition/plan-consumer.d.ts.map +0 -1
- package/dist/core/calculation-result.d.ts.map +0 -1
- package/dist/core/canonical-json.d.ts.map +0 -1
- package/dist/core/configuration-error.d.ts.map +0 -1
- package/dist/core/evidence-provenance.d.ts.map +0 -1
- package/dist/core/image-formation.d.ts.map +0 -1
- package/dist/core/owned-data.d.ts.map +0 -1
- package/dist/core/record-validation.d.ts.map +0 -1
- package/dist/core/scientific-assurance.d.ts.map +0 -1
- package/dist/core/spectral-composition.d.ts.map +0 -1
- package/dist/core/spectral.d.ts.map +0 -1
- package/dist/core/validation.d.ts.map +0 -1
- package/dist/core/version.d.ts.map +0 -1
- package/dist/equipment/exposure-capabilities.d.ts.map +0 -1
- package/dist/equipment/generic-tier-assets.d.ts.map +0 -1
- package/dist/equipment/generic-tier-presets.d.ts.map +0 -1
- package/dist/equipment/iso-capabilities.d.ts.map +0 -1
- package/dist/equipment/metering-capabilities.d.ts.map +0 -1
- package/dist/equipment/release-capabilities.d.ts.map +0 -1
- package/dist/exposure/exposure-duration-control.d.ts.map +0 -1
- package/dist/exposure/exposure-mode-resolver.d.ts.map +0 -1
- package/dist/exposure/exposure.d.ts.map +0 -1
- package/dist/exposure/flash.d.ts.map +0 -1
- package/dist/exposure/metering-scene-radiance.d.ts.map +0 -1
- package/dist/exposure/metering-target.d.ts.map +0 -1
- package/dist/exposure/metering-temporal.d.ts.map +0 -1
- package/dist/exposure/metering.d.ts.map +0 -1
- package/dist/exposure/program-line.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/motion/camera-rotation.d.ts.map +0 -1
- package/dist/motion/capture-rotation-inverse-mapping.d.ts.map +0 -1
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts.map +0 -1
- package/dist/motion/capture-rotation-trajectory.d.ts.map +0 -1
- package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts.map +0 -1
- package/dist/motion/extended-object-projection.d.ts.map +0 -1
- package/dist/motion/projected-motion.d.ts.map +0 -1
- package/dist/optics/aperture.d.ts.map +0 -1
- package/dist/optics/circle-of-confusion.d.ts.map +0 -1
- package/dist/optics/complex-pupil-psf.d.ts.map +0 -1
- package/dist/optics/depth-of-field.d.ts.map +0 -1
- package/dist/optics/diffraction.d.ts.map +0 -1
- package/dist/optics/focus-breathing.d.ts.map +0 -1
- package/dist/optics/focus-state.d.ts.map +0 -1
- package/dist/optics/front-of-lens-filter.d.ts.map +0 -1
- package/dist/optics/illumination-vignetting.d.ts.map +0 -1
- package/dist/optics/lateral-chromatic-aberration.d.ts.map +0 -1
- package/dist/optics/lens-psf-profile.d.ts.map +0 -1
- package/dist/optics/polygon-diffraction.d.ts.map +0 -1
- package/dist/optics/profile-contract.d.ts.map +0 -1
- package/dist/optics/psf-foundation.d.ts.map +0 -1
- package/dist/optics/radial-distortion.d.ts.map +0 -1
- package/dist/optics/scene-to-sensor-irradiance.d.ts.map +0 -1
- package/dist/optics/scene-to-sensor-quadrature.d.ts.map +0 -1
- package/dist/optics/sensor-aperture-rays.d.ts.map +0 -1
- package/dist/optics/sensor-environment-query.d.ts.map +0 -1
- package/dist/optics/sensor-psf-quadrature.d.ts.map +0 -1
- package/dist/optics/sensor-psf-support.d.ts.map +0 -1
- package/dist/optics/stray-light.d.ts.map +0 -1
- package/dist/optics/thin-lens.d.ts.map +0 -1
- package/dist/output/capture-corrected-sdr.d.ts.map +0 -1
- package/dist/output/capture-geometry.d.ts.map +0 -1
- package/dist/output/capture-sdr.d.ts.map +0 -1
- package/dist/output/crop.d.ts.map +0 -1
- package/dist/output/geometric-transforms.d.ts.map +0 -1
- package/dist/output/lens-corrections.d.ts.map +0 -1
- package/dist/output/native-capture-sdr.d.ts.map +0 -1
- package/dist/output/print-contrast-reference.d.ts.map +0 -1
- package/dist/output/print-detail.d.ts.map +0 -1
- package/dist/output/print-jpeg.d.ts.map +0 -1
- package/dist/output/print-plan.d.ts.map +0 -1
- package/dist/output/print-region-statistics.d.ts.map +0 -1
- package/dist/output/sdr-rendering.d.ts.map +0 -1
- package/dist/output/subject-framing-crop.d.ts.map +0 -1
- package/dist/schema/camera.d.ts.map +0 -1
- package/dist/schema/camera.js +0 -3
- package/dist/schema/camera.js.map +0 -1
- package/dist/schema/illumination-spectral.d.ts.map +0 -1
- package/dist/schema/illumination-temporal.d.ts.map +0 -1
- package/dist/schema/illumination.d.ts.map +0 -1
- package/dist/schema/scene-radiance-temporal.d.ts.map +0 -1
- package/dist/schema/scene-radiance.d.ts.map +0 -1
- package/dist/schema/scene.d.ts.map +0 -1
- package/dist/schema/scene.js +0 -3
- package/dist/schema/scene.js.map +0 -1
- package/dist/schema/validation.d.ts.map +0 -1
- package/dist/sensor/accumulated-charge.d.ts.map +0 -1
- package/dist/sensor/architecture.d.ts.map +0 -1
- package/dist/sensor/camera-saturation-capacity.d.ts.map +0 -1
- package/dist/sensor/capture-color-sampling-binding.d.ts.map +0 -1
- package/dist/sensor/capture-mode-timing.d.ts.map +0 -1
- package/dist/sensor/capture-mode.d.ts.map +0 -1
- package/dist/sensor/color-sampling.d.ts.map +0 -1
- package/dist/sensor/constant-rate-temporal-integration.d.ts.map +0 -1
- package/dist/sensor/dark-current.d.ts.map +0 -1
- package/dist/sensor/environment-photo-signal.d.ts.map +0 -1
- package/dist/sensor/eqe-electron-rate.d.ts.map +0 -1
- package/dist/sensor/eqe-local-exposure.d.ts.map +0 -1
- package/dist/sensor/eqe-temporal-exposure.d.ts.map +0 -1
- package/dist/sensor/exposure-window.d.ts.map +0 -1
- package/dist/sensor/iso-signal-chain.d.ts.map +0 -1
- package/dist/sensor/local-exposure-binding.d.ts.map +0 -1
- package/dist/sensor/optical-stack.d.ts.map +0 -1
- package/dist/sensor/photon-energy.d.ts.map +0 -1
- package/dist/sensor/physical-charge-capacity.d.ts.map +0 -1
- package/dist/sensor/pixel-pitch.d.ts.map +0 -1
- package/dist/sensor/radiometry-readiness.d.ts.map +0 -1
- package/dist/sensor/raw-readout.d.ts.map +0 -1
- package/dist/sensor/raw-reconstruction.d.ts.map +0 -1
- package/dist/sensor/readout-exposure-linkage.d.ts.map +0 -1
- package/dist/sensor/readout-timing.d.ts.map +0 -1
- package/dist/sensor/response-application-compatibility.d.ts.map +0 -1
- package/dist/sensor/response-operating-range.d.ts.map +0 -1
- package/dist/sensor/responsivity-photocurrent.d.ts.map +0 -1
- package/dist/sensor/sampling-aperture.d.ts.map +0 -1
- package/dist/sensor/scene-eqe-temporal-exposure.d.ts.map +0 -1
- package/dist/sensor/sensor-geometry.d.ts.map +0 -1
- package/dist/sensor/signal-noise.d.ts.map +0 -1
- package/dist/sensor/spatial-sample-reduction.d.ts.map +0 -1
- package/dist/sensor/spatial-sampling-quadrature.d.ts.map +0 -1
- package/dist/sensor/spatio-spectral-reduction.d.ts.map +0 -1
- package/dist/sensor/spectral-coverage.d.ts.map +0 -1
- package/dist/sensor/spectral-quadrature.d.ts.map +0 -1
- package/dist/sensor/spectral-response.d.ts.map +0 -1
- package/dist/sensor/temporal-eqe-sum.d.ts.map +0 -1
- package/dist/sensor/temporal-photo-signal.d.ts.map +0 -1
- package/dist/sensor/temporal-sample-binding.d.ts.map +0 -1
- package/dist/simulation/poc-simulation.d.ts.map +0 -1
- package/dist/stabilization/camera-shake.d.ts.map +0 -1
- package/dist/stabilization/system.d.ts.map +0 -1
- package/docs/API_STYLE.md +0 -235
- package/docs/ARCHITECTURE.md +0 -356
- package/docs/AUTOMATION_COORDINATION.md +0 -190
- package/docs/CAPTURE_COLOR.md +0 -25
- package/docs/CAPTURE_CORRECTED_SDR.md +0 -25
- package/docs/CAPTURE_EXPORT_METADATA.md +0 -27
- package/docs/CAPTURE_SDR.md +0 -22
- package/docs/DENSE_PUPIL_QUALIFICATION.md +0 -121
- package/docs/DEVELOPERS.md +0 -68
- package/docs/DIGITAL_OPTICS_FOUNDATION.md +0 -69
- package/docs/ENVIRONMENT_RAW_CAPTURE.md +0 -208
- package/docs/EXPORT_ACCEPTANCE.md +0 -133
- package/docs/GENERIC_TIER_PRESETS.md +0 -269
- package/docs/GEOMETRIC_PREPARATION_REUSE.md +0 -141
- package/docs/IMAGE_FORMATION.md +0 -247
- package/docs/LINEAR_CAPTURE_ENCODING.md +0 -25
- package/docs/MOTION_AND_SIGNAL.md +0 -250
- package/docs/NATIVE_CAPTURE_SDR.md +0 -70
- package/docs/NATIVE_CAPTURE_SDR_REVIEW.md +0 -37
- package/docs/NATIVE_CAPTURE_SDR_VALIDATION.md +0 -34
- package/docs/NATIVE_RAW_AND_PRINT.md +0 -54
- package/docs/NUMERICAL_CORRECTNESS.md +0 -191
- package/docs/PERFORMANCE_BASELINE.md +0 -56
- package/docs/PHOTOGRAPHIC_EXPORT.md +0 -206
- package/docs/PHYSICS_FOUNDATION.md +0 -426
- package/docs/POC_API.md +0 -278
- package/docs/POC_PROJECTION_PLATFORM_REFERENCE.md +0 -12
- package/docs/POC_PROJECTION_REUSE.md +0 -124
- package/docs/PRINT_195_196_REVIEW.md +0 -93
- package/docs/PRINT_196_ENGINE_ACCEPTANCE.md +0 -45
- package/docs/PRINT_CONTRAST_REFERENCE.md +0 -43
- package/docs/PRINT_DETAIL_ASSESSMENT.md +0 -81
- package/docs/PRINT_DETAIL_JPEG_EVIDENCE.md +0 -36
- package/docs/PRINT_DETAIL_SDR_EVIDENCE.md +0 -29
- package/docs/PRINT_DETAIL_VALIDATION.md +0 -36
- package/docs/PRINT_PLANNING.md +0 -75
- package/docs/PRINT_REGION_STATISTICS.md +0 -38
- package/docs/PROCESSED_OUTPUT.md +0 -157
- package/docs/PRODUCTION_COMPOSITION.md +0 -373
- package/docs/PRODUCTION_ENVIRONMENT_CAPTURE.md +0 -131
- package/docs/PROVENANCE.md +0 -115
- package/docs/PSF_FOUNDATION.md +0 -165
- package/docs/RAW_FRAME_ENVELOPE.md +0 -56
- package/docs/RAW_FRAME_RECONSTRUCTION.md +0 -30
- package/docs/RELEASE_1_0.md +0 -66
- package/docs/RELEASE_1_0_1.md +0 -61
- package/docs/RELEASE_1_1_0.md +0 -25
- package/docs/RELEASE_1_2_0.md +0 -51
- package/docs/RELEASE_1_3_0.md +0 -15
- package/docs/RELEASE_1_4_0.md +0 -23
- package/docs/RELEASE_1_5_0.md +0 -105
- package/docs/RELEASE_AUDIT.md +0 -39
- package/docs/SCENE_RADIANCE_AND_ILLUMINATION.md +0 -298
- package/docs/SCENE_SENSOR_QUADRATURE.md +0 -98
- package/docs/SCENE_SENSOR_TEMPORAL_EXPOSURE.md +0 -86
- package/docs/SCIENTIFIC_ASSURANCE.md +0 -280
- package/docs/SCIENTIFIC_CONFORMANCE.md +0 -83
- package/docs/SDR_RENDERING.md +0 -33
- package/docs/SENSOR_APERTURE_RAYS.md +0 -23
- package/docs/SENSOR_ENVIRONMENT_QUERY.md +0 -86
- package/docs/SENSOR_EQE_LOCAL_EXPOSURE.md +0 -104
- package/docs/SENSOR_EQE_TEMPORAL_EXPOSURE.md +0 -74
- package/docs/SENSOR_PSF_QUADRATURE.md +0 -90
- package/docs/SENSOR_RAW_FRAME.md +0 -20
- package/docs/SENSOR_RAW_PRODUCER.md +0 -77
- package/docs/SEPARABLE_EMISSION_DRAFT.md +0 -103
- package/docs/SIGNAL_CONFORMANCE.md +0 -23
- package/docs/SIMULATED_CAPTURE.md +0 -65
- package/docs/STABILIZATION.md +0 -234
- package/docs/TEMPORAL_PHOTO_RAW.md +0 -83
- package/docs/TIER_ACCEPTANCE.md +0 -129
- package/docs/TIER_PRESET_ACCEPTANCE.md +0 -59
- package/docs/V1_COMPOSITION_MAP.md +0 -123
- package/docs/V1_HELPER_REUSE_REVIEW.md +0 -60
- package/docs/V1_PERFORMANCE_DISPOSITION.md +0 -88
- package/docs/benchmarks/2026-10-01-main-baseline.json +0 -694
- package/docs/benchmarks/2026-10-02-geometric-preparation-reuse.json +0 -2190
- package/docs/benchmarks/2026-10-02-poc-projection-reuse.json +0 -2423
- package/docs/benchmarks/2026-10-02-v1-environment-gc-profile.json +0 -210
- package/docs/benchmarks/2026-10-02-v1-environment-ordinary.json +0 -187
- package/docs/benchmarks/2026-10-02-v1-geometry-gc-profile.json +0 -756
- package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-1.json +0 -711
- package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-2.json +0 -711
- package/docs/benchmarks/2026-10-02-v1-poc-gc-profile.json +0 -885
- package/docs/benchmarks/2026-10-02-v1-poc-ordinary-1.json +0 -868
- package/docs/benchmarks/2026-10-02-v1-poc-ordinary-2.json +0 -868
- package/docs/licenses/castleCSF-MIT.txt +0 -21
- package/docs/validation/dense-pupil-2026-10-06/pilot.jsonl +0 -6
- package/docs/validation/documentation-fragments.json +0 -212
- package/docs/validation/native-capture-sdr-darwin-arm64-node26-review.jsonl +0 -4
- package/docs/validation/native-capture-sdr-darwin-arm64.jsonl +0 -3
- package/docs/validation/native-raw-print-2026-10-04/fractional-asymmetric-crop.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/gray-ramp.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/linear-area-checker.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/manifest.json +0 -218
- package/docs/validation/native-raw-print-2026-10-04/megapixel-native.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/native-color.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel-validation.json +0 -9
- package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json +0 -29
- package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json.codes.u16le.gz +0 -0
- package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json.rgb.gz +0 -0
- package/docs/validation/native-raw-print-2026-10-04/srgb.icc +0 -0
- package/docs/validation/native-raw-print-2026-10-04/validation.json +0 -41
- package/docs/validation/print-196-candidate-capabilities.json +0 -28
- package/docs/validation/print-196-candidate-evidence.json +0 -356
- package/docs/validation/print-196-engine-acceptance.json +0 -81
- package/docs/validation/print-detail-capabilities.json +0 -103
- package/docs/validation/print-detail-jpeg-evidence.json +0 -116
- package/docs/validation/print-detail-sdr-evidence.json +0 -81
- package/docs/validation/release-audit-inventory.json +0 -1306
- package/docs/validation/tier-acceptance-report-v1.json +0 -2538
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture-color-sampling-binding.js","sourceRoot":"","sources":["../../src/sensor/capture-color-sampling-binding.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EACL,iBAAiB,EAElB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kBAAkB,EAKnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,+BAA+B,EAEhC,MAAM,qBAAqB,CAAC;AA4L7B,SAAS,aAAa,CACpB,KAAc,EACd,IAAY;IAEZ,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EACpB,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI,GAAG,qBAAqB,CAC7B,CAAC;IACJ,CAAC;IACD,OAAO,KAAsB,CAAC;AAChC,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAc,EACd,IAAY;IAEZ,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EACzB,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI,GAAG,8BAA8B,CACtC,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,0BAA0B,CACjC,KAAc,EACd,IAAY;IAEZ,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;QAC5B,KAAK,IAAI,CAAC,EACV,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI,GAAG,mCAAmC,CAC3C,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAC7B,KAAc;IAEd,MAAM,YAAY,GAAG,aAAa,CAChC,KAAK,EACL,mCAAmC,CACpC,CAAC;IACF,MAAM,UAAU,GACd,0BAA0B,CACxB,YAAY,CAAC,UAAU,EACvB,8CAA8C,CAC/C,CAAC;IACJ,MAAM,WAAW,GACf,0BAA0B,CACxB,YAAY,CAAC,WAAW,EACxB,+CAA+C,CAChD,CAAC;IAEJ,IACE,CAAC,MAAM,CAAC,aAAa,CACnB,UAAU,GAAG,WAAW,CACzB,EACD,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,oFAAoF,CACrF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,UAAU;QACV,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,MAAyB,EACzB,IAAY;IAEZ,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC;QAChB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,2BAA2B,CACnC,IAAI,GAAG,8BAA8B,CACtC,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAAyB;IAEzB,sBAAsB,CACpB,yBAAyB,EACzB,MAAM,CAAC,UAAU,CAClB,CAAC;IACF,sBAAsB,CACpB,0BAA0B,EAC1B,MAAM,CAAC,WAAW,CACnB,CAAC;IACF,WAAW,CACT,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,EACvC,uCAAuC,CACxC,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAClC,KAAc,EACd,IAAY;IAEZ,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;QAC5B,KAAK,GAAG,CAAC,EACT,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,IAAI;YACF,oEAAoE,CACvE,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qDAAqD,CACnE,KAAc;IAEd,MAAM,OAAO,GAAG,aAAa,CAC3B,KAAK,EACL,sBAAsB,CACvB,CAAC;IAEF,IAAI,OAAO,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;QACtC,MAAM,IAAI,yBAAyB,CACjC,qDAAqD,CACtD,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,aAAa,CAChC,OAAO,CAAC,YAAY,EACpB,mCAAmC,CACpC,CAAC;IAEF,IACE,YAAY,CAAC,IAAI;QACjB,wCAAwC,EACxC,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,oDAAoD,CACrD,CAAC;IACJ,CAAC;IAED,IACE,YAAY,CAAC,MAAM;QACnB,wBAAwB,EACxB,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,4EAA4E,CAC7E,CAAC;IACJ,CAAC;IAED,OAAO;QACL,aAAa,EAAE,OAAO;QACtB,SAAS,EAAE,qBAAqB,CAC9B,OAAO,CAAC,SAAS,EACjB,gCAAgC,CACjC;QACD,sBAAsB,EACpB,qBAAqB,CACnB,OAAO,CAAC,sBAAsB,EAC9B,6CAA6C,CAC9C;QACH,YAAY,EAAE,sBAAsB,CAClC,OAAO,CAAC,YAAY,CACrB;QACD,QAAQ,EAAE,iBAAiB,CACzB,OAAO,CAAC,QAAQ,EAChB,+BAA+B,CAChC;QACD,YAAY,EAAE;YACZ,IAAI,EACF,wCAAwC;YAC1C,qBAAqB,EACnB,0BAA0B,CACxB,YAAY,CAAC,qBAAqB,EAClC,yDAAyD,CAC1D;YACH,qBAAqB,EACnB,0BAA0B,CACxB,YAAY,CAAC,qBAAqB,EAClC,yDAAyD,CAC1D;YACH,MAAM,EAAE,wBAAwB;SACjC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gDAAgD,CAC9D,KAIC;IAED,oBAAoB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAEzC,MAAM,oBAAoB,GACxB,+BAA+B,CAC7B,KAAK,CAAC,oBAAoB,CAC3B,CAAC;IACJ,MAAM,cAAc,GAClB,qDAAqD,CACnD,KAAK,CAAC,cAAc,CACrB,CAAC;IAEJ,IACE,cAAc,CAAC,sBAAsB;QACrC,oBAAoB,CAAC,SAAS,EAC9B,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,2EAA2E,CAC5E,CAAC;IACJ,CAAC;IAED,IACE,cAAc,CAAC,YAAY,CAAC,UAAU;QACpC,KAAK,CAAC,YAAY,CAAC,UAAU;QAC/B,cAAc,CAAC,YAAY,CAAC,WAAW;YACrC,KAAK,CAAC,YAAY,CAAC,WAAW,EAChC,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,yFAAyF,CAC1F,CAAC;IACJ,CAAC;IAED,IAAI,oBAAoB,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACnD,MAAM,IAAI,2BAA2B,CACnC,sIAAsI,CACvI,CAAC;IACJ,CAAC;IAED,IACE,oBAAoB,CAAC,gBAAgB;QACrC,yCAAyC,EACzC,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,qGAAqG,CACtG,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,WAAW,CAC5B;QACE,KAAK,CAAC,YAAY,CAAC,UAAU;QAC7B,cAAc,CAAC,YAAY;aACxB,qBAAqB;KACzB,EACD,gCAAgC,CACjC,CAAC;IACF,MAAM,WAAW,GAAG,WAAW,CAC7B;QACE,KAAK,CAAC,YAAY,CAAC,WAAW;QAC9B,cAAc,CAAC,YAAY;aACxB,qBAAqB;KACzB,EACD,iCAAiC,CAClC,CAAC;IACF,MAAM,uBAAuB,GAC3B,WAAW,CACT,CAAC,UAAU,EAAE,WAAW,CAAC,EACzB,2CAA2C,CAC5C,CAAC;IAEJ,MAAM,QAAQ,GACZ,cAAc,CAAC,YAAY;SACxB,qBAAqB,KAAK,CAAC;QAC9B,cAAc,CAAC,YAAY;aACxB,qBAAqB,KAAK,CAAC,CAAC;IAEjC,OAAO;QACL,SAAS,EAAE,cAAc,CAAC,SAAS;QACnC,sBAAsB,EACpB,cAAc,CAAC,sBAAsB;QACvC,YAAY,EAAE;YACZ,GAAG,KAAK,CAAC,YAAY;SACtB;QACD,mBAAmB,EAAE,QAAQ;YAC3B,CAAC,CAAC,+CAA+C;YACjD,CAAC,CAAC,6DAA6D;QACjE,YAAY,EAAE;YACZ,GAAG,cAAc,CAAC,YAAY;SAC/B;QACD,qBAAqB,EAAE;YACrB,UAAU;YACV,WAAW;SACZ;QACD,uBAAuB;QACvB,mCAAmC,EAAE,IAAI;QACzC,oCAAoC,EAAE,KAAK;QAC3C,gCAAgC,EAC9B,eAAe;QACjB,2BAA2B,EAAE,KAAK;QAClC,iBAAiB,EAAE;YACjB,OAAO,EAAE,cAAc,CAAC,QAAQ;YAChC,oBAAoB,EAClB,oBAAoB,CAAC,QAAQ;SAChC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAa,EACb,MAAc,EACd,MAAc,EACd,OAAe;IAEf,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,CAAC;IACpC,MAAM,KAAK,GACT,CAAC,OAAO,GAAG,YAAY,GAAG,MAAM,CAAC;QACjC,MAAM,CAAC;IAET,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;QACpB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,CACL,CAAC;QACD,IAAI,CAAC,KAAK,CACR,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,CAC9B,CACF,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,OAAmC,EACnC,IAA2B;IAE3B,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EACzB,uCAAuC,CACxC,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,IAAI,2BAA2B,CACnC,oFAAoF,CACrF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACzC,OAAO;YACL;gBACE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;gBACnC,SAAS,EAAE,UAAU;aACtB;SACF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GACV,IAAI,GAAG,EAAkB,CAAC;IAE5B,KACE,IAAI,KAAK,GAAG,CAAC,EACb,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,EACxC,KAAK,IAAI,CAAC,EACV,CAAC;QACD,MAAM,MAAM,GAAG,mBAAmB,CAChC,IAAI,CAAC,CAAC,EACN,IAAI,CAAC,MAAM,EACX,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAChC,KAAK,CACN,CAAC;QACF,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,SAAS;QACX,CAAC;QAED,KACE,IAAI,KAAK,GAAG,CAAC,EACb,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,EACvC,KAAK,IAAI,CAAC,EACV,CAAC;YACD,MAAM,MAAM,GAAG,mBAAmB,CAChC,IAAI,CAAC,CAAC,EACN,IAAI,CAAC,KAAK,EACV,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAC/B,KAAK,CACN,CAAC;YACF,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjB,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GACb,KAAK;gBACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;gBACjC,KAAK,CAAC;YACR,MAAM,SAAS,GACb,OAAO,CAAC,MAAM,CAAC,cAAc,CAC3B,SAAS,CACV,CAAC;YAEJ,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM,IAAI,2BAA2B,CACnC,sFAAsF,CACvF,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,WAAW,CAC3B,CAAC,MAAM,EAAE,MAAM,CAAC,EAChB,oCAAoC,CACrC,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,KAAK,GAAG,SAAS,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,2BAA2B,CACnC,gEAAgE,CACjE,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CACvB,MAAM,EACN,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3B,SAAS;QACT,SAAS;KACV,CAAC,CACH,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAChC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,SAAS,EACrC,CAAC,CACF,CAAC;IAEF,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,2BAA2B,CACnC,iGAAiG,CAClG,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,2CAA2C,CACzD,KAAuD;IAEvD,MAAM,oBAAoB,GACxB,+BAA+B,CAC7B,KAAK,CAAC,oBAAoB,CAC3B,CAAC;IACJ,MAAM,OAAO,GACX,gDAAgD,CAC9C;QACE,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,oBAAoB;QACpB,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CACF,CAAC;IACJ,MAAM,WAAW,GAAG,kBAAkB,CAAC;QACrC,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,OAAO,EAAE,KAAK,CAAC,kBAAkB;QACjC,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC,CAAC;IAEH,IACE,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,CAChC,sBAAsB,CACvB,EACD,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,wHAAwH,CACzH,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,2BAA2B,CACvC,KAAK,CAAC,wBAAwB,CAAC,CAAC,EAChC,4BAA4B,CAC7B,CAAC;IACF,MAAM,KAAK,GAAG,2BAA2B,CACvC,KAAK,CAAC,wBAAwB,CAAC,CAAC,EAChC,4BAA4B,CAC7B,CAAC;IAEF,IACE,WAAW,CAAC,gBAAgB,CAAC,IAAI;QACjC,2BAA2B,EAC3B,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,4JAA4J,CAC7J,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GACpB,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC;IAEtC,IACE,KAAK,IAAI,gBAAgB,CAAC,UAAU;QACpC,KAAK,IAAI,gBAAgB,CAAC,WAAW,EACrC,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,oGAAoG,CACrG,CAAC;IACJ,CAAC;IAED,IAAI,yBACuB,CAAC;IAC5B,IAAI,QACsD,CAAC;IAE3D,IACE,WAAW,CAAC,gBAAgB,CAAC,IAAI;QACjC,yBAAyB,EACzB,CAAC;QACD,IAAI,KAAK,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;YAC9C,MAAM,IAAI,2BAA2B,CACnC,kFAAkF,CACnF,CAAC;QACJ,CAAC;QAED,yBAAyB,GAAG;YAC1B,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,KAAK;YACR,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;SACV,CAAC;QACF,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,IACE,KAAK,CAAC,qBAAqB,KAAK,SAAS;YACzC,KAAK,CAAC,qBAAqB,CAAC,MAAM;gBAChC,kCAAkC,EACpC,CAAC;YACD,MAAM,IAAI,2BAA2B,CACnC,wHAAwH,CACzH,CAAC;QACJ,CAAC;QACD,MAAM,sBAAsB,GAC1B,iBAAiB,CACf,KAAK,CAAC,qBAAqB,CAAC,QAAQ,EACpC,gCAAgC,CACjC,CAAC;QAEJ,MAAM,UAAU,GACd,WAAW,CAAC,gBAAgB;aACzB,iBAAiB,CAAC,KAAK,CAAC;QAC7B,MAAM,WAAW,GACf,WAAW,CAAC,gBAAgB;aACzB,kBAAkB,CAAC,KAAK,CAAC;QAE9B,yBAAyB,GAAG;YAC1B,CAAC,EAAE,WAAW,CACZ,CAAC,KAAK,EAAE,UAAU,CAAC,EACnB,qCAAqC,CACtC;YACD,CAAC,EAAE,WAAW,CACZ,CAAC,KAAK,EAAE,WAAW,CAAC,EACpB,qCAAqC,CACtC;YACD,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,WAAW;SACpB,CAAC;QACF,QAAQ,GAAG;YACT,iBAAiB,EACf,WAAW,CAAC,gBAAgB;iBACzB,iBAAiB;YACtB,kBAAkB,EAChB,WAAW,CAAC,gBAAgB;iBACzB,kBAAkB;YACvB,GAAG,CAAC,WAAW,CAAC,gBAAgB;iBAC7B,iBAAiB,KAAK,SAAS;gBAChC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,iBAAiB,EACf,WAAW,CAAC,gBAAgB;yBACzB,iBAAiB;iBACvB,CAAC;YACN,MAAM,EACJ,kCAAkC;YACpC,cAAc,EACZ,sBAAsB;SACzB,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GACnB,OAAO,CAAC,YAAY;SACjB,qBAAqB,CAAC;IAC3B,MAAM,eAAe,GACnB,OAAO,CAAC,YAAY;SACjB,qBAAqB,CAAC;IAE3B,MAAM,qBAAqB,GACD;QACtB,CAAC,EAAE,WAAW,CACZ;YACE,yBAAyB,CAAC,CAAC;YAC3B,eAAe;SAChB,EACD,wCAAwC,CACzC;QACD,CAAC,EAAE,WAAW,CACZ;YACE,yBAAyB,CAAC,CAAC;YAC3B,eAAe;SAChB,EACD,wCAAwC,CACzC;QACD,KAAK,EAAE,WAAW,CAChB;YACE,yBAAyB,CAAC,KAAK;YAC/B,eAAe;SAChB,EACD,4CAA4C,CAC7C;QACD,MAAM,EAAE,WAAW,CACjB;YACE,yBAAyB,CAAC,MAAM;YAChC,eAAe;SAChB,EACD,6CAA6C,CAC9C;KACF,CAAC;IAEJ,IACE,qBAAqB,CAAC,CAAC;QACrB,qBAAqB,CAAC,KAAK;QAC3B,OAAO,CAAC,qBAAqB,CAAC,UAAU;QAC1C,qBAAqB,CAAC,CAAC;YACrB,qBAAqB,CAAC,MAAM;YAC5B,OAAO,CAAC,qBAAqB,CAAC,WAAW,EAC3C,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,kFAAkF,CACnF,CAAC;IACJ,CAAC;IAED,MAAM,qBAAqB,GACzB,WAAW,CACT;QACE,qBAAqB,CAAC,KAAK;QAC3B,qBAAqB,CAAC,MAAM;KAC7B,EACD,8BAA8B,CAC/B,CAAC;IACJ,MAAM,iBAAiB,GACrB,wBAAwB,CACtB,oBAAoB,EACpB,qBAAqB,CACtB,CAAC;IAEJ,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC1C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,2BAA2B,CACnC,qFAAqF,CACtF,CAAC;IACJ,CAAC;IAED,MAAM,kBAAkB,GAEtB,iBAAiB,CAAC,MAAM,KAAK,CAAC;QAC5B,CAAC,CAAC;YACE,IAAI,EAAE,gBAAgB;YACtB,SAAS,EAAE,YAAY,CAAC,SAAS;SAClC;QACH,CAAC,CAAC;YACE,IAAI,EAAE,gBAAgB;YACtB,UAAU,EACR,iBAAiB,CAAC,GAAG,CACnB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAC3B;SACJ,CAAC;IAER,OAAO;QACL,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,sBAAsB,EACpB,oBAAoB,CAAC,SAAS;QAChC,0BAA0B,EACxB,gDAAgD;QAClD,wBAAwB,EAAE;YACxB,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,KAAK;SACT;QACD,gBAAgB,EAAE;YAChB,GAAG,gBAAgB;SACpB;QACD,gBAAgB,EACd,WAAW,CAAC,gBAAgB,CAAC,IAAI;QACnC,yBAAyB;QACzB,qBAAqB;QACrB,qBAAqB,EAAE;YACrB,GAAG,OAAO,CAAC,qBAAqB;SACjC;QACD,qBAAqB;QACrB,iBAAiB;QACjB,kBAAkB;QAClB,QAAQ;QACR,GAAG,CAAC,WAAW;aACZ,oCAAoC;YACvC,SAAS;YACP,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,oCAAoC,EAClC,WAAW;qBACR,oCAAoC;aAC1C,CAAC;QACN,qCAAqC,EACnC,KAAK;QACP,8BAA8B,EAC5B,uBAAuB;QACzB,qBAAqB,EACnB,oBAAoB;QACtB,4CAA4C,EAC1C,KAAK;QACP,qCAAqC,EACnC,KAAK;QACP,2BAA2B,EAAE,KAAK;QAClC,oCAAoC,EAClC,KAAK;QACP,gCAAgC,EAC9B,eAAe;QACjB,iBAAiB,EAAE;YACjB,OAAO,EACL,OAAO,CAAC,iBAAiB,CAAC,OAAO;YACnC,oBAAoB,EAClB,OAAO,CAAC,iBAAiB;iBACtB,oBAAoB;YACzB,WAAW,EAAE,WAAW,CAAC,YAAY;SACtC;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"capture-color-sampling-binding.js","sourceRoot":"","sources":["../../src/sensor/capture-color-sampling-binding.ts"],"names":[],"mappings":"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","sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Links the sensor's native image pixel grid to its grid of colour-sampling sites (for example the\n * cells of a CFA, colour filter array), and finds which sites feed each capture-mode sample.\n *\n * The link exists only because the caller supplies an evidence-backed binding. Matching grid sizes\n * are never taken as proof of a one-to-one link. This first version supports only regular\n * rectangular blocks of sites that share the native top-left corner.\n * @see docs/MOTION_AND_SIGNAL.md for equations, coordinate/unit conventions, blockers and support\n * limits.\n */\n\nimport { InvalidConfigurationError } from \"../core/configuration-error.js\";\nimport {\n parseEvidenceList,\n type EvidenceProvenance\n} from \"../core/evidence-provenance.js\";\nimport {\n InvalidScientificInputError,\n requirePositiveInteger\n} from \"../core/validation.js\";\nimport {\n resolveCaptureMode,\n type CaptureModeProfile,\n type CaptureModeSampleCombinationDomain,\n type CaptureModeSensorOffsetNativeSamples,\n type SourcedCaptureModeFact\n} from \"./capture-mode.js\";\nimport {\n parseSensorColorSamplingProfile,\n type SensorColorSamplingProfile\n} from \"./color-sampling.js\";\nimport type { NativeImageRaster } from \"./sensor-geometry.js\";\nimport { requireInputObject, requireInputKeys, rejectUnknownFields } from \"../core/record-validation.js\";\n\ntype UnknownRecord = Record<string, unknown>;\n\nexport interface NativeEffectiveRasterColorSamplingBindingProfile {\n schemaVersion: \"0.1.0\";\n bindingId: string;\n colorSamplingProfileId: string;\n /**\n * The exact native image grid this binding has evidence for. Do not reuse\n * the binding with another grid just because another sensor or mode has\n * similar dimensions or the same aspect ratio.\n */\n nativeRaster: NativeImageRaster;\n /**\n * Evidence for the link between the native image grid and the colour-site\n * grid itself.\n *\n * Capture-mode and colour-layout facts keep their own separate evidence.\n */\n evidence: readonly EvidenceProvenance[];\n relationship: {\n kind: \"regular-native-effective-sample-blocks\";\n /**\n * Number of colour-sampling sites one native image sample spans\n * horizontally.\n */\n sitesPerNativeSampleX: number;\n /**\n * Number of colour-sampling sites one native image sample spans\n * vertically.\n */\n sitesPerNativeSampleY: number;\n /**\n * Both grids start at the same native sensor top-left corner.\n *\n * This keeps the CFA phase absolute through later active-area crops and\n * orientation changes.\n */\n anchor: \"shared-native-top-left\";\n };\n}\n\nexport interface ColorSamplingSiteGridDimensions {\n widthSites: number;\n heightSites: number;\n}\n\nexport interface ResolvedNativeEffectiveRasterColorSamplingBinding {\n bindingId: string;\n colorSamplingProfileId: string;\n nativeRaster: NativeImageRaster;\n relationshipMeaning:\n | \"one-native-effective-sample-to-one-color-site\"\n | \"one-native-effective-sample-to-rectangular-color-site-block\";\n relationship: {\n kind: \"regular-native-effective-sample-blocks\";\n sitesPerNativeSampleX: number;\n sitesPerNativeSampleY: number;\n anchor: \"shared-native-top-left\";\n };\n colorSamplingSiteGrid: ColorSamplingSiteGridDimensions;\n totalColorSamplingSites: number;\n nativeImageRasterBindingEstablished: true;\n physicalPhotodiodeBindingEstablished: false;\n physicalPhotodiodeCountInference: \"not-permitted\";\n spectralResponseEstablished: false;\n componentEvidence: {\n binding: readonly EvidenceProvenance[];\n colorSamplingProfile: readonly EvidenceProvenance[];\n };\n}\n\nexport interface NativeEffectiveSampleRect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport interface ColorSamplingSiteRect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport interface CaptureModeFullFrameSampleIndex {\n /**\n * Zero-based index in the selected mode's full-frame sample grid (per frame).\n * Convert crop-relative coordinates to absolute full-frame indices before\n * calling this API.\n */\n x: number;\n y: number;\n}\n\nexport interface ColorSamplingChannelSiteCount {\n channelId: string;\n siteCount: number;\n}\n\nexport type ColorSamplingChannelComposition =\n | {\n kind: \"single-channel\";\n channelId: string;\n }\n | {\n kind: \"mixed-channels\";\n channelIds: readonly string[];\n };\n\nexport interface GroupedCaptureModeSamplingAnchorDeclaration {\n anchor: \"native-effective-raster-top-left\";\n evidence: readonly EvidenceProvenance[];\n}\n\nexport interface ResolveCaptureModeColorSamplingContributorsInput {\n nativeRaster: NativeImageRaster;\n captureModeProfile: CaptureModeProfile;\n modeId: string;\n colorSamplingProfile: SensorColorSamplingProfile;\n bindingProfile: NativeEffectiveRasterColorSamplingBindingProfile;\n modeSampleIndexFullFrame: CaptureModeFullFrameSampleIndex;\n /**\n * Required for modes that group native samples, because the capture-mode\n * profile declares grouping factors but does not prove where the groups start.\n */\n groupedSamplingAnchor?: GroupedCaptureModeSamplingAnchorDeclaration;\n}\n\nexport interface ResolvedCaptureModeColorSamplingContributors {\n modeId: string;\n colorSamplingProfileId: string;\n modeSampleCoordinateSystem:\n \"capture-mode-full-frame-effective-sample-index\";\n modeSampleIndexFullFrame: CaptureModeFullFrameSampleIndex;\n modeSampleRaster: {\n pixelWidth: number;\n pixelHeight: number;\n };\n modeSamplingKind:\n | \"native-effective-raster\"\n | \"grouped-native-samples\";\n nativeEffectiveSampleRect: NativeEffectiveSampleRect;\n colorSamplingSiteRect: ColorSamplingSiteRect;\n colorSamplingSiteGrid: ColorSamplingSiteGridDimensions;\n totalContributorSites: number;\n channelSiteCounts: readonly ColorSamplingChannelSiteCount[];\n channelComposition: ColorSamplingChannelComposition;\n /**\n * Present only when the selected capture mode groups several native samples\n * into one sample per frame.\n */\n grouping:\n | {\n groupWidthSamples: SourcedCaptureModeFact<number>;\n groupHeightSamples: SourcedCaptureModeFact<number>;\n combinationDomain?: SourcedCaptureModeFact<CaptureModeSampleCombinationDomain>;\n anchor: \"native-effective-raster-top-left\";\n anchorEvidence: readonly EvidenceProvenance[];\n }\n | null;\n /**\n * The sensor-shift sequence stays attached to the sensor and capture mode.\n *\n * The sensor and its CFA move together, so these offsets must not change\n * which colour channel a site belongs to.\n */\n interFrameSensorOffsetsNativeSamples?: SourcedCaptureModeFact<\n readonly CaptureModeSensorOffsetNativeSamples[]\n >;\n sensorShiftChangesColorSiteAssignment: false;\n sensorShiftOpticalRegistration:\n \"outside-this-contract\";\n structuralSourceStage: \"pre-reconstruction\";\n completeDownstreamPixelDependencyEstablished: false;\n signalCombinationWeightingEstablished: false;\n spectralResponseEstablished: false;\n physicalPhotodiodeBindingEstablished: false;\n physicalPhotodiodeCountInference: \"not-permitted\";\n componentEvidence: {\n binding: readonly EvidenceProvenance[];\n colorSamplingProfile: readonly EvidenceProvenance[];\n captureMode: readonly EvidenceProvenance[];\n };\n}\n\nfunction requireRecord(\n value: unknown,\n path: string,\n allowedKeys: readonly string[] | null\n): UnknownRecord {\n if (\n typeof value !== \"object\" ||\n value === null ||\n Array.isArray(value)\n ) {\n throw new InvalidConfigurationError(\n path + \" must be an object.\"\n );\n }\n if (allowedKeys !== null) rejectUnknownFields(value, allowedKeys, path);\n return value as UnknownRecord;\n}\n\nfunction requireNonEmptyString(\n value: unknown,\n path: string\n): string {\n if (\n typeof value !== \"string\" ||\n value.trim().length === 0\n ) {\n throw new InvalidConfigurationError(\n path + \" must be a non-empty string.\"\n );\n }\n return value;\n}\n\nfunction requirePositiveSafeInteger(\n value: unknown,\n path: string\n): number {\n if (\n typeof value !== \"number\" ||\n !Number.isSafeInteger(value) ||\n value <= 0\n ) {\n throw new InvalidConfigurationError(\n path + \" must be a positive safe integer.\"\n );\n }\n return value;\n}\n\nfunction parseBoundNativeRaster(\n value: unknown\n): NativeImageRaster {\n const nativeRaster = requireRecord(\n value,\n \"colorSamplingBinding.nativeRaster\", [\"pixelWidth\", \"pixelHeight\"]\n );\n const pixelWidth =\n requirePositiveSafeInteger(\n nativeRaster.pixelWidth,\n \"colorSamplingBinding.nativeRaster.pixelWidth\"\n );\n const pixelHeight =\n requirePositiveSafeInteger(\n nativeRaster.pixelHeight,\n \"colorSamplingBinding.nativeRaster.pixelHeight\"\n );\n\n if (\n !Number.isSafeInteger(\n pixelWidth * pixelHeight\n )\n ) {\n throw new InvalidConfigurationError(\n \"colorSamplingBinding.nativeRaster total image-sample count must be a safe integer.\"\n );\n }\n\n return {\n pixelWidth,\n pixelHeight\n };\n}\n\nfunction safeProduct(\n values: readonly number[],\n path: string\n): number {\n let result = 1;\n for (const value of values) {\n result *= value;\n if (!Number.isSafeInteger(result)) {\n throw new InvalidScientificInputError(\n path + \" must remain a safe integer.\"\n );\n }\n }\n return result;\n}\n\nfunction validateNativeRaster(\n raster: NativeImageRaster\n): void {\n requireInputObject(raster, \"raster input\");\n requirePositiveInteger(\n \"nativeRaster.pixelWidth\",\n raster.pixelWidth\n );\n requirePositiveInteger(\n \"nativeRaster.pixelHeight\",\n raster.pixelHeight\n );\n safeProduct(\n [raster.pixelWidth, raster.pixelHeight],\n \"nativeRaster total image-sample count\"\n );\n}\n\nfunction requireFullFrameSampleIndex(\n value: unknown,\n path: string\n): number {\n if (\n typeof value !== \"number\" ||\n !Number.isSafeInteger(value) ||\n value < 0\n ) {\n throw new InvalidScientificInputError(\n path +\n \" must be a non-negative safe integer full-frame mode sample index.\"\n );\n }\n return value;\n}\n\n/**\n * Parses the explicit link between the native image pixel grid and the separate\n * grid of colour-sampling sites.\n *\n * This first version supports only regular rectangular blocks of sites that\n * share the native top-left corner. Irregular mappings, sparse exceptions and\n * mode-specific declared grids would need new, explicit contracts.\n */\nexport function parseNativeEffectiveRasterColorSamplingBindingProfile(\n value: unknown\n): NativeEffectiveRasterColorSamplingBindingProfile {\n const profile = requireRecord(\n value,\n \"colorSamplingBinding\", [\"schemaVersion\", \"relationship\", \"bindingId\", \"colorSamplingProfileId\", \"nativeRaster\", \"evidence\"]\n );\n\n if (profile.schemaVersion !== \"0.1.0\") {\n throw new InvalidConfigurationError(\n 'colorSamplingBinding.schemaVersion must be \"0.1.0\".'\n );\n }\n\n const relationship = requireRecord(\n profile.relationship,\n \"colorSamplingBinding.relationship\", [\"kind\", \"anchor\", \"sitesPerNativeSampleX\", \"sitesPerNativeSampleY\"]\n );\n\n if (\n relationship.kind !==\n \"regular-native-effective-sample-blocks\"\n ) {\n throw new InvalidConfigurationError(\n \"colorSamplingBinding.relationship.kind is invalid.\"\n );\n }\n\n if (\n relationship.anchor !==\n \"shared-native-top-left\"\n ) {\n throw new InvalidConfigurationError(\n 'colorSamplingBinding.relationship.anchor must be \"shared-native-top-left\".'\n );\n }\n\n return {\n schemaVersion: \"0.1.0\",\n bindingId: requireNonEmptyString(\n profile.bindingId,\n \"colorSamplingBinding.bindingId\"\n ),\n colorSamplingProfileId:\n requireNonEmptyString(\n profile.colorSamplingProfileId,\n \"colorSamplingBinding.colorSamplingProfileId\"\n ),\n nativeRaster: parseBoundNativeRaster(\n profile.nativeRaster\n ),\n evidence: parseEvidenceList(\n profile.evidence,\n \"colorSamplingBinding.evidence\"\n ),\n relationship: {\n kind:\n \"regular-native-effective-sample-blocks\",\n sitesPerNativeSampleX:\n requirePositiveSafeInteger(\n relationship.sitesPerNativeSampleX,\n \"colorSamplingBinding.relationship.sitesPerNativeSampleX\"\n ),\n sitesPerNativeSampleY:\n requirePositiveSafeInteger(\n relationship.sitesPerNativeSampleY,\n \"colorSamplingBinding.relationship.sitesPerNativeSampleY\"\n ),\n anchor: \"shared-native-top-left\"\n }\n };\n}\n\n/**\n * Validates and resolves the link between NativeImageRaster and an exact colour\n * sampling layout (monochrome or a repeating pattern such as a CFA).\n *\n * Matching dimensions are never taken as proof of a one-to-one link. The link\n * exists only because the caller supplied this evidence-backed binding profile.\n */\nexport function resolveNativeEffectiveRasterColorSamplingBinding(\n input: {\n nativeRaster: NativeImageRaster;\n colorSamplingProfile: SensorColorSamplingProfile;\n bindingProfile: NativeEffectiveRasterColorSamplingBindingProfile;\n }\n): ResolvedNativeEffectiveRasterColorSamplingBinding {\n requireInputKeys(input, \"resolveNativeEffectiveRasterColorSamplingBinding\", [\"nativeRaster\", \"colorSamplingProfile\", \"bindingProfile\"]);\n validateNativeRaster(input.nativeRaster);\n\n const colorSamplingProfile =\n parseSensorColorSamplingProfile(\n input.colorSamplingProfile\n );\n const bindingProfile =\n parseNativeEffectiveRasterColorSamplingBindingProfile(\n input.bindingProfile\n );\n\n if (\n bindingProfile.colorSamplingProfileId !==\n colorSamplingProfile.profileId\n ) {\n throw new InvalidScientificInputError(\n \"Binding colorSamplingProfileId must match colorSamplingProfile.profileId.\"\n );\n }\n\n if (\n bindingProfile.nativeRaster.pixelWidth !==\n input.nativeRaster.pixelWidth ||\n bindingProfile.nativeRaster.pixelHeight !==\n input.nativeRaster.pixelHeight\n ) {\n throw new InvalidScientificInputError(\n \"Binding nativeRaster must exactly match the supplied canonical native effective raster.\"\n );\n }\n\n if (colorSamplingProfile.layout.kind === \"layered\") {\n throw new InvalidScientificInputError(\n \"Layered color sampling cannot be bound to NativeImageRaster until its per-layer spatial sampling relationship is explicitly modeled.\"\n );\n }\n\n if (\n colorSamplingProfile.coordinateSystem !==\n \"native-sensor-color-sampling-site-index\"\n ) {\n throw new InvalidScientificInputError(\n \"Resolvable color sampling binding requires the native sensor color-sampling-site coordinate system.\"\n );\n }\n\n const widthSites = safeProduct(\n [\n input.nativeRaster.pixelWidth,\n bindingProfile.relationship\n .sitesPerNativeSampleX\n ],\n \"color-sampling site-grid width\"\n );\n const heightSites = safeProduct(\n [\n input.nativeRaster.pixelHeight,\n bindingProfile.relationship\n .sitesPerNativeSampleY\n ],\n \"color-sampling site-grid height\"\n );\n const totalColorSamplingSites =\n safeProduct(\n [widthSites, heightSites],\n \"color-sampling site-grid total site count\"\n );\n\n const oneToOne =\n bindingProfile.relationship\n .sitesPerNativeSampleX === 1 &&\n bindingProfile.relationship\n .sitesPerNativeSampleY === 1;\n\n return {\n bindingId: bindingProfile.bindingId,\n colorSamplingProfileId:\n bindingProfile.colorSamplingProfileId,\n nativeRaster: {\n ...input.nativeRaster\n },\n relationshipMeaning: oneToOne\n ? \"one-native-effective-sample-to-one-color-site\"\n : \"one-native-effective-sample-to-rectangular-color-site-block\",\n relationship: {\n ...bindingProfile.relationship\n },\n colorSamplingSiteGrid: {\n widthSites,\n heightSites\n },\n totalColorSamplingSites,\n nativeImageRasterBindingEstablished: true,\n physicalPhotodiodeBindingEstablished: false,\n physicalPhotodiodeCountInference:\n \"not-permitted\",\n spectralResponseEstablished: false,\n componentEvidence: {\n binding: bindingProfile.evidence,\n colorSamplingProfile:\n colorSamplingProfile.evidence\n }\n };\n}\n\nfunction countResidueInRange(\n start: number,\n length: number,\n period: number,\n residue: number\n): number {\n const startResidue = start % period;\n const delta =\n (residue - startResidue + period) %\n period;\n\n if (delta >= length) {\n return 0;\n }\n\n return (\n 1 +\n Math.floor(\n (length - 1 - delta) / period\n )\n );\n}\n\nfunction channelCountsForSiteRect(\n profile: SensorColorSamplingProfile,\n rect: ColorSamplingSiteRect\n): readonly ColorSamplingChannelSiteCount[] {\n const totalSites = safeProduct(\n [rect.width, rect.height],\n \"color-sampling contributor site count\"\n );\n\n if (profile.layout.kind === \"layered\") {\n throw new InvalidScientificInputError(\n \"Layered color sampling does not have resolvable site contributors in schema 0.1.0.\"\n );\n }\n\n if (profile.layout.kind === \"monochrome\") {\n return [\n {\n channelId: profile.layout.channelId,\n siteCount: totalSites\n }\n ];\n }\n\n const counts =\n new Map<string, number>();\n\n for (\n let tileY = 0;\n tileY < profile.layout.repeatHeightSites;\n tileY += 1\n ) {\n const countY = countResidueInRange(\n rect.y,\n rect.height,\n profile.layout.repeatHeightSites,\n tileY\n );\n if (countY === 0) {\n continue;\n }\n\n for (\n let tileX = 0;\n tileX < profile.layout.repeatWidthSites;\n tileX += 1\n ) {\n const countX = countResidueInRange(\n rect.x,\n rect.width,\n profile.layout.repeatWidthSites,\n tileX\n );\n if (countX === 0) {\n continue;\n }\n\n const tileIndex =\n tileY *\n profile.layout.repeatWidthSites +\n tileX;\n const channelId =\n profile.layout.siteChannelIds[\n tileIndex\n ];\n\n if (channelId === undefined) {\n throw new InvalidScientificInputError(\n \"Periodic color-sampling tile resolution failed while calculating contributor counts.\"\n );\n }\n\n const siteCount = safeProduct(\n [countX, countY],\n \"per-channel contributor site count\"\n );\n const prior = counts.get(channelId) ?? 0;\n const next = prior + siteCount;\n if (!Number.isSafeInteger(next)) {\n throw new InvalidScientificInputError(\n \"Per-channel contributor site count must remain a safe integer.\"\n );\n }\n counts.set(channelId, next);\n }\n }\n\n const result = Array.from(\n counts,\n ([channelId, siteCount]) => ({\n channelId,\n siteCount\n })\n );\n const countedTotal = result.reduce(\n (sum, entry) => sum + entry.siteCount,\n 0\n );\n\n if (countedTotal !== totalSites) {\n throw new InvalidScientificInputError(\n \"Color-sampling contributor channel counts do not cover the complete contributor site rectangle.\"\n );\n }\n\n return result;\n}\n\n/**\n * Finds which colour-sampling sites lie under one capture-mode sample, before any\n * reconstruction (demosaicing).\n *\n * The sample index is always absolute in the selected mode's full-frame grid. Crop-relative\n * indices are not accepted, so an active-area crop can never silently reset the CFA phase.\n *\n * For modes that group native samples, the returned rectangle covers every native sample in\n * the declared regular group. This only describes which sites lie under the sample. The engine\n * reports how many sites of each channel there are, but does not claim this is every dependency\n * of the final digital pixel. It never makes up combination weights, sum or average rules,\n * spectral response, or photon or electron values.\n *\n * Modes with a declared sample grid are rejected, because the capture-mode profile says their\n * relationship to the native grid cannot safely be written as simple integer grouping.\n *\n * Sensor shifts between frames are kept as capture-mode metadata only. The sensor and CFA move\n * together, so the shifts do not change which channel a site belongs to. Their effect on optical\n * registration belongs to a later spatial-sampling or image-formation model.\n */\nexport function resolveCaptureModeColorSamplingContributors(\n input: ResolveCaptureModeColorSamplingContributorsInput\n): ResolvedCaptureModeColorSamplingContributors {\n requireInputKeys(input, \"resolveCaptureModeColorSamplingContributors\", [\"nativeRaster\", \"captureModeProfile\", \"modeId\", \"colorSamplingProfile\", \"bindingProfile\", \"modeSampleIndexFullFrame\", \"groupedSamplingAnchor\"]);\n const colorSamplingProfile =\n parseSensorColorSamplingProfile(\n input.colorSamplingProfile\n );\n const binding =\n resolveNativeEffectiveRasterColorSamplingBinding(\n {\n nativeRaster: input.nativeRaster,\n colorSamplingProfile,\n bindingProfile: input.bindingProfile\n }\n );\n const captureMode = resolveCaptureMode({\n nativeRaster: input.nativeRaster,\n profile: input.captureModeProfile,\n modeId: input.modeId\n });\n\n if (\n !captureMode.dependencies.includes(\n \"color-sampling-model\"\n )\n ) {\n throw new InvalidScientificInputError(\n \"Selected capture mode must declare the color-sampling-model dependency before color-site contributors can be resolved.\"\n );\n }\n\n const modeX = requireFullFrameSampleIndex(\n input.modeSampleIndexFullFrame.x,\n \"modeSampleIndexFullFrame.x\"\n );\n const modeY = requireFullFrameSampleIndex(\n input.modeSampleIndexFullFrame.y,\n \"modeSampleIndexFullFrame.y\"\n );\n\n if (\n captureMode.perFrameSampling.kind ===\n \"declared-effective-raster\"\n ) {\n throw new InvalidScientificInputError(\n \"declared-effective-raster capture modes require a separate mode-specific color-site binding; no relationship may be inferred from raster dimensions alone.\"\n );\n }\n\n const modeSampleRaster =\n captureMode.perFrameSampling.raster;\n\n if (\n modeX >= modeSampleRaster.pixelWidth ||\n modeY >= modeSampleRaster.pixelHeight\n ) {\n throw new InvalidScientificInputError(\n \"modeSampleIndexFullFrame must lie within the selected mode's full-frame per-frame sampling raster.\"\n );\n }\n\n let nativeEffectiveSampleRect:\n NativeEffectiveSampleRect;\n let grouping:\n ResolvedCaptureModeColorSamplingContributors[\"grouping\"];\n\n if (\n captureMode.perFrameSampling.kind ===\n \"native-effective-raster\"\n ) {\n if (input.groupedSamplingAnchor !== undefined) {\n throw new InvalidScientificInputError(\n \"groupedSamplingAnchor must be omitted for native-effective-raster capture modes.\"\n );\n }\n\n nativeEffectiveSampleRect = {\n x: modeX,\n y: modeY,\n width: 1,\n height: 1\n };\n grouping = null;\n } else {\n if (\n input.groupedSamplingAnchor === undefined ||\n input.groupedSamplingAnchor.anchor !==\n \"native-effective-raster-top-left\"\n ) {\n throw new InvalidScientificInputError(\n \"grouped-native-samples capture modes require an explicit native-effective-raster-top-left grouping anchor declaration.\"\n );\n }\n const groupingAnchorEvidence =\n parseEvidenceList(\n input.groupedSamplingAnchor.evidence,\n \"groupedSamplingAnchor.evidence\"\n );\n\n const groupWidth =\n captureMode.perFrameSampling\n .groupWidthSamples.value;\n const groupHeight =\n captureMode.perFrameSampling\n .groupHeightSamples.value;\n\n nativeEffectiveSampleRect = {\n x: safeProduct(\n [modeX, groupWidth],\n \"native effective sample rectangle x\"\n ),\n y: safeProduct(\n [modeY, groupHeight],\n \"native effective sample rectangle y\"\n ),\n width: groupWidth,\n height: groupHeight\n };\n grouping = {\n groupWidthSamples:\n captureMode.perFrameSampling\n .groupWidthSamples,\n groupHeightSamples:\n captureMode.perFrameSampling\n .groupHeightSamples,\n ...(captureMode.perFrameSampling\n .combinationDomain === undefined\n ? {}\n : {\n combinationDomain:\n captureMode.perFrameSampling\n .combinationDomain\n }),\n anchor:\n \"native-effective-raster-top-left\",\n anchorEvidence:\n groupingAnchorEvidence\n };\n }\n\n const sitesPerNativeX =\n binding.relationship\n .sitesPerNativeSampleX;\n const sitesPerNativeY =\n binding.relationship\n .sitesPerNativeSampleY;\n\n const colorSamplingSiteRect:\n ColorSamplingSiteRect = {\n x: safeProduct(\n [\n nativeEffectiveSampleRect.x,\n sitesPerNativeX\n ],\n \"color-sampling contributor rectangle x\"\n ),\n y: safeProduct(\n [\n nativeEffectiveSampleRect.y,\n sitesPerNativeY\n ],\n \"color-sampling contributor rectangle y\"\n ),\n width: safeProduct(\n [\n nativeEffectiveSampleRect.width,\n sitesPerNativeX\n ],\n \"color-sampling contributor rectangle width\"\n ),\n height: safeProduct(\n [\n nativeEffectiveSampleRect.height,\n sitesPerNativeY\n ],\n \"color-sampling contributor rectangle height\"\n )\n };\n\n if (\n colorSamplingSiteRect.x +\n colorSamplingSiteRect.width >\n binding.colorSamplingSiteGrid.widthSites ||\n colorSamplingSiteRect.y +\n colorSamplingSiteRect.height >\n binding.colorSamplingSiteGrid.heightSites\n ) {\n throw new InvalidScientificInputError(\n \"Resolved color-sampling contributor rectangle exceeds the bound color-site grid.\"\n );\n }\n\n const totalContributorSites =\n safeProduct(\n [\n colorSamplingSiteRect.width,\n colorSamplingSiteRect.height\n ],\n \"total contributor site count\"\n );\n const channelSiteCounts =\n channelCountsForSiteRect(\n colorSamplingProfile,\n colorSamplingSiteRect\n );\n\n const firstChannel = channelSiteCounts[0];\n if (firstChannel === undefined) {\n throw new InvalidScientificInputError(\n \"Resolved structural source region must contain at least one color-sampling channel.\"\n );\n }\n\n const channelComposition:\n ColorSamplingChannelComposition =\n channelSiteCounts.length === 1\n ? {\n kind: \"single-channel\",\n channelId: firstChannel.channelId\n }\n : {\n kind: \"mixed-channels\",\n channelIds:\n channelSiteCounts.map(\n (entry) => entry.channelId\n )\n };\n\n return {\n modeId: captureMode.modeId,\n colorSamplingProfileId:\n colorSamplingProfile.profileId,\n modeSampleCoordinateSystem:\n \"capture-mode-full-frame-effective-sample-index\",\n modeSampleIndexFullFrame: {\n x: modeX,\n y: modeY\n },\n modeSampleRaster: {\n ...modeSampleRaster\n },\n modeSamplingKind:\n captureMode.perFrameSampling.kind,\n nativeEffectiveSampleRect,\n colorSamplingSiteRect,\n colorSamplingSiteGrid: {\n ...binding.colorSamplingSiteGrid\n },\n totalContributorSites,\n channelSiteCounts,\n channelComposition,\n grouping,\n ...(captureMode\n .interFrameSensorOffsetsNativeSamples ===\n undefined\n ? {}\n : {\n interFrameSensorOffsetsNativeSamples:\n captureMode\n .interFrameSensorOffsetsNativeSamples\n }),\n sensorShiftChangesColorSiteAssignment:\n false,\n sensorShiftOpticalRegistration:\n \"outside-this-contract\",\n structuralSourceStage:\n \"pre-reconstruction\",\n completeDownstreamPixelDependencyEstablished:\n false,\n signalCombinationWeightingEstablished:\n false,\n spectralResponseEstablished: false,\n physicalPhotodiodeBindingEstablished:\n false,\n physicalPhotodiodeCountInference:\n \"not-permitted\",\n componentEvidence: {\n binding:\n binding.componentEvidence.binding,\n colorSamplingProfile:\n binding.componentEvidence\n .colorSamplingProfile,\n captureMode: captureMode.modeEvidence\n }\n };\n}\n"]}
|
|
@@ -45,19 +45,18 @@ export interface ResolvedCaptureModeTiming {
|
|
|
45
45
|
limitations: readonly string[];
|
|
46
46
|
}
|
|
47
47
|
/**
|
|
48
|
-
* Parses timing facts
|
|
48
|
+
* Parses timing facts tied to one exact capture mode.
|
|
49
49
|
*
|
|
50
|
-
* Schema 0.1.0
|
|
51
|
-
*
|
|
52
|
-
*
|
|
50
|
+
* Schema 0.1.0 accepts only the schedules the readout-timing and exposure-window
|
|
51
|
+
* models already support: global (simultaneous) or uniform linear native scans.
|
|
52
|
+
* Non-uniform or segmented schedules are rejected rather than approximated.
|
|
53
53
|
*/
|
|
54
54
|
export declare function parseCaptureModeTimingProfile(value: unknown): CaptureModeTimingProfile;
|
|
55
55
|
/**
|
|
56
|
-
* Resolves the
|
|
57
|
-
*
|
|
56
|
+
* Resolves the exposure and readout timing for one exact capture mode and
|
|
57
|
+
* timing profile.
|
|
58
58
|
*
|
|
59
|
-
* Readout timing
|
|
60
|
-
* readout
|
|
59
|
+
* Readout timing stays separate from the exposure opening and closing times.
|
|
60
|
+
* No absolute sync between readout and exposure is assumed.
|
|
61
61
|
*/
|
|
62
62
|
export declare function resolveCaptureModeTiming(input: ResolveCaptureModeTimingInput): ResolvedCaptureModeTiming;
|
|
63
|
-
//# sourceMappingURL=capture-mode-timing.d.ts.map
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* readout/exposure synchronization is inferred.
|
|
3
|
+
* Capture-mode timing: exposure and readout timing facts tied to one exact capture mode.
|
|
4
|
+
*
|
|
5
|
+
* Only the schedules the readout-timing and exposure-window models already support are accepted:
|
|
6
|
+
* global (all rows at once) or a uniform linear scan (rolling, row by row). Non-uniform or segmented
|
|
7
|
+
* schedules are rejected, not approximated. Readout timing is kept separate from the exposure
|
|
8
|
+
* opening and closing times, and no absolute sync between them is assumed.
|
|
10
9
|
* @see docs/MOTION_AND_SIGNAL.md for equations, coordinate/unit conventions, blockers and support
|
|
11
10
|
* limits.
|
|
12
11
|
*/
|
|
@@ -15,6 +14,7 @@ import { parseEvidenceList } from "../core/evidence-provenance.js";
|
|
|
15
14
|
import { InvalidScientificInputError } from "../core/validation.js";
|
|
16
15
|
import { calculateCaptureExposureWindows } from "./exposure-window.js";
|
|
17
16
|
import { calculateSensorReadoutTiming } from "./readout-timing.js";
|
|
17
|
+
import { requireInputKeys, rejectUnknownFields } from "../core/record-validation.js";
|
|
18
18
|
export const CAPTURE_MODE_TIMING_PROFILE_SCHEMA_VERSION = "0.1.0";
|
|
19
19
|
const SHUTTER_MECHANISMS = new Set([
|
|
20
20
|
"mechanical",
|
|
@@ -27,12 +27,14 @@ const SCAN_DIRECTIONS = new Set([
|
|
|
27
27
|
"left-to-right",
|
|
28
28
|
"right-to-left"
|
|
29
29
|
]);
|
|
30
|
-
function requireRecord(value, path) {
|
|
30
|
+
function requireRecord(value, path, allowedKeys) {
|
|
31
31
|
if (typeof value !== "object" ||
|
|
32
32
|
value === null ||
|
|
33
33
|
Array.isArray(value)) {
|
|
34
34
|
throw new InvalidConfigurationError(path + " must be an object.");
|
|
35
35
|
}
|
|
36
|
+
if (allowedKeys !== null)
|
|
37
|
+
rejectUnknownFields(value, allowedKeys, path);
|
|
36
38
|
return value;
|
|
37
39
|
}
|
|
38
40
|
function requireNonEmptyString(value, path) {
|
|
@@ -64,7 +66,7 @@ function parseLimitations(value, path) {
|
|
|
64
66
|
return parsed;
|
|
65
67
|
}
|
|
66
68
|
function parseSecondsFact(value, path) {
|
|
67
|
-
const record = requireRecord(value, path);
|
|
69
|
+
const record = requireRecord(value, path, ["unit", "value", "evidence"]);
|
|
68
70
|
if (record.unit !== "s") {
|
|
69
71
|
throw new InvalidConfigurationError(path + '.unit must be "s".');
|
|
70
72
|
}
|
|
@@ -75,7 +77,7 @@ function parseSecondsFact(value, path) {
|
|
|
75
77
|
};
|
|
76
78
|
}
|
|
77
79
|
function parseDirectionFact(value, path) {
|
|
78
|
-
const record = requireRecord(value, path);
|
|
80
|
+
const record = requireRecord(value, path, ["value", "evidence"]);
|
|
79
81
|
if (typeof record.value !== "string" ||
|
|
80
82
|
!SCAN_DIRECTIONS.has(record.value)) {
|
|
81
83
|
throw new InvalidConfigurationError(path + ".value is invalid.");
|
|
@@ -86,7 +88,7 @@ function parseDirectionFact(value, path) {
|
|
|
86
88
|
};
|
|
87
89
|
}
|
|
88
90
|
function parseBoundarySchedule(value, path) {
|
|
89
|
-
const record = requireRecord(value, path);
|
|
91
|
+
const record = requireRecord(value, path, ["kind", "directionNative", "traversalDurationSeconds"]);
|
|
90
92
|
if (record.kind === "simultaneous") {
|
|
91
93
|
if (record.directionNative !==
|
|
92
94
|
undefined ||
|
|
@@ -112,7 +114,7 @@ function parseBoundarySchedule(value, path) {
|
|
|
112
114
|
'.kind must be "simultaneous" or "uniform-linear-native-scan"; non-uniform schedules are not modeled.');
|
|
113
115
|
}
|
|
114
116
|
function parseReadout(value, path) {
|
|
115
|
-
const record = requireRecord(value, path);
|
|
117
|
+
const record = requireRecord(value, path, ["captureReadoutDurationSeconds", "readoutMode", "scanDirectionNative", "spatialSamplingSkewSeconds"]);
|
|
116
118
|
const duration = parseSecondsFact(record.captureReadoutDurationSeconds, path +
|
|
117
119
|
".captureReadoutDurationSeconds");
|
|
118
120
|
if (record.readoutMode === "global") {
|
|
@@ -142,14 +144,14 @@ function parseReadout(value, path) {
|
|
|
142
144
|
'.readoutMode must be "global" or "rolling".');
|
|
143
145
|
}
|
|
144
146
|
/**
|
|
145
|
-
* Parses timing facts
|
|
147
|
+
* Parses timing facts tied to one exact capture mode.
|
|
146
148
|
*
|
|
147
|
-
* Schema 0.1.0
|
|
148
|
-
*
|
|
149
|
-
*
|
|
149
|
+
* Schema 0.1.0 accepts only the schedules the readout-timing and exposure-window
|
|
150
|
+
* models already support: global (simultaneous) or uniform linear native scans.
|
|
151
|
+
* Non-uniform or segmented schedules are rejected rather than approximated.
|
|
150
152
|
*/
|
|
151
153
|
export function parseCaptureModeTimingProfile(value) {
|
|
152
|
-
const record = requireRecord(value, "captureModeTimingProfile");
|
|
154
|
+
const record = requireRecord(value, "captureModeTimingProfile", ["schemaVersion", "scientificStatus", "scheduleFamily", "shutterMechanism", "nonUniformScheduleModeled", "profileId", "profileVersion", "captureModeId", "opening", "closing", "readout", "evidence", "limitations"]);
|
|
153
155
|
if (record.schemaVersion !==
|
|
154
156
|
CAPTURE_MODE_TIMING_PROFILE_SCHEMA_VERSION) {
|
|
155
157
|
throw new InvalidConfigurationError('captureModeTimingProfile.schemaVersion must be "' +
|
|
@@ -190,13 +192,14 @@ export function parseCaptureModeTimingProfile(value) {
|
|
|
190
192
|
};
|
|
191
193
|
}
|
|
192
194
|
/**
|
|
193
|
-
* Resolves the
|
|
194
|
-
*
|
|
195
|
+
* Resolves the exposure and readout timing for one exact capture mode and
|
|
196
|
+
* timing profile.
|
|
195
197
|
*
|
|
196
|
-
* Readout timing
|
|
197
|
-
* readout
|
|
198
|
+
* Readout timing stays separate from the exposure opening and closing times.
|
|
199
|
+
* No absolute sync between readout and exposure is assumed.
|
|
198
200
|
*/
|
|
199
201
|
export function resolveCaptureModeTiming(input) {
|
|
202
|
+
requireInputKeys(input, "resolveCaptureModeTiming", ["captureMode", "timingProfile", "nominalExposureDurationSeconds", "activeCaptureRect", "samplePointsNative"]);
|
|
200
203
|
const profile = parseCaptureModeTimingProfile(input.timingProfile);
|
|
201
204
|
if (profile.captureModeId !==
|
|
202
205
|
input.captureMode.modeId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture-mode-timing.js","sourceRoot":"","sources":["../../src/sensor/capture-mode-timing.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EACL,iBAAiB,EAElB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAKpE,OAAO,EACL,+BAA+B,EAKhC,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EACL,4BAA4B,EAO7B,MAAM,qBAAqB,CAAC;AAO7B,MAAM,CAAC,MAAM,0CAA0C,GACrD,OAAgB,CAAC;AA8DnB,MAAM,kBAAkB,GACtB,IAAI,GAAG,CAA0B;IAC/B,YAAY;IACZ,0BAA0B;IAC1B,YAAY;CACb,CAAC,CAAC;AAEL,MAAM,eAAe,GACnB,IAAI,GAAG,CAAmC;IACxC,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;CAChB,CAAC,CAAC;AAEL,SAAS,aAAa,CACpB,KAAc,EACd,IAAY;IAEZ,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EACpB,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI,GAAG,qBAAqB,CAC7B,CAAC;IACJ,CAAC;IACD,OAAO,KAAsB,CAAC;AAChC,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAc,EACd,IAAY;IAEZ,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EACzB,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI,GAAG,8BAA8B,CACtC,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAc,EACd,IAAY;IAEZ,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QACvB,KAAK,GAAG,CAAC,EACT,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;YACF,oDAAoD,CACvD,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAc,EACd,IAAY;IAEZ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,yBAAyB,CACjC,IAAI,GAAG,oBAAoB,CAC5B,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GACV,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACzB,qBAAqB,CACnB,KAAK,EACL,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,CACzB,CACF,CAAC;IACJ,IACE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI;QACpB,MAAM,CAAC,MAAM,EACb,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;YACF,+BAA+B,CAClC,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAc,EACd,IAAY;IAEZ,MAAM,MAAM,GACV,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;QACxB,MAAM,IAAI,yBAAyB,CACjC,IAAI,GAAG,oBAAoB,CAC5B,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EACH,wBAAwB,CACtB,MAAM,CAAC,KAAK,EACZ,IAAI,GAAG,QAAQ,CAChB;QACH,IAAI,EAAE,GAAG;QACT,QAAQ,EACN,iBAAiB,CACf,MAAM,CAAC,QAAQ,EACf,IAAI,GAAG,WAAW,CACnB;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAc,EACd,IAAY;IAEZ,MAAM,MAAM,GACV,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,IACE,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;QAChC,CAAC,eAAe,CAAC,GAAG,CAClB,MAAM,CAAC,KAAyC,CACjD,EACD,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,IAAI,GAAG,oBAAoB,CAC5B,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EACH,MAAM,CAAC,KAAyC;QAClD,QAAQ,EACN,iBAAiB,CACf,MAAM,CAAC,QAAQ,EACf,IAAI,GAAG,WAAW,CACnB;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAc,EACd,IAAY;IAEZ,MAAM,MAAM,GACV,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAE7B,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACnC,IACE,MAAM,CAAC,eAAe;YACpB,SAAS;YACX,MAAM,CAAC,wBAAwB;gBAC7B,SAAS,EACX,CAAC;YACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;gBACF,2DAA2D,CAC9D,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,cAAc;SACrB,CAAC;IACJ,CAAC;IAED,IACE,MAAM,CAAC,IAAI;QACX,4BAA4B,EAC5B,CAAC;QACD,OAAO;YACL,IAAI,EACF,4BAA4B;YAC9B,eAAe,EACb,kBAAkB,CAChB,MAAM,CAAC,eAAe,EACtB,IAAI,GAAG,kBAAkB,CACS;YACtC,wBAAwB,EACtB,gBAAgB,CACd,MAAM,CAAC,wBAAwB,EAC/B,IAAI;gBACF,2BAA2B,CAC9B;SACJ,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,yBAAyB,CACjC,IAAI;QACF,sGAAsG,CACzG,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,KAAc,EACd,IAAY;IAEZ,MAAM,MAAM,GACV,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,MAAM,QAAQ,GACZ,gBAAgB,CACd,MAAM,CAAC,6BAA6B,EACpC,IAAI;QACF,gCAAgC,CACnC,CAAC;IAEJ,IAAI,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,IACE,MAAM,CAAC,mBAAmB;YACxB,SAAS;YACX,MAAM,CAAC,0BAA0B;gBAC/B,SAAS,EACX,CAAC;YACD,MAAM,IAAI,yBAAyB,CACjC,IAAI;gBACF,uDAAuD,CAC1D,CAAC;QACJ,CAAC;QACD,OAAO;YACL,WAAW,EAAE,QAAQ;YACrB,6BAA6B,EAC3B,QAAQ;SACX,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO;YACL,WAAW,EAAE,SAAS;YACtB,6BAA6B,EAC3B,QAAQ;YACV,mBAAmB,EACjB,kBAAkB,CAChB,MAAM,CAAC,mBAAmB,EAC1B,IAAI;gBACF,sBAAsB,CACzB;YACH,0BAA0B,EACxB,gBAAgB,CACd,MAAM,CAAC,0BAA0B,EACjC,IAAI;gBACF,6BAA6B,CAChC;SACJ,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,yBAAyB,CACjC,IAAI;QACF,6CAA6C,CAChD,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAC3C,KAAc;IAEd,MAAM,MAAM,GACV,aAAa,CACX,KAAK,EACL,0BAA0B,CAC3B,CAAC;IAEJ,IACE,MAAM,CAAC,aAAa;QACpB,0CAA0C,EAC1C,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,kDAAkD;YAChD,0CAA0C;YAC1C,IAAI,CACP,CAAC;IACJ,CAAC;IACD,IACE,MAAM,CAAC,gBAAgB;QACvB,eAAe,EACf,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,oEAAoE,CACrE,CAAC;IACJ,CAAC;IACD,IACE,MAAM,CAAC,cAAc;QACrB,sCAAsC,EACtC,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,oIAAoI,CACrI,CAAC;IACJ,CAAC;IACD,IACE,OAAO,MAAM,CAAC,gBAAgB;QAC5B,QAAQ;QACV,CAAC,kBAAkB,CAAC,GAAG,CACrB,MAAM,CAAC,gBAA2C,CACnD,EACD,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,uDAAuD,CACxD,CAAC;IACJ,CAAC;IACD,IACE,MAAM,CAAC,yBAAyB;QAChC,KAAK,EACL,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,mFAAmF,CACpF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,aAAa,EACX,0CAA0C;QAC5C,SAAS,EACP,qBAAqB,CACnB,MAAM,CAAC,SAAS,EAChB,oCAAoC,CACrC;QACH,cAAc,EACZ,qBAAqB,CACnB,MAAM,CAAC,cAAc,EACrB,yCAAyC,CAC1C;QACH,aAAa,EACX,qBAAqB,CACnB,MAAM,CAAC,aAAa,EACpB,wCAAwC,CACzC;QACH,gBAAgB,EACd,eAAe;QACjB,cAAc,EACZ,sCAAsC;QACxC,gBAAgB,EACd,MAAM,CAAC,gBAA2C;QACpD,OAAO,EACL,qBAAqB,CACnB,MAAM,CAAC,OAAO,EACd,kCAAkC,CACnC;QACH,OAAO,EACL,qBAAqB,CACnB,MAAM,CAAC,OAAO,EACd,kCAAkC,CACnC;QACH,OAAO,EACL,YAAY,CACV,MAAM,CAAC,OAAO,EACd,kCAAkC,CACnC;QACH,yBAAyB,EACvB,KAAK;QACP,QAAQ,EACN,iBAAiB,CACf,MAAM,CAAC,QAAQ,EACf,mCAAmC,CACpC;QACH,WAAW,EACT,gBAAgB,CACd,MAAM,CAAC,WAAW,EAClB,sCAAsC,CACvC;KACJ,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAC+B;IAE/B,MAAM,OAAO,GACX,6BAA6B,CAC3B,KAAK,CAAC,aAAa,CACpB,CAAC;IAEJ,IACE,OAAO,CAAC,aAAa;QACrB,KAAK,CAAC,WAAW,CAAC,MAAM,EACxB,CAAC;QACD,MAAM,IAAI,2BAA2B,CACnC,sFAAsF,CACvF,CAAC;IACJ,CAAC;IACD,MAAM,eAAe,GACnB,+BAA+B,CAAC;QAC9B,YAAY,EACV,KAAK,CAAC,WAAW,CAAC,YAAY;QAChC,GAAG,CAAC,KAAK,CAAC,iBAAiB;YAC3B,SAAS;YACP,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,iBAAiB,EACf,KAAK,CAAC,iBAAiB;aAC1B,CAAC;QACN,gBAAgB,EACd,OAAO,CAAC,gBAAgB;QAC1B,8BAA8B,EAC5B,KAAK;aACF,8BAA8B;QACnC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,CAAC,KAAK,CAAC,kBAAkB;YAC5B,SAAS;YACP,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,kBAAkB,EAChB,KAAK,CAAC,kBAAkB;aAC3B,CAAC;KACP,CAAC,CAAC,KAAK,CAAC;IAEX,MAAM,aAAa,GACjB,4BAA4B,CAAC;QAC3B,YAAY,EACV,KAAK,CAAC,WAAW,CAAC,YAAY;QAChC,GAAG,CAAC,KAAK,CAAC,iBAAiB;YAC3B,SAAS;YACP,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,iBAAiB,EACf,KAAK,CAAC,iBAAiB;aAC1B,CAAC;QACN,gBAAgB,EACd,OAAO,CAAC,gBAAgB;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,CAAC,KAAK,CAAC,kBAAkB;YAC5B,SAAS;YACP,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,kBAAkB,EAChB,KAAK,CAAC,kBAAkB;aAC3B,CAAC;KACP,CAAC,CAAC,KAAK,CAAC;IAEX,OAAO;QACL,aAAa,EACX,0CAA0C;QAC5C,eAAe,EACb,OAAO,CAAC,SAAS;QACnB,oBAAoB,EAClB,OAAO,CAAC,cAAc;QACxB,aAAa,EACX,KAAK,CAAC,WAAW,CAAC,MAAM;QAC1B,yBAAyB,EACvB,wBAAwB;QAC1B,YAAY,EAAE;YACZ,GAAG,KAAK,CAAC,WAAW,CAAC,YAAY;SAClC;QACD,4BAA4B,EAC1B,KAAK,CAAC,WAAW;aACd,YAAY,CAAC,QAAQ,CACpB,8BAA8B,CAC/B;QACL,cAAc,EACZ,OAAO,CAAC,cAAc;QACxB,eAAe;QACf,aAAa;QACb,aAAa,EACX,8BAA8B;QAChC,8BAA8B,EAC5B,aAAa;QACf,yBAAyB,EACvB,KAAK;QACP,QAAQ,EAAE;YACR,GAAG,KAAK,CAAC,WAAW,CAAC,YAAY;YACjC,GAAG,OAAO,CAAC,QAAQ;SACpB;QACD,WAAW,EAAE;YACX,GAAG,OAAO,CAAC,WAAW;YACtB,2JAA2J;YAC3J,kIAAkI;SACnI;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"capture-mode-timing.js","sourceRoot":"","sources":["../../src/sensor/capture-mode-timing.ts"],"names":[],"mappings":"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","sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Capture-mode timing: exposure and readout timing facts tied to one exact capture mode.\n *\n * Only the schedules the readout-timing and exposure-window models already support are accepted:\n * global (all rows at once) or a uniform linear scan (rolling, row by row). Non-uniform or segmented\n * schedules are rejected, not approximated. Readout timing is kept separate from the exposure\n * opening and closing times, and no absolute sync between them is assumed.\n * @see docs/MOTION_AND_SIGNAL.md for equations, coordinate/unit conventions, blockers and support\n * limits.\n */\n\nimport { InvalidConfigurationError } from \"../core/configuration-error.js\";\nimport {\n parseEvidenceList,\n type EvidenceProvenance\n} from \"../core/evidence-provenance.js\";\nimport { InvalidScientificInputError } from \"../core/validation.js\";\nimport type {\n RasterPoint,\n RasterRect\n} from \"../output/capture-geometry.js\";\nimport {\n calculateCaptureExposureWindows,\n type CaptureExposureWindows,\n type ExposureBoundarySchedule,\n type SourcedCaptureBoundaryDirection,\n type SourcedCaptureTimingSeconds\n} from \"./exposure-window.js\";\nimport type {\n ResolvedCaptureMode\n} from \"./capture-mode.js\";\nimport {\n calculateSensorReadoutTiming,\n type CaptureShutterMechanism,\n type NativeSensorReadoutScanDirection,\n type SensorReadoutTiming,\n type SensorReadoutTimingDeclaration,\n type SourcedSensorReadoutFact,\n type SourcedSensorTimingSeconds\n} from \"./readout-timing.js\";\nimport type {\n NativeImageRaster\n} from \"./sensor-geometry.js\";\nimport { requireInputKeys, rejectUnknownFields } from \"../core/record-validation.js\";\n\ntype UnknownRecord = Record<string, unknown>;\n\nexport const CAPTURE_MODE_TIMING_PROFILE_SCHEMA_VERSION =\n \"0.1.0\" as const;\n\nexport interface CaptureModeTimingProfile {\n schemaVersion:\n typeof CAPTURE_MODE_TIMING_PROFILE_SCHEMA_VERSION;\n profileId: string;\n profileVersion: string;\n captureModeId: string;\n scientificStatus: \"approximation\";\n scheduleFamily:\n \"global-or-uniform-linear-native-scan\";\n shutterMechanism:\n CaptureShutterMechanism;\n opening:\n ExposureBoundarySchedule;\n closing:\n ExposureBoundarySchedule;\n readout:\n SensorReadoutTimingDeclaration;\n nonUniformScheduleModeled: false;\n evidence: readonly EvidenceProvenance[];\n limitations: readonly string[];\n}\n\nexport interface ResolveCaptureModeTimingInput {\n captureMode:\n ResolvedCaptureMode;\n timingProfile:\n CaptureModeTimingProfile;\n nominalExposureDurationSeconds:\n SourcedCaptureTimingSeconds;\n activeCaptureRect?: RasterRect;\n samplePointsNative?:\n readonly RasterPoint[];\n}\n\nexport interface ResolvedCaptureModeTiming {\n schemaVersion:\n typeof CAPTURE_MODE_TIMING_PROFILE_SCHEMA_VERSION;\n timingProfileId: string;\n timingProfileVersion: string;\n captureModeId: string;\n captureModeTimingIdentity:\n \"exact-mode-and-profile\";\n nativeRaster: NativeImageRaster;\n modeDeclaresTimingDependency:\n boolean;\n scheduleFamily:\n \"global-or-uniform-linear-native-scan\";\n exposureWindows:\n CaptureExposureWindows;\n readoutTiming:\n SensorReadoutTiming;\n timeReference:\n \"first-opening-boundary-phase\";\n readoutExposureSynchronization:\n \"not-assumed\";\n nonUniformScheduleModeled: false;\n evidence: readonly EvidenceProvenance[];\n limitations: readonly string[];\n}\n\nconst SHUTTER_MECHANISMS =\n new Set<CaptureShutterMechanism>([\n \"mechanical\",\n \"electronic-first-curtain\",\n \"electronic\"\n ]);\n\nconst SCAN_DIRECTIONS =\n new Set<NativeSensorReadoutScanDirection>([\n \"top-to-bottom\",\n \"bottom-to-top\",\n \"left-to-right\",\n \"right-to-left\"\n ]);\n\nfunction requireRecord(\n value: unknown,\n path: string,\n allowedKeys: readonly string[] | null\n): UnknownRecord {\n if (\n typeof value !== \"object\" ||\n value === null ||\n Array.isArray(value)\n ) {\n throw new InvalidConfigurationError(\n path + \" must be an object.\"\n );\n }\n if (allowedKeys !== null) rejectUnknownFields(value, allowedKeys, path);\n return value as UnknownRecord;\n}\n\nfunction requireNonEmptyString(\n value: unknown,\n path: string\n): string {\n if (\n typeof value !== \"string\" ||\n value.trim().length === 0\n ) {\n throw new InvalidConfigurationError(\n path + \" must be a non-empty string.\"\n );\n }\n return value.trim();\n}\n\nfunction requireNonNegativeFinite(\n value: unknown,\n path: string\n): number {\n if (\n typeof value !== \"number\" ||\n !Number.isFinite(value) ||\n value < 0\n ) {\n throw new InvalidConfigurationError(\n path +\n \" must be finite and greater than or equal to zero.\"\n );\n }\n return value;\n}\n\nfunction parseLimitations(\n value: unknown,\n path: string\n): readonly string[] {\n if (!Array.isArray(value)) {\n throw new InvalidConfigurationError(\n path + \" must be an array.\"\n );\n }\n const parsed =\n value.map((entry, index) =>\n requireNonEmptyString(\n entry,\n path + \"[\" + index + \"]\"\n )\n );\n if (\n new Set(parsed).size !==\n parsed.length\n ) {\n throw new InvalidConfigurationError(\n path +\n \" must not contain duplicates.\"\n );\n }\n return parsed;\n}\n\nfunction parseSecondsFact(\n value: unknown,\n path: string\n): SourcedSensorTimingSeconds {\n const record =\n requireRecord(value, path, [\"unit\", \"value\", \"evidence\"]);\n if (record.unit !== \"s\") {\n throw new InvalidConfigurationError(\n path + '.unit must be \"s\".'\n );\n }\n return {\n value:\n requireNonNegativeFinite(\n record.value,\n path + \".value\"\n ),\n unit: \"s\",\n evidence:\n parseEvidenceList(\n record.evidence,\n path + \".evidence\"\n )\n };\n}\n\nfunction parseDirectionFact(\n value: unknown,\n path: string\n): SourcedSensorReadoutFact<NativeSensorReadoutScanDirection> {\n const record =\n requireRecord(value, path, [\"value\", \"evidence\"]);\n if (\n typeof record.value !== \"string\" ||\n !SCAN_DIRECTIONS.has(\n record.value as NativeSensorReadoutScanDirection\n )\n ) {\n throw new InvalidConfigurationError(\n path + \".value is invalid.\"\n );\n }\n return {\n value:\n record.value as NativeSensorReadoutScanDirection,\n evidence:\n parseEvidenceList(\n record.evidence,\n path + \".evidence\"\n )\n };\n}\n\nfunction parseBoundarySchedule(\n value: unknown,\n path: string\n): ExposureBoundarySchedule {\n const record =\n requireRecord(value, path, [\"kind\", \"directionNative\", \"traversalDurationSeconds\"]);\n\n if (record.kind === \"simultaneous\") {\n if (\n record.directionNative !==\n undefined ||\n record.traversalDurationSeconds !==\n undefined\n ) {\n throw new InvalidConfigurationError(\n path +\n \" simultaneous schedule must not include scan-only fields.\"\n );\n }\n return {\n kind: \"simultaneous\"\n };\n }\n\n if (\n record.kind ===\n \"uniform-linear-native-scan\"\n ) {\n return {\n kind:\n \"uniform-linear-native-scan\",\n directionNative:\n parseDirectionFact(\n record.directionNative,\n path + \".directionNative\"\n ) as SourcedCaptureBoundaryDirection,\n traversalDurationSeconds:\n parseSecondsFact(\n record.traversalDurationSeconds,\n path +\n \".traversalDurationSeconds\"\n )\n };\n }\n\n throw new InvalidConfigurationError(\n path +\n '.kind must be \"simultaneous\" or \"uniform-linear-native-scan\"; non-uniform schedules are not modeled.'\n );\n}\n\nfunction parseReadout(\n value: unknown,\n path: string\n): SensorReadoutTimingDeclaration {\n const record =\n requireRecord(value, path, [\"captureReadoutDurationSeconds\", \"readoutMode\", \"scanDirectionNative\", \"spatialSamplingSkewSeconds\"]);\n const duration =\n parseSecondsFact(\n record.captureReadoutDurationSeconds,\n path +\n \".captureReadoutDurationSeconds\"\n );\n\n if (record.readoutMode === \"global\") {\n if (\n record.scanDirectionNative !==\n undefined ||\n record.spatialSamplingSkewSeconds !==\n undefined\n ) {\n throw new InvalidConfigurationError(\n path +\n \" global readout must not include rolling-scan fields.\"\n );\n }\n return {\n readoutMode: \"global\",\n captureReadoutDurationSeconds:\n duration\n };\n }\n\n if (record.readoutMode === \"rolling\") {\n return {\n readoutMode: \"rolling\",\n captureReadoutDurationSeconds:\n duration,\n scanDirectionNative:\n parseDirectionFact(\n record.scanDirectionNative,\n path +\n \".scanDirectionNative\"\n ),\n spatialSamplingSkewSeconds:\n parseSecondsFact(\n record.spatialSamplingSkewSeconds,\n path +\n \".spatialSamplingSkewSeconds\"\n )\n };\n }\n\n throw new InvalidConfigurationError(\n path +\n '.readoutMode must be \"global\" or \"rolling\".'\n );\n}\n\n/**\n * Parses timing facts tied to one exact capture mode.\n *\n * Schema 0.1.0 accepts only the schedules the readout-timing and exposure-window\n * models already support: global (simultaneous) or uniform linear native scans.\n * Non-uniform or segmented schedules are rejected rather than approximated.\n */\nexport function parseCaptureModeTimingProfile(\n value: unknown\n): CaptureModeTimingProfile {\n const record =\n requireRecord(\n value,\n \"captureModeTimingProfile\", [\"schemaVersion\", \"scientificStatus\", \"scheduleFamily\", \"shutterMechanism\", \"nonUniformScheduleModeled\", \"profileId\", \"profileVersion\", \"captureModeId\", \"opening\", \"closing\", \"readout\", \"evidence\", \"limitations\"]\n );\n\n if (\n record.schemaVersion !==\n CAPTURE_MODE_TIMING_PROFILE_SCHEMA_VERSION\n ) {\n throw new InvalidConfigurationError(\n 'captureModeTimingProfile.schemaVersion must be \"' +\n CAPTURE_MODE_TIMING_PROFILE_SCHEMA_VERSION +\n '\".'\n );\n }\n if (\n record.scientificStatus !==\n \"approximation\"\n ) {\n throw new InvalidConfigurationError(\n 'captureModeTimingProfile.scientificStatus must be \"approximation\".'\n );\n }\n if (\n record.scheduleFamily !==\n \"global-or-uniform-linear-native-scan\"\n ) {\n throw new InvalidConfigurationError(\n 'captureModeTimingProfile.scheduleFamily must be \"global-or-uniform-linear-native-scan\"; unsupported schedule families fail closed.'\n );\n }\n if (\n typeof record.shutterMechanism !==\n \"string\" ||\n !SHUTTER_MECHANISMS.has(\n record.shutterMechanism as CaptureShutterMechanism\n )\n ) {\n throw new InvalidConfigurationError(\n \"captureModeTimingProfile.shutterMechanism is invalid.\"\n );\n }\n if (\n record.nonUniformScheduleModeled !==\n false\n ) {\n throw new InvalidConfigurationError(\n \"captureModeTimingProfile.nonUniformScheduleModeled must be false in schema 0.1.0.\"\n );\n }\n\n return {\n schemaVersion:\n CAPTURE_MODE_TIMING_PROFILE_SCHEMA_VERSION,\n profileId:\n requireNonEmptyString(\n record.profileId,\n \"captureModeTimingProfile.profileId\"\n ),\n profileVersion:\n requireNonEmptyString(\n record.profileVersion,\n \"captureModeTimingProfile.profileVersion\"\n ),\n captureModeId:\n requireNonEmptyString(\n record.captureModeId,\n \"captureModeTimingProfile.captureModeId\"\n ),\n scientificStatus:\n \"approximation\",\n scheduleFamily:\n \"global-or-uniform-linear-native-scan\",\n shutterMechanism:\n record.shutterMechanism as CaptureShutterMechanism,\n opening:\n parseBoundarySchedule(\n record.opening,\n \"captureModeTimingProfile.opening\"\n ),\n closing:\n parseBoundarySchedule(\n record.closing,\n \"captureModeTimingProfile.closing\"\n ),\n readout:\n parseReadout(\n record.readout,\n \"captureModeTimingProfile.readout\"\n ),\n nonUniformScheduleModeled:\n false,\n evidence:\n parseEvidenceList(\n record.evidence,\n \"captureModeTimingProfile.evidence\"\n ),\n limitations:\n parseLimitations(\n record.limitations,\n \"captureModeTimingProfile.limitations\"\n )\n };\n}\n\n/**\n * Resolves the exposure and readout timing for one exact capture mode and\n * timing profile.\n *\n * Readout timing stays separate from the exposure opening and closing times.\n * No absolute sync between readout and exposure is assumed.\n */\nexport function resolveCaptureModeTiming(\n input:\n ResolveCaptureModeTimingInput\n): ResolvedCaptureModeTiming {\n requireInputKeys(input, \"resolveCaptureModeTiming\", [\"captureMode\", \"timingProfile\", \"nominalExposureDurationSeconds\", \"activeCaptureRect\", \"samplePointsNative\"]);\n const profile =\n parseCaptureModeTimingProfile(\n input.timingProfile\n );\n\n if (\n profile.captureModeId !==\n input.captureMode.modeId\n ) {\n throw new InvalidScientificInputError(\n \"captureModeTimingProfile.captureModeId must exactly match the resolved capture mode.\"\n );\n }\n const exposureWindows =\n calculateCaptureExposureWindows({\n nativeRaster:\n input.captureMode.nativeRaster,\n ...(input.activeCaptureRect ===\n undefined\n ? {}\n : {\n activeCaptureRect:\n input.activeCaptureRect\n }),\n shutterMechanism:\n profile.shutterMechanism,\n nominalExposureDurationSeconds:\n input\n .nominalExposureDurationSeconds,\n opening: profile.opening,\n closing: profile.closing,\n ...(input.samplePointsNative ===\n undefined\n ? {}\n : {\n samplePointsNative:\n input.samplePointsNative\n })\n }).value;\n\n const readoutTiming =\n calculateSensorReadoutTiming({\n nativeRaster:\n input.captureMode.nativeRaster,\n ...(input.activeCaptureRect ===\n undefined\n ? {}\n : {\n activeCaptureRect:\n input.activeCaptureRect\n }),\n shutterMechanism:\n profile.shutterMechanism,\n readout: profile.readout,\n ...(input.samplePointsNative ===\n undefined\n ? {}\n : {\n samplePointsNative:\n input.samplePointsNative\n })\n }).value;\n\n return {\n schemaVersion:\n CAPTURE_MODE_TIMING_PROFILE_SCHEMA_VERSION,\n timingProfileId:\n profile.profileId,\n timingProfileVersion:\n profile.profileVersion,\n captureModeId:\n input.captureMode.modeId,\n captureModeTimingIdentity:\n \"exact-mode-and-profile\",\n nativeRaster: {\n ...input.captureMode.nativeRaster\n },\n modeDeclaresTimingDependency:\n input.captureMode\n .dependencies.includes(\n \"mode-specific-readout-timing\"\n ),\n scheduleFamily:\n profile.scheduleFamily,\n exposureWindows,\n readoutTiming,\n timeReference:\n \"first-opening-boundary-phase\",\n readoutExposureSynchronization:\n \"not-assumed\",\n nonUniformScheduleModeled:\n false,\n evidence: [\n ...input.captureMode.modeEvidence,\n ...profile.evidence\n ],\n limitations: [\n ...profile.limitations,\n \"Sensor data readout timing and exposure-boundary timing remain independent unless a separate linkage/synchronization contract establishes a relationship.\",\n \"Capture-mode identity does not infer timing from CMOS/CCD, marketing labels, output raster size, or generic readout-speed names.\"\n ]\n };\n}\n"]}
|
|
@@ -5,13 +5,13 @@ export type CaptureModeReconstructionStage = "remosaic" | "pixel-shift-combinati
|
|
|
5
5
|
export type CaptureModeDependency = "color-sampling-model" | "mode-specific-readout-timing" | "radiometric-calibration" | "inter-frame-registration";
|
|
6
6
|
export interface CaptureModeSensorOffsetNativeSamples {
|
|
7
7
|
/**
|
|
8
|
-
* Horizontal sensor
|
|
9
|
-
*
|
|
8
|
+
* Horizontal sensor shift, in units of the native sample pitch. This says
|
|
9
|
+
* nothing about the physical photodiode pitch.
|
|
10
10
|
*/
|
|
11
11
|
x: number;
|
|
12
12
|
/**
|
|
13
|
-
* Vertical sensor
|
|
14
|
-
*
|
|
13
|
+
* Vertical sensor shift, in units of the native sample pitch. This says
|
|
14
|
+
* nothing about the physical photodiode pitch.
|
|
15
15
|
*/
|
|
16
16
|
y: number;
|
|
17
17
|
}
|
|
@@ -26,8 +26,8 @@ export interface FixedMultiFrameCaptureAcquisition {
|
|
|
26
26
|
export interface VariableMultiFrameCaptureAcquisition {
|
|
27
27
|
kind: "variable-multi-frame";
|
|
28
28
|
/**
|
|
29
|
-
* Evidence that the mode
|
|
30
|
-
*
|
|
29
|
+
* Evidence that the mode uses a variable number of frames, even when the
|
|
30
|
+
* exact frame-count limits are not published.
|
|
31
31
|
*/
|
|
32
32
|
evidence: readonly EvidenceProvenance[];
|
|
33
33
|
minimumFrameCount?: SourcedCaptureModeFact<number>;
|
|
@@ -42,16 +42,16 @@ export interface GroupedNativeCaptureSampling {
|
|
|
42
42
|
groupWidthSamples: SourcedCaptureModeFact<number>;
|
|
43
43
|
groupHeightSamples: SourcedCaptureModeFact<number>;
|
|
44
44
|
/**
|
|
45
|
-
* Omitted means unknown
|
|
46
|
-
* from the word "binning" or from the
|
|
45
|
+
* Omitted means "unknown, not stated". Do not guess where samples are
|
|
46
|
+
* combined from the word "binning" or from the ratio of image sizes.
|
|
47
47
|
*/
|
|
48
48
|
combinationDomain?: SourcedCaptureModeFact<CaptureModeSampleCombinationDomain>;
|
|
49
49
|
}
|
|
50
50
|
export interface DeclaredEffectiveCaptureSampling {
|
|
51
51
|
kind: "declared-effective-raster";
|
|
52
52
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
53
|
+
* Sample grid per frame, for a mode whose relationship to the native grid
|
|
54
|
+
* cannot safely be written as simple integer grouping.
|
|
55
55
|
*/
|
|
56
56
|
raster: SourcedCaptureModeFact<RasterDimensions>;
|
|
57
57
|
}
|
|
@@ -59,28 +59,28 @@ export type CaptureModePerFrameSampling = NativeEffectiveCaptureSampling | Group
|
|
|
59
59
|
export interface CaptureModeDefinition {
|
|
60
60
|
modeId: string;
|
|
61
61
|
/**
|
|
62
|
-
* Evidence
|
|
63
|
-
*
|
|
62
|
+
* Evidence that this mode exists and for how it captures overall. Facts in
|
|
63
|
+
* the fields below keep their own evidence where needed.
|
|
64
64
|
*/
|
|
65
65
|
evidence: readonly EvidenceProvenance[];
|
|
66
66
|
acquisition: CaptureModeAcquisition;
|
|
67
67
|
perFrameSampling: CaptureModePerFrameSampling;
|
|
68
68
|
/**
|
|
69
|
-
* Optional ordered sensor
|
|
70
|
-
* The whole sequence is one evidence-backed fact because
|
|
71
|
-
* documentation
|
|
69
|
+
* Optional ordered sequence of sensor shifts, for modes with a fixed number
|
|
70
|
+
* of frames. The whole sequence is one evidence-backed fact, because
|
|
71
|
+
* published documentation usually describes it as a unit.
|
|
72
72
|
*/
|
|
73
73
|
interFrameSensorOffsetsNativeSamples?: SourcedCaptureModeFact<readonly CaptureModeSensorOffsetNativeSamples[]>;
|
|
74
74
|
/**
|
|
75
|
-
* Ordered reconstruction
|
|
76
|
-
*
|
|
75
|
+
* Ordered reconstruction or combination stages. These labels only name the
|
|
76
|
+
* stages for later reconstruction models; they implement no algorithm.
|
|
77
77
|
*/
|
|
78
78
|
reconstructionStages?: readonly SourcedCaptureModeFact<CaptureModeReconstructionStage>[];
|
|
79
79
|
/**
|
|
80
|
-
* Image
|
|
81
|
-
* final output crop
|
|
80
|
+
* Image size produced by the capture mode and reconstruction, before the
|
|
81
|
+
* final output crop or resampling.
|
|
82
82
|
*
|
|
83
|
-
*
|
|
83
|
+
* It does not change the physical sensor geometry or field of view.
|
|
84
84
|
*/
|
|
85
85
|
processedImageRaster: SourcedCaptureModeFact<RasterDimensions>;
|
|
86
86
|
/**
|
|
@@ -137,21 +137,19 @@ export interface ResolvedCaptureMode {
|
|
|
137
137
|
finalOutputRasterOwnership: "downstream-capture-output-geometry";
|
|
138
138
|
}
|
|
139
139
|
/**
|
|
140
|
-
* Parses a capture-mode profile
|
|
140
|
+
* Parses a capture-mode profile. Sensor physics is never guessed from output
|
|
141
141
|
* resolution or marketing mode names.
|
|
142
142
|
*
|
|
143
|
-
* The profile
|
|
144
|
-
*
|
|
145
|
-
* processed
|
|
143
|
+
* The profile's parts are independent of each other: the frame sequence,
|
|
144
|
+
* sampling within each frame, optional sensor shift between frames,
|
|
145
|
+
* reconstruction stages, the processed image size and downstream dependencies.
|
|
146
146
|
*/
|
|
147
147
|
export declare function parseCaptureModeProfile(value: unknown): CaptureModeProfile;
|
|
148
148
|
/**
|
|
149
|
-
* Resolves one capture mode against the selected sensor's native
|
|
150
|
-
* image-sampling raster.
|
|
149
|
+
* Resolves one capture mode against the selected sensor's native pixel grid.
|
|
151
150
|
*
|
|
152
|
-
* Resolution changes do not
|
|
153
|
-
* processed
|
|
154
|
-
* factor, field of view or physical photosite count.
|
|
151
|
+
* Resolution changes do not change the physical sensor geometry. The returned
|
|
152
|
+
* processed image size is before output, and must not be used to work out crop
|
|
153
|
+
* factor, field of view or the physical photosite count.
|
|
155
154
|
*/
|
|
156
155
|
export declare function resolveCaptureMode(input: ResolveCaptureModeInput): ResolvedCaptureMode;
|
|
157
|
-
//# sourceMappingURL=capture-mode.d.ts.map
|