vifp — IMGMETRICS perceptual op

• Datenarten: image2d × image2d → scalar

• Aufruf: import fullseye as fs; fs.ledger.vifp(ref, dist, data_range: 'float' = 255.0, sigma_nsq: 'float' = 2.0, nscales: 'int' = 4) -> 'float' (die Implementierung direkt: import iqafsim; iqafsim.vifp(ref, dist, data_range: 'float' = 255.0, sigma_nsq: 'float' = 2.0, nscales: 'int' = 4) -> 'float'; aus dem Register: opsimgmetrics.get("vifp"))

Verwendung

Pixelbereichsversion von VIF (das skalare GSM aus Sheikh & Bovik 2006 §V, nach der Konvention des öffentlichen vifp_mscale). 1 = identisch, höher ist besser.

Jede Skala s = 1..4: Fenster N = 2^(4−s+1)+1, Gauß σ = N/5 (17/3.4, 9/1.8, 5/1.0, 3/0.6). Bei s > 1 mit dem Fenster glätten und um 2 dezimieren. Lokale Statistiken (μ, σ², σ12) sind 'valid'-Korrelationen, g = σ12/(σ1²+1e-10), σ_v² = σ2² − g σ12; Pixel mit σ1² < 1e-10, σ2² < 1e-10 oder g < 0 werden gemäß Konvention unterdrückt, σ_v² ≤ 1e-10 → 1e-10. VIF = Σ log10(1 + g² σ1²/(σ_v² + σ_n²)) / Σ log10(1 + σ1²/σ_n²). Asymmetrisch (geteilt durch den Informationsgehalt der Referenz: vif(a, b) ≠ vif(b, a)), bei Kontrastverstärkung über 1 (auch die TID2013-Autorenwerte erreichen max 1.1379 = Verzerrung 17) -- ein Informationsverhältnis, keine Treue. Eingabe (H, W) oder (H, W, 3) (bei 3-ch Y). Auf 4 Stellen mit TID2013s VIFP.txt (das "VIFP" des Artikels, eine andere Zeile als das steerable "VIF") stimmen Y′-limited-Graubilder überein (iqatid.tid2013_evaluate(root, vifp, luma="limited_u8"), 3,000 Paare, max |Diff| 6.8e-5). Raises ValueError: Formen verschieden, auf der kleinsten Skala kleiner als das Fenster, flache Referenz (Nenner 0), sigma_nsq ≤ 0.

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

Typkompatible Folge-Operatoren (nehmen scalar als Eingabe)

luma_limited_u8 · rank_data · tid2013_index

Gleiche Kategorie (perceptual)

fsim · fsimc · fsim_pair · gmsd · gmsd_map · phase_congruency_pc


*Provenance: iqafsim.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.