Lab029: simulate packet loss and channel errors
This commit is contained in:
95
data/processed/lab029/lab029_report.txt
Normal file
95
data/processed/lab029/lab029_report.txt
Normal file
@@ -0,0 +1,95 @@
|
||||
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, пакеты и бинарные дампы на диск не сохранялись.
|
||||
Reference in New Issue
Block a user