tid2013_compare — IMGMETRICS iqa op

• Datenarten: any × any × any → table

• Aufruf: import fullseye as fs; fs.ledger.tid2013_compare(values, author_values, mos, published: 'Optional[Tuple[float, float]]' = None, inf_as: 'Optional[float]' = None) -> 'dict' (die Implementierung direkt: import iqatid; iqatid.tid2013_compare(values, author_values, mos, published: 'Optional[Tuple[float, float]]' = None, inf_as: 'Optional[float]' = None) -> 'dict'; aus dem Register: opsimgmetrics.get("tid2013_compare"))

Verwendung

Vergleicht eigene Werte mit den Werten der Autoren (gleiche Paare, gleiche Reihenfolge): zeilenweise Differenzen und Rangkorrelation mit dem MOS.

inf_as = der Wert, der das eigene inf vor der Differenzbildung ersetzt. Der Autor schreibt eine exakte PSNR-Übereinstimmung als 100000.0 (106 Zeilen von psnr.txt, Verzerrung 18), daher wird mit inf_as=100000.0 die zeilenweise Differenz 0. Fehlt es und ist ein inf vorhanden, ValueError (nicht stillschweigend verworfen). Die Rangkorrelation nutzt inf als Ordnung. Die Markierung des Autors steht in 111 Zeilen von psnr.txt, aber mit der BT.601-Formel stimmt Y′ nur in 106 Zeilen mit der Referenz überein -- in den übrigen 5 Zeilen (Referenz I12, 5 Stufen Sättigungsänderung) fällt die Leuchtdichte von 28 Pixeln genau auf k.5, die Rundungsrichtung weicht von der Arithmetik des Autors ab, 1 LSB Differenz → 86.6 dB (half to even, Aufrunden bei .5, float32 und Integer-Formeln ergeben alle nicht 111, 2026-10-04). Daher werden diff_max_finite (maximale Differenz nur über Zeilen, in denen weder Autor noch wir exakt übereinstimmen) und sentinel_mismatch_idx / sentinel_mismatch_values (Zeilen mit Markierung beim Autor, aber endlichem Wert bei uns, und deren Werte) separat zurückgegeben. Das Gate prüft beides.

Rückgabe: n, n_inf, n_sentinel_author, diff_max (Maximum von |eigen − Autor|, inkl. Markierungszeilen), diff_max_finite / argmax_finite, sentinel_mismatch_idx / sentinel_mismatch_values, inf_not_sentinel_idx (eigen inf, Autor eine Zahl), diff_mean (vorzeichenbehaftetes Mittel), diff_rms, argmax (Zeile der maximalen Differenz), srocc / krocc (eigen vs MOS), srocc_author / krocc_author (Autorenwerte vs MOS), und bei Übergabe von published d_srocc_published / d_krocc_published (eigen − veröffentlicht) sowie d_srocc_author_published / d_krocc_author_published. Raises ValueError: Längen verschieden, nan, inf ohne inf_as.

Ausführlicher Anwendungsleitfaden

• Leitfaden zur Familie image_difference_metrics

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• poc_iqa_fsim_gmsd_vif — py -3.11 examples/poc_iqa_fsim_gmsd_vif.py

• poc_iqa_tid2013 — py -3.11 examples/poc_iqa_tid2013.py

Typkompatible Folge-Operatoren (nehmen table als Eingabe)

luma_limited_u8 · rank_data · tid2013_index · tid2013_by_distortion

Gleiche Kategorie (iqa)

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


*Provenance: iqatid.py — IMGMETRICS Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

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