Home / Docs-Technical WhitePaper / 17-EFT.WP.Methods.Imaging v1.0
Appendix C Manifest Templates & Examples (Imaging)
One-Sentence Goal
Provide standardized manifest structures, required keys, and optional extensions for the imaging pipeline from acquisition to publication, together with copy-ready examples.
I. Scope & Targets
- Covered artifacts: publication manifests manifest.img.* for Image, Cube, EventStream, ToFDepth and derivatives.
- Applicable stages: unified manifest egress for Lab calibration, Production release, and Edge online services.
- Dependencies & prerequisites: device/mode registration (Ch. 3); linear radiometry (Ch. 4); PSF/OTF/MTF metrics (Ch. 5); sampling/reconstruction (Ch. 6); noise & FPN (Chs. 7–8); geometry & color (Chs. 9–10); HDR & CI (Chs. 11–12); time/path gating & arrival (Ch. 13); quality & audit (Ch. 14).
II. Naming & Structural Conventions
- Root namespace: manifest.img. Use lowercase_with_underscores or camelCase consistently—do not mix.
- Versioning & profiles: manifest.img.version, profile ∈ { Lab, Prod, Edge }.
- Traceability keys: TraceID, dataset_id, source.device_id, source.mode_id, firmware.
- Time semantics: record both ts and tau_mono; include sync triplet offset/skew/J; arrival two-form fields T_arr_form1, T_arr_form2, delta_form.
- Units & dimensions: all measurable fields must imply unit(x), dim(x); run check_dim(expr) before publication.
- Contracted metrics: quality and SLO keys use the sli.* namespace; contract assertions are named contracts.C20-* (Appendix B).
III. Minimal Manifest (MVP)
{
"manifest": {
"family": "img",
"version": "IMG-1.0",
"profile": "Prod",
"created_at": "2025-08-31T12:00:00Z",
"trace_id": "TRACE-xxxxxxxx",
"dataset_id": "DS-xxxxxxxx"
},
"source": {
"device_id": "DEV-xxxx",
"mode_id": "MODE-xxxx",
"firmware": "vX.Y.Z"
},
"images": [
{
"rid": "RID-xxxx",
"ts": "2025-08-31T11:59:59.123Z",
"tau_mono": 1234567890.123456,
"size": {"w": 3840, "h": 2160},
"format": "RAW",
"bit_depth": 12,
"channels": ["R","G","B"],
"space": "linear",
"unit": "DN",
"m": 0,
"q_score": 0.97
}
],
"timing": {
"offset": 2.3e-6,
"skew": 1.0e-6,
"jitter_p99": 5.0e-6,
"arrival": {
"T_arr_form1": 1.234e-9,
"T_arr_form2": 1.233e-9,
"delta_form": 1.0e-12
}
},
"contracts": {
"C20-001": "pass",
"C20-002": "pass",
"C20-1104": "pass"
},
"signing": {
"sha256": "abcdef...1234",
"signature": "sig(...)"
}
}
IV. Full Manifest (Extended Fields)
{
"manifest": {"family":"img","version":"IMG-1.0","profile":"Prod","created_at":"<iso8601>","trace_id":"<string>","dataset_id":"<string>"},
"source": {"device_id":"<string>","mode_id":"<string>","firmware":"<string>","lens_id":"<string>","sensor_id":"<string>"},
"images": [
{"rid":"<string>","ts":"<iso8601>","tau_mono":0.0,"size":{"w":0,"h":0},"format":"RAW|RGB|YUV|DEPTH","bit_depth":0,"channels":["..."],"space":"linear|log","unit":"DN|W•sr^-1•m^-2","m":0,"q_score":0.0}
],
"radiometry": {
"linearization": {"gain":1.0,"offset_dn":0.0},
"flat": {"mean":0.0,"stdev":0.0,"unit":"DN"},
"dark": {"mean":0.0,"stdev":0.0,"unit":"DN"},
"response": {"monotonic": true}
},
"optics": {
"psf": {"normalized": true},
"mtf": {"f50":0.0,"f80":0.0,"area":0.0,"unit":"cy/pixel"},
"otf": {"cutoff":0.0,"leakage":0.0}
},
"sampling": {
"pattern":"BayerRGGB|X-Trans|Mono|MultiSpectral",
"demosaic":{"algo":"<string>","version":"<string>"},
"resample":{"algo":"<string>","scale":1.0,"alias_ratio":0.0}
},
"noise": {
"sigma_read":0.0,
"k_shot":0.0,
"nps_band_p95":0.0
},
"fpn": {"prnu":0.0,"dsnu":0.0,"bad_pixel_ratio":0.0},
"geometry": {
"K":[[0,0,0],[0,0,0],[0,0,1]],
"R":[[1,0,0],[0,1,0],[0,0,1]],
"t":[0,0,0],
"dist":{"k1":0.0,"k2":0.0,"p1":0.0,"p2":0.0},
"err_reproj":0.0
},
"color": {
"matrix":[[1,0,0],[0,1,0],[0,0,1]],
"curve":"gamma|log|linear",
"illuminant":"D65|A|F11|custom",
"DeltaE00_p95":0.0,
"DeltaE00_p99":0.0
},
"hdr": {
"exposures":[{"time":0.0,"gain":1.0,"iso":100}],
"ghosting":0.0,
"saturation_ratio":0.0
},
"computational": {
"pipeline":["denoise:NLM","sharpen:USM","deconv:Wiener"],
"params":{"denoise.strength":0.0},
"residual_l2":0.0
},
"timing": {
"offset":0.0,"skew":0.0,"jitter_p99":0.0,
"arrival":{"T_arr_form1":0.0,"T_arr_form2":0.0,"delta_form":0.0}
},
"gating": {
"Delta_t":0.0,
"S_sync":0.0
},
"sli": {
"latency_ms_p99":0.0,"drop_rate":0.0,"rho":0.0,"Wq_p95":0.0
},
"contracts": {
"C20-201":"pass|fail",
"C20-501":"pass|fail",
"C20-701":"pass|fail"
},
"artifacts": {
"demosaic_artifact":0.0,
"ringing":0.0,
"banding":0.0
},
"signing": {"sha256":"<hex>","signature":"<bytes>"}
}
V. Minimal Required Keys
- Traceability & version: manifest.family, manifest.version, profile, trace_id, dataset_id.
- Source: source.device_id, source.mode_id, firmware.
- Image card: images[].rid, images[].ts, images[].tau_mono, images[].size, images[].format, images[].space, images[].unit, images[].m, images[].q_score.
- Timebase & arrival: timing.offset, timing.skew, timing.jitter_p99, timing.arrival.*.
- Signature & hash: signing.sha256, signing.signature.
VI. Example A: Single RAW Frame (Lab Calibration)
{
"manifest":{"family":"img","version":"IMG-1.0","profile":"Lab","created_at":"2025-08-31T10:00:00Z","trace_id":"T-LAB-001","dataset_id":"DS-LAB-001"},
"source":{"device_id":"DEV-DSLR-01","mode_id":"MODE-RAW-12b","firmware":"v1.2.3","lens_id":"LENS-50mm","sensor_id":"SNS-IMXxxx"},
"images":[{"rid":"RID-0001","ts":"2025-08-31T09:59:59.001Z","tau_mono":1714470000.001,"size":{"w":6048,"h":4024},"format":"RAW","bit_depth":12,"channels":["R","G","B"],"space":"linear","unit":"DN","m":0,"q_score":0.99}],
"radiometry":{"linearization":{"gain":1.87,"offset_dn":64.0},"flat":{"mean":1023.4,"stdev":3.2,"unit":"DN"},"dark":{"mean":64.1,"stdev":1.1,"unit":"DN"},"response":{"monotonic":true}},
"optics":{"mtf":{"f50":0.32,"f80":0.21,"area":0.48,"unit":"cy/pixel"},"otf":{"cutoff":0.5,"leakage":0.01}},
"timing":{"offset":1.2e-6,"skew":7.0e-7,"jitter_p99":4.5e-6,"arrival":{"T_arr_form1":1.010e-9,"T_arr_form2":1.009e-9,"delta_form":1.0e-12}},
"contracts":{"C20-001":"pass","C20-101":"pass","C20-201":"pass","C20-1104":"pass"},
"signing":{"sha256":"1a2b...","signature":"sig(...)"}
}
VII. Example B: HDR Merge (Production)
{
"manifest":{"family":"img","version":"IMG-1.0","profile":"Prod","created_at":"2025-08-31T12:34:56Z","trace_id":"T-PROD-042","dataset_id":"DS-PROD-888"},
"source":{"device_id":"DEV-MOBILE-02","mode_id":"MODE-HDRx3","firmware":"v3.4.5"},
"images":[{"rid":"RID-042A","ts":"2025-08-31T12:34:55.900Z","tau_mono":1714471234.900,"size":{"w":4000,"h":3000},"format":"RGB","bit_depth":10,"channels":["R","G","B"],"space":"linear","unit":"DN","m":0,"q_score":0.94}],
"hdr":{"exposures":[{"time":1.0e-3,"gain":1.0,"iso":100},{"time":8.0e-3,"gain":1.0,"iso":100},{"time":0.5e-3,"gain":1.0,"iso":100}],"ghosting":0.02,"saturation_ratio":0.004},
"computational":{"pipeline":["merge:reinhard","denoise:BM3D","tone:local"],"residual_l2":0.008},
"sli":{"latency_ms_p99":22.7,"drop_rate":0.002,"rho":0.61,"Wq_p95":3.1},
"contracts":{"C20-801":"pass","C20-802":"pass","C20-1101":"pass","C20-1102":"pass"},
"signing":{"sha256":"aa55...","signature":"sig(...)"}
}
VIII. Example C: ToF Depth + Intensity (Time/Path Gating)
{
"manifest":{"family":"img","version":"IMG-1.0","profile":"Edge","created_at":"2025-08-31T08:08:08Z","trace_id":"T-TOF-007","dataset_id":"DS-TOF-007"},
"source":{"device_id":"DEV-ToF-A1","mode_id":"MODE-DCM-4Phase","firmware":"v0.9.9"},
"images":[
{"rid":"RID-D-0007","ts":"2025-08-31T08:08:07.999Z","tau_mono":1714470808.000,"size":{"w":640,"h":480},"format":"DEPTH","bit_depth":16,"channels":["Z"],"space":"linear","unit":"m","m":0,"q_score":0.91},
{"rid":"RID-I-0007","ts":"2025-08-31T08:08:07.999Z","tau_mono":1714470808.000,"size":{"w":640,"h":480},"format":"RAW","bit_depth":12,"channels":["I"],"space":"linear","unit":"DN","m":0,"q_score":0.93}
],
"gating":{"Delta_t":2.5e-9,"S_sync":0.97},
"timing":{"offset":3.0e-6,"skew":8.0e-7,"jitter_p99":6.0e-6,"arrival":{"T_arr_form1":8.33e-10,"T_arr_form2":8.32e-10,"delta_form":1.0e-12}},
"geometry":{"K":[[580,0,320],[0,580,240],[0,0,1]],"R":[[1,0,0],[0,1,0],[0,0,1]],"t":[0,0,0],"dist":{"k1":-0.12,"k2":0.03,"p1":0.0,"p2":0.0},"err_reproj":0.42},
"contracts":{"C20-1001":"pass","C20-1002":"pass","C20-1003":"pass","C20-601":"pass"},
"signing":{"sha256":"deadbeef...","signature":"sig(...)"}
}
IX. Field ↔ Chapter Mapping (for Audit)
radiometry.* ↔ Ch. 4; optics.* ↔ Ch. 5; sampling.* ↔ Ch. 6; noise.* ↔ Ch. 7; fpn.* ↔ Ch. 8; geometry.* ↔ Ch. 9; color.* ↔ Ch. 10; hdr.* ↔ Ch. 11; computational.* ↔ Ch. 12; gating.*, timing.arrival.* ↔ Ch. 13; sli.*, contracts.*, signing.* ↔ Ch. 14 and Methods.Cleaning v1.0, Ch. 10.
X. Bindings & Invariants for Emission
- Generation flow:
- I20-112 emit_metrics(img, cfg) -> metrics: aggregates chapter metrics.
- I20-113 emit_qc_manifest(metrics, policy) -> manifest.img: injects contracts & sli, completes signing & hashing.
- Invariants:
- unique(images[].rid); non_decreasing(images[].ts); space="linear" denotes radiometric domain.
- timing.arrival.delta_form ≤ tol_Tarr; signing.sha256 and signature verifiable.
- check_dim( y - f(x) ) = 0 holds for all cross-domain expressions.
XI. Cross-References
Two-form arrival & time semantics: Chapter 13.
Contract ↔ policy mapping: Appendix B C20-*.
Compliance & release freeze: Methods.Cleaning v1.0, Ch. 10.
Backpressure & SLO fields: Methods.Cleaning v1.0, Ch. 11 and this volume’s Chapter 14.
Copyright & License (CC BY 4.0)
Copyright: Unless otherwise noted, the copyright of “Energy Filament Theory” (text, charts, illustrations, symbols, and formulas) belongs to the author “Guanglin Tu”.
License: This work is licensed under the Creative Commons Attribution 4.0 International (CC BY 4.0). You may copy, redistribute, excerpt, adapt, and share for commercial or non‑commercial purposes with proper attribution.
Suggested attribution: Author: “Guanglin Tu”; Work: “Energy Filament Theory”; Source: energyfilament.org; License: CC BY 4.0.
First published: 2025-11-11|Current version:v5.1
License link:https://creativecommons.org/licenses/by/4.0/