Eksperymentuję z ffmpeg i przestrzeniami kolorów.

O ile rozumiem, w kodowaniu yuv420 informacje o barwie są kompresowane, podczas gdy informacje o lumie nie powinny.

To powiedziawszy, biorąc pod uwagę bezstratny kodek, spodziewałem się, że prosty gradient czerni do bieli będzie pasmowy, ale tak nie jest.

Na Linuksie najprostszym eksperymentem, jaki zrobiłem, było wyświetlenie szarego gradientu bez pasm i przechwycenie go za pomocą ffmpeg w ten sposób:

ffmpeg -f x11grab -framerate 60 -video_size 1920x1080 -i :0.0+1920,0 -pix_fmt yuv420p  -f xv /dev/null

... ale niestety dostaję to (ffmpeg po lewej):

zrzut ekranu

Ten sam problem pojawia się, gdy koduję w x264 z yuv420p.

Zastanawiam się, czy jest to oczekiwane i dlaczego?

Antonio
źródło