{
  "benchmark": "FiloTool image format comparison",
  "testedAt": "2026-08-02",
  "rowCount": 16,
  "methodologyVersion": 1,
  "encoder": "sharp 0.34.5; libvips 8.17.3",
  "environment": "win32 x64; Node v24.16.0",
  "formats": [
    {
      "format": "JPG",
      "setting": "80 (lossy)"
    },
    {
      "format": "PNG",
      "setting": "Lossless; compression level 9"
    },
    {
      "format": "WebP",
      "setting": "80 (lossy), effort 6"
    },
    {
      "format": "AVIF",
      "setting": "80 (lossy), effort 6"
    }
  ],
  "metricMethod": "PSNR and RMSE calculated on decoded 8-bit RGBA pixels. For the transparent source, both reference and output are composited on white for visual-pixel metrics; alpha preservation is reported separately.",
  "caveat": "Quality values are encoder-specific and are not perceptually equivalent. This four-image corpus is illustrative, not representative of every image.",
  "rows": [
    {
      "source_image": "photorealistic-landscape.png",
      "category": "Photorealistic scene",
      "source_format": "PNG",
      "source_dimensions": "1536x1024",
      "source_size_bytes": 3353119,
      "source_sha256": "0d2b928d687f299daf90e08d4960d6015b0eedf0c188774961833cdd2a7631fe",
      "output_format": "JPG",
      "output_dimensions": "1536x1024",
      "output_size_bytes": 391819,
      "size_change_percent": "-88.31",
      "transparency_preserved": "Not applicable",
      "quality_setting": "80 (lossy)",
      "psnr_db": "33.94",
      "rmse_8bit": "5.1213",
      "visible_artifacts": "Slight",
      "notes": "At 100%, fine foliage and stone edges showed slight softening and faint ringing; no obvious blocking in the inspected crop.",
      "output_file": "/benchmarks/image-format-comparison/outputs/photorealistic-landscape.jpg"
    },
    {
      "source_image": "photorealistic-landscape.png",
      "category": "Photorealistic scene",
      "source_format": "PNG",
      "source_dimensions": "1536x1024",
      "source_size_bytes": 3353119,
      "source_sha256": "0d2b928d687f299daf90e08d4960d6015b0eedf0c188774961833cdd2a7631fe",
      "output_format": "PNG",
      "output_dimensions": "1536x1024",
      "output_size_bytes": 3000718,
      "size_change_percent": "-10.51",
      "transparency_preserved": "Not applicable",
      "quality_setting": "Lossless; compression level 9",
      "psnr_db": "Lossless",
      "rmse_8bit": "0.0000",
      "visible_artifacts": "None observed",
      "notes": "The decoded 100% crop matched the normalized source pixels.",
      "output_file": "/benchmarks/image-format-comparison/outputs/photorealistic-landscape.png"
    },
    {
      "source_image": "photorealistic-landscape.png",
      "category": "Photorealistic scene",
      "source_format": "PNG",
      "source_dimensions": "1536x1024",
      "source_size_bytes": 3353119,
      "source_sha256": "0d2b928d687f299daf90e08d4960d6015b0eedf0c188774961833cdd2a7631fe",
      "output_format": "WebP",
      "output_dimensions": "1536x1024",
      "output_size_bytes": 342480,
      "size_change_percent": "-89.79",
      "transparency_preserved": "Not applicable",
      "quality_setting": "80 (lossy), effort 6",
      "psnr_db": "35.24",
      "rmse_8bit": "4.4105",
      "visible_artifacts": "Slight",
      "notes": "At 100%, fine foliage and water texture were slightly smoothed; edges remained clear.",
      "output_file": "/benchmarks/image-format-comparison/outputs/photorealistic-landscape.webp"
    },
    {
      "source_image": "photorealistic-landscape.png",
      "category": "Photorealistic scene",
      "source_format": "PNG",
      "source_dimensions": "1536x1024",
      "source_size_bytes": 3353119,
      "source_sha256": "0d2b928d687f299daf90e08d4960d6015b0eedf0c188774961833cdd2a7631fe",
      "output_format": "AVIF",
      "output_dimensions": "1536x1024",
      "output_size_bytes": 537438,
      "size_change_percent": "-83.97",
      "transparency_preserved": "Not applicable",
      "quality_setting": "80 (lossy), effort 6",
      "psnr_db": "41.72",
      "rmse_8bit": "2.0908",
      "visible_artifacts": "Minimal",
      "notes": "The 100% crop stayed closest to the source among the lossy outputs; only very subtle texture smoothing was observed.",
      "output_file": "/benchmarks/image-format-comparison/outputs/photorealistic-landscape.avif"
    },
    {
      "source_image": "ui-screenshot.png",
      "category": "Screenshot / UI",
      "source_format": "PNG",
      "source_dimensions": "1200x800",
      "source_size_bytes": 59145,
      "source_sha256": "c3614016c5ce7a7bfc6796b58990f40d9c514e97639b94ba684c802406db22d3",
      "output_format": "JPG",
      "output_dimensions": "1200x800",
      "output_size_bytes": 48398,
      "size_change_percent": "-18.17",
      "transparency_preserved": "Not applicable",
      "quality_setting": "80 (lossy)",
      "psnr_db": "41.87",
      "rmse_8bit": "2.0555",
      "visible_artifacts": "Slight",
      "notes": "Small text and one-pixel rules showed faint halos and chroma softening at 100%.",
      "output_file": "/benchmarks/image-format-comparison/outputs/ui-screenshot.jpg"
    },
    {
      "source_image": "ui-screenshot.png",
      "category": "Screenshot / UI",
      "source_format": "PNG",
      "source_dimensions": "1200x800",
      "source_size_bytes": 59145,
      "source_sha256": "c3614016c5ce7a7bfc6796b58990f40d9c514e97639b94ba684c802406db22d3",
      "output_format": "PNG",
      "output_dimensions": "1200x800",
      "output_size_bytes": 77434,
      "size_change_percent": "30.92",
      "transparency_preserved": "Not applicable",
      "quality_setting": "Lossless; compression level 9",
      "psnr_db": "Lossless",
      "rmse_8bit": "0.0000",
      "visible_artifacts": "None observed",
      "notes": "Small text, fills, and rules matched the normalized source pixels.",
      "output_file": "/benchmarks/image-format-comparison/outputs/ui-screenshot.png"
    },
    {
      "source_image": "ui-screenshot.png",
      "category": "Screenshot / UI",
      "source_format": "PNG",
      "source_dimensions": "1200x800",
      "source_size_bytes": 59145,
      "source_sha256": "c3614016c5ce7a7bfc6796b58990f40d9c514e97639b94ba684c802406db22d3",
      "output_format": "WebP",
      "output_dimensions": "1200x800",
      "output_size_bytes": 21234,
      "size_change_percent": "-64.10",
      "transparency_preserved": "Not applicable",
      "quality_setting": "80 (lossy), effort 6",
      "psnr_db": "43.77",
      "rmse_8bit": "1.6524",
      "visible_artifacts": "Slight",
      "notes": "Small text remained readable but was marginally softer than PNG at 100%.",
      "output_file": "/benchmarks/image-format-comparison/outputs/ui-screenshot.webp"
    },
    {
      "source_image": "ui-screenshot.png",
      "category": "Screenshot / UI",
      "source_format": "PNG",
      "source_dimensions": "1200x800",
      "source_size_bytes": 59145,
      "source_sha256": "c3614016c5ce7a7bfc6796b58990f40d9c514e97639b94ba684c802406db22d3",
      "output_format": "AVIF",
      "output_dimensions": "1200x800",
      "output_size_bytes": 19353,
      "size_change_percent": "-67.28",
      "transparency_preserved": "Not applicable",
      "quality_setting": "80 (lossy), effort 6",
      "psnr_db": "52.45",
      "rmse_8bit": "0.6082",
      "visible_artifacts": "Minimal",
      "notes": "Small text and rules remained crisp in the inspected 100% crop, with no obvious banding.",
      "output_file": "/benchmarks/image-format-comparison/outputs/ui-screenshot.avif"
    },
    {
      "source_image": "flat-illustration.png",
      "category": "Illustration / flat graphic",
      "source_format": "PNG",
      "source_dimensions": "1200x800",
      "source_size_bytes": 32756,
      "source_sha256": "1316a1455c98b25ecc9919aedddc4dc301c5b7cf439ef2fd86371dd5b187d12e",
      "output_format": "JPG",
      "output_dimensions": "1200x800",
      "output_size_bytes": 28406,
      "size_change_percent": "-13.28",
      "transparency_preserved": "Not applicable",
      "quality_setting": "80 (lossy)",
      "psnr_db": "41.08",
      "rmse_8bit": "2.2516",
      "visible_artifacts": "Visible",
      "notes": "Hard diagonal edges showed faint ringing and color bleed at 100%.",
      "output_file": "/benchmarks/image-format-comparison/outputs/flat-illustration.jpg"
    },
    {
      "source_image": "flat-illustration.png",
      "category": "Illustration / flat graphic",
      "source_format": "PNG",
      "source_dimensions": "1200x800",
      "source_size_bytes": 32756,
      "source_sha256": "1316a1455c98b25ecc9919aedddc4dc301c5b7cf439ef2fd86371dd5b187d12e",
      "output_format": "PNG",
      "output_dimensions": "1200x800",
      "output_size_bytes": 40376,
      "size_change_percent": "23.26",
      "transparency_preserved": "Not applicable",
      "quality_setting": "Lossless; compression level 9",
      "psnr_db": "Lossless",
      "rmse_8bit": "0.0000",
      "visible_artifacts": "None observed",
      "notes": "Hard edges, flat fills, and gradients matched the normalized source pixels.",
      "output_file": "/benchmarks/image-format-comparison/outputs/flat-illustration.png"
    },
    {
      "source_image": "flat-illustration.png",
      "category": "Illustration / flat graphic",
      "source_format": "PNG",
      "source_dimensions": "1200x800",
      "source_size_bytes": 32756,
      "source_sha256": "1316a1455c98b25ecc9919aedddc4dc301c5b7cf439ef2fd86371dd5b187d12e",
      "output_format": "WebP",
      "output_dimensions": "1200x800",
      "output_size_bytes": 12652,
      "size_change_percent": "-61.38",
      "transparency_preserved": "Not applicable",
      "quality_setting": "80 (lossy), effort 6",
      "psnr_db": "42.36",
      "rmse_8bit": "1.9444",
      "visible_artifacts": "Slight",
      "notes": "Hard edges showed slight smoothing; flat fills remained visually stable.",
      "output_file": "/benchmarks/image-format-comparison/outputs/flat-illustration.webp"
    },
    {
      "source_image": "flat-illustration.png",
      "category": "Illustration / flat graphic",
      "source_format": "PNG",
      "source_dimensions": "1200x800",
      "source_size_bytes": 32756,
      "source_sha256": "1316a1455c98b25ecc9919aedddc4dc301c5b7cf439ef2fd86371dd5b187d12e",
      "output_format": "AVIF",
      "output_dimensions": "1200x800",
      "output_size_bytes": 10029,
      "size_change_percent": "-69.38",
      "transparency_preserved": "Not applicable",
      "quality_setting": "80 (lossy), effort 6",
      "psnr_db": "52.05",
      "rmse_8bit": "0.6366",
      "visible_artifacts": "Minimal",
      "notes": "Edges and fills stayed close to the source; only subtle edge smoothing was observed.",
      "output_file": "/benchmarks/image-format-comparison/outputs/flat-illustration.avif"
    },
    {
      "source_image": "transparent-shapes.png",
      "category": "Transparent image",
      "source_format": "PNG",
      "source_dimensions": "1200x800",
      "source_size_bytes": 54439,
      "source_sha256": "2bc4e03abe30c20e12a94aa2dcb6a29c4f1dd568c9ebe3fbdd3064745ac48aed",
      "output_format": "JPG",
      "output_dimensions": "1200x800",
      "output_size_bytes": 27680,
      "size_change_percent": "-49.15",
      "transparency_preserved": "No - flattened on white",
      "quality_setting": "80 (lossy)",
      "psnr_db": "42.77",
      "rmse_8bit": "1.8540",
      "visible_artifacts": "Visible",
      "notes": "Transparency was flattened on white as required by JPG; semitransparent overlaps cannot be recovered, and faint edge ringing was visible.",
      "output_file": "/benchmarks/image-format-comparison/outputs/transparent-shapes.jpg"
    },
    {
      "source_image": "transparent-shapes.png",
      "category": "Transparent image",
      "source_format": "PNG",
      "source_dimensions": "1200x800",
      "source_size_bytes": 54439,
      "source_sha256": "2bc4e03abe30c20e12a94aa2dcb6a29c4f1dd568c9ebe3fbdd3064745ac48aed",
      "output_format": "PNG",
      "output_dimensions": "1200x800",
      "output_size_bytes": 61830,
      "size_change_percent": "13.58",
      "transparency_preserved": "Yes",
      "quality_setting": "Lossless; compression level 9",
      "psnr_db": "Lossless",
      "rmse_8bit": "0.0000",
      "visible_artifacts": "None observed",
      "notes": "Alpha gradients and antialiased edges matched the normalized source pixels.",
      "output_file": "/benchmarks/image-format-comparison/outputs/transparent-shapes.png"
    },
    {
      "source_image": "transparent-shapes.png",
      "category": "Transparent image",
      "source_format": "PNG",
      "source_dimensions": "1200x800",
      "source_size_bytes": 54439,
      "source_sha256": "2bc4e03abe30c20e12a94aa2dcb6a29c4f1dd568c9ebe3fbdd3064745ac48aed",
      "output_format": "WebP",
      "output_dimensions": "1200x800",
      "output_size_bytes": 29038,
      "size_change_percent": "-46.66",
      "transparency_preserved": "Yes",
      "quality_setting": "80 (lossy), effort 6",
      "psnr_db": "47.81",
      "rmse_8bit": "1.0373",
      "visible_artifacts": "Slight",
      "notes": "Transparency was preserved, with slight color/gradient deviation visible in semitransparent overlaps at 100%.",
      "output_file": "/benchmarks/image-format-comparison/outputs/transparent-shapes.webp"
    },
    {
      "source_image": "transparent-shapes.png",
      "category": "Transparent image",
      "source_format": "PNG",
      "source_dimensions": "1200x800",
      "source_size_bytes": 54439,
      "source_sha256": "2bc4e03abe30c20e12a94aa2dcb6a29c4f1dd568c9ebe3fbdd3064745ac48aed",
      "output_format": "AVIF",
      "output_dimensions": "1200x800",
      "output_size_bytes": 18644,
      "size_change_percent": "-65.75",
      "transparency_preserved": "Yes",
      "quality_setting": "80 (lossy), effort 6",
      "psnr_db": "56.98",
      "rmse_8bit": "0.3610",
      "visible_artifacts": "Minimal",
      "notes": "Transparency and soft edges were preserved; no obvious halo was visible in the inspected crop.",
      "output_file": "/benchmarks/image-format-comparison/outputs/transparent-shapes.avif"
    }
  ],
  "sources": {
    "photorealistic-landscape": {
      "sourceImage": "photorealistic-landscape.png",
      "category": "Photorealistic scene",
      "description": "Original AI-generated landscape disclosed as generated; fine foliage, water, stone, cloud gradients, and shadow detail.",
      "dimensions": "1536x1024",
      "sourceSizeBytes": 3353119,
      "smallestOutput": "WebP",
      "smallestOutputBytes": 342480,
      "results": [
        {
          "format": "JPG",
          "bytes": 391819,
          "sizeChangePercent": -88.31,
          "psnrDb": "33.94",
          "transparency": "Not applicable"
        },
        {
          "format": "PNG",
          "bytes": 3000718,
          "sizeChangePercent": -10.51,
          "psnrDb": "Lossless",
          "transparency": "Not applicable"
        },
        {
          "format": "WebP",
          "bytes": 342480,
          "sizeChangePercent": -89.79,
          "psnrDb": "35.24",
          "transparency": "Not applicable"
        },
        {
          "format": "AVIF",
          "bytes": 537438,
          "sizeChangePercent": -83.97,
          "psnrDb": "41.72",
          "transparency": "Not applicable"
        }
      ]
    },
    "ui-screenshot": {
      "sourceImage": "ui-screenshot.png",
      "category": "Screenshot / UI",
      "description": "Locally generated browser-style interface with small text, fine rules, icons, and flat fills.",
      "dimensions": "1200x800",
      "sourceSizeBytes": 59145,
      "smallestOutput": "AVIF",
      "smallestOutputBytes": 19353,
      "results": [
        {
          "format": "JPG",
          "bytes": 48398,
          "sizeChangePercent": -18.17,
          "psnrDb": "41.87",
          "transparency": "Not applicable"
        },
        {
          "format": "PNG",
          "bytes": 77434,
          "sizeChangePercent": 30.92,
          "psnrDb": "Lossless",
          "transparency": "Not applicable"
        },
        {
          "format": "WebP",
          "bytes": 21234,
          "sizeChangePercent": -64.1,
          "psnrDb": "43.77",
          "transparency": "Not applicable"
        },
        {
          "format": "AVIF",
          "bytes": 19353,
          "sizeChangePercent": -67.28,
          "psnrDb": "52.45",
          "transparency": "Not applicable"
        }
      ]
    },
    "flat-illustration": {
      "sourceImage": "flat-illustration.png",
      "category": "Illustration / flat graphic",
      "description": "Locally generated geometric illustration with hard edges, gradients, and a limited palette.",
      "dimensions": "1200x800",
      "sourceSizeBytes": 32756,
      "smallestOutput": "AVIF",
      "smallestOutputBytes": 10029,
      "results": [
        {
          "format": "JPG",
          "bytes": 28406,
          "sizeChangePercent": -13.28,
          "psnrDb": "41.08",
          "transparency": "Not applicable"
        },
        {
          "format": "PNG",
          "bytes": 40376,
          "sizeChangePercent": 23.26,
          "psnrDb": "Lossless",
          "transparency": "Not applicable"
        },
        {
          "format": "WebP",
          "bytes": 12652,
          "sizeChangePercent": -61.38,
          "psnrDb": "42.36",
          "transparency": "Not applicable"
        },
        {
          "format": "AVIF",
          "bytes": 10029,
          "sizeChangePercent": -69.38,
          "psnrDb": "52.05",
          "transparency": "Not applicable"
        }
      ]
    },
    "transparent-shapes": {
      "sourceImage": "transparent-shapes.png",
      "category": "Transparent image",
      "description": "Locally generated alpha test with opaque, semitransparent, antialiased, and shadowed shapes.",
      "dimensions": "1200x800",
      "sourceSizeBytes": 54439,
      "smallestOutput": "AVIF",
      "smallestOutputBytes": 18644,
      "results": [
        {
          "format": "JPG",
          "bytes": 27680,
          "sizeChangePercent": -49.15,
          "psnrDb": "42.77",
          "transparency": "No - flattened on white"
        },
        {
          "format": "PNG",
          "bytes": 61830,
          "sizeChangePercent": 13.58,
          "psnrDb": "Lossless",
          "transparency": "Yes"
        },
        {
          "format": "WebP",
          "bytes": 29038,
          "sizeChangePercent": -46.66,
          "psnrDb": "47.81",
          "transparency": "Yes"
        },
        {
          "format": "AVIF",
          "bytes": 18644,
          "sizeChangePercent": -65.75,
          "psnrDb": "56.98",
          "transparency": "Yes"
        }
      ]
    }
  }
}
