Demura Table数据压缩方法和解压缩方法
技术领域
本发明涉及显示面板补偿技术领域,具体涉及一种Demura Table 数据压缩方法和解压缩方法。
背景技术
Mura主要是指显示面板在显示灰度图片时面内出现亮度不均匀的现象,该现象大多是由于显示面板在生产过程中的不良因素所引起的。随着显示面板的尺寸越来越大,对面板的生产技术的要求也越来越高,面板出现Mura现象的几率也随之增大。而Demura实际上就是一个对Mura进行补偿进而消除Mura的过程。
常用的流程为:使用相机拍摄面板不同灰度画面的亮度,进而获取不同灰度面内的Mura信息,然后根据亮度和灰度的关系并采用相关算法得到灰度的补偿值,进而得到补偿表(Demura Table)供硬件调用。一般情况下,相机获取Mura信息,然后使用计算机对这些信息进行处理进而得到Demura Table,最后将Demura Table烧录在相对应的存储设备中。
然而,由于对分辨率、显示效果的高需求,显示面板的尺寸越来越大,从而导致补偿表中的数据越来越多,而补偿表越大就需要更大容量的存储设备对数据进行存储,导致硬件成本上升。
因此,如何对Demura Table的数据进行合理有效的压缩是一个有待解决的问题。
发明内容
针对上述问题,本发明提供一种Demura Table数据压缩方法和解压缩方法,实现对Demura Table的数据进行合理有效压缩以节省硬件成本。
为了解决上述技术问题,本发明采用如下技术方案:一种Demura Table数据压缩方法,具体步骤包括:
步骤一、获取显示面板的Demura Table,保存Demura Table数据的总行数M和总列数N,且使Demura Table数据扩展成偶数行偶数列的数据,构成第一矩阵;
步骤二、基于第一矩阵的数据,对每两行两列相交的4个补偿数据进行计算得到相对应的平均值;
步骤三、将计算得到的平均值按序依次排列,得到压缩的Demura Table,构成第二矩阵;
步骤四、基于第二矩阵,选取相邻的4个数据为一个单元,并使用特定的数字对单元中的数据位置进行标记;
步骤五、使用最小二乘法对每个单元的四个数据以及其对应的标记值进行拟合,得到相对应的参数值;
步骤六、将按照上述方式存储的数据保存到存储设备中。
进一步的,步骤一还包括:如果总行数M不是偶数,需要在行方向上添加一行,通过复制原数据矩阵的最后一行补偿数据得以实现。
进一步的,步骤一还包括:如果总列数N不是偶数,需要在列方向上添加一列,通过复制原数据矩阵的最后一列补偿数据得以实现。
进一步的,步骤五还包括:每个单元的四个数据依次排序组成向量y=[c1,c2,c3,c4],其对应的标记数字组成向量x=[b1,b2,b3,b4],设初始模型为y=a×x+b,然后利用最小二乘法对x、y进行拟合,得到两个参数a、b。
一种Demura Table数据解压缩方法,具体步骤包括:
步骤一、获取原始Demura Table的总行数M和总列数N;
步骤二、根据保存的数据,利用特定的标记值,经过相关运算得到补偿数据,进而构成第三矩阵,第三矩阵和第二矩阵的数据个数近似相等;
步骤三、针对第三矩阵的数据,采用双线性插值算法,进而得到第四矩阵;
步骤四、选取第四矩阵前M行、前N列数据得到Demura Table 数据。
进一步的,步骤二还包括:保存的数据是由一系列参数a、b组成的,根据标记数字组成的向量x=[b1,b2,b3,b4]和模型y=a×x+b,每一组a、b可计算出4个y值,4个y值根据压缩过程中选取数据的方式进行排布得到一个单元,各个单元依序排列,构成第三矩阵。
本发明的有益效果:本发明对Demura Table数据进行了合理有效的压缩,缩小了Demura Table数据的大小,减少了硬件成本;在解压缩过程中,占用较少的逻辑资源,节省了功耗。
附图说明
图1为本发明实施例所述双线性插值算法的实现过程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的本实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请说明书、权利要求书和附图中出现的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或者单元,而是可选地还包括没有列出的步骤或者单元,或者可选地还包括对于这些过程、方法、产品或者设备固有的其他步骤、或者单元。此外,术语“第一”、“第二”和“第三”等是用于区别不同的对象,而并非用于描述特定的顺序。
本发明实例提供一种Demura Table数据压缩方法,具体步骤包括:
步骤一、获取显示面板的Demura Table,保存Demura Table数据的总行数M和总列数N,且使Demura Table数据扩展成偶数行偶数列的数据,构成第一矩阵;
具体地,通过相机拍摄显示面板显示不同灰阶画面的Mura形态,利用相关算法得到每个像素的补偿数据,而Demura Table就是由M 行、N列补偿数据组成的。均值是以两行两列数据为基础进行计算的,因此,需要保证Demura Table有偶数行偶数列的数据。
本实施例中,步骤一还包括:如果总行数M不是偶数,需要在行方向上添加一行,通过复制原数据矩阵的最后一行补偿数据得以实现。
本实施例中,步骤一还包括:如果总列数N不是偶数,需要在列方向上添加一列,通过复制原数据矩阵的最后一列补偿数据得以实现。上述步骤进而构成第一矩阵。
步骤二、基于第一矩阵的数据,对每两行两列相交的4个补偿数据进行计算得到相对应的平均值;
步骤三、将计算得到的平均值按序依次排列,得到压缩的Demura Table,构成第二矩阵;
具体地,将第一矩阵划分为若干个子区域,每个子区域包含两行两列相交的4个补偿数据,对4个补偿数据求平均值,得出的平均值就是对应子区域的数值。每个子区域对应一个均值,若干个子区域的均值依次排列,得到压缩的Demura Table,构成第二矩阵,这样的方式使得第二矩阵的数据量约为第一矩阵数据量的1/4,有利地节省了存储空间。
步骤四、基于第二矩阵,选取相邻的4个数据为一个单元,并使用特定的数字对单元中的数据位置进行标记;
在第二矩阵中,选取相邻的四个数据为一个单元,选取数据的方式有以下三种:行方向上的四个相邻数据;列方向上的四个相邻数据;两行两列相交的四个相邻数据。根据选取数据的方式不同,需要对第二矩阵扩充不同行列的数据,扩充方法与构成第一矩阵的方法相同。该单元中,使用特定的数字对单元中的位置进行标记:具体地,一个单元有四个位置,可使用适合硬件实现的数字作为特定的数字,比如 [0.5,1,2,4]。这只是本实施例的一个举例,标记值的选取应该综合考虑仿真效果和硬件实现,进而选取合适的标记值。
步骤五、使用最小二乘法对每个单元的四个数据以及其对应的标记值进行拟合,得到相对应的参数值;
本实施例中,步骤五还包括:每个单元的四个数据依次排序组成向量y=[c1,c2,c3,c4],其对应的标记数字组成向量 x=[b1,b2,b3,b4],设初始模型为y=a×x+b,然后利用最小二乘法对 x、y进行拟合,得到两个参数a、b。具体地,如果一个数据存储需要8bits,一个单元四个数据共需要32bits,而存储参数a、b,参数b直接四舍五入取整,使用8bits进行保存,a的整数部分使用 8bits保存,小数位使用4bits保存,保存精度为1/16,误差小于等于1/32,共需要20bits,极大地减少了存储空间。以上只是举例说明,并不是对该发明的限定,各个参数需要根据实际情况进行合理的设定。
步骤六、将按照上述方式存储的数据保存到存储设备中。
针对本发明提出的一种Demura Table数据压缩方法,本发明还提供了与之对应的一种Demura Table数据解压缩方法,具体步骤包括:
步骤一、获取原始Demura Table的总行数M和总列数N;
步骤二、根据保存的数据,利用特定的标记值,经过相关运算得到补偿数据,进而构成第三矩阵,第三矩阵和第二矩阵的数据个数近似相等;
本实施例中,步骤二还包括:保存的数据是由一系列参数a、b 组成的,根据标记数字组成的向量x=[b1,b2,b3,b4]和模型 y=a×x+b,每一组a、b可计算出4个y值,4个y值根据压缩过程中选取数据的方式进行排布得到一个单元,各个单元依序排列,构成第三矩阵。第三矩阵和第二矩阵的数据个数近似相等。
步骤三、针对第三矩阵的数据,采用双线性插值算法,进而得到第四矩阵;
具体地,第三矩阵的数据量约为原始Demura Table数据量的1/4, 采用双线性插值算法,使第三矩阵的行、列扩大为原来的2倍,进而得到第四矩阵。
结合图1详细说明双线性插值算法的实现过程:P11、P12、P13、 P14、P15...P1n代表第三矩阵的第一行数据,P21、P22、P23、P24、 P25...P2n代表第三矩阵的第二行数据,P31、P32、P33、P34、P35... P3n代表第三矩阵的第三行数据,P41、P42、P43、P44、P45...P4n代表第三矩阵的第四行数据。针对第四矩阵的第一行数据,已知数据 P11、P12、P13、P14...P1n,将P11赋值给第四矩阵第一行的第一个像素,将P1n赋值给第四矩阵第一行的最后一个像素,第一行的其它位置的像素值可由已知数据P11、P12、P13、P14...P1n计算可到。以X1j的计算为例,X1j代表第四矩阵第一行的第j个像素,首先需要将其映射到第三矩阵,找到与其相邻的两个像素P1a、P1b,利用这两个像素值进行加权平均得到X1j。其中,P1a代表第三矩阵第一行的第a个像素,P1b代表第三矩阵第一行的第b个像素,且 b=a+1,a=floor(j/2),floor代表对括号里面的数值向下取整,则
最后一行、第一列、最后一列的数据可采用类似的方法计算得到。对于第四矩阵中间范围内的像素值,可采用下述方法计算得到,以Xij的计算为例:首先需要将其映射到第三矩阵,找到与其相邻的四个像素Pca、Pcb、Pda、Pdb,然后利用这四个像素值计算得到Xij。其中,Pca代表第三矩阵第c行的第a个像素,Pcb代表第三矩阵第c行的第b个像素,Pda代表第三矩阵第 d行的第a个像素,Pdb代表第三矩阵第d行的第b个像素,且 b=a+1,d=c+1,a=floor(j/2),c=floor(i/2),floor代表对括号里面的数值向下取整,则
步骤四、选取第四矩阵前M行、前N列数据得到Demura Table 数据。
以上所述,仅是本发明较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明以较佳实施例公开如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当利用上述揭示的技术内容作出些许变更或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明技术是指对以上实施例所作的任何简单修改、等同变化与修饰,均属于本发明技术方案的范围内。