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


II. Naming & Structural Conventions


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


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

  1. 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.
  2. 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.