CN112017105A - 颜色校正fpga实现装置和方法、颜色校正设备和存储介质 - Google Patents

颜色校正fpga实现装置和方法、颜色校正设备和存储介质 Download PDF

Info

Publication number
CN112017105A
CN112017105A CN202010810265.3A CN202010810265A CN112017105A CN 112017105 A CN112017105 A CN 112017105A CN 202010810265 A CN202010810265 A CN 202010810265A CN 112017105 A CN112017105 A CN 112017105A
Authority
CN
China
Prior art keywords
lut
interpolation
color
module
data
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.)
Granted
Application number
CN202010810265.3A
Other languages
English (en)
Other versions
CN112017105B (zh
Inventor
黄斌
李永杰
沈凌翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Zhouming Technology Co Ltd
Original Assignee
Shenzhen Zhouming Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Zhouming Technology Co Ltd filed Critical Shenzhen Zhouming Technology Co Ltd
Priority to CN202010810265.3A priority Critical patent/CN112017105B/zh
Publication of CN112017105A publication Critical patent/CN112017105A/zh
Application granted granted Critical
Publication of CN112017105B publication Critical patent/CN112017105B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Image Processing (AREA)
  • Color Image Communication Systems (AREA)

Abstract

本发明公开了一种颜色校正FPGA实现装置和方法、颜色校正设备和存储介质,所述装置包括:3D‑LUT RAM模块、插值系数计算模块、Read RAM模块、四面体插值计算模块;其中:所述3D‑LUT RAM模块用于存储3D‑LUT采样数据;所述插值系数计算模块用于计算输入像素颜色在3D‑LUT色域的映射,计算出插值系数和参与插值的3D‑LUT颜色位置;所述Read RAM模块用于根据插值系数计算模块的输出参数选择插值顶点并转换成RAM的取值地址进行读取插值点数据;所述四面体插值计算模块用于根据Read RAM模块确定的RAM取值地址,从所述3D‑LUT RAM模块中取出3D‑LUT采样数据进行插值计算。通过本发明实施例,能够有效的简化插值公式的权值计算,无误差计算出小数部分,同时支持非(2n+1)个点的3D‑LUT采样数据,3D‑LUT采样数据支持色深到16bit。

Description

颜色校正FPGA实现装置和方法、颜色校正设备和存储介质
技术领域
本发明涉及颜色校正领域,特别涉及一种颜色校正FPGA实现装置和方法、颜色校正设备和存储介质。
背景技术
3D-LUT(3D Look-Up-Table,3D颜色查找表)技术属于专业级技术应用,是专业摄影、专业显示器和电影常用的一种颜色调节技术,3D-LUT颜色调节包含颜色校正。
颜色校正使用的数据就是通过专业设备采集校准后的RGB颜色校准数据,例如输入颜色RGB(255,0,0)到显示设备进行显示,使用专业设备采集到的颜色数据不一定是标准RGB(255,0,0)显示效果,需要调节输入使专业设备采集到的显示效果为标准RGB(255,0,0)显示效果,此时的输入值就保存到3D-LUT的(255,0,0)位置的中,当该显示设备需要显示(255,0,0)时,只需要输入(255,0,0)到3D-LUT中取出之前保存的调节后的输入值用于显示就能达到颜色校正效果。
对于颜色校准,如果每个颜色都进行取值存储,则3D-LUT的数据量会非常庞大,例如10bit色深就需要210×210×210×3×10/8个字节,对于硬件实现非常不利,内存消耗的成本太高。例如,专利CN111009027A提出了一种利用3D-LUT实现颜色校正的方法和实现,其中涉及四面体插值公式的权值计算过于复杂,用到旋转矩阵计算,消耗大量乘法器,其用于确认待校正数据点所在四面体的小数部分计算存在误差,且该方案不支持采样点数为非(2n+1)数。
发明内容
有鉴于此,本发明实施例提供的一种颜色校正FPGA实现装置和方法、颜色校正设备和存储介质,能够有效的简化插值公式的权值计算,无误差计算出小数部分,同时支持非(2n+1)个点的3D-LUT采样数据,3D-LUT采样数据支持色深到16bit。
本发明解决上述技术问题所采用的技术方案如下:
根据本发明实施例的一个方面,提供的一种颜色校正FPGA实现装置,包括:3D-LUTRAM模块、插值系数计算模块、Read RAM模块、四面体插值计算模块;其中:
所述3D-LUT RAM模块,用于存储3D-LUT采样数据;
所述插值系数计算模块,用于计算输入像素颜色在3D-LUT色域的映射,计算出插值系数和参与插值的3D-LUT颜色位置;
所述Read RAM模块,用于根据所述插值系数计算模块的输出参数选择插值顶点并转换成RAM的取值地址进行读取插值点数据;
所述四面体插值计算模块,用于根据Read RAM模块确定的RAM取值地址,从所述3D-LUT RAM模块中取出3D-LUT采样数据进行插值计算。
根据本发明实施例的另一个方面,提供的一种显示系统,包括显示设备和颜色校正FPGA实现装置,所述颜色校正FPGA实现装置用于将输入的3D-LTU采样数据经过颜色校正后,输出给所述显示设备。
根据本发明实施例的另一个方面,提供的一种颜色校正FPGA实现方法,包括:
将3D-LUT采样数据写入存储在3D-LUT RAM模块中,以供外部读取;
插值系数计算模块计算输入像素颜色在3D-LUT色域的映射,计算出插值系数和参与插值的3D-LUT颜色位置;
Read RAM模块根据所述插值系数计算模块的输出参数选择插值顶点并转换成RAM的取值地址进行读取插值点数据;
四面体插值计算模块根据Read RAM模块确定的RAM取值地址,从所述3D-LUT RAM模块中取出3D-LUT采样数据进行插值计算。
根据本发明的另一个方面,提供的一种颜色校正设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现本发明实施例提供的所述的一种颜色校正FPGA实现方法的步骤。
根据本发明的另一个方面,提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有一种颜色校正FPGA实现方法的程序,所述一种颜色校正FPGA实现方法的程序被处理器执行时实现本发明实施例提供的所述的一种颜色校正FPGA实现方法的步骤。
与相关技术相比,本发明实施例提供的一种颜色校正FPGA实现装置和方法、颜色校正设备和存储介质,所述装置包括:3D-LUT RAM模块、插值系数计算模块、Read RAM模块、四面体插值计算模块;其中:所述3D-LUT RAM模块,用于存储3D-LUT采样数据;所述插值系数计算模块,用于计算输入像素颜色在3D-LUT色域的映射,计算出插值系数和参与插值的3D-LUT颜色位置;所述Read RAM模块,用于根据所述插值系数计算模块的输出参数选择插值顶点并转换成RAM的取值地址进行读取插值点数据;所述四面体插值计算模块,用于根据Read RAM模块确定的RAM取值地址,从所述3D-LUT RAM模块中取出3D-LUT采样数据进行插值计算。通过本发明实施例,将四面体插值的权值计算由一次三维矩阵加两次二维矩阵运算共13个乘法器运算简化成一个减法运算,能够有效的简化插值公式的权值计算;并且,将用于确认待校正的小数部分由模糊小数改进成无误差小数,能够无误差地计算出小数部分,有效地扩展了对3D-LUT数据兼容性,支持16bit的高色深、广色域3D-LUT数据,同时支持非(2n+1)个采样点的3D-LUT数据。从而可以有效地解决现有3D-LUT硬件实现技术中的四面体插值公式的权值计算过于复杂,消耗大量乘法器,小数部分计算存在误差,不支持采样点数为非(2n+1)数的3D-LUT数据等问题。
附图说明
图1为本发明提供的一种基于四面体插值算法的3D-LUT颜色校正的示意图。
图2为本发明实施例提供的一种颜色校正FPGA实现装置的结构示意图。
图3为本发明实施例提供的一种颜色校正FPGA实现装置中3D-LUT数据存储顺序示意图。
图4为本发明实施例提供的一种颜色校正FPGA实现装置中待校正数分割据示意图。
图5为本发明实施例提供的一种颜色校正FPGA实现装置中小数部分数据示意图。
图6为本发明实施例提供的一种颜色校正FPGA实现装置的工作流程示意图。
图7为本发明实施例提供的一种颜色校正FPGA实现装置工作时的时序图。
图8为本发明实施例提供的一种显示系统的结构示意图。
图9为本发明实施例提供的一种颜色校正FPGA实现方法的流程示意图。
图10为本发明实施例提供的一种颜色校正设备的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本发明采用3D-LUT(3D Look-Up-Table,3D颜色查找表)的四面体插值算法,通过输入颜色映射缩放结果的整数部分定位输入颜色映射到3D-LUT内的最小正方体,小数部分判断选择插值公式,如图1所示,假设输入颜色映射到3D-LUT后在P点,确定的3D-LUT最小正方体8个顶点ABCDA’B’C’D’对应的颜色值为Pa、Pb、Pc、Pd、Pa1、Pb1、Pc1、Pd1,fR、fG和fB是输入颜色映射缩放后的颜色在RGB分量上的小数部分,立方体被切割成6个四面体,小数判断条件能判定P点所在四面体,所引用的算法最终公式为下表1。
表1 3D-LUT四面体插值公式
小数比较条件 P点所在四面体 插值公式
fB>fG≥fR A’ABC (1-fB)×Pa1+(fB-fG)×Pa+(fG-fR)×Pb+fR×Pc
fB>fR>fG A’DAC (1-fB)×Pa1+(fB-fR)×Pa+(fR-fG)×Pd+fG×Pc
fR≥fB≥fG A’D’DC (1-fR)×Pa1+(fR-fB)×Pd1+(fB-fG)×Pd+fG×Pc
fR≥fG>fB A’C’D’C (1-fR)×Pa1+(fR-fG)×Pd1+(fG-fB)×Pc1+fB×Pc
fG>fR≥fB A’B’C’C (1-fG)×Pa1+(fG-fR)×Pb1+(fR-fB)×Pc1+fB×Pc
fG≥fB≥fR A’BB’C (1-fG)×Pa1+(fG-fB)×Pb1+(fB-fR)×Pb+fR×Pc
从表1中的公式中可以看出,Pa1和Pc是一定出现的(称固定点),其他两个点随判断条件变化(非固定点),所以判断条件取点时,只需要找到两个非固定点即可。
本发明的以下实施例是基于本发明的上述技术思路来实现的。
在一个实施例中,如图2所示,本发明提供一种颜色校正FPGA实现装置,所述装置基于3D-LUT,包括:3D-LUT RAM模块10、插值系数计算(Coef calc)模块20、Read RAM模块30、四面体插值计算模块40;其中:
所述3D-LUT RAM模块10,为16bit,用于存储3D-LUT采样数据以供外部读取;
所述插值系数计算模块20,用于计算输入像素颜色在3D-LUT色域的映射,计算出插值系数和参与插值的3D-LUT颜色位置;
所述Read RAM模块30,用于根据所述插值系数计算模块20的输出参数选择插值顶点并转换成RAM的取值地址进行读取插值点数据;
所述四面体插值计算模块40,用于根据Read RAM模块30确定的RAM取值地址,从所述3D-LUT RAM模块10中取出3D-LUT采样数据进行插值计算。
在本实施例中,提出了一种3D-LUT颜色校正的FPGA实现装置,将四面体插值的权值计算由一次三维矩阵加两次二维矩阵运算共13个乘法器运算简化成一个减法运算,能够有效的简化插值公式的权值计算;并且,将用于确认待校正的小数部分由模糊小数改进成无误差小数,能够无误差地计算出小数部分,有效地扩展了对3D-LUT数据兼容性,支持16bit的高色深、广色域3D-LUT数据,同时支持非(2n+1)个采样点的3D-LUT数据。从而可以有效地解决现有3D-LUT硬件实现技术中的四面体插值公式的权值计算过于复杂,消耗大量乘法器,小数部分计算存在误差,不支持采样点数为非(2n+1)数的3D-LUT数据等问题。
在一个实施例中,所述3D-LUT RAM模块10,用于存储3D-LUT采样数据以供外部读取;包括:
从三维色域空间采集3D-LUT采样数据,所述3D-LUT采样数据为整型数据,在所述3D-LUT RAM模块中存储为一维数据;具体包括:
将3D-LUT采样数据切割成多个面数据,以预设存储规则存储上述其中一个面数据到所述3D-LUT RAM模块10中,再按照上述相同的预设存储规则继续写入剩余面数据到所述3D-LUT RAM模块10中,直到所有面数据写入完成。
其中,所述预设存储规则为:以预设轴垂直面切割成N个面,每个面有N×N个行列点,写入顺序为先取第一个面和第一行按照第一预设方向进行线数据写入,然后按照第二预设方向递增行号继续按照第一预设方向写入,直到该面数据写入完整后才递增到下一个面数据。按照上述相同的预设存储规则继续写入剩余面数据,直到所有面数据写入完成。
所述3D-LUT RAM模块10存储的3D-LUT采样数据至少包括以下之一:3D-LUT size、Color depth、Pixel data和inVaild。其中,3D-LUT size为3D-LUT的单通采样点数;Colordepth为输入像素颜色的单通道色深,为8~16bit;Pixel data为输入像素颜色RGB数据,单通道可支持到16bit;inVaild是输入像素颜色值(Pixel data)有效信号。
如图3所示,以RGB三维颜色单通道16bit整型的3D-LUT数据进行说明。RGB每个通道的颜色值用16bit的无符号类型存储数据,每个采样点的数据共用48bit。该模块由外部输入整型数据写入RAM中进行存储,N为采样点数,采样的数据从三维色域空间采集,实际存储为一维,图中先将数据切割成多个面数据,预设存储规则为以B轴垂直面切割成N个RG面,每个面有N×N个点,写入顺序为先取第一个面和第一行按照箭头1方向进行数据写入,然后按箭头2方向递增行号继续箭头1方向的写入,直到面数据写入完整才递增到下一个面数据,按照上述相同的预设存储规则继续写入,直到所有数据写入完成;插值计算时输入取值地址就可以读取3D-LUT采样数据进行计算。
在本实施例中,通过将从三维色域空间采集的3D-LUT采样数据按照预设存储规则在所述3D-LUT RAM模块中存储为一维数据,从而使数据更为简洁,能够有效的简化插值公式的权值计算,从而可以有效地解决现有3D-LUT硬件实现技术中的四面体插值公式的权值计算过于复杂,消耗大量乘法器等问题。
在一个实施例中,所述插值系数计算模块30,用于计算输入像素颜色在3D-LUT色域的映射,计算出插值系数和参与插值的3D-LUT颜色位置,具体是计算输入颜色在3D-LUT内位置和小数部分的插值系数,计算出表1中判断条件和公式使用到数据。具体包括:
首先计算输入颜色映射到3D-LUT色域的位置。
Coef calc模块输入的参数由所述3D-LUT RAM模块输出,包括:3D-LUT size、Color depth、Pixel data和inVaild。其中,3D-LUT size为3D-LUT的单通采样点数;Colordepth为输入像素颜色的单通道色深,为8~16bit;Pixel data为输入像素颜色RGB数据,单通道可支持到16bit;inVaild是输入像素颜色值(Pixel data)有效信号。
设map_rgb表示输入颜色映射计算后的单通道RGB值,数据为浮点型,input_rgb表示输入颜色的单通道颜色值,即Pixel data的单个分量,N表示3D-LUT单通道采样点数,即3D-LUT size,input_color_size表示输入的RGB颜色单通道颜色尺寸,input_color_size=2Color depth。则输入颜色映射到3D-LUT色域的位置的映射公式表示为:
map_rgb=input_rgb×(N-1)÷(input_color_size-1)………(1)
RGB三个通道映射公式是一致,可以用上述公式(1)来计算得到输入颜色RGB映射到3D-LUT色域的位置。
按上述公式(1)计算RGB三个通道的map_rgb,其结果可以表示为(R+fR,G+fG,B+fB),其中,R、G、B为整数部分,fR、fG、fB为小数部分,结合表1,确定插值公式和插值系数,然后按点取出3D-LUT的颜色值就可以进行插值计算。
其次,计算出插值系数的小数部分。
为了加速计算效果,在本实施例中,将浮点型计算改成整型计算,在表1的插值公式中,只有插值系数属于浮点型,所以只需要对插值系数进行整型转换。
如果按上述映射公式(1)计算小数乘以放大倍数或者直接截取低位作为小数参与运算,则中间运算过程和判断就会产生误差。为解决这个问题,在本实施例中,小数部分无误差的计算方法是采用余数代替小数进行计算,计算的最终结果再除去除数,本实施例中,小数部分指的就是余数;计算映射后的整数部分和小数部分根据3D-LUT的采样点数N区分为两种情况:(N–1)是2的指数幂和(N–1)不是2的指数幂。
第一种情况:(N–1)是2的指数幂。此时,整数部分和小数部分可以通过截取和位移合并求得。具体过程如下:
令Color depth=k,N–1=2p,input_rgb=x,map_rgb=y,则上述映射公式(1)变为:
y=x×2p÷(2k-1)……(2)
如图4所示,将x拆成高p位a和低(k-p)位b两部分,那么x可以写成高位a和低位b的相加表达形式:x=a×2k-p+b,代入上式(2)得:
y=(a×2k+b×2p)÷(2k-1)……(3)
上述公式(3)经过化简得:
y=a+(b×2p+a)÷(2k-1)……(4)
所以,当(N–1)是2的指数幂时,a为整数部分A,直接截取输入数据的高p位可得,(b×2p+a)为小数部分B,通过整数部分加上输入数据的低(k-p)位左移p位的结果得到,即ab互换位置,数据变化如图4和图5所示。
第二种情况:(N–1)不是2的指数幂。令Color depth=k,N–1=p,input_rgb=x,map_rgb=y,则上述映射公式(1)为:
y=x×p÷(2k-1)……(5)
通过整数除法计算整数部分,需要先计算(x×p)的值S,再对(2k–1)进行整型除法计算的到整数部分A,小数部分B=S–A×(2k-1)。
通过上述方法对输入Pixel data的RGB三个分量求得整数部分(AR,AG,AB)和放大了(2k–1)倍的小数部分(fR,fG,fB),那么,Coef calc模块输出的point1=(AR,AG,AB),point4=(AR+1,AG+1,AB+1),Colorsize=2k–1,Color depth=k;其他参数通过小数部分(fR,fG,fB)和表1判断条件选择的插值公式,计算出插值系数coef1、coef2、coef3和coef4;其中,point1表示插值公式第一个顶点的RGB坐标,point4表示插值公式第四个顶点的RGB坐标,choose表示选中的插值公式在表1中的序号(0~5),从上往下,自0开始算。
所述插值系数计算模块30计算完成后输出参数coef1、coef2、coef3、coef4、Colorsize、Color depth给四面体插值计算模块40,同时输出参数point1、point4和choose给Read RAM模块30。
在本实施例中,通过所述插值系数计算Coef calc模块采用余数代替小数进行计算,将用于确认待校正的小数部分由模糊小数改进成无误差小数,能够无误差地计算出小数部分,避免中间运算过程和判断就会产生误差,从而准确地计算输入颜色在3D-LUT内位置和小数部分的插值系数,能够有效的简化插值公式的权值计算,有效地扩展了对3D-LUT数据兼容性,支持16bit的高色深、广色域3D-LUT数据,同时支持非(2n+1)个采样点的3D-LUT数据。从而可以有效地解决现有3D-LUT硬件实现技术中的四面体插值公式的权值计算过于复杂,消耗大量乘法器,小数部分计算存在误差,不支持采样点数为非(2n+1)数的3D-LUT数据等问题。
在一个实施例中,所述Read RAM模块30,用于根据所述插值系数计算模块20的输出参数选择插值顶点并转换成RAM的取值地址进行读取插值点数据。具体过程如下:
所述Read RAM模块是确定插值公式中的四个顶点RGB坐标,然后把RGB坐标转成RAM取值地址,根据RAM取值地址,从所述3D-LUT RAM模块中取出3D-LUT采样数据进行插值计算,取值时把三维颜色坐标(R0,G0,B0)转换成一维RAM取值地址Addr进行RAM取值,转换公式为:
Addr=R0+N×G0+N×N×B0……(6)
其中,N表示3D-LUT单通道采样点数,即3D-LUT size。
在Read RAM模块中,Read RAM模块输入参数由所述Coef calc模块输出,包括:point1、point4和choose。其中,point1表示插值公式第一个顶点的RGB坐标,point4表示插值公式第四个顶点的RGB坐标,choose表示选中的插值公式在表1中的序号(0~5)。
从表1的6个公式中可以看出,插值公式的第一个顶点和第四个顶点是固定的,所以choose用于确认第二顶点的RGB坐标和第三个顶点的RGB坐标,找齐4个顶点的RGB坐标后利用上述的转换公式(6),将RGB坐标转换成RAM的读数据地址进行读取数据输出到插值模块。
如图1所示,point1就是A’顶点(RGB坐标为(R0,G0,B0)),point4是C顶点,若根据上述转换公式(6)计算A’的取值地址为Addr0,即:
Addr0=R0+N×G0+N×N×B0
再结合3D-LUT的单通道采样点数N,则其他顶点的取值地址可以通过下面的方法计算得到:
顶点B’的地址=Addr0+N;
顶点C’的地址=Addr0+N+1;
顶点D’的地址=Addr0+1;
顶点A的地址=Addr0+N×N;
顶点B的地址=Addr0+N×N+N;
顶点C的地址=Addr0+N×N+N+1;
顶点D的地址=Addr0+N×N+1。
最后,通过RAM取值地址到所述3D-LUT RAM模块取出四个顶点颜色值point1color、point2 color、point3 color、point4 color输入到四面体插值计算模块40。
在本实施例中,通过所述Read RAM模块确定插值公式中的四个顶点RGB坐标,然后把RGB坐标转成RAM取值地址,取出3D-LUT的数据进行插值计算,取值时把三维颜色坐标(R0,G0,B0)转换成一维地址Addr进行RAM取值,能够有效的简化插值公式的权值计算,从而可以有效地解决现有3D-LUT硬件实现技术中的四面体插值公式的权值计算过于复杂,消耗大量乘法器,小数部分计算存在误差,不支持采样点数为非(2n+1)数的3D-LUT数据等问题。
在一个实施例中,所述四面体插值计算模块40,用于根据Read RAM模块30确定的RAM取值地址,从所述3D-LUT RAM模块10中取出3D-LUT采样数据进行插值计算。
假设从所述3D-LUT RAM模块10中取出来参与插值运算的四个顶点颜色值为P1、P2、P3、P4,则计算插值运算并消除插值系数(coef1、coef2、coef4和coef4)的放大量,得到放大216倍的输入颜色归一化位置T1,表达式如下:
T1=(coef1×P1+coef2×P2+coef3×P3+coef4×P4+hafl_shift1)>>Colordepth……(7)
结合归一化位置T1与输入颜色最大值(Color size–1),得到输出颜色值T2,同时消除归一化位置T1的放大量,输出颜色T2表达式如下:
T2=(T1×(Color size–1)+hafl_shift2)>>16……(8)
上述两个式子(7)和(8)中,hafl_shift1和hafl_shift2表示消除放大量时位移操作的四舍五入偏移量,计算表达式为:
hafl_shift1=1<<(Color depth-1)
hafl_shift2=1<<(16-1)
最终对输出颜色值T2进行裁剪,将输出颜色值T2限制在[0,Color size–1]闭区间以避免溢出,输出T2裁剪后的值就完成3D-LUT颜色校正功能。
以上的P1、P2、P3、P4、T1、T2是为了方便表达简写的,实际需要拆分成RGB三个通道计算,只是所有通道公式一致才简写,具体电路实现是可以三通道并行计算,也可以串行计算。
在本实施例中,通过所述四面体插值计算模块根据Read RAM模块确定的RAM取值地址,从所述3D-LUT RAM模块中取出3D-LUT采样数据进行插值计算,将四面体插值的权值计算由一次三维矩阵加两次二维矩阵运算共13个乘法器运算简化成一个减法运算,能够有效的简化插值公式的权值计算;并且,将用于确认待校正的小数部分由模糊小数改进成无误差小数,能够无误差地计算出小数部分,有效地扩展了对3D-LUT数据兼容性,支持16bit的高色深、广色域3D-LUT数据,同时支持非(2n+1)个采样点的3D-LUT数据。从而可以有效地解决现有3D-LUT硬件实现技术中的四面体插值公式的权值计算过于复杂,消耗大量乘法器,小数部分计算存在误差,不支持采样点数为非(2n+1)数的3D-LUT数据等问题。
本发明提供一种基于3D-LUT的颜色校正FPGA实现装置,其具体工作流程如图6所示:
工作流程分为两个阶段,初始化阶段和颜色校正阶段。初始化阶段是将3D-LUT采样数据写入到3D-LUT RAM模块10中,同时将参数Color depth和3D-LUT size写入到插值系数计算(Coef calc)模块20。
颜色校正阶段开始,所述插值系数计算模块20收到nextDout信号后,确认接收到参数Color depth和3D-LUT size;参数正常接收后,开始发出nextDin信号请求数据,外部输入待校正的颜色Pixel data和输入数据有效使能信号inVaild,所述插值系数计算模块20根据输入参数开始计算,计算完成后输出参数coef1、coef2、coef3、coef4、Color size、Color depth给四面体插值计算模块40,同时输出参数point1、point4和choose给Read RAM模块30。所述Read RAM模块30收到参数后开始查找对应公式,计算出插值公式对应四个顶点的RAM取值地址addr1、addr2、addr3、addr4,通过RAM取值地址到所述3D-LUT RAM模块10取出四个顶点颜色值point1 color、point2 color、point3 color、point4 color输入到所述四面体插值计算模块40。所述四面体插值计算模块40结合收到所述插值系数计算模块20传送的参数进行插值运算,得到运算结果校正的颜色值outPixelData,配合outVaild信号将数据输出。其时序图如图7所示。其中,图6和图7中各个参数的具体含义如下:
Figure BDA0002630720370000121
Figure BDA0002630720370000131
在一个实施例中,如图8所示,本发明提供一种显示系统,所述显示系统包括显示设备200和如上述任一实施例所述颜色校正FPGA实现装置100,所述颜色校正FPGA实现装置100用于将输入的3D-LTU采样数据经过颜色校正后,输出给所述显示设备200进行显示。
其中,所述颜色校正FPGA实现装置100与上述任一实施例所述颜色校正FPGA实现装置100是相同的,其具体实现过程详见上述任一实施例所述颜色校正FPGA实现装置100,且装置实施例中的技术特征在显示系统实施例中均对应适用,这里不再赘述。
在一个实施例中,如图9所示,本发明提供一种基于3D-LUT的颜色校正FPGA实现方法,所述方法包括:
S1、将3D-LUT采样数据写入存储在3D-LUT RAM模块中,以供外部读取;
S2、插值系数计算模块计算输入像素颜色在3D-LUT色域的映射,计算出插值系数和参与插值的3D-LUT颜色位置;
S3、Read RAM模块根据所述插值系数计算模块的输出参数选择插值顶点并转换成RAM的取值地址进行读取插值点数据;
S4、四面体插值计算模块根据Read RAM模块确定的RAM取值地址,从所述3D-LUTRAM模块中取出3D-LUT采样数据进行插值计算。
在本实施例中,提出了一种3D-LUT颜色校正的FPGA实现方法,将四面体插值的权值计算由一次三维矩阵加两次二维矩阵运算共13个乘法器运算简化成一个减法运算,能够有效的简化插值公式的权值计算;并且,将用于确认待校正的小数部分由模糊小数改进成无误差小数,能够无误差地计算出小数部分,有效地扩展了对3D-LUT数据兼容性,支持16bit的高色深、广色域3D-LUT数据,同时支持非(2n+1)个采样点的3D-LUT数据。从而可以有效地解决现有3D-LUT硬件实现技术中的四面体插值公式的权值计算过于复杂,消耗大量乘法器,小数部分计算存在误差,不支持采样点数为非(2n+1)数的3D-LUT数据等问题。
在一个实施例中,所述步骤S1中,所述将3D-LUT采样数据写入存储在3D-LUT RAM模块中,以供外部读取;包括:
从三维色域空间采集3D-LUT采样数据,所述3D-LUT采样数据为整型数据,在所述3D-LUT RAM模块中存储为一维数据;具体包括:
将3D-LUT采样数据切割成多个面数据,以预设存储规则存储上述其中一个面数据到所述3D-LUT RAM模块中,再按照上述相同的预设存储规则继续写入剩余面数据到所述3D-LUT RAM模块中,直到所有面数据写入完成。
其中,所述预设存储规则为:以预设轴垂直面切割成N个面,每个面有N×N个行列点,写入顺序为先取第一个面和第一行按照第一预设方向进行数据写入,然后按照第二预设方向递增行号继续按照第一预设方向写入,直到该面数据写入完整后才递增到下一个面数据。按照上述相同的预设存储规则继续写入剩余面数据,直到所有面数据写入完成。
所述3D-LUT RAM模块存储的3D-LUT采样数据至少包括以下之一:3D-LUT size、Color depth、Pixel data和inVaild。其中,3D-LUT size为3D-LUT的单通采样点数;Colordepth为输入像素颜色的单通道色深,为8~16bit;Pixel data为输入像素颜色RGB数据,单通道可支持到16bit;inVaild是输入像素颜色值(Pixel data)有效信号。
如图3所示,以RGB三维颜色单通道16bit整型的3D-LUT数据进行说明。RGB每个通道的颜色值用16bit的无符号类型存储数据,每个采样点的数据共用48bit。该模块由外部输入整型数据写入RAM中进行存储,N为采样点数,采样的数据从三维色域空间采集,实际存储为一维,图中先将数据切割成多个面数据,预设存储规则为以B轴垂直面切割成N个RG面,每个面有N×N个点,写入顺序为先取第一个面和第一行按照箭头1方向进行线数据写入,然后按箭头2方向递增行号继续箭头1方向的写入,直到面数据写入完整才递增到下一个面数据,按照上述相同的预设存储规则继续写入,直到所有数据写入完成;插值计算时输入取值地址就可以读取3D-LUT采样数据进行计算。
在本实施例中,通过将从三维色域空间采集的3D-LUT采样数据按照预设存储规则在所述3D-LUT RAM模块中存储为一维数据,从而使数据更为简洁,能够有效的简化插值公式的权值计算,从而可以有效地解决现有3D-LUT硬件实现技术中的四面体插值公式的权值计算过于复杂,消耗大量乘法器等问题。
在一个实施例中,所述步骤S2中,所述插值系数计算模块计算输入像素颜色在3D-LUT色域的映射,计算出插值系数和参与插值的3D-LUT颜色位置;包括:
S21、计算输入颜色映射到3D-LUT色域的位置。
Coef calc模块输入的参数由所述3D-LUT RAM模块输出,包括:3D-LUT size、Color depth、Pixel data和inVaild。其中,3D-LUT size为3D-LUT的单通采样点数;Colordepth为输入像素颜色的单通道色深,为8~16bit;Pixel data为输入像素颜色RGB数据,单通道可支持到16bit;inVaild是输入像素颜色值(Pixel data)有效信号。
设map_rgb表示输入颜色映射计算后的单通道RGB值,数据为浮点型,input_rgb表示输入颜色的单通道颜色值,即Pixel data的单个分量,N表示3D-LUT单通道采样点数,即3D-LUT size,input_color_size表示输入的RGB颜色单通道颜色尺寸,input_color_size=2Color depth。则输入颜色映射到3D-LUT色域的位置的映射公式表示为:
map_rgb=input_rgb×(N-1)÷(input_color_size-1)………(1)
RGB三个通道映射公式是一致,可以用上述公式(1)来计算得到输入颜色RGB映射到3D-LUT色域的位置。
按上述公式(1)计算RGB三个通道的map_rgb,其结果可以表示为(R+fR,G+fG,B+fB),其中,R、G、B为整数部分,fR、fG、fB为小数部分,结合表1,确定插值公式和插值系数,然后按点取出3D-LUT的颜色值就可以进行插值计算。
S22、算出插值系数的小数部分。
为了加速计算效果,在本实施例中,将浮点型计算改成整型计算,在表1的插值公式中,只有插值系数属于浮点型,所以只需要对插值系数进行整型转换。
如果按上述映射公式(1)计算小数乘以放大倍数或者直接截取低位作为小数参与运算,则中间运算过程和判断就会产生误差。为解决这个问题,在本实施例中,小数部分无误差的计算方法是采用余数代替小数进行计算,计算的最终结果再除去除数,本实施例中,小数部分指的就是余数;计算映射后的整数部分和小数部分根据3D-LUT的采样点数N区分为两种情况:(N–1)是2的指数幂和(N–1)不是2的指数幂。
第一种情况:(N–1)是2的指数幂。此时,整数部分和小数部分可以通过截取和位移合并求得。具体过程如下:
令Color depth=k,N–1=2p,input_rgb=x,map_rgb=y,则上述映射公式(1)变为:
y=x×2p÷(2k-1)……(2)
如图4所示,将x拆成高p位a和低(k-p)位b两部分,那么x可以写成高位a和低位b的相加表达形式:x=a×2k-p+b,代入上式(2)得:
y=(a×2k+b×2p)÷(2k-1)……(3)
上述公式(3)经过化简得:
y=a+(b×2p+a)÷(2k-1)……(4)
所以,当(N–1)是2的指数幂时,a为整数部分A,直接截取输入数据的高p位可得,(b×2p+a)为小数部分B,通过整数部分加上输入数据的低(k-p)位左移p位的结果得到,即ab互换位置,数据变化如图4和图5所示。
第二种情况:(N–1)不是2的指数幂。令Color depth=k,N–1=p,input_rgb=x,map_rgb=y,则上述映射公式(1)为:
y=x×p÷(2k-1)……(5)
通过整数除法计算整数部分,需要先计算(x×p)的值S,再对(2k–1)进行整型除法计算的到整数部分A,小数部分B=S–A×(2k-1)。
通过上述方法对输入Pixel data的RGB三个分量求得整数部分(AR,AG,AB)和放大了(2k–1)倍的小数部分(fR,fG,fB),那么,Coef calc模块输出的point1=(AR,AG,AB),point4=(AR+1,AG+1,AB+1),Color size=2k–1,Color depth=k;其他参数通过小数部分(fR,fG,fB)和表1判断条件选择的插值公式,计算出插值系数coef1、coef2、coef3和coef4;其中,point1表示插值公式第一个顶点的RGB坐标,point4表示插值公式第四个顶点的RGB坐标,choose表示选中的插值公式在表1中的序号(0~5),从上往下,自0开始算。
在本实施例中,通过所述插值系数计算Coef calc模块采用余数代替小数进行计算,将用于确认待校正的小数部分由模糊小数改进成无误差小数,能够无误差地计算出小数部分,避免中间运算过程和判断就会产生误差,从而准确地计算输入颜色在3D-LUT内位置和小数部分的插值系数,能够有效的简化插值公式的权值计算,有效地扩展了对3D-LUT数据兼容性,支持16bit的高色深、广色域3D-LUT数据,同时支持非(2n+1)个采样点的3D-LUT数据。从而可以有效地解决现有3D-LUT硬件实现技术中的四面体插值公式的权值计算过于复杂,消耗大量乘法器,小数部分计算存在误差,不支持采样点数为非(2n+1)数的3D-LUT数据等问题。
在一个实施例中,所述步骤S3中,所述Read RAM模块根据所述插值系数计算模块的输出参数选择插值顶点并转换成RAM的取值地址进行读取插值点数据;包括:
所述Read RAM模块确定插值公式中的四个顶点RGB坐标,然后把RGB坐标转成RAM取值地址,根据RAM取值地址,从所述3D-LUT RAM模块中取出3D-LUT采样数据进行插值计算,取值时把三维颜色坐标(R0,G0,B0)转换成一维地址Addr进行RAM取值,转换公式为:
Addr=R0+N×G0+N×N×B0……(6)
在Read RAM模块中,Read RAM模块输入参数由所述Coef calc模块输出,包括:point1、point4和choose。其中,point1表示插值公式第一个顶点的RGB坐标,point4表示插值公式第四个顶点的RGB坐标,choose表示选中的插值公式在表1中的序号(0~5)。
从表1的6个公式中可以看出,插值公式的第一个顶点和第四个顶点是固定的,所以choose用于确认第二顶点的RGB坐标和第三个顶点的RGB坐标,找齐4个顶点的RGB坐标后利用上述的转换公式(6),将RGB坐标转换成RAM的读数据地址进行读取数据输出到插值模块。
如图1所示,point1就是A’顶点(RGB坐标为(R0,G0,B0)),point4是C顶点,若根据上述转换公式(6)计算A’的取值地址为Addr0,即:
Addr0=R0+N×G0+N×N×B0
再结合3D-LUT的单通道采样点数N,则其他顶点的取值地址可以通过下面的方法计算得到:
顶点B’的地址=Addr0+N;
顶点C’的地址=Addr0+N+1;
顶点D’的地址=Addr0+1;
顶点A的地址=Addr0+N×N;
顶点B的地址=Addr0+N×N+N;
顶点C的地址=Addr0+N×N+N+1;
顶点D的地址=Addr0+N×N+1。
最后,通过RAM取值地址到所述3D-LUT RAM模块取出四个顶点颜色值point1color、point2 color、point3 color、point4 color输入到四面体插值计算模块。
在本实施例中,通过所述Read RAM模块确定插值公式中的四个顶点RGB坐标,然后把RGB坐标转成RAM取值地址,取出3D-LUT的数据进行插值计算,取值时把三维颜色坐标(R0,G0,B0)转换成一维地址Addr进行RAM取值,能够有效的简化插值公式的权值计算,从而可以有效地解决现有3D-LUT硬件实现技术中的四面体插值公式的权值计算过于复杂,消耗大量乘法器,小数部分计算存在误差,不支持采样点数为非(2n+1)数的3D-LUT数据等问题。
在一个实施例中,所述步骤S4中,所述四面体插值计算模块根据ReadRAM模块确定的RAM取值地址,从所述3D-LUT RAM模块中取出3D-LUT采样数据进行插值计算。
假设从所述3D-LUT RAM模块中取出来参与插值运算的四个顶点颜色值为P1、P2、P3、P4,则计算插值运算并消除插值系数(coef)的放大量,得到放大216倍的输入颜色归一化位置T1,表达式如下:
T1=(coef1×P1+coef2×P2+coef3×P3+coef4×P4+hafl_shift1)>>Colordepth……(7)
结合归一化位置T1与输入颜色最大值(Color size–1),得到输出颜色值T2,同时消除归一化位置T1的放大量,输出颜色T2表达式如下:
T2=(T1×(Color size–1)+hafl_shift2)>>16……(8)
上述两个式子(7)和(8)中,hafl_shift1和hafl_shift2表示消除放大量时位移操作的四舍五入偏移量,计算表达式为:
hafl_shift1=1<<(Color depth-1)
hafl_shift2=1<<(16-1)
最终对输出颜色值T2进行裁剪,将输出颜色值T2限制在[0,Color size–1]闭区间以避免溢出,输出T2裁剪后的值就完成3D-LUT颜色校正功能。
以上的P1、P2、P3、P4、T1、T2是为了方便表达简写的,实际需要拆分成RGB三个通道计算,只是所有通道公式一致才简写,具体电路实现是可以三通道并行计算,也可以串行计算。
在本实施例中,通过所述四面体插值计算模块根据Read RAM模块确定的RAM取值地址,从所述3D-LUT RAM模块中取出3D-LUT采样数据进行插值计算,将四面体插值的权值计算由一次三维矩阵加两次二维矩阵运算共13个乘法器运算简化成一个减法运算,能够有效的简化插值公式的权值计算;并且,将用于确认待校正的小数部分由模糊小数改进成无误差小数,能够无误差地计算出小数部分,有效地扩展了对3D-LUT数据兼容性,支持16bit的高色深、广色域3D-LUT数据,同时支持非(2n+1)个采样点的3D-LUT数据。从而可以有效地解决现有3D-LUT硬件实现技术中的四面体插值公式的权值计算过于复杂,消耗大量乘法器,小数部分计算存在误差,不支持采样点数为非(2n+1)数的3D-LUT数据等问题。
本发明提供一种基于3D-LUT的颜色校正FPGA实现方法,其具体工作流程如图6所示:
工作流程分为两个阶段,初始化阶段和颜色校正阶段。初始化阶段是将3D-LUT采样数据写入到3D-LUT RAM模块中,同时将参数Color depth和3D-LUT size写入到Coefcalc模块。
颜色校正阶段开始,所述Coef calc模块收到nextDout信号后,确认接收到参数Color depth和3D-LUT size;参数正常接收后,开始发出nextDin信号请求数据,外部输入待校正的颜色Pixel data和输入数据有效使能信号inVaild,所述Coef calc模块根据输入参数开始计算,计算完成后输出参数coef1、coef2、coef3、coef4、Color size、Color depth给四面体插值计算模块Clip,同时输出参数point1、point4和choose给Read RAM模块。所述Read RAM模块收到参数后开始查找对应公式,计算出插值公式对应四个顶点的RAM取值地址addr1、addr2、addr3、addr4,通过RAM取值地址到所述3D-LUT RAM模块取出四个顶点颜色值point1 color、point2 color、point3 color、point4 color输入到所述四面体插值计算模块。所述四面体插值计算模块结合收到所述Coef calc模块传送的参数进行插值运算,得到运算结果校正的颜色值outPixelData,配合outVaild信号将数据输出。其时序图如图7所示。
需要说明的是,上述方法实施例与装置实施例属于同一构思,其具体实现过程详见装置实施例,且装置实施例中的技术特征在方法实施例中均对应适用,这里不再赘述。
此外,本发明实施例还提供3D-LUT颜色校正设备,如图10所示,包括:存储器、处理器及存储在所述存储器中并可在所述处理器上运行的一个或者多个计算机程序,所述一个或者多个计算机程序被所述处理器执行时以实现本发明实施例提供的一种基于3D-LUT的颜色校正FPGA实现方法的以下步骤:
S1、将3D-LUT采样数据写入存储在3D-LUT RAM模块中,以供外部读取;
S2、插值系数计算模块计算输入像素颜色在3D-LUT色域的映射,计算出插值系数和参与插值的3D-LUT颜色位置;
S3、Read RAM模块根据所述插值系数计算模块的输出参数选择插值顶点并转换成RAM的取值地址进行读取插值点数据;
S4、四面体插值计算模块根据Read RAM模块确定的RAM取值地址,从所述3D-LUTRAM模块中取出3D-LUT采样数据进行插值计算。
上述本发明实施例揭示的方法可以应用于所述处理器901中,或者由所述处理器901实现。所述处理器901可能是一种集成电路芯片,具有信号处理能力。在实现过程中,上述方法的各步骤可以通过所述处理器901中的硬件的集成逻辑电路或软件形式的指令完成。所述处理器901可以是通用处理器、DSP、或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述处理器901可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器902,所述处理器901读取存储器902中的信息,结合其硬件完成前述方法的步骤。
可以理解,本发明实施例的存储器902可以是易失性存储器或者非易失性存储器,也可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read-Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Read-Only Memory)、电可擦除只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,Ferromagnetic Random Access Memory)、闪存(Flash Memory)或其他存储器技术、光盘只读存储器(CD-ROM,Compact Disk Read-Only Memory)、数字多功能盘(DVD,Digital VideoDisk)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置;易失性存储器可以是随机存取存储器(RAM,Random Access Memory),通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data RateSynchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
需要说明的是,上述设备实施例与方法实施例属于同一构思,其具体实现过程详见方法实施例,且方法实施例中的技术特征在设备实施例中均对应适用,这里不再赘述。
另外,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有基于3D-LUT的颜色校正FPGA实现方法的程序,所述基于3D-LUT的颜色校正FPGA实现方法的程序被处理器执行时以实现本发明实施例提供的一种基于3D-LUT的颜色校正FPGA实现方法的以下步骤:
S1、将3D-LUT采样数据写入存储在3D-LUT RAM模块中,以供外部读取;
S2、插值系数计算模块计算输入像素颜色在3D-LUT色域的映射,计算出插值系数和参与插值的3D-LUT颜色位置;
S3、Read RAM模块根据所述插值系数计算模块的输出参数选择插值顶点并转换成RAM的取值地址进行读取插值点数据;
S4、四面体插值计算模块根据Read RAM模块确定的RAM取值地址,从所述3D-LUTRAM模块中取出3D-LUT采样数据进行插值计算。
需要说明的是,上述计算机可读存储介质上的一种基于3D-LUT的颜色校正FPGA实现方法的程序实施例与方法实施例属于同一构思,其具体实现过程详见方法实施例,且方法实施例中的技术特征在上述计算机可读存储介质的实施例中均对应适用,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

