@photivra/engine 0.6.0 → 1.0.1
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/AGENTS.md +674 -0
- package/CHANGELOG.md +191 -0
- package/CITATION.cff +1 -1
- package/CONTRIBUTING.md +76 -0
- package/DCO +33 -0
- package/NODE_SUPPORT.md +37 -0
- package/NOTICE +2 -0
- package/README.md +139 -72
- package/SECURITY.md +55 -0
- package/THIRD_PARTY.md +63 -0
- package/dist/camera/equivalent-focal-length.d.ts +9 -0
- package/dist/camera/equivalent-focal-length.d.ts.map +1 -1
- package/dist/camera/equivalent-focal-length.js +9 -0
- package/dist/camera/equivalent-focal-length.js.map +1 -1
- package/dist/camera/field-of-view.d.ts +13 -0
- package/dist/camera/field-of-view.d.ts.map +1 -1
- package/dist/camera/field-of-view.js +13 -0
- package/dist/camera/field-of-view.js.map +1 -1
- package/dist/camera/projected-object-size.d.ts +8 -0
- package/dist/camera/projected-object-size.d.ts.map +1 -1
- package/dist/camera/projected-object-size.js +8 -0
- package/dist/camera/projected-object-size.js.map +1 -1
- package/dist/capture/capture-export-metadata.d.ts +60 -0
- package/dist/capture/capture-export-metadata.d.ts.map +1 -0
- package/dist/capture/capture-export-metadata.js +62 -0
- package/dist/capture/capture-export-metadata.js.map +1 -0
- package/dist/capture/environment-raw-producer.d.ts +55 -0
- package/dist/capture/environment-raw-producer.d.ts.map +1 -0
- package/dist/capture/environment-raw-producer.js +88 -0
- package/dist/capture/environment-raw-producer.js.map +1 -0
- package/dist/capture/export-jpeg.d.ts +12 -0
- package/dist/capture/export-jpeg.d.ts.map +1 -0
- package/dist/capture/export-jpeg.js +126 -0
- package/dist/capture/export-jpeg.js.map +1 -0
- package/dist/capture/export-tiff.d.ts +45 -0
- package/dist/capture/export-tiff.d.ts.map +1 -0
- package/dist/capture/export-tiff.js +129 -0
- package/dist/capture/export-tiff.js.map +1 -0
- package/dist/capture/focus-control.d.ts +210 -0
- package/dist/capture/focus-control.d.ts.map +1 -0
- package/dist/capture/focus-control.js +664 -0
- package/dist/capture/focus-control.js.map +1 -0
- package/dist/capture/linear-encoding.d.ts +59 -0
- package/dist/capture/linear-encoding.d.ts.map +1 -0
- package/dist/capture/linear-encoding.js +98 -0
- package/dist/capture/linear-encoding.js.map +1 -0
- package/dist/capture/photographic-export.d.ts +135 -0
- package/dist/capture/photographic-export.d.ts.map +1 -0
- package/dist/capture/photographic-export.js +273 -0
- package/dist/capture/photographic-export.js.map +1 -0
- package/dist/capture/raw-frame-limits.d.ts +12 -0
- package/dist/capture/raw-frame-limits.d.ts.map +1 -0
- package/dist/capture/raw-frame-limits.js +13 -0
- package/dist/capture/raw-frame-limits.js.map +1 -0
- package/dist/capture/raw-frame-reconstruction.d.ts +48 -0
- package/dist/capture/raw-frame-reconstruction.d.ts.map +1 -0
- package/dist/capture/raw-frame-reconstruction.js +146 -0
- package/dist/capture/raw-frame-reconstruction.js.map +1 -0
- package/dist/capture/release-sequence.d.ts +120 -0
- package/dist/capture/release-sequence.d.ts.map +1 -0
- package/dist/capture/release-sequence.js +446 -0
- package/dist/capture/release-sequence.js.map +1 -0
- package/dist/capture/sensor-raw-frame.d.ts +34 -0
- package/dist/capture/sensor-raw-frame.d.ts.map +1 -0
- package/dist/capture/sensor-raw-frame.js +106 -0
- package/dist/capture/sensor-raw-frame.js.map +1 -0
- package/dist/capture/sensor-raw-producer.d.ts +51 -0
- package/dist/capture/sensor-raw-producer.d.ts.map +1 -0
- package/dist/capture/sensor-raw-producer.js +235 -0
- package/dist/capture/sensor-raw-producer.js.map +1 -0
- package/dist/capture/simulated-capture.d.ts +125 -0
- package/dist/capture/simulated-capture.d.ts.map +1 -0
- package/dist/capture/simulated-capture.js +248 -0
- package/dist/capture/simulated-capture.js.map +1 -0
- package/dist/color/capture-color.d.ts +73 -0
- package/dist/color/capture-color.d.ts.map +1 -0
- package/dist/color/capture-color.js +145 -0
- package/dist/color/capture-color.js.map +1 -0
- package/dist/color/sensor-color-development.d.ts +23 -0
- package/dist/color/sensor-color-development.d.ts.map +1 -0
- package/dist/color/sensor-color-development.js +56 -0
- package/dist/color/sensor-color-development.js.map +1 -0
- package/dist/color/white-balance.d.ts +175 -0
- package/dist/color/white-balance.d.ts.map +1 -0
- package/dist/color/white-balance.js +606 -0
- package/dist/color/white-balance.js.map +1 -0
- package/dist/composition/image-formation-plan.d.ts +481 -0
- package/dist/composition/image-formation-plan.d.ts.map +1 -0
- package/dist/composition/image-formation-plan.js +2499 -0
- package/dist/composition/image-formation-plan.js.map +1 -0
- package/dist/composition/plan-consumer.d.ts +53 -0
- package/dist/composition/plan-consumer.d.ts.map +1 -0
- package/dist/composition/plan-consumer.js +119 -0
- package/dist/composition/plan-consumer.js.map +1 -0
- package/dist/core/calculation-result.d.ts.map +1 -1
- package/dist/core/calculation-result.js +6 -0
- package/dist/core/calculation-result.js.map +1 -1
- package/dist/core/canonical-json.d.ts +18 -0
- package/dist/core/canonical-json.d.ts.map +1 -0
- package/dist/core/canonical-json.js +44 -0
- package/dist/core/canonical-json.js.map +1 -0
- package/dist/core/configuration-error.d.ts +6 -0
- package/dist/core/configuration-error.d.ts.map +1 -1
- package/dist/core/configuration-error.js +6 -0
- package/dist/core/configuration-error.js.map +1 -1
- package/dist/core/evidence-provenance.d.ts +6 -0
- package/dist/core/evidence-provenance.d.ts.map +1 -1
- package/dist/core/evidence-provenance.js +7 -0
- package/dist/core/evidence-provenance.js.map +1 -1
- package/dist/core/image-formation.d.ts +9 -3
- package/dist/core/image-formation.d.ts.map +1 -1
- package/dist/core/image-formation.js +29 -5
- package/dist/core/image-formation.js.map +1 -1
- package/dist/core/owned-data.d.ts +25 -0
- package/dist/core/owned-data.d.ts.map +1 -0
- package/dist/core/owned-data.js +34 -0
- package/dist/core/owned-data.js.map +1 -0
- package/dist/core/record-validation.d.ts +17 -0
- package/dist/core/record-validation.d.ts.map +1 -0
- package/dist/core/record-validation.js +44 -0
- package/dist/core/record-validation.js.map +1 -0
- package/dist/core/scientific-assurance.d.ts +101 -0
- package/dist/core/scientific-assurance.d.ts.map +1 -0
- package/dist/core/scientific-assurance.js +301 -0
- package/dist/core/scientific-assurance.js.map +1 -0
- package/dist/core/spectral-composition.d.ts +106 -0
- package/dist/core/spectral-composition.d.ts.map +1 -0
- package/dist/core/spectral-composition.js +334 -0
- package/dist/core/spectral-composition.js.map +1 -0
- package/dist/core/spectral.d.ts +34 -0
- package/dist/core/spectral.d.ts.map +1 -0
- package/dist/core/spectral.js +57 -0
- package/dist/core/spectral.js.map +1 -0
- package/dist/core/validation.d.ts +6 -0
- package/dist/core/validation.d.ts.map +1 -1
- package/dist/core/validation.js +6 -0
- package/dist/core/validation.js.map +1 -1
- package/dist/core/version.d.ts +9 -0
- package/dist/core/version.d.ts.map +1 -0
- package/dist/core/version.js +10 -0
- package/dist/core/version.js.map +1 -0
- package/dist/equipment/exposure-capabilities.d.ts +125 -0
- package/dist/equipment/exposure-capabilities.d.ts.map +1 -0
- package/dist/equipment/exposure-capabilities.js +391 -0
- package/dist/equipment/exposure-capabilities.js.map +1 -0
- package/dist/equipment/generic-tier-assets.d.ts +82 -0
- package/dist/equipment/generic-tier-assets.d.ts.map +1 -0
- package/dist/equipment/generic-tier-assets.js +119 -0
- package/dist/equipment/generic-tier-assets.js.map +1 -0
- package/dist/equipment/generic-tier-presets.d.ts +57 -0
- package/dist/equipment/generic-tier-presets.d.ts.map +1 -0
- package/dist/equipment/generic-tier-presets.js +122 -0
- package/dist/equipment/generic-tier-presets.js.map +1 -0
- package/dist/equipment/iso-capabilities.d.ts +143 -0
- package/dist/equipment/iso-capabilities.d.ts.map +1 -0
- package/dist/equipment/iso-capabilities.js +578 -0
- package/dist/equipment/iso-capabilities.js.map +1 -0
- package/dist/equipment/metering-capabilities.d.ts +58 -0
- package/dist/equipment/metering-capabilities.d.ts.map +1 -0
- package/dist/equipment/metering-capabilities.js +151 -0
- package/dist/equipment/metering-capabilities.js.map +1 -0
- package/dist/equipment/release-capabilities.d.ts +33 -0
- package/dist/equipment/release-capabilities.d.ts.map +1 -0
- package/dist/equipment/release-capabilities.js +176 -0
- package/dist/equipment/release-capabilities.js.map +1 -0
- package/dist/exposure/exposure-duration-control.d.ts +72 -0
- package/dist/exposure/exposure-duration-control.d.ts.map +1 -0
- package/dist/exposure/exposure-duration-control.js +161 -0
- package/dist/exposure/exposure-duration-control.js.map +1 -0
- package/dist/exposure/exposure-mode-resolver.d.ts +637 -0
- package/dist/exposure/exposure-mode-resolver.d.ts.map +1 -0
- package/dist/exposure/exposure-mode-resolver.js +1905 -0
- package/dist/exposure/exposure-mode-resolver.js.map +1 -0
- package/dist/exposure/exposure.d.ts +8 -0
- package/dist/exposure/exposure.d.ts.map +1 -1
- package/dist/exposure/exposure.js +8 -0
- package/dist/exposure/exposure.js.map +1 -1
- package/dist/exposure/flash.d.ts +179 -0
- package/dist/exposure/flash.d.ts.map +1 -0
- package/dist/exposure/flash.js +644 -0
- package/dist/exposure/flash.js.map +1 -0
- package/dist/exposure/metering-scene-radiance.d.ts +72 -0
- package/dist/exposure/metering-scene-radiance.d.ts.map +1 -0
- package/dist/exposure/metering-scene-radiance.js +222 -0
- package/dist/exposure/metering-scene-radiance.js.map +1 -0
- package/dist/exposure/metering-target.d.ts +67 -0
- package/dist/exposure/metering-target.d.ts.map +1 -0
- package/dist/exposure/metering-target.js +265 -0
- package/dist/exposure/metering-target.js.map +1 -0
- package/dist/exposure/metering-temporal.d.ts +76 -0
- package/dist/exposure/metering-temporal.d.ts.map +1 -0
- package/dist/exposure/metering-temporal.js +210 -0
- package/dist/exposure/metering-temporal.js.map +1 -0
- package/dist/exposure/metering.d.ts +124 -0
- package/dist/exposure/metering.d.ts.map +1 -0
- package/dist/exposure/metering.js +422 -0
- package/dist/exposure/metering.js.map +1 -0
- package/dist/exposure/program-line.d.ts +29 -0
- package/dist/exposure/program-line.d.ts.map +1 -0
- package/dist/exposure/program-line.js +126 -0
- package/dist/exposure/program-line.js.map +1 -0
- package/dist/index.d.ts +87 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +85 -6
- package/dist/index.js.map +1 -1
- package/dist/motion/camera-rotation.d.ts +16 -0
- package/dist/motion/camera-rotation.d.ts.map +1 -1
- package/dist/motion/camera-rotation.js +16 -0
- package/dist/motion/camera-rotation.js.map +1 -1
- package/dist/motion/capture-rotation-inverse-mapping.d.ts +13 -0
- package/dist/motion/capture-rotation-inverse-mapping.d.ts.map +1 -1
- package/dist/motion/capture-rotation-inverse-mapping.js +13 -0
- package/dist/motion/capture-rotation-inverse-mapping.js.map +1 -1
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts +15 -0
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts.map +1 -1
- package/dist/motion/capture-rotation-temporal-quadrature.js +15 -0
- package/dist/motion/capture-rotation-temporal-quadrature.js.map +1 -1
- package/dist/motion/capture-rotation-trajectory.d.ts +15 -0
- package/dist/motion/capture-rotation-trajectory.d.ts.map +1 -1
- package/dist/motion/capture-rotation-trajectory.js +15 -0
- package/dist/motion/capture-rotation-trajectory.js.map +1 -1
- package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts +119 -0
- package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts.map +1 -0
- package/dist/motion/capture-translation-parallax-temporal-quadrature.js +263 -0
- package/dist/motion/capture-translation-parallax-temporal-quadrature.js.map +1 -0
- package/dist/motion/extended-object-projection.d.ts +175 -0
- package/dist/motion/extended-object-projection.d.ts.map +1 -0
- package/dist/motion/extended-object-projection.js +402 -0
- package/dist/motion/extended-object-projection.js.map +1 -0
- package/dist/motion/projected-motion.d.ts +11 -0
- package/dist/motion/projected-motion.d.ts.map +1 -1
- package/dist/motion/projected-motion.js +11 -0
- package/dist/motion/projected-motion.js.map +1 -1
- package/dist/optics/aperture.d.ts +9 -0
- package/dist/optics/aperture.d.ts.map +1 -1
- package/dist/optics/aperture.js +9 -0
- package/dist/optics/aperture.js.map +1 -1
- package/dist/optics/circle-of-confusion.d.ts +8 -0
- package/dist/optics/circle-of-confusion.d.ts.map +1 -1
- package/dist/optics/circle-of-confusion.js +8 -0
- package/dist/optics/circle-of-confusion.js.map +1 -1
- package/dist/optics/complex-pupil-psf.d.ts +128 -0
- package/dist/optics/complex-pupil-psf.d.ts.map +1 -0
- package/dist/optics/complex-pupil-psf.js +462 -0
- package/dist/optics/complex-pupil-psf.js.map +1 -0
- package/dist/optics/depth-of-field.d.ts +18 -0
- package/dist/optics/depth-of-field.d.ts.map +1 -1
- package/dist/optics/depth-of-field.js +29 -4
- package/dist/optics/depth-of-field.js.map +1 -1
- package/dist/optics/diffraction.d.ts +8 -0
- package/dist/optics/diffraction.d.ts.map +1 -1
- package/dist/optics/diffraction.js +8 -0
- package/dist/optics/diffraction.js.map +1 -1
- package/dist/optics/focus-breathing.d.ts +13 -0
- package/dist/optics/focus-breathing.d.ts.map +1 -1
- package/dist/optics/focus-breathing.js +13 -0
- package/dist/optics/focus-breathing.js.map +1 -1
- package/dist/optics/focus-state.d.ts +47 -0
- package/dist/optics/focus-state.d.ts.map +1 -0
- package/dist/optics/focus-state.js +78 -0
- package/dist/optics/focus-state.js.map +1 -0
- package/dist/optics/front-of-lens-filter.d.ts +114 -0
- package/dist/optics/front-of-lens-filter.d.ts.map +1 -0
- package/dist/optics/front-of-lens-filter.js +468 -0
- package/dist/optics/front-of-lens-filter.js.map +1 -0
- package/dist/optics/illumination-vignetting.d.ts +9 -0
- package/dist/optics/illumination-vignetting.d.ts.map +1 -1
- package/dist/optics/illumination-vignetting.js +9 -0
- package/dist/optics/illumination-vignetting.js.map +1 -1
- package/dist/optics/lateral-chromatic-aberration.d.ts +11 -0
- package/dist/optics/lateral-chromatic-aberration.d.ts.map +1 -1
- package/dist/optics/lateral-chromatic-aberration.js +11 -0
- package/dist/optics/lateral-chromatic-aberration.js.map +1 -1
- package/dist/optics/lens-psf-profile.d.ts +217 -0
- package/dist/optics/lens-psf-profile.d.ts.map +1 -0
- package/dist/optics/lens-psf-profile.js +823 -0
- package/dist/optics/lens-psf-profile.js.map +1 -0
- package/dist/optics/polygon-diffraction.d.ts +67 -0
- package/dist/optics/polygon-diffraction.d.ts.map +1 -0
- package/dist/optics/polygon-diffraction.js +145 -0
- package/dist/optics/polygon-diffraction.js.map +1 -0
- package/dist/optics/profile-contract.d.ts +42 -0
- package/dist/optics/profile-contract.d.ts.map +1 -0
- package/dist/optics/profile-contract.js +92 -0
- package/dist/optics/profile-contract.js.map +1 -0
- package/dist/optics/psf-foundation.d.ts +16 -3
- package/dist/optics/psf-foundation.d.ts.map +1 -1
- package/dist/optics/psf-foundation.js +28 -15
- package/dist/optics/psf-foundation.js.map +1 -1
- package/dist/optics/radial-distortion.d.ts +18 -0
- package/dist/optics/radial-distortion.d.ts.map +1 -1
- package/dist/optics/radial-distortion.js +18 -0
- package/dist/optics/radial-distortion.js.map +1 -1
- package/dist/optics/scene-to-sensor-irradiance.d.ts +213 -0
- package/dist/optics/scene-to-sensor-irradiance.d.ts.map +1 -0
- package/dist/optics/scene-to-sensor-irradiance.js +662 -0
- package/dist/optics/scene-to-sensor-irradiance.js.map +1 -0
- package/dist/optics/scene-to-sensor-quadrature.d.ts +63 -0
- package/dist/optics/scene-to-sensor-quadrature.d.ts.map +1 -0
- package/dist/optics/scene-to-sensor-quadrature.js +82 -0
- package/dist/optics/scene-to-sensor-quadrature.js.map +1 -0
- package/dist/optics/sensor-environment-query.d.ts +60 -0
- package/dist/optics/sensor-environment-query.d.ts.map +1 -0
- package/dist/optics/sensor-environment-query.js +50 -0
- package/dist/optics/sensor-environment-query.js.map +1 -0
- package/dist/optics/sensor-psf-quadrature.d.ts +70 -0
- package/dist/optics/sensor-psf-quadrature.d.ts.map +1 -0
- package/dist/optics/sensor-psf-quadrature.js +101 -0
- package/dist/optics/sensor-psf-quadrature.js.map +1 -0
- package/dist/optics/sensor-psf-support.d.ts +20 -0
- package/dist/optics/sensor-psf-support.d.ts.map +1 -0
- package/dist/optics/sensor-psf-support.js +13 -0
- package/dist/optics/sensor-psf-support.js.map +1 -0
- package/dist/optics/stray-light.d.ts +91 -0
- package/dist/optics/stray-light.d.ts.map +1 -0
- package/dist/optics/stray-light.js +110 -0
- package/dist/optics/stray-light.js.map +1 -0
- package/dist/optics/thin-lens.d.ts +8 -0
- package/dist/optics/thin-lens.d.ts.map +1 -1
- package/dist/optics/thin-lens.js +8 -0
- package/dist/optics/thin-lens.js.map +1 -1
- package/dist/output/capture-corrected-sdr.d.ts +49 -0
- package/dist/output/capture-corrected-sdr.d.ts.map +1 -0
- package/dist/output/capture-corrected-sdr.js +149 -0
- package/dist/output/capture-corrected-sdr.js.map +1 -0
- package/dist/output/capture-geometry.d.ts.map +1 -1
- package/dist/output/capture-geometry.js +8 -0
- package/dist/output/capture-geometry.js.map +1 -1
- package/dist/output/capture-sdr.d.ts +49 -0
- package/dist/output/capture-sdr.d.ts.map +1 -0
- package/dist/output/capture-sdr.js +90 -0
- package/dist/output/capture-sdr.js.map +1 -0
- package/dist/output/crop.d.ts +6 -0
- package/dist/output/crop.d.ts.map +1 -1
- package/dist/output/crop.js +6 -0
- package/dist/output/crop.js.map +1 -1
- package/dist/output/geometric-transforms.d.ts +137 -0
- package/dist/output/geometric-transforms.d.ts.map +1 -0
- package/dist/output/geometric-transforms.js +225 -0
- package/dist/output/geometric-transforms.js.map +1 -0
- package/dist/output/lens-corrections.d.ts +121 -0
- package/dist/output/lens-corrections.d.ts.map +1 -0
- package/dist/output/lens-corrections.js +210 -0
- package/dist/output/lens-corrections.js.map +1 -0
- package/dist/output/sdr-rendering.d.ts +81 -0
- package/dist/output/sdr-rendering.d.ts.map +1 -0
- package/dist/output/sdr-rendering.js +106 -0
- package/dist/output/sdr-rendering.js.map +1 -0
- package/dist/output/subject-framing-crop.d.ts +8 -0
- package/dist/output/subject-framing-crop.d.ts.map +1 -1
- package/dist/output/subject-framing-crop.js +8 -0
- package/dist/output/subject-framing-crop.js.map +1 -1
- package/dist/schema/camera.d.ts +6 -0
- package/dist/schema/camera.d.ts.map +1 -1
- package/dist/schema/illumination-spectral.d.ts +51 -0
- package/dist/schema/illumination-spectral.d.ts.map +1 -0
- package/dist/schema/illumination-spectral.js +132 -0
- package/dist/schema/illumination-spectral.js.map +1 -0
- package/dist/schema/illumination-temporal.d.ts +156 -0
- package/dist/schema/illumination-temporal.d.ts.map +1 -0
- package/dist/schema/illumination-temporal.js +554 -0
- package/dist/schema/illumination-temporal.js.map +1 -0
- package/dist/schema/illumination.d.ts +138 -0
- package/dist/schema/illumination.d.ts.map +1 -0
- package/dist/schema/illumination.js +483 -0
- package/dist/schema/illumination.js.map +1 -0
- package/dist/schema/scene-radiance-temporal.d.ts +107 -0
- package/dist/schema/scene-radiance-temporal.d.ts.map +1 -0
- package/dist/schema/scene-radiance-temporal.js +259 -0
- package/dist/schema/scene-radiance-temporal.js.map +1 -0
- package/dist/schema/scene-radiance.d.ts +185 -0
- package/dist/schema/scene-radiance.d.ts.map +1 -0
- package/dist/schema/scene-radiance.js +535 -0
- package/dist/schema/scene-radiance.js.map +1 -0
- package/dist/schema/scene.d.ts +7 -0
- package/dist/schema/scene.d.ts.map +1 -1
- package/dist/schema/validation.d.ts.map +1 -1
- package/dist/schema/validation.js +7 -0
- package/dist/schema/validation.js.map +1 -1
- package/dist/sensor/accumulated-charge.d.ts +199 -0
- package/dist/sensor/accumulated-charge.d.ts.map +1 -0
- package/dist/sensor/accumulated-charge.js +450 -0
- package/dist/sensor/accumulated-charge.js.map +1 -0
- package/dist/sensor/architecture.d.ts +48 -13
- package/dist/sensor/architecture.d.ts.map +1 -1
- package/dist/sensor/architecture.js +58 -16
- package/dist/sensor/architecture.js.map +1 -1
- package/dist/sensor/camera-saturation-capacity.d.ts +138 -0
- package/dist/sensor/camera-saturation-capacity.d.ts.map +1 -0
- package/dist/sensor/camera-saturation-capacity.js +356 -0
- package/dist/sensor/camera-saturation-capacity.js.map +1 -0
- package/dist/sensor/capture-color-sampling-binding.d.ts +1 -0
- package/dist/sensor/capture-color-sampling-binding.d.ts.map +1 -1
- package/dist/sensor/capture-color-sampling-binding.js +14 -0
- package/dist/sensor/capture-color-sampling-binding.js.map +1 -1
- package/dist/sensor/capture-mode-timing.d.ts +63 -0
- package/dist/sensor/capture-mode-timing.d.ts.map +1 -0
- package/dist/sensor/capture-mode-timing.js +270 -0
- package/dist/sensor/capture-mode-timing.js.map +1 -0
- package/dist/sensor/capture-mode.d.ts.map +1 -1
- package/dist/sensor/capture-mode.js +13 -0
- package/dist/sensor/capture-mode.js.map +1 -1
- package/dist/sensor/color-sampling.d.ts.map +1 -1
- package/dist/sensor/color-sampling.js +19 -0
- package/dist/sensor/color-sampling.js.map +1 -1
- package/dist/sensor/constant-rate-temporal-integration.d.ts +126 -0
- package/dist/sensor/constant-rate-temporal-integration.d.ts.map +1 -0
- package/dist/sensor/constant-rate-temporal-integration.js +382 -0
- package/dist/sensor/constant-rate-temporal-integration.js.map +1 -0
- package/dist/sensor/dark-current.d.ts +169 -0
- package/dist/sensor/dark-current.d.ts.map +1 -0
- package/dist/sensor/dark-current.js +427 -0
- package/dist/sensor/dark-current.js.map +1 -0
- package/dist/sensor/environment-photo-signal.d.ts +123 -0
- package/dist/sensor/environment-photo-signal.d.ts.map +1 -0
- package/dist/sensor/environment-photo-signal.js +186 -0
- package/dist/sensor/environment-photo-signal.js.map +1 -0
- package/dist/sensor/eqe-electron-rate.d.ts +107 -0
- package/dist/sensor/eqe-electron-rate.d.ts.map +1 -0
- package/dist/sensor/eqe-electron-rate.js +561 -0
- package/dist/sensor/eqe-electron-rate.js.map +1 -0
- package/dist/sensor/eqe-local-exposure.d.ts +65 -0
- package/dist/sensor/eqe-local-exposure.d.ts.map +1 -0
- package/dist/sensor/eqe-local-exposure.js +84 -0
- package/dist/sensor/eqe-local-exposure.js.map +1 -0
- package/dist/sensor/eqe-temporal-exposure.d.ts +55 -0
- package/dist/sensor/eqe-temporal-exposure.d.ts.map +1 -0
- package/dist/sensor/eqe-temporal-exposure.js +62 -0
- package/dist/sensor/eqe-temporal-exposure.js.map +1 -0
- package/dist/sensor/exposure-window.d.ts +14 -0
- package/dist/sensor/exposure-window.d.ts.map +1 -1
- package/dist/sensor/exposure-window.js +14 -0
- package/dist/sensor/exposure-window.js.map +1 -1
- package/dist/sensor/iso-signal-chain.d.ts +148 -0
- package/dist/sensor/iso-signal-chain.d.ts.map +1 -0
- package/dist/sensor/iso-signal-chain.js +411 -0
- package/dist/sensor/iso-signal-chain.js.map +1 -0
- package/dist/sensor/local-exposure-binding.d.ts +87 -0
- package/dist/sensor/local-exposure-binding.d.ts.map +1 -0
- package/dist/sensor/local-exposure-binding.js +214 -0
- package/dist/sensor/local-exposure-binding.js.map +1 -0
- package/dist/sensor/optical-stack.d.ts.map +1 -1
- package/dist/sensor/optical-stack.js +17 -0
- package/dist/sensor/optical-stack.js.map +1 -1
- package/dist/sensor/photon-energy.d.ts +97 -0
- package/dist/sensor/photon-energy.d.ts.map +1 -0
- package/dist/sensor/photon-energy.js +390 -0
- package/dist/sensor/photon-energy.js.map +1 -0
- package/dist/sensor/physical-charge-capacity.d.ts +130 -0
- package/dist/sensor/physical-charge-capacity.d.ts.map +1 -0
- package/dist/sensor/physical-charge-capacity.js +345 -0
- package/dist/sensor/physical-charge-capacity.js.map +1 -0
- package/dist/sensor/pixel-pitch.d.ts +6 -0
- package/dist/sensor/pixel-pitch.d.ts.map +1 -1
- package/dist/sensor/pixel-pitch.js +6 -0
- package/dist/sensor/pixel-pitch.js.map +1 -1
- package/dist/sensor/radiometry-readiness.d.ts +10 -0
- package/dist/sensor/radiometry-readiness.d.ts.map +1 -1
- package/dist/sensor/radiometry-readiness.js +10 -0
- package/dist/sensor/radiometry-readiness.js.map +1 -1
- package/dist/sensor/raw-readout.d.ts +314 -0
- package/dist/sensor/raw-readout.d.ts.map +1 -0
- package/dist/sensor/raw-readout.js +914 -0
- package/dist/sensor/raw-readout.js.map +1 -0
- package/dist/sensor/raw-reconstruction.d.ts +170 -0
- package/dist/sensor/raw-reconstruction.d.ts.map +1 -0
- package/dist/sensor/raw-reconstruction.js +424 -0
- package/dist/sensor/raw-reconstruction.js.map +1 -0
- package/dist/sensor/readout-exposure-linkage.d.ts +12 -0
- package/dist/sensor/readout-exposure-linkage.d.ts.map +1 -1
- package/dist/sensor/readout-exposure-linkage.js +12 -0
- package/dist/sensor/readout-exposure-linkage.js.map +1 -1
- package/dist/sensor/readout-timing.d.ts +13 -0
- package/dist/sensor/readout-timing.d.ts.map +1 -1
- package/dist/sensor/readout-timing.js +13 -0
- package/dist/sensor/readout-timing.js.map +1 -1
- package/dist/sensor/response-application-compatibility.d.ts +136 -0
- package/dist/sensor/response-application-compatibility.d.ts.map +1 -0
- package/dist/sensor/response-application-compatibility.js +408 -0
- package/dist/sensor/response-application-compatibility.js.map +1 -0
- package/dist/sensor/response-operating-range.d.ts +173 -0
- package/dist/sensor/response-operating-range.d.ts.map +1 -0
- package/dist/sensor/response-operating-range.js +672 -0
- package/dist/sensor/response-operating-range.js.map +1 -0
- package/dist/sensor/responsivity-photocurrent.d.ts +158 -0
- package/dist/sensor/responsivity-photocurrent.d.ts.map +1 -0
- package/dist/sensor/responsivity-photocurrent.js +644 -0
- package/dist/sensor/responsivity-photocurrent.js.map +1 -0
- package/dist/sensor/sampling-aperture.d.ts.map +1 -1
- package/dist/sensor/sampling-aperture.js +14 -0
- package/dist/sensor/sampling-aperture.js.map +1 -1
- package/dist/sensor/scene-eqe-temporal-exposure.d.ts +45 -0
- package/dist/sensor/scene-eqe-temporal-exposure.d.ts.map +1 -0
- package/dist/sensor/scene-eqe-temporal-exposure.js +64 -0
- package/dist/sensor/scene-eqe-temporal-exposure.js.map +1 -0
- package/dist/sensor/sensor-geometry.d.ts +12 -0
- package/dist/sensor/sensor-geometry.d.ts.map +1 -1
- package/dist/sensor/sensor-geometry.js +12 -0
- package/dist/sensor/sensor-geometry.js.map +1 -1
- package/dist/sensor/signal-noise.d.ts +10 -0
- package/dist/sensor/signal-noise.d.ts.map +1 -1
- package/dist/sensor/signal-noise.js +10 -0
- package/dist/sensor/signal-noise.js.map +1 -1
- package/dist/sensor/spatial-sample-reduction.d.ts +44 -1
- package/dist/sensor/spatial-sample-reduction.d.ts.map +1 -1
- package/dist/sensor/spatial-sample-reduction.js +51 -5
- package/dist/sensor/spatial-sample-reduction.js.map +1 -1
- package/dist/sensor/spatial-sampling-quadrature.d.ts +24 -0
- package/dist/sensor/spatial-sampling-quadrature.d.ts.map +1 -1
- package/dist/sensor/spatial-sampling-quadrature.js +27 -0
- package/dist/sensor/spatial-sampling-quadrature.js.map +1 -1
- package/dist/sensor/spatio-spectral-reduction.d.ts +187 -0
- package/dist/sensor/spatio-spectral-reduction.d.ts.map +1 -0
- package/dist/sensor/spatio-spectral-reduction.js +373 -0
- package/dist/sensor/spatio-spectral-reduction.js.map +1 -0
- package/dist/sensor/spectral-coverage.d.ts +24 -0
- package/dist/sensor/spectral-coverage.d.ts.map +1 -0
- package/dist/sensor/spectral-coverage.js +86 -0
- package/dist/sensor/spectral-coverage.js.map +1 -0
- package/dist/sensor/spectral-quadrature.d.ts +169 -0
- package/dist/sensor/spectral-quadrature.d.ts.map +1 -0
- package/dist/sensor/spectral-quadrature.js +542 -0
- package/dist/sensor/spectral-quadrature.js.map +1 -0
- package/dist/sensor/spectral-response.d.ts +192 -0
- package/dist/sensor/spectral-response.d.ts.map +1 -0
- package/dist/sensor/spectral-response.js +664 -0
- package/dist/sensor/spectral-response.js.map +1 -0
- package/dist/sensor/temporal-eqe-sum.d.ts +15 -0
- package/dist/sensor/temporal-eqe-sum.d.ts.map +1 -0
- package/dist/sensor/temporal-eqe-sum.js +30 -0
- package/dist/sensor/temporal-eqe-sum.js.map +1 -0
- package/dist/sensor/temporal-photo-signal.d.ts +38 -0
- package/dist/sensor/temporal-photo-signal.d.ts.map +1 -0
- package/dist/sensor/temporal-photo-signal.js +110 -0
- package/dist/sensor/temporal-photo-signal.js.map +1 -0
- package/dist/sensor/temporal-sample-binding.d.ts +6 -0
- package/dist/sensor/temporal-sample-binding.d.ts.map +1 -0
- package/dist/sensor/temporal-sample-binding.js +32 -0
- package/dist/sensor/temporal-sample-binding.js.map +1 -0
- package/dist/simulation/poc-simulation.d.ts.map +1 -1
- package/dist/simulation/poc-simulation.js +34 -11
- package/dist/simulation/poc-simulation.js.map +1 -1
- package/dist/stabilization/camera-shake.d.ts +11 -0
- package/dist/stabilization/camera-shake.d.ts.map +1 -1
- package/dist/stabilization/camera-shake.js +11 -0
- package/dist/stabilization/camera-shake.js.map +1 -1
- package/dist/stabilization/system.d.ts +218 -0
- package/dist/stabilization/system.d.ts.map +1 -0
- package/dist/stabilization/system.js +695 -0
- package/dist/stabilization/system.js.map +1 -0
- package/docs/API_REFERENCE.md +2017 -0
- package/docs/API_STYLE.md +139 -3
- package/docs/ARCHITECTURE.md +134 -24
- package/docs/AUTOMATION_COORDINATION.md +2 -0
- package/docs/CAPTURE_COLOR.md +25 -0
- package/docs/CAPTURE_CORRECTED_SDR.md +25 -0
- package/docs/CAPTURE_EXPORT_METADATA.md +27 -0
- package/docs/CAPTURE_SDR.md +20 -0
- package/docs/DEVELOPERS.md +60 -0
- package/docs/DIGITAL_OPTICS_FOUNDATION.md +69 -0
- package/docs/ENVIRONMENT_RAW_CAPTURE.md +187 -0
- package/docs/EXPORT_ACCEPTANCE.md +133 -0
- package/docs/GENERIC_TIER_PRESETS.md +269 -0
- package/docs/GEOMETRIC_PREPARATION_REUSE.md +141 -0
- package/docs/IMAGE_FORMATION.md +80 -10
- package/docs/LINEAR_CAPTURE_ENCODING.md +25 -0
- package/docs/MOTION_AND_SIGNAL.md +5 -3
- package/docs/NUMERICAL_CORRECTNESS.md +191 -0
- package/docs/PERFORMANCE_BASELINE.md +56 -0
- package/docs/PHOTOGRAPHIC_EXPORT.md +206 -0
- package/docs/PHYSICS_FOUNDATION.md +152 -5
- package/docs/POC_API.md +2 -0
- package/docs/POC_PROJECTION_REUSE.md +124 -0
- package/docs/PROCESSED_OUTPUT.md +157 -0
- package/docs/PRODUCTION_COMPOSITION.md +373 -0
- package/docs/PRODUCTION_ENVIRONMENT_CAPTURE.md +131 -0
- package/docs/PROVENANCE.md +4 -0
- package/docs/PSF_FOUNDATION.md +110 -88
- package/docs/RAW_FRAME_ENVELOPE.md +56 -0
- package/docs/RAW_FRAME_RECONSTRUCTION.md +30 -0
- package/docs/RELEASE_1_0.md +66 -0
- package/docs/RELEASE_1_0_1.md +61 -0
- package/docs/RELEASE_AUDIT.md +39 -0
- package/docs/SCENE_RADIANCE_AND_ILLUMINATION.md +298 -0
- package/docs/SCENE_SENSOR_QUADRATURE.md +98 -0
- package/docs/SCENE_SENSOR_TEMPORAL_EXPOSURE.md +86 -0
- package/docs/SCIENTIFIC_ASSURANCE.md +280 -0
- package/docs/SCIENTIFIC_CONFORMANCE.md +83 -0
- package/docs/SDR_RENDERING.md +33 -0
- package/docs/SENSOR_ENVIRONMENT_QUERY.md +86 -0
- package/docs/SENSOR_EQE_LOCAL_EXPOSURE.md +104 -0
- package/docs/SENSOR_EQE_TEMPORAL_EXPOSURE.md +74 -0
- package/docs/SENSOR_PSF_QUADRATURE.md +90 -0
- package/docs/SENSOR_RAW_FRAME.md +20 -0
- package/docs/SENSOR_RAW_PRODUCER.md +77 -0
- package/docs/SIGNAL_CONFORMANCE.md +23 -0
- package/docs/SIMULATED_CAPTURE.md +65 -0
- package/docs/STABILIZATION.md +160 -17
- package/docs/TEMPORAL_PHOTO_RAW.md +83 -0
- package/docs/TIER_ACCEPTANCE.md +129 -0
- package/docs/TIER_PRESET_ACCEPTANCE.md +59 -0
- package/docs/USAGE.md +5050 -1047
- package/docs/V1_COMPOSITION_MAP.md +123 -0
- package/docs/V1_HELPER_REUSE_REVIEW.md +60 -0
- package/docs/V1_PERFORMANCE_DISPOSITION.md +88 -0
- package/docs/api/camera-equivalent-focal-length.md +53 -0
- package/docs/api/camera-field-of-view.md +119 -0
- package/docs/api/camera-projected-object-size.md +54 -0
- package/docs/api/capture-capture-export-metadata.md +107 -0
- package/docs/api/capture-environment-raw-producer.md +56 -0
- package/docs/api/capture-focus-control.md +419 -0
- package/docs/api/capture-linear-encoding.md +99 -0
- package/docs/api/capture-photographic-export.md +172 -0
- package/docs/api/capture-raw-frame-reconstruction.md +87 -0
- package/docs/api/capture-release-sequence.md +252 -0
- package/docs/api/capture-sensor-raw-frame.md +66 -0
- package/docs/api/capture-sensor-raw-producer.md +98 -0
- package/docs/api/capture-simulated-capture.md +179 -0
- package/docs/api/color-capture-color.md +122 -0
- package/docs/api/color-white-balance.md +386 -0
- package/docs/api/composition-image-formation-plan.md +825 -0
- package/docs/api/composition-plan-consumer.md +98 -0
- package/docs/api/core-calculation-result.md +220 -0
- package/docs/api/core-configuration-error.md +19 -0
- package/docs/api/core-image-formation.md +204 -0
- package/docs/api/core-scientific-assurance.md +214 -0
- package/docs/api/core-spectral-composition.md +268 -0
- package/docs/api/core-spectral.md +78 -0
- package/docs/api/core-validation.md +34 -0
- package/docs/api/core-version.md +14 -0
- package/docs/api/equipment-exposure-capabilities.md +270 -0
- package/docs/api/equipment-generic-tier-assets.md +82 -0
- package/docs/api/equipment-generic-tier-presets.md +103 -0
- package/docs/api/equipment-iso-capabilities.md +295 -0
- package/docs/api/equipment-metering-capabilities.md +126 -0
- package/docs/api/equipment-release-capabilities.md +91 -0
- package/docs/api/exports.json +5656 -0
- package/docs/api/exposure-exposure-duration-control.md +115 -0
- package/docs/api/exposure-exposure-mode-resolver.md +966 -0
- package/docs/api/exposure-exposure.md +150 -0
- package/docs/api/exposure-flash.md +327 -0
- package/docs/api/exposure-metering-scene-radiance.md +154 -0
- package/docs/api/exposure-metering-target.md +134 -0
- package/docs/api/exposure-metering-temporal.md +77 -0
- package/docs/api/exposure-metering.md +172 -0
- package/docs/api/exposure-program-line.md +64 -0
- package/docs/api/motion-camera-rotation.md +215 -0
- package/docs/api/motion-capture-rotation-inverse-mapping.md +128 -0
- package/docs/api/motion-capture-rotation-temporal-quadrature.md +127 -0
- package/docs/api/motion-capture-rotation-trajectory.md +132 -0
- package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +171 -0
- package/docs/api/motion-extended-object-projection.md +312 -0
- package/docs/api/motion-projected-motion.md +60 -0
- package/docs/api/optics-aperture.md +69 -0
- package/docs/api/optics-circle-of-confusion.md +46 -0
- package/docs/api/optics-complex-pupil-psf.md +193 -0
- package/docs/api/optics-depth-of-field.md +92 -0
- package/docs/api/optics-diffraction.md +46 -0
- package/docs/api/optics-focus-breathing.md +119 -0
- package/docs/api/optics-focus-state.md +64 -0
- package/docs/api/optics-front-of-lens-filter.md +263 -0
- package/docs/api/optics-illumination-vignetting.md +95 -0
- package/docs/api/optics-lateral-chromatic-aberration.md +225 -0
- package/docs/api/optics-lens-psf-profile.md +380 -0
- package/docs/api/optics-polygon-diffraction.md +68 -0
- package/docs/api/optics-profile-contract.md +47 -0
- package/docs/api/optics-psf-foundation.md +181 -0
- package/docs/api/optics-radial-distortion.md +194 -0
- package/docs/api/optics-scene-to-sensor-irradiance.md +371 -0
- package/docs/api/optics-scene-to-sensor-quadrature.md +78 -0
- package/docs/api/optics-sensor-environment-query.md +58 -0
- package/docs/api/optics-sensor-psf-quadrature.md +81 -0
- package/docs/api/optics-stray-light.md +109 -0
- package/docs/api/optics-thin-lens.md +53 -0
- package/docs/api/output-capture-corrected-sdr.md +71 -0
- package/docs/api/output-capture-geometry.md +500 -0
- package/docs/api/output-capture-sdr.md +69 -0
- package/docs/api/output-crop.md +47 -0
- package/docs/api/output-geometric-transforms.md +199 -0
- package/docs/api/output-lens-corrections.md +162 -0
- package/docs/api/output-sdr-rendering.md +122 -0
- package/docs/api/output-subject-framing-crop.md +59 -0
- package/docs/api/schema-camera.md +84 -0
- package/docs/api/schema-illumination-spectral.md +77 -0
- package/docs/api/schema-illumination-temporal.md +289 -0
- package/docs/api/schema-illumination.md +246 -0
- package/docs/api/schema-scene-radiance-temporal.md +215 -0
- package/docs/api/schema-scene-radiance.md +415 -0
- package/docs/api/schema-scene.md +105 -0
- package/docs/api/schema-validation.md +25 -0
- package/docs/api/sensor-accumulated-charge.md +273 -0
- package/docs/api/sensor-architecture.md +155 -0
- package/docs/api/sensor-camera-saturation-capacity.md +215 -0
- package/docs/api/sensor-capture-color-sampling-binding.md +323 -0
- package/docs/api/sensor-capture-mode-timing.md +123 -0
- package/docs/api/sensor-capture-mode.md +321 -0
- package/docs/api/sensor-color-sampling.md +228 -0
- package/docs/api/sensor-constant-rate-temporal-integration.md +152 -0
- package/docs/api/sensor-dark-current.md +227 -0
- package/docs/api/sensor-environment-photo-signal.md +77 -0
- package/docs/api/sensor-eqe-electron-rate.md +166 -0
- package/docs/api/sensor-eqe-local-exposure.md +68 -0
- package/docs/api/sensor-eqe-temporal-exposure.md +73 -0
- package/docs/api/sensor-exposure-window.md +183 -0
- package/docs/api/sensor-iso-signal-chain.md +264 -0
- package/docs/api/sensor-local-exposure-binding.md +126 -0
- package/docs/api/sensor-optical-stack.md +211 -0
- package/docs/api/sensor-photon-energy.md +149 -0
- package/docs/api/sensor-physical-charge-capacity.md +196 -0
- package/docs/api/sensor-pixel-pitch.md +41 -0
- package/docs/api/sensor-radiometry-readiness.md +240 -0
- package/docs/api/sensor-raw-readout.md +499 -0
- package/docs/api/sensor-raw-reconstruction.md +260 -0
- package/docs/api/sensor-readout-exposure-linkage.md +172 -0
- package/docs/api/sensor-readout-timing.md +209 -0
- package/docs/api/sensor-response-application-compatibility.md +256 -0
- package/docs/api/sensor-response-operating-range.md +293 -0
- package/docs/api/sensor-responsivity-photocurrent.md +245 -0
- package/docs/api/sensor-sampling-aperture.md +221 -0
- package/docs/api/sensor-scene-eqe-temporal-exposure.md +56 -0
- package/docs/api/sensor-sensor-geometry.md +143 -0
- package/docs/api/sensor-signal-noise.md +75 -0
- package/docs/api/sensor-spatial-sample-reduction.md +186 -0
- package/docs/api/sensor-spatial-sampling-quadrature.md +188 -0
- package/docs/api/sensor-spatio-spectral-reduction.md +217 -0
- package/docs/api/sensor-spectral-coverage.md +33 -0
- package/docs/api/sensor-spectral-quadrature.md +183 -0
- package/docs/api/sensor-spectral-response.md +291 -0
- package/docs/api/sensor-temporal-photo-signal.md +62 -0
- package/docs/api/simulation-poc-simulation.md +364 -0
- package/docs/api/stabilization-camera-shake.md +71 -0
- package/docs/api/stabilization-system.md +442 -0
- package/docs/benchmarks/2026-10-01-main-baseline.json +694 -0
- package/docs/benchmarks/2026-10-02-geometric-preparation-reuse.json +2190 -0
- package/docs/benchmarks/2026-10-02-poc-projection-reuse.json +2423 -0
- package/docs/benchmarks/2026-10-02-v1-environment-gc-profile.json +210 -0
- package/docs/benchmarks/2026-10-02-v1-environment-ordinary.json +187 -0
- package/docs/benchmarks/2026-10-02-v1-geometry-gc-profile.json +756 -0
- package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-1.json +711 -0
- package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-2.json +711 -0
- package/docs/benchmarks/2026-10-02-v1-poc-gc-profile.json +885 -0
- package/docs/benchmarks/2026-10-02-v1-poc-ordinary-1.json +868 -0
- package/docs/benchmarks/2026-10-02-v1-poc-ordinary-2.json +868 -0
- package/docs/examples/production-capture.mjs +34 -0
- package/docs/examples/production-request.json +4613 -0
- package/docs/examples/quick-start.mjs +12 -0
- package/docs/validation/documentation-fragments.json +212 -0
- package/docs/validation/release-audit-inventory.json +1306 -0
- package/docs/validation/tier-acceptance-report-v1.json +2538 -0
- package/package.json +15 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw-readout.js","sourceRoot":"","sources":["../../src/sensor/raw-readout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Module boundary and integration notes.
|
|
3
|
+
* Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
|
|
4
|
+
* missing required fields and incompatible scientific data fail at this boundary. Reconstruction
|
|
5
|
+
* consumes explicitly bound native post-ADC samples and declared normalized channel kernels. Native
|
|
6
|
+
* CFA phase is absolute and orientation/crop remain downstream. This structural linear reconstruction
|
|
7
|
+
* does not infer spectral sensor primaries, calibrated color or a complete arbitrary demosaic
|
|
8
|
+
* algorithm.
|
|
9
|
+
* Commit one validated native RAW sample with exact site/channel/event identity for declared
|
|
10
|
+
* reconstruction. Reconstruction consumes explicitly bound native post-ADC samples and declared
|
|
11
|
+
* normalized channel kernels. Native CFA phase is absolute and orientation/crop remain downstream.
|
|
12
|
+
* This structural linear reconstruction does not infer spectral sensor primaries, calibrated color or
|
|
13
|
+
* a complete arbitrary demosaic algorithm.
|
|
14
|
+
* @see docs/MOTION_AND_SIGNAL.md for equations, coordinate/unit conventions, blockers and support
|
|
15
|
+
* limits.
|
|
16
|
+
*/
|
|
17
|
+
import { type CalculationResult } from "../core/calculation-result.js";
|
|
18
|
+
import { type EvidenceProvenance } from "../core/evidence-provenance.js";
|
|
19
|
+
import type { ResolvedCaptureModeColorSamplingContributors } from "./capture-color-sampling-binding.js";
|
|
20
|
+
import { type SensorColorSamplingProfile } from "./color-sampling.js";
|
|
21
|
+
import type { SensorRawCodeSample } from "./raw-readout.js";
|
|
22
|
+
import type { SensorSpectralResponseScientificStatus } from "./spectral-response.js";
|
|
23
|
+
export declare const SENSOR_RAW_CAPTURE_SAMPLE_VERSION: "0.1.0";
|
|
24
|
+
export declare const SENSOR_RAW_RECONSTRUCTION_PROFILE_SCHEMA_VERSION: "0.1.0";
|
|
25
|
+
export interface CreateSensorRawCaptureSampleInput {
|
|
26
|
+
rawCode: SensorRawCodeSample;
|
|
27
|
+
contributors: ResolvedCaptureModeColorSamplingContributors;
|
|
28
|
+
}
|
|
29
|
+
export interface SensorRawCaptureSample {
|
|
30
|
+
version: typeof SENSOR_RAW_CAPTURE_SAMPLE_VERSION;
|
|
31
|
+
captureModeId: string;
|
|
32
|
+
modeSampleCoordinateSystem: "capture-mode-full-frame-effective-sample-index";
|
|
33
|
+
modeSampleIndexFullFrame: {
|
|
34
|
+
x: number;
|
|
35
|
+
y: number;
|
|
36
|
+
};
|
|
37
|
+
colorSamplingProfileId: string;
|
|
38
|
+
colorSamplingSite: {
|
|
39
|
+
x: number;
|
|
40
|
+
y: number;
|
|
41
|
+
};
|
|
42
|
+
channelId: string;
|
|
43
|
+
rawCode: number;
|
|
44
|
+
blackLevelCode: number;
|
|
45
|
+
digitalSaturationCode: number;
|
|
46
|
+
blackSubtractedNormalizedCode: number;
|
|
47
|
+
readoutProfileId: string;
|
|
48
|
+
readoutRegimeId: string;
|
|
49
|
+
sourceChargeSeedUint32: number;
|
|
50
|
+
sourceReadNoiseSeedUint32: number;
|
|
51
|
+
physicalScalarSaturationApplied: boolean;
|
|
52
|
+
digitalSaturationApplied: boolean;
|
|
53
|
+
cfaPhasePreservedInNativeCoordinates: true;
|
|
54
|
+
physicalOrientationApplied: false;
|
|
55
|
+
outputRotationApplied: false;
|
|
56
|
+
groupedModeCombinationApplied: false;
|
|
57
|
+
reconstructionApplied: false;
|
|
58
|
+
aliasingModeled: false;
|
|
59
|
+
moireModeled: false;
|
|
60
|
+
}
|
|
61
|
+
export interface SensorRawReconstructionKernelContribution {
|
|
62
|
+
offsetX: number;
|
|
63
|
+
offsetY: number;
|
|
64
|
+
sourceChannelId: string;
|
|
65
|
+
weight: number;
|
|
66
|
+
}
|
|
67
|
+
export interface SensorRawReconstructionChannelKernel {
|
|
68
|
+
outputChannelId: string;
|
|
69
|
+
contributions: readonly SensorRawReconstructionKernelContribution[];
|
|
70
|
+
}
|
|
71
|
+
export interface SensorRawReconstructionProfile {
|
|
72
|
+
schemaVersion: typeof SENSOR_RAW_RECONSTRUCTION_PROFILE_SCHEMA_VERSION;
|
|
73
|
+
profileId: string;
|
|
74
|
+
profileVersion: string;
|
|
75
|
+
captureModeId: string;
|
|
76
|
+
colorSamplingProfileId: string;
|
|
77
|
+
scientificStatus: SensorSpectralResponseScientificStatus;
|
|
78
|
+
method: "explicit-linear-native-neighborhood";
|
|
79
|
+
normalization: "weights-sum-to-one-per-output-channel";
|
|
80
|
+
negativeBlackSubtractedValuesAllowed: true;
|
|
81
|
+
kernels: readonly SensorRawReconstructionChannelKernel[];
|
|
82
|
+
evidence: readonly EvidenceProvenance[];
|
|
83
|
+
limitations: readonly string[];
|
|
84
|
+
}
|
|
85
|
+
export interface ResolveSensorRawReconstructionInput {
|
|
86
|
+
profile: SensorRawReconstructionProfile;
|
|
87
|
+
colorSamplingProfile: SensorColorSamplingProfile;
|
|
88
|
+
centerSite: {
|
|
89
|
+
x: number;
|
|
90
|
+
y: number;
|
|
91
|
+
};
|
|
92
|
+
samples: readonly SensorRawCaptureSample[];
|
|
93
|
+
}
|
|
94
|
+
export interface SensorRawReconstructedPixel {
|
|
95
|
+
reconstructionProfileId: string;
|
|
96
|
+
reconstructionProfileVersion: string;
|
|
97
|
+
captureModeId: string;
|
|
98
|
+
colorSamplingProfileId: string;
|
|
99
|
+
centerSite: {
|
|
100
|
+
x: number;
|
|
101
|
+
y: number;
|
|
102
|
+
};
|
|
103
|
+
outputChannels: readonly {
|
|
104
|
+
channelId: string;
|
|
105
|
+
linearBlackSubtractedNormalizedValue: number;
|
|
106
|
+
sourceContributions: readonly {
|
|
107
|
+
site: {
|
|
108
|
+
x: number;
|
|
109
|
+
y: number;
|
|
110
|
+
};
|
|
111
|
+
sourceChannelId: string;
|
|
112
|
+
weight: number;
|
|
113
|
+
sourceValue: number;
|
|
114
|
+
}[];
|
|
115
|
+
}[];
|
|
116
|
+
method: "explicit-linear-native-neighborhood";
|
|
117
|
+
cfaAware: true;
|
|
118
|
+
captureModeAware: true;
|
|
119
|
+
physicalOrientationApplied: false;
|
|
120
|
+
outputRotationApplied: false;
|
|
121
|
+
sharpeningApplied: false;
|
|
122
|
+
denoisingApplied: false;
|
|
123
|
+
aliasingModeled: false;
|
|
124
|
+
moireModeled: false;
|
|
125
|
+
preSamplingOpticalTransferAdequacyEstablished: false;
|
|
126
|
+
reconstructionDoesNotModifyRawSamples: true;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
|
|
130
|
+
* missing required fields and incompatible scientific data fail at this boundary.
|
|
131
|
+
*
|
|
132
|
+
* Reconstruction consumes explicitly bound native post-ADC samples and declared normalized channel
|
|
133
|
+
* kernels. Native CFA phase is absolute and orientation/crop remain downstream. This structural linear
|
|
134
|
+
* reconstruction does not infer spectral sensor primaries, calibrated color or a complete arbitrary
|
|
135
|
+
* demosaic algorithm.
|
|
136
|
+
* @param value - unknown. Treated as untrusted data; static typing alone is not validation.
|
|
137
|
+
* @returns SensorRawReconstructionProfile. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
|
|
138
|
+
*
|
|
139
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
140
|
+
*/
|
|
141
|
+
export declare function parseSensorRawReconstructionProfile(value: unknown): SensorRawReconstructionProfile;
|
|
142
|
+
/**
|
|
143
|
+
* Commit one validated native RAW sample with exact site/channel/event identity for declared
|
|
144
|
+
* reconstruction.
|
|
145
|
+
*
|
|
146
|
+
* Reconstruction consumes explicitly bound native post-ADC samples and declared normalized channel
|
|
147
|
+
* kernels. Native CFA phase is absolute and orientation/crop remain downstream. This structural linear
|
|
148
|
+
* reconstruction does not infer spectral sensor primaries, calibrated color or a complete arbitrary
|
|
149
|
+
* demosaic algorithm.
|
|
150
|
+
* @param input - CreateSensorRawCaptureSampleInput. See the linked contract for coordinate, unit and profile binding semantics.
|
|
151
|
+
* @returns SensorRawCaptureSample. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
|
|
152
|
+
*
|
|
153
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
154
|
+
*/
|
|
155
|
+
export declare function createSensorRawCaptureSample(input: CreateSensorRawCaptureSampleInput): SensorRawCaptureSample;
|
|
156
|
+
/**
|
|
157
|
+
* Gather exactly supplied native channel contributions through explicit normalized kernels while
|
|
158
|
+
* preserving CFA identity and signed black-subtracted values.
|
|
159
|
+
*
|
|
160
|
+
* Reconstruction consumes explicitly bound native post-ADC samples and declared normalized channel
|
|
161
|
+
* kernels. Native CFA phase is absolute and orientation/crop remain downstream. This structural linear
|
|
162
|
+
* reconstruction does not infer spectral sensor primaries, calibrated color or a complete arbitrary
|
|
163
|
+
* demosaic algorithm.
|
|
164
|
+
* @param input - ResolveSensorRawReconstructionInput. See the linked contract for coordinate, unit and profile binding semantics.
|
|
165
|
+
* @returns CalculationResult<SensorRawReconstructedPixel>. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
|
|
166
|
+
*
|
|
167
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
168
|
+
*/
|
|
169
|
+
export declare function resolveSensorRawReconstruction(input: ResolveSensorRawReconstructionInput): CalculationResult<SensorRawReconstructedPixel>;
|
|
170
|
+
//# sourceMappingURL=raw-reconstruction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw-reconstruction.d.ts","sourceRoot":"","sources":["../../src/sensor/raw-reconstruction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,424 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* Module boundary and integration notes.
|
|
4
|
+
* Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
|
|
5
|
+
* missing required fields and incompatible scientific data fail at this boundary. Reconstruction
|
|
6
|
+
* consumes explicitly bound native post-ADC samples and declared normalized channel kernels. Native
|
|
7
|
+
* CFA phase is absolute and orientation/crop remain downstream. This structural linear reconstruction
|
|
8
|
+
* does not infer spectral sensor primaries, calibrated color or a complete arbitrary demosaic
|
|
9
|
+
* algorithm.
|
|
10
|
+
* Commit one validated native RAW sample with exact site/channel/event identity for declared
|
|
11
|
+
* reconstruction. Reconstruction consumes explicitly bound native post-ADC samples and declared
|
|
12
|
+
* normalized channel kernels. Native CFA phase is absolute and orientation/crop remain downstream.
|
|
13
|
+
* This structural linear reconstruction does not infer spectral sensor primaries, calibrated color or
|
|
14
|
+
* a complete arbitrary demosaic algorithm.
|
|
15
|
+
* @see docs/MOTION_AND_SIGNAL.md for equations, coordinate/unit conventions, blockers and support
|
|
16
|
+
* limits.
|
|
17
|
+
*/
|
|
18
|
+
import { approximationResult } from "../core/calculation-result.js";
|
|
19
|
+
import { InvalidConfigurationError } from "../core/configuration-error.js";
|
|
20
|
+
import { parseEvidenceList } from "../core/evidence-provenance.js";
|
|
21
|
+
import { InvalidScientificInputError } from "../core/validation.js";
|
|
22
|
+
import { parseSensorColorSamplingProfile, resolveColorSamplingSite } from "./color-sampling.js";
|
|
23
|
+
export const SENSOR_RAW_CAPTURE_SAMPLE_VERSION = "0.1.0";
|
|
24
|
+
export const SENSOR_RAW_RECONSTRUCTION_PROFILE_SCHEMA_VERSION = "0.1.0";
|
|
25
|
+
function requireRecord(value, path) {
|
|
26
|
+
if (typeof value !== "object" ||
|
|
27
|
+
value === null ||
|
|
28
|
+
Array.isArray(value)) {
|
|
29
|
+
throw new InvalidConfigurationError(path + " must be an object.");
|
|
30
|
+
}
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
function requireNonEmptyString(value, path) {
|
|
34
|
+
if (typeof value !== "string" ||
|
|
35
|
+
value.trim().length === 0) {
|
|
36
|
+
throw new InvalidConfigurationError(path +
|
|
37
|
+
" must be a non-empty string.");
|
|
38
|
+
}
|
|
39
|
+
return value.trim();
|
|
40
|
+
}
|
|
41
|
+
function requireFinite(value, path) {
|
|
42
|
+
if (typeof value !== "number" ||
|
|
43
|
+
!Number.isFinite(value)) {
|
|
44
|
+
throw new InvalidConfigurationError(path + " must be finite.");
|
|
45
|
+
}
|
|
46
|
+
return value;
|
|
47
|
+
}
|
|
48
|
+
function requireSafeInteger(value, path) {
|
|
49
|
+
if (typeof value !== "number" ||
|
|
50
|
+
!Number.isSafeInteger(value)) {
|
|
51
|
+
throw new InvalidConfigurationError(path + " must be a safe integer.");
|
|
52
|
+
}
|
|
53
|
+
return value;
|
|
54
|
+
}
|
|
55
|
+
function requireNonNegativeSafeIntegerInput(value, path) {
|
|
56
|
+
if (typeof value !== "number" ||
|
|
57
|
+
!Number.isSafeInteger(value) ||
|
|
58
|
+
value < 0) {
|
|
59
|
+
throw new InvalidScientificInputError(path +
|
|
60
|
+
" must be a non-negative safe integer.");
|
|
61
|
+
}
|
|
62
|
+
return value;
|
|
63
|
+
}
|
|
64
|
+
function parseLimitations(value, path) {
|
|
65
|
+
if (!Array.isArray(value)) {
|
|
66
|
+
throw new InvalidConfigurationError(path + " must be an array.");
|
|
67
|
+
}
|
|
68
|
+
const parsed = value.map((entry, index) => requireNonEmptyString(entry, path +
|
|
69
|
+
"[" +
|
|
70
|
+
index +
|
|
71
|
+
"]"));
|
|
72
|
+
if (new Set(parsed).size !==
|
|
73
|
+
parsed.length) {
|
|
74
|
+
throw new InvalidConfigurationError(path +
|
|
75
|
+
" must not contain duplicates.");
|
|
76
|
+
}
|
|
77
|
+
return parsed;
|
|
78
|
+
}
|
|
79
|
+
function parseStatus(value, path) {
|
|
80
|
+
if (value !== "calibrated" &&
|
|
81
|
+
value !== "approximation") {
|
|
82
|
+
throw new InvalidConfigurationError(path + " is invalid.");
|
|
83
|
+
}
|
|
84
|
+
return value;
|
|
85
|
+
}
|
|
86
|
+
function parseContribution(value, path) {
|
|
87
|
+
const record = requireRecord(value, path);
|
|
88
|
+
return {
|
|
89
|
+
offsetX: requireSafeInteger(record.offsetX, path + ".offsetX"),
|
|
90
|
+
offsetY: requireSafeInteger(record.offsetY, path + ".offsetY"),
|
|
91
|
+
sourceChannelId: requireNonEmptyString(record.sourceChannelId, path + ".sourceChannelId"),
|
|
92
|
+
weight: requireFinite(record.weight, path + ".weight")
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
function parseKernel(value, path) {
|
|
96
|
+
const record = requireRecord(value, path);
|
|
97
|
+
if (!Array.isArray(record.contributions) ||
|
|
98
|
+
record.contributions
|
|
99
|
+
.length === 0) {
|
|
100
|
+
throw new InvalidConfigurationError(path +
|
|
101
|
+
".contributions must be a non-empty array.");
|
|
102
|
+
}
|
|
103
|
+
const contributions = record.contributions.map((entry, index) => parseContribution(entry, path +
|
|
104
|
+
".contributions[" +
|
|
105
|
+
index +
|
|
106
|
+
"]"));
|
|
107
|
+
const keys = contributions.map((entry) => entry.offsetX +
|
|
108
|
+
":" +
|
|
109
|
+
entry.offsetY +
|
|
110
|
+
":" +
|
|
111
|
+
entry.sourceChannelId);
|
|
112
|
+
if (new Set(keys).size !==
|
|
113
|
+
keys.length) {
|
|
114
|
+
throw new InvalidConfigurationError(path +
|
|
115
|
+
".contributions must not contain duplicate site/channel references.");
|
|
116
|
+
}
|
|
117
|
+
const sum = contributions.reduce((valueSum, entry) => valueSum + entry.weight, 0);
|
|
118
|
+
if (!Number.isFinite(sum) ||
|
|
119
|
+
Math.abs(sum - 1) >
|
|
120
|
+
1e-12) {
|
|
121
|
+
throw new InvalidConfigurationError(path +
|
|
122
|
+
".contribution weights must sum to one.");
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
outputChannelId: requireNonEmptyString(record.outputChannelId, path +
|
|
126
|
+
".outputChannelId"),
|
|
127
|
+
contributions
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
|
|
132
|
+
* missing required fields and incompatible scientific data fail at this boundary.
|
|
133
|
+
*
|
|
134
|
+
* Reconstruction consumes explicitly bound native post-ADC samples and declared normalized channel
|
|
135
|
+
* kernels. Native CFA phase is absolute and orientation/crop remain downstream. This structural linear
|
|
136
|
+
* reconstruction does not infer spectral sensor primaries, calibrated color or a complete arbitrary
|
|
137
|
+
* demosaic algorithm.
|
|
138
|
+
* @param value - unknown. Treated as untrusted data; static typing alone is not validation.
|
|
139
|
+
* @returns SensorRawReconstructionProfile. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
|
|
140
|
+
*
|
|
141
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
142
|
+
*/
|
|
143
|
+
export function parseSensorRawReconstructionProfile(value) {
|
|
144
|
+
const record = requireRecord(value, "sensorRawReconstructionProfile");
|
|
145
|
+
if (record.schemaVersion !==
|
|
146
|
+
SENSOR_RAW_RECONSTRUCTION_PROFILE_SCHEMA_VERSION) {
|
|
147
|
+
throw new InvalidConfigurationError('sensorRawReconstructionProfile.schemaVersion must be "' +
|
|
148
|
+
SENSOR_RAW_RECONSTRUCTION_PROFILE_SCHEMA_VERSION +
|
|
149
|
+
'".');
|
|
150
|
+
}
|
|
151
|
+
if (record.method !==
|
|
152
|
+
"explicit-linear-native-neighborhood") {
|
|
153
|
+
throw new InvalidConfigurationError('sensorRawReconstructionProfile.method must be "explicit-linear-native-neighborhood".');
|
|
154
|
+
}
|
|
155
|
+
if (record.normalization !==
|
|
156
|
+
"weights-sum-to-one-per-output-channel") {
|
|
157
|
+
throw new InvalidConfigurationError("sensorRawReconstructionProfile.normalization is invalid.");
|
|
158
|
+
}
|
|
159
|
+
if (record
|
|
160
|
+
.negativeBlackSubtractedValuesAllowed !==
|
|
161
|
+
true) {
|
|
162
|
+
throw new InvalidConfigurationError("sensorRawReconstructionProfile.negativeBlackSubtractedValuesAllowed must be true.");
|
|
163
|
+
}
|
|
164
|
+
if (!Array.isArray(record.kernels) ||
|
|
165
|
+
record.kernels.length === 0) {
|
|
166
|
+
throw new InvalidConfigurationError("sensorRawReconstructionProfile.kernels must be a non-empty array.");
|
|
167
|
+
}
|
|
168
|
+
const kernels = record.kernels.map((entry, index) => parseKernel(entry, "sensorRawReconstructionProfile.kernels[" +
|
|
169
|
+
index +
|
|
170
|
+
"]"));
|
|
171
|
+
const outputIds = kernels.map((kernel) => kernel.outputChannelId);
|
|
172
|
+
if (new Set(outputIds).size !==
|
|
173
|
+
outputIds.length) {
|
|
174
|
+
throw new InvalidConfigurationError("sensorRawReconstructionProfile.kernels must not contain duplicate outputChannelId values.");
|
|
175
|
+
}
|
|
176
|
+
return {
|
|
177
|
+
schemaVersion: SENSOR_RAW_RECONSTRUCTION_PROFILE_SCHEMA_VERSION,
|
|
178
|
+
profileId: requireNonEmptyString(record.profileId, "sensorRawReconstructionProfile.profileId"),
|
|
179
|
+
profileVersion: requireNonEmptyString(record.profileVersion, "sensorRawReconstructionProfile.profileVersion"),
|
|
180
|
+
captureModeId: requireNonEmptyString(record.captureModeId, "sensorRawReconstructionProfile.captureModeId"),
|
|
181
|
+
colorSamplingProfileId: requireNonEmptyString(record.colorSamplingProfileId, "sensorRawReconstructionProfile.colorSamplingProfileId"),
|
|
182
|
+
scientificStatus: parseStatus(record.scientificStatus, "sensorRawReconstructionProfile.scientificStatus"),
|
|
183
|
+
method: "explicit-linear-native-neighborhood",
|
|
184
|
+
normalization: "weights-sum-to-one-per-output-channel",
|
|
185
|
+
negativeBlackSubtractedValuesAllowed: true,
|
|
186
|
+
kernels,
|
|
187
|
+
evidence: parseEvidenceList(record.evidence, "sensorRawReconstructionProfile.evidence"),
|
|
188
|
+
limitations: parseLimitations(record.limitations, "sensorRawReconstructionProfile.limitations")
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Commit one validated native RAW sample with exact site/channel/event identity for declared
|
|
193
|
+
* reconstruction.
|
|
194
|
+
*
|
|
195
|
+
* Reconstruction consumes explicitly bound native post-ADC samples and declared normalized channel
|
|
196
|
+
* kernels. Native CFA phase is absolute and orientation/crop remain downstream. This structural linear
|
|
197
|
+
* reconstruction does not infer spectral sensor primaries, calibrated color or a complete arbitrary
|
|
198
|
+
* demosaic algorithm.
|
|
199
|
+
* @param input - CreateSensorRawCaptureSampleInput. See the linked contract for coordinate, unit and profile binding semantics.
|
|
200
|
+
* @returns SensorRawCaptureSample. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
|
|
201
|
+
*
|
|
202
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
203
|
+
*/
|
|
204
|
+
export function createSensorRawCaptureSample(input) {
|
|
205
|
+
const raw = input.rawCode;
|
|
206
|
+
const contributors = input.contributors;
|
|
207
|
+
if (contributors
|
|
208
|
+
.modeSamplingKind !==
|
|
209
|
+
"native-effective-raster" ||
|
|
210
|
+
contributors.grouping !==
|
|
211
|
+
null ||
|
|
212
|
+
contributors
|
|
213
|
+
.totalContributorSites !==
|
|
214
|
+
1 ||
|
|
215
|
+
contributors
|
|
216
|
+
.colorSamplingSiteRect
|
|
217
|
+
.width !== 1 ||
|
|
218
|
+
contributors
|
|
219
|
+
.colorSamplingSiteRect
|
|
220
|
+
.height !== 1) {
|
|
221
|
+
throw new InvalidScientificInputError("RAW site creation schema 0.1.0 requires one ungrouped native-effective capture-mode sample bound to exactly one color-sampling site; grouped/remosaic modes need explicit signal-combination weights.");
|
|
222
|
+
}
|
|
223
|
+
if (contributors
|
|
224
|
+
.colorSamplingProfileId !==
|
|
225
|
+
raw.colorSamplingProfileId) {
|
|
226
|
+
throw new InvalidScientificInputError("RAW readout color-sampling profile identity must match the capture-mode contributor binding.");
|
|
227
|
+
}
|
|
228
|
+
if (contributors
|
|
229
|
+
.channelComposition.kind !==
|
|
230
|
+
"single-channel" ||
|
|
231
|
+
contributors
|
|
232
|
+
.channelComposition
|
|
233
|
+
.channelId !==
|
|
234
|
+
raw.channelId) {
|
|
235
|
+
throw new InvalidScientificInputError("RAW readout channel must match the capture-mode color-sampling contributor channel.");
|
|
236
|
+
}
|
|
237
|
+
if (raw.site.x !==
|
|
238
|
+
contributors
|
|
239
|
+
.colorSamplingSiteRect.x ||
|
|
240
|
+
raw.site.y !==
|
|
241
|
+
contributors
|
|
242
|
+
.colorSamplingSiteRect.y) {
|
|
243
|
+
throw new InvalidScientificInputError("RAW readout site must match the exact capture-mode color-sampling contributor site.");
|
|
244
|
+
}
|
|
245
|
+
const denominator = raw.digitalSaturationCode -
|
|
246
|
+
raw.blackLevelCode;
|
|
247
|
+
if (denominator <= 0) {
|
|
248
|
+
throw new InvalidScientificInputError("RAW black/white code span must be positive.");
|
|
249
|
+
}
|
|
250
|
+
return {
|
|
251
|
+
version: SENSOR_RAW_CAPTURE_SAMPLE_VERSION,
|
|
252
|
+
captureModeId: contributors.modeId,
|
|
253
|
+
modeSampleCoordinateSystem: "capture-mode-full-frame-effective-sample-index",
|
|
254
|
+
modeSampleIndexFullFrame: {
|
|
255
|
+
...contributors
|
|
256
|
+
.modeSampleIndexFullFrame
|
|
257
|
+
},
|
|
258
|
+
colorSamplingProfileId: raw.colorSamplingProfileId,
|
|
259
|
+
colorSamplingSite: {
|
|
260
|
+
...raw.site
|
|
261
|
+
},
|
|
262
|
+
channelId: raw.channelId,
|
|
263
|
+
rawCode: raw.rawCode,
|
|
264
|
+
blackLevelCode: raw.blackLevelCode,
|
|
265
|
+
digitalSaturationCode: raw.digitalSaturationCode,
|
|
266
|
+
blackSubtractedNormalizedCode: (raw.rawCode -
|
|
267
|
+
raw.blackLevelCode) /
|
|
268
|
+
denominator,
|
|
269
|
+
readoutProfileId: raw.readoutProfileId,
|
|
270
|
+
readoutRegimeId: raw.regimeId,
|
|
271
|
+
sourceChargeSeedUint32: raw.chargeSeedUint32,
|
|
272
|
+
sourceReadNoiseSeedUint32: raw.readNoiseSeedUint32,
|
|
273
|
+
physicalScalarSaturationApplied: raw
|
|
274
|
+
.physicalScalarSaturationApplied,
|
|
275
|
+
digitalSaturationApplied: raw
|
|
276
|
+
.digitalSaturationApplied,
|
|
277
|
+
cfaPhasePreservedInNativeCoordinates: true,
|
|
278
|
+
physicalOrientationApplied: false,
|
|
279
|
+
outputRotationApplied: false,
|
|
280
|
+
groupedModeCombinationApplied: false,
|
|
281
|
+
reconstructionApplied: false,
|
|
282
|
+
aliasingModeled: false,
|
|
283
|
+
moireModeled: false
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
function requireCenterSite(value) {
|
|
287
|
+
return {
|
|
288
|
+
x: requireNonNegativeSafeIntegerInput(value.x, "centerSite.x"),
|
|
289
|
+
y: requireNonNegativeSafeIntegerInput(value.y, "centerSite.y")
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Gather exactly supplied native channel contributions through explicit normalized kernels while
|
|
294
|
+
* preserving CFA identity and signed black-subtracted values.
|
|
295
|
+
*
|
|
296
|
+
* Reconstruction consumes explicitly bound native post-ADC samples and declared normalized channel
|
|
297
|
+
* kernels. Native CFA phase is absolute and orientation/crop remain downstream. This structural linear
|
|
298
|
+
* reconstruction does not infer spectral sensor primaries, calibrated color or a complete arbitrary
|
|
299
|
+
* demosaic algorithm.
|
|
300
|
+
* @param input - ResolveSensorRawReconstructionInput. See the linked contract for coordinate, unit and profile binding semantics.
|
|
301
|
+
* @returns CalculationResult<SensorRawReconstructedPixel>. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
|
|
302
|
+
*
|
|
303
|
+
* @see docs/API_REFERENCE.md for the root export and exact type graph.
|
|
304
|
+
*/
|
|
305
|
+
export function resolveSensorRawReconstruction(input) {
|
|
306
|
+
const profile = parseSensorRawReconstructionProfile(input.profile);
|
|
307
|
+
const center = requireCenterSite(input.centerSite);
|
|
308
|
+
const colorSamplingProfile = parseSensorColorSamplingProfile(input.colorSamplingProfile);
|
|
309
|
+
if (colorSamplingProfile.profileId !==
|
|
310
|
+
profile.colorSamplingProfileId) {
|
|
311
|
+
throw new InvalidScientificInputError("Reconstruction color-sampling profile identity must match the reconstruction profile.");
|
|
312
|
+
}
|
|
313
|
+
if (!Array.isArray(input.samples) ||
|
|
314
|
+
input.samples.length === 0) {
|
|
315
|
+
throw new InvalidScientificInputError("samples must be a non-empty RAW neighborhood.");
|
|
316
|
+
}
|
|
317
|
+
for (const sample of input.samples) {
|
|
318
|
+
if (sample.captureModeId !==
|
|
319
|
+
profile.captureModeId ||
|
|
320
|
+
sample
|
|
321
|
+
.colorSamplingProfileId !==
|
|
322
|
+
profile
|
|
323
|
+
.colorSamplingProfileId) {
|
|
324
|
+
throw new InvalidScientificInputError("Every RAW neighborhood sample must match the reconstruction profile capture-mode and color-sampling identities.");
|
|
325
|
+
}
|
|
326
|
+
const resolvedSite = resolveColorSamplingSite({
|
|
327
|
+
profile: colorSamplingProfile,
|
|
328
|
+
site: sample
|
|
329
|
+
.colorSamplingSite
|
|
330
|
+
});
|
|
331
|
+
if (resolvedSite.mapping
|
|
332
|
+
.channelId !==
|
|
333
|
+
sample.channelId) {
|
|
334
|
+
throw new InvalidScientificInputError("RAW neighborhood sample channelId must match the declared color-sampling topology at its native site.");
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
const sampleMap = new Map(input.samples.map((sample) => [
|
|
338
|
+
sample.colorSamplingSite.x +
|
|
339
|
+
":" +
|
|
340
|
+
sample.colorSamplingSite.y +
|
|
341
|
+
":" +
|
|
342
|
+
sample.channelId,
|
|
343
|
+
sample
|
|
344
|
+
]));
|
|
345
|
+
if (sampleMap.size !==
|
|
346
|
+
input.samples.length) {
|
|
347
|
+
throw new InvalidScientificInputError("RAW neighborhood must not contain duplicate site/channel samples.");
|
|
348
|
+
}
|
|
349
|
+
const outputChannels = profile.kernels.map((kernel) => {
|
|
350
|
+
let value = 0;
|
|
351
|
+
const sourceContributions = kernel.contributions.map((contribution) => {
|
|
352
|
+
const x = center.x +
|
|
353
|
+
contribution.offsetX;
|
|
354
|
+
const y = center.y +
|
|
355
|
+
contribution.offsetY;
|
|
356
|
+
if (x < 0 ||
|
|
357
|
+
y < 0) {
|
|
358
|
+
throw new InvalidScientificInputError("RAW reconstruction kernel references a site outside the non-negative native sensor coordinate domain.");
|
|
359
|
+
}
|
|
360
|
+
const key = x +
|
|
361
|
+
":" +
|
|
362
|
+
y +
|
|
363
|
+
":" +
|
|
364
|
+
contribution
|
|
365
|
+
.sourceChannelId;
|
|
366
|
+
const sample = sampleMap.get(key);
|
|
367
|
+
if (sample ===
|
|
368
|
+
undefined) {
|
|
369
|
+
throw new InvalidScientificInputError("RAW reconstruction neighborhood is missing a required site/channel contribution.");
|
|
370
|
+
}
|
|
371
|
+
value +=
|
|
372
|
+
sample
|
|
373
|
+
.blackSubtractedNormalizedCode *
|
|
374
|
+
contribution.weight;
|
|
375
|
+
return {
|
|
376
|
+
site: {
|
|
377
|
+
x,
|
|
378
|
+
y
|
|
379
|
+
},
|
|
380
|
+
sourceChannelId: contribution
|
|
381
|
+
.sourceChannelId,
|
|
382
|
+
weight: contribution.weight,
|
|
383
|
+
sourceValue: sample
|
|
384
|
+
.blackSubtractedNormalizedCode
|
|
385
|
+
};
|
|
386
|
+
});
|
|
387
|
+
if (!Number.isFinite(value)) {
|
|
388
|
+
throw new InvalidScientificInputError("Reconstructed linear channel value must remain finite.");
|
|
389
|
+
}
|
|
390
|
+
return {
|
|
391
|
+
channelId: kernel.outputChannelId,
|
|
392
|
+
linearBlackSubtractedNormalizedValue: value,
|
|
393
|
+
sourceContributions
|
|
394
|
+
};
|
|
395
|
+
});
|
|
396
|
+
return approximationResult({
|
|
397
|
+
reconstructionProfileId: profile.profileId,
|
|
398
|
+
reconstructionProfileVersion: profile.profileVersion,
|
|
399
|
+
captureModeId: profile.captureModeId,
|
|
400
|
+
colorSamplingProfileId: profile
|
|
401
|
+
.colorSamplingProfileId,
|
|
402
|
+
centerSite: center,
|
|
403
|
+
outputChannels,
|
|
404
|
+
method: "explicit-linear-native-neighborhood",
|
|
405
|
+
cfaAware: true,
|
|
406
|
+
captureModeAware: true,
|
|
407
|
+
physicalOrientationApplied: false,
|
|
408
|
+
outputRotationApplied: false,
|
|
409
|
+
sharpeningApplied: false,
|
|
410
|
+
denoisingApplied: false,
|
|
411
|
+
aliasingModeled: false,
|
|
412
|
+
moireModeled: false,
|
|
413
|
+
preSamplingOpticalTransferAdequacyEstablished: false,
|
|
414
|
+
reconstructionDoesNotModifyRawSamples: true
|
|
415
|
+
}, "sensor-raw-explicit-linear-reconstruction", "1.0.0", [
|
|
416
|
+
"Reconstruction uses only explicitly declared linear native-neighborhood weights tied to exact capture-mode and color-sampling identities.",
|
|
417
|
+
"No manufacturer-specific CFA algorithm or branded demosaic behavior is inferred from topology labels.",
|
|
418
|
+
"RAW samples remain in invariant native sensor/CFA coordinates; physical orientation and final output rotation are downstream.",
|
|
419
|
+
"Negative black-subtracted values are preserved through the linear reconstruction instead of being silently clamped.",
|
|
420
|
+
"Sharpening and denoising are not part of RAW reconstruction.",
|
|
421
|
+
"Aliasing and moire are explicitly not modeled because this reconstruction contract does not establish an adequate pre-sampling optical transfer/scene-frequency model."
|
|
422
|
+
]);
|
|
423
|
+
}
|
|
424
|
+
//# sourceMappingURL=raw-reconstruction.js.map
|