一种显示系统gamma矫正计算方法与流程

文档序号:33632175发布日期:2023-03-28 23:21阅读:71来源:国知局
一种显示系统gamma矫正计算方法与流程

1.本发明属于图像显示技术领域,涉及一种显示系统gamma矫正计算方法。


背景技术:

2.图像显示的芯片由于其存储空间限制以及实际映射关系使用函数拟合导致在部分区间偏差较大,经常会使用电路查表插补的方式代替。当硬件限制节点数量不能特别多时,直接使用线性插值会遇到距离节点较远处时偏差较大,而节点处也会因为两段线性插值的斜率变化较大出现一些不连续甚至跳变的情况。比较常见的场景是gamma绑点调节显示系统亮度时使用简单线性插值会导致显示亮度在调节时存在人眼可以察觉的不平滑。
3.本发明提出一种显示系统gamma矫正计算方法,旨在使用不多的额外开销,尽可能地改善上面所述的技术问题,一方面改善距离节点较远处的偏差,另一方面改善节点处的不连续,另外在一些不适用的情况下依然保留使用线性插值,使用曲线和线性的混合插值方法。
4.基于上述问题,本发明提出了一种显示系统gamma矫正计算方法。


技术实现要素:

5.本发明提出了一种显示系统gamma矫正计算方法,包括以下步骤:
6.步骤一,获取gamma矫正表lutg;
7.步骤二,找到需要插值点在矫正表中的位置;
8.步骤三,判断是否满足曲线插值条件,如满足则进行步骤四,如不满足,则进行线性插值,然后根据混合插值得到的gamma值进行亮度输出;
9.步骤四,求解临近四点的插值曲线;
10.步骤五,计算插值曲线在区间内是否有拐点,如有,则进行线性插值,然后根据混合插值得到的gamma值进行亮度输出;如没有,则进行步骤六;
11.步骤六,推导出可以快速计算的中间两点间插值曲线,根据混合插值得到的gamma值进行亮度输出。
12.进一步地,步骤二包括:
13.lutg:y=[y0,y1,y2…yn
]=[f(x0,x1,x2…
xn)]
[0014]
其中x=[x0,x1,x2…
xn]为绑点值,y=[y0,y1,y2…yn
]为对应的输出值;从所述gamma矫正表中取得已经排好序列的绑点信息,顺序取得相邻的四个数据点:(x0,y0)、(x1,y1)、(x2,y2)、(x3,y3),最终求得的是(x1,y1)和(x2,y2)两点之间的插值函数。
[0015]
进一步地,步骤三包括
[0016]
判断(y1-y0)/(x1-x0)、(y2-y1)/(x2-x1)、(y3-y2)/(x3-x2)是否递增或者递减,如果递增或递减,则符合曲线插值条件;反之,则不符合曲线插值条件,进行线性插值;
[0017][0018]
进一步地,步骤四包括:
[0019]
当判断结果符合曲线插值条件时,求解同时过所述四个点的三次函数,如果无解则使用线性插值,设该三次函数为f(x)=ax3+bx2+cx+d,直接使用线性代数求解得到系数
[0020][0021]
进一步地,步骤五包括:
[0022]
得到系数后需要判断在取值区间是否存在函数的拐点,如果存在拐点,则使用线性插值;
[0023]
判断存不存在拐点流程如下,首先当a=0时,需要判断是否在区间(x0,x3)内,如果在,则进行线性插值,a=0且b=0时则本身就是线性函数;当a不为0时,判断f

(x)=3ax2+2bx+c在区间(x0,x3)中是否有解,若有解则认为有拐点,则进行线性插值;
[0024]
判断f

(x)=3ax2+2bx+c是否有解过程:
[0025]
(5.1)当在(x0,x3)区间外时,若f

(x0)*f