Claims (11)

1.一种颜色校正FPGA实现装置,其特征在于,所述装置包括:3D-LUT RAM模块、插值系数计算模块、Read RAM模块、四面体插值计算模块;其中:
所述3D-LUT RAM模块,用于存储3D-LUT采样数据;
所述插值系数计算模块,用于计算输入像素颜色在3D-LUT色域的映射,计算出插值系数和参与插值的3D-LUT颜色位置;
所述Read RAM模块,用于根据所述插值系数计算模块的输出参数选择插值顶点并转换成RAM的取值地址进行读取插值点数据;
所述四面体插值计算模块,用于根据Read RAM模块确定的RAM取值地址,从所述3D-LUTRAM模块中取出3D-LUT采样数据进行插值计算。
2.如权利要求1所述的装置,其特征在于,所述3D-LUT RAM模块,具体用于:从三维色域空间采集3D-LUT采样数据,在所述3D-LUT RAM模块中存储为一维数据。
3.如权利要求2所述的装置,其特征在于,所将3D-LUT采样数据切割成多个面数据,以预设存储规则存储上述多个面数据到所述3D-LUT RAM模块中。
4.如权利要求3所述的装置,其特征在于,所述预设存储规则为:以预设轴垂直面切割成N个面,每个面有N×N个行列点,写入顺序为先取第一个面和第一行按照第一预设方向进行数据写入,然后按照第二预设方向递增行号继续按照第一预设方向写入,直到该面数据写入完整后才递增到下一个面数据。
5.如权利要求1所述的装置,其特征在于,所述插值系数计算模块,具体用于:
首先,计算输入颜色映射到3D-LUT色域的位置;
其次,计算出插值系数的小数部分,包括:采用余数代替小数的计算方法进行计算,计算结果再除去除数,得出插值系数的小数部分。
6.如权利要求1或5所述的装置,其特征在于,所述Read RAM模块,具体用于:
所述Read RAM模块,用于根据输入参数选择插值顶点,采用以下转换公式将三维颜色坐标(R0,G0,B0)转换成一维RAM取值地址Addr进行RAM取值:
Addr=R0+N×G0+N×N×B0
其中,N表示3D-LUT单通道采样点数;
再根据Addr,确定其它剩余的顶点的一维RAM取值地址。
7.如权利要求1或6所述的装置,其特征在于,所述四面体插值计算模块,用于根据ReadRAM模块确定的RAM取值地址,从所述3D-LUT RAM模块中取出3D-LUT采样数据进行插值计算;具体包括:
根据从所述3D-LUT RAM模块中取出来参与插值运算的四个顶点颜色值及插值系数确定输入颜色的归一化位置T1:
根据归一化位置T1与输入颜色最大值输出颜色值T2;
对输出颜色值T2进行裁剪,将输出颜色值T2限制在[0,Color size–1]闭区间。
8.一种显示系统,其特征在于,所述显示系统包括显示设备和如权利要求1至7任一项所述的一种颜色校正FPGA实现装置,所述颜色校正FPGA实现装置用于将输入的3D-LTU采样数据经过颜色校正后,输出给所述显示设备。
9.一种颜色校正FPGA实现方法,其特征在于,所述方法应用于如权利要求1至7任一项所述的一种颜色校正FPGA实现装置,所述方法包括:
将3D-LUT采样数据写入存储在3D-LUT RAM模块中,以供外部读取;
插值系数计算模块计算输入像素颜色在3D-LUT色域的映射,计算出插值系数和参与插值的3D-LUT颜色位置;
Read RAM模块根据所述插值系数计算模块的输出参数选择插值顶点并转换成RAM的取值地址进行读取插值点数据;
四面体插值计算模块根据Read RAM模块确定的RAM取值地址,从所述3D-LUT RAM模块中取出3D-LUT采样数据进行插值计算。
10.一种颜色校正设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求9所述的一种颜色校正FPGA实现方法的步骤。
11.一种存储介质,其特征在于,所述存储介质上存储有一种颜色校正FPGA实现方法的程序,所述一种颜色校正FPGA实现方法的程序被处理器执行时实现如权利要求9所述的一种颜色校正FPGA实现方法的步骤。
CN202010810265.3A 2020-08-13 2020-08-13 颜色校正fpga实现装置和方法、颜色校正设备和存储介质 Active CN112017105B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010810265.3A CN112017105B (zh) 2020-08-13 2020-08-13 颜色校正fpga实现装置和方法、颜色校正设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010810265.3A CN112017105B (zh) 2020-08-13 2020-08-13 颜色校正fpga实现装置和方法、颜色校正设备和存储介质

