找回密码
 立即注册
查看: 2304|回复: 7

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

  • TA的每日心情
    无聊
    2022-1-24 22:31
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    4

    主题

    100

    回帖

    324

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    60214

    崭露头角新人登场

    foreverkeai 发表于 2022-5-17 15:24:39 | 显示全部楼层 |阅读模式
    我一直使用 potplayer 的 “ctrl+E” 来截图,现在我发现一个问题,我的 potplayer 截存的 png 图片,红色部分会有条纹,就像下面这张图里夜神月的眼睛部分。


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


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


    如果用 VLC 播放器截图,也是一样的问题:


    用 AvsPmod 截图,就没有问题。


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

    使用道具 举报

  • TA的每日心情
    无聊
    2022-1-24 22:31
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    4

    主题

    100

    回帖

    324

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    60214

    崭露头角新人登场

    foreverkeai  楼主| 发表于 2022-5-17 15:33:44 | 显示全部楼层
    这是 potplayer 截 png 图放大3倍后的图象,可以看到眼睛部分明显有问题。


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


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

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-4 00:11
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    45

    主题

    506

    回帖

    126

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    155433
    dtlnor 发表于 2022-5-18 00:01:25 | 显示全部楼层
    本帖最后由 dtlnor 于 2022-5-18 00:33 编辑


    源指的是没经过滤镜之前的画面(包括madvr以及色彩矫正等滤镜之前的画面),而是仅仅经过lav解码后输出的画面(应该为YUV420)。虽然不太清楚他源画面保存png的UV用什么拉伸的)。比如你1080p屏幕截4k源,你用这个截出来也是4k分辨率
    实画面就是经过一堆画质拉满的最优秀算法(指madvr)以及各种拉伸跟色彩矫正后的画面,比如上面的4k片源例子的话,截好了后就是1080p图片

    看太快了,好像离题了。会不会就是“不太清楚他源画面保存png的UV用什么拉伸”这个问题?高饱和红在UV面被劣质拉伸了(比如point resize)就显得特别明显呢


    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-4 00:11
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    45

    主题

    506

    回帖

    126

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    155433
    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保存

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    无聊
    2022-1-24 22:31
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    4

    主题

    100

    回帖

    324

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    60214

    崭露头角新人登场

    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 的视频。


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    开心
    2016-7-16 15:56
  • 签到天数: 1 天

    [LV.1]初来乍到

    10

    主题

    197

    回帖

    110

    VC币

    高级会员

    Rank: 4

    积分
    30876
    rp88 发表于 2022-5-18 14:52:01 | 显示全部楼层
    可恶啊,我pot截的menu和endcard看来都劣化了。没精力再重弄了,只能说以后避免了。
    影响不大总体稳定持续向好
    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-4 00:11
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    45

    主题

    506

    回帖

    126

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    155433
    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.
    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    无聊
    2022-1-24 22:31
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    4

    主题

    100

    回帖

    324

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    60214

    崭露头角新人登场

    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 了~

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复 支持 0 反对 1

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表