1)Что такое I-фреймы, P-фреймы и B-фреймы?
2)Что такое рамка РДЭ? В чем отличие от обычных I-кадров?
3)Что такое Республиканская партия? Как установить значение gop_size, чтобы улучшить качество изображения?
4)OpenGOP & Что означает CloseGOP?
5) Что такое PTS и DTS в видеопотоках?
Я кадр: внутри картинка, внутрикодированный кадр.IКадры обычно каждыйGOPпервый кадр из,Его можно рассматривать как результат сжатия изображения.,Как говорилось в предыдущем выпускеКодирование сжатия изображений HEIF,Фактически, его можно понимать как I-кадр в последовательности процесса кодирования видео по стандарту H.265/HEVC. При декодировании нужны только данные этого кадра (т.к. он содержит полную картинку). эффективно предотвращать накопленное распространение ошибок межкадрового предсказания.
* Сам I-кадр может быть распакован в одно полное видеоизображение с помощью алгоритма декомпрессии видео, поэтому I-кадр удаляет избыточную информацию видеокадра в пространственном измерении.
Особенности рамы:
1) I-кадр представляет собой кадр, закодированный с полным сжатием кадра;
2) При декодировании полное изображение можно восстановить, используя только данные I-кадра;
3) I-кадр описывает детали фона изображения и движущиеся объекты;
4) I кадры генерируются без обращения к другим картинкам;
5) I-кадр является опорным кадром P-кадра и B-кадра (его качество напрямую влияет на качество последующих кадров в той же группе);
6) I-кадр является основным кадром (первым кадром) группы кадров GOP, и в группе GOP имеется только один I-кадр;
7) В I кадрах нет необходимости учитывать векторы движения;
8) Объем информации в данных, занимаемых I кадрами, относительно велик.
P-кадр: кадр с предсказанием, кадр кодирования с прямым предсказанием.Путем полного удаления временной избыточной информации из ранее закодированных кадров в последовательности изображений.Для сжатия объема передаваемых данных кодируются изображения,Также называется прогнозируемыми кадрами. P-кадр представляет собой разницу между этим кадром и предыдущим кадром.,P-кадры можно использовать в качестве опорных кадров для последующего кодирования изображения. При декодировании нужно наложить разницу, определенную в этом кадре, на ранее закешированную картинку.,Создайте финальную картинку. (т. е. разностная система,P-кадр не содержит полных данных изображения,Только данные, которые отличаются от предыдущего кадра,Поэтому для декодирования используются значения пикселей эталонного изображения. )
* P-кадр должен ссылаться на I-кадр или P-кадр перед ним, чтобы декодировать его в полное видеоизображение.
Особенности рамки P:
1) P-кадр использует компенсацию движения для передачи разности и вектора движения (ошибки прогнозирования) между ним и предыдущим I- или P-кадром;
2) Во время декодирования значение прогнозирования и ошибка прогнозирования в I-кадре должны быть суммированы, прежде чем можно будет восстановить полное изображение P-кадра;
3) P-кадр принадлежит к межкадровому кодированию прямого предсказания, которое относится только к предыдущему I-кадру или ближайшему к нему P-кадру;
4) P-кадр может быть опорным кадром следующего за ним P-кадра или может быть опорным кадром B-кадра до и после него;
5) Из-за дифференциальной передачи сжатие P кадров относительно высокое.
Рамка B: двунаправленная interpolated prediction кадр, кадр кодирования двунаправленной интерполяции с предсказанием.Учитывает как ранее закодированный кадр исходной последовательности изображений, так и,Учет временной избыточности между кодированными кадрами, следующими за последовательностью исходного изображения.,Для сжатия объема передаваемых данных кодируются изображения,Также называется кадрами с двунаправленным прогнозированием. Для декодирования B-кадров,Вам не только нужно получить предыдущий кэшированный экран,Также нужно расшифровать картинку,Итоговое изображение получается путем наложения предыдущего и последующего изображения с данными этого кадра.
* Кадр B должен ссылаться на предыдущий кадр I или кадр P и следующий кадр P для создания полного видеоизображения. Кадр P и кадр B удаляют избыточную информацию видеокадра во временном измерении.
Особенности B-рамы:
1) Кадр B прогнозируется на основе предыдущего кадра I или P и следующего кадра P;
2) Кадр B передает ошибку предсказания и вектор движения между ним и предыдущим кадром I или P и следующим кадром P;
3) B-кадр представляет собой кадр двунаправленного кодирования с предсказанием;
4) Кадр B имеет самую высокую степень сжатия, поскольку он отражает только изменения движущихся объектов между опорными кадрами, и прогноз получается более точным;
5) Кадр B не является опорным кадром и не вызывает распространения ошибок декодирования.
IDR (изображение мгновенного обновления декодирования), кадр обновления мгновенного декодирования, первый кадр последовательности является кадром IDR. Кадры IDR также являются разновидностью I-кадров, так в чем же разница между кадрами IDR и обычными I-кадрами?
Все кадры после кадра IDR не могут ссылаться на содержимое кадра до кадра IDR, а для обычных кадров I последующие кадры P и B могут ссылаться на другие кадры I перед обычным кадром I; Функция кадра IDR заключается в немедленном обновлении для предотвращения распространения ошибок. Начиная с кадра IDR, пересчитывается новая последовательность и начинается кодирование. Обычные I-кадры не имеют возможности произвольного доступа. Эту функцию берет на себя IDR. В декодере после получения кадра IDR буфер опорного кадра немедленно очищается, и кадр IDR будет использоваться в качестве опорного кадра.
При воспроизведении видео плеер обычно поддерживает случайный поиск (перетаскивание) в указанную позицию, и плееру удобнее всего напрямую выбирать кадр IDR рядом с указанной позицией для воспроизведения, поскольку можно четко знать, что все кадры после Кадр IDR не является «Другими I-кадрами», прежде чем на него будут ссылаться, чтобы избежать более сложного обратного анализа.
Например, при перекодировании одного и того же видео с несколькими скоростями передачи данных, если вы указываете выравнивание кадров IDR, это означает, что кадры IDR всех выходных видео точно синхронизируются с точки зрения моментов времени и содержимого кадра. В это время проигрыватель может это сделать. добиться плавного переключения многобитных видео, чтобы не было явной задержки переключения.
GOP (группа изображений) — это группа изображений. GOP — это группа непрерывных изображений. GOP — это набор изображений в последовательности, используемый для обеспечения произвольного доступа. Первое изображение GOP должно быть I-кадром, что гарантирует, что GOP не нужно ссылаться на другие изображения и может быть декодирована независимо.
Обычно при настройке параметров кодера необходимо задать значение gop_size, которое представляет собой количество кадров между двумя I-кадрами. Кадром с наибольшей емкостью в GOP является I-кадр, поэтому, условно говоря, чем больше установлен gop_size, тем лучше будет качество всего изображения. Однако окончание декодирования должно начинаться с первого полученного I-кадра. его можно правильно декодировать из исходного изображения, иначе оно не будет декодировано правильно. Среди советов по улучшению качества видео есть еще один совет: используйте больше B-кадров. Использование B-кадров может сэкономить много места. Сэкономленное пространство можно использовать для сохранения большего количества I-кадров, чтобы его можно было передавать с той же скоростью передачи данных. Лучшее качество изображения, поэтому в соответствии с различными бизнес-сценариями размер gop_size должен быть установлен соответствующим образом для получения видео более высокого качества.
OpenGOP:одинGOPОпределенный кадр в нем зависит от соседнего кадра при декодированииGOPнесколько кадров внутри,Как показано ниже,Два кадра B в конце должны полагаться на кадр I в следующей GOP для декодирования.
ClosedGOP:Межкадровое предсказание – этоGOPв ходе выполнения,На рисунке ниже показаны два примера CloseGOP.
В сценариях адаптивного потокового мультимедиа, таких как HLS и DASH, необходимо использовать ClosedGOP для обеспечения плавного переключения между потоками. Кроме того, аппаратные декодеры некоторых мобильных телефонов не могут хорошо поддерживать OpenGOP, и OpenGOP также можно закрыть напрямую.
DTS в основном используется для декодирования видео. Его полное название — Decoding Time Stamp, которое представляет собой временную метку декодирования.
PTS в основном используется для синхронизации и вывода видео на этапе декодирования. Его полное название — Presentation Time Stamp, которое представляет собой временную метку отображения.
При отсутствии B-кадров порядок вывода DTS и PTS одинаков. Поскольку двунаправленное предсказание B-кадров нарушает порядок декодирования и отображения, как только B-кадр существует, PTS и DTS неизбежно будут разными. В FFmpeg структура AVPacket используется для описания сжатых данных перед декодированием или кодированием, а структура AVFrame используется для описания исходных данных после декодирования или перед кодированием. Для видео AVFrame — это кадр видео. Когда этот кадр отображается пользователю, зависит от его PTS. DTS является членом AVPacket, указывающим, когда сжатый пакет должен быть декодирован. Если кодирование каждого кадра видео выполняется последовательно (порядок отображения), то время декодирования и отображения должно быть согласованным, но фактически в большинстве случаев кодирования. и стандартами декодирования, порядок кодирования и порядок ввода несовместимы, поэтому необходимы две разные временные метки, PTS и DTS.