Можно ли вообще кодировать без потерь в h264? Под без потерь я подразумеваю, что если я скормлю ему серию кадров и закодирую их, а затем, если я извлеку все кадры из закодированного видео, я получу точно такие же кадры, как и на входе, пиксель за пикселем, кадр за кадром . Это действительно возможно? Возьмите этот пример:
Я генерирую кучу кадров, затем кодирую последовательность изображений в несжатый AVI (с чем-то вроде virtualdub), затем применяю h264 без потерь (файлы справки утверждают, что параметр --qp 0 обеспечивает сжатие без потерь, но я не уверен, что это означает отсутствие потерь в любой точке процесса или просто квантование без потерь). Затем я могу извлечь кадры из получившегося видео h264 с помощью чего-то вроде mplayer.
Сначала я попробовал с Handbrake, но оказалось, что он не поддерживает кодирование без потерь. Я пробовал x264, но он вылетает. Это может быть связано с тем, что мой исходный файл AVI находится в цветовом пространстве RGB вместо YV12. Я не знаю, как передать серию растровых изображений YV12 и в каком формате для x264, поэтому я даже не могу попробовать.
Подводя итог, что я хочу знать, есть ли способ уйти от
Серия растровых изображений без потерь (в любом цветовом пространстве) -> некоторое преобразование -> кодирование h264 -> декодирование h264 -> некоторое преобразование -> исходная серия растровых изображений без потерь
Если есть способ добиться этого?
РЕДАКТИРОВАТЬ: есть ОЧЕНЬ веская точка зрения о том, что H264 без потерь не имеет особого смысла. Я прекрасно понимаю, что не могу сказать (только своими глазами) разницу между несжатым клипом и другим, сжатым с высокой скоростью в H264, но я не думаю, что это не бесполезно. Например, это может быть полезно для хранения видео для редактирования, не занимая при этом огромных объемов места, не теряя качества и не тратя слишком много времени на кодирование при каждом сохранении файла.
ОБНОВЛЕНИЕ 2: Теперь x264 не падает. Я могу использовать в качестве исходников либо avisynth, либо yv12 lagarith без потерь (чтобы избежать предупреждения о сжатии цветового пространства). Однако даже с --qp 0 и источником rgb или yv12 я все еще получаю некоторые различия, минимальные, но присутствующие. Это беспокоит, потому что вся информация, которую я нашел о прогнозирующем кодировании без потерь (--qp 0), утверждает, что все кодирование должно быть без потерь, но я не могу это проверить.