AaronFeng753 / Waifu2x-Extension-GUI

Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, Real-ESRGAN, Real-CUGAN, RTX Video Super Resolution VSR, SRMD, RealSR, Anime4K, RIFE, IFRNet, CAIN, DAIN, and ACNet.
https://patreon.com/aaronfeng
Other
13.19k stars 884 forks source link

改进视频色彩管理 #593

Closed tyhj796 closed 8 months ago

tyhj796 commented 9 months ago

https://github.com/AaronFeng753/Waifu2x-Extension-GUI/issues/593#issuecomment-1983834442


问题描述 今天测试了一下该软件对yuv444视频的处理。发现一个问题。我的诉求是给软件输入一个yuv444的视频,然后希望软件在放大时不损失色彩信息,并且最终输出yuv444的视频作为结果。 image 一开始,我在图中红圈处,将像素格式改为yuv444p,软件确实输出了yuv444的视频。 但是我注意到一个细节。我不太清楚这个软件是怎么运作的,但看上去软件似乎把我输入的源视频首先转换为一个CFR MP4的中间视频,然后对中间视频进行进一步的处理。然后我发现即使将输出像素格式改为yuv444p,但是软件在转换中间视频的时候,会将我提供的yuv444的源视频转换为yuv420的中间视频。这显然会丢失色彩信息,并且带来较为严重的性能损失。

如何复现bug 只要按照我上图里的配置,就能发现软件转换出的中间视频是yuv420的

应有的表现 image 我试了下,只要在图中红框里加上 "-pix_fmt yuv444p"参数,就可以解决这个问题。此时软件转换出的中间视频也是yuv444格式的,且经过检查,转换结果没有性能损失问题

补充说明 我觉得应该把-pix_fmt yuv444p 这个参数在图形界面做出来,而不是非要填参数来实现功能。毕竟这个问题挺隐秘的,很多时候想不到,即使最终输出yuv444了,但是中间视频居然是yuv420的

AaronFeng753 commented 9 months ago

感谢建议,后续会改进软件处理视频时对各种色彩格式的兼容问题

AaronFeng753 commented 8 months ago

目前的计划是增加一个选项(默认启用), 以后在视频处理的全过程中与源视频同步pix_fmt, 或者使用用户自定义的

AaronFeng753 commented 8 months ago

*开发中 2024-03-07_19-27-01

AaronFeng753 commented 8 months ago

✅做好了,等下次更新就行, 能自动抓取原视频的下列色彩信息, 并且处理视频的全过程中都会应用这些色彩信息

2024-03-07_23-59-24

AaronFeng753 commented 8 months ago

最新BETA版已添加 "视频色彩管理"

AaronFeng753 commented 8 months ago

默认未启用,需要去视频设置手动启用