{
  "id": "INPAINT-2026-09-07-TWO-MASKS",
  "environment": {
    "python": "3.12.14",
    "pillow": "12.3.0",
    "numpy": "2.3.5",
    "littlecms": "2.19"
  },
  "method": {
    "threshold": "A pixel is counted when at least one 8-bit RGB code value differs by 16 or more. This localizes visible-scale changes; it is not mask coverage, reconstruction accuracy or a quality score.",
    "profileAware": "The rocket JPEG embeds Adobe RGB (1998). Convert the source in memory to an sRGB profile with Pillow ImageCms/LittleCMS, renderingIntent=0. Untagged exported PNGs and the untagged coffee source are treated as sRGB. The script writes JSON only, never image files.",
    "comparisonBoundary": "Profile conversion and JPEG decoding can differ slightly between this measurement runtime and a browser. Even the profile-aware differences are not an exact recovered mask. Raw and profile-aware numbers are retained separately so the profile issue is visible.",
    "coordinates": "Difference bounds are pixel boxes [x0,y0,x1,y1], excluding x1 and y1, on same-size source/output pairs.",
    "scope": "Two completed browser exports measured after the runs. No unmasked ground-truth scene, pixel mask, model benchmark or processing-time measurement is available."
  },
  "cases": [
    {
      "id": "coffee",
      "input": {
        "file": "../../images/coffee.png",
        "bytes": 466706,
        "sha256": "cc02f8ca188b167c775a7101b5d767d1e71792cf762c33d6fa15a4599b5a8de7",
        "width": 600,
        "height": 400,
        "mode": "RGB",
        "iccProfileName": null,
        "iccProfileBytes": 0,
        "fullyOpaquePixels": 240000
      },
      "output": {
        "file": "coffee-output.png",
        "bytes": 591397,
        "sha256": "9d4c205f68e489c818c3b9c366f3a2e4da45db644f79ea6dcedce911e14a96ef",
        "width": 600,
        "height": 400,
        "mode": "RGBA",
        "iccProfileName": null,
        "iccProfileBytes": 0,
        "fullyOpaquePixels": 240000
      },
      "rawEncodedRgbComparison": {
        "meanAbsoluteRgbCodeDifference": 1.454711,
        "pixelsWithAnyChannelDifferenceAtLeast16": 5579,
        "differenceBoundsX0Y0X1Y1Exclusive": [
          317,
          222,
          396,
          336
        ]
      },
      "profileAwareRgbComparison": {
        "meanAbsoluteRgbCodeDifference": 1.454711,
        "pixelsWithAnyChannelDifferenceAtLeast16": 5579,
        "differenceBoundsX0Y0X1Y1Exclusive": [
          317,
          222,
          396,
          336
        ]
      }
    },
    {
      "id": "rocket",
      "input": {
        "file": "../../images/rocket.jpg",
        "bytes": 112525,
        "sha256": "c2dd0de7c538df8d111e479619b129464d0269d0ae5fd18ca91d33a7fdfea95c",
        "width": 640,
        "height": 427,
        "mode": "RGB",
        "iccProfileName": "Adobe RGB (1998)",
        "iccProfileBytes": 560,
        "fullyOpaquePixels": 273280
      },
      "output": {
        "file": "rocket-output.png",
        "bytes": 463184,
        "sha256": "67c578f0718fe36512762a6c071bafeb212230cf3c2aee2bfe83d057676d87e8",
        "width": 640,
        "height": 427,
        "mode": "RGBA",
        "iccProfileName": null,
        "iccProfileBytes": 0,
        "fullyOpaquePixels": 273280
      },
      "rawEncodedRgbComparison": {
        "meanAbsoluteRgbCodeDifference": 5.816728,
        "pixelsWithAnyChannelDifferenceAtLeast16": 106601,
        "differenceBoundsX0Y0X1Y1Exclusive": [
          0,
          0,
          640,
          427
        ]
      },
      "profileAwareRgbComparison": {
        "meanAbsoluteRgbCodeDifference": 0.405312,
        "pixelsWithAnyChannelDifferenceAtLeast16": 517,
        "differenceBoundsX0Y0X1Y1Exclusive": [
          67,
          333,
          96,
          369
        ]
      }
    }
  ]
}
