Skip to content

Commit 18c6961

Browse files
committed
Add MakerNote numeric labels and docs
Bump VERSION to 0.4.39 and add extensive bounded numeric label support for MakerNotes. Adds many Canon CameraSettings/ShotInfo/main/MyColors label helpers and dispatches, expanded Fujifilm mk_fuji* decoded labels, and additional Panasonic main-table labels and mappings. Tightens ambiguous Ricoh/Minolta/Panasonic/Sony labels to avoid incorrect stable labels. Update CHANGES.md and interpretation_status docs to describe the new labels and revised priorities, and extend unit tests (exif_value_names_test.cc) to cover the new dispatches and mappings.
1 parent 8f96804 commit 18c6961

6 files changed

Lines changed: 1008 additions & 42 deletions

File tree

CHANGES.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,32 @@
11
# OpenMeta Changes
22

3+
## 0.4.39 - 2026-05-27
4+
5+
Changes compared with `0.4.38`.
6+
7+
### Added
8+
9+
- Added bounded Canon MakerNote numeric labels for common CameraSettings,
10+
ShotInfo, main, and MyColors scalar fields such as quality, drive, zoom,
11+
contrast, saturation, focus range, image size, AE mode, white balance, slow
12+
shutter, bracketing, control mode, ND filter, date stamp, and MyColors mode.
13+
- Added bounded Fujifilm MakerNote numeric labels for decoded real-file
14+
`mk_fuji*` contexts, including sharpness, white balance, macro, slow sync,
15+
auto bracketing, blur warning, color mode, and dynamic range fields.
16+
- Added bounded Panasonic MakerNote numeric labels for image quality, image
17+
stabilization, audio, color effect, noise reduction, rotation, AF assist,
18+
conversion lens, travel day, battery, text stamp, and related scalar fields.
19+
20+
### Fixed
21+
22+
- Fixed Fujifilm value-name dispatch for decoded `mk_fuji*` IFD tokens.
23+
- Stopped emitting ambiguous Ricoh `0x1003` and Minolta main `0x0103` labels
24+
where the meaning depends on value type, model, or tag-name context that is
25+
not available to the numeric value-name helper.
26+
- Tightened context-sensitive Panasonic contrast, Ricoh noise-reduction, and
27+
Sony Tag2010B quality labels so ambiguous values remain unlabeled instead of
28+
receiving a wrong stable label.
29+
330
## 0.4.38 - 2026-05-26
431

532
Changes compared with `0.4.37`.

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.4.38
1+
0.4.39

