Lab027: optimize synchronized ROI video stream

This commit is contained in:
LittleSam129
2026-07-24 17:54:27 +03:00
parent 6d49036066
commit 78258b5355
17 changed files with 8300 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

View File

@@ -0,0 +1,10 @@
profile_name,base_width,base_height,base_fps,base_quality,roi_enabled,roi_x_min,roi_y_min,roi_x_max,roi_y_max,roi_width,roi_height,roi_fps,roi_quality,source_duration_s,selected_base_frames,selected_roi_frames,actual_base_fps,actual_roi_fps,total_base_bytes,total_roi_bytes,total_payload_bytes,mean_base_frame_bytes,mean_roi_frame_bytes,p95_base_frame_bytes,p95_roi_frame_bytes,max_base_frame_bytes,max_roi_frame_bytes,base_bitrate_kbps,roi_bitrate_kbps,total_payload_bitrate_kbps,baseline_bitrate_kbps,difference_from_baseline_kbps,percent_of_baseline,mean_base_jpeg_psnr_db,mean_roi_jpeg_psnr_db,mean_reconstructed_full_psnr_db,mean_reconstructed_roi_psnr_db
baseline_320x180_gray_2fps_q40,320,180,2.000000,40,0,0.000000,0.000000,0.000000,0.000000,0,0,0.000000,0,20.766667,42,0,2.022472,0.000000,208368,0,208368,4961.143,0.000,5226.950,0.000,5390,0,80.270177,0.000000,80.270177,80.283660,-0.013483,99.983205,34.364165,,20.757991,
base240_1fps_q25_roi320_2fps_q35,240,135,1.000000,25,1,0.200000,0.420000,0.800000,1.000000,320,180,2.000000,35,20.766667,21,42,1.011236,2.022472,50858,191270,242128,2421.810,4554.048,2554.000,5044.500,2569,5172,19.592167,73.683467,93.275634,80.283660,12.991974,116.182588,32.370927,34.103745,19.657187,19.574377
base240_0_5fps_q25_roi320_2fps_q35,240,135,0.500000,25,1,0.200000,0.420000,0.800000,1.000000,320,180,2.000000,35,20.766667,11,42,0.529695,2.022472,26348,191270,217618,2395.273,4554.048,2561.500,5044.500,2569,5172,10.150112,73.683467,83.833579,80.283660,3.549919,104.421721,32.474572,34.103745,18.613817,19.574377
base160_1fps_q25_roi320_2fps_q35,160,90,1.000000,25,1,0.200000,0.420000,0.800000,1.000000,320,180,2.000000,35,20.766667,21,42,1.011236,2.022472,29882,191270,221152,1422.952,4554.048,1484.000,5044.500,1492,5172,11.511525,73.683467,85.194992,80.283660,4.911332,106.117474,31.458773,34.103745,19.701304,19.574377
base240_1fps_q25_roi448_1fps_q30,240,135,1.000000,25,1,0.200000,0.420000,0.800000,1.000000,448,252,1.000000,30,20.766667,21,21,1.011236,1.011236,50858,147787,198645,2421.810,7037.476,2554.000,7860.000,2569,8507,19.592167,56.932392,76.524559,80.283660,-3.759101,95.317725,32.370927,34.666932,19.098790,17.871555
base240_0_5fps_q25_roi448_1fps_q30,240,135,0.500000,25,1,0.200000,0.420000,0.800000,1.000000,448,252,1.000000,30,20.766667,11,21,0.529695,1.011236,26348,147787,174135,2395.273,7037.476,2561.500,7860.000,2569,8507,10.150112,56.932392,67.082504,80.283660,-13.201156,83.556858,32.474572,34.666932,18.113877,17.871555
base320_1fps_q30_roi320_1fps_q35,320,180,1.000000,30,1,0.200000,0.420000,0.800000,1.000000,320,180,1.000000,35,20.766667,21,21,1.011236,1.011236,87901,95367,183268,4185.762,4541.286,4391.000,5048.000,4537,5172,33.862343,36.738491,70.600835,80.283660,-9.682825,87.939233,33.539230,34.103514,19.121457,17.888190
base240_1fps_q20_roi320_1fps_q30,240,135,1.000000,20,1,0.200000,0.420000,0.800000,1.000000,320,180,1.000000,30,20.766667,21,21,1.011236,1.011236,44598,86458,131056,2123.714,4117.048,2231.000,4551.000,2251,4614,17.180610,33.306453,50.487063,80.283660,-29.796597,62.885851,31.643522,33.598412,19.107784,17.873870
base160_0_5fps_q20_roi320_2fps_q30,160,90,0.500000,20,1,0.200000,0.420000,0.800000,1.000000,320,180,2.000000,30,20.766667,11,42,0.529695,2.022472,13820,173455,187275,1256.364,4129.881,1326.000,4548.450,1347,4614,5.323917,66.820546,72.144462,80.283660,-8.139198,89.861950,30.823518,33.595566,18.664976,19.549559
1 profile_name base_width base_height base_fps base_quality roi_enabled roi_x_min roi_y_min roi_x_max roi_y_max roi_width roi_height roi_fps roi_quality source_duration_s selected_base_frames selected_roi_frames actual_base_fps actual_roi_fps total_base_bytes total_roi_bytes total_payload_bytes mean_base_frame_bytes mean_roi_frame_bytes p95_base_frame_bytes p95_roi_frame_bytes max_base_frame_bytes max_roi_frame_bytes base_bitrate_kbps roi_bitrate_kbps total_payload_bitrate_kbps baseline_bitrate_kbps difference_from_baseline_kbps percent_of_baseline mean_base_jpeg_psnr_db mean_roi_jpeg_psnr_db mean_reconstructed_full_psnr_db mean_reconstructed_roi_psnr_db
2 baseline_320x180_gray_2fps_q40 320 180 2.000000 40 0 0.000000 0.000000 0.000000 0.000000 0 0 0.000000 0 20.766667 42 0 2.022472 0.000000 208368 0 208368 4961.143 0.000 5226.950 0.000 5390 0 80.270177 0.000000 80.270177 80.283660 -0.013483 99.983205 34.364165 20.757991
3 base240_1fps_q25_roi320_2fps_q35 240 135 1.000000 25 1 0.200000 0.420000 0.800000 1.000000 320 180 2.000000 35 20.766667 21 42 1.011236 2.022472 50858 191270 242128 2421.810 4554.048 2554.000 5044.500 2569 5172 19.592167 73.683467 93.275634 80.283660 12.991974 116.182588 32.370927 34.103745 19.657187 19.574377
4 base240_0_5fps_q25_roi320_2fps_q35 240 135 0.500000 25 1 0.200000 0.420000 0.800000 1.000000 320 180 2.000000 35 20.766667 11 42 0.529695 2.022472 26348 191270 217618 2395.273 4554.048 2561.500 5044.500 2569 5172 10.150112 73.683467 83.833579 80.283660 3.549919 104.421721 32.474572 34.103745 18.613817 19.574377
5 base160_1fps_q25_roi320_2fps_q35 160 90 1.000000 25 1 0.200000 0.420000 0.800000 1.000000 320 180 2.000000 35 20.766667 21 42 1.011236 2.022472 29882 191270 221152 1422.952 4554.048 1484.000 5044.500 1492 5172 11.511525 73.683467 85.194992 80.283660 4.911332 106.117474 31.458773 34.103745 19.701304 19.574377
6 base240_1fps_q25_roi448_1fps_q30 240 135 1.000000 25 1 0.200000 0.420000 0.800000 1.000000 448 252 1.000000 30 20.766667 21 21 1.011236 1.011236 50858 147787 198645 2421.810 7037.476 2554.000 7860.000 2569 8507 19.592167 56.932392 76.524559 80.283660 -3.759101 95.317725 32.370927 34.666932 19.098790 17.871555
7 base240_0_5fps_q25_roi448_1fps_q30 240 135 0.500000 25 1 0.200000 0.420000 0.800000 1.000000 448 252 1.000000 30 20.766667 11 21 0.529695 1.011236 26348 147787 174135 2395.273 7037.476 2561.500 7860.000 2569 8507 10.150112 56.932392 67.082504 80.283660 -13.201156 83.556858 32.474572 34.666932 18.113877 17.871555
8 base320_1fps_q30_roi320_1fps_q35 320 180 1.000000 30 1 0.200000 0.420000 0.800000 1.000000 320 180 1.000000 35 20.766667 21 21 1.011236 1.011236 87901 95367 183268 4185.762 4541.286 4391.000 5048.000 4537 5172 33.862343 36.738491 70.600835 80.283660 -9.682825 87.939233 33.539230 34.103514 19.121457 17.888190
9 base240_1fps_q20_roi320_1fps_q30 240 135 1.000000 20 1 0.200000 0.420000 0.800000 1.000000 320 180 1.000000 30 20.766667 21 21 1.011236 1.011236 44598 86458 131056 2123.714 4117.048 2231.000 4551.000 2251 4614 17.180610 33.306453 50.487063 80.283660 -29.796597 62.885851 31.643522 33.598412 19.107784 17.873870
10 base160_0_5fps_q20_roi320_2fps_q30 160 90 0.500000 20 1 0.200000 0.420000 0.800000 1.000000 320 180 2.000000 30 20.766667 11 42 0.529695 2.022472 13820 173455 187275 1256.364 4129.881 1326.000 4548.450 1347 4614 5.323917 66.820546 72.144462 80.283660 -8.139198 89.861950 30.823518 33.595566 18.664976 19.549559

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

