找回密码
 立即注册
楼主: wrwsdw

想问下各位mpv挂载icc是按gamma 2.2还是2.4校准…

该用户从未签到

9

主题

278

回帖

4393

VC币

白金会员

Rank: 12Rank: 12Rank: 12

积分
74895
boday 发表于 2023-2-24 17:18:08 | 显示全部楼层
wrwsdw 发表于 2023-2-24 16:48
感谢各位dalao的解答
我可否理解为由于mpv默认bt.1886的缘故,不管怎么校准可能都难以达到很精确的效果
这 ...

否。或者说,取决于你所谓的“精确的效果”是什么。

mpv 之所以选择 bt.1886 就是因为它认为这是在大多数情况下正确的结果啊。

当然了,实际上不可能每一部片子的后期制作都完全遵守了这个标准,年代早一点的可能很多都疏于色彩管理……但你最后总得选一个标准嘛。

最后你也可以说,我就是看着这个结果不对,那你当然也可以自己调整,毕竟自己看得高兴才是最重要的。


回复

使用道具 举报

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

    [LV.5]常住居民I

    5

    主题

    476

    回帖

    215

    VC币

    星辰大海

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

    积分
    366700
    苏辰汐 发表于 2023-2-24 20:00:12 | 显示全部楼层
    本帖最后由 苏辰汐 于 2023-2-24 21:10 编辑
    boday 发表于 2023-2-24 16:13
    校色时选择的目标 gamma 只是对于校正曲线(calibration curve,或所谓 VCGT)而言的,它只会影响桌面环 ...

    如果你真的在mpv不同的色彩管理下进行过测试对比,就不会说出这种明显错误的结论。

    mpv使用target-prim进行色彩管理,启用target-trc=gamma2.2(常规显示器gamma)


    mpv使用icc-profile-auto进行色彩管理(使用显示器icc配置文件,基本为gamma2.2)


    mpv使用icc-profile进行色彩管理,指定gamma2.4的icc配置文件


    如果以上对比图都看不出区别还是坚持自己的看法,我也无话可说


    我可以进一步告诉你mpv的--vo=gpu在icc-profile-auto下的色彩管理之所以会这样是因为该参数导致的:  icc-force-contrast,在icc-profile-auto下--vo=gpu使用bt.1886时会由于icc-force-contrast默认值而假定为无限对比度,从而丢失暗场细节(视为oled无限黑处理)。

    解决方法也很简单,--vo=gpu使用icc-profile-auto时可以显式指定icc-force-contras=1000(非oled显示器的经典对比度1000:1)
    此时sdr内容即可正常显示gamma2.2下的画面效果。注意在hdr映射sdr下此方法无效,仍需指定gamma2.4的icc配置文件或使用target-prim进行色彩管理

    顺便--vo=gpu-next的icc-profile-auto在sdr下已修复错误的无限对比度的问题,但在hdr映射sdr时它改变了校色曲线目标始终为bt.1886。而--vo=gpu时hdr映射sdr时的校色目标为gamma2.2,见:target-trc参数说明(未更新--vo=gpu-next下的新逻辑)
    这导致了--vo=gpu-next下的hdr映射sdr时会出现--vo=gpu下不存在的暗场细节损失

    回复

    使用道具 举报

  • TA的每日心情
    开心
    12 小时前
  • 签到天数: 762 天

    [LV.10]以坛为家III

    3

    主题

    198

    回帖

    0

    VC币

    荣誉会员

    Rank: 14Rank: 14Rank: 14Rank: 14

    积分
    81643
    Starlight 发表于 2023-2-24 20:57:47 | 显示全部楼层
    另外有一个问题,120nit对应的是有限信号范围1019/1023(109%),但播放器应该是拉伸64/1023-940/1023(100%,100nit)到全信号范围……
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-9-26 01:55
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    1

    主题

    71

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    2444
    Jan 发表于 2023-2-24 21:28:52 来自手机 | 显示全部楼层
    按照相关组件作者的观点,用户提供了无法从中判断对比度的色彩配置文件是用户的问题。
    回复

    使用道具 举报

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

    [LV.5]常住居民I

    5

    主题

    476

    回帖

    215

    VC币

    星辰大海

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

    积分
    366700
    苏辰汐 发表于 2023-2-24 21:42:58 | 显示全部楼层
    本帖最后由 苏辰汐 于 2023-2-24 21:49 编辑
    Jan 发表于 2023-2-24 21:28
    按照相关组件作者的观点,用户提供了无法从中判断对比度的色彩配置文件是用户的问题。 ...

    这跟用户无关,单纯是mpv的vo_gpu下的icc-profile-auto的相关色彩管理一直都存在bug,这在它的继任者vo_gpu_next下已经修复了

    vo_gpu下之所以至今都未修复这个问题单纯是它的主要维护者wm4离开mpv这个项目了,没有人能够接手去重构它的icc色彩管理。如果你注意观察的话自wm4出走后vo_gpu上就没有什么新特性开发了,只有其他开发者偶尔维护和修复下部分已知问题
    至于vo_gpu_next的开发者haasn的想法早就在当初他和wm4的争论中就说过了,由于vo_gpu存在大量早期开发伴随的缺陷,与其维护旧的不如开发新的vo后端(

    不要把什么锅都往用户身上推,mpv很多选项的默参本身就有很多坑,不然项目也不用继续开发和维护了

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-6-6 16:52
  • 签到天数: 41 天

    [LV.5]常住居民I

    2

    主题

    84

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    5649
    colew 发表于 2023-2-24 22:06:26 | 显示全部楼层
    2.4 2.2暗场会丢失,亲测
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-6-20 16:09
  • 签到天数: 1 天

    [LV.1]初来乍到

    32

    主题

    1181

    回帖

    0

    VC币

    高级会员

    Rank: 4

    积分
    22927
    hsmms 发表于 2023-2-25 00:02:40 | 显示全部楼层
    校准到GAMMA 2.2还是2.4请根据使用环境来决定。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-6-20 16:09
  • 签到天数: 1 天

    [LV.1]初来乍到

    32

    主题

    1181

    回帖

    0

    VC币

    高级会员

    Rank: 4

    积分
    22927
    hsmms 发表于 2023-2-25 00:15:20 | 显示全部楼层
    本帖最后由 hsmms 于 2023-2-25 00:17 编辑
    boday 发表于 2023-2-24 17:18
    否。或者说,取决于你所谓的“精确的效果”是什么。

    mpv 之所以选择 bt.1886 就是因为它认为这是在大多 ...

    我认为选择1886的原因是它更适合更多的设备以及标准方面的推广。

    它不像传统的GAMMA 2.2/2.4那样黑位亮度是从0开始计算的而是根据你设备实际黑位亮度开始计算,这样就不会导致很多的设备暗部细节丢失。


    回复

    使用道具 举报

    该用户从未签到

    9

    主题

    278

    回帖

    4393

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    74895
    boday 发表于 2023-2-25 04:17:28 | 显示全部楼层
    本帖最后由 boday 于 2023-2-25 13:16 编辑
    苏辰汐 发表于 2023-2-24 20:00
    如果你真的在mpv不同的色彩管理下进行过测试对比,就不会说出这种明显错误的结论。

    mpv使用target-prim进 ...

    我把我前面说的展开详细说一下。下面大部分内容我猜你已经知道,但看起来你还是有些误解。

    我们现在手里的 ICC color profile 文件里面一般包含了两个部分

    - 校正曲线(calibration curves),也叫 VCGT(video card gamma table);
    - 真正的 ICC color profile,可以是 matrix 或者 LUT 形式。

    最初 ICC color profile 文件的定义里没有第一部分,是后来苹果给加进去的,然后大家都这么用了。

    校正曲线本身是一个极为简化了的、不完整的色彩管理方式。它的优点在于简单省事,直接载入到显卡就可以直接影响所有经过该显卡输出内容的颜色;而缺点则在于它只能提供很有限的调整(亮度、gamma、白点等),不能达到色彩管理的根本目的(不能进行色域的转换)。

    我们把校色仪挂在显示器上校色的时候,也是一样分成了两个步骤:
    - 校正(calibration),就是先让显示器达到某个确定的亮度、gamma 和白点——通常先用显示器自带的调节(如果有的话),然后再生成一组校正曲线,把这组曲线载入显卡,让显示器尽可能接近我们指定的亮度、gamma 和白点;
    - 特性化(profiling),就是通过一系列测量,生成一个对这台显示器特性的描述,即 ICC color profile。这一步是在前一步的基础上进行的。

    因此,我们必须要拿到一组匹配的校正曲线和 ICC profile 放在一起,才是对这台显示器的一个完整的、正确的特性描述。

    (当然,校正这个步骤是可以跳过的。那样的话只需要 ICC profile 就够了。不过这就不是本帖要讨论的问题了。)

    ----------------------------------------------------------------------------------------------------

    现在你给自己显示器校色。

    在第一步的校正里,你分别指定了两个不同的 gamma:2.2 和 2.4,得到了校正曲线 C1 和 C2。

    然后第二步,分别在显示器被校正到 gamma 2.2 和 2.4 的基础上,你进行了 profiling,得到了 profile P1 和 P2。

    无论是 C1+P1,还是 C2+P2,都是对你显示器完整的、正确的特性描述。

    利用任何一个组合,一个支持完整色彩管理的应用程序(如 mpv),都可以输出正确的结果。

    回想一下,色彩管理的根本目的是让不同显示设备间的颜色一致。既然如此,它也就不应该和你把显示器“校正”到某个指定的“标准”(如 gamma 2.2)有关。

    校正曲线是直接载入到显卡的。应用程序(如 mpv)不知道也不在乎校正曲线,它只会默认你已经载入了正确的校正曲线,用与之匹配的 ICC profile 做颜色转换。

    因为一套匹配的校正曲线和 ICC profile 是保存在同一个文件里的,所以如果指定了一个文件,我们就可以得到正确的结果。

    如上所述,你载入 C1 然后让 mpv 自动使用 P1,和载入 C2 然后让 mpv 自动使用 P2,你眼睛看到的结果应该是一样的(但截图就会不一样了)。

    但是如果你始终载入的是 C1,手动指定 P2 给 mpv,那结果就是错误的了。是的,mpv 会直接忽略你指定的文件里的校正曲线部分。

    如果一定想验证一下的话,可以用 DisplayCAL 分别拿你的两个 ICC profile 文件各自生成一个给 madVR 用的 3D LUT(当然,记得勾选 apply calibration,把校正曲线整合进去),然后在 madVR 设置里确保勾选 disable GPU gamma ramps,分别设置两个 3D LUT,结果应该是一样的。

    ----------------------------------------------------------------------------------------------------

    mpv 为了正确输出 BT.1886 需要知道显示器的对比度,这个本来应该是可以从 ICC profile 中自动检测的,但是很多常见的 ICC profile 是简单的 single curve+matrix 形式,会被 mpv 直接认为是 inf。这时就需要手动设置一下 --icc-force-contrast,比如就把验证校色结果的报告里测量到的对比度填进去。

    我在我原来写过的色彩管理教程帖里也一直推荐 single curve+matrix 形式的 profile,因为我发现很多色彩管理系统只能正确处理这种形式。这个就不展开说了。

    --vo=gpu-next 目前确实是写死了对比度为 1000:1。在无法从 ICC profile 获取对比度时会默认成 1000:1,也无法通过 --icc-force-contrast 手动指定。这个是 known issue。
    回复

    使用道具 举报

    该用户从未签到

    9

    主题

    278

    回帖

    4393

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    74895
    boday 发表于 2023-2-25 04:22:41 | 显示全部楼层
    hsmms 发表于 2023-2-25 00:15
    我认为选择1886的原因是它更适合更多的设备以及标准方面的推广。

    它不像传统的GAMMA 2.2/2.4那样黑位亮度 ...

    这个应该是制定 BT.1886 标准的部分原因吧。

    总之我想说的是,无论如何 mpv 总得选一个标准来执行,然后它肯定是觉得选这个是“对”的才选。


    回复

    使用道具 举报

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

    本版积分规则

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