Files
SDR-Rover/data/processed/lab035/lab035_report.txt
2026-08-03 15:42:16 +03:00

100 lines
8.5 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.
Lab035. Упреждающий допуск видеокадров и обслуживание видео целыми кадрами
1. Исходное состояние
- Commit Lab034: b63e36abdb7031d642de8b8138b43cc29e94b759.
- Перед Lab035 рабочее дерево было чистым; main опережала origin/main на два commit.
2. Правило обслуживания
- После первого видеопакета кадр становится активным и не удаляется.
- При повторном выборе видео передаётся следующий пакет активного кадра; команды и телеметрия могут передаваться между пакетами.
- Новый видеокадр начинается только после полного завершения активного; видеопакеты разных кадров не чередуются; отдельный пакет не прерывается.
- Только неактивные кадры могут быть удалены до передачи первого пакета.
3. Теоретическая пропускная способность
speed | nonvideo kbps | remaining video kbps | remaining/aligned | minimum skip | maximum fps
300 | 17.973 | 282.027 | 1.143443 | 0.000000 | 3.000
260 | 17.973 | 242.027 | 0.981268 | 0.018732 | 2.944
230 | 17.973 | 212.027 | 0.859636 | 0.140364 | 2.579
4. Восемнадцать сочетаний
speed | policy | published/drop/partial | fps | age P95 ms | no-update max ms | queue max/waiting frames | waste bytes | prediction MAE/P95/max ms | control P95/max ms | emergency ms
300 | Без удаления | 63/0/0 | 2.986 | 590.000 | 406.506 | 21/1 | 0 | 0.000000/0.000000/0.000000 | 17.466/17.787 | 1.707
300 | Реактивная 1500 мс | 63/0/0 | 2.986 | 590.000 | 406.506 | 21/1 | 0 | 0.000000/0.000000/0.000000 | 17.466/17.787 | 1.707
300 | Самый свежий | 63/0/0 | 2.986 | 590.000 | 406.506 | 21/1 | 0 | 0.000000/0.000000/0.000000 | 17.466/17.787 | 1.707
300 | Два ожидающих | 63/0/0 | 2.986 | 590.000 | 406.506 | 21/1 | 0 | 0.000000/0.000000/0.000000 | 17.466/17.787 | 1.707
300 | Прогноз 1000 мс | 63/0/0 | 2.986 | 590.000 | 406.506 | 21/1 | 0 | 0.000000/0.000000/0.000000 | 17.466/17.787 | 1.707
300 | Прогноз 500 мс | 63/0/0 | 2.986 | 590.000 | 406.506 | 21/1 | 0 | 0.000000/0.000000/0.000000 | 17.466/17.787 | 1.707
260 | Без удаления | 63/0/0 | 2.937 | 773.833 | 417.764 | 37/1 | 0 | 0.000000/0.000000/0.000000 | 18.908/20.492 | 1.969
260 | Реактивная 1500 мс | 63/0/0 | 2.937 | 773.833 | 417.764 | 37/1 | 0 | 0.000000/0.000000/0.000000 | 18.908/20.492 | 1.969
260 | Самый свежий | 63/0/0 | 2.937 | 773.833 | 417.764 | 37/1 | 0 | 0.000000/0.000000/0.000000 | 18.908/20.492 | 1.969
260 | Два ожидающих | 63/0/0 | 2.937 | 773.833 | 417.764 | 37/1 | 0 | 0.000000/0.000000/0.000000 | 18.908/20.492 | 1.969
260 | Прогноз 1000 мс | 63/0/0 | 2.937 | 773.833 | 417.764 | 37/1 | 0 | 0.000000/0.000000/0.000000 | 18.908/20.492 | 1.969
260 | Прогноз 500 мс | 62/1/0 | 2.889 | 703.333 | 524.266 | 29/1 | 0 | 0.000000/0.000000/0.000000 | 18.908/20.533 | 1.969
230 | Без удаления | 63/0/0 | 2.600 | 2913.333 | 424.000 | 160/8 | 0 | 0.000000/0.000000/0.000000 | 22.500/24.557 | 22.330
230 | Реактивная 1500 мс | 27/0/36 | 1.300 | 11064.833 | 10626.980 | 87/4 | 321929 | 0.000000/0.000000/0.000000 | 22.461/24.557 | 22.330
230 | Самый свежий | 56/7/0 | 2.600 | 960.000 | 426.226 | 37/1 | 0 | 0.000000/0.000000/0.000000 | 22.043/23.339 | 6.226
230 | Два ожидающих | 57/6/0 | 2.600 | 1286.667 | 421.183 | 56/2 | 0 | 0.000000/0.000000/0.000000 | 22.539/23.339 | 6.991
230 | Прогноз 1000 мс | 56/7/0 | 2.600 | 1226.667 | 426.226 | 53/2 | 0 | 0.000000/0.000000/0.000000 | 22.317/23.357 | 2.365
230 | Прогноз 500 мс | 47/16/0 | 2.215 | 966.667 | 622.817 | 28/1 | 0 | 0.000000/0.000000/0.000000 | 22.212/23.304 | 5.739
5. Интерпретация
- Реактивная Lab034 начинает кадр без гарантии завершения, затем удаляет остаток: уже переданные байты становятся бесполезными, а обновление не публикуется.
- Удаление до первого пакета исключает бесполезную передачу; обслуживание целыми кадрами гарантирует, что начатый кадр будет опубликован.
- Политика самого свежего уменьшает задержку ожидающих данных, но удаляет больше промежуточных кадров; очередь из двух кадров сохраняет больше последовательных обновлений ценой возраста.
- Прогноз полного завершения учитывает весь размер кадра и будущую периодическую высокоприоритетную нагрузку, поэтому полезнее проверки только текущего возраста.
- В модели точно известны команды 20 Гц, телеметрия 10 Гц и аварийная команда 10,0 с; неизвестные будущие дискретные события не моделируются и в реальной системе потребовали бы запаса.
- При устойчивой перегрузке невозможно одновременно сохранить все кадры, исходное JPEG-качество и малую задержку; требуется уменьшить частоту, качество или заранее пропускать кадры.
- Частота обновления, возраст изображения и длительность отсутствия нового изображения оцениваются одновременно: оптимизация одного показателя может ухудшить остальные.
6. Допущения
- Ошибки и помехи отсутствуют; один общий абстрактный ресурс, форматы Lab028-Lab034 неизменны, активный пакет не прерывается.
- Прогноз не изменяет настоящую очередь; для допущенных кадров сохраняются только агрегированные ошибки, без подробного журнала.
- Политика автоматически не выбирается.
7. Функциональные проверки
- PASS 01_video_frames_do_not_interleave: PASS
- PASS 02_started_frame_never_dropped: PASS
- PASS 03_high_priority_between_frame_packets: PASS
- PASS 04_latest_drops_only_unstarted: PASS
- PASS 05_two_waiting_limit: PASS
- PASS 06_prediction_is_pure: PASS
- PASS 07_prediction_uses_actual_sizes: PASS
- PASS 08_prestart_drop_has_no_waste: PASS
- PASS 09_partial_only_reactive: PASS
- PASS 10_incomplete_not_published: PASS
- PASS 11_crc_layers_pass: PASS
- PASS 12_emergency_never_deleted: PASS
- PASS 13_priority_above_video: PASS
- PASS 14_300kbps_no_unnecessary_loss: PASS
- PASS 15_230kbps_bounded_queue: PASS
- PASS 16_frame_accounting: PASS
- PASS 17_byte_accounting: PASS
- PASS 18_reproducible: PASS
- PASS 19_predict_1000_never_known_late: PASS
- PASS 20_command_delay_bound: PASS
8. Созданные файлы
- protocol/video_frame_scheduler.py
- tests/lab035_video_frame_admission.py
- data/processed/lab035/lab035_summary.csv
- data/processed/lab035/lab035_video_metrics.csv
- data/processed/lab035/lab035_control_metrics.csv
- data/processed/lab035/lab035_prediction_metrics.csv
- data/processed/lab035/lab035_report.txt
- data/processed/lab035/lab035_update_rate.png
- data/processed/lab035/lab035_image_age.png
- data/processed/lab035/lab035_publication_delay.png
- data/processed/lab035/lab035_frame_outcomes.png
- data/processed/lab035/lab035_queue_size.png
- data/processed/lab035/lab035_prediction_accuracy.png
- data/processed/lab035/lab035_control_delay.png
- data/processed/lab035/lab035_policy_comparison.png
9. Итоговый Git status
- Lab035 не добавлена в индекс и не закоммичена.
## main...origin/main [ahead 2]
?? data/processed/lab035/
?? protocol/video_frame_scheduler.py
?? tests/lab035_video_frame_admission.py