View File

@@ -0,0 +1,74 @@
Lab027. Многомасштабная передача изображения: общий кадр и область интереса
Цель: проверить совместную передачу общего кадра и фиксированной ROI при payload около 80100 кбит/с.
Исходное видео: data\raw\lab026_rover_source.mp4
Размер файла: 7790985 байт
Исходное разрешение: 1280×720
Исходный FPS: 30.000000
Число кадров: 623
Длительность: 20.766667 с
BASE: полный grayscale-кадр пониженного разрешения с собственной частотой и JPEG quality.
ROI: фиксированная центральная нижняя область исходного grayscale-кадра с независимыми разрешением, частотой и JPEG quality.
Нормализованные координаты ROI: x=0.20...0.80, y=0.42...1.00.
Пиксельные координаты ROI исходного кадра: x=256...1024, y=302...720.
Контрольный профиль: 320×180 grayscale, 2 fps, JPEG Q40.
Контрольный baseline: 80.283660 кбит/с.
Результаты всех девяти профилей:
baseline_320x180_gray_2fps_q40: BASE=320x180, 2.000 fps, Q40, base_frames=42, base=80.270177 kbit/s; ROI=0x0, 0.000 fps, Q0, roi_frames=0, roi=0.000000 kbit/s; total=80.270177 kbit/s, baseline_diff=-0.013483, baseline_percent=99.983%, BASE_JPEG_PSNR=34.364165 dB, ROI_JPEG_PSNR=нет dB, full_reconstructed_PSNR=20.757991 dB, ROI_reconstructed_PSNR=нет dB
base240_1fps_q25_roi320_2fps_q35: BASE=240x135, 1.000 fps, Q25, base_frames=21, base=19.592167 kbit/s; ROI=320x180, 2.000 fps, Q35, roi_frames=42, roi=73.683467 kbit/s; total=93.275634 kbit/s, baseline_diff=12.991974, baseline_percent=116.183%, BASE_JPEG_PSNR=32.370927 dB, ROI_JPEG_PSNR=34.103745 dB, full_reconstructed_PSNR=19.657187 dB, ROI_reconstructed_PSNR=19.574377 dB
base240_0_5fps_q25_roi320_2fps_q35: BASE=240x135, 0.500 fps, Q25, base_frames=11, base=10.150112 kbit/s; ROI=320x180, 2.000 fps, Q35, roi_frames=42, roi=73.683467 kbit/s; total=83.833579 kbit/s, baseline_diff=3.549919, baseline_percent=104.422%, BASE_JPEG_PSNR=32.474572 dB, ROI_JPEG_PSNR=34.103745 dB, full_reconstructed_PSNR=18.613817 dB, ROI_reconstructed_PSNR=19.574377 dB
base160_1fps_q25_roi320_2fps_q35: BASE=160x90, 1.000 fps, Q25, base_frames=21, base=11.511525 kbit/s; ROI=320x180, 2.000 fps, Q35, roi_frames=42, roi=73.683467 kbit/s; total=85.194992 kbit/s, baseline_diff=4.911332, baseline_percent=106.117%, BASE_JPEG_PSNR=31.458773 dB, ROI_JPEG_PSNR=34.103745 dB, full_reconstructed_PSNR=19.701304 dB, ROI_reconstructed_PSNR=19.574377 dB
base240_1fps_q25_roi448_1fps_q30: BASE=240x135, 1.000 fps, Q25, base_frames=21, base=19.592167 kbit/s; ROI=448x252, 1.000 fps, Q30, roi_frames=21, roi=56.932392 kbit/s; total=76.524559 kbit/s, baseline_diff=-3.759101, baseline_percent=95.318%, BASE_JPEG_PSNR=32.370927 dB, ROI_JPEG_PSNR=34.666932 dB, full_reconstructed_PSNR=19.098790 dB, ROI_reconstructed_PSNR=17.871555 dB
base240_0_5fps_q25_roi448_1fps_q30: BASE=240x135, 0.500 fps, Q25, base_frames=11, base=10.150112 kbit/s; ROI=448x252, 1.000 fps, Q30, roi_frames=21, roi=56.932392 kbit/s; total=67.082504 kbit/s, baseline_diff=-13.201156, baseline_percent=83.557%, BASE_JPEG_PSNR=32.474572 dB, ROI_JPEG_PSNR=34.666932 dB, full_reconstructed_PSNR=18.113877 dB, ROI_reconstructed_PSNR=17.871555 dB
base320_1fps_q30_roi320_1fps_q35: BASE=320x180, 1.000 fps, Q30, base_frames=21, base=33.862343 kbit/s; ROI=320x180, 1.000 fps, Q35, roi_frames=21, roi=36.738491 kbit/s; total=70.600835 kbit/s, baseline_diff=-9.682825, baseline_percent=87.939%, BASE_JPEG_PSNR=33.539230 dB, ROI_JPEG_PSNR=34.103514 dB, full_reconstructed_PSNR=19.121457 dB, ROI_reconstructed_PSNR=17.888190 dB
base240_1fps_q20_roi320_1fps_q30: BASE=240x135, 1.000 fps, Q20, base_frames=21, base=17.180610 kbit/s; ROI=320x180, 1.000 fps, Q30, roi_frames=21, roi=33.306453 kbit/s; total=50.487063 kbit/s, baseline_diff=-29.796597, baseline_percent=62.886%, BASE_JPEG_PSNR=31.643522 dB, ROI_JPEG_PSNR=33.598412 dB, full_reconstructed_PSNR=19.107784 dB, ROI_reconstructed_PSNR=17.873870 dB
base160_0_5fps_q20_roi320_2fps_q30: BASE=160x90, 0.500 fps, Q20, base_frames=11, base=5.323917 kbit/s; ROI=320x180, 2.000 fps, Q30, roi_frames=42, roi=66.820546 kbit/s; total=72.144462 kbit/s, baseline_diff=-8.139198, baseline_percent=89.862%, BASE_JPEG_PSNR=30.823518 dB, ROI_JPEG_PSNR=33.595566 dB, full_reconstructed_PSNR=18.664976 dB, ROI_reconstructed_PSNR=19.549559 dB
Профили до 80.283660 кбит/с:
baseline_320x180_gray_2fps_q40: BASE=320x180, 2.000 fps, Q40, base_frames=42, base=80.270177 kbit/s; ROI=0x0, 0.000 fps, Q0, roi_frames=0, roi=0.000000 kbit/s; total=80.270177 kbit/s, baseline_diff=-0.013483, baseline_percent=99.983%, BASE_JPEG_PSNR=34.364165 dB, ROI_JPEG_PSNR=нет dB, full_reconstructed_PSNR=20.757991 dB, ROI_reconstructed_PSNR=нет dB
base240_1fps_q25_roi448_1fps_q30: BASE=240x135, 1.000 fps, Q25, base_frames=21, base=19.592167 kbit/s; ROI=448x252, 1.000 fps, Q30, roi_frames=21, roi=56.932392 kbit/s; total=76.524559 kbit/s, baseline_diff=-3.759101, baseline_percent=95.318%, BASE_JPEG_PSNR=32.370927 dB, ROI_JPEG_PSNR=34.666932 dB, full_reconstructed_PSNR=19.098790 dB, ROI_reconstructed_PSNR=17.871555 dB
base240_0_5fps_q25_roi448_1fps_q30: BASE=240x135, 0.500 fps, Q25, base_frames=11, base=10.150112 kbit/s; ROI=448x252, 1.000 fps, Q30, roi_frames=21, roi=56.932392 kbit/s; total=67.082504 kbit/s, baseline_diff=-13.201156, baseline_percent=83.557%, BASE_JPEG_PSNR=32.474572 dB, ROI_JPEG_PSNR=34.666932 dB, full_reconstructed_PSNR=18.113877 dB, ROI_reconstructed_PSNR=17.871555 dB
base320_1fps_q30_roi320_1fps_q35: BASE=320x180, 1.000 fps, Q30, base_frames=21, base=33.862343 kbit/s; ROI=320x180, 1.000 fps, Q35, roi_frames=21, roi=36.738491 kbit/s; total=70.600835 kbit/s, baseline_diff=-9.682825, baseline_percent=87.939%, BASE_JPEG_PSNR=33.539230 dB, ROI_JPEG_PSNR=34.103514 dB, full_reconstructed_PSNR=19.121457 dB, ROI_reconstructed_PSNR=17.888190 dB
base240_1fps_q20_roi320_1fps_q30: BASE=240x135, 1.000 fps, Q20, base_frames=21, base=17.180610 kbit/s; ROI=320x180, 1.000 fps, Q30, roi_frames=21, roi=33.306453 kbit/s; total=50.487063 kbit/s, baseline_diff=-29.796597, baseline_percent=62.886%, BASE_JPEG_PSNR=31.643522 dB, ROI_JPEG_PSNR=33.598412 dB, full_reconstructed_PSNR=19.107784 dB, ROI_reconstructed_PSNR=17.873870 dB
base160_0_5fps_q20_roi320_2fps_q30: BASE=160x90, 0.500 fps, Q20, base_frames=11, base=5.323917 kbit/s; ROI=320x180, 2.000 fps, Q30, roi_frames=42, roi=66.820546 kbit/s; total=72.144462 kbit/s, baseline_diff=-8.139198, baseline_percent=89.862%, BASE_JPEG_PSNR=30.823518 dB, ROI_JPEG_PSNR=33.595566 dB, full_reconstructed_PSNR=18.664976 dB, ROI_reconstructed_PSNR=19.549559 dB
Профили до 100 кбит/с:
baseline_320x180_gray_2fps_q40: BASE=320x180, 2.000 fps, Q40, base_frames=42, base=80.270177 kbit/s; ROI=0x0, 0.000 fps, Q0, roi_frames=0, roi=0.000000 kbit/s; total=80.270177 kbit/s, baseline_diff=-0.013483, baseline_percent=99.983%, BASE_JPEG_PSNR=34.364165 dB, ROI_JPEG_PSNR=нет dB, full_reconstructed_PSNR=20.757991 dB, ROI_reconstructed_PSNR=нет dB
base240_1fps_q25_roi320_2fps_q35: BASE=240x135, 1.000 fps, Q25, base_frames=21, base=19.592167 kbit/s; ROI=320x180, 2.000 fps, Q35, roi_frames=42, roi=73.683467 kbit/s; total=93.275634 kbit/s, baseline_diff=12.991974, baseline_percent=116.183%, BASE_JPEG_PSNR=32.370927 dB, ROI_JPEG_PSNR=34.103745 dB, full_reconstructed_PSNR=19.657187 dB, ROI_reconstructed_PSNR=19.574377 dB
base240_0_5fps_q25_roi320_2fps_q35: BASE=240x135, 0.500 fps, Q25, base_frames=11, base=10.150112 kbit/s; ROI=320x180, 2.000 fps, Q35, roi_frames=42, roi=73.683467 kbit/s; total=83.833579 kbit/s, baseline_diff=3.549919, baseline_percent=104.422%, BASE_JPEG_PSNR=32.474572 dB, ROI_JPEG_PSNR=34.103745 dB, full_reconstructed_PSNR=18.613817 dB, ROI_reconstructed_PSNR=19.574377 dB
base160_1fps_q25_roi320_2fps_q35: BASE=160x90, 1.000 fps, Q25, base_frames=21, base=11.511525 kbit/s; ROI=320x180, 2.000 fps, Q35, roi_frames=42, roi=73.683467 kbit/s; total=85.194992 kbit/s, baseline_diff=4.911332, baseline_percent=106.117%, BASE_JPEG_PSNR=31.458773 dB, ROI_JPEG_PSNR=34.103745 dB, full_reconstructed_PSNR=19.701304 dB, ROI_reconstructed_PSNR=19.574377 dB
base240_1fps_q25_roi448_1fps_q30: BASE=240x135, 1.000 fps, Q25, base_frames=21, base=19.592167 kbit/s; ROI=448x252, 1.000 fps, Q30, roi_frames=21, roi=56.932392 kbit/s; total=76.524559 kbit/s, baseline_diff=-3.759101, baseline_percent=95.318%, BASE_JPEG_PSNR=32.370927 dB, ROI_JPEG_PSNR=34.666932 dB, full_reconstructed_PSNR=19.098790 dB, ROI_reconstructed_PSNR=17.871555 dB
base240_0_5fps_q25_roi448_1fps_q30: BASE=240x135, 0.500 fps, Q25, base_frames=11, base=10.150112 kbit/s; ROI=448x252, 1.000 fps, Q30, roi_frames=21, roi=56.932392 kbit/s; total=67.082504 kbit/s, baseline_diff=-13.201156, baseline_percent=83.557%, BASE_JPEG_PSNR=32.474572 dB, ROI_JPEG_PSNR=34.666932 dB, full_reconstructed_PSNR=18.113877 dB, ROI_reconstructed_PSNR=17.871555 dB
base320_1fps_q30_roi320_1fps_q35: BASE=320x180, 1.000 fps, Q30, base_frames=21, base=33.862343 kbit/s; ROI=320x180, 1.000 fps, Q35, roi_frames=21, roi=36.738491 kbit/s; total=70.600835 kbit/s, baseline_diff=-9.682825, baseline_percent=87.939%, BASE_JPEG_PSNR=33.539230 dB, ROI_JPEG_PSNR=34.103514 dB, full_reconstructed_PSNR=19.121457 dB, ROI_reconstructed_PSNR=17.888190 dB
base240_1fps_q20_roi320_1fps_q30: BASE=240x135, 1.000 fps, Q20, base_frames=21, base=17.180610 kbit/s; ROI=320x180, 1.000 fps, Q30, roi_frames=21, roi=33.306453 kbit/s; total=50.487063 kbit/s, baseline_diff=-29.796597, baseline_percent=62.886%, BASE_JPEG_PSNR=31.643522 dB, ROI_JPEG_PSNR=33.598412 dB, full_reconstructed_PSNR=19.107784 dB, ROI_reconstructed_PSNR=17.873870 dB
base160_0_5fps_q20_roi320_2fps_q30: BASE=160x90, 0.500 fps, Q20, base_frames=11, base=5.323917 kbit/s; ROI=320x180, 2.000 fps, Q30, roi_frames=42, roi=66.820546 kbit/s; total=72.144462 kbit/s, baseline_diff=-8.139198, baseline_percent=89.862%, BASE_JPEG_PSNR=30.823518 dB, ROI_JPEG_PSNR=33.595566 dB, full_reconstructed_PSNR=18.664976 dB, ROI_reconstructed_PSNR=19.549559 dB
Профиль с максимальным ROI-разрешением до 100 кбит/с:
base240_1fps_q25_roi448_1fps_q30: BASE=240x135, 1.000 fps, Q25, base_frames=21, base=19.592167 kbit/s; ROI=448x252, 1.000 fps, Q30, roi_frames=21, roi=56.932392 kbit/s; total=76.524559 kbit/s, baseline_diff=-3.759101, baseline_percent=95.318%, BASE_JPEG_PSNR=32.370927 dB, ROI_JPEG_PSNR=34.666932 dB, full_reconstructed_PSNR=19.098790 dB, ROI_reconstructed_PSNR=17.871555 dB
Профиль с максимальным ROI PSNR до 100 кбит/с:
base240_1fps_q25_roi320_2fps_q35: BASE=240x135, 1.000 fps, Q25, base_frames=21, base=19.592167 kbit/s; ROI=320x180, 2.000 fps, Q35, roi_frames=42, roi=73.683467 kbit/s; total=93.275634 kbit/s, baseline_diff=12.991974, baseline_percent=116.183%, BASE_JPEG_PSNR=32.370927 dB, ROI_JPEG_PSNR=34.103745 dB, full_reconstructed_PSNR=19.657187 dB, ROI_reconstructed_PSNR=19.574377 dB
Профиль с максимальным full-frame PSNR до 100 кбит/с:
baseline_320x180_gray_2fps_q40: BASE=320x180, 2.000 fps, Q40, base_frames=42, base=80.270177 kbit/s; ROI=0x0, 0.000 fps, Q0, roi_frames=0, roi=0.000000 kbit/s; total=80.270177 kbit/s, baseline_diff=-0.013483, baseline_percent=99.983%, BASE_JPEG_PSNR=34.364165 dB, ROI_JPEG_PSNR=нет dB, full_reconstructed_PSNR=20.757991 dB, ROI_reconstructed_PSNR=нет dB
Разделение битрейта BASE/ROI:
baseline_320x180_gray_2fps_q40: BASE=80.270177 кбит/с, ROI=0.000000 кбит/с, total=80.270177 кбит/с.
base240_1fps_q25_roi320_2fps_q35: BASE=19.592167 кбит/с, ROI=73.683467 кбит/с, total=93.275634 кбит/с.
base240_0_5fps_q25_roi320_2fps_q35: BASE=10.150112 кбит/с, ROI=73.683467 кбит/с, total=83.833579 кбит/с.
base160_1fps_q25_roi320_2fps_q35: BASE=11.511525 кбит/с, ROI=73.683467 кбит/с, total=85.194992 кбит/с.
base240_1fps_q25_roi448_1fps_q30: BASE=19.592167 кбит/с, ROI=56.932392 кбит/с, total=76.524559 кбит/с.
base240_0_5fps_q25_roi448_1fps_q30: BASE=10.150112 кбит/с, ROI=56.932392 кбит/с, total=67.082504 кбит/с.
base320_1fps_q30_roi320_1fps_q35: BASE=33.862343 кбит/с, ROI=36.738491 кбит/с, total=70.600835 кбит/с.
base240_1fps_q20_roi320_1fps_q30: BASE=17.180610 кбит/с, ROI=33.306453 кбит/с, total=50.487063 кбит/с.
base160_0_5fps_q20_roi320_2fps_q30: BASE=5.323917 кбит/с, ROI=66.820546 кбит/с, total=72.144462 кбит/с.
Фиксированная ROI не гарантирует попадания препятствия в область интереса.
PSNR не заменяет ручную оценку пригодности изображения.
Нельзя автоматически объявлять профиль безопасным для управления ровером.
Радиопротокол, радиозаголовки, CRC, FEC, фрагментация и повторные передачи не учтены.
Сравнительное изображение: data\processed\lab027\lab027_candidate_profiles.png
Следующий шаг: ручная оценка пользователем.

