V8 — Controlled Temporal Artifact Screening

Date: 2026-07-12 · Reference: ref.mp4 (1280×720, 30fps, 60 frames) · Metrics: PSNR, SSIM, L1, LPIPS-alex, CVVDP JOD, CVVDP per-frame heatmap, temporal residual, high-frequency temporal residual.

0 · Objective

Screen whether CVVDP / VDP temporal channels can detect, localize, and rank controlled temporal artifacts. This is the cheapest and most interpretable probe — it directly answers where VDP works as a perceptual loss / diagnostic and where it fails.

1 · Methodology

  1. Clean reference video: 1280×720, 30fps, 60 frames (CVVDP example flick­ering/ref.mp4).
  2. For each artifact type, generate 1–3 amplitude variants by applying a deterministic per-frame function (seeded).
  3. For each (artifact, amplitude), compute:
  4. Aggregate per-family table and a verdict per family.

2 · Full Summary (sorted by JOD ascending)

ArtifactAmp JODPSNRSSIML1 LPIPSt-resid meant-resid p95 HF-t meanHF-t p95 HM meanHM p95HM max
edge_popping 1.00 4.600 26.668 0.753 0.0760 0.2135 0.02051 0.04892 0.00013 0.00043 0.677 0.844 1.024
edge_popping 0.50 6.312 29.554 0.885 0.0412 0.0776 0.01036 0.02406 0.00006 0.00020 0.432 0.572 0.744
color_flicker 1.00 6.887 19.750 0.943 0.0738 0.1639 0.01563 0.04686 0.00004 0.00010 0.374 0.513 0.637
gamma_contrast_jitter 1.00 7.487 23.816 0.934 0.0733 0.0228 0.01513 0.02353 0.00004 0.00013 0.260 0.307 0.441
global_brightness_flicker 0.20 7.601 25.709 0.970 0.0536 0.0106 0.01109 0.02080 0.00003 0.00009 0.222 0.280 0.354
blur_jitter 1.00 7.756 26.168 0.694 0.0431 0.3394 0.00538 0.01954 0.00006 0.00021 0.151 0.274 0.564
local_brightness_flicker 1.00 7.981 32.012 0.983 0.0110 0.0084 0.00642 0.00465 0.00001 0.00002 0.149 0.461 0.777
gamma_contrast_jitter 0.70 7.991 26.818 0.961 0.0500 0.0121 0.01013 0.01549 0.00003 0.00009 0.197 0.228 0.330
texture_shimmer 1.00 8.019 17.312 0.421 0.1072 0.5692 0.14825 0.37468 0.00260 0.00655 0.190 0.296 0.557
color_flicker 0.50 8.094 25.492 0.976 0.0391 0.0864 0.00851 0.02433 0.00002 0.00007 0.213 0.321 0.405
temporal_dropout_detail 1.00 8.343 25.253 0.848 0.0372 0.1235 0.00000 0.00000 0.00000 0.00000 0.116 0.239 0.534
local_brightness_flicker 0.60 8.415 34.951 0.987 0.0094 0.0054 0.00381 0.00286 0.00001 0.00001 0.107 0.332 0.618
global_brightness_flicker 0.10 8.452 30.880 0.984 0.0273 0.0053 0.00540 0.01103 0.00002 0.00006 0.139 0.172 0.210
temporal_dropout_detail 0.70 8.571 29.653 0.908 0.0264 0.0766 0.01413 0.05078 0.00015 0.00051 0.139 0.216 0.432
temporal_dropout_detail 0.30 8.729 34.954 0.955 0.0157 0.0331 0.00988 0.03496 0.00010 0.00035 0.106 0.150 0.292
blur_jitter 0.50 8.754 30.532 0.852 0.0272 0.1596 0.00357 0.01276 0.00005 0.00017 0.086 0.162 0.436
gamma_contrast_jitter 0.30 8.797 33.203 0.983 0.0215 0.0044 0.00450 0.00831 0.00002 0.00006 0.105 0.122 0.161
local_brightness_flicker 0.30 8.940 38.062 0.989 0.0081 0.0036 0.00183 0.00126 0.00000 0.00000 0.064 0.187 0.398
texture_shimmer 0.50 8.946 23.492 0.667 0.0527 0.2384 0.07100 0.17853 0.00124 0.00313 0.083 0.152 0.335
global_brightness_flicker 0.05 9.022 35.213 0.986 0.0152 0.0042 0.00261 0.00658 0.00001 0.00005 0.084 0.105 0.132
small_moving_dots 1.00 9.204 37.040 0.989 0.0072 0.0084 0.00039 0.00000 0.00000 0.00000 0.024 0.051 0.778
color_flicker 0.20 9.213 32.421 0.984 0.0190 0.0279 0.00392 0.01117 0.00001 0.00005 0.091 0.136 0.166
small_moving_dots 0.70 9.285 37.701 0.989 0.0071 0.0069 0.00030 0.00000 0.00000 0.00000 0.021 0.040 0.744
small_moving_dots 0.30 9.478 39.320 0.990 0.0070 0.0047 0.00010 0.00000 0.00000 0.00000 0.013 0.023 0.670
jpeg_qp_jitter 1.00 9.490 31.821 0.904 0.0213 0.0528 0.00874 0.03051 0.00016 0.00055 0.048 0.064 0.258
jpeg_qp_jitter 0.50 9.515 34.693 0.948 0.0154 0.0248 0.00601 0.02167 0.00012 0.00043 0.041 0.051 0.153
texture_shimmer 0.20 9.636 31.697 0.900 0.0205 0.0421 0.02302 0.05929 0.00040 0.00105 0.030 0.054 0.145
jpeg_qp_jitter 0.20 9.807 39.180 0.987 0.0082 0.0048 0.00055 0.00312 0.00001 0.00006 0.017 0.025 0.077
blur_jitter 0.20 9.854 40.482 0.990 0.0070 0.0031 0.00000 0.00000 0.00000 0.00000 0.008 0.016 0.055