docs/interpretation_status.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ explicit outcome:
3838
| Exposure and gain | Standard EXIF exposure time, f-number, exposure program/mode, photographic sensitivity, exposure bias, exposure index, gain control, selected DNG baseline/raw-preview gain fields, matching XMP paths, and selected decoded vendor/MakerNote exposure names are queryable and promoted into cross-family exposure roles. Standard EXIF exposure program/mode and gain-control values plus selected Canon/Nikon/Sony/Fujifilm/Pentax/Olympus/Panasonic/Phase One/Kodak/Minolta/Sigma/Samsung/Ricoh MakerNote values carry human-readable labels where stable. Capture exposure facts are marked safe, while raw/DNG exposure adjustments are marked unsafe for rendered-image transfer. | Medium-high, about 91-94%. | More vendor MakerNote exposure print conversions and richer per-vendor exposure/gain labels. |
3939
| Color, white balance, profiles, and matrices | DNG color/calibration/reduction/forward matrix groups, white-balance vector groups, EXIF color-space evidence, ICC header/tag entries, XMP ICC/profile fields, PNG profile text carriers, RAW color/source-processing safety buckets, transfer hints, per-family grouped vendor color/WB candidates, long-tail camera-to-XYZ/RGB, style/color, and white-balance gain aliases, and cross-family concept candidates with full grouped value vectors are identified. ICC/profile and color-space records have a distinct `color_profile` semantic role, while camera RAW profile/look/tone-curve/style fields and vendor source color tables have a separate `source_color_transform` role marked unsafe for rendered-image transfer. Matrix/vector groups require numeric payloads with conservative minimum shapes before promotion. | Medium-high, about 85-92%. | Deeper camera/vendor color science interpretation is intentionally conservative, especially for rendered-image transfer. |
4040
| Lens correction and RAW processing | Lens-correction groups, black/white levels, linearization, CFA/sensor layout, raw-storage identifiers, vendor RAW/source-processing buckets, creative/picture style, film simulation, dynamic-range, optical correction, raw-development, computational, thermal, and stitch/panorama aliases, per-family vendor raw-storage/sensor/computational/thermal/stitch/source-processing table candidates, transfer hints, transfer diagnostics, and concept candidates with grouped table/vector values are classified for query and transfer safety. Lens-correction grouped tables require numeric payloads before promotion. | Medium-high, about 83-90%. | Long-tail per-model correction tables and richer numeric normalization. |
41-
| Vendor MakerNotes | Broad MakerNote naming and source-processing classification exists for common vendors and several live computational/thermal vendors. Unknown entries remain lossless and source-private subgroups distinguish preview, face geometry, computational, thermal, stitch/panorama, pixel-shift, multi-shot, composite, auto-lighting, RAW crop/active-area, source color-transform, source style/rendering aliases, lens-correction, raw-level processing data, and Phase One/Leaf RAW-processing fields handled by direct classification plus dedicated normalized helpers. Classified multi-field vendor groups now surface as grouped query/interpretation candidates where safe to expose structurally, and selected Canon/Nikon/Sony/Fujifilm/Pentax/Olympus/Panasonic/Phase One/Kodak/Minolta/Sigma/Samsung/Ricoh print conversions expose bounded human-readable labels for exposure-related UI. | Medium-high, about 88-93%. | ExifTool-style long-tail print conversions, encrypted/custom settings, and per-model private tables. |
41+
| Vendor MakerNotes | Broad MakerNote naming and source-processing classification exists for common vendors and several live computational/thermal vendors. Unknown entries remain lossless and source-private subgroups distinguish preview, face geometry, computational, thermal, stitch/panorama, pixel-shift, multi-shot, composite, auto-lighting, RAW crop/active-area, source color-transform, source style/rendering aliases, lens-correction, raw-level processing data, and Phase One/Leaf RAW-processing fields handled by direct classification plus dedicated normalized helpers. Classified multi-field vendor groups now surface as grouped query/interpretation candidates where safe to expose structurally. Selected Canon/Nikon/Sony/Fujifilm/Pentax/Olympus/Panasonic/Phase One/Kodak/Minolta/Sigma/Samsung/Ricoh print conversions expose bounded human-readable labels, including expanded Canon CameraSettings/ShotInfo/main/MyColors, decoded Fujifilm `mk_fuji*`, and Panasonic main-table labels. Ambiguous per-model or value-type-dependent labels intentionally remain empty instead of guessing. | Medium-high, about 89-94%. | ExifTool-style long-tail print conversions, encrypted/custom settings, and per-model private tables. |
4242
| BMFF item graph, HEIF/AVIF/CR3, JUMBF, and C2PA | BMFF derived fields, brand-name fields, item-info rows, item type/semantic labels and semantic aggregate counters for common metadata carriers, bounded `ipma` item-property association rows, bounded relations, primary-linked roles, aux semantics, primary color/profile property summaries, primary pixel aspect ratio, primary pixel component bit depth, clean-aperture rationals, JUMBF box labels, and draft C2PA/JUMBF structural fields are exposed. | Medium, about 70-80%. | Full BMFF scene modeling and full C2PA manifest/policy semantics. |
4343
| Photoshop IRB | Raw resources are preserved and a bounded interpreted subset is decoded for fixed-layout resources, including Photoshop 2 info/color-table summaries, resolution/version/print data, print-flag bytes, border/background/effective-BW data, display info, grid/guide info, color sampler headers/records, descriptor-header summaries, path record summaries, alpha names/identifiers, captions, QuickMask info, URL/list data, autosave strings, `XMLData`, ImageReady XML text, thumbnail headers, channel options, clipping-path names, legacy halftone/transfer/duotone/EPS byte summaries, embedded ICC/XMP/EXIF resource byte counts, and embedded IPTC/XMP/ICC payload decode where enabled. | Medium, about 75-84%. | Broader resource-specific descriptor parsing and long-tail resource interpretation. |
4444
| Semantic query/search and records | Query helpers expose raw matches, confidence, provenance, value shapes, normalized candidates, canonical crop/active-area rectangles, Fujifilm RAF raw crop/zoom rectangles, Canon/Nikon/Sony crop and border patterns, border margins, exposure/gain roles, selected vendor/MakerNote exposure-name aliases, per-family grouped vendor records, descriptive EXIF/IPTC/XMP concepts, explicit color-profile records for EXIF/ICC/XMP/PNG profile carriers, explicit source-color-transform records for camera RAW profiles, looks, tone curves, and vendor source color tables, explicit computational/thermal/stitch source-processing records, expanded source color/style/lens/source-processing aliases, source-processing buckets, optional RapidFuzz near-miss matching, structured interpretation records, and bounded cross-family concept resolution for orientation, date/time, exposure/gain, color/profile, GPS, geometry, lens-correction, and RAW-processing with parsed date/time fields, timezone/precision classification, combined GPS timestamps, GPS altitude-reference state and display token, canonical geometry origin/size/rect/margins, normalized exposure values, shape-checked grouped value vectors, transfer hints, rendered/compatible safety booleans, and tolerance-aware GPS/exposure/color/geometry conflicts. | Medium-high, about 82-88%. | More long-tail per-model concept aliases and richer localized policy wording. |
@@ -67,7 +67,8 @@ outputs.
6767
4. Expand GPS policy beyond current coordinate tolerance, altitude-reference
6868
display, and EXIF timestamp assembly into broader cross-family
6969
reconciliation.
70-
5. Expand MakerNote meaning depth in vendor order: Pentax, Olympus, Panasonic,
71-
Phase One/Leaf, then remaining active vendors.
70+
5. Expand MakerNote meaning depth in vendor order: remaining Canon sub-IFDs,
71+
Olympus, Nikon, Pentax, Casio, Panasonic long tail, CanonCustom/
72+
NikonSettings, Fujifilm residuals, then other active vendors.
7273
6. Keep transfer-safety classification conservative when interpretation is
7374
incomplete.

