- resolution
- 5120×1024 · 130 frames · 10-bit
- bitrate
- 10.40 Mbit/s
- cases
- 500
ERR · error resilience
One error per case, applied to a clean stream after decryption
For every codec: clean streams built for error testing (5120×1024 with 2×2 tiles - AVC: 4 slices -, an 854×480 stream of 1100 frames, GOP 30, plus codec-specific extras) and a list of single-error cases. Every case says where the error goes (byte, bit 0 = MSB), what it hits - region header (independently coded headers: OBU / NAL / frame / slice headers, parameter sets, tile sizes) or region payload (entropy-coded tile / slice data) -, the frame, the tile or slice and, for header bits, the syntax field and its value. Kinds: bit flip (70 %), burst of 8-64 bytes inside its region (10 %), truncation (10 %), dropped unit / temporal unit (10 %). Start codes, filler NAL units and the IVF container are never hit.
Each case carries the reference decoder's outcome (DECODED with mismatching frames and the recovery point, ERROR, ABORT, CRASH, TIMEOUT / confirmed hang) and, for payload errors, the first damaged symbol found by comparing the symbol traces of the clean and the damaged decode. The .map.json next to each stream labels every bit of the file.
Applying a case · err_apply.py
Give a clean stream and a case id from the list: the script writes the damaged stream as <stream name>__<case id>.<ext> and appends its md5 to err_apply_manifest.csv. Python 3, standard library only. Bursts use Python's random.Random(seed), so use this script to reproduce their bytes. The case list is found by the id prefix next to the script or in ./errors/, or given with --cases.
python3 err_apply.py ERR_Long_854x480_60p_10b_P2_vbr2.5M_L3.1_buf10M_2.52Mbps.ivf VP9-ERR_Long-hbf-00012
python3 err_apply.py STREAM ID1 ID2 ... -o damaged/ # several cases
python3 err_apply.py STREAM --all --kind bitflip,burst -o damaged/ # every case of the stream (filters: --kind, --region)
python3 err_apply.py STREAM --list # print the cases of the streamAV1 · 2000 cases
| List | av1_err_v1.csv · .json · description (.md) |
|---|---|
| Regions / kinds | header 1000 · payload 1000 — bitflip 1400 · burst 200 · truncate 200 · drop 200 |
| Reference (aomdec) | ERROR 1450 · DECODED 550 |
| Damaged symbol | 800 of 800 payload bit flips / bursts — AV1 MSAC trace of aomdec |
- resolution
- 5120×1024 · 130 frames · 10-bit
- bitrate
- 9.32 Mbit/s
- cases
- 500
- resolution
- 854×480 · 1100 frames · 10-bit
- bitrate
- 2.58 Mbit/s
- cases
- 500
- resolution
- 854×480 · 1100 frames · 10-bit
- bitrate
- 6.31 Mbit/s
- cases
- 500
VP9 · 2000 cases
| List | vp9_err_v1.csv · .json · description (.md) |
|---|---|
| Regions / kinds | header 1000 · payload 1000 — bitflip 1500 · burst 200 · truncate 200 · drop 100 |
| Reference (vpxdec) | ERROR 1439 · DECODED 561 |
| Damaged symbol | 682 of 800 payload bit flips / bursts — vpxdec tile trace |
- resolution
- 5120×1024 · 130 frames · 10-bit
- bitrate
- 10.35 Mbit/s
- cases
- 500
- resolution
- 5120×1024 · 130 frames · 10-bit
- bitrate
- 10.12 Mbit/s
- cases
- 500
- resolution
- 854×480 · 1100 frames · 10-bit
- bitrate
- 2.52 Mbit/s
- cases
- 500
- resolution
- 854×480 · 1100 frames · 10-bit
- size changes
- every 45 frames: 854x480 → 640x360 → 426x240 → 768x432 → …; 12 of 24 on inter frames (scaled references)
- bitrate
- 2.91 Mbit/s
- cases
- 500
H.264 / AVC · 2000 cases
| List | avc_err_v1.csv · .json · description (.md) |
|---|---|
| Regions / kinds | header 1000 · payload 1000 — bitflip 1400 · burst 200 · truncate 200 · drop 200 |
| Reference (JM ldecod) | DECODED 1008 · ERROR 862 · CRASH 64 · ABORT 51 · TIMEOUT 15 · 15 confirmed hangs (600 s) |
| Damaged symbol | 772 of 800 payload bit flips / bursts — CABAC bin trace of JM (syntax element from ctxIdx) |
- resolution
- 5120×1024 · 130 frames · 10-bit
- bitrate
- 10.33 Mbit/s
- cases
- 500
- resolution
- 5120×1024 · 130 frames · 10-bit
- bitrate
- 10.00 Mbit/s
- cases
- 500
- resolution
- 854×480 · 1100 frames · 10-bit
- bitrate
- 2.53 Mbit/s
- cases
- 500
- resolution
- 854×480 · 1100 frames · 10-bit
- bitrate
- 2.53 Mbit/s
- cases
- 500
H.265 / HEVC · 2500 cases
| List | hvc_err_v1.csv · .json · description (.md) |
|---|---|
| Regions / kinds | header 1250 · payload 1250 — bitflip 1750 · burst 250 · truncate 250 · drop 250 |
| Reference (HM TAppDecoder) | ABORT 2133 · DECODED 312 · CRASH 55 |
| Damaged symbol | 992 of 1000 payload bit flips / bursts — HM symbol trace (SIG / INTRA_MODE / MPM_CAND / MDCS) |
- resolution
- 5120×1024 · 130 frames · 10-bit
- bitrate
- 10.00 Mbit/s
- cases
- 500
- resolution
- 5120×1024 · 130 frames · 10-bit
- bitrate
- 10.03 Mbit/s
- cases
- 500
- resolution
- 5120×1024 · 130 frames · 10-bit
- bitrate
- 13.41 Mbit/s
- cases
- 500
- resolution
- 854×480 · 1100 frames · 10-bit
- bitrate
- 2.52 Mbit/s
- cases
- 500
- resolution
- 854×480 · 1100 frames · 10-bit
- bitrate
- 2.52 Mbit/s
- cases
- 500