@photivra/engine 1.5.0 → 2.1.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 +414 -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/diffraction-provider.d.ts +30 -0
- package/dist/facade/diffraction-provider.js +127 -0
- package/dist/facade/diffraction-provider.js.map +1 -0
- package/dist/facade/host-yield.d.ts +7 -0
- package/dist/facade/host-yield.js +19 -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 +363 -0
- package/dist/facade/simulate-capture.js +1281 -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 +91 -25
- package/dist/index.js +60 -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-psf-profile.d.ts +118 -0
- package/dist/optics/diffraction-psf-profile.js +252 -0
- package/dist/optics/diffraction-psf-profile.js.map +1 -0
- 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 +777 -2
- package/docs/QUICK_START.md +663 -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 +2253 -3
- 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 +397 -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-psf-profile.md +96 -0
- 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 -11
- 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,16 +1,77 @@
|
|
|
1
1
|
# sensor/raw-reconstruction.ts public contracts
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The package and root API versions are recorded once in [Navigation](../API_REFERENCE.md) · [Developer guide](https://github.com/Photivra/photivra/blob/main/docs/DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## BUILT_IN_BAYER_DEMOSAIC_MODEL_VERSION
|
|
6
|
+
|
|
7
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
BUILT_IN_BAYER_DEMOSAIC_MODEL_VERSION = "1.0.0" as const
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## BuiltInBayerDemosaicKernel
|
|
14
|
+
|
|
15
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
export type BuiltInBayerDemosaicKernel = "bilinear";
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## BuiltInBayerDemosaicProfiles
|
|
22
|
+
|
|
23
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
export interface BuiltInBayerDemosaicProfiles {
|
|
27
|
+
kernel: BuiltInBayerDemosaicKernel;
|
|
28
|
+
/** One profile per absolute CFA phase, row-major (`phaseY`, then `phaseX`). */
|
|
29
|
+
phaseProfiles: { phaseX: number; phaseY: number; profile: SensorRawReconstructionProfile }[];
|
|
30
|
+
outputChannelIds: [string, string, string];
|
|
31
|
+
/** Largest |offset| of any contribution: 1 for bilinear. */
|
|
32
|
+
kernelReachSites: number;
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## createBuiltInBayerDemosaicProfiles
|
|
37
|
+
|
|
38
|
+
Builds the per-phase linear reconstruction profiles of the built-in bilinear Bayer demosaic kernel.
|
|
6
39
|
|
|
7
|
-
|
|
8
|
-
reconstruction
|
|
40
|
+
The result is the ordinary `explicit-linear-native-neighborhood` profile used by RAW frame
|
|
41
|
+
reconstruction, native RAW development and `createCfaPlaneReconstructionTask`; there is no special
|
|
42
|
+
code path. Edge pixels need either a region whose neighbourhood stays inside the frame, or mirror
|
|
43
|
+
border handling.
|
|
9
44
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
45
|
+
Approximation: fixed linear interpolation, not a calibrated or adaptive demosaic. Bilinear blurs
|
|
46
|
+
and shows "zipper" artefacts at edges. Aliasing and moiré are not modelled. The adaptive AHD method
|
|
47
|
+
is `createAhdDemosaicTask`.
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
export function createBuiltInBayerDemosaicProfiles(input: CreateBuiltInBayerDemosaicProfilesInput): CalculationResult<BuiltInBayerDemosaicProfiles>;
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
54
|
+
|
|
55
|
+
## CreateBuiltInBayerDemosaicProfilesInput
|
|
56
|
+
|
|
57
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
export interface CreateBuiltInBayerDemosaicProfilesInput {
|
|
61
|
+
kernel: BuiltInBayerDemosaicKernel;
|
|
62
|
+
/** Capture mode the RAW frame belongs to; copied into every phase profile. */
|
|
63
|
+
captureModeId: string;
|
|
64
|
+
/** Must be a 2×2 periodic Bayer mosaic: one red, one blue and two diagonal green sites. */
|
|
65
|
+
colorSamplingProfile: SensorColorSamplingProfile;
|
|
66
|
+
/** CFA channel IDs for the red, green and blue roles. This is also the output channel order. */
|
|
67
|
+
channelRoles: { red: string; green: string; blue: string };
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## createSensorRawCaptureSample
|
|
72
|
+
|
|
73
|
+
Commits one validated native RAW sample, with its exact site, channel and exposure event, for use
|
|
74
|
+
in reconstruction.
|
|
14
75
|
|
|
15
76
|
```ts
|
|
16
77
|
export function createSensorRawCaptureSample(
|
|
@@ -31,18 +92,22 @@ export interface CreateSensorRawCaptureSampleInput {
|
|
|
31
92
|
SensorRawCodeSample;
|
|
32
93
|
contributors:
|
|
33
94
|
ResolvedCaptureModeColorSamplingContributors;
|
|
95
|
+
/**
|
|
96
|
+
* The selected readout regime's declared ADC integral non-linearity (INL), if any. The code sample
|
|
97
|
+
* records INL only at its own code, but the effective white level needs it at saturation.
|
|
98
|
+
*/
|
|
99
|
+
adcIntegralNonLinearity?:
|
|
100
|
+
SensorAdcIntegralNonLinearity;
|
|
34
101
|
}
|
|
35
102
|
```
|
|
36
103
|
|
|
37
104
|
## parseSensorRawReconstructionProfile
|
|
38
105
|
|
|
39
|
-
|
|
40
|
-
missing required fields and
|
|
106
|
+
Validates untrusted input and returns it as a normalized, typed value. Unknown enum values,
|
|
107
|
+
missing required fields and inconsistent scientific data are rejected.
|
|
41
108
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
reconstruction does not infer spectral sensor primaries, calibrated color or a complete arbitrary
|
|
45
|
-
demosaic algorithm.
|
|
109
|
+
The profile declares a normalized linear kernel for each output channel. It does not infer the
|
|
110
|
+
sensor's spectral primaries or calibrated colour.
|
|
46
111
|
|
|
47
112
|
```ts
|
|
48
113
|
export function parseSensorRawReconstructionProfile(
|
|
@@ -52,15 +117,21 @@ export function parseSensorRawReconstructionProfile(
|
|
|
52
117
|
|
|
53
118
|
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
54
119
|
|
|
120
|
+
## RawReconstructionBorderHandling
|
|
121
|
+
|
|
122
|
+
How a reconstruction neighbourhood that leaves the native frame is handled.
|
|
123
|
+
|
|
124
|
+
```ts
|
|
125
|
+
export type RawReconstructionBorderHandling = "reject" | "mirror";
|
|
126
|
+
```
|
|
127
|
+
|
|
55
128
|
## resolveSensorRawReconstruction
|
|
56
129
|
|
|
57
|
-
|
|
58
|
-
|
|
130
|
+
Combines the supplied native samples through explicit normalized kernels, keeping CFA identity
|
|
131
|
+
and signed black-subtracted values.
|
|
59
132
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
reconstruction does not infer spectral sensor primaries, calibrated color or a complete arbitrary
|
|
63
|
-
demosaic algorithm.
|
|
133
|
+
The CFA phase is absolute; orientation and crop come later. This fixed linear reconstruction does
|
|
134
|
+
not infer spectral primaries or calibrated colour, and is not a general demosaic algorithm.
|
|
64
135
|
|
|
65
136
|
```ts
|
|
66
137
|
export function resolveSensorRawReconstruction(
|
|
@@ -134,6 +205,12 @@ export interface SensorRawCaptureSample {
|
|
|
134
205
|
digitalSaturationCode: number;
|
|
135
206
|
blackSubtractedNormalizedCode:
|
|
136
207
|
number;
|
|
208
|
+
/** Full-saturation code from `calculateEffectiveSaturationCode`; constant per CFA phase. */
|
|
209
|
+
effectiveSaturationCode: number;
|
|
210
|
+
/** Regime system conversion gain, e⁻ per code (DNG NoiseProfile input). */
|
|
211
|
+
systemConversionGainElectronsPerCode: number;
|
|
212
|
+
/** Total read noise in e⁻: the square root of the sum of the squared RMS components (DNG NoiseProfile input). */
|
|
213
|
+
readNoiseRmsElectrons: number;
|
|
137
214
|
readoutProfileId: string;
|
|
138
215
|
readoutRegimeId: string;
|
|
139
216
|
sourceChargeSeedUint32: number;
|
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
# sensor/readout-exposure-linkage.ts public contracts
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The package and root API versions are recorded once in [Navigation](../API_REFERENCE.md) · [Developer guide](https://github.com/Photivra/photivra/blob/main/docs/DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
4
|
|
|
5
5
|
## assessReadoutExposureTimingLinkage
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
Checks an explicitly declared link between the rolling readout scan and one
|
|
8
|
+
or more electronic exposure-boundary scans.
|
|
9
9
|
|
|
10
|
-
This
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
relative to exposure start/end.
|
|
10
|
+
This is deliberately weaker than time synchronization. It can show that two
|
|
11
|
+
schedules sweep the native sensor in the same order (or in reverse), but not
|
|
12
|
+
when readout happens relative to the start or end of exposure.
|
|
14
13
|
|
|
15
|
-
The total
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
reported without implying a shared clock origin.
|
|
14
|
+
The total data-readout time is kept for diagnostics and never used to check
|
|
15
|
+
the link. The readout skew and the boundary sweep time may differ; their
|
|
16
|
+
ratio is reported without implying a shared clock.
|
|
19
17
|
|
|
20
18
|
```ts
|
|
21
19
|
export function assessReadoutExposureTimingLinkage(
|
|
@@ -43,6 +41,56 @@ export interface AssessReadoutExposureTimingLinkageInput {
|
|
|
43
41
|
}
|
|
44
42
|
```
|
|
45
43
|
|
|
44
|
+
## createRollingShutterCaptureExposureSchedule
|
|
45
|
+
|
|
46
|
+
The exposure-schedule fields of a derived rolling-shutter schedule, without model metadata.
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
export function createRollingShutterCaptureExposureSchedule(
|
|
50
|
+
schedule: ElectronicRollingShutterExposureSchedule
|
|
51
|
+
): Pick<CalculateCaptureExposureWindowsInput, "shutterMechanism" | "nominalExposureDurationSeconds" | "opening" | "closing">;
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
55
|
+
|
|
56
|
+
## ELECTRONIC_ROLLING_SHUTTER_MODEL
|
|
57
|
+
|
|
58
|
+
Model identity of the electronic rolling-shutter (line reset → line read) exposure schedule.
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
ELECTRONIC_ROLLING_SHUTTER_MODEL = Object.freeze({
|
|
62
|
+
id: "electronic-rolling-shutter-line-reset-read",
|
|
63
|
+
version: "1.0.0"
|
|
64
|
+
} as const)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## ElectronicRollingShutterExposureSchedule
|
|
68
|
+
|
|
69
|
+
Exposure-window schedule of an electronic rolling shutter. Its `shutterMechanism`,
|
|
70
|
+
`nominalExposureDurationSeconds`, `opening` and `closing` fields form a complete exposure schedule, so
|
|
71
|
+
they can be passed as a native RAW / environment `exposureWindow` or spread into a production
|
|
72
|
+
`temporalCapture.exposureWindowInput` (see {@link createRollingShutterCaptureExposureSchedule}).
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
export interface ElectronicRollingShutterExposureSchedule {
|
|
76
|
+
modelId: typeof ELECTRONIC_ROLLING_SHUTTER_MODEL.id;
|
|
77
|
+
modelVersion: typeof ELECTRONIC_ROLLING_SHUTTER_MODEL.version;
|
|
78
|
+
shutterMechanism: "electronic";
|
|
79
|
+
nominalExposureDurationSeconds: SourcedCaptureTimingSeconds;
|
|
80
|
+
/** Line-reset scan: a native point at normalized scan position s starts integrating at s·τ. */
|
|
81
|
+
opening: UniformLinearExposureBoundarySchedule;
|
|
82
|
+
/** Line-read scan: the same point stops integrating at T + s·τ. */
|
|
83
|
+
closing: UniformLinearExposureBoundarySchedule;
|
|
84
|
+
/** Explicit linkage declaration accepted by {@link assessReadoutExposureTimingLinkage}. */
|
|
85
|
+
linkage: Extract<ReadoutExposureTimingLinkageDeclaration, { kind: "spatial-phase-linked" }>;
|
|
86
|
+
/** τ: offset between the first and last exposure starts (equal to the readout skew). */
|
|
87
|
+
lineScanSkewSeconds: number;
|
|
88
|
+
/** Every point integrates for exactly the nominal exposure duration T. */
|
|
89
|
+
localExposureDurationSeconds: number;
|
|
90
|
+
limitations: readonly string[];
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
46
94
|
## ReadoutExposureBoundaryId
|
|
47
95
|
|
|
48
96
|
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
@@ -59,8 +107,8 @@ The exact contract is declared below; use the domain guide for assumptions and s
|
|
|
59
107
|
export interface ReadoutExposureBoundarySpatialLink {
|
|
60
108
|
boundary: ReadoutExposureBoundaryId;
|
|
61
109
|
/**
|
|
62
|
-
*
|
|
63
|
-
* selected electronic exposure-boundary scan
|
|
110
|
+
* How the normalized position of the rolling readout scan relates to that
|
|
111
|
+
* of the selected electronic exposure-boundary scan.
|
|
64
112
|
*
|
|
65
113
|
* "same": boundary normalized phase = readout normalized phase.
|
|
66
114
|
* "reversed": boundary normalized phase = 1 - readout normalized phase.
|
|
@@ -69,10 +117,10 @@ export interface ReadoutExposureBoundarySpatialLink {
|
|
|
69
117
|
*/
|
|
70
118
|
phaseOrientation: ReadoutExposureSpatialPhaseOrientation;
|
|
71
119
|
/**
|
|
72
|
-
* Evidence
|
|
120
|
+
* Evidence for the link itself.
|
|
73
121
|
*
|
|
74
|
-
* The readout direction
|
|
75
|
-
* their own separate evidence.
|
|
122
|
+
* The readout direction and timing, and the exposure-boundary direction and
|
|
123
|
+
* timing, keep their own separate evidence.
|
|
76
124
|
*/
|
|
77
125
|
evidence: readonly EvidenceProvenance[];
|
|
78
126
|
}
|
|
@@ -94,15 +142,15 @@ export interface ReadoutExposureBoundarySpatialLinkAssessment {
|
|
|
94
142
|
readoutDirectionNative: NativeSensorReadoutScanDirection;
|
|
95
143
|
boundaryDirectionNative: NativeSensorReadoutScanDirection;
|
|
96
144
|
/**
|
|
97
|
-
*
|
|
145
|
+
* Rolling readout skew: time from the first to the last scan position.
|
|
98
146
|
*/
|
|
99
147
|
readoutSpatialSamplingSkewSeconds: SourcedSensorTimingSeconds;
|
|
100
148
|
/**
|
|
101
|
-
*
|
|
149
|
+
* Time for the exposure boundary to sweep from first to last position.
|
|
102
150
|
*/
|
|
103
151
|
boundaryTraversalDurationSeconds: SourcedCaptureTimingSeconds;
|
|
104
152
|
/**
|
|
105
|
-
*
|
|
153
|
+
* A descriptive ratio only. A value of 1 does not prove time
|
|
106
154
|
* synchronization or a common clock origin.
|
|
107
155
|
*/
|
|
108
156
|
boundaryTraversalToReadoutSpatialSkewRatio: number;
|
|
@@ -135,8 +183,8 @@ export interface ReadoutExposureTimingLinkageAssessment {
|
|
|
135
183
|
activeCaptureRect: RasterRect;
|
|
136
184
|
absoluteTemporalAlignment: "not-established";
|
|
137
185
|
/**
|
|
138
|
-
*
|
|
139
|
-
*
|
|
186
|
+
* Data-readout time for the capture. Kept for diagnostics, but never used to
|
|
187
|
+
* check an exposure-boundary link.
|
|
140
188
|
*/
|
|
141
189
|
captureReadoutDurationSeconds: SourcedSensorTimingSeconds;
|
|
142
190
|
links: readonly ReadoutExposureBoundarySpatialLinkAssessment[];
|
|
@@ -155,7 +203,7 @@ The exact contract is declared below; use the domain guide for assumptions and s
|
|
|
155
203
|
export type ReadoutExposureTimingLinkageDeclaration =
|
|
156
204
|
| {
|
|
157
205
|
/**
|
|
158
|
-
*
|
|
206
|
+
* No link between readout and exposure is stated for this capture.
|
|
159
207
|
* This is not evidence that the physical processes are independent.
|
|
160
208
|
*/
|
|
161
209
|
kind: "unlinked";
|
|
@@ -163,10 +211,58 @@ export type ReadoutExposureTimingLinkageDeclaration =
|
|
|
163
211
|
}
|
|
164
212
|
| {
|
|
165
213
|
/**
|
|
166
|
-
* One or more exposure boundaries are explicitly
|
|
167
|
-
* readout by normalized native
|
|
214
|
+
* One or more exposure boundaries are explicitly linked to the rolling
|
|
215
|
+
* readout by their normalized position across the native sensor.
|
|
168
216
|
*/
|
|
169
217
|
kind: "spatial-phase-linked";
|
|
170
218
|
links: readonly ReadoutExposureBoundarySpatialLink[];
|
|
171
219
|
};
|
|
172
220
|
```
|
|
221
|
+
|
|
222
|
+
## resolveElectronicRollingShutterExposureSchedule
|
|
223
|
+
|
|
224
|
+
Derives the exposure-window schedule of a fully electronic rolling shutter from its rolling readout
|
|
225
|
+
declaration.
|
|
226
|
+
|
|
227
|
+
In a CMOS rolling shutter, each line is reset, collects light for the exposure time T and is then
|
|
228
|
+
read. The reset pointer runs T ahead of the read pointer, and both move at the line rate (El Gamal &
|
|
229
|
+
Eltoukhy 2005; Liang, Chang & Chen 2008). With the uniform linear scan used throughout this engine, a
|
|
230
|
+
native point at normalized scan position s ∈ [0, 1] (along the declared scan direction, over the
|
|
231
|
+
active capture) collects light over [s·τ, s·τ + T], where τ is the declared first-to-last readout
|
|
232
|
+
skew. So both boundaries become uniform linear scans in the readout direction that take τ to sweep.
|
|
233
|
+
|
|
234
|
+
When this schedule feeds the per-site exposure windows, everything that samples motion, moving
|
|
235
|
+
sources or time-varying light at local exposure times (environment RAW, rotation quadrature,
|
|
236
|
+
temporal illumination integration) produces rolling-shutter skew, wobble, partial exposure and
|
|
237
|
+
flicker banding.
|
|
238
|
+
|
|
239
|
+
Approximation: constant line rate, no line-reset jitter, no hybrid of global reset with a mechanical
|
|
240
|
+
closing shutter, and the active-capture skew is declared by the caller (never scaled from a
|
|
241
|
+
full-frame value).
|
|
242
|
+
|
|
243
|
+
```ts
|
|
244
|
+
export function resolveElectronicRollingShutterExposureSchedule(
|
|
245
|
+
input: ResolveElectronicRollingShutterExposureScheduleInput
|
|
246
|
+
): ElectronicRollingShutterExposureSchedule;
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
250
|
+
|
|
251
|
+
## ResolveElectronicRollingShutterExposureScheduleInput
|
|
252
|
+
|
|
253
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
254
|
+
|
|
255
|
+
```ts
|
|
256
|
+
export interface ResolveElectronicRollingShutterExposureScheduleInput {
|
|
257
|
+
/** Rolling readout declaration whose scan direction and spatial skew drive both exposure boundaries. */
|
|
258
|
+
readout: RollingSensorReadoutTimingDeclaration;
|
|
259
|
+
/** Per-line integration time between line reset and line read. */
|
|
260
|
+
nominalExposureDurationSeconds: SourcedCaptureTimingSeconds;
|
|
261
|
+
/**
|
|
262
|
+
* Evidence that this capture uses a fully electronic, line-by-line (rolling) shutter whose reset
|
|
263
|
+
* scan runs at the readout line rate. This explicit link is required before sensor readout timing
|
|
264
|
+
* may set the exposure-window timing.
|
|
265
|
+
*/
|
|
266
|
+
linkageEvidence: readonly EvidenceProvenance[];
|
|
267
|
+
}
|
|
268
|
+
```
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
# sensor/readout-timing.ts public contracts
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The package and root API versions are recorded once in [Navigation](../API_REFERENCE.md) · [Developer guide](https://github.com/Photivra/photivra/blob/main/docs/DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
4
|
|
|
5
5
|
## calculateSensorReadoutTiming
|
|
6
6
|
|
|
7
|
-
Resolves
|
|
7
|
+
Resolves the sensor readout scan schedule for one capture.
|
|
8
8
|
|
|
9
|
-
Rolling readout
|
|
10
|
-
declared active capture. The caller supplies the
|
|
11
|
-
explicitly
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
Rolling readout is modelled as a uniform linear scan along one axis of the
|
|
10
|
+
declared active capture. The caller supplies the scan's time span (skew)
|
|
11
|
+
explicitly. It is never worked out from the total data-readout time, crop
|
|
12
|
+
size, pixel density, output resolution, sensor-architecture metadata or the
|
|
13
|
+
shutter mechanism.
|
|
14
14
|
|
|
15
|
-
Global readout has no
|
|
16
|
-
|
|
15
|
+
Global readout has no skew in this model, even when a non-zero data-readout
|
|
16
|
+
time is declared.
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
flash
|
|
18
|
+
Not covered: local exposure start and end times, mechanical curtain travel,
|
|
19
|
+
EFCS (electronic first-curtain shutter) behaviour, rolling-shutter image
|
|
20
|
+
distortion, flash or flicker, and motion integration.
|
|
21
21
|
|
|
22
22
|
```ts
|
|
23
23
|
export function calculateSensorReadoutTiming(
|
|
@@ -35,23 +35,23 @@ The exact contract is declared below; use the domain guide for assumptions and s
|
|
|
35
35
|
export interface CalculateSensorReadoutTimingInput {
|
|
36
36
|
nativeRaster: NativeImageRaster;
|
|
37
37
|
/**
|
|
38
|
-
* Active capture rectangle in
|
|
38
|
+
* Active capture rectangle, in fixed native pixel coordinates.
|
|
39
39
|
*
|
|
40
|
-
* Defaults to the
|
|
41
|
-
*
|
|
40
|
+
* Defaults to the whole native image. Timing is never worked out by scaling
|
|
41
|
+
* a full-frame value to this rectangle.
|
|
42
42
|
*/
|
|
43
43
|
activeCaptureRect?: RasterRect;
|
|
44
44
|
/**
|
|
45
|
-
*
|
|
45
|
+
* The shutter mechanism chosen for the capture.
|
|
46
46
|
*
|
|
47
|
-
* It is reported
|
|
48
|
-
*
|
|
47
|
+
* It is reported separately and does not change the sensor readout timing
|
|
48
|
+
* in this model.
|
|
49
49
|
*/
|
|
50
50
|
shutterMechanism: CaptureShutterMechanism;
|
|
51
51
|
readout: SensorReadoutTimingDeclaration;
|
|
52
52
|
/**
|
|
53
|
-
* Optional continuous native
|
|
54
|
-
*
|
|
53
|
+
* Optional points, in continuous native pixel coordinates measured from pixel
|
|
54
|
+
* edges, to report timing for. A pixel centre is at +0.5.
|
|
55
55
|
*/
|
|
56
56
|
samplePointsNative?: readonly RasterPoint[];
|
|
57
57
|
}
|
|
@@ -76,9 +76,9 @@ The exact contract is declared below; use the domain guide for assumptions and s
|
|
|
76
76
|
export interface GlobalSensorReadoutTimingDeclaration {
|
|
77
77
|
readoutMode: "global";
|
|
78
78
|
/**
|
|
79
|
-
*
|
|
79
|
+
* Sensor data-readout time for this capture.
|
|
80
80
|
*
|
|
81
|
-
*
|
|
81
|
+
* It is deliberately not treated as the spatial exposure or readout skew.
|
|
82
82
|
*/
|
|
83
83
|
captureReadoutDurationSeconds: SourcedSensorTimingSeconds;
|
|
84
84
|
scanDirectionNative?: never;
|
|
@@ -106,11 +106,10 @@ The exact contract is declared below; use the domain guide for assumptions and s
|
|
|
106
106
|
export interface RollingSensorReadoutTimingDeclaration {
|
|
107
107
|
readoutMode: "rolling";
|
|
108
108
|
/**
|
|
109
|
-
*
|
|
109
|
+
* Sensor data-readout time for this capture.
|
|
110
110
|
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
* treated as the same quantity.
|
|
111
|
+
* It is kept separate from the spatial skew, because a published readout time
|
|
112
|
+
* and the scan's time span are not necessarily the same quantity.
|
|
114
113
|
*/
|
|
115
114
|
captureReadoutDurationSeconds: SourcedSensorTimingSeconds;
|
|
116
115
|
/**
|
|
@@ -118,8 +117,8 @@ export interface RollingSensorReadoutTimingDeclaration {
|
|
|
118
117
|
*/
|
|
119
118
|
scanDirectionNative: SourcedSensorReadoutFact<NativeSensorReadoutScanDirection>;
|
|
120
119
|
/**
|
|
121
|
-
* Time
|
|
122
|
-
*
|
|
120
|
+
* Time between the first and last scan positions, in the uniform linear
|
|
121
|
+
* timing approximation (the readout skew).
|
|
123
122
|
*/
|
|
124
123
|
spatialSamplingSkewSeconds: SourcedSensorTimingSeconds;
|
|
125
124
|
}
|
|
@@ -127,11 +126,11 @@ export interface RollingSensorReadoutTimingDeclaration {
|
|
|
127
126
|
|
|
128
127
|
## SensorReadoutMode
|
|
129
128
|
|
|
130
|
-
|
|
129
|
+
The readout mode chosen for one capture.
|
|
131
130
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
131
|
+
It uses the same names as the architecture metadata, but does not claim the
|
|
132
|
+
hardware supports it. SensorArchitectureProfile.readoutCapabilities is
|
|
133
|
+
descriptive only and is not checked automatically.
|
|
135
134
|
|
|
136
135
|
```ts
|
|
137
136
|
export type SensorReadoutMode = SensorReadoutArchitecture;
|
|
@@ -180,10 +179,9 @@ export interface SensorReadoutTimingSample {
|
|
|
180
179
|
pointNative: RasterPoint;
|
|
181
180
|
normalizedScanPosition: number | null;
|
|
182
181
|
/**
|
|
183
|
-
*
|
|
182
|
+
* Readout time of this point, in seconds, relative to the first scan position (0).
|
|
184
183
|
*
|
|
185
|
-
*
|
|
186
|
-
* exposure-start time or shutter-curtain time.
|
|
184
|
+
* It is not automatically an exposure-start time or a shutter-curtain time.
|
|
187
185
|
*/
|
|
188
186
|
readoutPhaseOffsetSeconds: number;
|
|
189
187
|
}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
# sensor/response-application-compatibility.ts public contracts
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The package and root API versions are recorded once in [Navigation](../API_REFERENCE.md) · [Developer guide](https://github.com/Photivra/photivra/blob/main/docs/DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
4
|
|
|
5
5
|
## assessSensorResponseApplicationCompatibility
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
selected
|
|
7
|
+
Checks whether the source plane, area, profile, channel and reference conditions allow the
|
|
8
|
+
selected way of applying the response.
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
conversion; per-bin operating-range validity and the typed EQE/A-W path are separate gates.
|
|
10
|
+
Passing this alone does not allow converting light to signal. The per-bin operating-range check
|
|
11
|
+
and the EQE or A/W conversion are separate steps.
|
|
13
12
|
|
|
14
13
|
```ts
|
|
15
14
|
export function assessSensorResponseApplicationCompatibility(
|
|
@@ -39,12 +38,11 @@ export interface AssessSensorResponseApplicationCompatibilityInput {
|
|
|
39
38
|
|
|
40
39
|
## parseSensorResponseApplicationProfile
|
|
41
40
|
|
|
42
|
-
|
|
43
|
-
missing required fields and
|
|
41
|
+
Validates untrusted input and returns it as a normalized, typed value. Unknown enum values,
|
|
42
|
+
missing required fields and inconsistent scientific data are rejected.
|
|
44
43
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
conversion; per-bin operating-range validity and the typed EQE/A-W path are separate gates.
|
|
44
|
+
The profile states the source plane, incident-area basis, spatial uniformity and reference
|
|
45
|
+
conditions under which a response applies.
|
|
48
46
|
|
|
49
47
|
```ts
|
|
50
48
|
export function parseSensorResponseApplicationProfile(
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
# sensor/response-operating-range.ts public contracts
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The package and root API versions are recorded once in [Navigation](../API_REFERENCE.md) · [Developer guide](https://github.com/Photivra/photivra/blob/main/docs/DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
4
|
|
|
5
5
|
## assessSensorResponseOperatingRange
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
Checks every declared spectral-bin input against the operating range and the superposition
|
|
8
|
+
requirement, before any instantaneous response conversion is allowed.
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
applicability and spatial linear superposition. Valid mean input must not conceal an invalid bright
|
|
13
|
-
local sub-aperture.
|
|
10
|
+
Each bin must be in range, and spatial linear superposition must hold. A valid average must not
|
|
11
|
+
hide a part of the aperture that is too bright.
|
|
14
12
|
|
|
15
13
|
```ts
|
|
16
14
|
export function assessSensorResponseOperatingRange(
|
|
@@ -38,13 +36,11 @@ export interface AssessSensorResponseOperatingRangeInput {
|
|
|
38
36
|
|
|
39
37
|
## parseSensorResponseOperatingRangeProfile
|
|
40
38
|
|
|
41
|
-
|
|
42
|
-
missing required fields and
|
|
39
|
+
Validates untrusted input and returns it as a normalized, typed value. Unknown enum values,
|
|
40
|
+
missing required fields and inconsistent scientific data are rejected.
|
|
43
41
|
|
|
44
|
-
|
|
45
|
-
conditions and
|
|
46
|
-
applicability and spatial linear superposition. Valid mean input must not conceal an invalid bright
|
|
47
|
-
local sub-aperture.
|
|
42
|
+
The profile states the input quantity (incident power or irradiance), wavelength coverage,
|
|
43
|
+
reference conditions and non-linearity criterion of the calibrated operating range.
|
|
48
44
|
|
|
49
45
|
```ts
|
|
50
46
|
export function parseSensorResponseOperatingRangeProfile(
|
|
@@ -219,15 +215,15 @@ export interface SensorResponseOperatingRangeProfile {
|
|
|
219
215
|
linearityCriterion:
|
|
220
216
|
SensorResponseLinearityCriterion;
|
|
221
217
|
/**
|
|
222
|
-
* Optional for backward compatibility.
|
|
223
|
-
*
|
|
218
|
+
* Optional for backward compatibility. If omitted, it parses as "not
|
|
219
|
+
* established", which blocks new response-rate conversions.
|
|
224
220
|
*/
|
|
225
221
|
spatialLinearityModel?:
|
|
226
222
|
SensorResponseOperatingSpatialLinearityModel;
|
|
227
223
|
/**
|
|
228
|
-
* Optional for backward compatibility.
|
|
229
|
-
* establishes
|
|
230
|
-
* wavelength-by-wavelength response conversion.
|
|
224
|
+
* Optional for backward compatibility. If omitted, the calibration only
|
|
225
|
+
* establishes an operating range for broadband (wavelength-integrated) input,
|
|
226
|
+
* and cannot allow wavelength-by-wavelength response conversion.
|
|
231
227
|
*/
|
|
232
228
|
spectralInputModel?:
|
|
233
229
|
SensorResponseOperatingSpectralInputModel;
|