4、像素亮度补偿技术:电流补偿法、电压补偿法、查找表(LUT)补偿、实时补偿算法
各位工程师朋友,咱们接着聊。上一节我们分析了烧屏的机理,说白了就是像素老化速度不一致。那问题来了——既然老化已经发生了,我们能不能通过后天手段把它「拉回来」?
答案是肯定的。这就是我今天要讲的像素亮度补偿技术。我入行那会儿,OLED补偿还是个新鲜词,现在已经是高端显示器的标配了。你想想看,没有补偿的OLED屏,用个半年就「阴阳脸」,谁敢买?
补偿的核心思路其实很简单:老化的像素多给点驱动,年轻的像素少给点,最终让全屏亮度看起来一致。具体怎么实现?主要有四条路:电流法、电压法、查表法、实时算法。咱们一条一条拆开讲。
核心观点:补偿不是修复物理损伤,而是通过调整驱动信号,让老化像素「假装」还年轻。这是一种信号层面的欺骗艺术。
4.1 电流补偿法
电流补偿法,顾名思义,就是直接控制流过OLED像素的电流。OLED是电流型器件,亮度与电流基本成正比。所以只要保证每个像素的电流一致,亮度就一致。
听起来很完美对吧?但实际做起来,坑不少。
基本原理:
- 每个像素配备一个驱动TFT(薄膜晶体管)
- 驱动TFT的栅极电压控制源漏电流
- 电流流过OLED,发光
- 老化后,OLED的发光效率下降,需要更大的电流才能达到相同亮度
我在项目中遇到过一个问题:驱动TFT本身也会老化!它的阈值电压会漂移。你辛辛苦苦把电流调准了,结果TFT老化了,电流又变了。这就很头疼。
我的经验:电流补偿法对驱动TFT的稳定性要求极高。如果TFT的阈值电压漂移超过50mV,补偿效果就会大打折扣。建议搭配TFT老化补偿一起做。
电流补偿的典型电路结构:
// 简化的电流补偿像素电路
// 每个像素包含:驱动TFT (T1)、开关TFT (T2)、存储电容 (Cst)
// 数据线提供电流参考,而非电压参考
// 写入阶段:
// 1. 扫描线选通T2
// 2. 数据线电流 I_data 流过T1
// 3. Cst 存储T1的栅极电压 Vgs
// 4. 扫描线关闭T2
// 发光阶段:
// 1. T1 保持 Vgs
// 2. T1 输出电流 I_oled ≈ I_data
// 3. OLED 发光
说白了,电流补偿法就是「以电流为基准」的闭环控制。但实际面板上,电流的精确控制非常困难。走线电阻、TFT匹配性、温度漂移……每个因素都能让你的补偿精度打折扣。
4.2 电压补偿法
电压补偿法是目前最主流的方案。为什么?因为电压比电流好控制得多。你想想看,给一个像素施加精确的5V电压,比给它施加精确的1μA电流,容易太多了。
电压补偿的核心思想:
- 预先测量每个像素的老化程度
- 根据老化数据,计算补偿后的电压
- 老化的像素给更高的电压,年轻的像素给更低的电压
- 最终亮度一致
嗯,这里要注意:电压和亮度不是线性关系。OLED的电压-亮度曲线是指数型的。所以补偿电压的计算不能简单加减,得查曲线。
| 老化程度 | 原始亮度 (cd/m²) | 补偿电压 (V) | 补偿后亮度 (cd/m²) |
|---|---|---|---|
| 0% (全新) | 300 | 5.0 | 300 |
| 10% 老化 | 270 | 5.2 | 300 |
| 20% 老化 | 240 | 5.5 | 300 |
| 30% 老化 | 210 | 5.9 | 300 |
上面这个表格是我随便举例的。实际补偿曲线要复杂得多,还得考虑温度、灰阶、刷新率等因素。我曾经在一个项目中,光拟合这个曲线就花了三周时间。
避坑指南:电压补偿法有一个致命弱点——补偿范围有限。如果像素老化超过30%,需要的补偿电压可能超过驱动芯片的耐压范围。这时候强行补偿,反而会加速老化甚至烧坏像素。我曾经见过一个产品,补偿算法写得很好,但没做限幅保护,结果用了半年屏幕出现大量「亮点」——那是像素被烧穿了。
4.3 查找表(LUT)补偿
LUT补偿,说白了就是「查字典」。我们把所有可能的补偿值预先算好,存成一张表。运行时直接查表,不用实时计算。
为什么需要LUT?
- 实时计算太慢:每个像素的补偿值都要算,4K屏幕有800多万个像素
- 实时计算太耗电:算力就是功耗
- 实时计算太热:OLED对温度敏感,芯片发热会影响补偿精度
我个人习惯把LUT设计成三维的:位置 × 灰阶 × 老化程度。举个例子:
// LUT 结构示意
// 维度1: 像素位置 (x, y)
// 维度2: 输入灰阶 (0-255)
// 维度3: 老化系数 (0.0 - 1.0)
// 查找过程:
// 1. 输入:像素坐标 (100, 200),灰阶 128,老化系数 0.85
// 2. 查表:LUT[100][200][128][0.85] = 142
// 3. 输出:补偿后的灰阶 142
// 注意:实际LUT不会存所有组合,而是存关键点,中间值用插值计算
LUT的大小是个问题。4K屏幕、256灰阶、100级老化,算下来数据量惊人。我做过一个项目,LUT压缩前有2GB,根本放不进驱动芯片的SRAM。后来用了分段线性插值,压缩到8MB,才勉强塞进去。
我的建议:LUT不要追求「全精度」。人眼对亮度的分辨能力有限,大约1%的亮度变化就看不出来了。所以LUT的量化精度做到8位就够了,没必要用16位。省下来的存储空间,可以放更多的老化数据点。
4.4 实时补偿算法
实时补偿,是前面几种方法的「升级版」。它不是在出厂时一次性补偿,而是在使用过程中持续监测、持续补偿。
实时补偿的典型流程:
- 监测阶段:定期测量每个像素的亮度或电流
- 分析阶段:对比当前值与初始值,计算老化程度
- 决策阶段:根据老化程度,决定补偿策略
- 执行阶段:更新LUT或调整驱动参数
- 循环:回到步骤1,持续监测
你可能会问:怎么监测每个像素的亮度?总不能在面板上装800万个传感器吧?
嗯,这里有个巧妙的方法——间接监测。我们不直接测亮度,而是测驱动TFT的电流。因为OLED的亮度与电流成正比,测电流就等于测亮度。而且电流可以在驱动芯片内部测量,不需要额外传感器。
我参与过一个项目,用的是「子帧监测法」:在每一帧的消隐期,选通一行像素,测量其驱动电流。这样一帧时间可以测完一行,60Hz刷新率下,大约16ms测一行。对于4K屏幕,需要2160行,也就是2160帧,大约36秒才能完成一次全屏扫描。
36秒一次,够用吗?说实话,对于烧屏这种缓慢变化的过程,足够了。烧屏是以小时甚至天为单位变化的,36秒的监测周期绰绰有余。
实时补偿的难点:
- 噪声问题:测量电流时,噪声会干扰结果。我习惯用多次采样取平均,一般采16次,能有效降低噪声。
- 温度影响:OLED的电流-温度系数大约是1%/°C。如果温度变化5°C,测量误差就有5%。所以必须做温度补偿。
- 收敛速度:补偿算法不能一步到位,否则会出现「闪烁」。我一般用IIR滤波器,让补偿值缓慢变化,人眼就察觉不到。
4.5 四种方法的对比与选择
讲了这么多,到底该用哪种方法?我个人的经验是:没有银弹,只有权衡。
| 方法 | 精度 | 成本 | 复杂度 | 适用场景 |
|---|---|---|---|---|
| 电流补偿法 | 高 | 高 | 高 | 高端专业显示器 |
| 电压补偿法 | 中 | 中 | 中 | 主流消费电子产品 |
| LUT补偿 | 中高 | 低 | 低 | 所有OLED产品(基础版) |
| 实时补偿算法 | 高 | 高 | 高 | 旗舰手机、高端电视 |
实际产品中,往往是多种方法组合使用。比如:
- 出厂时用LUT做基础补偿
- 使用过程中用实时算法更新LUT
- 对关键像素(如Logo区域)用电压补偿做精细调整
我曾经调试过一个产品,就是这种「三合一」方案。刚开始觉得太复杂,但后来发现,每种方法正好弥补了另一种的短板。就像搭积木一样,组合起来效果出奇的好。
最后说一句:补偿技术再牛,也抵不过物理定律。如果像素已经老化到发光效率低于50%,再怎么补偿也没用——因为需要的电流太大,会烧坏驱动TFT。所以,补偿是延缓烧屏的手段,不是根治的灵药。好的OLED产品,应该是「预防为主,补偿为辅」。