luma_limited_u8 — IMGMETRICS iqa op

• Data kinds: any → any

• Call: import fullseye as fs; fs.ledger.luma_limited_u8(rgb) -> 'np.ndarray' (to call the implementation directly, import iqatid; iqatid.luma_limited_u8(rgb) -> 'np.ndarray'; from the registry, opsimgmetrics.get("luma_limited_u8"))

Usage

RGB (H, W, 3) uint8 → uint8 (H, W) of Y′ = round(16 + (65.481 R + 128.553 G + 24.966 B) / 255).

Luminance in ITU-R BT.601 limited range (studio swing). Black (0,0,0) → 16, white (255,255,255) → 235. Compared with full range Y = 0.299 R + 0.587 G + 0.114 B (black 0, white 255) it is a different quantity, and PSNR (keeping peak 255) comes out 20 log10(255/219) = 1.321 dB lower. The TID2013 author values psnr.txt ("luminance component") and ssim.txt matched to 4 digits under this convention (10 pairs, 2026-10-04; with full range PSNR is off by −1.3 dB and SSIM by up to 0.05, and without rounding PSNR is off by +0.002-0.07 dB). Neither the page nor the readme says which luminance; this convention was identified by measurement. Rounding is np.round (half to even). For pixels whose luminance falls exactly on k.5, the rounding direction changes with the order of arithmetic and can differ from the author by 1 LSB (in TID2013, 28 pixels of reference I12; for 5 saturation-change pairs the author = perfect match, here 86.6 dB; neither round-half-up nor float32 makes them agree). This only concerns the region where PSNR exceeds 60 dB; the other 2,995 pairs are within 0.0005 dB. Raises ValueError: shape is not (H, W, 3), dtype is not uint8.

Detailed usage guide

• image_difference_metrics family guide

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• poc_iqa_tid2013 — py -3.11 examples/poc_iqa_tid2013.py

Ops the type connects to (they accept any as input)

rgb_to_lab · lab_to_rgb · rgb_to_xyz · xyz_to_lab · delta_e_2000 · delta_e_76 · delta_e_map · mse

Same category (iqa)

rank_data · rank_spearman · rank_kendall_b · tid2013_published · tid2013_root · tid2013_index · tid2013_metric_values · tid2013_evaluate


*Provenance: iqatid.py — IMGMETRICS operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.