docs/sphinx/interpretation_status.rst

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -159,11 +159,14 @@ Coverage matrix
159159
raw-level processing data, and Phase One/Leaf RAW-processing fields
160160
handled by direct classification plus dedicated normalized helpers.
161161
Classified multi-field vendor groups now surface as grouped
162-
query/interpretation candidates where safe to expose structurally, and
163-
selected Canon/Nikon/Sony/Fujifilm/Pentax/Olympus/Panasonic/Phase One/
162+
query/interpretation candidates where safe to expose structurally.
163+
Selected Canon/Nikon/Sony/Fujifilm/Pentax/Olympus/Panasonic/Phase One/
164164
Kodak/Minolta/Sigma/Samsung/Ricoh print conversions expose bounded
165-
human-readable labels for exposure-related UI.
166-
- Medium-high, about 88-93%.
165+
human-readable labels, including expanded Canon CameraSettings/
166+
ShotInfo/main/MyColors, decoded Fujifilm ``mk_fuji*``, and Panasonic
167+
main-table labels. Ambiguous per-model or value-type-dependent labels
168+
intentionally remain empty instead of guessing.
169+
- Medium-high, about 89-94%.
167170
- ExifTool-style long-tail print conversions, encrypted/custom settings,
168171
and per-model private tables.
169172
* - BMFF item graph, HEIF/AVIF/CR3, JUMBF, and C2PA
@@ -250,7 +253,8 @@ Next interpretation priorities
250253
4. Expand GPS policy beyond current coordinate tolerance, altitude-reference
251254
display, and EXIF timestamp assembly into broader cross-family
252255
reconciliation.
253-
5. Expand MakerNote meaning depth in vendor order: Pentax, Olympus, Panasonic,
254-
Phase One/Leaf, then remaining active vendors.
256+
5. Expand MakerNote meaning depth in vendor order: remaining Canon sub-IFDs,
257+
Olympus, Nikon, Pentax, Casio, Panasonic long tail, CanonCustom/
258+
NikonSettings, Fujifilm residuals, then other active vendors.
255259
6. Keep transfer-safety classification conservative when interpretation is
256260
incomplete.

0 commit comments

Comments
 (0)