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-видео.