一、HDR基础概念:什么是HDR、HDR与SDR的区别、HDR的核心技术指标

大家好,我是你们这趟HDR实战之旅的向导。做图像算法这些年,我最大的感触就是:HDR这玩意儿,看着高大上,其实核心逻辑并不复杂。今天咱们就把HDR的底裤扒一扒,从最基础的概念讲起。

1.1 什么是HDR?说白了就是「看得更清楚」

HDR,全称High Dynamic Range,高动态范围。你想想看,我们人眼看现实世界,从最暗的星空到最亮的太阳,跨度极大。但传统的SDR(标准动态范围)图像,就像透过一个小窗户看风景——亮部一片死白,暗部一团漆黑。

HDR要解决的,就是这个「窗户太小」的问题。它让亮的地方更亮,暗的地方更暗,同时还能保留细节。嗯,这里要注意:不是单纯拉高对比度,而是让整个画面的信息量翻倍。

我个人习惯把HDR理解成「信息容器」。SDR的容器只有100毫升,HDR的容器有1000毫升。同样的场景,HDR能装下更多光影信息。

一句话总结:HDR不是滤镜,不是特效,而是一种更接近人眼视觉系统的图像技术标准。

1.2 HDR与SDR的区别——不只是「更亮」那么简单

很多同学问我:「HDR不就是把照片调亮一点吗?」我每次听到都想笑。我在项目中遇到过不少这样的误解,结果调出来的图噪点满天飞。

咱们用一张表说清楚:

对比维度 SDR(标准动态范围) HDR(高动态范围)
亮度范围 0.1 ~ 100 cd/m² 0.0005 ~ 10,000 cd/m²
色域标准 BT.709(约35%可见色域) BT.2020(约75%可见色域)
位深 8-bit(256级灰阶) 10-bit / 12-bit(1024/4096级)
视觉感受 亮部易过曝,暗部易死黑 亮暗细节丰富,过渡自然
典型应用 普通网页、老式电视 4K蓝光、旗舰手机、专业显示器

为什么会这样?说白了,SDR是上个世纪的技术标准,那时候CRT显示器就那么点能耐。现在手机屏幕都上千尼特了,再用SDR就是「小马拉大车」。

我曾经在调试某款旗舰机的相机时,发现SDR模式下拍夕阳,天空总是过曝。换成HDR模式后,云层的纹理、太阳周边的光晕全出来了。这就是动态范围带来的质变。

1.3 HDR的核心技术指标

做HDR算法,有三个指标你必须刻在脑子里:动态范围、色域、位深。缺一个,HDR都是假的。

1.3.1 动态范围——HDR的「心脏」

动态范围,简单说就是「最亮处」和「最暗处」的比值。单位是f-stop(档)或者直接用比值表示。

  • 人眼:约20档(适应后可达30档)
  • SDR:约6档(100:1对比度)
  • HDR:约12~20档(100,000:1以上)

我建议你记住一个公式:动态范围(dB)= 20 × log10(最大亮度 / 最小亮度)。在手机端做HDR合成时,我们通常用多帧曝光来扩展这个范围。比如拍夜景,我会用三帧:欠曝(保高光)、正常、过曝(提暗部)。

避坑指南:我曾经在低端芯片上硬上12档动态范围,结果处理速度慢到1秒1帧。后来发现,对于手机端,8~10档动态范围配合好的色调映射,效果已经足够惊艳。别盲目追求参数。

1.3.2 色域——HDR的「血肉」

色域决定了你能显示多少种颜色。SDR用的BT.709,只覆盖了人眼可见色的35%左右。HDR用的BT.2020,覆盖了75%以上。

你想想看,同样的红色,BT.709只能显示「番茄红」,BT.2020能显示「火焰红」、「玫瑰红」、「晚霞红」。这就是色域扩展带来的细腻度提升。

在手机端做HDR时,我特别关注色域映射。因为很多手机屏幕实际只能覆盖90%的DCI-P3(介于BT.709和BT.2020之间)。如果算法直接输出BT.2020,屏幕会「硬裁切」,导致颜色断层。

1.3.3 位深——HDR的「骨架」

位深决定了亮度层次的细腻程度。8-bit只有256级灰阶,10-bit有1024级,12-bit有4096级。

为什么HDR需要高位深?因为动态范围大了,如果位深不够,就会出现「色带」——明明应该是平滑的渐变天空,变成了一圈一圈的条纹。

我举个例子:

// 8-bit vs 10-bit 的亮度步长对比
// 假设亮度范围 0~1000 cd/m²

// 8-bit: 每级步长 = 1000 / 256 ≈ 3.9 cd/m²
// 10-bit: 每级步长 = 1000 / 1024 ≈ 0.98 cd/m²

// 在暗部区域(0~10 cd/m²):
// 8-bit: 只有约2~3个灰阶,极易出现色带
// 10-bit: 有约10个灰阶,过渡平滑

嗯,这里要注意:手机端处理10-bit数据时,内存占用是8-bit的1.5倍。我在优化某款机型时,为了省带宽,曾经尝试用8-bit + 抖动算法模拟10-bit效果。结果呢?省是省了,但暗部噪点多了不少。后来还是老老实实上了10-bit管线。

重要提醒:市面上有些手机宣称支持HDR,但屏幕只有8-bit。这种「伪HDR」在显示高动态范围内容时,色带问题会非常明显。作为算法工程师,我们要在软件层面做「抖动」或「噪声注入」来缓解。

1.4 知识体系总览

说了这么多,咱们用一张图把HDR基础概念串起来。这是我做课程时习惯用的方式——先搭框架,再填细节。

HDR 核心技术 动态范围 (Dynamic Range) 人眼:约20档 SDR:约6档 HDR:12~20档 色域 (Color Gamut) BT.709:约35%可见色域 BT.2020:约75%可见色域 位深 (Bit Depth) 8-bit:256级 10-bit:1024级 12-bit:4096级

这张图把HDR的三个核心指标串起来了。动态范围决定「能看多宽」,色域决定「能看多艳」,位深决定「能看多细」。三者缺一不可。

好了,HDR的基础概念就聊到这儿。记住:HDR不是魔法,是工程。理解了这三个指标,你就拿到了HDR世界的钥匙。后面咱们会一步步深入,从算法原理到手机端优化,把每个环节都吃透。


公众号:蓝海资料掘金营,微信deep3321