基于海思Hi3798MV200Android7.0聊聊HDMI色深模式和电视HDR

Hi3798MV200 HDR/SDR实现详解

先看图,在Android机顶盒或电视机中常常能看到这些高级设置

HDR/SDR 功能”到底在哪些环节生效、怎么算生效、怎么验证。

  1. 高动态范围 HDR(High Dynamic Range)

  • 人话版:让亮的地方更亮、暗的地方更暗,同时都看得见。

  • 技术版:峰值亮度 ≥ 1000 cd/m²、黑场 ≤ 0.05 cd/m²,同时色域 BT.2020、色深 10-bit、光电转换函数 PQ(Perceptual Quantizer,EOTF-2)或 HLG(Hybrid Log-Gamma,EOTF-3)。

  • Hi3798MV200 落点:
    – 解码器 VDEC_CAP_HDR10 | VDEC_CAP_HLG 能力位置寄存器 0x1f00[21:20]
    – HDMI 2.0 Tx 模块 HDR_INFOFRAME 寄存器 0x4a0~0x4af 负责把 EOTF/Metadata 随视频帧送出去。


  1. 标准动态范围 SDR(Standard Dynamic Range)

  • 人话版:传统电视/手机能直接看的“正常”画面。

  • 技术版:峰值亮度 100 cd/m²、色域 BT.709、色深 8-bit、伽马 2.4(EOTF-0)。

  • 落点:
    – VDP 后级 HDR2SDR_GAMUT 模块,寄存器 0x2c00~0x2cff 存放 3DLUT/1DLUT 系数表;
    – 目标亮度 100 nits 在 0x2c10 可配。


  1. 电光转换函数 EOTF(Electro-Optical Transfer Function)

  • 人话版:把“数字码值”翻译成“屏幕到底该发多少光”的公式。

  • 技术版:
    – SDR:BT.1886 幂函数(gamma 2.4);
    – HDR10:SMPTE ST 2084 PQ 曲线;
    – HLG:ARIB STD-B67 对数+线性分段。

  • 落点:
    – HDMI InfoFrame 字节 1 的 EOTF 字段写 0/2/3;
    – 驱动 dw_hdmi_drm_infoframe_pack()infoframe->eotf = drm_property_get_eotf()


  1. 静态/动态元数据 Static vs Dynamic Metadata

  • 人话版:告诉显示器“这片子最亮能到多少、平均到多少”,静态的一整部电影不变,动态的一帧一帧变。

  • 技术版:
    – Static:Mastering Display Color Volume (MDCV) + Content Light Level (CLL);
    – Dynamic:SMPTE ST 2094-10/40,HDR10+ 或 Dolby Vision。

  • 落点:
    – 静态元数据通过 v4l2_ctrl 新 ID V4L2_CID_HDR_MDCV/CLL 随帧下推;
    – 动态元数据 Hi3798MV200 硬件不支持,需要外挂 Dolby 芯片或走软件后处理。


  1. 色域 Color Space / Gamut

  • 人话版:能显示的颜色范围。

  • 技术版:
    – BT.709 ≈ 35% 可见光;
    – BT.2020 ≈ 75% 可见光。

  • 落点:
    – 解码器输出 PIXEL_FORMAT_YCBCR_P010 时,驱动把 VDP_CS_BT2020 写寄存器 0x1a8[3:0]
    – HDMI InfoFrame 字节 3 的 Colorimetry = 2 表示 BT.2020。


  1. 色深 Bit Depth

  • 人话版:颜色过渡是否平滑。

  • 技术版:
    – 8-bit:256 级灰阶;
    – 10-bit:1024 级灰阶,带状瑕疵 (banding) 更少。

  • 落点:
    – 解码器 vdec_set_output_bitdepth(10)
    – Gralloc 格式 HAL_PIXEL_FORMAT_YCBCR_P010 对应 bpp=10


  1. HDR→SDR 色调映射 Tone Mapping / Gamut Mapping

  • 人话版:在“老电视”上也能看 HDR 片,不会过曝或发灰。

  • 技术版:把 0–10000 nits 的 PQ 码值压缩到 0–100 nits,同时把 BT.2020 映射到 BT.709,保持肤色。

  • 落点:
    – Hi3798MV200 内置 HDR2SDR 硬件模块,驱动 vdp_hdr_lut.c 提供 3 组 LUT:
    – PQ→SDR(亮度裁剪 1000→100 nits);
    – HLG→SDR(系统 gamma 1.2);
    – SDR 直通。
    – 寄存器 0x2c00enable 位写 1 即生效,延迟 1 帧。


一条“端到端”HDR/SDR 链路在 Hi3798MV200 上的时间序举例

  1. 解码器拿到 HE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值