foreverkeai 发表于 2022-5-17 15:24:39

Potplayer 截存 png 图片有失真的问题

我一直使用 potplayer 的 “ctrl+E” 来截图,现在我发现一个问题,我的 potplayer 截存的 png 图片,红色部分会有条纹,就像下面这张图里夜神月的眼睛部分。
https://ptpimg.me/8poa65.png

如果截存的是 jpg 格式或者 bmp 格式的话,就不会有这种条纹 (bmp 上传不了,这是 jpg):
https://ptpimg.me/nj3og8.jpg

我的 potplayer 是用 lav 解码,madvr 渲染。如果使用内置 ffmpeg 解码,EVR (CP) 渲染,也是类似情况,且二者红色部分还会有一些差别:
https://ptpimg.me/oqc1z2.png

如果用 VLC 播放器截图,也是一样的问题:
https://ptpimg.me/7pvn9x.png

用 AvsPmod 截图,就没有问题。
https://ptpimg.me/32dv83.png

有大佬知道这是怎么为什么吗?

foreverkeai 发表于 2022-5-17 15:33:44

这是 potplayer 截 png 图放大3倍后的图象,可以看到眼睛部分明显有问题。


这是 AvsPmod 截 png 图放大3倍后的图象,没有问题。


最奇怪的就是,有问题的只有红色区域。我截别的视频的时候,也是红色区域或接近红色的橙红色区域会出现这样的问题。

dtlnor 发表于 2022-5-18 00:01:25

本帖最后由 dtlnor 于 2022-5-18 00:33 编辑

http://tva1.sinaimg.cn/large/005CVjhOgy1h2buhg2431j306y0dtjue.jpg
源指的是没经过滤镜之前的画面(包括madvr以及色彩矫正等滤镜之前的画面),而是仅仅经过lav解码后输出的画面(应该为YUV420)。虽然不太清楚他源画面保存png的UV用什么拉伸的)。比如你1080p屏幕截4k源,你用这个截出来也是4k分辨率
实画面就是经过一堆画质拉满的最优秀算法(指madvr)以及各种拉伸跟色彩矫正后的画面,比如上面的4k片源例子的话,截好了后就是1080p图片
看太快了,好像离题了。会不会就是“不太清楚他源画面保存png的UV用什么拉伸”这个问题?高饱和红在UV面被劣质拉伸了(比如point resize)就显得特别明显呢


dtlnor 发表于 2022-5-18 00:15:14

本帖最后由 dtlnor 于 2022-5-18 00:34 编辑

好,基本确定是了,jpg因为也是yuv420,保存的时候就不需要拉伸了(就是不知道有没有做YC伸张)你用正常的图片浏览器看(或者是avspmod)他会用好算法拉伸UV平面。所以过渡很好。而且从exif信息来看jpg是直接交给lav处理的,而bmp跟png则没有lav的信息,应该是pot直接临近算发放大了两倍


下面这图是我用你的jpg放进pot里面播放,然后用ctrl+E截图为png上传的,可以看到原本jpg没有的红色的“横纹”又出现了。其实就是色度平面的锯齿。


这里我把你的pot版本的png的Cr频道(转换为YUV444)抽出来看

放大到像素大小

就很明显了,4个4个像素一块。potplayer在截图为源画面的时候(并保存为RGB格式的时候)会把YUV420的源对UV使用point resize并转换为RGB保存

foreverkeai 发表于 2022-5-18 01:53:04

本帖最后由 foreverkeai 于 2022-5-18 02:16 编辑

多谢大佬的分析。其实我今天也想过是不是这个问题,然后就试着截了 YUV444 的视频,结果也是一样的问题。比如下面这个,是 littlebakas! 压制的日本人动画博览会第4集,红色部分也是有锯齿的。


这是 jpg,不知道为啥存的是 420:


这是播放界面的截图:


另外,我试过截存实画面,在不缩放的情况下,跟截存原画面效果几乎是一样的,至少我肉眼没看出什么区别。

还有,我截存 BMP 图片的时候,是不会出现 png 图片这种锯齿的。难道 pot 在截存 bmp 和截存 png 的时候,对色度的缩放处理不一样?非常奇怪啊~
附件是截存的 bmp 格式的夜神月。

如果 Cr 色度存在缩放问题的话,Cb 色度应该也有同样的问题吧?可我似乎没有在蓝色区域看到过类似问题,难道只是蓝色看起来没有红色明显?

不知道有没有 RGB 的视频可以截图看看,好像都是 YUV 的视频。


rp88 发表于 2022-5-18 14:52:01

可恶啊,我pot截的menu和endcard看来都劣化了。没精力再重弄了,只能说以后避免了。
影响不大总体稳定持续向好

dtlnor 发表于 2022-5-19 00:20:22

foreverkeai 发表于 2022-5-18 01:53
多谢大佬的分析。其实我今天也想过是不是这个问题,然后就试着截了 YUV444 的视频,结果也是一样的问题。比 ...
看來是potplayer截圖這個功能有問題

已知問題:
1. png以及jpg都是無視源特性,強制轉換為YUV420後再處理的(jpg直接保存為yuv420格式,png對UV平面進行point resize然後轉rgb24)
2. bmp對uv平面進行了算法不明的UV平面拉伸,目視效果最好。
3. 源畫面的截圖跟實畫面的截圖有一樣的行為(1,2的操作)
ps:如果你的源畫質非常好,那麼madvr做的優化本來就不會那麼起眼,源跟實畫面的區別自然小
未知問題:
jpg以及png的保存應該是 源畫面/實畫面 -> YUV420 -> jpg/png(其中png在YUV->RGB的時候採用了point resize)
但bmp的保存流程不清楚在哪一步,存在以下幾種可能:
1. 源畫面/實畫面 用未知算法拉伸或者不拉伸UV平面,轉RGB24,保存bmp
2. 源畫面/實畫面 -> YUV420 -> RGB(UV平面進行了算法未知的正確拉伸)
理性來說應該是1,但鑒於png的騷操作,未必不會是看了血壓大的2.

foreverkeai 发表于 2022-5-21 02:20:45

本帖最后由 foreverkeai 于 2022-5-21 02:35 编辑

我将之前截存的 bmp 格式的夜神月图片,红色分别跟蓝色和绿色对调,然后各自用 potplayer 播放并截存为 png 图片,放大12.5倍并截屏,跟原始的 bmp 图片放大截屏进行比较,如下所示:

原始bmp图片放大截屏(上)————————截存的png图片放大截屏(下)






可以看到都存在类似问题。所以 potplayer 截存 png 图片的锯齿问题,应该是广泛存在的,只不过红色看起来比较明显而已。

总的来说,potplayer 的截图就是个坑啊。截存 png 图片,会出现 劣质拉伸 甚至 降采样+劣质拉伸 的问题;截存 jpg 图片,是有损压缩;截存 bmp 图片,文件太大,而且很多网站不支持上传 bmp 图片。似乎只有 截存 bmp 再转 png 了~
页: [1]
查看完整版本: Potplayer 截存 png 图片有失真的问题