@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":"metering-target.js","sourceRoot":"","sources":["../../src/exposure/metering-target.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"metering-target.js","sourceRoot":"","sources":["../../src/exposure/metering-target.ts"],"names":[],"mappings":"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","sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Meter targets: a frozen metering result that camera-control logic uses as its exposure target.\n *\n * The target copies the meter snapshot by value. Later changes to the scene or light do not change\n * it. This is what the engine provides for AE lock (auto-exposure lock).\n *\n * Exposure compensation is set as an absolute value. It is always worked out again from the base\n * target without compensation, so repeated UI updates cannot build up floating-point or control\n * drift. Positive compensation asks for more exposure.\n * @see docs/USAGE.md for the equations, units, coordinate conventions, known blockers and support\n * limits.\n */\n\nimport { InvalidScientificInputError } from \"../core/validation.js\";\nimport type {\n ExposureMeteringResult\n} from \"./metering.js\";\nimport type {\n SceneRadianceTemporalExposureMeteringResult\n} from \"./metering-temporal.js\";\nimport { requireInputObject, requireInputKeys } from \"../core/record-validation.js\";\nimport { InvalidConfigurationError } from \"../core/configuration-error.js\";\n\nexport const EXPOSURE_METER_TARGET_SCHEMA_VERSION =\n \"0.1.0\" as const;\n\nexport type ExposureMeterTargetSourceResult =\n | ExposureMeteringResult\n | SceneRadianceTemporalExposureMeteringResult;\n\nexport type ExposureMeterTargetSourceKind =\n | \"spatial-metering-result\"\n | \"temporal-metering-result\";\n\nexport interface ExposureMeterSnapshotIdentity {\n sourceKind:\n ExposureMeterTargetSourceKind;\n measurementId: string;\n sceneStateId: string;\n meteringProfileId: string;\n}\n\ninterface ExposureMeterTargetBase {\n schemaVersion:\n typeof EXPOSURE_METER_TARGET_SCHEMA_VERSION;\n targetId: string;\n sourceMeterSnapshot:\n ExposureMeterSnapshotIdentity;\n scientificStatus: \"approximation\";\n inputDomain:\n \"relative-pre-exposure-linear-signal\";\n baseTargetRelativeSignal: number;\n meteredRelativeSignal: number;\n exposureCompensationStops: number;\n exposureCompensationApplied: boolean;\n meterMeasurementMutated: false;\n sourceMeterSnapshotPreserved: true;\n resultReusableForAeLock: true;\n automaticExposureResolved: false;\n intendedConsumer:\n \"exposure-mode-resolver\";\n}\n\nexport type ExposureMeterTarget =\n | (ExposureMeterTargetBase & {\n status: \"resolved\";\n baseRequiredExposureScaleToTarget:\n number;\n baseExposureOffsetStopsToTarget:\n number;\n requiredExposureScaleToTarget:\n number;\n exposureOffsetStopsToTarget:\n number;\n })\n | (ExposureMeterTargetBase & {\n status: \"no-signal\";\n baseRequiredExposureScaleResolved:\n false;\n baseExposureOffsetStopsResolved:\n false;\n requiredExposureScaleResolved:\n false;\n exposureOffsetStopsResolved:\n false;\n });\n\nexport interface CreateExposureMeterTargetInput {\n targetId: string;\n meterResult:\n ExposureMeterTargetSourceResult;\n}\n\nexport interface SetExposureCompensationOnMeterTargetInput {\n targetId: string;\n baseTarget: ExposureMeterTarget;\n exposureCompensationStops: number;\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 requireFinite(\n value: unknown,\n path: string\n): number {\n if (\n typeof value !== \"number\" ||\n !Number.isFinite(value)\n ) {\n throw new InvalidScientificInputError(\n path + \" must be finite.\"\n );\n }\n return value;\n}\n\nfunction requirePositiveFinite(\n value: unknown,\n path: string\n): number {\n const parsed = requireFinite(\n value,\n path\n );\n if (parsed <= 0) {\n throw new InvalidScientificInputError(\n path + \" must be greater than zero.\"\n );\n }\n return parsed;\n}\n\nfunction requireNonNegativeFinite(\n value: unknown,\n path: string\n): number {\n const parsed = requireFinite(\n value,\n path\n );\n if (parsed < 0) {\n throw new InvalidScientificInputError(\n path +\n \" must be greater than or equal to zero.\"\n );\n }\n return parsed;\n}\n\nfunction meterSnapshotIdentity(\n result:\n ExposureMeterTargetSourceResult\n): ExposureMeterSnapshotIdentity {\n const hasSpatialId =\n \"measurementId\" in result;\n const hasTemporalId =\n \"temporalMeasurementId\" in\n result;\n\n if (\n hasSpatialId === hasTemporalId\n ) {\n throw new InvalidScientificInputError(\n \"meterResult must identify exactly one spatial or temporal metering result.\"\n );\n }\n\n return {\n sourceKind: hasSpatialId\n ? \"spatial-metering-result\"\n : \"temporal-metering-result\",\n measurementId:\n requireNonEmptyString(\n hasSpatialId\n ? result.measurementId\n : result\n .temporalMeasurementId,\n hasSpatialId\n ? \"meterResult.measurementId\"\n : \"meterResult.temporalMeasurementId\"\n ),\n sceneStateId:\n requireNonEmptyString(\n result.sceneStateId,\n \"meterResult.sceneStateId\"\n ),\n meteringProfileId:\n requireNonEmptyString(\n result.profileId,\n \"meterResult.profileId\"\n )\n };\n}\n\nfunction validateCommonMeterResult(\n result:\n ExposureMeterTargetSourceResult\n): void {\n requireInputObject(result, \"result input\");\n if (\n result.scientificStatus !==\n \"approximation\"\n ) {\n throw new InvalidConfigurationError(\n 'meterResult.scientificStatus must be \"approximation\" for schema 0.1.0.'\n );\n }\n if (\n result.inputDomain !==\n \"relative-pre-exposure-linear-signal\"\n ) {\n throw new InvalidConfigurationError(\n 'meterResult.inputDomain must be \"relative-pre-exposure-linear-signal\".'\n );\n }\n if (\n result.exposureCompensationApplied !==\n false\n ) {\n throw new InvalidScientificInputError(\n \"meterResult must be the uncompensated base metering result.\"\n );\n }\n if (\n result.automaticExposureResolved !==\n false\n ) {\n throw new InvalidScientificInputError(\n \"meterResult must precede automatic exposure resolution.\"\n );\n }\n if (\n result.resultReusableForAeLock !==\n true\n ) {\n throw new InvalidScientificInputError(\n \"meterResult must preserve reusable meter-result identity.\"\n );\n }\n\n requirePositiveFinite(\n result.targetRelativeSignal,\n \"meterResult.targetRelativeSignal\"\n );\n requireNonNegativeFinite(\n result.meteredRelativeSignal,\n \"meterResult.meteredRelativeSignal\"\n );\n}\n\nfunction createBaseTargetFields(\n targetId: string,\n meterResult:\n ExposureMeterTargetSourceResult\n): ExposureMeterTargetBase {\n validateCommonMeterResult(\n meterResult\n );\n\n return {\n schemaVersion:\n EXPOSURE_METER_TARGET_SCHEMA_VERSION,\n targetId:\n requireNonEmptyString(\n targetId,\n \"targetId\"\n ),\n sourceMeterSnapshot:\n meterSnapshotIdentity(\n meterResult\n ),\n scientificStatus: \"approximation\",\n inputDomain:\n \"relative-pre-exposure-linear-signal\",\n baseTargetRelativeSignal:\n meterResult.targetRelativeSignal,\n meteredRelativeSignal:\n meterResult.meteredRelativeSignal,\n exposureCompensationStops: 0,\n exposureCompensationApplied:\n false,\n meterMeasurementMutated: false,\n sourceMeterSnapshotPreserved:\n true,\n resultReusableForAeLock: true,\n automaticExposureResolved: false,\n intendedConsumer:\n \"exposure-mode-resolver\"\n };\n}\n\n/**\n * Freezes one metering result into a stable relative exposure target, for\n * camera-control logic to use.\n *\n * The target copies the meter snapshot by value. Later changes to the scene or\n * light do not change it. This is what the engine provides for AE lock\n * (auto-exposure lock).\n */\nexport function createExposureMeterTargetFromMeteringResult(\n input:\n CreateExposureMeterTargetInput\n): ExposureMeterTarget {\n requireInputKeys(input, \"createExposureMeterTargetFromMeteringResult\", [\"targetId\", \"meterResult\"]);\n const base =\n createBaseTargetFields(\n input.targetId,\n input.meterResult\n );\n\n if (\n input.meterResult.status ===\n \"no-signal\"\n ) {\n if (\n input.meterResult\n .meteredRelativeSignal !== 0\n ) {\n throw new InvalidScientificInputError(\n \"A no-signal meter result must have meteredRelativeSignal equal to zero.\"\n );\n }\n return {\n ...base,\n status: \"no-signal\",\n baseRequiredExposureScaleResolved:\n false,\n baseExposureOffsetStopsResolved:\n false,\n requiredExposureScaleResolved:\n false,\n exposureOffsetStopsResolved:\n false\n };\n }\n\n const meteredRelativeSignal =\n requirePositiveFinite(\n input.meterResult\n .meteredRelativeSignal,\n \"meterResult.meteredRelativeSignal\"\n );\n const baseScale =\n base.baseTargetRelativeSignal /\n meteredRelativeSignal;\n if (\n !Number.isFinite(baseScale) ||\n baseScale <= 0\n ) {\n throw new InvalidScientificInputError(\n \"Base required exposure scale must remain finite and greater than zero.\"\n );\n }\n const baseStops =\n Math.log2(baseScale);\n if (!Number.isFinite(baseStops)) {\n throw new InvalidScientificInputError(\n \"Base exposure offset must remain finite.\"\n );\n }\n\n return {\n ...base,\n status: \"resolved\",\n baseRequiredExposureScaleToTarget:\n baseScale,\n baseExposureOffsetStopsToTarget:\n baseStops,\n requiredExposureScaleToTarget:\n baseScale,\n exposureOffsetStopsToTarget:\n baseStops\n };\n}\n\nfunction validateBaseTarget(\n target: ExposureMeterTarget\n): void {\n requireInputObject(target, \"target input\");\n if (\n target.schemaVersion !==\n EXPOSURE_METER_TARGET_SCHEMA_VERSION\n ) {\n throw new InvalidConfigurationError(\n 'baseTarget.schemaVersion must be \"' +\n EXPOSURE_METER_TARGET_SCHEMA_VERSION +\n '\".'\n );\n }\n requireNonEmptyString(\n target.targetId,\n \"baseTarget.targetId\"\n );\n requireInputObject(target.sourceMeterSnapshot, \"baseTarget.sourceMeterSnapshot\");\n requireNonEmptyString(\n target\n .sourceMeterSnapshot\n .measurementId,\n \"baseTarget.sourceMeterSnapshot.measurementId\"\n );\n requireNonEmptyString(\n target\n .sourceMeterSnapshot\n .sceneStateId,\n \"baseTarget.sourceMeterSnapshot.sceneStateId\"\n );\n requireNonEmptyString(\n target\n .sourceMeterSnapshot\n .meteringProfileId,\n \"baseTarget.sourceMeterSnapshot.meteringProfileId\"\n );\n if (\n target\n .sourceMeterSnapshot\n .sourceKind !==\n \"spatial-metering-result\" &&\n target\n .sourceMeterSnapshot\n .sourceKind !==\n \"temporal-metering-result\"\n ) {\n throw new InvalidConfigurationError(\n \"baseTarget.sourceMeterSnapshot.sourceKind is invalid.\"\n );\n }\n if (\n target.scientificStatus !==\n \"approximation\" ||\n target.inputDomain !==\n \"relative-pre-exposure-linear-signal\" ||\n target.meterMeasurementMutated !==\n false ||\n target.sourceMeterSnapshotPreserved !==\n true ||\n target.resultReusableForAeLock !==\n true ||\n target.automaticExposureResolved !==\n false ||\n target.intendedConsumer !==\n \"exposure-mode-resolver\"\n ) {\n throw new InvalidScientificInputError(\n \"baseTarget does not satisfy the exposure-meter target boundary.\"\n );\n }\n requirePositiveFinite(\n target.baseTargetRelativeSignal,\n \"baseTarget.baseTargetRelativeSignal\"\n );\n requireNonNegativeFinite(\n target.meteredRelativeSignal,\n \"baseTarget.meteredRelativeSignal\"\n );\n\n if (target.status === \"resolved\") {\n requirePositiveFinite(\n target\n .baseRequiredExposureScaleToTarget,\n \"baseTarget.baseRequiredExposureScaleToTarget\"\n );\n requireFinite(\n target\n .baseExposureOffsetStopsToTarget,\n \"baseTarget.baseExposureOffsetStopsToTarget\"\n );\n } else if (\n target.meteredRelativeSignal !== 0\n ) {\n throw new InvalidScientificInputError(\n \"A no-signal baseTarget must preserve zero meteredRelativeSignal.\"\n );\n }\n}\n\n/**\n * Sets an absolute exposure-compensation value on a frozen meter target.\n *\n * Compensation is always worked out again from the base target without\n * compensation, so repeated UI updates cannot build up floating-point or\n * control drift. Positive compensation asks for more exposure.\n */\nexport function setExposureCompensationOnMeterTarget(\n input:\n SetExposureCompensationOnMeterTargetInput\n): ExposureMeterTarget {\n requireInputKeys(input, \"setExposureCompensationOnMeterTarget\", [\"targetId\", \"baseTarget\", \"exposureCompensationStops\"]);\n validateBaseTarget(\n input.baseTarget\n );\n const targetId =\n requireNonEmptyString(\n input.targetId,\n \"targetId\"\n );\n if (\n targetId ===\n input.baseTarget.targetId\n ) {\n throw new InvalidScientificInputError(\n \"A compensated target must use a new targetId so changed control state cannot hide behind the same identity.\"\n );\n }\n\n const compensation =\n requireFinite(\n input.exposureCompensationStops,\n \"exposureCompensationStops\"\n );\n const common = {\n ...input.baseTarget,\n targetId,\n exposureCompensationStops:\n compensation,\n exposureCompensationApplied:\n compensation !== 0,\n meterMeasurementMutated:\n false as const,\n sourceMeterSnapshotPreserved:\n true as const,\n resultReusableForAeLock:\n true as const,\n automaticExposureResolved:\n false as const\n };\n\n if (\n input.baseTarget.status ===\n \"no-signal\"\n ) {\n return {\n ...common,\n status: \"no-signal\",\n baseRequiredExposureScaleResolved:\n false,\n baseExposureOffsetStopsResolved:\n false,\n requiredExposureScaleResolved:\n false,\n exposureOffsetStopsResolved:\n false\n };\n }\n\n const compensatedStops =\n input.baseTarget\n .baseExposureOffsetStopsToTarget +\n compensation;\n const compensatedScale =\n input.baseTarget\n .baseRequiredExposureScaleToTarget *\n Math.pow(2, compensation);\n\n if (\n !Number.isFinite(\n compensatedStops\n ) ||\n !Number.isFinite(\n compensatedScale\n ) ||\n compensatedScale <= 0\n ) {\n throw new InvalidScientificInputError(\n \"Compensated exposure target must remain finite and greater than zero.\"\n );\n }\n\n return {\n ...common,\n status: \"resolved\",\n baseRequiredExposureScaleToTarget:\n input.baseTarget\n .baseRequiredExposureScaleToTarget,\n baseExposureOffsetStopsToTarget:\n input.baseTarget\n .baseExposureOffsetStopsToTarget,\n requiredExposureScaleToTarget:\n compensatedScale,\n exposureOffsetStopsToTarget:\n compensatedStops\n };\n}\n"]}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
2
|
+
* Metering over time: a declared weighted time average of relative meter samples taken before the
|
|
3
|
+
* exposure (pre-exposure) and derived from scene radiance. Useful for flickering light.
|
|
4
|
+
*
|
|
5
|
+
* Each time sample must already be bound to one temporal illumination profile and one capture time.
|
|
6
|
+
* Times are measured from the first opening-boundary phase (when the shutter starts to open). Each
|
|
7
|
+
* time sample is metered spatially first, with the same declared profile. The resulting single
|
|
8
|
+
* values are then combined linearly using normalized time weights that the caller declares.
|
|
9
|
+
* @see docs/USAGE.md for the equations, units, coordinate conventions, known blockers and support
|
|
10
|
+
* limits.
|
|
9
11
|
*/
|
|
10
12
|
import { type CalculationResult } from "../core/calculation-result.js";
|
|
11
13
|
import { type ExposureMeteringPolicy, type ExposureMeteringProfile } from "./metering.js";
|
|
@@ -62,15 +64,14 @@ export type SceneRadianceTemporalExposureMeteringResult = (SceneRadianceTemporal
|
|
|
62
64
|
exposureOffsetStopsResolved: false;
|
|
63
65
|
});
|
|
64
66
|
/**
|
|
65
|
-
* Meters a declared weighted time
|
|
66
|
-
*
|
|
67
|
+
* Meters a declared weighted time average of relative pre-exposure samples
|
|
68
|
+
* derived from scene radiance.
|
|
67
69
|
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
* first
|
|
71
|
-
*
|
|
72
|
-
*
|
|
70
|
+
* Each time sample must already be bound to one temporal illumination profile
|
|
71
|
+
* and one capture time, measured from the first opening-boundary phase. Each
|
|
72
|
+
* time sample is metered spatially first, with the same declared profile. The
|
|
73
|
+
* resulting single values are then combined linearly using normalized time
|
|
74
|
+
* weights that the caller declares.
|
|
73
75
|
*/
|
|
74
76
|
export declare function meterSceneRadianceTemporalExposure(input: MeterSceneRadianceTemporalExposureInput): CalculationResult<SceneRadianceTemporalExposureMeteringResult>;
|
|
75
77
|
export {};
|
|
76
|
-
//# sourceMappingURL=metering-temporal.d.ts.map
|
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
3
|
+
* Metering over time: a declared weighted time average of relative meter samples taken before the
|
|
4
|
+
* exposure (pre-exposure) and derived from scene radiance. Useful for flickering light.
|
|
5
|
+
*
|
|
6
|
+
* Each time sample must already be bound to one temporal illumination profile and one capture time.
|
|
7
|
+
* Times are measured from the first opening-boundary phase (when the shutter starts to open). Each
|
|
8
|
+
* time sample is metered spatially first, with the same declared profile. The resulting single
|
|
9
|
+
* values are then combined linearly using normalized time weights that the caller declares.
|
|
10
|
+
* @see docs/USAGE.md for the equations, units, coordinate conventions, known blockers and support
|
|
11
|
+
* limits.
|
|
10
12
|
*/
|
|
11
13
|
import { approximationResult } from "../core/calculation-result.js";
|
|
12
14
|
import { InvalidScientificInputError } from "../core/validation.js";
|
|
13
15
|
import { meterRelativeExposure, parseExposureMeteringProfile } from "./metering.js";
|
|
16
|
+
import { requireInputKeys, requireInputObject } from "../core/record-validation.js";
|
|
17
|
+
import { InvalidConfigurationError } from "../core/configuration-error.js";
|
|
14
18
|
const NORMALIZED_WEIGHT_TOLERANCE = 1e-9;
|
|
15
19
|
function requireNonEmptyString(value, path) {
|
|
16
20
|
if (typeof value !== "string" ||
|
|
17
21
|
value.trim().length === 0) {
|
|
18
|
-
throw new
|
|
22
|
+
throw new InvalidConfigurationError(path + " must be a non-empty string.");
|
|
19
23
|
}
|
|
20
24
|
return value.trim();
|
|
21
25
|
}
|
|
@@ -49,30 +53,48 @@ function contextKey(sampleSet) {
|
|
|
49
53
|
});
|
|
50
54
|
}
|
|
51
55
|
/**
|
|
52
|
-
* Meters a declared weighted time
|
|
53
|
-
*
|
|
56
|
+
* Meters a declared weighted time average of relative pre-exposure samples
|
|
57
|
+
* derived from scene radiance.
|
|
54
58
|
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
* first
|
|
58
|
-
*
|
|
59
|
-
*
|
|
59
|
+
* Each time sample must already be bound to one temporal illumination profile
|
|
60
|
+
* and one capture time, measured from the first opening-boundary phase. Each
|
|
61
|
+
* time sample is metered spatially first, with the same declared profile. The
|
|
62
|
+
* resulting single values are then combined linearly using normalized time
|
|
63
|
+
* weights that the caller declares.
|
|
60
64
|
*/
|
|
61
65
|
export function meterSceneRadianceTemporalExposure(input) {
|
|
66
|
+
requireInputKeys(input, "meterSceneRadianceTemporalExposure", ["temporalMeasurementId", "profile", "policy", "temporalSamples"]);
|
|
62
67
|
const temporalMeasurementId = requireNonEmptyString(input.temporalMeasurementId, "temporalMeasurementId");
|
|
63
68
|
const profile = parseExposureMeteringProfile(input.profile);
|
|
69
|
+
if (profile.policy.kind ===
|
|
70
|
+
"highlight-priority") {
|
|
71
|
+
// A time average of per-snapshot quantiles is not the quantile of the time-averaged signal.
|
|
72
|
+
throw new InvalidScientificInputError("highlight-priority is a spatial quantile, not a linear signal mean; temporal averaging of snapshot quantiles is not defined by this model.");
|
|
73
|
+
}
|
|
74
|
+
requireInputObject(input.policy, "policy");
|
|
64
75
|
if (input.policy.kind !==
|
|
65
76
|
"weighted-time-average") {
|
|
66
|
-
throw new
|
|
77
|
+
throw new InvalidConfigurationError('policy.kind must be "weighted-time-average".');
|
|
67
78
|
}
|
|
68
79
|
if (input.policy.timeReference !==
|
|
69
80
|
"first-opening-boundary-phase") {
|
|
70
|
-
throw new
|
|
81
|
+
throw new InvalidConfigurationError('policy.timeReference must be "first-opening-boundary-phase".');
|
|
71
82
|
}
|
|
72
83
|
if (!Array.isArray(input.temporalSamples) ||
|
|
73
84
|
input.temporalSamples.length === 0) {
|
|
74
|
-
throw new
|
|
85
|
+
throw new InvalidConfigurationError("temporalSamples must be a non-empty array.");
|
|
75
86
|
}
|
|
87
|
+
input.temporalSamples.forEach((entry, index) => {
|
|
88
|
+
const path = "temporalSamples[" + index + "]";
|
|
89
|
+
requireInputObject(entry, path);
|
|
90
|
+
const sampleSet = entry.sampleSet;
|
|
91
|
+
requireInputObject(sampleSet, path + ".sampleSet");
|
|
92
|
+
requireInputObject(sampleSet.sourceContext, path + ".sampleSet.sourceContext");
|
|
93
|
+
requireInputObject(sampleSet.sourceContext.temporal, path + ".sampleSet.sourceContext.temporal");
|
|
94
|
+
requireInputObject(sampleSet.captureGeometry, path + ".sampleSet.captureGeometry");
|
|
95
|
+
requireInputObject(sampleSet.captureGeometry.orientedCapture, path + ".sampleSet.captureGeometry.orientedCapture");
|
|
96
|
+
requireInputObject(sampleSet.captureGeometry.activeCapture, path + ".sampleSet.captureGeometry.activeCapture");
|
|
97
|
+
});
|
|
76
98
|
const firstSampleSet = input.temporalSamples[0]
|
|
77
99
|
.sampleSet;
|
|
78
100
|
const firstContext = firstSampleSet.sourceContext;
|
|
@@ -198,7 +220,7 @@ export function meterSceneRadianceTemporalExposure(input) {
|
|
|
198
220
|
meteredRelativeSignal)
|
|
199
221
|
};
|
|
200
222
|
return approximationResult(result, "scene-radiance-relative-temporal-metering", "1.0.0", [
|
|
201
|
-
"Each temporal sample is a renderer/provider-supplied relative pre-exposure reduction bound to the same
|
|
223
|
+
"Each temporal sample is a renderer/provider-supplied relative pre-exposure reduction bound to the same scene-radiance provider context.",
|
|
202
224
|
"Spectral radiance is not converted to calibrated luminance or a camera spectral-meter response by this model.",
|
|
203
225
|
"Time averaging is explicit and linear in the declared relative pre-exposure signal domain.",
|
|
204
226
|
"Temporal sample weights are caller-declared, positive, normalized to one, and are not inferred from source waveform frequency or sensor readout timing.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metering-temporal.js","sourceRoot":"","sources":["../../src/exposure/metering-temporal.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"metering-temporal.js","sourceRoot":"","sources":["../../src/exposure/metering-temporal.ts"],"names":[],"mappings":"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","sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Metering over time: a declared weighted time average of relative meter samples taken before the\n * exposure (pre-exposure) and derived from scene radiance. Useful for flickering light.\n *\n * Each time sample must already be bound to one temporal illumination profile and one capture time.\n * Times are measured from the first opening-boundary phase (when the shutter starts to open). Each\n * time sample is metered spatially first, with the same declared profile. The resulting single\n * values are then combined linearly using normalized time weights that the caller declares.\n * @see docs/USAGE.md for the equations, units, coordinate conventions, known blockers and support\n * limits.\n */\n\nimport {\n approximationResult,\n type CalculationResult\n} from \"../core/calculation-result.js\";\nimport { InvalidScientificInputError } from \"../core/validation.js\";\nimport {\n meterRelativeExposure,\n parseExposureMeteringProfile,\n type ExposureMeteringPolicy,\n type ExposureMeteringProfile\n} from \"./metering.js\";\nimport type {\n SceneRadianceDerivedExposureMeteringSampleSet\n} from \"./metering-scene-radiance.js\";\nimport { requireInputKeys, requireInputObject } from \"../core/record-validation.js\";\nimport { InvalidConfigurationError } from \"../core/configuration-error.js\";\n\nconst NORMALIZED_WEIGHT_TOLERANCE =\n 1e-9;\n\nexport interface SceneRadianceTemporalMeteringSample {\n normalizedTimeWeight: number;\n sampleSet:\n SceneRadianceDerivedExposureMeteringSampleSet;\n}\n\nexport interface MeterSceneRadianceTemporalExposureInput {\n temporalMeasurementId: string;\n profile: ExposureMeteringProfile;\n policy: {\n kind: \"weighted-time-average\";\n timeReference:\n \"first-opening-boundary-phase\";\n };\n temporalSamples:\n readonly SceneRadianceTemporalMeteringSample[];\n}\n\ninterface SceneRadianceTemporalExposureMeteringResultBase {\n temporalMeasurementId: string;\n sceneStateId: string;\n profileId: string;\n scientificStatus: \"approximation\";\n inputDomain:\n \"relative-pre-exposure-linear-signal\";\n captureRegion:\n \"oriented-active-capture\";\n spatialPolicyKind:\n ExposureMeteringPolicy[\"kind\"];\n temporalPolicyKind:\n \"weighted-time-average\";\n timeReference:\n \"first-opening-boundary-phase\";\n temporalSampleCount: number;\n normalizedTimeWeightSum: number;\n captureTimeRangeSecondsFromReference: {\n minimum: number;\n maximum: number;\n };\n targetRelativeSignal: number;\n meteredRelativeSignal: number;\n outputCropUsedForMetering: false;\n exposureCompensationApplied: false;\n finalToneMappingUsed: false;\n displayGammaUsed: false;\n calibratedLuminanceClaimAuthorized:\n false;\n calibratedSceneRadianceClaimAuthorized:\n false;\n automaticExposureResolved: false;\n resultReusableForAeLock: true;\n temporalAveragingExplicit: true;\n flashTtlMeteringPerformed: false;\n}\n\nexport type SceneRadianceTemporalExposureMeteringResult =\n | (SceneRadianceTemporalExposureMeteringResultBase & {\n status: \"resolved\";\n requiredExposureScaleToTarget:\n number;\n exposureOffsetStopsToTarget:\n number;\n })\n | (SceneRadianceTemporalExposureMeteringResultBase & {\n status: \"no-signal\";\n requiredExposureScaleResolved:\n false;\n exposureOffsetStopsResolved:\n false;\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 requireNormalizedWeight(\n value: unknown,\n path: string\n): number {\n if (\n typeof value !== \"number\" ||\n !Number.isFinite(value) ||\n value <= 0 ||\n value > 1\n ) {\n throw new InvalidScientificInputError(\n path +\n \" must be finite and in (0, 1].\"\n );\n }\n return value;\n}\n\nfunction contextKey(\n sampleSet:\n SceneRadianceDerivedExposureMeteringSampleSet\n): string {\n const context =\n sampleSet.sourceContext;\n const geometry =\n sampleSet.captureGeometry;\n return JSON.stringify({\n sceneId: context.sceneId,\n sceneStateId:\n context.sceneStateId,\n providerProfileId:\n context.providerProfileId,\n illuminationProfileId:\n context.illuminationProfileId,\n materialResponseProfileId:\n context.materialResponseProfileId,\n derivationProfileId:\n context.derivationProfileId,\n materialResponseFidelity:\n context.materialResponseFidelity,\n orientation:\n geometry.orientedCapture\n .orientation,\n activeNativeRect:\n geometry.activeCapture.nativeRect,\n activeImagingArea:\n geometry.activeCapture.imagingArea,\n orientedImagingArea:\n geometry.orientedCapture\n .imagingArea\n });\n}\n\n/**\n * Meters a declared weighted time average of relative pre-exposure samples\n * derived from scene radiance.\n *\n * Each time sample must already be bound to one temporal illumination profile\n * and one capture time, measured from the first opening-boundary phase. Each\n * time sample is metered spatially first, with the same declared profile. The\n * resulting single values are then combined linearly using normalized time\n * weights that the caller declares.\n */\nexport function meterSceneRadianceTemporalExposure(\n input:\n MeterSceneRadianceTemporalExposureInput\n): CalculationResult<\n SceneRadianceTemporalExposureMeteringResult\n> {\n requireInputKeys(input, \"meterSceneRadianceTemporalExposure\", [\"temporalMeasurementId\", \"profile\", \"policy\", \"temporalSamples\"]);\n const temporalMeasurementId =\n requireNonEmptyString(\n input.temporalMeasurementId,\n \"temporalMeasurementId\"\n );\n\n const profile =\n parseExposureMeteringProfile(\n input.profile\n );\n\n if (\n profile.policy.kind ===\n \"highlight-priority\"\n ) {\n // A time average of per-snapshot quantiles is not the quantile of the time-averaged signal.\n throw new InvalidScientificInputError(\n \"highlight-priority is a spatial quantile, not a linear signal mean; temporal averaging of snapshot quantiles is not defined by this model.\"\n );\n }\n requireInputObject(input.policy, \"policy\");\n if (\n input.policy.kind !==\n \"weighted-time-average\"\n ) {\n throw new InvalidConfigurationError(\n 'policy.kind must be \"weighted-time-average\".'\n );\n }\n if (\n input.policy.timeReference !==\n \"first-opening-boundary-phase\"\n ) {\n throw new InvalidConfigurationError(\n 'policy.timeReference must be \"first-opening-boundary-phase\".'\n );\n }\n if (\n !Array.isArray(\n input.temporalSamples\n ) ||\n input.temporalSamples.length === 0\n ) {\n throw new InvalidConfigurationError(\n \"temporalSamples must be a non-empty array.\"\n );\n }\n\n input.temporalSamples.forEach((entry, index) => {\n const path = \"temporalSamples[\" + index + \"]\";\n requireInputObject(entry, path);\n const sampleSet = entry.sampleSet;\n requireInputObject(sampleSet, path + \".sampleSet\");\n requireInputObject(sampleSet.sourceContext, path + \".sampleSet.sourceContext\");\n requireInputObject(sampleSet.sourceContext.temporal, path + \".sampleSet.sourceContext.temporal\");\n requireInputObject(sampleSet.captureGeometry, path + \".sampleSet.captureGeometry\");\n requireInputObject(sampleSet.captureGeometry.orientedCapture, path + \".sampleSet.captureGeometry.orientedCapture\");\n requireInputObject(sampleSet.captureGeometry.activeCapture, path + \".sampleSet.captureGeometry.activeCapture\");\n });\n const firstSampleSet =\n input.temporalSamples[0]!\n .sampleSet;\n const firstContext =\n firstSampleSet.sourceContext;\n if (\n firstContext.temporal.kind !==\n \"registered-time-varying\"\n ) {\n throw new InvalidScientificInputError(\n \"Temporal metering requires scene-radiance sample sets with registered-time-varying source context.\"\n );\n }\n\n const expectedContextKey =\n contextKey(firstSampleSet);\n const sceneStateId =\n firstSampleSet.sceneStateId;\n const temporalProfileId =\n firstContext.temporal\n .illuminationTemporalProfileId;\n\n let weightSum = 0;\n let meteredRelativeSignal = 0;\n let previousTime =\n Number.NEGATIVE_INFINITY;\n let minimumTime =\n Number.POSITIVE_INFINITY;\n let maximumTime =\n Number.NEGATIVE_INFINITY;\n\n for (\n let index = 0;\n index <\n input.temporalSamples.length;\n index += 1\n ) {\n const entry =\n input.temporalSamples[index]!;\n const path =\n \"temporalSamples[\" +\n index +\n \"]\";\n const weight =\n requireNormalizedWeight(\n entry.normalizedTimeWeight,\n path +\n \".normalizedTimeWeight\"\n );\n const sampleSet =\n entry.sampleSet;\n const context =\n sampleSet.sourceContext;\n\n if (\n context.temporal.kind !==\n \"registered-time-varying\"\n ) {\n throw new InvalidScientificInputError(\n path +\n \".sampleSet must use registered-time-varying source context.\"\n );\n }\n if (\n context.temporal\n .illuminationTemporalProfileId !==\n temporalProfileId\n ) {\n throw new InvalidScientificInputError(\n \"All temporal metering samples must bind the same illuminationTemporalProfileId.\"\n );\n }\n if (\n sampleSet.sceneStateId !==\n sceneStateId ||\n context.sceneStateId !==\n sceneStateId\n ) {\n throw new InvalidScientificInputError(\n \"All temporal metering samples must bind the same sceneStateId.\"\n );\n }\n if (\n contextKey(sampleSet) !==\n expectedContextKey\n ) {\n throw new InvalidScientificInputError(\n \"All temporal metering samples must share the same scene/provider/material/derivation/capture-geometry context.\"\n );\n }\n\n const captureTime =\n context.temporal\n .captureTimeSecondsFromReference;\n if (\n !Number.isFinite(captureTime)\n ) {\n throw new InvalidScientificInputError(\n path +\n \" capture time must be finite.\"\n );\n }\n if (\n captureTime <= previousTime\n ) {\n throw new InvalidScientificInputError(\n \"Temporal metering capture times must be strictly increasing.\"\n );\n }\n previousTime = captureTime;\n minimumTime = Math.min(\n minimumTime,\n captureTime\n );\n maximumTime = Math.max(\n maximumTime,\n captureTime\n );\n\n const spatialMeter =\n meterRelativeExposure({\n profile,\n sampleSet\n });\n meteredRelativeSignal +=\n spatialMeter.value\n .meteredRelativeSignal *\n weight;\n weightSum += weight;\n }\n\n if (\n !Number.isFinite(weightSum) ||\n Math.abs(weightSum - 1) >\n NORMALIZED_WEIGHT_TOLERANCE\n ) {\n throw new InvalidScientificInputError(\n \"temporalSamples normalizedTimeWeight values must sum to 1.\"\n );\n }\n if (\n !Number.isFinite(\n meteredRelativeSignal\n ) ||\n meteredRelativeSignal < 0\n ) {\n throw new InvalidScientificInputError(\n \"Temporal metered relative signal must remain finite and non-negative.\"\n );\n }\n\n const base = {\n temporalMeasurementId,\n sceneStateId,\n profileId:\n profile.profileId,\n scientificStatus:\n \"approximation\" as const,\n inputDomain:\n \"relative-pre-exposure-linear-signal\" as const,\n captureRegion:\n \"oriented-active-capture\" as const,\n spatialPolicyKind:\n profile.policy.kind,\n temporalPolicyKind:\n \"weighted-time-average\" as const,\n timeReference:\n \"first-opening-boundary-phase\" as const,\n temporalSampleCount:\n input.temporalSamples.length,\n normalizedTimeWeightSum: 1,\n captureTimeRangeSecondsFromReference: {\n minimum: minimumTime,\n maximum: maximumTime\n },\n targetRelativeSignal:\n profile.target\n .targetRelativeSignal,\n meteredRelativeSignal,\n outputCropUsedForMetering:\n false as const,\n exposureCompensationApplied:\n false as const,\n finalToneMappingUsed:\n false as const,\n displayGammaUsed:\n false as const,\n calibratedLuminanceClaimAuthorized:\n false as const,\n calibratedSceneRadianceClaimAuthorized:\n false as const,\n automaticExposureResolved:\n false as const,\n resultReusableForAeLock:\n true as const,\n temporalAveragingExplicit:\n true as const,\n flashTtlMeteringPerformed:\n false as const\n };\n\n const result:\n SceneRadianceTemporalExposureMeteringResult =\n meteredRelativeSignal === 0\n ? {\n ...base,\n status: \"no-signal\",\n requiredExposureScaleResolved:\n false,\n exposureOffsetStopsResolved:\n false\n }\n : {\n ...base,\n status: \"resolved\",\n requiredExposureScaleToTarget:\n profile.target\n .targetRelativeSignal /\n meteredRelativeSignal,\n exposureOffsetStopsToTarget:\n Math.log2(\n profile.target\n .targetRelativeSignal /\n meteredRelativeSignal\n )\n };\n\n return approximationResult(\n result,\n \"scene-radiance-relative-temporal-metering\",\n \"1.0.0\",\n [\n \"Each temporal sample is a renderer/provider-supplied relative pre-exposure reduction bound to the same scene-radiance provider context.\",\n \"Spectral radiance is not converted to calibrated luminance or a camera spectral-meter response by this model.\",\n \"Time averaging is explicit and linear in the declared relative pre-exposure signal domain.\",\n \"Temporal sample weights are caller-declared, positive, normalized to one, and are not inferred from source waveform frequency or sensor readout timing.\",\n \"All temporal samples share one committed sceneStateId and one provider/material/derivation/capture-geometry context.\",\n \"Exposure compensation and automatic aperture/shutter/ISO resolution remain downstream.\",\n \"This ambient meter does not implement flash/TTL metering.\"\n ]\n );\n}\n"]}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
2
|
+
* Generic relative exposure metering.
|
|
3
|
+
*
|
|
4
|
+
* The profile parser reads one metering profile. Schema 0.1.0 is an approximation only. It works on
|
|
5
|
+
* relative linear signal measured before the exposure (pre-exposure). It deliberately does not claim
|
|
6
|
+
* luminance, spectral radiance, sensor-plane irradiance or any manufacturer's meter calibration.
|
|
7
|
+
*
|
|
8
|
+
* The meter works over the actual active capture frame, in its capture orientation. This first
|
|
9
|
+
* contract is an educational, relative approximation. It deliberately ignores the final output crop,
|
|
10
|
+
* display and tone mapping, exposure compensation and the choice of automatic exposure settings.
|
|
11
|
+
* @see docs/USAGE.md for the equations, units, coordinate conventions, known blockers and support
|
|
12
|
+
* limits.
|
|
10
13
|
*/
|
|
11
14
|
import { type CalculationResult } from "../core/calculation-result.js";
|
|
12
15
|
import { type EvidenceProvenance } from "../core/evidence-provenance.js";
|
|
@@ -23,10 +26,47 @@ export type ExposureMeteringPolicy = {
|
|
|
23
26
|
centerOrientedCaptureUv: NormalizedRasterUv;
|
|
24
27
|
radiusFractionOfCaptureDiagonal: number;
|
|
25
28
|
} | {
|
|
29
|
+
/**
|
|
30
|
+
* Weighted average that emphasises highlights (unchanged since 1.x).
|
|
31
|
+
* Brighter samples get the weight `minimumWeightFraction + (1 -
|
|
32
|
+
* minimumWeightFraction) * (signal / maximum)^exponent`. The weighted mean
|
|
33
|
+
* is then placed at the profile target.
|
|
34
|
+
*
|
|
35
|
+
* This is NOT highlight protection. No sample is placed relative to
|
|
36
|
+
* saturation. In a mostly mid-grey scene with a small bright area, it
|
|
37
|
+
* underexposes the mid-tones compared with uniform metering, yet does not
|
|
38
|
+
* guarantee headroom. Use `highlight-priority` to keep highlights below
|
|
39
|
+
* saturation.
|
|
40
|
+
*/
|
|
26
41
|
kind: "highlight-weighted";
|
|
27
42
|
minimumWeightFraction: number;
|
|
28
43
|
exponent: number;
|
|
44
|
+
} | {
|
|
45
|
+
/**
|
|
46
|
+
* Highlight-priority placement. The area-weighted `highlightPercentile`
|
|
47
|
+
* quantile of the relative pre-exposure signal is placed `headroomStops`
|
|
48
|
+
* below `saturationRelativeSignal`. The profile target must state that
|
|
49
|
+
* placement exactly: `targetRelativeSignal = saturationRelativeSignal *
|
|
50
|
+
* 2^-headroomStops` (see {@link calculateHighlightPriorityPlacementSignal}).
|
|
51
|
+
*/
|
|
52
|
+
kind: "highlight-priority";
|
|
53
|
+
/** Area-weighted quantile in (0, 1]; 1 places the brightest sample. */
|
|
54
|
+
highlightPercentile: number;
|
|
55
|
+
/** Relative pre-exposure signal at which the declared output saturates. */
|
|
56
|
+
saturationRelativeSignal: number;
|
|
57
|
+
/** Non-negative headroom in stops between the placed highlight and saturation. */
|
|
58
|
+
headroomStops: number;
|
|
29
59
|
};
|
|
60
|
+
/** Diagnostics reported only for the highlight-priority policy. */
|
|
61
|
+
export interface HighlightPriorityMeteringDiagnostics {
|
|
62
|
+
highlightPercentile: number;
|
|
63
|
+
/** Lower area-weighted quantile (inverse empirical CDF) of the samples. */
|
|
64
|
+
percentileRelativeSignal: number;
|
|
65
|
+
saturationRelativeSignal: number;
|
|
66
|
+
headroomStops: number;
|
|
67
|
+
placementRelativeSignal: number;
|
|
68
|
+
quantileDefinition: "area-weighted-lower-quantile-inverse-empirical-cdf";
|
|
69
|
+
}
|
|
30
70
|
export interface ExposureMeteringProfile {
|
|
31
71
|
schemaVersion: typeof EXPOSURE_METERING_PROFILE_SCHEMA_VERSION;
|
|
32
72
|
profileId: string;
|
|
@@ -89,6 +129,8 @@ interface ExposureMeteringResultBase {
|
|
|
89
129
|
calibratedSceneRadianceClaimAuthorized: false;
|
|
90
130
|
automaticExposureResolved: false;
|
|
91
131
|
resultReusableForAeLock: true;
|
|
132
|
+
/** Present only for the highlight-priority policy. */
|
|
133
|
+
highlightPriority?: HighlightPriorityMeteringDiagnostics;
|
|
92
134
|
}
|
|
93
135
|
export type ExposureMeteringResult = (ExposureMeteringResultBase & {
|
|
94
136
|
status: "resolved";
|
|
@@ -103,22 +145,27 @@ export interface MeterRelativeExposureInput {
|
|
|
103
145
|
profile: ExposureMeteringProfile;
|
|
104
146
|
sampleSet: ExposureMeteringSampleSet;
|
|
105
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* Relative signal at which a highlight-priority profile places its highlight
|
|
150
|
+
* percentile: `saturationRelativeSignal * 2^-headroomStops`.
|
|
151
|
+
*/
|
|
152
|
+
export declare function calculateHighlightPriorityPlacementSignal(saturationRelativeSignal: number, headroomStops: number): number;
|
|
106
153
|
/**
|
|
107
154
|
* Parses one generic relative exposure-metering profile.
|
|
108
155
|
*
|
|
109
|
-
* Schema 0.1.0 is approximation
|
|
110
|
-
*
|
|
111
|
-
* sensor-plane irradiance
|
|
156
|
+
* Schema 0.1.0 is an approximation only. It works on relative linear signal
|
|
157
|
+
* measured before the exposure. It deliberately does not claim luminance,
|
|
158
|
+
* spectral radiance, sensor-plane irradiance or any manufacturer's meter
|
|
159
|
+
* calibration.
|
|
112
160
|
*/
|
|
113
161
|
export declare function parseExposureMeteringProfile(value: unknown): ExposureMeteringProfile;
|
|
114
162
|
/**
|
|
115
|
-
* Meters relative pre-exposure linear signal over the actual
|
|
116
|
-
* capture
|
|
163
|
+
* Meters relative pre-exposure linear signal over the actual active capture
|
|
164
|
+
* frame, in its capture orientation.
|
|
117
165
|
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
* exposure compensation
|
|
166
|
+
* This first contract is an educational, relative approximation. It
|
|
167
|
+
* deliberately ignores the final output crop, display and tone mapping,
|
|
168
|
+
* exposure compensation and the choice of automatic exposure settings.
|
|
121
169
|
*/
|
|
122
170
|
export declare function meterRelativeExposure(input: MeterRelativeExposureInput): CalculationResult<ExposureMeteringResult>;
|
|
123
171
|
export {};
|
|
124
|
-
//# sourceMappingURL=metering.d.ts.map
|