@photivra/engine 1.4.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 +401 -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 +118 -5
- package/dist/capture/native-raw-development.js +224 -59
- 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 +67 -10
- package/dist/capture/native-raw.js +90 -24
- 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 -4
- package/docs/api/capture-native-raw-dng.md +84 -0
- package/docs/api/capture-native-raw.md +23 -8
- 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/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 -47
- 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_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/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/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,14 +1,32 @@
|
|
|
1
1
|
# capture/native-raw-development.ts public contracts
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The package and root API versions are recorded once in [Navigation](../API_REFERENCE.md) · [Developer guide](https://github.com/Photivra/photivra/blob/main/docs/DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
4
|
|
|
5
5
|
## createNativeRawDevelopmentTask
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Creates a native RAW development task.
|
|
8
|
+
|
|
9
|
+
It checks that every CFA phase has a reconstruction kernel and that every kernel neighbourhood is
|
|
10
|
+
available, takes ownership of the packed RAW (without copying where supported), and renders 256-pixel
|
|
11
|
+
output tiles with the fast typed kernel. Development scales each site to its CFA phase's effective white
|
|
12
|
+
level, clips flagged or white-level sites before white balance, and applies the selected highlight mode
|
|
13
|
+
(see `prepareSensorColorDevelopment`).
|
|
14
|
+
|
|
15
|
+
The RAW numbers are checked in bounded chunks at the start of `run()`, with host yields, so creating the
|
|
16
|
+
task costs only as much as reading the metadata. The task yields to the host at chunk and tile boundaries
|
|
17
|
+
once about 8 ms of work has passed since the last yield, and after the final tile. Yield timing never
|
|
18
|
+
changes the output.
|
|
19
|
+
|
|
20
|
+
`provider` is `{ yieldControl, onProgress? }`, the same shape as the other native task providers. A bare
|
|
21
|
+
yield function is still accepted in 2.x but is deprecated.
|
|
22
|
+
|
|
23
|
+
The tile width used at capture is kept when rebuilding the exact packed plan. That width changes neither
|
|
24
|
+
CFA or noise-seed coordinates nor the developed pixels, and says nothing about transport or what a device
|
|
25
|
+
can handle.
|
|
8
26
|
|
|
9
27
|
```ts
|
|
10
28
|
export function createNativeRawDevelopmentTask(input: NativeRawDevelopmentInput,
|
|
11
|
-
|
|
29
|
+
provider: NativeRawDevelopmentProvider | ((signal:AbortSignal)=>Promise<void>)): NativeRawDevelopmentTask;
|
|
12
30
|
```
|
|
13
31
|
|
|
14
32
|
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
@@ -19,12 +37,26 @@ The exact contract is declared below; use the domain guide for assumptions and s
|
|
|
19
37
|
|
|
20
38
|
```ts
|
|
21
39
|
export interface NativeRawDevelopmentInput {
|
|
40
|
+
/**
|
|
41
|
+
* Packed RAW. Ownership passes to the task. On creation its five typed arrays are detached with
|
|
42
|
+
* `ArrayBuffer.prototype.transfer` (no copy; the caller's arrays become length 0), or copied when
|
|
43
|
+
* the runtime has no `transfer`. The developed output hands back the same RAW, now owned by the output.
|
|
44
|
+
*/
|
|
22
45
|
raw: NativeRawOutput;
|
|
23
46
|
phaseProfiles: readonly RawFrameReconstructionPhaseProfile[];
|
|
24
47
|
colorProfile: ExportSensorColorProfile;
|
|
25
48
|
whiteBalance: "not-required" | "apply-resolved-sensor-gains";
|
|
26
49
|
rendering: SdrRenderingProfile;
|
|
27
|
-
/**
|
|
50
|
+
/** Highlight handling. `clip` (default): clipped highlights become neutral. `reconstruct`: the documented blend toward neutral. */
|
|
51
|
+
highlightMode?: RawHighlightMode;
|
|
52
|
+
/**
|
|
53
|
+
* Frame-edge handling. `reject` (default): every reconstruction neighbourhood must lie inside the
|
|
54
|
+
* native RAW frame. `mirror`: a site outside the frame is read from its mirror image (reflect-101,
|
|
55
|
+
* edge not repeated). This is allowed only when the mirrored site has the same CFA colour, which is
|
|
56
|
+
* always true for a 2×2 Bayer pattern. Interior pixels are unchanged.
|
|
57
|
+
*/
|
|
58
|
+
borderHandling?: RawReconstructionBorderHandling;
|
|
59
|
+
/** Counts the kept packed RAW plus the integer output. It does not count caller buffers, process heap or GPU memory. */
|
|
28
60
|
maximumRetainedPayloadBytes: number;
|
|
29
61
|
}
|
|
30
62
|
```
|
|
@@ -43,6 +75,8 @@ export interface NativeRawDevelopmentOutput {
|
|
|
43
75
|
height: number;
|
|
44
76
|
integerSamples: Uint8Array | Uint16Array;
|
|
45
77
|
diagnostics: SdrRenderingResult["diagnostics"];
|
|
78
|
+
highlight: RawHighlightDiagnostics;
|
|
79
|
+
borderHandling: RawReconstructionBorderHandling;
|
|
46
80
|
outputEncoding: SdrRenderingResult["outputEncoding"];
|
|
47
81
|
rendering: SdrRenderingProfile;
|
|
48
82
|
displayAdaptation: SdrRenderingResult["displayAdaptation"];
|
|
@@ -51,6 +85,19 @@ export interface NativeRawDevelopmentOutput {
|
|
|
51
85
|
}
|
|
52
86
|
```
|
|
53
87
|
|
|
88
|
+
## NativeRawDevelopmentProvider
|
|
89
|
+
|
|
90
|
+
Host callbacks, the same shape as the other native task providers but without a tile reader.
|
|
91
|
+
|
|
92
|
+
```ts
|
|
93
|
+
export interface NativeRawDevelopmentProvider {
|
|
94
|
+
/** Must yield to the host event loop, so cancellation and input events can run between tiles. */
|
|
95
|
+
yieldControl(signal: AbortSignal): Promise<void>;
|
|
96
|
+
/** Optional callback after each committed 256-pixel output tile. It cannot change the output. */
|
|
97
|
+
onProgress?(progress: NativeTaskProgress): void;
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
54
101
|
## NativeRawDevelopmentTask
|
|
55
102
|
|
|
56
103
|
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
@@ -58,9 +105,27 @@ The exact contract is declared below; use the domain guide for assumptions and s
|
|
|
58
105
|
```ts
|
|
59
106
|
export interface NativeRawDevelopmentTask {
|
|
60
107
|
readonly state: NativeRawTaskState;
|
|
108
|
+
readonly completedTileCount: number;
|
|
109
|
+
readonly totalTileCount: number;
|
|
61
110
|
run(): Promise<void>;
|
|
62
111
|
cancel(): void;
|
|
63
112
|
dispose(): void;
|
|
64
113
|
takeOutput(): NativeRawDevelopmentOutput;
|
|
65
114
|
}
|
|
66
115
|
```
|
|
116
|
+
|
|
117
|
+
## RawHighlightDiagnostics
|
|
118
|
+
|
|
119
|
+
RAW saturation handled before white balance. Counts are pixels or samples of the developed output.
|
|
120
|
+
|
|
121
|
+
```ts
|
|
122
|
+
export interface RawHighlightDiagnostics {
|
|
123
|
+
mode: RawHighlightMode;
|
|
124
|
+
/** Output pixels with at least one contributing site at or above its white level, or flagged as saturated. */
|
|
125
|
+
saturatedPixelCount: number;
|
|
126
|
+
/** `clip`: WB-scaled samples clipped at the smallest gain. Always 0 for `reconstruct`. */
|
|
127
|
+
whiteBalanceClippedSampleCount: number;
|
|
128
|
+
/** `reconstruct`: pixels blended toward neutral. Always 0 for `clip`. */
|
|
129
|
+
reconstructedPixelCount: number;
|
|
130
|
+
}
|
|
131
|
+
```
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# capture/native-raw-dng.ts public contracts
|
|
2
|
+
|
|
3
|
+
The package and root API versions are recorded once in [Navigation](../API_REFERENCE.md) · [Developer guide](https://github.com/Photivra/photivra/blob/main/docs/DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
|
+
|
|
5
|
+
## NATIVE_RAW_DNG_SCHEMA_VERSION
|
|
6
|
+
|
|
7
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
NATIVE_RAW_DNG_SCHEMA_VERSION = "1.0.0" as const
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## NativeRawDng
|
|
14
|
+
|
|
15
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
export interface NativeRawDng {
|
|
19
|
+
schemaVersion: typeof NATIVE_RAW_DNG_SCHEMA_VERSION;
|
|
20
|
+
mediaType: "image/dng";
|
|
21
|
+
bytes: Uint8Array;
|
|
22
|
+
sha256: string;
|
|
23
|
+
/** RawDataUniqueID (32 hex digits): the first 128 bits of SHA-256 over a fixed header and the little-endian codes. */
|
|
24
|
+
rawDataUniqueId: string;
|
|
25
|
+
uniqueCameraModel: string;
|
|
26
|
+
/** Stored geometry, levels and colour values exactly as written (rationals as numerator/denominator). */
|
|
27
|
+
activeArea: { x: number; y: number; width: number; height: number };
|
|
28
|
+
defaultCrop: { x: number; y: number; width: number; height: number };
|
|
29
|
+
orientation: number;
|
|
30
|
+
blackLevels: readonly number[];
|
|
31
|
+
whiteLevel: number;
|
|
32
|
+
cfaPattern: readonly number[];
|
|
33
|
+
colorMatrix1: readonly number[];
|
|
34
|
+
asShotNeutral: readonly number[];
|
|
35
|
+
noiseProfile: readonly number[] | null;
|
|
36
|
+
/** Sites flagged saturated whose code is below WhiteLevel; DNG has no field for them. */
|
|
37
|
+
unrepresentedSaturationFlagCount: number;
|
|
38
|
+
source: "packed-native-raw";
|
|
39
|
+
linearMasterDeclared: false;
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## NativeRawDngChannelNoise
|
|
44
|
+
|
|
45
|
+
Output-referred noise parameters of one CFA channel (see the module notes).
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
export interface NativeRawDngChannelNoise {
|
|
49
|
+
/** Electrons per output RAW code (system conversion gain divided by any post-ADC digital gain). */
|
|
50
|
+
conversionGainElectronsPerCode: number;
|
|
51
|
+
/** Combined RMS read noise, electrons. */
|
|
52
|
+
readNoiseRmsElectrons: number;
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## serializeNativeRawDng
|
|
57
|
+
|
|
58
|
+
Writes packed native RAW codes as a lossless, uncompressed CFA DNG. The module notes list every tag and
|
|
59
|
+
where its value comes from. The input arrays are copied before the first await.
|
|
60
|
+
|
|
61
|
+
```ts
|
|
62
|
+
export async function serializeNativeRawDng(input: SerializeNativeRawDngInput): Promise<NativeRawDng>;
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
This call is asynchronous; byte hashing uses the caller runtime's Web Crypto.
|
|
66
|
+
|
|
67
|
+
## SerializeNativeRawDngInput
|
|
68
|
+
|
|
69
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
70
|
+
|
|
71
|
+
```ts
|
|
72
|
+
export interface SerializeNativeRawDngInput {
|
|
73
|
+
/** Packed native RAW. It is read, never taken over or modified. */
|
|
74
|
+
raw: NativeRawOutput;
|
|
75
|
+
/** Declared camera→XYZ (D65) colour profile for the RAW's CFA. Native development uses the same profile. */
|
|
76
|
+
colorProfile: ExportSensorColorProfile;
|
|
77
|
+
/** Optional NoiseProfile parameters by channel ID. If omitted, no NoiseProfile tag is written. */
|
|
78
|
+
noise?: Readonly<Record<string, NativeRawDngChannelNoise>>;
|
|
79
|
+
/** BaselineExposure in EV (exposure value stops). Default 0: the RAW white level maps to display white, as in native development. */
|
|
80
|
+
baselineExposureEv?: number;
|
|
81
|
+
/** Optional UTC time of the capture, exactly YYYY-MM-DDTHH:mm:ss.sssZ. If omitted, no date tags are written; the engine never makes up a clock time. */
|
|
82
|
+
capturedAtUtc?: string;
|
|
83
|
+
}
|
|
84
|
+
```
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# capture/native-raw.ts public contracts
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The package and root API versions are recorded once in [Navigation](../API_REFERENCE.md) · [Developer guide](https://github.com/Photivra/photivra/blob/main/docs/DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
4
|
|
|
5
5
|
## calculateNativeRawPlan
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Plans the task and checks the image size, resources and profiles before any callback or output allocation. No placeholder plane is made.
|
|
8
8
|
|
|
9
9
|
```ts
|
|
10
10
|
export function calculateNativeRawPlan(input: NativeRawInput): NativeRawPlan;
|
|
@@ -14,7 +14,12 @@ This call is synchronous; any supplied provider must follow its explicit synchro
|
|
|
14
14
|
|
|
15
15
|
## createNativeRawTask
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
Runs validated per-site events (EQE photo signal, dark signal, charge completeness) through the shared
|
|
18
|
+
reference per-site physics.
|
|
19
|
+
|
|
20
|
+
Tiles are read and committed one at a time. The task yields to the host at tile boundaries once about
|
|
21
|
+
8 ms of work has passed since the last yield, and after the final tile. It checks for cancellation
|
|
22
|
+
before every tile, after every read and after every yield.
|
|
18
23
|
|
|
19
24
|
```ts
|
|
20
25
|
export function createNativeRawTask(input: NativeRawInput,provider: NativeRawProvider): NativeRawTask;
|
|
@@ -49,7 +54,7 @@ export type NativeRawExposure = Omit<SimulatedCapture, "schemaVersion" | "planes
|
|
|
49
54
|
|
|
50
55
|
## NativeRawExposureInput
|
|
51
56
|
|
|
52
|
-
A shooting event and source
|
|
57
|
+
A shooting event and where its source came from. Not a finished float master or committed RAW frame.
|
|
53
58
|
|
|
54
59
|
```ts
|
|
55
60
|
export type NativeRawExposureInput = Omit<SimulatedCaptureInput, "planes" | "source"> & {source:CaptureExposureSource};
|
|
@@ -69,12 +74,14 @@ export interface NativeRawInput {
|
|
|
69
74
|
bindingProfile: NativeRawProducerFrameContext["bindingProfile"];
|
|
70
75
|
exposureWindow?: SensorRawProducerExposureWindowInput;
|
|
71
76
|
maximumOutputBytes: number;
|
|
77
|
+
/** Optional tile width for execution, in native sites, 1–256. Default 256. It does not affect sampling. */
|
|
78
|
+
tileWidth?: number;
|
|
72
79
|
}
|
|
73
80
|
```
|
|
74
81
|
|
|
75
82
|
## NativeRawOutput
|
|
76
83
|
|
|
77
|
-
|
|
84
|
+
Row-major arrays owned only by the output. They cannot be attached to the bounded SensorRawFrame type.
|
|
78
85
|
|
|
79
86
|
```ts
|
|
80
87
|
export interface NativeRawOutput {
|
|
@@ -82,8 +89,14 @@ export interface NativeRawOutput {
|
|
|
82
89
|
codes: Uint16Array;
|
|
83
90
|
blackLevels: Uint16Array;
|
|
84
91
|
digitalSaturationCodes: Uint16Array;
|
|
85
|
-
/**
|
|
92
|
+
/** Saturation flags. Bit 0: physical charge clamp; bit 1: pre-ADC clamp; bit 2: digital saturation. */
|
|
86
93
|
saturationFlags: Uint8Array;
|
|
94
|
+
/**
|
|
95
|
+
* Effective white (full-saturation) code for each absolute CFA repeat phase, indexed
|
|
96
|
+
* `phaseY*repeatWidthSites+phaseX`: min(digital saturation, round(black + min(capacity, pre-ADC
|
|
97
|
+
* saturation)/gain)). See `calculateEffectiveSaturationCode`. A few bytes, not one value per pixel.
|
|
98
|
+
*/
|
|
99
|
+
effectiveSaturationCodes: Uint16Array;
|
|
87
100
|
}
|
|
88
101
|
```
|
|
89
102
|
|
|
@@ -100,8 +113,10 @@ export interface NativeRawPlan {
|
|
|
100
113
|
pixelCount: number;
|
|
101
114
|
outputBytes: number;
|
|
102
115
|
tileCount: number;
|
|
116
|
+
/** Present only when an execution tile width was given. Otherwise the plan keeps its earlier shape. */
|
|
117
|
+
tileWidth?: number;
|
|
103
118
|
upstreamRadiometryVerified: false;
|
|
104
|
-
seedSchedule: "capture-seed-
|
|
119
|
+
seedSchedule: "murmur3-capture-seed-native-index-stream-v2";
|
|
105
120
|
}
|
|
106
121
|
```
|
|
107
122
|
|
|
@@ -150,7 +165,7 @@ export interface NativeRawTile extends NativeRawTileRequest { sites: readonly Se
|
|
|
150
165
|
|
|
151
166
|
## NativeRawTileRequest
|
|
152
167
|
|
|
153
|
-
|
|
168
|
+
Tile rectangle, in absolute full-sensor CFA coordinates, before orientation, active-area crop or output scaling.
|
|
154
169
|
|
|
155
170
|
```ts
|
|
156
171
|
export interface NativeRawTileRequest { captureId: string; frameId: string; x: number; y: number; width: number; height: number }
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# capture/packed-sensor-raw.ts public contracts
|
|
2
|
+
|
|
3
|
+
The package and root API versions are recorded once in [Navigation](../API_REFERENCE.md) · [Developer guide](https://github.com/Photivra/photivra/blob/main/docs/DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
|
+
|
|
5
|
+
## calculatePackedSensorRawPlan
|
|
6
|
+
|
|
7
|
+
Validates the request (every array value once) and returns its plan.
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
export function calculatePackedSensorRawPlan(input: PackedSensorRawInput): PackedSensorRawPlan;
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
14
|
+
|
|
15
|
+
## PACKED_SENSOR_RAW_LIMITS
|
|
16
|
+
|
|
17
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
PACKED_SENSOR_RAW_LIMITS = Object.freeze({
|
|
21
|
+
maximumRegionSites: 24_000_000,
|
|
22
|
+
maximumNativeSites: 0xffffffff,
|
|
23
|
+
maximumDimension: 65_535,
|
|
24
|
+
maximumAdcBitDepth: 16,
|
|
25
|
+
maximumReadNoiseComponents: 16,
|
|
26
|
+
maximumAdditionalChargeComponents: 8
|
|
27
|
+
})
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## PACKED_SENSOR_RAW_SCHEMA_VERSION
|
|
31
|
+
|
|
32
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
PACKED_SENSOR_RAW_SCHEMA_VERSION = "0.1.0" as const
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## PackedSensorAdditionalChargeComponent
|
|
39
|
+
|
|
40
|
+
One additional stored-charge component, realized after photo and dark charge in declaration order.
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
export interface PackedSensorAdditionalChargeComponent {
|
|
44
|
+
componentId: string;
|
|
45
|
+
/** `poisson` draws from the charge stream; `deterministic-expected-electron-equivalent` adds the expectation. */
|
|
46
|
+
model: SensorAdditionalChargeSamplingModel;
|
|
47
|
+
/** Expected electrons per region site, row-major. Finite, ≥ 0. */
|
|
48
|
+
expectedElectrons: Float32Array | Float64Array;
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## PackedSensorFixedPatternNoise
|
|
53
|
+
|
|
54
|
+
Optional fixed-pattern noise for a packed region. The colour-sampling site of native site (X, Y) is
|
|
55
|
+
(X + siteOrigin.x, Y + siteOrigin.y); the pattern is seeded from those coordinates, as in
|
|
56
|
+
`calculateSensorFixedPatternSite`.
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
export interface PackedSensorFixedPatternNoise {
|
|
60
|
+
profile: SensorFixedPatternNoiseProfile;
|
|
61
|
+
/** Must equal `profile.colorSamplingProfileId`. */
|
|
62
|
+
colorSamplingProfileId: string;
|
|
63
|
+
siteOrigin: { x: number; y: number };
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## PackedSensorRawDiagnostics
|
|
68
|
+
|
|
69
|
+
Per-region saturation and clamp counts, as in the per-site readout diagnostics.
|
|
70
|
+
|
|
71
|
+
```ts
|
|
72
|
+
export interface PackedSensorRawDiagnostics {
|
|
73
|
+
physicalSaturationSiteCount: number;
|
|
74
|
+
preAdcSaturationSiteCount: number;
|
|
75
|
+
digitalSaturationSiteCount: number;
|
|
76
|
+
lowerClampSiteCount: number;
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## PackedSensorRawInput
|
|
81
|
+
|
|
82
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
83
|
+
|
|
84
|
+
```ts
|
|
85
|
+
export interface PackedSensorRawInput {
|
|
86
|
+
schemaVersion: typeof PACKED_SENSOR_RAW_SCHEMA_VERSION;
|
|
87
|
+
/** Full native raster. Site seeds use the absolute index `(region.y + row) * nativeWidth + region.x + column`. */
|
|
88
|
+
nativeWidth: number;
|
|
89
|
+
nativeHeight: number;
|
|
90
|
+
/** Region of the native raster to simulate, in native sites. */
|
|
91
|
+
region: { x: number; y: number; width: number; height: number };
|
|
92
|
+
/** The committed capture's noise seed (`capture.noise.seedUint32`). */
|
|
93
|
+
captureSeedUint32: number;
|
|
94
|
+
/** Expected photo-generated electrons per region site (EQE and local exposure applied), row-major. Finite, ≥ 0. */
|
|
95
|
+
photoElectrons: Float32Array | Float64Array;
|
|
96
|
+
/** Expected dark electrons per region site, row-major. Finite, ≥ 0. */
|
|
97
|
+
darkElectrons: Float32Array | Float64Array;
|
|
98
|
+
/** Physical charge storage capacity in electrons, the same at every site. */
|
|
99
|
+
physicalChargeCapacityElectrons: number;
|
|
100
|
+
readoutProfile: SensorReadoutConversionProfile;
|
|
101
|
+
regimeId: string;
|
|
102
|
+
/** Optional (2.0). */
|
|
103
|
+
fixedPatternNoise?: PackedSensorFixedPatternNoise;
|
|
104
|
+
/** Optional (2.0), at most 8. */
|
|
105
|
+
additionalChargeComponents?: readonly PackedSensorAdditionalChargeComponent[];
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## PackedSensorRawPlan
|
|
110
|
+
|
|
111
|
+
Validated plan. Arrays are borrowed, not copied.
|
|
112
|
+
|
|
113
|
+
```ts
|
|
114
|
+
export interface PackedSensorRawPlan {
|
|
115
|
+
nativeWidth: number;
|
|
116
|
+
nativeHeight: number;
|
|
117
|
+
region: Readonly<{ x: number; y: number; width: number; height: number }>;
|
|
118
|
+
siteCount: number;
|
|
119
|
+
captureSeedUint32: number;
|
|
120
|
+
physicalChargeCapacityElectrons: number;
|
|
121
|
+
readout: ResolvedSensorReadoutRegime;
|
|
122
|
+
noiseModel: typeof SENSOR_RAW_PRODUCER_NOISE_MODEL;
|
|
123
|
+
seedSchedule: "murmur3-capture-seed-native-index-stream-v2";
|
|
124
|
+
/** Largest expected photo and dark electron counts in the region (before fixed-pattern factors). */
|
|
125
|
+
maximumPhotoElectrons: number;
|
|
126
|
+
maximumDarkElectrons: number;
|
|
127
|
+
/** Parsed fixed-pattern profile and colour-site origin, or null. */
|
|
128
|
+
fixedPatternNoise: Readonly<{ profile: SensorFixedPatternNoiseProfile; siteOrigin: Readonly<{ x: number; y: number }> }> | null;
|
|
129
|
+
/** Additional components (identity, model and largest expectation); their arrays stay on the input. */
|
|
130
|
+
additionalChargeComponents: readonly Readonly<{ componentId: string; model: SensorAdditionalChargeSamplingModel; maximumExpectedElectrons: number }>[];
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## PackedSensorRawResult
|
|
135
|
+
|
|
136
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
137
|
+
|
|
138
|
+
```ts
|
|
139
|
+
export interface PackedSensorRawResult {
|
|
140
|
+
plan: PackedSensorRawPlan;
|
|
141
|
+
/** RAW codes, row-major over the region. */
|
|
142
|
+
codes: Uint16Array;
|
|
143
|
+
diagnostics: PackedSensorRawDiagnostics;
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## simulatePackedSensorRaw
|
|
148
|
+
|
|
149
|
+
Synchronous float64 reference for a bounded region. Use the image-kernel accelerator for large
|
|
150
|
+
regions, host yields or the `webgpu-f32` backend.
|
|
151
|
+
|
|
152
|
+
```ts
|
|
153
|
+
export function simulatePackedSensorRaw(input: PackedSensorRawInput): PackedSensorRawResult;
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# capture/photographic-export.ts public contracts
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The package and root API versions are recorded once in [Navigation](../API_REFERENCE.md) · [Developer guide](https://github.com/Photivra/photivra/blob/main/docs/DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
4
|
|
|
5
5
|
## calculateProcessedSensorRaw
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Reconstructs the exact attached RAW, develops colour and WB once, corrects, orients and crops, and encodes SDR. No file or display I/O.
|
|
8
8
|
|
|
9
9
|
```ts
|
|
10
10
|
export function calculateProcessedSensorRaw(input: ProcessedSensorRawInput): CalculationResult<ProcessedSensorRawResult>;
|
|
@@ -14,24 +14,24 @@ This call is synchronous; any supplied provider must follow its explicit synchro
|
|
|
14
14
|
|
|
15
15
|
## createPhotographicExportPair
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
Writes one RAW capture as a lossless, uncompressed CFA DNG and a separately encoded baseline JPEG.
|
|
18
|
+
Shared metadata comes from the committed capture. Orientation, WB and rendering never rewrite the
|
|
19
|
+
native RAW codes.
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
frame through explicit reconstruction, approximate sensor-channel
|
|
23
|
-
File identity and RAW data identity are
|
|
24
|
-
before the first await.
|
|
21
|
+
The DNG keeps one revalidated native RAW frame (after the ADC) unchanged. The JPEG develops that same
|
|
22
|
+
frame through explicit reconstruction, an approximate sensor-channel colour and WB conversion, and SDR
|
|
23
|
+
rendering. File identity and RAW data identity are separate. Hashing is asynchronous; input data is
|
|
24
|
+
copied before the first await. The full sensor is limited to 4096 sites.
|
|
25
25
|
|
|
26
26
|
```ts
|
|
27
|
-
export async function createPhotographicExportPair(input: PhotographicExportInput): Promise<PhotographicExportPair>;
|
|
27
|
+
export async function createPhotographicExportPair(input: PhotographicExportInput, options: PhotographicExportOptions = {}): Promise<PhotographicExportPair>;
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
This call is asynchronous; byte hashing uses the caller runtime's Web Crypto.
|
|
31
31
|
|
|
32
32
|
## ExportSensorColorProfile
|
|
33
33
|
|
|
34
|
-
Explicit
|
|
34
|
+
Explicit, approximate conversion from normalized camera channels to scene XYZ (D65). Never guessed from RGB or CFA channel names.
|
|
35
35
|
|
|
36
36
|
```ts
|
|
37
37
|
export interface ExportSensorColorProfile {
|
|
@@ -50,7 +50,7 @@ export interface ExportSensorColorProfile {
|
|
|
50
50
|
|
|
51
51
|
## parseExportSensorColorProfile
|
|
52
52
|
|
|
53
|
-
Validates
|
|
53
|
+
Validates the separately supplied numeric colour-profile evidence, and ties the approximate profile to the exact CFA profile.
|
|
54
54
|
|
|
55
55
|
```ts
|
|
56
56
|
export function parseExportSensorColorProfile(value: unknown): ExportSensorColorProfile;
|
|
@@ -60,7 +60,7 @@ This call is synchronous; any supplied provider must follow its explicit synchro
|
|
|
60
60
|
|
|
61
61
|
## parsePhotographicExportInput
|
|
62
62
|
|
|
63
|
-
Adds file metadata
|
|
63
|
+
Adds file metadata and encoding checks to the shared RAW processing settings.
|
|
64
64
|
|
|
65
65
|
```ts
|
|
66
66
|
export function parsePhotographicExportInput(value: unknown): PhotographicExportInput;
|
|
@@ -70,11 +70,11 @@ This call is synchronous; any supplied provider must follow its explicit synchro
|
|
|
70
70
|
|
|
71
71
|
## parseProcessedSensorRawInput
|
|
72
72
|
|
|
73
|
-
Revalidates one attached RAW snapshot and explicit processing
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
correction support or
|
|
77
|
-
|
|
73
|
+
Revalidates one attached RAW snapshot and the explicit processing settings.
|
|
74
|
+
|
|
75
|
+
Crop sampling and reconstruction coverage problems fail here, before per-pixel work. Passing this
|
|
76
|
+
check does not prove kernel support at the edges, correction support or that the file can be encoded;
|
|
77
|
+
those are still checked during execution. The input is copied. No file or display code runs.
|
|
78
78
|
|
|
79
79
|
```ts
|
|
80
80
|
export function parseProcessedSensorRawInput(value: unknown): ProcessedSensorRawInput;
|
|
@@ -82,6 +82,18 @@ export function parseProcessedSensorRawInput(value: unknown): ProcessedSensorRaw
|
|
|
82
82
|
|
|
83
83
|
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
84
84
|
|
|
85
|
+
## PHOTOGRAPHIC_EXPORT_PIPELINE_VERSION
|
|
86
|
+
|
|
87
|
+
Version of the RAW and processed pipeline, recorded in XMP.
|
|
88
|
+
|
|
89
|
+
0.2.0: development scales to the effective white level, handles saturation, and fixes WB for colour
|
|
90
|
+
matrices that are not white-normalized. DNG output fixes WhiteLevel, AsShotNeutral and BlackLevel/CFA
|
|
91
|
+
phase, and adds the DNG 1.4 tags ForwardMatrix1, BaselineExposure, NoiseProfile and AnalogBalance.
|
|
92
|
+
|
|
93
|
+
```ts
|
|
94
|
+
PHOTOGRAPHIC_EXPORT_PIPELINE_VERSION = "0.2.0" as const
|
|
95
|
+
```
|
|
96
|
+
|
|
85
97
|
## PHOTOGRAPHIC_EXPORT_SCHEMA_VERSION
|
|
86
98
|
|
|
87
99
|
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
@@ -92,7 +104,7 @@ PHOTOGRAPHIC_EXPORT_SCHEMA_VERSION = "0.1.0" as const
|
|
|
92
104
|
|
|
93
105
|
## PhotographicExportInput
|
|
94
106
|
|
|
95
|
-
Optional
|
|
107
|
+
Optional export settings. The engine uses no files, clocks, randomness, network or external encoder.
|
|
96
108
|
|
|
97
109
|
```ts
|
|
98
110
|
export interface PhotographicExportInput {
|
|
@@ -101,18 +113,31 @@ export interface PhotographicExportInput {
|
|
|
101
113
|
whiteBalance: "not-required" | "apply-resolved-sensor-gains";
|
|
102
114
|
rendering: SdrRenderingProfile;
|
|
103
115
|
metadata: Omit<CaptureExportMetadataInput, "capture">;
|
|
104
|
-
/**
|
|
116
|
+
/** Public scene ID and version declared by the caller. They must match the committed scene state. */
|
|
105
117
|
sceneProfile: { id: string; version: string; sceneStateId: string };
|
|
106
|
-
/** JPEG constant quantization step 1..255
|
|
118
|
+
/** JPEG constant quantization step, 1..255. It is not an imitation of a manufacturer's "quality" scale. */
|
|
107
119
|
jpegQuantizationStep: number;
|
|
108
|
-
/** Optional native
|
|
120
|
+
/** Optional lens correction in native optical coordinates, applied after colour. JPEG only; the RAW records it as information. */
|
|
109
121
|
correction?: CaptureCorrectedSdrInput["correction"];
|
|
122
|
+
/** How RAW highlights are handled before WB; default `clip`. See `prepareSensorColorDevelopment`. */
|
|
123
|
+
highlightMode?: RawHighlightMode;
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## PhotographicExportOptions
|
|
128
|
+
|
|
129
|
+
Options for {@link createPhotographicExportPair}.
|
|
130
|
+
|
|
131
|
+
```ts
|
|
132
|
+
export interface PhotographicExportOptions {
|
|
133
|
+
/** Aborting rejects with a domain error at the next step. No partial pair is returned. */
|
|
134
|
+
signal?: AbortSignal;
|
|
110
135
|
}
|
|
111
136
|
```
|
|
112
137
|
|
|
113
138
|
## PhotographicExportPair
|
|
114
139
|
|
|
115
|
-
|
|
140
|
+
The byte arrays belong to the caller and can be changed. IDs and hashes refer to the exact bytes as first returned.
|
|
116
141
|
|
|
117
142
|
```ts
|
|
118
143
|
export interface PhotographicExportPair {
|
|
@@ -125,10 +150,12 @@ export interface PhotographicExportPair {
|
|
|
125
150
|
source: CalculationResult<RawFrameReconstruction>;
|
|
126
151
|
rendering: CalculationResult<SdrRenderingResult>;
|
|
127
152
|
nativeDefaultCrop: RasterRect;
|
|
128
|
-
/**
|
|
153
|
+
/** The JPEG's rectangle in the oriented output. It never replaces the RAW's default crop. */
|
|
129
154
|
processedOutputView: { rect: RasterRect; pixelWidth: number; pixelHeight: number };
|
|
130
155
|
correction: CalculationResult<CaptureCorrectedSdrResult> | null;
|
|
131
156
|
rawCorrectionIntent: CalculationResult<ResolvedLensCorrectionPlan> | null;
|
|
157
|
+
/** RAW saturation handled before WB in the JPEG development. */
|
|
158
|
+
highlight: RawHighlightDiagnostics;
|
|
132
159
|
imageDataPairing: "jpeg-generated-from-exact-attached-raw";
|
|
133
160
|
dng: { mediaType: "image/dng"; bytes: Uint8Array; sha256: string };
|
|
134
161
|
jpeg: { mediaType: "image/jpeg"; bytes: Uint8Array; sha256: string };
|
|
@@ -136,22 +163,31 @@ export interface PhotographicExportPair {
|
|
|
136
163
|
}
|
|
137
164
|
```
|
|
138
165
|
|
|
166
|
+
## PROCESSED_SENSOR_RAW_MODEL_VERSION
|
|
167
|
+
|
|
168
|
+
Version of the `processed-sensor-raw-sdr` model (0.2.0: scaling to effective white, saturation and WB fixes).
|
|
169
|
+
|
|
170
|
+
```ts
|
|
171
|
+
PROCESSED_SENSOR_RAW_MODEL_VERSION = "0.2.0" as const
|
|
172
|
+
```
|
|
173
|
+
|
|
139
174
|
## ProcessedSensorRawInput
|
|
140
175
|
|
|
141
|
-
Explicit
|
|
176
|
+
Explicit RAW development settings (after the ADC), shared by the preview and the file output.
|
|
142
177
|
|
|
143
178
|
```ts
|
|
144
179
|
export type ProcessedSensorRawInput = Pick<PhotographicExportInput,
|
|
145
|
-
"reconstruction" | "colorProfile" | "whiteBalance" | "rendering" | "correction">;
|
|
180
|
+
"reconstruction" | "colorProfile" | "whiteBalance" | "rendering" | "correction" | "highlightMode">;
|
|
146
181
|
```
|
|
147
182
|
|
|
148
183
|
## ProcessedSensorRawResult
|
|
149
184
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
185
|
+
Processing record for the preview and JPEG, derived from the exact attached native RAW.
|
|
186
|
+
|
|
187
|
+
Each step (reconstruction, colour, WB, correction, rendering) reports its input and output domains and
|
|
188
|
+
its own clipping and cost diagnostics. The output view is oriented and cropped SDR. The native default
|
|
189
|
+
crop and the physical capture history are unchanged. The returned arrays are the pixels before file
|
|
190
|
+
encoding, not a decoded (lossy) JPEG.
|
|
155
191
|
|
|
156
192
|
```ts
|
|
157
193
|
export interface ProcessedSensorRawResult {
|
|
@@ -168,5 +204,7 @@ export interface ProcessedSensorRawResult {
|
|
|
168
204
|
processedOutputView: PhotographicExportPair["processedOutputView"];
|
|
169
205
|
correction: CalculationResult<CaptureCorrectedSdrResult> | null;
|
|
170
206
|
rawCorrectionIntent: CalculationResult<ResolvedLensCorrectionPlan> | null;
|
|
207
|
+
/** RAW saturation handled before WB, over the developed image. */
|
|
208
|
+
highlight: RawHighlightDiagnostics;
|
|
171
209
|
}
|
|
172
210
|
```
|