96 lines
9.1 KiB
Plaintext
96 lines
9.1 KiB
Plaintext
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, пакеты и бинарные дампы на диск не сохранялись.
|