Я использую очень агрессивное сжатие видео, например -crf 51
. Я использую это для «художественного» эффекта, поэтому то, что я делаю, может не иметь смысла с обычной точки зрения сжатия видео.расширенное управление сжатием ffmpeg
До сих пор я использовал только основное управление сжатием, используя только флагов -crf
или -b:v
. Результаты выглядят так: ffmpeg делит изображения на квадратные пятна и делает плавные аппроксимации внутри патчей. Это дает два элемента управления процессу: размер патча и агрессивность сглаживания в патчах.
Обнаружено, что ffmpeg использует оба параметра в некоторой степени, но, как представляется, абсолютный максимальный размер патча в пикселях, за которыми он не будет идти независимо от размера кадра. После этого он будет только увеличивать сжатие, уменьшая детали внутри патчей.
Это неоптимально для видео высокого разрешения, где это эквивалентно уменьшению разрешения. Проблема особенно заметна на фрактальных изображениях, которые имеют большую безликую область, а также области высокой детализации.
Как сообщить ffmpeg об увеличении максимального размера патча и сохранить более подробную информацию в патчах?
Спасибо. Вы говорите, как этот тип сжатия работает, есть ли другой тип, который смотрит на более крупные структуры? Я ожидал, что вейвлет-компрессия будет работать на кусках лагерей. Может, снежный кодек? –
Я думаю, что снег даст вам меньше блокирующих артефактов из-за его перекрывающихся преобразований. Вы можете написать код. Разделите изображение на цветные плоскости. Выполните DCT любого размера, который вы хотите, квантовать коэффициенты. Затем переверните. – szatmary