Lab029B: simulate time-based burst losses

This commit is contained in:
LittleSam129
2026-07-27 16:28:54 +03:00
parent a2dd58a44b
commit f8575f4de3
8 changed files with 1486 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

View File

@@ -0,0 +1,74 @@
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, пакеты и бинарные дампы не сохранялись.

View File

@@ -0,0 +1,13 @@
payload_size,mean_bad_duration_ms,mean_good_duration_ms,target_bad_time_fraction,actual_bad_time_fraction,control_stream_bitrate_kbps,schedule_duration_seconds,monte_carlo_repetitions,seed,transmitted_packets,received_packets,lost_packets,packet_delivery_rate,base_objects_completed,base_object_success_rate,roi_objects_completed,roi_object_success_rate,atomic_composite_frames_completed,composite_success_rate,base_only_frames,roi_only_frames,incomplete_frames,mean_lost_packet_burst,p95_lost_packet_burst,max_lost_packet_burst,mean_consecutive_incomplete_frames,p95_consecutive_incomplete_frames,max_consecutive_incomplete_frames,mean_no_new_image_duration_seconds,p95_no_new_image_duration_seconds,max_no_new_image_duration_seconds,mean_interference_to_next_frame_seconds,p95_interference_to_next_frame_seconds,max_interference_to_next_frame_seconds,effective_delivered_video_bitrate_kbps,bad_interval_count,actual_mean_bad_duration_ms,actual_p95_bad_duration_ms,actual_max_bad_duration_ms
256,10,490,0.02,0.0201609958077,300,20.8816266667,200,290290,332000,320339,11661,0.964876506024,10661,0.846111111111,9533,0.756587301587,8235,0.653571428571,2426,1298,4365,2.27442949093,5,13,1.52409217877,3,10,0.831002299814,1.35024,3.64970666667,0.546677484673,1.18029690393,3.36407888773,102.486509991,8442,9.97380686292,29.8125428395,83.5331876125
512,10,490,0.02,0.0200817045481,300,20.86968,200,290290,172400,164214,8186,0.952517401392,10733,0.851825396825,9703,0.770079365079,8438,0.669682539683,2295,1265,4162,1.72409435552,3,8,1.47903340441,3,10,0.814651021085,1.34314,3.65056,0.521191488299,1.13097049803,3.3529855544,105.043418011,8411,9.96549156518,29.9160688622,83.5331876125
1024,10,490,0.02,0.0202168068758,300,20.8637066667,200,290290,95600,89121,6479,0.932228033473,10785,0.855952380952,9700,0.769841269841,8492,0.673968253968,2293,1208,4108,1.43467670505,3,6,1.46976744186,3,10,0.812397042338,1.33936,3.65141333333,0.512839823089,1.11539721678,3.3478655544,105.78281392,8446,9.98810154849,29.7582896487,83.5331876125
256,50,2450,0.02,0.0204084786408,300,20.8816266667,200,290291,332000,324191,7809,0.976478915663,12012,0.953333333333,11713,0.929603174603,11391,0.904047619048,621,322,1209,6.42716049383,17.3,37,1.10209662716,2,3,0.693585900942,1.00062933333,1.34818666667,0.440632357759,0.727111920855,1.20734749202,141.795746436,1677,50.8243568053,152.864106144,405.431274995
512,50,2450,0.02,0.0208318699816,300,20.86968,200,290291,172400,167870,4530,0.973723897912,12032,0.954920634921,11743,0.931984126984,11452,0.908888888889,580,291,1148,3.93913043478,10,19,1.1027857829,2,3,0.693375395453,1.00016,1.34818666667,0.427559832342,0.714012825361,1.19625415869,142.643151213,1691,51.4198060694,156.002187328,405.431274995
1024,50,2450,0.02,0.0204619230445,300,20.8637066667,200,290291,95600,92757,2843,0.970261506276,12048,0.95619047619,11771,0.934206349206,11478,0.910952380952,570,293,1122,2.54749103943,6,12,1.095703125,2,3,0.691450052083,1.00014,1.34818666667,0.422249750197,0.702414015204,1.19113415869,143.006280124,1677,50.913722151,152.938028086,405.431274995
256,200,9800,0.02,0.0185410363364,300,20.8816266667,200,290292,332000,325460,6540,0.980301204819,12290,0.975396825397,12192,0.967619047619,12125,0.962301587302,165,67,475,17.8201634877,49,80,1.32311977716,3,4,0.765005088208,1.312048,1.65677333333,0.546872959401,0.96963489665,1.46756878424,150.967631513,414,187.037197483,563.305764922,989.194024493
512,200,9800,0.02,0.0185430633718,300,20.86968,200,290292,172400,168900,3500,0.97969837587,12295,0.975793650794,12204,0.968571428571,12138,0.963333333333,157,66,462,9.72222222222,26,41,1.3125,3,4,0.761154924242,1.15764533333,1.65677333333,0.536053764553,0.95939489665,1.45647545091,151.21462907,414,186.950627434,563.305764922,989.194024493
1024,200,9800,0.02,0.01854407776,300,20.8637066667,200,290292,95600,93582,2018,0.978891213389,12301,0.97626984127,12210,0.969047619048,12144,0.96380952381,157,66,456,5.70056497175,15,24,1.31412103746,3,4,0.761923535062,1.227696,1.65762666667,0.530838949739,0.95427489665,1.45135545091,151.334042912,414,186.90734241,563.305764922,989.194024493
256,1000,49000,0.02,0.0167841318375,300,20.8816266667,200,290293,332000,326429,5571,0.983219879518,12366,0.981428571429,12349,0.980079365079,12323,0.978015873016,43,26,277,59.2659574468,172.45,403,2.97849462366,7.4,16,1.30231827957,2.80936533333,5.66493333333,1.08734051838,2.48701382037,5.58511553493,153.469720111,97,722.639123618,2207.25170213,5246.24764036
512,1000,49000,0.02,0.0167765665288,300,20.86968,200,290293,172400,169489,2911,0.983114849188,12366,0.981428571429,12354,0.980476190476,12328,0.978412698413,38,26,272,31.3010752688,91.6,210,2.95652173913,7.45,16,1.29471797101,2.82593466667,5.66493333333,1.07655508883,2.47643248703,5.57572886827,153.618205933,97,721.900154546,2207.25170213,5246.24764036
1024,1000,49000,0.02,0.0167727806255,300,20.8637066667,200,290293,95600,93965,1635,0.98289748954,12366,0.981428571429,12358,0.980793650794,12332,0.97873015873,34,26,268,17.7717391304,50.85,116,2.94505494505,7.5,16,1.2905010989,2.84318666667,5.66493333333,1.07132952182,2.47131248703,5.57060886827,153.711503485,97,721.53067001,2207.25170213,5246.24764036
1 payload_size mean_bad_duration_ms mean_good_duration_ms target_bad_time_fraction actual_bad_time_fraction control_stream_bitrate_kbps schedule_duration_seconds monte_carlo_repetitions seed transmitted_packets received_packets lost_packets packet_delivery_rate base_objects_completed base_object_success_rate roi_objects_completed roi_object_success_rate atomic_composite_frames_completed composite_success_rate base_only_frames roi_only_frames incomplete_frames mean_lost_packet_burst p95_lost_packet_burst max_lost_packet_burst mean_consecutive_incomplete_frames p95_consecutive_incomplete_frames max_consecutive_incomplete_frames mean_no_new_image_duration_seconds p95_no_new_image_duration_seconds max_no_new_image_duration_seconds mean_interference_to_next_frame_seconds p95_interference_to_next_frame_seconds max_interference_to_next_frame_seconds effective_delivered_video_bitrate_kbps bad_interval_count actual_mean_bad_duration_ms actual_p95_bad_duration_ms actual_max_bad_duration_ms
2 256 10 490 0.02 0.0201609958077 300 20.8816266667 200 290290 332000 320339 11661 0.964876506024 10661 0.846111111111 9533 0.756587301587 8235 0.653571428571 2426 1298 4365 2.27442949093 5 13 1.52409217877 3 10 0.831002299814 1.35024 3.64970666667 0.546677484673 1.18029690393 3.36407888773 102.486509991 8442 9.97380686292 29.8125428395 83.5331876125
3 512 10 490 0.02 0.0200817045481 300 20.86968 200 290290 172400 164214 8186 0.952517401392 10733 0.851825396825 9703 0.770079365079 8438 0.669682539683 2295 1265 4162 1.72409435552 3 8 1.47903340441 3 10 0.814651021085 1.34314 3.65056 0.521191488299 1.13097049803 3.3529855544 105.043418011 8411 9.96549156518 29.9160688622 83.5331876125
4 1024 10 490 0.02 0.0202168068758 300 20.8637066667 200 290290 95600 89121 6479 0.932228033473 10785 0.855952380952 9700 0.769841269841 8492 0.673968253968 2293 1208 4108 1.43467670505 3 6 1.46976744186 3 10 0.812397042338 1.33936 3.65141333333 0.512839823089 1.11539721678 3.3478655544 105.78281392 8446 9.98810154849 29.7582896487 83.5331876125
5 256 50 2450 0.02 0.0204084786408 300 20.8816266667 200 290291 332000 324191 7809 0.976478915663 12012 0.953333333333 11713 0.929603174603 11391 0.904047619048 621 322 1209 6.42716049383 17.3 37 1.10209662716 2 3 0.693585900942 1.00062933333 1.34818666667 0.440632357759 0.727111920855 1.20734749202 141.795746436 1677 50.8243568053 152.864106144 405.431274995
6 512 50 2450 0.02 0.0208318699816 300 20.86968 200 290291 172400 167870 4530 0.973723897912 12032 0.954920634921 11743 0.931984126984 11452 0.908888888889 580 291 1148 3.93913043478 10 19 1.1027857829 2 3 0.693375395453 1.00016 1.34818666667 0.427559832342 0.714012825361 1.19625415869 142.643151213 1691 51.4198060694 156.002187328 405.431274995
7 1024 50 2450 0.02 0.0204619230445 300 20.8637066667 200 290291 95600 92757 2843 0.970261506276 12048 0.95619047619 11771 0.934206349206 11478 0.910952380952 570 293 1122 2.54749103943 6 12 1.095703125 2 3 0.691450052083 1.00014 1.34818666667 0.422249750197 0.702414015204 1.19113415869 143.006280124 1677 50.913722151 152.938028086 405.431274995
8 256 200 9800 0.02 0.0185410363364 300 20.8816266667 200 290292 332000 325460 6540 0.980301204819 12290 0.975396825397 12192 0.967619047619 12125 0.962301587302 165 67 475 17.8201634877 49 80 1.32311977716 3 4 0.765005088208 1.312048 1.65677333333 0.546872959401 0.96963489665 1.46756878424 150.967631513 414 187.037197483 563.305764922 989.194024493
9 512 200 9800 0.02 0.0185430633718 300 20.86968 200 290292 172400 168900 3500 0.97969837587 12295 0.975793650794 12204 0.968571428571 12138 0.963333333333 157 66 462 9.72222222222 26 41 1.3125 3 4 0.761154924242 1.15764533333 1.65677333333 0.536053764553 0.95939489665 1.45647545091 151.21462907 414 186.950627434 563.305764922 989.194024493
10 1024 200 9800 0.02 0.01854407776 300 20.8637066667 200 290292 95600 93582 2018 0.978891213389 12301 0.97626984127 12210 0.969047619048 12144 0.96380952381 157 66 456 5.70056497175 15 24 1.31412103746 3 4 0.761923535062 1.227696 1.65762666667 0.530838949739 0.95427489665 1.45135545091 151.334042912 414 186.90734241 563.305764922 989.194024493
11 256 1000 49000 0.02 0.0167841318375 300 20.8816266667 200 290293 332000 326429 5571 0.983219879518 12366 0.981428571429 12349 0.980079365079 12323 0.978015873016 43 26 277 59.2659574468 172.45 403 2.97849462366 7.4 16 1.30231827957 2.80936533333 5.66493333333 1.08734051838 2.48701382037 5.58511553493 153.469720111 97 722.639123618 2207.25170213 5246.24764036
12 512 1000 49000 0.02 0.0167765665288 300 20.86968 200 290293 172400 169489 2911 0.983114849188 12366 0.981428571429 12354 0.980476190476 12328 0.978412698413 38 26 272 31.3010752688 91.6 210 2.95652173913 7.45 16 1.29471797101 2.82593466667 5.66493333333 1.07655508883 2.47643248703 5.57572886827 153.618205933 97 721.900154546 2207.25170213 5246.24764036
13 1024 1000 49000 0.02 0.0167727806255 300 20.8637066667 200 290293 95600 93965 1635 0.98289748954 12366 0.981428571429 12358 0.980793650794 12332 0.97873015873 34 26 268 17.7717391304 50.85 116 2.94505494505 7.5 16 1.2905010989 2.84318666667 5.66493333333 1.07132952182 2.47131248703 5.57060886827 153.711503485 97 721.53067001 2207.25170213 5246.24764036