CN111009027B - 一种利用3d lut实现色彩校正的方法和显示设备 - Google Patents
一种利用3d lut实现色彩校正的方法和显示设备 Download PDFInfo
- Publication number
- CN111009027B CN111009027B CN201911376533.9A CN201911376533A CN111009027B CN 111009027 B CN111009027 B CN 111009027B CN 201911376533 A CN201911376533 A CN 201911376533A CN 111009027 B CN111009027 B CN 111009027B
- Authority
- CN
- China
- Prior art keywords
- color data
- original color
- vertexes
- lut
- tetrahedron
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000012937 correction Methods 0.000 title claims abstract description 15
- 238000005070 sampling Methods 0.000 claims abstract description 23
- 239000011159 matrix material Substances 0.000 claims description 44
- 238000004364 calculation method Methods 0.000 claims description 18
- 230000015654 memory Effects 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 5
- 230000009977 dual effect Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 14
- 238000013507 mapping Methods 0.000 description 6
- 239000004973 liquid crystal related substance Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 1
- RASMOUCLFYYPSU-UHFFFAOYSA-N 2-amino-5-(3,4-dimethoxyphenyl)-6-methylpyridine-3-carbonitrile Chemical compound C1=C(OC)C(OC)=CC=C1C1=CC(C#N)=C(N)N=C1C RASMOUCLFYYPSU-UHFFFAOYSA-N 0.000 description 1
- OGSPWJRAVKPPFI-UHFFFAOYSA-N Alendronic Acid Chemical compound NCCCC(O)(P(O)(O)=O)P(O)(O)=O OGSPWJRAVKPPFI-UHFFFAOYSA-N 0.000 description 1
- 102100022595 Broad substrate specificity ATP-binding cassette transporter ABCG2 Human genes 0.000 description 1
- 101000823298 Homo sapiens Broad substrate specificity ATP-binding cassette transporter ABCG2 Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/55—Radiosity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种利用3D LUT实现色彩校正的方法和显示设备,包括:S1、对原始颜色空间的三个分量分别进行离散采样,得到(n‑1)3个最小立方体单元,并对其进行划分得6个四面体;S2、将原始颜色数据划分为高位和低位并输入给PL模块,PL模块根据高位确定包围原始颜色数据的最小立方体单元的8个顶点的地址,根据低位从8个顶点的地址中寻找输入的原始颜色数据所在的四面体的4个顶点的地址,从颜色查找表中找到4个顶点对应的采样点颜色数据;S3、将最小立方体单元分别乘旋转矩阵MAT_A、MAT_B和MAT_C,计算原始颜色数据的权重;S4、对采样点颜色数据和同一个四面体的4个顶点相对于原始颜色数据的权重加权求和。本发明能节约FPGA芯片内部的片内RAM资源。
Description
技术领域
本发明属于视频显示领域,更具体地说,涉及一种利用3DLUT实现色彩校正的方法和显示设备。
背景技术
在视频显示领域,尤其是在广电行业的专业色彩监看领域。在显示设备上3D查找表(3DLUT,3D Look Up Table)的应用非常普遍,通过在显示设备上加载3DLUT可以实现色域映射。通过色域映射可以实现显示设备的校色和Log监看模式.显示设备通过3DLUT将监视器的实际色域转换为标准色域(如Rec.709),而Log监看模式则是将相机的Log色彩空间映射到标准色域(如Rec.709)。Log色彩空间是摄像机的一种色彩风格,由于其曝光曲线是非线性的,并且曲线近似于对数(Logarithmic)函数故而得名。
在硬件处理上要想实现3DLUT功能,主要是要实现颜色查找表的加载和三维插值的计算。颜色查找表是指离散的原始色彩数据和校正后色彩数据的三维映射表,颜色数据由三个分量(如R、G、B分量)组成,通过在原始色彩数据的三个分量上等间隔的离散采样。将原始色彩数据分为相邻网格点组成的最小立方体单元。对输入的原始颜色数据周围抽取若干的点,这些若干个点必须能构成一个封闭的多边形,在多边形内部进行三维插值。三维插值的计算中的内插算法可采用:三线性插值(trilinear interpolation),四面体插值(tetrahedral interpolation)。
申请号为200710121830.X,公开日为2008年2月13日,专利名称为一种色域映射实时处理方法及实时处理电路的发明公开了一种四面体插值的色域映射方案。先将颜色查找表中离散的颜色数据分为四类格点,将其分别存入四组查找表存储器。输入待校正的原始颜色数据,根据该颜色数据,在原始颜色空间中抽取四个格点,并且解码所述的四个格点,这四个格点要求能够构成一个四面体,且包含原始颜色数据。得到上述四个格点的校正后的颜色数据。通过原始颜色数据在最小立方体单元中的相对坐标,得到输入的原始颜色数据在四面体中的权重。通过加权计算得到校正后的颜色数据。
四面体权重计算的方法如下:假设四面体的四个顶点为A,B,C,D,与之对应的目标颜色数据为A′,B′,C′,D′。输入的原始颜色数据为P与之对应的目标颜色数据为P′。P对于A,B,C,D所对应的权重为α,β,γ,κ。[α,β,γ,κ]分别为四个小四面体[BCDP,ACDP,ABDP,ABCP]与四面体ABCD的体积比。
P′=α*A+β*B+γ*C+κ*D;
该方法的不足之处是进行四面体插值时,需要占用大量的硬件乘法器资源。且在xilinx公司的FPGA芯片上SpartanIII xc3s400上的实验表明,采用上述发明构成的电路,其允许的最大工作频率只能达到80MHz,而目前前沿的4K信号处理要求显示设备的最大工作频率要达到297MHz,该方法明显无法在4K显示设备上使用。对此,有必要提出一种有效的解决办法
发明内容
1.要解决的问题
针对现有技术中进行四面体插值时,需要占用大量的硬件乘法器资源的问题,本发明提供一种利用3DLUT实现颜色校正的方法和显示设备,能够有效节约硬件乘法器资源且提高最大工作频率。
2.技术方案
为了解决上述问题,本发明所采用的技术方案如下:一种利用3D LUT实现色彩校正的方法,包括以下步骤:
S1、对原始颜色空间的三个分量分别进行离散采样,得到(n-1)3个最小立方体单元,并对最小立方体单元进行划分得到6个四面体,其中,n为对原始颜色空间的三个分量分别进行离散采样的点数;
S2、将原始颜色数据划分为高位和低位,根据高位来确定包围原始颜色数据的最小立方体单元的8个顶点的地址,根据低位从所述8个顶点的地址中确定原始颜色数据所在的四面体的4个顶点的地址,根据4个顶点的地址从颜色查找表中找到4个顶点对应的采样点颜色数据;
S3、将最小立方体单元乘三维旋转矩阵MAT_A使得最小立方体单元的俯视图为一个六边形,然后再将最小立方体单元分别乘二维旋转矩阵MAT_B和MAT_C使得斜线α和斜线β在旋转之后分别和X轴重合,然后计算出原始颜色数据与所述四面体的每个面的距离,再分别计算所述四面体的4个顶点相对于原始颜色数据的权重;所谓顶点相对于原始颜色数据的权重就是原始颜色数据与一个四面体的一个面的距离除以顶点与该四面体的该相应面的距离,比如原始颜色数据点P到四面体的一个面BCD的距离除以顶点A到面BCD的距离即为顶点A相对于原始颜色数据点P的权重,4个顶点有4个采样点颜色数据、4个权重。
S4、对步骤S2中的4个顶点的采样点颜色数据和S3中的4个顶点相对于原始颜色数据的权重加权求和得到目标颜色数据。
本技术方案通过三维旋转和二维旋转来优化权重的计算流程,使其在硬件处理中可以消耗更少的硬件乘法器,并且提高最大工作频率。
进一步地,所述步骤S1中的6个四面体共用最小立方体单元的体对角线c0c6。最小立方体单元有多条体对角线,采用本发明中的划分方法,使6个四面体共用同一个体对角线c0c6,可以降低运算量,提升运算效率。
进一步地,所述步骤S3中,
所述三维旋转矩阵
所述二维旋转矩阵
所述二维旋转矩阵
或,所述三维旋转矩阵
所述二维旋转矩阵
所述二维旋转矩阵
进一步地,所述步骤S3中,
所述三维旋转矩阵
所述二维旋转矩阵
所述二维旋转矩阵
或,所述三维旋转矩阵
所述二维旋转矩阵
所述二维旋转矩阵
进一步地,所述步骤S2中的原始颜色数据的高位位数为低位位数为其中,n为对原始颜色空间的三个分量分别进行离散采样的点数,L为原始颜色数据的位数。
本发明同时提供一种利用3D LUT实现色彩校正的显示设备,包括视频信号接收器、PL模块、PS模块、FLASH存储单元、显示面板,所述PL模块包括3D LUT模块,所述视频信号接收器和PL模块通讯连接,所述PL模块分别和PS模块、显示面板通讯连接,所述PS模块接收3D LUT文件并将其解析形成颜色查找表数据存入FLASH存储单元,PL模块根据颜色查找表数据对视频信号接收器传输的原始颜色数据进行处理后传输给显示面板。
进一步地,所述3D LUT模块包括2个双端口RAM。
3.有益效果
相比于现有技术,本发明的有益效果为:
(1)本发明有效节约了FPGA芯片内部的片内RAM资源,提高了最大运行频率,简化了3D LUT加载的流程;
(2)本发明设计合理,易于实现。
附图说明
图1为本发明中的显示设备电路框图;
图2为本发明的流程图;
图3为本发明的硬件工作流程图;
图4为本发明实的包围原始颜色数据的最小立方体单元示意图;
图5a为本发明的最小立方体单元内部通过面[c0,c1,c6,c7]剖分为四面体的示意图;
图5b为本发明的最小立方体单元内部通过面[c0,c2,c6,c4]剖分为四面体的示意图;
图5c为本发明的最小立方体单元内部通过面[c0,c5,c6,c3]剖分为四面体的示意图;
图5d为本发明的最小立方体单元内部6个四面体剖分示意图;
图6a为本发明的最小立方体单元进行三维旋转之后的示意图;
图6b为图6a的俯视图;
图7为本发明的最小立方体单元沿Z轴逆时针方向旋转45°示意图;
图8为本发明的最小立方体单元沿X轴顺时针方向旋转54.7356°示意图;
图9a为本发明中当点P位于图6b中三角形Ⅱ内部的示意图;
图9b为图9a沿中心点c6″逆时针旋转30°之后的示意图;
图10a为本发明中当点P位于图6b中三角形Ⅰ内部的示意图;
图10b为图10a沿中心点c6″顺时针旋转30°之后的示意图。
图中:11:视频信号接收器;12:FPGA芯片;13:液晶显示面板;14:FLASH存储单元;15:USB接口。
具体实施方式
下面结合具体实施例对本发明进一步进行描述。
实施例一
图1为本发明的显示设备系统框图,包括:视频信号接收器11,FPGA(现场可编程门阵列,Field Programmable Gate Array)芯片12,液晶显示面板13,FLASH存储单元14,USB接口15。
视频信号接收器11可以包含各种信号转换芯片,负责将接入显示设备的各种视频信号转换成FPGA芯片12能够识别的信号形式。具体例如,SDI信号的均衡芯片或者HDMI信号的接收芯片,在本实施例中HDMI和SDI的信号最高分辨率和帧率支持3840*2160 60Hz。
FPGA芯片12:在本实施例中为了保证足够的工作频率,能够处理3840*2160 60Hz的信号,可以选用xilinx公司的ZYNQ系列芯片。该芯片嵌入了ARM硬核的SOC,主要分为PS(Processing System)模块和PL(Progarmmable Logic)模块两部分,PS模块一般称为可编程系统,采用双核ARM作为处理器;PL模块一般称为编程逻辑。
3DLUT模块内置于PL模块,PL模块用于实现3DLUT模块的硬件处理流程,3DLUT模块还包括2个相同的双端口RAM(Random Access Memory,随机存取存储器)。每一个双端口RAM包含两组地址输入和数据输出,用2个双端口RAM可以并行对四面体中的4个采样点颜色数据进行查找。具体实施时,也可以采用4个单端口的RAM代替两个双端口的RAM。
PS模块用于实现3DLUT文件导入并把3D LUT文件解析成颜色查找表数据然后写入PL模块。
3DLUT文件通过USB接口导入并存储在FLASH存储单元14中,之后可以直接从FLASH存储单元14中调用3DLUT文件。其中FLASH存储单元14中同时存储系统文件和配置文件如3DLUT文件,从而避免将3D LUT文件存储在额外的存储单元中,进而减少硬件出问题的概率。
液晶显示面板13负责接收PL模块输出的颜色数据和视频同步信息,并显示相应的输入图像。
USB接口15用来挂载U盘,用户通过操作菜单将U盘中的3DLUT文本文件通过PS模块导入显示设备内部。
具体的连接关系为:视频信号接收器11和FPGA芯片12中的PL模块通讯连接,PL模块分别和PS模块、液晶显示面板13连接,PS模块接收从USB接口15导入的3D LUT文件并将其解析形成颜色查找表数据然后存入FLASH存储单元14,并将FLASH存储单元14中存储的颜色查找表数据传输给PL模块,PL模块对视频信号接收器11传输的原始颜色数据和PS模块传输的颜色查找表数据进行处理后传输给液晶显示面板13。
具体的方法流程如图2所示,步骤S11,将颜色查找表按照从小到大的顺序写入2个双端口RAM中。
本实施例中的颜色查找表是一张离散的原始颜色数据和采样点颜色数据的映射表,其结构如表一所示,假设颜色数据的三个颜色分量为10比特颜色深度的R、G、B,3DLUT的大小为17*17*17。在表一中指出了双端口RAM中的数据结构,那么双端口RAM的大小就为17*17*17*30Bit。
表一
步骤S12,通过原始颜色数据,得到其所在的四面体的4个顶点的采样点颜色数据。首先,需要对原始颜色空间的三个分量进行均分,如图4所示,对原始颜色空间的每一个颜色分量上进行17个点的均匀采样,通过三维空间中17*17*17个采样点将全部的原始颜色空间均分为16*16*16个最小立方体单元。具体实施时,也可以对每一个颜色分量进行9、1 1、17、33、65等点数的均匀采样,具体采用多少点数的采样需要在硬件资源和计算效率之间平衡,具体到本实施例,对每一个颜色分量上进行17个点的均匀采样可以用较少的硬件资源获得较高的计算效率。需要说明的是,本发明中的原始颜色空间包含了所有可能出现的原始颜色数据,原始颜色数据是每一个时钟周期视频信号接收器11给3D LUT模块发送的一个颜色数据,而原始颜色数据在最小立方体单元内的相对坐标就是点P。
由于在一个最小立方体单元内进行三线性插值算法所占用的片内RAM资源是四面体插值算法的2倍,为了节约片内RAM资源本实施例采用四面体插值算法,所以需要进一步对最小立方体单元进行四面体剖分,假设这个最小立方体单元的八个顶点分别为c0,c1,c2,c3,c4,c5,c6,c7。通过图5a中的面[c0,c1,c6,c7],图5b中的面[c0,c2,c6,c4],图5c中的面[c0,c5,c6,c3]将上述的最小立方体单元分割为图5d中的6个四面体,使6个四面体共用最小立方体单元的体对角线c0c6。采用本实施例中的划分方法,使6个四面体共用同一个体对角线c0c6,可以降低运算量,提升运算效率。
对信号接收器11接收到的原始颜色数据进行划分,原始颜色数据是每一个时钟周期视频信号接收器11给3D LUT模块发送的一个颜色数据,原始颜色空间包含了所有的原始颜色数据,将原始颜色数据划分为高位和低位,具体的划分方法根据3D LUT的尺寸和原始颜色数据的长度位数L来决定,若3D LUT的尺寸为n*n*n,则原始颜色数据的高位位数为低位位数为/>n为对原始颜色空间的三个分量分别进行离散采样的点数。在本实施例中,原始颜色数据的位数为10bit,3D LUT的尺寸为17*17*17,则原始颜色数据的高位数为4bit,低位数为6bit,PL模块根据输入的原始颜色数据的高4位来寻找输入的原始颜色数据所在的最小立方体单元的8个顶点的地址,在本实施例中,3DLUT的采样点为17,原始颜色数据的三个分量为R、G、B,则最小立方体单元的8个顶点c0、c1、c2、c3、c4、c5、c6、c7的地址的计算过程如下:
顶点c0的地址=R高4位+17*G高4位+17*17*G高4位;
顶点c1的地址=顶点c0的地址+1;
顶点c2的地址=顶点c0的地址+17+1;
顶点c3的地址=顶点c0的地址+17;
顶点c4的地址=顶点c0的地址+17*17;
顶点c5的地址=顶点c0的地址+17*17+1;
顶点c6的地址=顶点c0的地址+17*17+17+1;
顶点c7的地址=顶点c0的地址+17*17+17。
然后再从8个顶点的地址中寻找输入的原始颜色数据所在的四面体的4个顶点的地址,根据图5d中四面体剖分的结果可以得到分别位于图6b中的6个四面体Ⅰ、Ⅱ、Ⅲ、Ⅳ、Ⅴ和Ⅵ中的4个顶点的地址和最小立方体单元的8个顶点c0、c1、c2、c3、c4、c5、c6、c7的地址之间的映射关系:
四面体Ⅰ的4个顶点的地址为[c0的地址]、[c4的地址]、[c5的地址]、[c6的地址];
四面体Ⅱ的4个顶点的地址为[c0的地址]、[c5的地址]、[c1的地址]、[c6的地址];
四面体Ⅲ的4个顶点的地址为[c0的地址]、[c1的地址]、[c2的地址]、[c6的地址];
四面体Ⅳ的4个顶点的地址为[c0的地址]、[c2的地址]、[c3的地址]、[c6的地址];
四面体Ⅴ的4个顶点的地址为[c0的地址]、[c3的地址]、[c7的地址]、[c6的地址];
四面体Ⅵ的4个顶点的地址为[c0的地址]、[c7的地址]、[c4的地址]、[c6的地址]。
然后将选定的4个顶点的地址输入给双端口RAM中,可以得到相应的采样点颜色数据。
如图3所示,通过FPGA内硬件处理流程中的步骤31得到原始颜色数据所在的最小立方体单元的8个顶点的地址。通过FPGA内硬件处理流程中的步骤35得到原始颜色数据所在的四面体的4个顶点的地址,具体做法是对步骤31中产生的8个顶点的地址进行选择,从8个顶点的地址中选择4个顶点的地址,寻找输入的原始颜色数据所在的四面体的4个顶点的地址。其中最小立方体单元内的每一个四面体都对应一种排列组合,每一种排列组合为4个顶点的地址,选择4个顶点的地址的意义在于利用顶点的地址对颜色查找表进行查找从而得到与该顶点的地址相对应的采样点颜色数据,在本实施例中通过双端口RAM来完成相应的查找。
步骤S13中,通过三次旋转矩阵的计算,计算出4个顶点相对于原始颜色数据的权重。在本实施例中,需要经过一次三维旋转矩阵,两次二维旋转矩阵的计算,具体实施时,也可进行三次三维旋转矩阵或者两次三维旋转矩阵和一次二维旋转矩阵的计算得到,但后面两种方式会造成资源的浪费因而不具有实施的意义。
如图3所示,在本实施例中,通过FPGA内硬件处理流程中的步骤32,33,34,36完成步骤S13中的计算流程。
步骤32中的三维矩阵计算可以对上述最小立方体单元进行三维旋转,使得旋转后的最小立方体单元在俯视图上为一个六边形,如图6b所示。具体做法为:先将最小立方体单元沿Z轴逆时针旋转45°,将最小立方体单元[c0,c1,c2,c3,c4,c5,c6,c7]变换为最小立方体单元[c0′,c1′,c2′,c3′,c4′,c5′,c6′,c7′],如图7所示,其相应的三维旋转矩阵为MAT_Rotate_Z。完成上述步骤之后,将上述最小立方体单元沿X轴顺时针旋转54.7356°,将最小立方体单元[c0′,c1′,c2′,c3′,c4′,c5′,c6′,c7′]变换为最小立方体单元[c0″,c1″,c2″,c3″,c4″,c5″,c6″,c7″],如图8所示,其对应的三维旋转矩阵为MAT_Rotate_X。
根据矩阵乘法的结合律可以得到MAT_A=MAT_Rotate_Z*MAT_Rotate_X。公式如下:
假设输入旋转之前某一个点为V,旋转之后该点为V′,
如前所述,因为要将最小立方体单元沿Z轴逆时针旋转45°,所以旋转之后图8中直线c0'c6'和直线c0'c4'的夹角为需要注意的是图8中c0”和c0'是重合的。
MAT_A*V=MAT_Rotate_Z*MAT_Rotate_X*V=V′,
通过上述步骤可以得到步骤32中的三维旋转矩阵MAT_A为:
本实施例中,假设输入原始颜色数据在最小立方体单元中的相对坐标为点P。点P的坐标为X、Y、Z,在本实施例中出于简化计算的目的,不计算旋转之后的Z坐标,又由于上述矩阵中的一个参数为0,所以在步骤32中只使用了5个硬件乘法器,大大节约了硬件资源。
在本实施例中,图6a中的四面体I的四个顶点为A、B、C、D,为了便于描述,将图6a中的立方体图形切换为如图6b所示的俯视图,在切换的时候,我们要知道最小立方体单元的8个顶点都可以作为俯视后的六边形的中心,在本实施例中,以其中一个顶点c6(同时也是四面体I的一个顶点D)为俯视后的六边形的中心D′,以顶点D′为坐标系的原点建立一个坐标系,与X轴的夹角为+30°的斜线定义为斜线α,与X轴的夹角为-30°的斜线定义为斜线β。四面体I在俯视图上的投影为三角形I′,面ABD,BCD在俯视图上的投影为直线A′D′,D′C′。可以发现点P到面ABD的垂直距离即为点P到直线A′D′的垂直距离,点P到面BCD的垂直距离即为点P到直线D′C′的距离。点P到直线A′D′的距离为点P的X坐标,点P到直线D’C’的距离还需要借助图3中的步骤33和34才能计算求解。
步骤33和步骤34中,通过乘二维矩阵的方法对图6b中的俯视图构成的二维平面进行旋转。
步骤33对上述二维平面沿中心点逆时针旋转30°,对应的旋转矩阵为MAT_B。
步骤34对上述二维平面沿中心点顺时针旋转30°,对应的旋转矩阵为MAT_C。
其中:MAT_B和MAT_C的计算公式如下所示:
上述二维旋转矩阵的意义是:使得斜线α和斜线β在旋转之后分别和X轴重合,以便求图6b中的六边形内任意一点到斜线α或者斜线β的垂直距离。
如图9a、图9b和图10a、图10b所示,图9b中旋转后点P的Y坐标即为旋转前图9a点P到直线c3”c5”的垂直距离,图10b中旋转后点P的Y坐标即为旋转前图10a点P到直线c1”c7”的垂直距离。
步骤36负责计算输入原始颜色数据到四面体四个面的距离。假设输入原始颜色数据为点P,原始颜色数据三个分量的低六位即为点P在最小立方体单元内的相对坐标X、Y、Z,量化范围为[0-1]。步骤32之后对点P进行三维旋转,得到点P_32的坐标为X32、Y32、Z32。步骤33和34之后对点P_32进行二维旋转,得到点P_33的坐标为X33、Y33、Z33,点P_34的坐标为X34、Y34、Z34。假设输入原始颜色数据和其所在的四面体的四个面的距离为D0、D1、D2、D3。先计算输入原始颜色数据位于图6a中哪一个四面体中,计算过程如下:
若X32≥0且Y33<0且Y34<0:则点P位于四面体Ⅴ;
若X32≥0且Y33≥0且Y34<0:则点P位于四面体Ⅵ;
若X32≥0且Y33≥0且Y34≥0:则点P位于四面体Ⅰ;
若X32<0且Y33≥0且Y34≥0:则点P位于四面体Ⅱ;
若X32<0且Y33<0且Y34≥0:则点P位于四面体Ⅲ;
若X32<0且Y33<0且Y34<0:则点P位于四面体Ⅳ;
得到输入原始颜色数据位于哪一个四面体之后,继续计算输入原始颜色数据到该四面体四个面的垂直距离,计算过程如下:
如果输入RGB位于四面体Ⅰ,
输入RGB和四个面的距离分别为∣1-X∣、∣Z∣、∣X32∣、∣Y34∣;
如果输入RGB位于四面体Ⅱ,
输入RGB和四个面的距离分别为∣1-Y∣、∣Z∣、∣Y33∣、∣X32∣;
如果输入RGB位于四面体Ⅲ,
输入RGB和四个面的距离分别为∣1-Y∣、∣X∣、∣Y34∣、∣Y33∣;
如果输入RGB位于四面体Ⅳ,
输入RGB和四个面的距离分别为∣1-Z∣、∣X∣、∣X32∣、∣Y34∣;
如果输入RGB位于四面体Ⅴ,
输入RGB和四个面的距离分别为∣1-Z∣、∣Y∣、∣Y33∣、∣X32∣;
如果输入RGB位于四面体Ⅵ,
输入RGB和四个面的距离分别为∣1-X∣、∣Y∣、∣Y34∣、∣Y33∣。
步骤S14,进行加权求和得到目标颜色数据。即通过图3中的FPGA内硬件处理流程中的步骤37,完成步骤S14中的计算流程。
步骤37中,对上述4个顶点进行加权求和进而得到目标颜色数据,对4个顶点进行加权求和即是对4个顶点的采样点颜色数据和该4个顶点相对于原始颜色数据点P的权重进行加权求和,因此在加权求和之前需要得到每一个顶点的采样点颜色数据以及该顶点相对于原始颜色数据点P的权重。
我们都知道一个顶点包括该顶点的地址和采样点颜色数据,通过一个顶点的地址可以从颜色查找表中找到该顶点对应的采样点颜色数据,具体为通过步骤35中得到的四面体4个顶点的地址,根据地址从双端口RAM读取该原始颜色数据对应的采样点颜色数据,在本实施例中颜色查找表存储在双端口RAM中,可以同时得到4个顶点所对应的采样点颜色数据。
通过步骤36可以得到点P和四个面的距离,假设四面体四个顶点为A、B、C、D。那么点A相对于点P的权重,即为点P和面BCD的距离除以点A和面BCD的距离。由于上述每一个最小立方体单元的大小是相同的,所以点A和面BCD的距离是一个常数。其他顶点的计算过程依次类推。最后可以得到4个顶点所对应的相对于点P的权重。将4个顶点的采样点颜色数据和4个顶点所对应的相对于点P的权重进行加权求和得到目标颜色数据。在本实施例中,在FPGA中需要将浮点运算转换为定点运算,需要4组整型乘法器进行上述的定点运算,其中由于颜色数据的分量为3,每一组整型乘法器又由3个整型乘法器构成。
实施例二
实施例二其他部分与实施例一均相同,区别之处在于:实施例一中的最小立方体单元在旋转之后位于顶点c0的正上方,而实施例二中最小立方体单元在旋转之后位于顶点c0的正下方,因此,
则
实施例一中的六边形旋转±30°,而在本实施例中可以旋转±60°,因此
相应地,先计算输入原始颜色数据位于图6a中哪一个四面体中的计算过程如下:
若X32≥0且X33≥0且X34<0:则点P位于四面体Ⅴ;
若X32≥0且X33≥0且X34≥0:则点P位于四面体Ⅵ;
若X32≥0且X33<0且X34≥0:则点P位于四面体Ⅰ;
若X32<0且X33<0且X34≥0:则点P位于四面体Ⅱ;
若X32<0且X33<0且X34<0:则点P位于四面体Ⅲ;
若X32<0且X33<0且X34≥0:则点P位于四面体Ⅳ;
得到输入原始颜色数据位于哪一个四面体之后,继续计算输入原始颜色数据到该四面体四个面的垂直距离,计算过程如下:
如果输入RGB位于四面体Ⅰ,
输入RGB和四个面的距离分别为∣1-X∣、∣Z∣、∣X32∣、∣X34∣;
如果输入RGB位于四面体Ⅱ,
输入RGB和四个面的距离分别为∣1-Y∣、∣Z∣、∣X33∣、∣X32∣;
如果输入RGB位于四面体Ⅲ,
输入RGB和四个面的距离分别为∣1-Y∣、∣X∣、∣X34∣、∣X33∣;
如果输入RGB位于四面体Ⅳ,
输入RGB和四个面的距离分别为∣1-Z∣、∣X∣、∣X32∣、∣X34∣;
如果输入RGB位于四面体Ⅴ,
输入RGB和四个面的距离分别为∣1-Z∣、∣Y∣、∣X33∣、∣X32∣;
如果输入RGB位于四面体Ⅵ,
输入RGB和四个面的距离分别为∣1-X∣、∣Y∣、∣X34∣、∣X33∣。
需要说明的是,在本发明中,三维矩阵MAT_A的取值可以有实施例一和实施例二中的选择,MAT_B和MAT_C的取值也有实施例一和实施例二中的选择,但MAT_B和MAT_C总是在一起的,即MAT_A可以用两个实施例中的取值分别和MAT_B和MAT_C的两个取值共同搭配,而不是MAT_A用两个实施例中的取值分别和MAT_B和MAT_C的两个取值分别搭配,具体来说,关于三维矩阵MAT_A和二维矩阵MAT_B和MAT_C的取值共有以下四种可能:
(1)
/>
(2)
(3)
(4)
本发明可以应用在手机、监视器、投影仪等设备中,且颜色数据不局限于RGB格式,还可以是YCbCr格式,本发明的硬件处理电路可以在ASIC或者FPGA中实现,在ASIC上实现时可以适当减少流水线级数。因为相同的设计,增加流水线级数可以增加最大工作频率,而ASIC的工作频率比FPGA大的多,所以就不需要增加流水线级数。在本实施例中采用ZYNQ7035芯片中,实现了4K图像的实时颜色处理,硬件处理电路的工作频率为297MHz,流水线级数为17。本发明能够用较少的硬件资源实现较高的工作频率,有效节约了FPGA芯片内部的片内RAM资源,提高了最大运行频率,简化了3D LUT加载的流程。
Claims (7)
1.一种利用3D LUT实现色彩校正的方法,其特征在于:包括以下步骤:
S1、对原始颜色空间的三个分量分别进行离散采样,得到(n-1)3个最小立方体单元,并对最小立方体单元进行划分得到6个四面体,其中,n为对原始颜色空间的三个分量分别进行离散采样的点数;
S2、将原始颜色数据划分为高位和低位,根据高位来确定包围原始颜色数据的最小立方体单元的8个顶点的地址,根据低位从所述8个顶点的地址中确定原始颜色数据所在的四面体的4个顶点的地址,根据4个顶点的地址从颜色查找表中找到4个顶点对应的采样点颜色数据;
S3、将最小立方体单元乘三维旋转矩阵MAT_A使得最小立方体单元的俯视图为一个六边形,然后再将最小立方体单元分别乘二维旋转矩阵MAT_B和MAT_C使得斜线α和斜线β在旋转之后分别和X轴重合,然后计算出原始颜色数据与所述四面体的每个面的距离,再分别计算所述四面体的4个顶点相对于原始颜色数据的权重,所述顶点相对于原始颜色数据的权重的计算方式为:原始颜色数据与一个四面体的一个面的距离除以顶点与该四面体的该相应面的距离;
S4、对步骤S2中的4个顶点的采样点颜色数据和S3中的4个顶点相对于原始颜色数据的权重加权求和得到目标颜色数据。
2.根据权利要求1所述的利用3D LUT实现色彩校正的方法,其特征在于:所述步骤S1中的6个四面体共用最小立方体单元的体对角线(c0c6)。
3.根据权利要求2所述的利用3D LUT实现色彩校正的方法,其特征在于:所述步骤S3中,
所述三维旋转矩阵
所述二维旋转矩阵
所述二维旋转矩阵
或,所述三维旋转矩阵
所述二维旋转矩阵
所述二维旋转矩阵
4.根据权利要求2所述的利用3D LUT实现色彩校正的方法,其特征在于:所述步骤S3中,
所述三维旋转矩阵
所述二维旋转矩阵
所述二维旋转矩阵
或,所述三维旋转矩阵
所述二维旋转矩阵
所述二维旋转矩阵
5.根据权利要求1、2、3或4所述的利用3D LUT实现色彩校正的方法,其特征在于:所述步骤S2中的原始颜色数据的高位位数为低位位数为/>其中,n为对原始颜色空间的三个分量分别进行离散采样的点数,L为原始颜色数据的位数。
6.一种采用权利要求1-5中任一权利要求所述的利用3D LUT实现色彩校正的方法实现3D LUT实现色彩校正的显示设备,其特征在于:包括视频信号接收器、PL模块、PS模块、FLASH存储单元、显示面板,所述PL模块包括3D LUT模块,所述视频信号接收器和PL模块通讯连接,所述PL模块分别和PS模块、显示面板通讯连接,所述PS模块接收3D LUT文件并将其解析形成颜色查找表数据存入FLASH存储单元,PL模块根据颜色查找表数据对视频信号接收器传输的原始颜色数据进行处理后传输给显示面板。
7.根据权利要求6所述的利用3D LUT实现色彩校正的显示设备,其特征在于:所述3DLUT模块包括2个双端口RAM。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911376533.9A CN111009027B (zh) | 2019-12-27 | 2019-12-27 | 一种利用3d lut实现色彩校正的方法和显示设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911376533.9A CN111009027B (zh) | 2019-12-27 | 2019-12-27 | 一种利用3d lut实现色彩校正的方法和显示设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111009027A CN111009027A (zh) | 2020-04-14 |
CN111009027B true CN111009027B (zh) | 2023-12-29 |
Family
ID=70118979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911376533.9A Active CN111009027B (zh) | 2019-12-27 | 2019-12-27 | 一种利用3d lut实现色彩校正的方法和显示设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111009027B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111770320B (zh) * | 2020-07-14 | 2022-06-21 | 深圳市洲明科技股份有限公司 | 一种色彩校正方法和装置、色彩校正设备和存储介质 |
CN112017105B (zh) * | 2020-08-13 | 2024-03-26 | 深圳市洲明科技股份有限公司 | 颜色校正fpga实现装置和方法、颜色校正设备和存储介质 |
CN115706764B (zh) * | 2021-08-12 | 2023-09-19 | 荣耀终端有限公司 | 视频处理方法、装置、电子设备和存储介质 |
CN115083303B (zh) * | 2022-08-16 | 2022-11-08 | 成都索贝数码科技股份有限公司 | 移动视角下led显示屏空间色彩校正方法、介质及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108271419A (zh) * | 2016-10-31 | 2018-07-10 | 华为技术有限公司 | 一种色温调节方法、装置以及图形用户界面 |
CN109615666A (zh) * | 2018-11-12 | 2019-04-12 | 北京中科慧眼科技有限公司 | 一种三维颜色空间数据转换方法与装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5620734B2 (ja) * | 2010-07-26 | 2014-11-05 | キヤノン株式会社 | 色処理装置およびその方法 |
-
2019
- 2019-12-27 CN CN201911376533.9A patent/CN111009027B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108271419A (zh) * | 2016-10-31 | 2018-07-10 | 华为技术有限公司 | 一种色温调节方法、装置以及图形用户界面 |
CN109615666A (zh) * | 2018-11-12 | 2019-04-12 | 北京中科慧眼科技有限公司 | 一种三维颜色空间数据转换方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111009027A (zh) | 2020-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111009027B (zh) | 一种利用3d lut实现色彩校正的方法和显示设备 | |
CN101123080A (zh) | 一种色域映射实时处理方法及实时处理电路 | |
US6747663B2 (en) | Interpolating sample values from known triangle vertex values | |
Gribbon et al. | A real-time FPGA implementation of a barrel distortion correction algorithm with bilinear interpolation | |
JP2666523B2 (ja) | 色変換装置 | |
CN109658337B (zh) | 一种图像实时电子消旋的fpga实现方法 | |
EP0736841A1 (en) | Method and apparatus for image rotation | |
CN105354809B (zh) | 一种基于输出图像像素位置索引的预畸变方法和装置 | |
CN201780766U (zh) | 数字式头盔显示器实时电子预畸变校正系统 | |
US10424269B2 (en) | Flexible addressing for a three dimensional (3-D) look up table (LUT) used for gamut mapping | |
WO2020216085A1 (zh) | 四面体插值计算方法及装置、色域转换方法及装置、介质 | |
US20060164662A1 (en) | Color conversion using barycentric projections | |
Kim et al. | 2X super-resolution hardware using edge-orientation-based linear mapping for real-time 4K UHD 60 fps video applications | |
US20080284793A1 (en) | Hue and saturation control module | |
US7050065B1 (en) | Minimalist color space converters for optimizing image processing operations | |
US10127887B2 (en) | Acceleration of color conversion | |
CN111179370B (zh) | 一种图片生成方法、装置、电子设备及存储介质 | |
US10453171B2 (en) | Multiple stage memory loading for a three-dimensional look up table used for gamut mapping | |
US11682364B2 (en) | Curvature interpolation for lookup table | |
EP0951694A2 (en) | Method and apparatus for using interpolation line buffers as pixel look up tables | |
CN108881923B (zh) | 减少jpeg编解码行缓冲容量的方法 | |
KR100695798B1 (ko) | 컬러 영상의 색역폭 변환 장치 | |
JP2010136264A (ja) | 表示データ処理装置 | |
US20080018961A1 (en) | N-Dimensional Hedral Interpolation | |
Khamaneh et al. | Real–time memory efficient SLIC accelerator for low–power applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |