Skip to content

Benchmark measurement details

Historical measurement. Not a measurement of the latest release.

View the results · Run benchmarks

Measurement identity Value
Source revision dd5b6b8d30e6e7e39e1356be284547f029c07367
Measured at 2026-11-11T05:58:08.668617+00:00
Result status completed
Source document SHA-256 0311c968ea3aa7c0f104e85fe86482bbabae808f60ad8a6fe89acdd1fe5c4d8c
Policy Observational codec comparison; no cross-machine regression budget.
platform macOS-15.8.2-arm64-arm-64bit
machine arm64
rustc rustc 1.96.1 (31fca3adb 2026-06-26) binary: rustc commit-hash: 31fca3adb283cc9dfd56b49cdee9a96eb9c96ffd commit-date: 2026-06-26 host: aarch64-apple-darwin release: 1.96.1 LLVM version: 22.1.2
cc Apple clang version 17.0.0 (clang-1700.0.13.5) Target: arm64-apple-darwin24.6.0 Thread model: posix InstalledDir: /Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
python 3.12.10 (v3.12.10:0cc81280367, Apr 8 2025, 08:46:59) [Clang 13.0.0 (clang-1300.0.29.30)]

Download the public measurement data. This is a presentation snapshot, not the full source receipt. It preserves the original report hash and numerical observations; hostnames, local paths, and internal traces are omitted.

  • JPEG only. This does not measure other image codecs or general image processing.
  • CMYK uses different public sample conventions in Pillow and TurboJPEG; unequal output hashes are not automatically codec errors.
  • Spread is not present in the summary CSV. It is unavailable here rather than inferred from the medians.

Full measurements

Workload Subject Median µs P90 µs P95 µs Samples Result / correctness Requested → actual Terminal receipt
encode.rgb-8-q85-420 image-slash-star 2.875 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-8-q85-420 libjpeg-turbo 5.958 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-32-q85-420 image-slash-star 5.250 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-32-q85-420 libjpeg-turbo 8.583 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-63x65-q85-420 image-slash-star 19.875 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-63x65-q85-420 libjpeg-turbo 21.917 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-128-q10-420 image-slash-star 47.708 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-128-q10-420 libjpeg-turbo 35.041 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-128-q50-420 image-slash-star 63.042 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-128-q50-420 libjpeg-turbo 48.416 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-128-q85-420 image-slash-star 81.833 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-128-q85-420 libjpeg-turbo 68.292 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-128-q100-420 image-slash-star 100.666 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-128-q100-420 libjpeg-turbo 82.666 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-512-q10-420 image-slash-star 1,027.834 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-512-q10-420 libjpeg-turbo 554.125 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-512-q85-420 image-slash-star 1,918.625 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-512-q85-420 libjpeg-turbo 1,104.000 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-1024-q85-420 image-slash-star 7,376.041 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-1024-q85-420 libjpeg-turbo 4,518.959 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-128-q85-422 image-slash-star 136.916 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-128-q85-422 libjpeg-turbo 95.166 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-128-q85-444 image-slash-star 213.042 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-128-q85-444 libjpeg-turbo 143.291 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-128-q85-optimized image-slash-star 211.791 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-128-q85-optimized libjpeg-turbo 219.916 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-128-q85-progressive image-slash-star 683.875 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-128-q85-progressive libjpeg-turbo 691.042 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-128-q85-restart4 image-slash-star 80.208 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-128-q85-restart4 libjpeg-turbo 67.667 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.gray-128-q85 image-slash-star 43.459 Not measured Not measured 5 completed; output hash match: False; byte length match: True native → native Not applicable
encode.gray-128-q85 libjpeg-turbo 54.250 Not measured Not measured 5 completed; output hash match: False; byte length match: True native → native Not applicable
encode.gray-512-q85 image-slash-star 998.459 Not measured Not measured 5 completed; output hash match: False; byte length match: True native → native Not applicable
encode.gray-512-q85 libjpeg-turbo 860.584 Not measured Not measured 5 completed; output hash match: False; byte length match: True native → native Not applicable
encode.cmyk-128-q85 image-slash-star 295.625 Not measured Not measured 5 completed; output hash match: False; byte length match: False native → native Not applicable
encode.cmyk-128-q85 libjpeg-turbo 184.541 Not measured Not measured 5 completed; output hash match: False; byte length match: False native → native Not applicable
encode.cmyk-512-q85 image-slash-star 4,974.541 Not measured Not measured 5 completed; output hash match: False; byte length match: False native → native Not applicable
encode.cmyk-512-q85 libjpeg-turbo 3,081.667 Not measured Not measured 5 completed; output hash match: False; byte length match: False native → native Not applicable
encode.rgb-127x129-q85-420 image-slash-star 92.416 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
encode.rgb-127x129-q85-420 libjpeg-turbo 72.875 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-8-q85-420 image-slash-star 1.833 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-8-q85-420 libjpeg-turbo 4.833 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-32-q85-420 image-slash-star 7.709 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-32-q85-420 libjpeg-turbo 11.458 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-63x65-q85-420 image-slash-star 29.500 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-63x65-q85-420 libjpeg-turbo 35.500 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-128-q10-420 image-slash-star 43.250 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-128-q10-420 libjpeg-turbo 32.792 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-128-q50-420 image-slash-star 73.708 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-128-q50-420 libjpeg-turbo 76.042 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-128-q85-420 image-slash-star 107.375 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-128-q85-420 libjpeg-turbo 116.792 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-128-q100-420 image-slash-star 183.834 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-128-q100-420 libjpeg-turbo 155.791 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-512-q10-420 image-slash-star 725.667 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-512-q10-420 libjpeg-turbo 537.500 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-512-q85-420 image-slash-star 2,060.417 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-512-q85-420 libjpeg-turbo 1,917.833 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-1024-q85-420 image-slash-star 9,089.958 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-1024-q85-420 libjpeg-turbo 7,891.167 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-128-q85-422 image-slash-star 159.500 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-128-q85-422 libjpeg-turbo 155.708 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-128-q85-444 image-slash-star 271.292 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-128-q85-444 libjpeg-turbo 236.416 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-128-q85-optimized image-slash-star 149.042 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-128-q85-optimized libjpeg-turbo 112.875 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-128-q85-progressive image-slash-star 343.750 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-128-q85-progressive libjpeg-turbo 311.000 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-128-q85-restart4 image-slash-star 119.167 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-128-q85-restart4 libjpeg-turbo 129.208 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.gray-128-q85 image-slash-star 88.000 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.gray-128-q85 libjpeg-turbo 84.375 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.gray-512-q85 image-slash-star 1,749.875 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.gray-512-q85 libjpeg-turbo 1,460.625 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.cmyk-128-q85 image-slash-star 404.750 Not measured Not measured 5 completed; output hash match: False; byte length match: True native → native Not applicable
decode.cmyk-128-q85 libjpeg-turbo 355.792 Not measured Not measured 5 completed; output hash match: False; byte length match: True native → native Not applicable
decode.cmyk-512-q85 image-slash-star 6,926.250 Not measured Not measured 5 completed; output hash match: False; byte length match: True native → native Not applicable
decode.cmyk-512-q85 libjpeg-turbo 5,960.083 Not measured Not measured 5 completed; output hash match: False; byte length match: True native → native Not applicable
decode.rgb-127x129-q85-420 image-slash-star 120.584 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable
decode.rgb-127x129-q85-420 libjpeg-turbo 121.708 Not measured Not measured 5 completed; output hash match: True; byte length match: True native → native Not applicable

Workload boundaries

Repeat counts, dimensions, modes, and cache states are retained per workload:

encode.rgb-8-q85-420

Sample unit: round median.

{
  "context": {
    "width": "8",
    "height": "8",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 20000,
    "aggregation": "median of round medians"
  }
}

encode.rgb-32-q85-420

Sample unit: round median.

{
  "context": {
    "width": "32",
    "height": "32",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 15000,
    "aggregation": "median of round medians"
  }
}

encode.rgb-63x65-q85-420

Sample unit: round median.

{
  "context": {
    "width": "63",
    "height": "65",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 8000,
    "aggregation": "median of round medians"
  }
}

encode.rgb-128-q10-420

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "rgb",
    "quality": "10",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 4000,
    "aggregation": "median of round medians"
  }
}

encode.rgb-128-q50-420

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "rgb",
    "quality": "50",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 4000,
    "aggregation": "median of round medians"
  }
}

encode.rgb-128-q85-420

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 4000,
    "aggregation": "median of round medians"
  }
}

encode.rgb-128-q100-420

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "rgb",
    "quality": "100",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 3000,
    "aggregation": "median of round medians"
  }
}

encode.rgb-512-q10-420

Sample unit: round median.

{
  "context": {
    "width": "512",
    "height": "512",
    "mode": "rgb",
    "quality": "10",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 300,
    "aggregation": "median of round medians"
  }
}

encode.rgb-512-q85-420

Sample unit: round median.

{
  "context": {
    "width": "512",
    "height": "512",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 200,
    "aggregation": "median of round medians"
  }
}

encode.rgb-1024-q85-420

Sample unit: round median.

{
  "context": {
    "width": "1024",
    "height": "1024",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 50,
    "aggregation": "median of round medians"
  }
}

encode.rgb-128-q85-422

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "422",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 3000,
    "aggregation": "median of round medians"
  }
}

encode.rgb-128-q85-444

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "444",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 2000,
    "aggregation": "median of round medians"
  }
}

encode.rgb-128-q85-optimized

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "1",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 1500,
    "aggregation": "median of round medians"
  }
}