Publications (2)

Publication Number Publication Date
CN112017105A true CN112017105A (zh) 2020-12-01
CN112017105B CN112017105B (zh) 2024-03-26

Family

ID=73505912

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010810265.3A Active CN112017105B (zh) 2020-08-13 2020-08-13 颜色校正fpga实现装置和方法、颜色校正设备和存储介质

Country Status (1)

Country Link
CN (1) CN112017105B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022205127A1 (zh) * 2021-03-31 2022-10-06 京东方科技集团股份有限公司 色彩校正方法、现场可编程门阵列、芯片和显示设备
CN115499633A (zh) * 2022-09-23 2022-12-20 昇显微电子(苏州)有限公司 一种基于Mini 3DLUT的色彩校正方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101049008A (zh) * 2004-11-01 2007-10-03 佳能株式会社 图像处理设备和图像处理方法
CN101123080A (zh) * 2007-09-14 2008-02-13 北京中视中科光电技术有限公司 一种色域映射实时处理方法及实时处理电路
CN102799657A (zh) * 2012-07-05 2012-11-28 上海富瀚微电子有限公司 基于三维查找表实现数据点实时映射处理的系统及方法
CN105830440A (zh) * 2013-12-13 2016-08-03 Vid拓展公司 使用插值进行亮度和色度的相位对准的色域可伸缩视频编码设备及方法
CN111009027A (zh) * 2019-12-27 2020-04-14 南京奥视威电子科技股份有限公司 一种利用3d lut实现色彩校正的方法和显示设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101049008A (zh) * 2004-11-01 2007-10-03 佳能株式会社 图像处理设备和图像处理方法
CN101123080A (zh) * 2007-09-14 2008-02-13 北京中视中科光电技术有限公司 一种色域映射实时处理方法及实时处理电路
CN102799657A (zh) * 2012-07-05 2012-11-28 上海富瀚微电子有限公司 基于三维查找表实现数据点实时映射处理的系统及方法
CN105830440A (zh) * 2013-12-13 2016-08-03 Vid拓展公司 使用插值进行亮度和色度的相位对准的色域可伸缩视频编码设备及方法
CN111009027A (zh) * 2019-12-27 2020-04-14 南京奥视威电子科技股份有限公司 一种利用3d lut实现色彩校正的方法和显示设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022205127A1 (zh) * 2021-03-31 2022-10-06 京东方科技集团股份有限公司 色彩校正方法、现场可编程门阵列、芯片和显示设备
GB2611234A (en) * 2021-03-31 2023-03-29 Boe Technology Group Co Ltd Color correction method, field programmable gate array, chip and display device
CN115499633A (zh) * 2022-09-23 2022-12-20 昇显微电子(苏州)有限公司 一种基于Mini 3DLUT的色彩校正方法和系统
CN115499633B (zh) * 2022-09-23 2024-05-28 昇显微电子(苏州)股份有限公司 一种基于Mini 3DLUT的色彩校正方法和系统

