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