View File

@@ -0,0 +1,5 @@
profile_name,update_mode,base_width,base_height,base_fps,base_quality,roi_width,roi_height,roi_fps,roi_quality,source_duration_s,selected_base_frames,selected_roi_frames,synchronized_composite_frames,total_base_bytes,total_roi_bytes,total_payload_bytes,mean_base_frame_bytes,mean_roi_frame_bytes,mean_composite_frame_bytes,p95_composite_frame_bytes,max_composite_frame_bytes,base_bitrate_kbps,roi_bitrate_kbps,total_payload_bitrate_kbps,timestamp_mismatch_count,frame_id_mismatch_count
async_reference,asynchronous,240,135,1.000000,25,320,180,2.000000,35,20.766667,21,42,N/A,50858,191270,242128,2421.810,4554.048,5764.952,7477.600,7741,19.592167,73.683467,93.275634,N/A,N/A
sync_base160_q25_roi320_q35,synchronous,160,90,2.000000,25,320,180,2.000000,35,20.766667,42,42,42,59958,191270,251228,1427.571,4554.048,5981.619,6519.900,6656,23.097785,73.683467,96.781252,0,0
sync_base240_q20_roi320_q30,synchronous,240,135,2.000000,20,320,180,2.000000,30,20.766667,42,42,42,89696,173455,263151,2135.619,4129.881,6265.500,6780.400,6842,34.553836,66.820546,101.374382,0,0
sync_base240_q25_roi320_q35,synchronous,240,135,2.000000,25,320,180,2.000000,35,20.766667,42,42,42,102283,191270,293553,2435.310,4554.048,6989.357,7572.350,7741,39.402761,73.683467,113.086228,0,0
1 profile_name update_mode base_width base_height base_fps base_quality roi_width roi_height roi_fps roi_quality source_duration_s selected_base_frames selected_roi_frames synchronized_composite_frames total_base_bytes total_roi_bytes total_payload_bytes mean_base_frame_bytes mean_roi_frame_bytes mean_composite_frame_bytes p95_composite_frame_bytes max_composite_frame_bytes base_bitrate_kbps roi_bitrate_kbps total_payload_bitrate_kbps timestamp_mismatch_count frame_id_mismatch_count
2 async_reference asynchronous 240 135 1.000000 25 320 180 2.000000 35 20.766667 21 42 N/A 50858 191270 242128 2421.810 4554.048 5764.952 7477.600 7741 19.592167 73.683467 93.275634 N/A N/A
3 sync_base160_q25_roi320_q35 synchronous 160 90 2.000000 25 320 180 2.000000 35 20.766667 42 42 42 59958 191270 251228 1427.571 4554.048 5981.619 6519.900 6656 23.097785 73.683467 96.781252 0 0
4 sync_base240_q20_roi320_q30 synchronous 240 135 2.000000 20 320 180 2.000000 30 20.766667 42 42 42 89696 173455 263151 2135.619 4129.881 6265.500 6780.400 6842 34.553836 66.820546 101.374382 0 0
5 sync_base240_q25_roi320_q35 synchronous 240 135 2.000000 25 320 180 2.000000 35 20.766667 42 42 42 102283 191270 293553 2435.310 4554.048 6989.357 7572.350 7741 39.402761 73.683467 113.086228 0 0

