gMAD Select Video Clips
The chosen 84 pilot pairs are listed at the bottom.
What counts as one attack task?
How does gMAD work? First, each pooling rule scores the candidate videos. The rules then take turns as “defender” and “attacker.” The attacker seeks two videos that the defender rates almost equally but the attacker rates very differently. People must compare the selected videos to determine which rule better matches perceived quality; that human evaluation has not yet been done.
Method reference: K. Ma et al., “Group maximum differentiation competition: Model comparison with few samples,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 42, no. 4, pp. 851–864, 2020, doi: 10.1109/TPAMI.2018.2889948.
A task is specified by one scene, one defender rule, a different attacker rule, and one quality bin.
For example: “In the middle-quality bin of bistro, let median defend and mean attack.” The program looks for two videos that median rates almost equally but mean rates as differently as possible. A task succeeds only if the pair meets the predefined defender and attacker gap criteria. A task with no valid pair still counts as an attempted task.
6 scenes × 15 defender rules × 14 other attacker rules × 3 quality bins = 3,780 tasks
Why is K=3 different from searching all videos once? The three bins together do contain every candidate video. Without bins, however, each defender–attacker combination would select just the single pair with the largest disagreement, possibly concentrating selections in one score range. With K=3, the attacker searches separately within the defender's low-, middle-, and high-score bins and can obtain up to three pairs. Both videos in a pair must belong to the same bin, and the defender and attacker gap thresholds still apply. For example, if the largest attacker gaps in the three bins are 1.0, 0.8, and 0.3, a search without bins would select only the 1.0 pair; binning attempts to select one pair from each bin. K=3 makes every bin eligible for an attempt, but does not guarantee equal numbers of pilot pairs from each bin.
3,414 tasks yielded a pair. Different tasks can select the same two videos; after deduplication, there are 1,225 distinct pairs.
insufficient_attack_gap: 222 means a pair was close enough under the defender, but the largest available score difference under the attacker fell below the required threshold. Those 222 tasks had no valid attack; this does not establish that the defender wins. Rules with identical predictions cannot attack each other effectively either.
Why do some rules give identical scores?
The comparison uses 15 pooling rules in the code. Under the current parameters and video duration, some differently named rules produce the same result for every candidate:
| Equivalent rules | Why |
|---|---|
| mean = last_frames_mean = cumulative_quality | With these 4.5-second videos and current parameters, each rule gives every candidate the same overall mean score. |
| median = kth_percentile | The 50th percentile is the median. |
How long are the time windows?
The original study's 25 fps durations are converted to 120 Hz: 100 frames, or 4 seconds, becomes 480 frames; 125 frames, or 5 seconds, becomes 600 frames.
worst_window slides a 4-second window across the entire 4.5-second video. exp_weighted_minkowski uses a 4-second weighting decay scale. The 5-second last_frames_mean window covers the whole video, so it equals mean. hysteresis explicitly uses 120 Hz and a 2-second memory.
Four position-weighting rules
Split each 4.5-second video into three 1.5-second chunks, average the scores within each chunk, and combine the three means using these weights.
| Rule | First | Middle | Last | In plain language |
|---|---|---|---|---|
| early_dominance | 1 | 0 | 0 | Only the first chunk counts |
| late_dominance | 0 | 0 | 1 | Only the last chunk counts |
| increasing_weights | 1/6 | 2/6 | 3/6 | Later chunks matter more |
| decreasing_weights | 3/6 | 2/6 | 1/6 | Earlier chunks matter more |
How many frame scores were negative?
The 108 chunk files contain 19,440 frame scores. Of these, 18 scores are below zero, spread across 6 files. The table lists every negative record in the CSV. Frame indices start at zero; “position in full video” is where that frame would fall after assembling the 4.5-second video.
| Scene | Chunk | Setting | Frame index in chunk | Position in full video (s) | Score |
|---|---|---|---|---|---|
| gallery | 3 | 1080p30 | 143 | 4.192 | -0.092 |
| gallery | 3 | 1080p30 | 144 | 4.200 | -4.931 |
| gallery | 3 | 1080p30 | 148 | 4.233 | -0.286 |
| gallery | 3 | 1080p30 | 149 | 4.242 | -0.509 |
| gallery | 3 | 1080p60 | 143 | 4.192 | -0.105 |
| gallery | 3 | 1080p60 | 144 | 4.200 | -5.021 |
| gallery | 3 | 1080p60 | 148 | 4.233 | -0.489 |
| gallery | 3 | 1080p60 | 149 | 4.242 | -0.656 |
| gallery | 3 | 720p30 | 143 | 4.192 | -0.094 |
| gallery | 3 | 720p30 | 144 | 4.200 | -4.937 |
| gallery | 3 | 720p30 | 148 | 4.233 | -0.302 |
| gallery | 3 | 720p30 | 149 | 4.242 | -0.523 |
| gallery | 3 | 720p60 | 143 | 4.192 | -0.107 |
| gallery | 3 | 720p60 | 144 | 4.200 | -5.026 |
| gallery | 3 | 720p60 | 148 | 4.233 | -0.503 |
| gallery | 3 | 720p60 | 149 | 4.242 | -0.668 |
| rogue | 2 | 1080p30 | 108 | 2.400 | -0.965 |
| rogue | 2 | 720p30 | 108 | 2.400 | -0.869 |
These are per-frame proxy scores exported from CVVDP video-mode features. This run excludes the 18 negative records from the pooling inputs. It neither replaces them with zero nor adds a positive offset. The lowest retained raw score is 0.145. As a result, 216 candidate score sequences have fewer than 540 frames, although the videos themselves remain 4.5 seconds long. These are screening scores based on shortened sequences; the assembled videos still need full-video verification before use.
How close must the defender's scores be?
For each scene and defender rule, take its scores for the 216 candidate videos. The 95th percentile minus the 5th percentile is the width of the usual score range, excluding the extremes. The maximum permitted difference between the two videos is the smaller of 5% of that width and 0.10.
Defender score difference ≤ min(0.10, 5% × [defender p95 − p5])
Actual example: for mean on bistro, p5 is about 8.10 and p95 about 9.86. The usual range is about 9.86 − 8.10 = 1.76 points; 5% of it is about 0.088 points. Thus, when mean defends, a pair's scores may differ by at most about 0.088 points. This is a selection threshold, not evidence from human judgments that viewers cannot tell the videos apart.
How were the 84 pilot pairs chosen?
Each scene contributes 10 gMAD pairs + 2 random pairs + 2 diagnostic pairs, giving 84 pairs across 6 scenes. A pair linked to several attack tasks is shown only once.
- 60 gMAD pairs: Choose 10 per scene from the full list of distinct gMAD pairs. Prefer pairs that cover more different defender–attacker–quality-bin combinations; break ties by the larger attacker score gap. This is not a random sample of 60 pairs.
- 12 random pairs: Two per scene. Sample one from pairs where both videos keep fixed settings throughout, and one from pairs where at least one video changes settings. These pairs need not satisfy the gMAD gap criteria.
- 12 diagnostic pairs: Two per scene. One compares reversed orders of quality changes. The other compares fixed settings against changing settings, with similar
meanscores. The reversal pair does not have to have similarmeanscores.
What does “cover a task” mean? If an attack task selected a video pair and that pair enters the pilot, the task is covered. For example, suppose a chosen pair already covers tasks 1 and 2. A candidate linked only to tasks 1 and 2 adds little, while a candidate that also covers task 3 is preferred. The selection counts newly covered defender–attacker–quality-bin combinations, rather than simply how often a pair appears. Each pair is shown only once.
Each video lasts 4.5 seconds, so one A/B viewing takes 9 seconds. Allowing roughly 20 seconds per pair for viewing and response gives about 28 minutes of trials for 84 pairs. Add practice, replays, and breaks when planning the full session. Randomize A/B presentation order. No human ratings are available yet, so these results do not rank the pooling rules by perceptual accuracy.
Pilot pair list
A and B are only list labels here; their playback order must be randomized for participants.
| Scene | Pair ID | Video A: three settings | Video B: three settings | Purpose | Linked gMAD tasks |
|---|---|---|---|---|---|
| bistro | pair_023337808c4c | 720p60 / 720p120 / 1080p30 | 720p60 / 720p60 / 1080p120 | gMAD: covers additional attack tasks | 18 |
| rogue | pair_05dc67639517 | 1080p120 / 1080p120 / 720p30 | 1080p30 / 1080p30 / 1080p30 | gMAD: covers additional attack tasks | 11 |
| school | pair_08aa0e6386aa | 1080p120 / 1080p120 / 720p60 | 1080p30 / 720p30 / 720p60 | gMAD: covers additional attack tasks | 9 |
| gallery | pair_08eba7e816b9 | 1080p120 / 720p30 / 1080p60 | 1080p30 / 1080p120 / 1080p120 | gMAD: covers additional attack tasks | 10 |
| school | pair_09c72bd2f3db | 720p120 / 720p30 / 1080p30 | 720p30 / 1080p120 / 1080p120 | gMAD: covers additional attack tasks | 8 |
| bistro | pair_0e4f2997d49e | 720p60 / 1080p120 / 1080p120 | 720p60 / 1080p30 / 1080p30 | gMAD: covers additional attack tasks | 5 |
| rogue | pair_12911214472c | 1080p120 / 1080p120 / 720p120 | 1080p30 / 1080p30 / 720p120 | gMAD: covers additional attack tasks | 7 |
| rogue | pair_164af4eca044 | 1080p120 / 720p30 / 1080p120 | 720p60 / 1080p30 / 1080p30 | gMAD: covers additional attack tasks | 9 |
| school | pair_1b640faed488 | 1080p120 / 1080p120 / 720p30 | 1080p30 / 720p30 / 1080p120 | gMAD: covers additional attack tasks | 10 |
| rogue | pair_1d23b60a353a | 1080p120 / 1080p120 / 1080p60 | 1080p30 / 1080p30 / 720p60 | gMAD: covers additional attack tasks | 9 |
| school | pair_1e1d4108731e | 1080p30 / 1080p60 / 1080p120 | 720p60 / 720p60 / 720p60 | Diagnostic: fixed vs. changing settings, with similar mean scores | 0 |
| gallery | pair_25043207a887 | 1080p120 / 1080p30 / 1080p30 | 1080p30 / 1080p30 / 1080p120 | Diagnostic: reversed order of changes | 0 |
| school | pair_25a16a7c820d | 1080p120 / 1080p120 / 1080p120 | 1080p120 / 1080p120 / 1080p30 | gMAD: covers additional attack tasks | 20 |
| sibenik | pair_28fa39fd10d8 | 1080p120 / 1080p30 / 1080p60 | 720p60 / 720p60 / 720p60 | Diagnostic: fixed vs. changing settings, with similar mean scores | 0 |
| school | pair_29564eb81b5e | 1080p120 / 1080p120 / 720p30 | 1080p30 / 720p30 / 1080p30 | gMAD: covers additional attack tasks | 11 |
| makeway | pair_2b427269b9b5 | 720p60 / 1080p60 / 1080p120 | 720p60 / 720p120 / 1080p30 | gMAD: covers additional attack tasks | 16 |
| bistro | pair_2b48f816ce98 | 1080p120 / 1080p120 / 1080p120 | 720p60 / 720p60 / 720p60 | Random: both videos have fixed settings | 0 |
| rogue | pair_3f893dae5d83 | 1080p120 / 1080p30 / 1080p120 | 1080p30 / 1080p30 / 1080p30 | gMAD: covers additional attack tasks | 11 |
| sibenik | pair_43738372f8a1 | 1080p120 / 1080p120 / 1080p120 | 1080p30 / 1080p30 / 720p120 | gMAD: covers additional attack tasks | 10 |
| sibenik | pair_44a1a3595210 | 720p120 / 1080p60 / 1080p30 | 720p30 / 720p60 / 1080p120 | gMAD: covers additional attack tasks | 12 |
| bistro | pair_454808dc81eb | 1080p120 / 1080p120 / 720p60 | 720p30 / 1080p60 / 720p60 | gMAD: covers additional attack tasks | 14 |
| makeway | pair_46d9839a6c32 | 1080p60 / 1080p120 / 1080p120 | 1080p60 / 1080p30 / 1080p30 | gMAD: covers additional attack tasks | 9 |
| school | pair_48d6ffefa6f4 | 720p30 / 1080p120 / 1080p120 | 720p60 / 720p30 / 1080p30 | gMAD: covers additional attack tasks | 10 |
| rogue | pair_4b191ea306e5 | 1080p120 / 720p120 / 720p30 | 1080p30 / 1080p30 / 1080p120 | gMAD: covers additional attack tasks | 11 |
| makeway | pair_4bbe31ac9419 | 1080p120 / 1080p120 / 1080p60 | 720p30 / 1080p30 / 720p60 | gMAD: covers additional attack tasks | 8 |
| gallery | pair_50e44dc39912 | 720p120 / 1080p60 / 1080p60 | 720p60 / 1080p120 / 1080p120 | gMAD: covers additional attack tasks | 10 |
| gallery | pair_50fb381f91b9 | 1080p120 / 1080p60 / 1080p30 | 720p60 / 720p60 / 720p60 | Diagnostic: fixed vs. changing settings, with similar mean scores | 0 |
| school | pair_550a83300672 | 1080p60 / 720p60 / 1080p30 | 720p30 / 720p120 / 1080p120 | Random: at least one video changes settings | 0 |
| makeway | pair_57ea1a45b39b | 720p30 / 1080p120 / 1080p120 | 720p30 / 1080p30 / 1080p30 | gMAD: covers additional attack tasks | 7 |
| sibenik | pair_5caac991ecef | 720p120 / 720p120 / 1080p30 | 720p30 / 1080p120 / 1080p120 | gMAD: covers additional attack tasks | 15 |
| bistro | pair_5f722f87b241 | 1080p60 / 1080p60 / 1080p60 | 720p30 / 1080p120 / 720p60 | Diagnostic: fixed vs. changing settings, with similar mean scores | 0 |
| gallery | pair_68100c14bee2 | 1080p30 / 1080p30 / 1080p30 | 720p30 / 1080p120 / 1080p120 | gMAD: covers additional attack tasks | 12 |
| makeway | pair_68d70f1a3047 | 1080p120 / 720p30 / 1080p120 | 720p60 / 720p30 / 720p60 | gMAD: covers additional attack tasks | 9 |
| makeway | pair_6ca22e0b048a | 1080p30 / 720p30 / 1080p120 | 720p60 / 720p60 / 1080p30 | gMAD: covers additional attack tasks | 12 |
| makeway | pair_72276c925a71 | 1080p120 / 1080p120 / 720p30 | 720p30 / 1080p30 / 720p120 | gMAD: covers additional attack tasks | 15 |
| sibenik | pair_73932c5e0169 | 1080p60 / 1080p30 / 1080p30 | 720p60 / 1080p120 / 1080p120 | gMAD: covers additional attack tasks | 9 |
| school | pair_7571c81f643a | 1080p120 / 720p30 / 1080p30 | 1080p30 / 720p30 / 1080p120 | Diagnostic: reversed order of changes | 0 |
| sibenik | pair_76a3aada85f1 | 1080p120 / 1080p120 / 1080p120 | 720p120 / 1080p30 / 1080p30 | gMAD: covers additional attack tasks | 11 |
| rogue | pair_79bffdec032e | 1080p120 / 1080p120 / 1080p120 | 1080p120 / 1080p30 / 1080p30 | gMAD: covers additional attack tasks | 5 |
| sibenik | pair_7e77a0cb518a | 1080p120 / 720p30 / 1080p30 | 1080p30 / 720p30 / 1080p120 | Diagnostic: reversed order of changes | 0 |
| bistro | pair_7f992559939b | 720p60 / 1080p30 / 720p120 | 720p60 / 720p120 / 1080p30 | Random: at least one video changes settings | 0 |
| school | pair_804d10010c8c | 1080p60 / 1080p120 / 1080p120 | 720p60 / 720p60 / 720p60 | gMAD: covers additional attack tasks | 9 |
| sibenik | pair_8072215cf0c3 | 1080p120 / 1080p30 / 1080p120 | 1080p30 / 720p30 / 1080p30 | gMAD: covers additional attack tasks | 12 |
| school | pair_828b440bbd12 | 1080p120 / 1080p120 / 1080p30 | 720p30 / 1080p120 / 1080p120 | gMAD: covers additional attack tasks | 16 |
| bistro | pair_85ab377be66a | 1080p120 / 1080p120 / 720p30 | 720p30 / 1080p30 / 720p120 | gMAD: covers additional attack tasks | 10 |
| bistro | pair_87cc4b22c597 | 1080p60 / 1080p120 / 1080p30 | 720p30 / 1080p60 / 1080p120 | gMAD: covers additional attack tasks | 8 |
| rogue | pair_89fa295cd1e4 | 1080p120 / 1080p120 / 1080p120 | 720p120 / 720p120 / 720p120 | Random: both videos have fixed settings | 0 |
| bistro | pair_8e445ae5d7e9 | 1080p120 / 720p30 / 1080p30 | 1080p30 / 720p30 / 1080p120 | Diagnostic: reversed order of changes | 0 |
| bistro | pair_8ffe5f4a4138 | 1080p30 / 1080p120 / 1080p120 | 720p30 / 1080p30 / 1080p30 | gMAD: covers additional attack tasks | 7 |
| makeway | pair_92798fc906b6 | 1080p30 / 1080p120 / 1080p120 | 720p60 / 1080p30 / 720p60 | gMAD: covers additional attack tasks | 8 |
| makeway | pair_9a0db3fbd4a6 | 1080p120 / 720p30 / 720p30 | 720p30 / 720p30 / 1080p120 | Diagnostic: reversed order of changes | 0 |
| makeway | pair_9bdf27140990 | 720p60 / 1080p120 / 1080p120 | 720p60 / 1080p30 / 1080p30 | gMAD: covers additional attack tasks | 8 |
| rogue | pair_9d0cac97c110 | 1080p30 / 1080p30 / 1080p30 | 720p30 / 1080p120 / 1080p120 | gMAD: covers additional attack tasks | 11 |
| bistro | pair_9d9cc42ba977 | 1080p120 / 1080p120 / 1080p30 | 720p30 / 1080p30 / 1080p30 | gMAD: covers additional attack tasks | 6 |
| makeway | pair_9f563b1adde4 | 1080p120 / 1080p120 / 720p30 | 720p30 / 1080p30 / 1080p30 | gMAD: covers additional attack tasks | 18 |
| gallery | pair_a33f8044b804 | 720p120 / 720p120 / 1080p30 | 720p60 / 720p60 / 1080p120 | gMAD: covers additional attack tasks | 16 |
| school | pair_a488936bccb4 | 1080p30 / 720p30 / 1080p30 | 720p30 / 1080p120 / 1080p120 | gMAD: covers additional attack tasks | 11 |
| makeway | pair_a4ff99b2048e | 1080p120 / 1080p120 / 1080p120 | 720p120 / 720p120 / 720p120 | Random: both videos have fixed settings | 0 |
| school | pair_ae5dfe1d5086 | 720p120 / 720p120 / 720p120 | 720p60 / 720p60 / 720p60 | Random: both videos have fixed settings | 0 |
| makeway | pair_b0e83fd97743 | 1080p30 / 1080p120 / 1080p60 | 720p30 / 1080p120 / 1080p120 | Random: at least one video changes settings | 0 |
| school | pair_b35361faa0ee | 1080p60 / 1080p120 / 1080p120 | 720p60 / 720p30 / 1080p30 | gMAD: covers additional attack tasks | 9 |
| gallery | pair_b6440adb868f | 1080p60 / 1080p30 / 1080p30 | 720p60 / 1080p120 / 1080p120 | gMAD: covers additional attack tasks | 9 |
| sibenik | pair_b70b7a5d5484 | 1080p60 / 1080p60 / 1080p60 | 720p60 / 720p60 / 720p60 | Random: both videos have fixed settings | 0 |
| gallery | pair_b7a579e6bc5d | 1080p120 / 1080p120 / 1080p120 | 720p120 / 1080p30 / 1080p30 | gMAD: covers additional attack tasks | 11 |
| bistro | pair_babe5c86de8b | 1080p120 / 1080p120 / 720p30 | 720p30 / 1080p30 / 720p30 | gMAD: covers additional attack tasks | 20 |
| makeway | pair_c00c1b272b8d | 1080p60 / 1080p60 / 1080p60 | 720p30 / 720p120 / 1080p120 | Diagnostic: fixed vs. changing settings, with similar mean scores | 0 |
| rogue | pair_c049b648d021 | 720p120 / 1080p30 / 1080p120 | 720p60 / 720p60 / 720p60 | Diagnostic: fixed vs. changing settings, with similar mean scores | 0 |
| gallery | pair_c49d2c8741c5 | 1080p30 / 1080p30 / 1080p30 | 720p60 / 720p60 / 720p60 | Random: both videos have fixed settings | 0 |
| rogue | pair_c764cca13103 | 720p60 / 720p120 / 720p120 | 720p60 / 720p30 / 1080p30 | Random: at least one video changes settings | 0 |
| gallery | pair_ca0c3409883a | 1080p120 / 1080p120 / 720p60 | 1080p60 / 1080p60 / 1080p60 | gMAD: covers additional attack tasks | 12 |
| bistro | pair_cb1a0d47a4d1 | 1080p60 / 1080p120 / 1080p120 | 1080p60 / 1080p30 / 1080p30 | gMAD: covers additional attack tasks | 7 |
| gallery | pair_cb42333b57c3 | 1080p120 / 1080p120 / 720p30 | 1080p30 / 1080p30 / 720p120 | gMAD: covers additional attack tasks | 12 |
| sibenik | pair_d149c9e6cdc5 | 1080p120 / 720p60 / 1080p120 | 720p60 / 720p60 / 1080p60 | Random: at least one video changes settings | 0 |
| rogue | pair_d18a6ffe8ba7 | 1080p120 / 720p30 / 720p30 | 1080p30 / 1080p30 / 1080p120 | gMAD: covers additional attack tasks | 6 |
| gallery | pair_d2f3ba3e43aa | 1080p120 / 1080p120 / 720p30 | 1080p30 / 1080p30 / 1080p30 | gMAD: covers additional attack tasks | 11 |
| bistro | pair_d749b48baf2c | 1080p120 / 1080p120 / 720p120 | 720p30 / 1080p30 / 720p120 | gMAD: covers additional attack tasks | 6 |
| sibenik | pair_d888a87fb19c | 1080p120 / 1080p120 / 720p60 | 1080p30 / 1080p30 / 1080p60 | gMAD: covers additional attack tasks | 9 |
| rogue | pair_de1e9c964fb0 | 1080p120 / 720p60 / 1080p30 | 1080p30 / 720p60 / 1080p120 | Diagnostic: reversed order of changes | 0 |
| gallery | pair_eb0817cbcddc | 1080p120 / 1080p120 / 1080p120 | 1080p30 / 1080p30 / 720p120 | gMAD: covers additional attack tasks | 11 |
| sibenik | pair_ed2d8e451356 | 720p120 / 1080p30 / 1080p30 | 720p30 / 720p30 / 1080p120 | gMAD: covers additional attack tasks | 14 |
| sibenik | pair_f8e42d05324a | 1080p120 / 1080p120 / 1080p120 | 720p120 / 1080p30 / 720p120 | gMAD: covers additional attack tasks | 16 |
| gallery | pair_f92009fee8b4 | 720p60 / 720p60 / 1080p60 | 720p60 / 720p60 / 720p120 | Random: at least one video changes settings | 0 |
| sibenik | pair_fe6eae1b9b83 | 720p30 / 1080p120 / 1080p120 | 720p30 / 1080p60 / 720p120 | gMAD: covers additional attack tasks | 10 |
| rogue | pair_ffee25e8953e | 720p60 / 1080p120 / 1080p120 | 720p60 / 1080p30 / 1080p30 | gMAD: covers additional attack tasks | 8 |
What is the difference between the two pair lists?
All distinct gMAD pairs: Every pair selected by a successful attack task, with duplicate video combinations removed; this run has 1,225 pairs. Pilot pair list: The 84 pairs for a small-scale study: 60 from the full gMAD list, plus 12 random and 12 diagnostic pairs.
This is a first screening based on concatenated chunk-level score sequences. Before using the selected items, assemble the chunks into actual 4.5-second videos and verify CVVDP scores at the transitions using the full videos. Also check that chunk content is continuous in the rogue scene.