(x3)<0则有解,则进行线性插值;
[0026]
(5.2)当在(x0,x3)区间内时,若在(x0,x3)区间内时,若其中任何一个成立则有解,则进行线性插值。
[0027]
进一步地,步骤六包括
[0028]
若满足曲线插值条件,则使用作为x值代入所述三次函数,求得新的点(x4,y4),求解同时过(x1,y1)、(x2,y2)、(x4,y4)三点的二次函数,使用该二次函数作为插值(x1,y1)、(x2,y2)的曲线;
[0029]
设该二次函数为g(x)=ex2+fx+g
[0030][0031]
求得系数代入得到的g(x)就是曲线插值的函数。
[0032]
由于起始的两点和末尾的两点不满足计算条件,因此采用如下任意一种处理方式:
[0033]
(6.1)直接使用线性插值;
[0034]
(6.2)使用两点插值得到一个新的数据点来满足条件再计算;
[0035]
(6.3)直接使用起始三点或者末尾三点来进行求解二次函数;
[0036]
(6.4)使用相邻插值曲线的导数和两点作为条件来求二次函数。
附图说明
[0037]
图1所示是本发明的矫正计算方法流程图;
[0038]
图2所示为本发明的混合插值效果图;
[0039]
图3所示为本发明的线性插值效果图。
具体实施方式
[0040]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041]
请参见图1-3,本发明提供一种显示系统gamma矫正计算方法。
[0042]
首先获取gamma矫正表lutg。
[0043]
lutg:y=[y0,y1,y2…yn
]=[f(x0,x1,x2…
xn)]
[0044]
其中x=[x0,x1,x2…
xn]为绑点值,y=[y0,y1,y2…yn
]为对应的输出值;从所述gamma矫正表中取得已经排好序列的绑点信息,顺序取得相邻的四个数据点:(x0,y0)、(x1,y1)、(x2,y2)、(x3,y3),最终求得的是(x1,y1)和(x2,y2)两点之间的插值函数。
[0045]
首先判断是否符合曲线插值的条件,本实施例使用的方法是使用(y1-y0)/(x1-x0)、(y2-y1)/(x2-x1)、(y3-y2)/(x3-x2)是否递增或者递减来衡量,如果递增或递减说明这四个点区间内导数的变化是单调的可能性较大,符合曲线插值条件;反之,如果不为递增或递减,则使用曲线插值更容易出现相较于线性插值更大的偏差,如果不在此区间增加新的量测点作为数据绑点,则推荐使用线性插值。
[0046][0047]
当判断结果符合曲线插值要求时,求解同时过这四个点的三次函数,如果无解则使用线性插值。
[0048]
设该三次函数为f(x)=ax3+bx2+cx+d,直接使用线性代数求解得到系数。
[0049]
[0050]
得到系数后需要判断在取值区间是否存在函数的拐点,如果存在拐点函数形态不稳定则使用线性插值。
[0051]
判断流程如下,首先当a=0时,需要判断是否在区间(x0,x3)内如果在则使用线性插值,a=0且b=0时则本身就是线性函数。当a不为0时,判断f

(x)=3ax2+2bx+c在区间(x0,x3)中是否有解,若有解则认为有拐点使用线性插值。
[0052]
判断f

(x)=3ax2+2bx+c是否有解过程:
[0053]
当在(x0,x3)区间外时,若f

(x0)*f

(x3)<0则有解,需要使用线性插值;
[0054]
当在(x0,x3)区间内时,若其中任何一个成立则有解,需要使用线性插值。
[0055]
若满足曲线插值条件,则使用作为x值代入2中的三次函数,求得新的点(x4,y4),求解同时过(x1,y1)、(x2,y2)、(x4,y4)的二次函数,使用该二次函数作为插值(x1,y1)、(x2,y2)的曲线。
[0056]
设该二次函数为g(x)=ex2+fx+g
[0057][0058]
求得系数代入得到的g(x)就是曲线插值的函数。
[0059]
起始的两点和末尾的两点不满足上面的计算条件,可以有不同的处理方式,包括但不限于:
[0060]
直接使用线性插值;
[0061]
使用两点插值得到一个新的数据点来满足上面的条件再计算;
[0062]
直接使用起始三点或者末尾三点来进行求解二次函数;
[0063]
使用相邻插值曲线的导数和两点作为条件来求二次函数。
[0064]
为兼顾计算简便与稳定,起始和末尾一般使用直接线性插值即可。
[0065]
至此完成了对数据的混合插值,图2和图3为11个绑点时混合插值结果和线性插值结果,可以观察到混合插值结果相比线性插值平滑很多,这样gamma矫正后亮度的变换过渡也会更加平滑流畅,显示系统效果更佳。
[0066]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
[0067]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以
理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1