encode.rgb-128-q85-progressive

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "420",
    "progressive": "1",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 500,
    "aggregation": "median of round medians"
  }
}

encode.rgb-128-q85-restart4

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "4"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 3000,
    "aggregation": "median of round medians"
  }
}

encode.gray-128-q85

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "gray",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 3000,
    "aggregation": "median of round medians"
  }
}

encode.gray-512-q85

Sample unit: round median.

{
  "context": {
    "width": "512",
    "height": "512",
    "mode": "gray",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 300,
    "aggregation": "median of round medians"
  }
}

encode.cmyk-128-q85

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "cmyk",
    "quality": "85",
    "subsampling": "444",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 1000,
    "aggregation": "median of round medians"
  }
}

encode.cmyk-512-q85

Sample unit: round median.

{
  "context": {
    "width": "512",
    "height": "512",
    "mode": "cmyk",
    "quality": "85",
    "subsampling": "444",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 100,
    "aggregation": "median of round medians"
  }
}

encode.rgb-127x129-q85-420

Sample unit: round median.

{
  "context": {
    "width": "127",
    "height": "129",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 3000,
    "aggregation": "median of round medians"
  }
}

decode.rgb-8-q85-420

Sample unit: round median.

{
  "context": {
    "width": "8",
    "height": "8",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 20000,
    "aggregation": "median of round medians"
  }
}

decode.rgb-32-q85-420

Sample unit: round median.

{
  "context": {
    "width": "32",
    "height": "32",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 15000,
    "aggregation": "median of round medians"
  }
}

decode.rgb-63x65-q85-420

Sample unit: round median.

{
  "context": {
    "width": "63",
    "height": "65",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 8000,
    "aggregation": "median of round medians"
  }
}

decode.rgb-128-q10-420

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "rgb",
    "quality": "10",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 4000,
    "aggregation": "median of round medians"
  }
}

decode.rgb-128-q50-420

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "rgb",
    "quality": "50",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 4000,
    "aggregation": "median of round medians"
  }
}

decode.rgb-128-q85-420

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 4000,
    "aggregation": "median of round medians"
  }
}

decode.rgb-128-q100-420

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "rgb",
    "quality": "100",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 3000,
    "aggregation": "median of round medians"
  }
}

decode.rgb-512-q10-420

Sample unit: round median.

{
  "context": {
    "width": "512",
    "height": "512",
    "mode": "rgb",
    "quality": "10",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 300,
    "aggregation": "median of round medians"
  }
}

decode.rgb-512-q85-420

Sample unit: round median.

{
  "context": {
    "width": "512",
    "height": "512",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 200,
    "aggregation": "median of round medians"
  }
}

decode.rgb-1024-q85-420

Sample unit: round median.

{
  "context": {
    "width": "1024",
    "height": "1024",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 50,
    "aggregation": "median of round medians"
  }
}

decode.rgb-128-q85-422

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "422",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 3000,
    "aggregation": "median of round medians"
  }
}

decode.rgb-128-q85-444

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "444",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 2000,
    "aggregation": "median of round medians"
  }
}

decode.rgb-128-q85-optimized

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "1",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 1500,
    "aggregation": "median of round medians"
  }
}

decode.rgb-128-q85-progressive

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "420",
    "progressive": "1",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 500,
    "aggregation": "median of round medians"
  }
}

decode.rgb-128-q85-restart4

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "4"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 3000,
    "aggregation": "median of round medians"
  }
}

decode.gray-128-q85

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "gray",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 3000,
    "aggregation": "median of round medians"
  }
}

decode.gray-512-q85

Sample unit: round median.

{
  "context": {
    "width": "512",
    "height": "512",
    "mode": "gray",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 300,
    "aggregation": "median of round medians"
  }
}

decode.cmyk-128-q85

Sample unit: round median.

{
  "context": {
    "width": "128",
    "height": "128",
    "mode": "cmyk",
    "quality": "85",
    "subsampling": "444",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 1000,
    "aggregation": "median of round medians"
  }
}

decode.cmyk-512-q85

Sample unit: round median.

{
  "context": {
    "width": "512",
    "height": "512",
    "mode": "cmyk",
    "quality": "85",
    "subsampling": "444",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 100,
    "aggregation": "median of round medians"
  }
}

decode.rgb-127x129-q85-420

Sample unit: round median.

{
  "context": {
    "width": "127",
    "height": "129",
    "mode": "rgb",
    "quality": "85",
    "subsampling": "420",
    "progressive": "0",
    "optimize": "0",
    "restart_rows": "0"
  },
  "measurement_policy": {
    "boundary": "public codec operation including context/output lifetime",
    "iterations_per_round": 3000,
    "aggregation": "median of round medians"
  }
}

Reproduce and interpret

Use the benchmark protocol. Correctness, native dispatch, timing regressions, process memory, and artifact size are separate claims.