View File

@@ -0,0 +1,44 @@
Lab027C. Динамическое сравнение асинхронного и синхронного BASE + ROI
Цель: визуально сравнить ранее выбранный асинхронный профиль BASE 1 fps + ROI 2 fps с тремя синхронными профилями BASE 2 fps + ROI 2 fps.
Исходное видео: data\raw\lab026_rover_source.mp4
Исходное разрешение: 1280x720
Исходный FPS: 30.000000
Число кадров: 623
Длительность: 20.766667 с
ROI: x=0.20...0.80, y=0.42...1.00; пиксели x=256...1024, y=302...720.
Результат ручной оценки предыдущей Lab027:
- пользователь выбрал вариант B;
- граница ROI не мешает;
- обновление BASE один раз в секунду мешает;
- рассинхронное движение BASE и ROI мешает;
- принято решение сравнить с синхронным обновлением 2 fps.
async_reference: BASE и ROI обновляются независимо. Единого logical_frame_id нет; используются отдельные BASE ID и ROI ID. Mismatch для этого режима неприменим.
Синхронные профили: BASE и ROI формируются из одного source frame, получают единые composite ID и timestamp и атомарно заменяют отображаемый составной кадр.
Фактические результаты четырёх профилей:
async_reference: mode=asynchronous, BASE=240x135, 1.000 fps, Q25, base_frames=21, base_bytes=50858, base_bitrate=19.592167 kbit/s; ROI=320x180, 2.000 fps, Q35, roi_frames=42, roi_bytes=191270, roi_bitrate=73.683467 kbit/s; total_bytes=242128, total_bitrate=93.275634 kbit/s, sync_frames=N/A, timestamp_mismatch=N/A, frame_id_mismatch=N/A
sync_base160_q25_roi320_q35: mode=synchronous, BASE=160x90, 2.000 fps, Q25, base_frames=42, base_bytes=59958, base_bitrate=23.097785 kbit/s; ROI=320x180, 2.000 fps, Q35, roi_frames=42, roi_bytes=191270, roi_bitrate=73.683467 kbit/s; total_bytes=251228, total_bitrate=96.781252 kbit/s, sync_frames=42, timestamp_mismatch=0, frame_id_mismatch=0
sync_base240_q20_roi320_q30: mode=synchronous, BASE=240x135, 2.000 fps, Q20, base_frames=42, base_bytes=89696, base_bitrate=34.553836 kbit/s; ROI=320x180, 2.000 fps, Q30, roi_frames=42, roi_bytes=173455, roi_bitrate=66.820546 kbit/s; total_bytes=263151, total_bitrate=101.374382 kbit/s, sync_frames=42, timestamp_mismatch=0, frame_id_mismatch=0
sync_base240_q25_roi320_q35: mode=synchronous, BASE=240x135, 2.000 fps, Q25, base_frames=42, base_bytes=102283, base_bitrate=39.402761 kbit/s; ROI=320x180, 2.000 fps, Q35, roi_frames=42, roi_bytes=191270, roi_bitrate=73.683467 kbit/s; total_bytes=293553, total_bitrate=113.086228 kbit/s, sync_frames=42, timestamp_mismatch=0, frame_id_mismatch=0
Количество обновлений:
async_reference: BASE=21, ROI=42, synchronized=N/A.
sync_base160_q25_roi320_q35: BASE=42, ROI=42, synchronized=42.
sync_base240_q20_roi320_q30: BASE=42, ROI=42, synchronized=42.
sync_base240_q25_roi320_q35: BASE=42, ROI=42, synchronized=42.
Mismatch-проверка:
async_reference: timestamp=N/A, frame_id=N/A.
sync_base160_q25_roi320_q35: timestamp=0, frame_id=0.
sync_base240_q20_roi320_q30: timestamp=0, frame_id=0.
sync_base240_q25_roi320_q35: timestamp=0, frame_id=0.
Preview: data\raw\lab027c_previews\lab027c_synchronous_roi_preview.mp4
Формат: MP4/mp4v.
Радиопротокол, CRC, FEC, фрагментация и служебный трафик пока не учитываются.
Программа не выбирает лучший профиль и не объявляет режим безопасным автоматически.
Следующий шаг: ручной выбор пользователем после просмотра preview-видео.

