Files
SDR-Rover/data/processed/lab029b/lab029b_report.txt
2026-07-27 16:28:54 +03:00

75 lines
8.1 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Lab029B. Временная модель серийных потерь видеопакетов
Исходные данные и транспорт
- Видео: data\raw\lab026_rover_source.mp4
- Источник: 1280x720, 30.000000 fps, 623 кадров, 20.766667 с.
- Использованы все 63 реальные пары: BASE 240x135 grayscale JPEG Q23, ROI 320x180 grayscale JPEG Q33, 3 составных кадра/с.
- Формат Lab028 не изменён: заголовок 32 байта, packet CRC32, object CRC32, отдельные BASE/ROI, атомарный CompositeReassembler.
- Порядок передачи внутри кадра: сначала все BASE-фрагменты, затем все ROI-фрагменты. Поэтому длительная помеха может затрагивать объекты несимметрично.
Временная модель передачи
- Контрольная скорость: 300 кбит/с. Это параметр лабораторной, а не выбранная скорость радиоканала.
- Длительность пакета = фактическая длина (32-byte header + фактический payload) × 8 / 300000.
- Кадр доступен в момент frame_id / 3. Пакеты BASE и ROI передаются подряд; искусственных межпакетных интервалов нет. Остаток периода до следующего кадра является естественным idle.
- Payload 256: packets=1660, timeline=20.881627 с, packet duration min/max=0.986667/7.680000 мс.
- Payload 512: packets=862, timeline=20.869680 с, packet duration min/max=1.093333/14.506667 мс.
- Payload 1024: packets=478, timeline=20.863707 с, packet duration min/max=1.093333/28.160000 мс.
Временная модель канала
- Good пропускает пакеты, Bad теряет пакеты. Длительности состояний независимы и экспоненциально распределены.
- Целевая стационарная доля Bad: 2.0%.
- mean Good = mean Bad × (1-0.02)/0.02 = 49 × mean Bad.
- Консервативное допущение: пакет считается потерянным, если хотя бы часть его передачи пересекается с Bad.
- Monte Carlo: 200 повторов на условие; master seed=290290; seeds 290290...290293.
- Один seed для одинаковой длительности повторно используется для payload 256/512/1024.
Параметры состояний
mean Bad | mean Good | target Bad
--------:|----------:|----------:
10 мс | 490 мс | 2.0%
50 мс | 2450 мс | 2.0%
200 мс | 9800 мс | 2.0%
1000 мс | 49000 мс | 2.0%
Функциональные проверки
- PASS zero_bad_state_100_percent: all 63 composite frames restored for all payloads
- PASS fixed_seed_reproducibility: identical seed produced identical aggregate fields
- PASS adjacent_frame_isolation: two interleaved neighboring frames remained independent
- PASS atomic_incomplete_frame: missing ROI fragment prevented atomic publication
- PASS stationary_bad_fraction: all observed Bad fractions are within 0.323 percentage points of 2%
- PASS longer_bad_longer_outage: mean held-image interval increased from 0.819350 to 1.295846 s
- PASS actual_packet_transmission_time: duration equals actual wire bits / 300000 for full and short final packets
Полная сравнительная таблица
Bad ms | payload | Bad actual | tx/rx/lost packets | packet delivery | BASE | ROI | composite | BASE-only | ROI-only | incomplete | lost burst mean/p95/max | incomplete run mean/p95/max | no image mean/p95/max s | recovery mean/p95/max s | video kbit/s
------:|--------:|-----------:|-------------------:|----------------:|-----:|----:|----------:|----------:|---------:|-----------:|-----------------------:|----------------------------:|-------------------------:|------------------------:|------------:
10 | 256 | 2.016% | 332000/320339/11661 | 96.488% | 84.611% | 75.659% | 65.357% | 2426 | 1298 | 4365 | 2.27/5.0/13 | 1.52/3.0/10 | 0.831/1.350/3.650 | 0.547/1.180/3.364 | 102.487
10 | 512 | 2.008% | 172400/164214/8186 | 95.252% | 85.183% | 77.008% | 66.968% | 2295 | 1265 | 4162 | 1.72/3.0/8 | 1.48/3.0/10 | 0.815/1.343/3.651 | 0.521/1.131/3.353 | 105.043
10 | 1024 | 2.022% | 95600/89121/6479 | 93.223% | 85.595% | 76.984% | 67.397% | 2293 | 1208 | 4108 | 1.43/3.0/6 | 1.47/3.0/10 | 0.812/1.339/3.651 | 0.513/1.115/3.348 | 105.783
50 | 256 | 2.041% | 332000/324191/7809 | 97.648% | 95.333% | 92.960% | 90.405% | 621 | 322 | 1209 | 6.43/17.3/37 | 1.10/2.0/3 | 0.694/1.001/1.348 | 0.441/0.727/1.207 | 141.796
50 | 512 | 2.083% | 172400/167870/4530 | 97.372% | 95.492% | 93.198% | 90.889% | 580 | 291 | 1148 | 3.94/10.0/19 | 1.10/2.0/3 | 0.693/1.000/1.348 | 0.428/0.714/1.196 | 142.643
50 | 1024 | 2.046% | 95600/92757/2843 | 97.026% | 95.619% | 93.421% | 91.095% | 570 | 293 | 1122 | 2.55/6.0/12 | 1.10/2.0/3 | 0.691/1.000/1.348 | 0.422/0.702/1.191 | 143.006
200 | 256 | 1.854% | 332000/325460/6540 | 98.030% | 97.540% | 96.762% | 96.230% | 165 | 67 | 475 | 17.82/49.0/80 | 1.32/3.0/4 | 0.765/1.312/1.657 | 0.547/0.970/1.468 | 150.968
200 | 512 | 1.854% | 172400/168900/3500 | 97.970% | 97.579% | 96.857% | 96.333% | 157 | 66 | 462 | 9.72/26.0/41 | 1.31/3.0/4 | 0.761/1.158/1.657 | 0.536/0.959/1.456 | 151.215
200 | 1024 | 1.854% | 95600/93582/2018 | 97.889% | 97.627% | 96.905% | 96.381% | 157 | 66 | 456 | 5.70/15.0/24 | 1.31/3.0/4 | 0.762/1.228/1.658 | 0.531/0.954/1.451 | 151.334
1000 | 256 | 1.678% | 332000/326429/5571 | 98.322% | 98.143% | 98.008% | 97.802% | 43 | 26 | 277 | 59.27/172.4/403 | 2.98/7.4/16 | 1.302/2.809/5.665 | 1.087/2.487/5.585 | 153.470
1000 | 512 | 1.678% | 172400/169489/2911 | 98.311% | 98.143% | 98.048% | 97.841% | 38 | 26 | 272 | 31.30/91.6/210 | 2.96/7.5/16 | 1.295/2.826/5.665 | 1.077/2.476/5.576 | 153.618
1000 | 1024 | 1.677% | 95600/93965/1635 | 98.290% | 98.143% | 98.079% | 97.873% | 34 | 26 | 268 | 17.77/50.9/116 | 2.95/7.5/16 | 1.291/2.843/5.665 | 1.071/2.471/5.571 | 153.712
Допущения и ограничения
- Не моделируются FEC, интерливинг, ARQ, повторные передачи, искусственные межпакетные интервалы, преамбула физического уровня, управление и телеметрия.
- Bad-интервалы не зависят от границ пакетов; любое частичное пересечение уничтожает пакет целиком.
- no-new-image duration для серии невосстановленных кадров измеряется от публикации предыдущего полного кадра до публикации следующего; при краевых сериях используются начало и конец временной шкалы.
- interference-to-next-frame измеряется от начала каждого Bad-интервала до первого следующего опубликованного составного кадра или до конца шкалы.
- Эффективный видеопоток учитывает JPEG bytes только атомарно восстановленных BASE+ROI и полную длительность расписания.
- Результаты зависят от порядка BASE затем ROI и от контрольной скорости 300 кбит/с.
- Окончательный размер payload автоматически не выбирается.
Артефакты
- CSV: data\processed\lab029b\lab029b_results.csv
- Composite success: data\processed\lab029b\lab029b_composite_success.png
- No-new-image duration: data\processed\lab029b\lab029b_no_image_duration.png
- Missing frame runs: data\processed\lab029b\lab029b_missing_frame_runs.png
- Payload comparison: data\processed\lab029b\lab029b_payload_comparison.png
- JPEG, пакеты и бинарные дампы не сохранялись.