Термин
I-кадр
Кадр, закодированный только intra-prediction – декодируется самостоятельно. Точка входа для random access.
I-кадр («intra-coded frame») – полностью самодостаточный видеокадр, цельная картинка, декодируемая без обращения к другим кадрам. Представьте обычный JPEG-снимок, вставленный в видеопоток. В любом видеофайле должен быть минимум один (обычно в самом начале), а в большинстве – по одному раз в несколько секунд.
Их роль – быть точками входа. Без I-кадров видео можно было бы воспроизвести только с самого начала, потому что другие типы кадров (`p-frame`, `b-frame`) описывают себя как маленькую разницу с предыдущими. Когда I-кадры рассыпаны по всему видео, плеер может прыгнуть (seek) к любому из них и начать декодирование оттуда. Так работает прокрутка YouTube, так Netflix даёт пропустить заставку, так зритель, подключившийся посреди live-эфира, получает рабочую картинку за несколько секунд.
Trade-off: I-кадры большие. Кодирование кадра «с нуля» требует обычно в 5–10 раз больше бит, чем P-кадр, и в 15–30 раз больше, чем B-кадр. Поэтому слишком частые I-кадры раздувают файл; слишком редкие – замедляют seek. Стандартный стриминговый компромисс – один I-кадр в 2 секунды (и это же граница HLS/DASH-сегмента). Live-broadcast и ultra-low-latency пушат до одного раз в секунду или чаще. Близкий родственник – `idr` («Instantaneous Decoder Refresh») – это более строгий I-кадр, который ещё и сбрасывает все references; это «чистая» точка random access, обязательная на границах сегментов adaptive streaming.
Считаете параметры для своего продукта?
Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.