View File

@@ -0,0 +1,5 @@
profile_name,base_width,base_height,fps,base_quality,roi_width,roi_height,roi_quality,source_duration_s,selected_base_frames,selected_roi_frames,synchronized_composite_frames,total_base_bytes,total_roi_bytes,total_payload_bytes,mean_base_frame_bytes,mean_roi_frame_bytes,mean_composite_frame_bytes,p95_composite_frame_bytes,max_composite_frame_bytes,base_bitrate_kbps,roi_bitrate_kbps,total_payload_bitrate_kbps,channel_rate_fec_2_3_kbps,channel_rate_fec_1_2_kbps,timestamp_mismatch_count,frame_id_mismatch_count
sync_2fps_base_q20_roi_q30,240,135,2.000000,20,320,180,30,20.766667,42,42,42,89696,173455,263151,2135.619,4129.881,6265.500,6780.400,6842,34.553836,66.820546,101.374382,167.267730,223.023640,0,0
sync_3fps_base_q20_roi_q30,240,135,3.000000,20,320,180,30,20.766667,63,63,63,133076,249436,382512,2112.317,3959.302,6071.619,6640.800,6842,51.265233,96.090915,147.356148,243.137644,324.183525,0,0
sync_3fps_base_q23_roi_q33,240,135,3.000000,23,320,180,33,20.766667,63,63,63,144649,264895,409544,2296.016,4204.683,6500.698,7125.400,7383,55.723531,102.046228,157.769759,260.320103,347.093470,0,0
sync_3fps_base_q25_roi_q35,240,135,3.000000,25,320,180,35,20.766667,63,63,63,151516,274486,426002,2405.016,4356.921,6761.937,7421.700,7741,58.368925,105.740995,164.109920,270.781368,361.041823,0,0
1 profile_name base_width base_height fps base_quality roi_width roi_height roi_quality source_duration_s selected_base_frames selected_roi_frames synchronized_composite_frames total_base_bytes total_roi_bytes total_payload_bytes mean_base_frame_bytes mean_roi_frame_bytes mean_composite_frame_bytes p95_composite_frame_bytes max_composite_frame_bytes base_bitrate_kbps roi_bitrate_kbps total_payload_bitrate_kbps channel_rate_fec_2_3_kbps channel_rate_fec_1_2_kbps timestamp_mismatch_count frame_id_mismatch_count
2 sync_2fps_base_q20_roi_q30 240 135 2.000000 20 320 180 30 20.766667 42 42 42 89696 173455 263151 2135.619 4129.881 6265.500 6780.400 6842 34.553836 66.820546 101.374382 167.267730 223.023640 0 0
3 sync_3fps_base_q20_roi_q30 240 135 3.000000 20 320 180 30 20.766667 63 63 63 133076 249436 382512 2112.317 3959.302 6071.619 6640.800 6842 51.265233 96.090915 147.356148 243.137644 324.183525 0 0
4 sync_3fps_base_q23_roi_q33 240 135 3.000000 23 320 180 33 20.766667 63 63 63 144649 264895 409544 2296.016 4204.683 6500.698 7125.400 7383 55.723531 102.046228 157.769759 260.320103 347.093470 0 0
5 sync_3fps_base_q25_roi_q35 240 135 3.000000 25 320 180 35 20.766667 63 63 63 151516 274486 426002 2405.016 4356.921 6761.937 7421.700 7741 58.368925 105.740995 164.109920 270.781368 361.041823 0 0

