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


HDR/SDR 功能”到底在哪些环节生效、怎么算生效、怎么验证。
-
高动态范围 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 随视频帧送出去。
-
标准动态范围 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可配。
-
电光转换函数 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()。
-
静态/动态元数据 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新 IDV4L2_CID_HDR_MDCV/CLL随帧下推;
– 动态元数据 Hi3798MV200 硬件不支持,需要外挂 Dolby 芯片或走软件后处理。
-
色域 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。
-
色深 Bit Depth
-
人话版:颜色过渡是否平滑。
-
技术版:
– 8-bit:256 级灰阶;
– 10-bit:1024 级灰阶,带状瑕疵 (banding) 更少。 -
落点:
– 解码器vdec_set_output_bitdepth(10);
– Gralloc 格式HAL_PIXEL_FORMAT_YCBCR_P010对应bpp=10。
-
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 直通。
– 寄存器0x2c00的enable位写 1 即生效,延迟 1 帧。
一条“端到端”HDR/SDR 链路在 Hi3798MV200 上的时间序举例
-
解码器拿到
HE
Hi3798MV200 HDR/SDR实现详解

最低0.47元/天 解锁文章
4万+

被折叠的 条评论
为什么被折叠?



