Resolve a sample into a prepared (gen, ref) pair.
Caches the result on sample['_physics_iq_pair'] so other physics_iq
sub-metrics on the same sample reuse it instead of re-decoding.
Source code in fastvideo/eval/metrics/physics_iq/utils.py
| def prepare_pair(
sample: dict[str, Any],
*,
prep_kwargs: dict[str, Any] | None = None,
) -> PreparedPhysicsIQPair:
"""Resolve a sample into a prepared (gen, ref) pair.
Caches the result on ``sample['_physics_iq_pair']`` so other physics_iq
sub-metrics on the same sample reuse it instead of re-decoding.
"""
prepared = sample.get("_physics_iq_pair")
if prepared is not None:
return prepared
if "reference" not in sample:
raise KeyError("Physics-IQ pair metrics require sample['reference'].")
prepared = prepare_pair_inputs(
sample["video"],
sample["reference"],
generated_mask=sample.get("video_mask"),
reference_mask=sample.get("reference_mask"),
**(prep_kwargs or {}),
)
sample["_physics_iq_pair"] = prepared
return prepared
|