View File

@@ -0,0 +1,37 @@
Lab027D. Синхронный BASE + ROI при 2 и 3 fps
Цель: сравнить текущий синхронный профиль 2 fps с тремя профилями 3 fps при разных JPEG Quality.
Результат ручной оценки Lab027C:
- лучший из показанных вариантов — нижний левый;
- синхронизация BASE и ROI устранила рассогласование;
- 2 fps недостаточно;
- BASE 160x90 слишком грубый;
- BASE 240x135 Q20 немного недостаточен по качеству.
Причина повышения FPS: ручная оценка показала, что синхронное обновление устраняет рассогласование, но частота 2 fps недостаточна для динамической сцены.
Исходное видео: data\raw\lab026_rover_source.mp4
Разрешение: 1280x720
FPS: 30.000000
Кадров: 623
Длительность: 20.766667 с
ROI: x=0.20...0.80, y=0.42...1.00; пиксели x=256...1024, y=302...720.
Все профили синхронные: BASE и ROI формируются из одного source frame, получают единый timestamp и composite frame ID и публикуются атомарно.
Фактические результаты:
sync_2fps_base_q20_roi_q30: 2.000 fps; BASE=240x135, Q20, frames=42, bytes=89696, bitrate=34.553836 kbit/s; ROI=320x180, Q30, frames=42, bytes=173455, bitrate=66.820546 kbit/s; total_bytes=263151, payload=101.374382 kbit/s; channel FEC 2/3=167.267730 kbit/s; channel FEC 1/2=223.023640 kbit/s; sync_frames=42; timestamp_mismatch=0; frame_id_mismatch=0
sync_3fps_base_q20_roi_q30: 3.000 fps; BASE=240x135, Q20, frames=63, bytes=133076, bitrate=51.265233 kbit/s; ROI=320x180, Q30, frames=63, bytes=249436, bitrate=96.090915 kbit/s; total_bytes=382512, payload=147.356148 kbit/s; channel FEC 2/3=243.137644 kbit/s; channel FEC 1/2=324.183525 kbit/s; sync_frames=63; timestamp_mismatch=0; frame_id_mismatch=0
sync_3fps_base_q23_roi_q33: 3.000 fps; BASE=240x135, Q23, frames=63, bytes=144649, bitrate=55.723531 kbit/s; ROI=320x180, Q33, frames=63, bytes=264895, bitrate=102.046228 kbit/s; total_bytes=409544, payload=157.769759 kbit/s; channel FEC 2/3=260.320103 kbit/s; channel FEC 1/2=347.093470 kbit/s; sync_frames=63; timestamp_mismatch=0; frame_id_mismatch=0
sync_3fps_base_q25_roi_q35: 3.000 fps; BASE=240x135, Q25, frames=63, bytes=151516, bitrate=58.368925 kbit/s; ROI=320x180, Q35, frames=63, bytes=274486, bitrate=105.740995 kbit/s; total_bytes=426002, payload=164.109920 kbit/s; channel FEC 2/3=270.781368 kbit/s; channel FEC 1/2=361.041823 kbit/s; sync_frames=63; timestamp_mismatch=0; frame_id_mismatch=0
Оценки channel rate иллюстративны: к payload добавлено 10% служебных данных, затем применена оценка FEC 2/3 или FEC 1/2.
Эти значения не являются окончательной архитектурой радиоканала.
Preview: data\raw\lab027d_previews\lab027d_fps_quality_preview.mp4
Формат: MP4/mp4v.
Предупреждение: оценки пока не включают окончательную модуляцию, полосу сигнала, интерливинг, повторы и команды управления.
Программа не выбирает лучший профиль автоматически.
Следующий шаг: ручной выбор пользователя после просмотра preview-видео.

