Я пытаюсь захватить различные кадры в видеофайлах с кодировкой x264 в png
файлы (в формате python
), а затем сравнить их качество:
cap = cv2.VideoCapture(filename);
//get frame_number for saving, and save the frame
cap.set(cv2.CAP_PROP_POS_FRAMES,frame_no);
ret, frame = cap.read()
cv2.imwrite(dir_path+'uniform_frame_'+str(frame_no)+".png", frame);
Теперь мне интересно, если я получу I-Frame , значит ли это, что он имеет более высокое качество, чем другие кадры, например P-кадры и B-кадры ? (по своей сути ключевые кадры не сжимаются, поэтому они должны иметь более высокое качество и меньше шума).
«I, B и P» не относятся к просмотренным кадрам, они относятся к закодированным, сохраненным формам кадров. Однако кадр закодирован в файле или потоке, когда он появляется на экране или извлекается как неподвижный, он представляет собой полный кадр, реконструированный из информации IBP по мере необходимости.
Внутренние кадры (I-кадры, ключевые кадры) не зависят от других кадров — они содержат полную информацию для восстановления изображения кадра. Нет необходимости в чтении других фреймов и вычислении из них.
Так что дело не в качестве , а в скорости . С другой стороны, чем больше внутренних кадров, тем больше размер файла. (Известный компромисс скорости для пространства.)
Внутренние кадры предпочтительно используются в большинстве медиаплееров для так называемого быстрого поиска (быстрого из-за пропуска необходимости чтения других кадров и вычислений из них) - см., например
View -> Options -> Tweaks -> Fast seek (on keyframe)
в Media Player Classic (из K-Lite Codec Pack ):
Добавление большего количества внутренних кадров важно для относительно медленных устройств (например, смартфонов), потому что после перехода к невнутреннему кадру они воспроизводили безобразно окрашенное и прерывистое видео , пока встречаются со следующим внутренним кадром — так что для общей плотности 1 внутренний кадр на 250 кадров и 25 кадров в секунду пользователь может ждать почти 10 секунд для восстановления изображения.
I-кадры — это несжатые кадры, на которые ссылаются кадры p и b для сжатия. Да у меня кадры более качественные.
Гьян