GOP

Group of Pictures (GOP, group of pictures) — это структурированная группа последовательных кадров в видеопотоке или файле, закодированном с помощью MPEG. Кадры группируются для межкадрового сжатия.

Для передачи видео через интернет с ограниченной пропускной способностью часто необходимо сжимать видео. Кроме сжатия самих кадров, существует более прогрессивная технология, называемая межкадровым сжатием. Она работает следующим образом: сначала передаются полные кадры (к ключевыми кадрами), а затем только разница между ключевым кадром и последующими кадрами. Приемник (декодер) использует ключевой кадр и эти различия для восстановления желаемого кадра с разумной точностью.

Для межкадрового сжатия кадры в потоке группируются в GOP. GOP (группа кадров) — это структурированная группа последовательных кадров в видеопотоке или файле.

Каждый GOP состоит из I-кадра (ключевого кадра), за которым следуют P-кадры и B-кадры:

  • I-кадр (ключевой кадр, keyframe) — это первый кадр в GOP. Это полное изображение, закодированное независимо от других кадров (то есть без ссылок на них). Каждый GOP начинается с ключевого кадра.
  • P-кадры содержат разницу между предыдущим P-кадром и текущим кадром. Они кодируются со ссылкой на I-кадр.
  • B-кадры содержат ссылки на I-кадры и P-кадры до и после себя. Это помогает ускорить перемотку, например.

Типичный GOP содержит повторяющийся паттерн B- и P-кадров после ключевого кадра. Пример типичного паттерна может выглядеть следующим образом:

I B B P B B P B B P B B

GOP

Размер GOP (количество кадров между двумя соседними ключевыми кадрами) — это количество кадров в одном GOP. Это число может быть переменным или постоянным для потока. Когда Flussonic транскодирует поток, он создает GOP фиксированного размера, так что все GOP имеют одинаковый размер. Большинство программ для обработки видео настроены на работу с GOP равного размера. Поэтому в большинстве случаев используются равные GOP: например, стандарт телевидения — 28 кадров в GOP.

Важно понимать, что группа без ключевого кадра не имеет смысла. Невозможно воспроизвести видео, находясь в середине GOP.

Группировка в GOP применяется только к кадрам видео. Соответствующие аудио- и текстовые субтитры добавляются к GOP синхронно.

Какова оптимальная длина GOP?

Почему GOP не должен быть слишком длинным? Потому что более длинный GOP может привести к увеличению времени задержки — времени, прошедшего с момента, когда зритель переключил канал с помощью пульта дистанционного управления, до появления изображения нового канала. Если зритель нажимает пульт до завершения предыдущего GOP, он видит устаревшее изображение. Эта проблема может быть критичной для видеоигр или видеозвонков.

Чтобы решить эту проблему, Flussonic использует функцию prepush: он сохраняет каждый GOP в буфере перед отправкой клиенту. Когда клиент подключается к серверу, сервер отправляет первый GOP из буфера, а затем передает поток с временным сдвигом — задержка доставки равна размеру одного GOP, преобразованному в секунды. Когда соединение с сервером прерывается или замедляется, клиент воспроизводит GOP из буфера. Таким образом, видео воспроизводится более равномерно, однако задержка может увеличиваться.

Почему GOP не должен быть слишком коротким?

Потому что более длинные GOP обеспечивают лучшее сжатие.

Разные приложения используют разные длины GOP: обычно они находятся в диапазоне 0,5 – 2 секунд.

Open GOP

В некоторых случаях возможно еще лучше сжать видео, используя так называемые открытые GOP. Открытые GOP содержат P-кадры, которые ссылаются на кадры до ключевого кадра. Это позволяет уменьшить битрейт на 5-7%. Однако открытые GOP могут вызвать проблемы при использовании сегментов.

Бесплатный триал Flussonic Media Server

Отправляя заявку, вы соглашаетесь с правилами и условиями

Пожалуйста, заполните форму для получения бесплатного тестового ключа.

Если вы не получите от нас письмо в течение 30 мин, проверьте в спаме и добавьте наш адрес в избранные контакты.

Email: support@flussonic.com Phone: +7 (717) 272-78-21