3 · Per-Family Detail

global_brightness_flicker

All pixels multiplied by sinusoidal brightness factor.
AmpJODPSNRLPIPSHF-t p95HM p95
0.05 9.022 35.213 0.0042 0.00005 0.105
0.10 8.452 30.880 0.0053 0.00006 0.172
0.20 7.601 25.709 0.0106 0.00009 0.280
global_brightness_flicker · amp=0.05
JOD=9.022 · PSNR=35.213 · HFt-p95=0.0000
global_brightness_flicker · amp=0.10
JOD=8.452 · PSNR=30.880 · HFt-p95=0.0001
global_brightness_flicker · amp=0.20
JOD=7.601 · PSNR=25.709 · HFt-p95=0.0001
CVVDP heatmap videos
heatmap · global_brightness_flicker · amp=0.05
heatmap · global_brightness_flicker · amp=0.10
heatmap · global_brightness_flicker · amp=0.20

local_brightness_flicker

A drifting patch multiplied by sinusoidal factor.
AmpJODPSNRLPIPSHF-t p95HM p95
0.30 8.940 38.062 0.0036 0.00000 0.187
0.60 8.415 34.951 0.0054 0.00001 0.332
1.00 7.981 32.012 0.0084 0.00002 0.461
local_brightness_flicker · amp=0.30
JOD=8.940 · PSNR=38.062 · HFt-p95=0.0000
local_brightness_flicker · amp=0.60
JOD=8.415 · PSNR=34.951 · HFt-p95=0.0000
local_brightness_flicker · amp=1.00
JOD=7.981 · PSNR=32.012 · HFt-p95=0.0000
CVVDP heatmap videos
heatmap · local_brightness_flicker · amp=0.30
heatmap · local_brightness_flicker · amp=0.60
heatmap · local_brightness_flicker · amp=1.00

color_flicker

Per-frame multiplicative R/B chromaticity flicker.
AmpJODPSNRLPIPSHF-t p95HM p95
0.20 9.213 32.421 0.0279 0.00005 0.136
0.50 8.094 25.492 0.0864 0.00007 0.321
1.00 6.887 19.750 0.1639 0.00010 0.513
color_flicker · amp=0.20
JOD=9.213 · PSNR=32.421 · HFt-p95=0.0000
color_flicker · amp=0.50
JOD=8.094 · PSNR=25.492 · HFt-p95=0.0001
color_flicker · amp=1.00
JOD=6.887 · PSNR=19.750 · HFt-p95=0.0001
CVVDP heatmap videos
heatmap · color_flicker · amp=0.20
heatmap · color_flicker · amp=0.50
heatmap · color_flicker · amp=1.00

