本发明属于裸眼立体显示技术领域,涉及一种裸眼立体显示方法,尤其涉及一种裸眼立体显示子像素映射表的快速生成方法。
背景技术:
在裸眼立体LCD显示技术中,需要针对每个子像素确定其来自多个视点图像的具体哪个视点,即确定LCD上给定的RGB子像素(k,l)应该取自哪个视点的RGB分量,这个步骤通常称为子像素视点映射表生成。
令Ntot表示总的视点个数,Ntot>=2。
图像分辨率为W*H,第l行第k个子像素(k,l)其对应的视点映射计算公式为:
其中k=0,1,2,…3W-1,l=0,1,2,…,h。
由于视点映射表是以子像素为单位,因此生成整个视点映射表需要对式(1)计算3*W*H次。而在实际应用中如果需要根据观看者位置动态调整最佳视区,则需要不断调整X和koffset值,即3*W*H大小的视点映射表也需要不断计算更新,从而加重整个系统的计算负载。
由于高分辨率的显示面板,在裸眼立体显示领域已经非常普遍,目前通常为3840*2160,8K的分辨率也已量产,因此子像素视点映射表生成过程的计算量按照目前方法,将越来越繁重。
有鉴于此,如今迫切需要设计一种裸眼立体显示方式,以便克服现有裸眼立体显示方式存在的上述缺陷。
技术实现要素:
本发明所要解决的技术问题是:提供一种裸眼立体显示子像素映射表的快速生成方法,可大幅降低计算次数,提高处理速度。
为解决上述技术问题,本发明采用如下技术方案:
一种裸眼立体显示子像素映射表的快速生成方法,所述快速生成方法包括:
步骤S1.计算tan(α)的即约分式表达
倾斜角α为光栅与液晶面板垂直方向的夹角;
步骤S2.光栅水平方向覆盖RGB子像素个数X值的即约分式表达
步骤S3.分配二维数组tmp,尺寸为cotN*XM;
步骤S4.图像分辨率为W*H,第l行第k个子像素(k,l)其对应的视点映射计算公式为:
按公式(1)计算N(k,l),其中l从0到cotN-1,k从0到XM,存入tmp中;
步骤S5.按照显示面板子像素尺寸,分配子像素映射表N,尺寸为H*W*3;
步骤S6.对第l行,根据式(11)计算对应在tmp中的行ll,以及起始偏移km;
N(k,l)=f(k,l)*Ntot
=f(k-3m*cotM,ll)*Ntot
=f(km,ll)*Ntot (11)
其中,km=(k-3m*cotM)modXM,km=0,1,2,...XM-1,
ll=lmodcotN,ll=0,1,2,…,cotN-1;
步骤S7.将tmp中的第ll行作为循环数组,以km为起点,对数组N中的第l行进行赋值;
步骤S8.重复步骤S6和S7直至映射表N的H行赋值完毕。
作为本发明的一种优选方案,所述快速生成方法包括:
任意一个有理数,用即约分数来表示,即
其中cotN∈N,cotM∈Z,cotN与cotM之间互质;
其中XN∈N,XM∈Z,XN与XM之间互质;
令
这样N(k,l)=f(k,l)*Ntot (5)
式(4)等价于
对于任意k(k=0,1,2,…3W-1),有k=kk+n*XM,其中
kk=kmodXM,kk=0,1,2,…,XM-1(7.a)
对第l0行第k个子像素(k,l0)其对应的计算公式为
即f(k,l0)=f(kk,l0),其中kk=kmodXM,第l0行前XM个值为其重复模板;
对于任意l(l=0,1,2,…H-1),有l=ll+m*cotN,其中
ll=lmodcotN,ll=0,1,2,…,cotN-1 (9.a)
对第l行第k个子像素(k,l)其对应的计算公式为
即f(k,l)=f(k-3m*cotM,ll),其中ll=lmodcotN,说明行方向上,以前cotN行为模板进行周期性重复,只是列坐标相应调整-3m*cotM;
结合式(10)、(8)和(5)可知,对于任意子像素(k,l)其对应的视点映射计算公式为
N(k,l)=f(k,l)*Ntot
=f(k-3m*cotM,ll)*Ntot
=f(km,ll)*Ntot (11)
其中km=(k-3m*cotM)modXM,km=0,1,2,...XM-1,
ll=lmodcotN,ll=0,1,2,…,cotN-1。
本发明的有益效果在于:本发明提出的裸眼立体显示子像素映射表的快速生成方法,采用与显示面板分辨率无关的二维循环数组(尺寸大小为cotN*XM)来描述整个映射表的所有取值,使得映射表子像素单元的计算次数从H*W*3大幅降低到cotN*XM次;可大幅降低计算次数,提高处理速度。
举例说明,显示面板分辨率为3840*2160,光栅相关参数X=4.665,角度α=arctan(1/6),原有方法需要对式(1)计算3*3840*2160次,新方法只需要对式(1)计算6*933次,即计算量只有之前的0.022%。
此外,本发明提出的快速算法由于跟分辨率无关,只与裸眼立体装置的光栅参数相关,因此计算量不随分辨率的提高而上升。另外由于该快速算法具有很好的实时性,对于需要根据观看者位置动态调整子像素映射表的应用而言,本方法具有极大的实用价值。
附图说明
图1为本发明裸眼立体显示子像素映射表的快速生成方法的流程图。
具体实施方式
下面结合附图详细说明本发明的优选实施例。
实施例一
任意一个有理数,都可以用即约分数来表示,即
其中cotN∈N,cotM∈Z,cotN与cotM之间互质。倾斜角α为光栅与液晶面板垂直方向的夹角。
其中XN∈N,XM∈Z,XN与XM之间互质。
令
这样N(k,l)=f(k,l)*Ntot (5)
式(4)等价于
对于任意k(k=0,1,2,…3W-1),有k=kk+n*XM,其中
kk=kmodXM,kk=0,1,2,…,XM-1 (7.a)
对第l0行第k个子像素(k,l0)其对应的计算公式为
即f(k,l0)=f(kk,l0),其中kk=kmodXM,第l0行前XM个值为其重复模板。
对于任意l(l=0,1,2,…H-1),有l=ll+m*cotN,其中
ll=lmodcotN,ll=0,1,2,…,cotN-1 (9.a)
对第l行第k个子像素(k,l)其对应的计算公式为
即f(k,l)=f(k-3m*cotM,ll),其中ll=lmodcotN,说明行方向上,以前cotN行为模板进行周期性重复,只是列坐标相应调整-3m*cotM。
结合式(10)、(8)和(5)可知,对于任意子像素(k,l)其对应的视点映射计算公式为
N(k,l)=f(k,l)*Ntot
=f(k-3m*cotM,ll)*Ntot
=f(km,ll)*Ntot (11)
其中km=(k-3m*cotM)modXM,km=0,1,2,...XM-1,
ll=lmodcotN,ll=0,1,2,…,cotN-1
图1给出了裸眼立体显示系统中,面板子像素视点映射表的快速生成方法,具体包括如下步骤:
步骤S1.计算tan(α)的即约分式表达
步骤S2.光栅水平方向覆盖RGB子像素个数X值的即约分式表达
步骤S3.分配二维数组tmp,尺寸为cotN*XM
步骤S4.按公式(1)计算N(k,l),其中l从0到cotN-1,k从0到XM,存入tmp中
步骤S5.按照显示面板子像素尺寸,分配子像素映射表N,尺寸为H*W*3
步骤S6.对第l行,根据式(11)计算对应在tmp中的行ll,以及起始偏移km
步骤S7.将tmp中的第ll行作为循环数组,以km为起点,对数组N中的第l行进行赋值
步骤S8.重复步骤6和7直至映射表N的H行赋值完毕
综上所述,本发明提出的裸眼立体显示子像素映射表的快速生成方法,采用与显示面板分辨率无关的二维循环数组(尺寸大小为cotN*XM)来描述整个映射表的所有取值,使得映射表子像素单元的计算次数从H*W*3大幅降低到cotN*XM次;可大幅降低计算次数,提高处理速度。
举例说明,显示面板分辨率为3840*2160,光栅相关参数X=4.665,角度α=arctan(1/6),原有方法需要对式(1)计算3*3840*2160次,新方法只需要对式(1)计算6*933次,即计算量只有之前的0.022%。
此外,本发明提出的快速算法由于跟分辨率无关,只与裸眼立体装置的光栅参数相关,因此计算量不随分辨率的提高而上升。另外由于该快速算法具有很好的实时性,对于需要根据观看者位置动态调整子像素映射表的应用而言,本方法具有极大的实用价值。
这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。