Группа видеокадров (ГВК или GOP — group of pictures) представляет собой набор последовательных изображений и определяет порядок, в котором расположены intra (I) и inter (P и B) кадры.
GOP часто обозначается двумя числами, например M = 3, N = 12. М указывает расстояние между двумя опорными кадрами (I или P), а N определяет расстояние между двумя полными изображениями (I-кадрами). Например, для M = 3 и N = 12, структура GOP будет выглядеть так: IBBPBBPBBPBBI.
I (IDR) кадры
I-кадры сжимаются независимо от каких-либо других кадров видеопоследовательности. IDR-кадр — подвид I-кадра, он же ключевой кадр. Именно с него начинается декодирование всего потока. Все кадры, которые находятся между двумя IDR-кадрами, не могут ссылаться на кадры вне этого промежутка.
Иногда при смене плана сцены текущий и предыдущий кадры различаются настолько сильно, что в начале новой сцены выгоднее использовать I-кадр вместо P или B. Кодеры умеют реагировать на такие изменения — такая возможность называется «обнаружение смены сцен» (scene change detection или SCD).
P- и B-кадры
P- и B-кадры используются, чтобы кодировать изменения в текущем кадре относительно предшествующих кадров. Наиболее универсальная структура последовательности P- и B-кадров: 2–3 B-кадра на один P-кадр.
B-кадры, как правило, в несколько раз меньше P-кадров. При этом каждый B-кадр добавляет дополнительную задержку из-за буферизации и переупорядочивания кадров. Чем больше P- и B-кадров используется, тем выше коэффициент сжатия.
Советы по настройке кодера для телевещания
Длина. Длинные GOP применяют в файлах, либо в ОТТ-вещании (например, когда длина GOP в секундах равна продолжительности сегмента). Для лайв-вещания рекомендуется сделать GOP поменьше по нескольким причинам. Например:
- По DVB стандарту частота появления PAT/PMT таблиц должна быть равной двум разам в секунду (500 мс), и, как правило, PAT/PMT ставится рядом с I-кадром;
- Для DVB также очень важна скорость переключения между каналами, и чем длиннее GOP, тем больше времени займёт переключение.
Структура. Иерархический (пирамидальный) GOP обеспечивает лучшее качество картинки. Этот режим позволяет B-кадрам ссылаться друг на друга. Адаптивное количество B-кадров подходит для кодирования высокодинамических видеорядов со сложным движением. В моменты сложного движения используется большее количество P-кадров и структура GOP изменяется.
Обнаружение смены сцен. Большинство кодеров детектируют изменение плана сцены и автоматически вставляют в сцену полный I-кадр. Но, если контент имеет частые смены планов (например, новости), то вставка полных кадров может привести к изменению GOP структуры. Это создаст дополнительную задержку потока на несколько секунд. Если буфер приёмного устройства переполнится, то зрители увидят стоп-кадры и рассыпание видео (обнаружение смены сцен можно увидеть на рис. 1).
Среднее значение encode ratio (avg) для всего потока, I-, P- и B-кадров. Показывает во сколько раз сжато исходное видео. C его помощью можно проверить, насколько хорошо отработал кодер в целом и выдержал ли требуемые пропорции avg[EncRatio(I)] << avg[EncRatio(P)] << avg[EncRatio(B)], и сравнить производительность двух кодеров на одном и том же наборе медиафайлов.
Посмотреть подробную информацию о видеопоследовательности и провести глубокий анализ качества видео вы можете с помощью приложений для видеоанализа StreamEye Studio.
Попробовать бесплатно потоковый кодер CodecWorks.