texture_shimmer

Per-frame additive Gaussian texture noise.
AmpJODPSNRLPIPSHF-t p95HM p95
0.20 9.636 31.697 0.0421 0.00105 0.054
0.50 8.946 23.492 0.2384 0.00313 0.152
1.00 8.019 17.312 0.5692 0.00655 0.296
texture_shimmer · amp=0.20
JOD=9.636 · PSNR=31.697 · HFt-p95=0.0011
texture_shimmer · amp=0.50
JOD=8.946 · PSNR=23.492 · HFt-p95=0.0031
texture_shimmer · amp=1.00
JOD=8.019 · PSNR=17.312 · HFt-p95=0.0065
CVVDP heatmap videos
heatmap · texture_shimmer · amp=0.20
heatmap · texture_shimmer · amp=0.50
heatmap · texture_shimmer · amp=1.00

edge_popping

Edge mask flicker: edges go dark every other period.
AmpJODPSNRLPIPSHF-t p95HM p95
0.50 6.312 29.554 0.0776 0.00020 0.572
1.00 4.600 26.668 0.2135 0.00043 0.844
edge_popping · amp=0.50
JOD=6.312 · PSNR=29.554 · HFt-p95=0.0002
edge_popping · amp=1.00
JOD=4.600 · PSNR=26.668 · HFt-p95=0.0004
CVVDP heatmap videos
heatmap · edge_popping · amp=0.50
heatmap · edge_popping · amp=1.00

blur_jitter

Per-frame Gaussian blur radius oscillates.
AmpJODPSNRLPIPSHF-t p95HM p95
0.20 9.854 40.482 0.0031 0.00000 0.016
0.50 8.754 30.532 0.1596 0.00017 0.162
1.00 7.756 26.168 0.3394 0.00021 0.274
blur_jitter · amp=0.20
JOD=9.854 · PSNR=40.482 · HFt-p95=0.0000
blur_jitter · amp=0.50
JOD=8.754 · PSNR=30.532 · HFt-p95=0.0002
blur_jitter · amp=1.00
JOD=7.756 · PSNR=26.168 · HFt-p95=0.0002
CVVDP heatmap videos
heatmap · blur_jitter · amp=0.20
heatmap · blur_jitter · amp=0.50
heatmap · blur_jitter · amp=1.00

jpeg_qp_jitter

Per-frame JPEG quality factor oscillates.
AmpJODPSNRLPIPSHF-t p95HM p95
0.20 9.807 39.180 0.0048 0.00006 0.025
0.50 9.515 34.693 0.0248 0.00043 0.051
1.00 9.490 31.821 0.0528 0.00055 0.064
jpeg_qp_jitter · amp=0.20
JOD=9.807 · PSNR=39.180 · HFt-p95=0.0001
jpeg_qp_jitter · amp=0.50
JOD=9.515 · PSNR=34.693 · HFt-p95=0.0004
jpeg_qp_jitter · amp=1.00
JOD=9.490 · PSNR=31.821 · HFt-p95=0.0006
CVVDP heatmap videos
heatmap · jpeg_qp_jitter · amp=0.20
heatmap · jpeg_qp_jitter · amp=0.50
heatmap · jpeg_qp_jitter · amp=1.00

gamma_contrast_jitter

Per-frame gamma exponent oscillates.
AmpJODPSNRLPIPSHF-t p95HM p95
0.30 8.797 33.203 0.0044 0.00006 0.122
0.70 7.991 26.818 0.0121 0.00009 0.228
1.00 7.487 23.816 0.0228 0.00013 0.307
gamma_contrast_jitter · amp=0.30
JOD=8.797 · PSNR=33.203 · HFt-p95=0.0001
gamma_contrast_jitter · amp=0.70
JOD=7.991 · PSNR=26.818 · HFt-p95=0.0001
gamma_contrast_jitter · amp=1.00
JOD=7.487 · PSNR=23.816 · HFt-p95=0.0001
CVVDP heatmap videos
heatmap · gamma_contrast_jitter · amp=0.30
heatmap · gamma_contrast_jitter · amp=0.70
heatmap · gamma_contrast_jitter · amp=1.00

small_moving_dots

