找回密码
 立即注册
查看: 10176|回复: 66

关于 mpv 使用 icc profile 默认行为及是否应该无脑开启 icc-profile-auto 的讨论

  • TA的每日心情
    无聊
    6 天前
  • 签到天数: 146 天

    [LV.7]常住居民III

    23

    主题

    623

    回帖

    3097

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    402424
    sommio 发表于 2023-3-6 05:37:37 | 显示全部楼层 |阅读模式
    本帖最后由 sommio 于 2023-3-20 03:50 编辑

    因为不想再偏楼了,就把这个废贴利用了吧

    伽玛补偿行为
    废话:伽玛补偿是补偿视频伽玛到某个特定伽玛曲线的行为
    在使用正确的 icc profile,并且 vo_gpu 获取了正确的对比度(mpv 中的 black level 控制)时,对于 YCbCr 内容 mpv 默认会把视频伽玛补偿到 bt.1886
    可能反直觉的是,bt.1886 并不总比 gamma2.2 更暗,尤其是暗场上,虽然整体亮度仍然低于 gamma2.2,在低对比度时它甚至总高于 srgb

    因此当 mpv 将伽玛补偿到 bt.1886 时,并不会导致丢失暗场,反而会导致暗场更亮,呈现出“灰黑色”质感
    但如果 vo_gpu 没有从配置文件中获取对比度,它会认为对比度为无限(zero black level),并将伽玛补偿到暗场比 gamma2.2 更暗的 gamma2.4
    在 vo_gpu_next 中,此值是 1000:1 且目前无法通过 icc-force-contrast 覆盖,当然这并不意味着 vo_gpu_next 无法使用从配置文件中获取的对比度

    此外通过文档可知当启用 vf=format:gamma 滤镜时,mpv 会将 gamma 补偿到你想要的目标,并非是 bt.1886  -> TRC
    这个选项类似 MadVR 中的 color & gamma -> enable gamma processing
    对于 bt.1886 以外的补偿目标对比度是无意义的,因此也无需担忧是否正确设置了对比度

    bt.1886 暗场要比 gamma2.2 亮很多

    虚线-gamma2.2/2.4, 红-srgb, 蓝-1000:1 对比度 bt.1866,  绿-5000:1 对比度 bt.1866

    无配置文件时的 icc-profile-auto
    严格来说并不存在无配置文件的情况,Windows 和 *nix 发行版都有预设的配置文件
    在 Windows 中它位于 C:/Windows/System32/spool/drivers/color/sRGB Color Space Profile.icm
    而多数基于 colord 进行色彩管理的发行版会根据 EDID 生成配置文件并默认启用

    前者等效于 target-trc=srgb,但任何 target-trc 目标都不能使用 icc-force-contrast 调整对比度
    后者的可靠性取决于制造商,至少在我的设备上它表现得不算太差,推荐在暗场丰富的番中对比测试

    但总得来说,如果你没有根据 EDID 生成的配置文件或者喜欢 bt.1886 的观感,没有太大必要开启它
    多数情况下预设配置文件的行为是不可预测的,暗部可能看起来会更亮,也可能更暗
    对于喜欢 bt.1886 观感且想要 hack target-trc=gamma2.2 选项的人,我在附件里上传了一份使用 gamma2.2 的 sRGB 配置文件
    默认情况下它的行为与 target-trc=gamma2.2 相同,但可通过 icc-force-contrast 调整对比度(mpv vo_gpu 中的 black level 控制)





    本帖子中包含更多资源

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

    x
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-12-23 15:09
  • 签到天数: 42 天

    [LV.5]常住居民I

    5

    主题

    471

    回帖

    195

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    366151
    苏辰汐 发表于 2023-3-7 22:37:13 | 显示全部楼层
    本帖最后由 苏辰汐 于 2023-3-7 22:44 编辑

    大致是没有问题的,只提一点:当想要在mpv上使用--vo=gpu-next --gpu-api=vulkan --target-colorspace-hint参数直通hdr时不要使用icc配置文件,参考 https://github.com/mpv-player/mp ... ecomment-1268923202

    感兴趣的可以尝试通过条件配置为hdr视频切换pq曲线的icc配置文件看下是否可用,不过由于--target-colorspace-hint参数只支持在播放器初始化时应用,不确定这有用。手上没有对应的icc配置文件无法测试

    Edit:突然想到通过条件配置为HDR禁用ICC色彩管理一样可以测试此方案是否可行。经测试后的结果是可以的,条件配置参考:
    1. [HDR-PASS]
    2. profile-cond=p["video-params/sig-peak"] > 1
    3. profile-restore=copy
    4. icc-profile=""
    5. icc-profile-auto=no
    复制代码




    回复 支持 0 反对 2

    使用道具 举报

  • TA的每日心情
    无聊
    6 天前
  • 签到天数: 146 天

    [LV.7]常住居民III

    23

    主题

    623

    回帖

    3097

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    402424
    sommio  楼主| 发表于 2023-3-7 21:49:31 | 显示全部楼层
    本帖最后由 sommio 于 2023-3-8 22:46 编辑

    水贴复活,手动 @boday,原谅我的冒味
    在大佬的[VCB-Studio 科普教程 2.3] 跨平台播放器 mpv 配置入门中,icc-profile-auto 被认为是
    > mpv 默认不对视频进行色彩管理。即使你没有使用校色仪对屏幕进行过校色
    > 对于原生色域接近某一标准色域(如 sRGB 或 DCI-P3 D65)的屏幕来说
    > 开启色彩管理仍然可以获得更准确的颜色,因此,建议始终将色彩管理开启:

    但主要问题在于,无脑开启 icc-profile-auto 后 mpv 的画面看上去跟其它播放器非常不同
    Windows 只有参考 sRGB 和软打烊配置文件,DCI-P3 全是错的,色彩能准确多少完全是玄学
    实际上它的作用只是把视频“校正”到 gamma2.4/bt.1886,但社区显而不太喜欢这个 TRC
    个人浅见它不适合出现在这种带有官方性质的文章中
    回复 支持 0 反对 1

    使用道具 举报

    该用户从未签到

    31

    主题

    1157

    回帖

    0

    VC币

    高级会员

    Rank: 4

    积分
    21678
    hsmms 发表于 2023-3-7 23:28:17 | 显示全部楼层
    本帖最后由 hsmms 于 2023-3-7 23:35 编辑

    我觉得问题跟本不是什么是否开启icc-profile-auto,而是应该去了解bt.1886到底是什么。

    1.bt.1886虽然基于gamma 2.4但是它并等同于gamma 2.4。
    2.bt.1886是基于显示设备的黑电平而不是针对观看环境设计的。
    3.bt.1886会过份的抬高暗部亮度。

    所以问题的应该是使用bt.1886还是gamma 2.2/2.4


    我个人建议

    对于黑位亮度过低的设备可以考虑使用bt.1886

    对于黑位亮度过高的设备建议使用gamma 2.4

    对于黑位亮度低但对比度高的设备可以使用gamma 2.2或者bt.1886


    ps:以上内容只针对没有校准下的设备mpv下应该用那种eotf曲线,这样的好处就是黑位亮度不会过份的低或者高。


    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    开心
    5 天前
  • 签到天数: 630 天

    [LV.9]以坛为家II

    3

    主题

    198

    回帖

    0

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    73589
    Starlight 发表于 2023-3-8 00:14:57 | 显示全部楼层
    行为是先应用前者的EOTF再应用后者的OETF,两者一致时不处理

    一个简单的测试
    vf=format=gamma=linear
    target-trc=linear

    达芬奇或者 aces-ctl 对 rec.709 使用 0 黑位的 bt.1886 (gamma2.4) 作为 OETF
    然而 mpv 使用带 1/1000 黑位的 bt.1886 作为 EOTF
    在这样的前提下二者的行为已经出现分歧,我认为对再之后的 OETF 做调整 (icc, target-trc) 是没有意义的





    mpv --target-trc=linear

    本帖子中包含更多资源

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

    x
    回复 支持 0 反对 1

    使用道具 举报

    该用户从未签到

    31

    主题

    1157

    回帖

    0

    VC币

    高级会员

    Rank: 4

    积分
    21678
    hsmms 发表于 2023-3-8 00:35:20 | 显示全部楼层
    Starlight 发表于 2023-3-8 00:14
    行为是先应用前者的EOTF再应用后者的OETF,两者一致时不处理

    一个简单的测试

    如果mpv是强制使用1/1000 黑位的 bt.1886 作为 EOTF曲线的化那我不推荐使用bt.1886。

    原因我上面也说了:bt.1886是基于显示设备的黑电平而不是针对观看环境设计的。



    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    无聊
    6 天前
  • 签到天数: 146 天

    [LV.7]常住居民III

    23

    主题

    623

    回帖

    3097

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    402424
    sommio  楼主| 发表于 2023-3-8 01:02:32 | 显示全部楼层
    本帖最后由 sommio 于 2023-3-8 05:05 编辑
    Starlight 发表于 2023-3-8 00:14
    行为是先应用前者的EOTF再应用后者的OETF,两者一致时不处理

    一个简单的测试

    相关讨论移至: issue:11422
    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    开心
    5 天前
  • 签到天数: 630 天

    [LV.9]以坛为家II

    3

    主题

    198

    回帖

    0

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    73589
    Starlight 发表于 2023-3-8 01:09:14 | 显示全部楼层
    我测的就是gpu-next,gpu不知道什么情况

    黑位影响的不只是暗部,你可以用这个放 bt.2020的那个 EVA Q

    https://github.com/natural-harmonia-gropius/hdr-toys

    target-prim=bt.2020
    glsl-shader=~~/shaders/hdr-toys/transfer-function/bt1886_to_linear.glsl
    glsl-shader=~~/shaders/hdr-toys/gamut-mapping/matrix.glsl
    glsl-shader=~~/shaders/hdr-toys/transfer-function/linear_to_bt1886.glsl

    颜色会比 gpu-next 鲜艳一些,把两个 bt.1886 的 L_B 改成 0.001 就和 gpu-next 一样了
    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    无聊
    6 天前
  • 签到天数: 146 天

    [LV.7]常住居民III

    23

    主题

    623

    回帖

    3097

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    402424
    sommio  楼主| 发表于 2023-3-8 01:44:06 | 显示全部楼层
    Starlight 发表于 2023-3-8 01:09
    我测的就是gpu-next,gpu不知道什么情况

    黑位影响的不只是暗部,你可以用这个放 bt.2020的那个 EVA Q

    大佬方便去 mpv-player/mpv 提 issue 讨论这个问题吗?
    我的知识水平不足以理解哪个才是对 bt.1886 正确诠释
    回复 支持 0 反对 1

    使用道具 举报

    该用户从未签到

    31

    主题

    1157

    回帖

    0

    VC币

    高级会员

    Rank: 4

    积分
    21678
    hsmms 发表于 2023-3-8 01:45:57 | 显示全部楼层
    本帖最后由 hsmms 于 2023-3-8 01:48 编辑
    sommio 发表于 2023-3-8 01:02
    大佬方便测试一下 vo_gpu_next 吗?按 haasn 的说法,它应该是 0

    怎么能以0作为黑位亮度,目前市面上就不存在黑位是0的设备。那么1886一切修正都会基于黑位0进行修正这样对于实际设备来说会导致黑位亮度过低。

    这是mpv 的1886(基于黑位0)



    这是madvr下的1886(黑位基于显示设备实际黑位亮度)



    本帖子中包含更多资源

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

    x
    回复 支持 0 反对 1

    使用道具 举报

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

    本版积分规则

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