gpt4 book ai didi

ffmpeg - 为什么 ffmpeg yuv420p 转换会影响超过 2x2 block 的像素?

转载 作者:行者123 更新时间:2023-12-04 23:12:04 29 4
gpt4 key购买 nike

为什么ffmpeg中的YUV420转换似乎在 2x2 像素 block 之外运行?

# Create a test image.
ffmpeg -f lavfi -i testsrc=duration=1:size=160x120:rate=1 -y original.png

# Create a new image after converting to YUV420 and back to RGB.
ffmpeg -i original.png -pix_fmt yuv420p -f rawvideo - | \
ffmpeg -f rawvideo -pix_fmt yuv420p -s 160x120 -i - -pix_fmt rgb24 -y yuv420.png

# Compare upscaled versions of the two images.
convert original.png -interpolate Nearest -filter point -resize 800% original.scaled.png
convert yuv420.png -interpolate Nearest -filter point -resize 800% yuv420.scaled.png
display original.scaled.png yuv420.scaled.png # press spacebar to advance
请注意,即使在距离水平条 2 个像素的地方,像素也是如何修改的
在图像的下部。
查看结果:
enter image description here
和特写:
enter image description here

最佳答案

解决办法是引入-sws_flags为色度二次采样指定非默认过滤选项:

ffmpeg -i original.png -sws_flags 'area+accurate_rnd+full_chroma_int' \
-pix_fmt yuv420p -f rawvideo - \
| ffmpeg -f rawvideo -pix_fmt yuv420p -s 160x120 -i - \
-sws_flags 'neighbor+accurate_rnd+full_chroma_int' -pix_fmt rgb24 -y yuv420.png
(默认情况下,色度重采样使用双三次滤波器,不提供精确的舍入,并且使用了一些较差的插值函数。)
另见 Why is ffmpeg's conversion to YUV420 so poor?其中显示默认选项导致往返转换 RGB -> YUV420 -> RGB 中的质量更差 (PSNR)。

关于ffmpeg - 为什么 ffmpeg yuv420p 转换会影响超过 2x2 block 的像素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64692051/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com