Per-frame random black/white dots appear and move.
AmpJODPSNRLPIPSHF-t p95HM p95
0.30 9.478 39.320 0.0047 0.00000 0.023
0.70 9.285 37.701 0.0069 0.00000 0.040
1.00 9.204 37.040 0.0084 0.00000 0.051
small_moving_dots · amp=0.30
JOD=9.478 · PSNR=39.320 · HFt-p95=0.0000
small_moving_dots · amp=0.70
JOD=9.285 · PSNR=37.701 · HFt-p95=0.0000
small_moving_dots · amp=1.00
JOD=9.204 · PSNR=37.040 · HFt-p95=0.0000
CVVDP heatmap videos
heatmap · small_moving_dots · amp=0.30
heatmap · small_moving_dots · amp=0.70
heatmap · small_moving_dots · amp=1.00

temporal_dropout_detail

Occasional detail-loss event: frame blends with blurred copy.
AmpJODPSNRLPIPSHF-t p95HM p95
0.30 8.729 34.954 0.0331 0.00035 0.150
0.70 8.571 29.653 0.0766 0.00051 0.216
1.00 8.343 25.253 0.1235 0.00000 0.239
temporal_dropout_detail · amp=0.30
JOD=8.729 · PSNR=34.954 · HFt-p95=0.0003
temporal_dropout_detail · amp=0.70
JOD=8.571 · PSNR=29.653 · HFt-p95=0.0005
temporal_dropout_detail · amp=1.00
JOD=8.343 · PSNR=25.253 · HFt-p95=0.0000
CVVDP heatmap videos
heatmap · temporal_dropout_detail · amp=0.30
heatmap · temporal_dropout_detail · amp=0.70
heatmap · temporal_dropout_detail · amp=1.00

4 · Reference

clean reference

5 · Per-Family Verdict

Verdict is heuristic, derived from the metrics table:

ArtifactJOD drop (max amp)HM p95 growthHF-t growthVerdictNote
global_brightness_flicker1.42+168%+93%CONTINUECVVDP JOD + heatmap + HF-t residual all grow with amplitude.
local_brightness_flicker0.96+146%+228%MODIFYCVVDP responds but only weakly / only one signal.
color_flicker2.33+276%+110%CONTINUECVVDP JOD + heatmap + HF-t residual all grow with amplitude.
texture_shimmer1.62+444%+522%CONTINUECVVDP JOD + heatmap + HF-t residual all grow with amplitude.
edge_popping1.71+48%+117%CONTINUECVVDP JOD + heatmap + HF-t residual all grow with amplitude.
blur_jitter2.10+1587%+21165%CONTINUECVVDP JOD + heatmap + HF-t residual all grow with amplitude.
jpeg_qp_jitter0.32+156%+805%STOPCVVDP does not clearly localize this artifact.
gamma_contrast_jitter1.31+152%+123%CONTINUECVVDP JOD + heatmap + HF-t residual all grow with amplitude.
small_moving_dots0.27+118%+0%STOPCVVDP does not clearly localize this artifact.
temporal_dropout_detail0.39+60%-100%STOPCVVDP does not clearly localize this artifact.

6 · Verdict Markdown

# V8 Verdict — Controlled Temporal Artifact Screening
Date: 2026-07-12

Per-family CVVDP verdict:

- **global_brightness_flicker**: CONTINUE — CVVDP JOD + heatmap + HF-t residual all grow with amplitude.
- **local_brightness_flicker**: MODIFY — CVVDP responds but only weakly / only one signal.
- **color_flicker**: CONTINUE — CVVDP JOD + heatmap + HF-t residual all grow with amplitude.
- **texture_shimmer**: CONTINUE — CVVDP JOD + heatmap + HF-t residual all grow with amplitude.
- **edge_popping**: CONTINUE — CVVDP JOD + heatmap + HF-t residual all grow with amplitude.
- **blur_jitter**: CONTINUE — CVVDP JOD + heatmap + HF-t residual all grow with amplitude.
- **jpeg_qp_jitter**: STOP — CVVDP does not clearly localize this artifact.
- **gamma_contrast_jitter**: CONTINUE — CVVDP JOD + heatmap + HF-t residual all grow with amplitude.
- **small_moving_dots**: STOP — CVVDP does not clearly localize this artifact.
- **temporal_dropout_detail**: STOP — CVVDP does not clearly localize this artifact.

Machine-readable artifacts:
- summary.json
- metrics.csv
- manifest.json