Files
SDR-Rover/data/processed/lab029/lab029_report.txt
2026-07-27 15:29:39 +03:00

96 lines
9.1 KiB
Plaintext
Raw 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.
Lab029. Прохождение видеопакетов через канал с потерями и ошибками
Исходные данные и неизменный транспорт Lab028
- Видео: data\raw\lab026_rover_source.mp4
- Источник: 1280x720, 30.000000 fps, 623 кадров, 20.766667 с.
- Реальных синхронных JPEG-пар: 63; BASE 240x135 grayscale Q23, ROI 320x180 grayscale Q33, 3 composite fps.
- Использован protocol/video_packet.py без изменения: 32-byte header, packet CRC32, object CRC32, отдельные BASE/ROI и атомарная выдача CompositeReassembler.
- Payload: 256, 512, 1024 байт.
- Пакетов в одном проходе: 256 B=1660, 512 B=862, 1024 B=478.
Методика Monte Carlo
- Повторов на каждую строку: 200.
- Master seed: 29029; independent seeds 29029...29034; BER seeds 30029...30034; burst seeds 31029...31031.
- Для одинакового параметра один seed повторно используется для payload 256/512/1024, чтобы сравнение было коррелированным и воспроизводимым.
- packet_delivery_rate = (received - CRC rejected) / transmitted.
- effective delivered JPEG bitrate учитывает BASE+ROI bytes только атомарно выданных составных кадров и полное симулированное время.
- Потерянный фрагмент — физически потерянный пакет или пакет, отклонённый проверкой транспорта.
- FEC, ARQ, повторные передачи и интерливинг не применяются.
Модели канала
- Independent loss: каждый пакет теряется независимо с заданной вероятностью.
- BER: число независимых битовых ошибок выбирается binomial по полной длине пакета в битах, включая 32-byte header; выбранные биты физически инвертируются перед reassembler.
- Gilbert-Elliott: Good доставляет все пакеты, Bad теряет все. Начальное состояние выбирается из стационарного распределения.
- В Lab029 длительность состояния Bad и серии потерь задаётся количеством пакетов, а не физическим временем.
- Серия из одинакового количества пакетов имеет разную физическую длительность для payload 256, 512 и 1024 байта, поскольку различается время передачи пакета.
- Доля успешно восстановленных кадров не показывает длительность непрерывного отсутствия нового изображения.
- Поэтому burst-loss результаты Lab029 не являются окончательным сравнением размеров payload; для временного сравнения предназначена Lab029B.
- short: короткие серии потерь; P(G->B)=0.010204082, P(B->G)=0.500000000, stationary loss=2.000%, expected mean burst=2.0.
- medium: средние серии потерь; P(G->B)=0.004081633, P(B->G)=0.200000000, stationary loss=2.000%, expected mean burst=5.0.
- long: длинные серии потерь; P(G->B)=0.001020408, P(B->G)=0.050000000, stationary loss=2.000%, expected mean burst=20.0.
Функциональные проверки
- PASS zero_impairment_100_percent: all payloads delivered 100% packets and composite frames
- PASS packet_crc_rejects_bit_error: payload bit flip was rejected by packet CRC32
- PASS adjacent_frame_isolation: two interleaved neighboring frames remained independent
- PASS atomic_incomplete_frame: missing ROI fragment prevented atomic publication
- PASS fixed_seed_reproducibility: identical seed produced byte-for-byte equal result fields
1. Independent packet loss — atomic composite success
parameter | payload 256 | payload 512 | payload 1024
---------:|------------:|------------:|-------------:
0.0% | 100.000% | 100.000% | 100.000%
0.1% | 97.397% | 98.651% | 99.214%
0.5% | 87.294% | 93.357% | 96.254%
1.0% | 76.405% | 87.008% | 92.206%
2.0% | 58.937% | 76.516% | 86.286%
5.0% | 25.698% | 48.738% | 67.198%
2. BER — atomic composite success
parameter | payload 256 | payload 512 | payload 1024
---------:|------------:|------------:|-------------:
0 | 100.000% | 100.000% | 100.000%
1e-07 | 99.413% | 99.524% | 99.357%
3e-07 | 98.222% | 98.476% | 98.492%
1e-06 | 94.111% | 94.714% | 94.754%
3e-06 | 83.905% | 84.373% | 85.397%
1e-05 | 55.357% | 56.722% | 57.770%
3. Burst-loss
scenario | payload | expected loss | observed loss | mean/max burst | composite success | burst distribution
--------:|--------:|--------------:|--------------:|---------------:|------------------:|:------------------
short | 256 | 2.000% | 1.932% | 1.972/12 | 76.111% | 1:1628;2:822;3-4:635;5-8:155;9-16:12;17-32:0;33+:0
short | 512 | 2.000% | 1.853% | 1.903/11 | 86.484% | 1:861;2:429;3-4:318;5-8:67;9-16:3;17-32:0;33+:0
short | 1024 | 2.000% | 1.891% | 1.899/8 | 91.714% | 1:475;2:263;3-4:171;5-8:43;9-16:0;17-32:0;33+:0
medium | 256 | 2.000% | 2.007% | 4.991/30 | 88.333% | 1:258;2:226;3-4:324;5-8:306;9-16:180;17-32:41;33+:0
medium | 512 | 2.000% | 1.909% | 4.890/27 | 93.317% | 1:124;2:121;3-4:178;5-8:142;9-16:87;17-32:21;33+:0
medium | 1024 | 2.000% | 2.016% | 5.084/27 | 95.357% | 1:77;2:57;3-4:100;5-8:77;9-16:53;17-32:15;33+:0
long | 256 | 2.000% | 1.975% | 19.061/116 | 95.405% | 1:22;2:10;3-4:22;5-8:58;9-16:84;17-32:83;33+:65
long | 512 | 2.000% | 1.983% | 19.311/124 | 96.762% | 1:14;2:4;3-4:13;5-8:32;9-16:39;17-32:40;33+:35
long | 1024 | 2.000% | 2.192% | 20.350/124 | 97.198% | 1:12;2:1;3-4:8;5-8:15;9-16:24;17-32:21;33+:22
4. Сравнение payload 256/512/1024
payload | loss 1% success | BER 1e-6 success | medium burst success | Lab028 wire kbit/s
-------:|----------------:|-----------------:|---------------------:|--------------------:
256 | 76.405% | 94.111% | 88.333% | 178.233
512 | 87.008% | 94.714% | 93.317% | 168.396
1024 | 92.206% | 94.754% | 95.357% | 163.662
Интерпретация
- При фиксированной вероятности потери пакета крупный payload уменьшает число обязательных фрагментов. Поскольку потеря любого фрагмента делает объект неполным, меньшее число пакетов обычно повышает шанс полного кадра.
- При фиксированном BER длинный отдельный пакет чаще повреждается: P(error)=1-(1-BER)^(packet_bits). Одновременно крупный payload уменьшает число 32-byte headers и общую длину wire-потока, поэтому итоговый composite success определяется обоими эффектами.
- Атомарная сборка требует одновременной готовности BASE и ROI. Даже полностью собранный BASE не даёт полезного составного кадра без ROI, поэтому composite success ниже успеха каждого объекта отдельно.
- Burst-loss особенно опасен без интерливинга: соседние фрагменты и иногда соседние кадры теряются одной серией, а CRC только обнаруживает ошибку и не восстанавливает данные.
- Payload 256 B даёт наименьшую длину отдельного пакета и наименьшую вероятность BER-повреждения одного пакета, но требует больше всего фрагментов и headers.
- Payload 512 B остаётся умеренным рабочим кандидатом между packet count и длиной отдельного пакета.
- Payload 1024 B даёт минимум пакетов и header overhead в этих моделях, но каждый пакет длиннее и при его потере пропадает более крупный фрагмент JPEG.
- Окончательный packet payload автоматически не выбирается; для решения нужны Lab029 и последующие данные реального радиоканала, FEC/ARQ и задержек.
Артефакты
- CSV: data\processed\lab029\lab029_results.csv
- Independent loss plot: data\processed\lab029\lab029_independent_loss_success.png
- BER plot: data\processed\lab029\lab029_ber_success.png
- Burst plot: data\processed\lab029\lab029_burst_loss_results.png
- Payload comparison: data\processed\lab029\lab029_payload_comparison.png
- JPEG, пакеты и бинарные дампы на диск не сохранялись.