Newer
Older
SmTIAS-Evaluation / docs / 05_TECH / TECH_01_DNG対応要求仕様.md

SmTIAS-Evaluation DNG 対応要求仕様 (DNG Support Specification for SmTIAS-Evaluation)

本ドキュメントについて(取り込み注記): SmTIAS-LightSim プロジェクトから受領した DNG 対応要求仕様(先方での名称は TECH_05)を,本プロジェクトの命名規則(GUIDE_03)に従い取り込んだもの.文中の他ドキュメント参照(TECH_01/03/04・TEST_01・SPEC_04 等)は SmTIAS-LightSim 側のドキュメントを指し,本プロジェクト内には存在しない.

本書は要求の記録である.実装の詳細(API・データ仕様・アルゴリズム)は SPEC_01 / SPEC_02,コピー向け要点は TECH_02,経緯の詳細は PROGRESS.md を参照.完了済みの実装計画(Phase 分割・検証手順 V1〜V4・Open Questions・関数シグネチャ案 等)は本整理で削除した(git 履歴に残る).

SmTIAS 側で実装された定量撮影モードの出力フォーマットが PNG から DNG (RAW_SENSOR) に変更されたことに伴い,SmTIAS-Evaluation 側にも DNG 読み込み・解析機能の追加を依頼したもの.

概要 (Overview)

SmTIAS-Evaluation(SmTIAS-Evaluation リポジトリ)に対し,以下の機能追加を要求した:

  1. DNG 読み込み I/F の新規実装(10-bit BGGR Bayer 展開)
  2. メタデータ JSON 読み込み I/F の新規実装(撮影条件・LSC マップ・hot pixel リスト等)
  3. 既存 PNG 経路と並列対応(後方互換)
  4. 既存評価指標との互換(CoV / 勾配 / C/P / max-min 等が DNG 入力でも同じロジックで算出可能)

これらの実装は SmTIAS-LightSim 側にコピーされる前提で,再利用性の高い設計とする.

実装状況 (Implementation Status — SmTIAS-Evaluation)

要求に対する SmTIAS-Evaluation での実装結果(要求と異なる点を含む).

要求状況実体・備考
1. DNG 読み込み I/F(dng_loader.py / load_image_dng✅ 実装src/io/dng_loader.pyrgb_float32luma_float32output_color=raw)・rgb_uint8(sRGB)を実装
2. メタデータ JSON 読み込み(metadata_loader.py🟡 一部専用モジュールは未作成.LSC マップ読み込みは src/io/dng_pipeline.pylsc_gain_rgb に内包.load_metadata / load_hot_pixel_list は未実装
3. Hot pixel マスク(mask_hot_pixels⬜ 未実装SmTIAS 側のホット画素提供待ち
4. LSC 参照(apply_lsc_inverse⚠️ 方針転換実機 DNG は LSC 未補正と判明.逆適用ではなく 順適用dng_pipeline.lsc_gain_rgb でビネット除去).apply_lsc_inverse は未実装
5. PNG 経路との並列対応✅ 実装load_image は無修正.DNG は scripts/run_uniformity_dng.py で別経路.統一 I/F load_image_any は未実装(任意項目)
6. 評価指標との互換✅ 実装uniformity / spatial 等は無修正で DNG 輝度(linear ×255 スケール)に適用

仕様外で新規追加: src/io/dng_pipeline.py(DNG の LSC 順適用・portrait 化・Rec.709 輝度化をまとめた高レベル I/F)と,動径 min/max 比指標(spatial.calc_radial_min_max_ratio).Phase 4〜6(既存パイプライン統合・PNG/DNG 検証・SPEC 更新)は継続中.DNG のデータ仕様(10-bit・黒レベル・デモザイク等)は SPEC_01 「DNG データ仕様」に移設した.

背景 (Background)

三項プロジェクトの関係

┌─────────────────────────┐      ┌──────────────────────────┐
│  SmTIAS                │      │  SmTIAS-Evaluation      │
│  (Flutter / Android)     │ ──→  │  (Python)                 │
│  撮影アプリ                │      │  実機データ評価ツール       │
│  - PNG 保存(通常モード)   │      │  - 評価指標算出           │
│  - DNG 保存(定量モード)   │      │  - 可視化                 │
└─────────────────────────┘      └──────────────────────────┘
                                          │
                                          │ コピー(uniformity.py 等)
                                          ▼
                              ┌──────────────────────────┐
                              │  SmTIAS-LightSim          │
                              │  (Python / Mitsuba 3)     │
                              │  シミュ vs 実機比較        │
                              └──────────────────────────┘

経緯のまとめ

  • 2026-05-28: SmTIAS-LightSim 側 Step 8 キャリブで「実機 PNG 自体が定量データとして揺らぐ」を発見 (TEST_01)
  • 2026-05-28: SmTIAS 側に TECH_01 定量撮影モード要求仕様 を発行
  • 2026-06-01: SmTIAS 側で実装完了.AQUOS sense3 (SH-02M) が LEVEL_3 で DNG 経路採用 (TECH_03)
  • 2026-06-01: SHADING_MODE = HIGH_QUALITY を本流維持で合意 (TECH_04)
  • 2026-06-01: 本要求(SmTIAS-Evaluation 側にも DNG 対応を依頼)を発行

役割分担 (Role Distribution)

DNG 読み込みの責務は SmTIAS-Evaluation を一次窓口とする.既存パターン(uniformity.py が SmTIAS-Evaluation から SmTIAS-LightSim にコピー)を踏襲する:

プロジェクト責務
SmTIASDNG + meta.json の保存(実装済)
SmTIAS-Evaluation(一次窓口)DNG/meta.json の読み込み I/F を正規実装.既存評価指標との並列対応
SmTIAS-LightSim(コピー側)SmTIAS-Evaluation の DNG 読み込み I/F をコピー(uniformity.py パターン継承)

既存ドキュメントとの整合 (Cross-References)