Also Published As

Publication number Publication date
CN112017105B (zh) 2024-03-26

Similar Documents

Publication Publication Date Title
JP4660254B2 (ja) 描画方法及び描画装置
CN112017105A (zh) 颜色校正fpga实现装置和方法、颜色校正设备和存储介质
JP2776803B2 (ja) ビデオ信号処理装置
US6363407B1 (en) Exponential calculation device and decoding device
US20180276787A1 (en) Multiple stage memory loading for a three-dimensional look up table used for gamut mapping
US6078335A (en) Method and apparatus for determining level of detail for texture filtering
JP2004140702A (ja) 映像信号処理装置、ガンマ補正方法及び表示装置
JP4955446B2 (ja) データ処理方法
JP4429626B2 (ja) 既知ノードの関数値に基づいて入力ノードの関数値を演算する方法及びシステム
EP0969413A2 (en) Data conversion apparatus and method
JP2019096049A (ja) 画像生成装置及び方法
JPH06149993A (ja) 画像変換処理方法及び画像変換処理装置
US7221293B2 (en) Data conversion processing apparatus
JP2001211349A (ja) 伝達関数を実現する方法及び装置
JP5997480B2 (ja) 画像処理装置、画像処理方法およびプログラム
JP3395301B2 (ja) 座標変換装置及び座標変換方法
JP3364813B2 (ja) 色逆変換処理装置及び映像信号処理装置
JP3839676B2 (ja) 色補正装置および方法
JP7500254B2 (ja) データ処理装置およびその制御方法
JP2011205209A (ja) 画像処理装置および方法、プログラム
JP2021103346A (ja) データ変換装置、データ変換方法、及びプログラム
JPH0314128A (ja) 対数表現数値利用の演算装置
JP2024044200A (ja) 画像処理装置、画像処理方法及びプログラム
JP2017208719A (ja) 画像処理装置
JP2007293827A (ja) テーブル値変換装置及びテーブル値変換書き込み方法

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