View File

@@ -0,0 +1,2 @@
profile_name,playback_speed_factor,source_width,source_height,source_fps,source_frames,source_duration_s,output_width,output_height,output_fps,output_frames,output_duration_s,composite_fps,base_width,base_height,base_quality,roi_width,roi_height,roi_quality,selected_composite_frames,total_base_bytes,total_roi_bytes,total_payload_bytes,mean_base_frame_bytes,mean_roi_frame_bytes,mean_composite_frame_bytes,p95_composite_frame_bytes,max_composite_frame_bytes,base_bitrate_kbps,roi_bitrate_kbps,total_payload_bitrate_kbps,channel_rate_fec_2_3_kbps,channel_rate_fec_1_2_kbps,timestamp_mismatch_count,frame_id_mismatch_count
sync_3fps_base240_q23_roi320_q33_speed_0_5x,0.500000,1280,720,30.000000,623,20.766667,1280,720,30.000000,1246,41.533333,3.000000,240,135,23,320,180,33,125,286715,524962,811677,2293.720,4199.696,6493.416,7125.400,7890,55.226003,101.116276,156.342279,257.964761,343.953014,0,0
1 profile_name playback_speed_factor source_width source_height source_fps source_frames source_duration_s output_width output_height output_fps output_frames output_duration_s composite_fps base_width base_height base_quality roi_width roi_height roi_quality selected_composite_frames total_base_bytes total_roi_bytes total_payload_bytes mean_base_frame_bytes mean_roi_frame_bytes mean_composite_frame_bytes p95_composite_frame_bytes max_composite_frame_bytes base_bitrate_kbps roi_bitrate_kbps total_payload_bitrate_kbps channel_rate_fec_2_3_kbps channel_rate_fec_1_2_kbps timestamp_mismatch_count frame_id_mismatch_count
2 sync_3fps_base240_q23_roi320_q33_speed_0_5x 0.500000 1280 720 30.000000 623 20.766667 1280 720 30.000000 1246 41.533333 3.000000 240 135 23 320 180 33 125 286715 524962 811677 2293.720 4199.696 6493.416 7125.400 7890 55.226003 101.116276 156.342279 257.964761 343.953014 0 0

View File

@@ -0,0 +1,50 @@
Lab027E. Операторское preview при playback 0.5x
Результаты ручной оценки Lab027D:
- 3 fps достаточно на исходном быстром видео;
- Q20/Q30 приемлем;
- Q23/Q33 приемлем;
- разница Q23/Q33 и Q25/Q35 практически отсутствует.
Предварительно выбран профиль Q23/Q33.
От Q25/Q35 предварительно отказались, поскольку визуальный выигрыш почти отсутствует.
Профиль не считается окончательно утверждённым до ручного просмотра этого preview.
Исходная сцена замедлена для имитации более медленного движения ровера и оценки удобства управления.
Коэффициент playback: 0.500x.
Предупреждение: реальная скорость исходного автомобиля неизвестна.
Исходное видео:
- путь: data\raw\lab026_rover_source.mp4;
- разрешение: 1280x720;
- FPS: 30.000000;
- кадров: 623;
- длительность: 20.766667 с.
Выходное preview:
- разрешение: 1280x720;
- FPS: 30.000000;
- кадров: 1246;
- длительность: 41.533333 с;
- composite FPS: 3.000000.
Профиль:
- BASE 240x135 Q23;
- ROI 320x180 Q33;
- составных обновлений: 125.
Фактические скорости:
- BASE: 55.226003 kbit/s;
- ROI: 101.116276 kbit/s;
- total payload: 156.342279 kbit/s;
- channel rate FEC 2/3: 257.964761 kbit/s;
- channel rate FEC 1/2: 343.953014 kbit/s.
Оценки канальной скорости иллюстративны и не являются окончательной архитектурой радиоканала.
Mismatch-проверка:
- timestamp mismatch: 0;
- frame ID mismatch: 0.
Preview: data\raw\lab027e_previews\lab027e_operator_view_0_5x.mp4
Формат: MP4/mp4v.
Следующий шаг: ручная оценка удобства управления пользователем.