伽马校正装置及实现伽马校正的方法和装置的制作方法

文档序号:7953230阅读:185来源:国知局
专利名称:伽马校正装置及实现伽马校正的方法和装置的制作方法
技术领域
本发明涉及数字信号处理,尤其是数字信号处理过程中伽马校正装置及实现伽码(Gamma)校正的方法和装置。
背景技术
同样一幅数字图象,在不同的显示器上显示,可能得到不同的结果。主要原因在于,不同种类的显示器,其发光原理有所不同,在将每个像素的电压信号转换成亮度信号时,其二者间的对应关系并不是一种线性的关系,因此可能会导致不精确的图象色彩还原结果。为了解决这个问题,需要针对不同的图象显示设备的物理特性,对数字图象信号进行伽马校正。这样,经过预先校正过的图象信号送到显示设备上,就能正确还原出图象本来的效果。
在伽马(Gamma)校正的过程中,一般有两种实现方法,一是直接查表法,另一种是直接计算法。查表法是把每一个可能的输入对应的输出事先计算好,并制作成一个表存放起来。这样,在工作的时候,只要根据输入值到表中检索一下,马上就可以得到输出结果。其特点是只要表事先存好,在工作的时候几乎不需要计算量,其缺点是硬件存储量较大,另外如果要更换一个不同的Gamma系数或一条不同形状的gamma曲线,则通常需要将整个表进行刷新,这对于硬件实现来说,是很大的开销。
直接计算法是将整个gamma曲线分成若干直线段来近似表示,分别记录每个段的起始点、终止点的坐标。如图1所示,图中画出了一条gamma曲线,AB为曲线上的两点,对应的输入值分别为x1和x2,对应的输出值分别为y1和y2。假设现在有一输入值为x,落在线段AB之间的C点,则C点对应的输出值y为y=y1+(((y2-y1)*(x-x1))/(x2-x1)) (1)
这样,对应于某个输入值,只要计算出它在哪个直线段上,然后就可以用直线方程式求出其对应的输出值。其优点是硬件存储量较小,且进行修改的时候比较灵活,只需要改动很少几个参数就可以;缺点是计算量比较大,尤其是在硬件实现时,需要实现一个除法单元。一般而言对于一个8比特可变的除数(分母),该除法单元至少需要要几千个逻辑门的电路才能实现,复杂性较高,而且对每个像素都要进行除法单元的计算,这么多的逻辑门电路带来的功耗较大。

发明内容
本发明要解决的技术问题是提供一种伽马校正装置及实现伽马校正的方法和装置,以大大降低硬件实现的复杂度。
为解决上述技术问题,本发明提供一种实现伽马校正的方法,该方法包括以下步骤(a)将伽马曲线分成若干个直线段,各直线段的输入区间的长度是2的k次幂;(b)存储划分伽马曲线产生的伽马参数,所述伽马参数包括各直线段的起始点的输入值x1及终止点的输入值y1、输出值y2及参数k值;(c)利用待校正的图像输入值x和存储的伽马参数进行校正计算,校正计算中采用右移k位来实现对各直线段输入区间的除法,以计算待处理图像的输出值y实现伽马校正。
进一步地,步骤(c)包括如下步骤根据待校正的图像输入值x,判断该输入值对应的直线段。
进一步地,步骤(c)进一步包括根据判断结果获取该直线段的伽马参数。
进一步地,步骤(c)利用公式y=((x-x1)*(y2-y1>>k)+y1进行校正计算。
进一步地,步骤(c)利用公式y=((x-x1)>>k)*(y2-y1)+y1进行校正计算。
为解决上述技术问题,本发明提供一种实现伽马校正的装置,该装置包括伽马参数存储模块、输入图像存储模块、伽马校正模块及输出图像存储模块,其中伽马参数存储模块用于存储对伽马曲线预先分段所产生的伽马参数,各直线段的输入区间的长度是2的k次幂;所述伽马参数包括各直线段起始点的输入值、输出值、终止点的输入、输出值,以及各直线段的k值;伽马校正模块利用待校正输入值和伽马参数进行计算,并利用右移k位来实现对该直线段输入区间的除法,将计算得到的校正输出值输出至输出图像存储单元。
进一步地,伽马校正模块还包括判断单元、查询单元及计算单元,其中判断单元用于判断来自输入图像存储模块的待校正输入值所对应的伽马曲线的直线段;查询单元用于查询伽马参数存储模块数据库,并获取待校正输入值所对应直线段的伽马参数并传输给计算单元;计算单元利用待校正输入值和所获得的伽马参数进行计算,并利用右移k位来实现对该直线段输入区间的除法,将计算得到的校正输出值输出至输出图像存储单元。
进一步地,计算单元由第一减逻辑单元、第二减逻辑单元、乘逻辑单元、右移逻辑单元及加逻辑单元构成,其中各逻辑单元的输入输出关系如下待校正输入值为该计算单元的输入值;待校正输入值及该直线段起始点输入值分别为第一减逻辑单元的第一、第二输入值;该直线段的终止点输出值及该直线段的起始点的输出值分别为第二减逻辑单元的第一、第二输入值;第一减逻辑单元的输出值及第二减逻辑单元的输出值分别为乘逻辑单元的第一、第二输入值;乘逻辑单元的输出值及该直线段的k值分别为右移逻辑单元的第一、第二输入值;右移逻辑单元的的输出值及该直线段的起始点的输出值分别为加逻辑单元的第一、第二输出值;加逻辑单元的输出值即为该计算单元的输出值。
进一步地,计算单元所完成的公式为y=((x-x1)*(y2-y1)>>k)+y1或y=((x-x1)>>k)*(y2-y1)+y1。
为解决上述技术问题,本发明还提供一种伽马校正的装置,该装置包括伽马参数存储模块和伽马校正模块,其中伽马参数存储模块用于存储对伽马曲线预先分段所产生的伽马参数,各直线段的输入区间的长度是2的k次幂;所述伽马参数包括各直线段起始点的输入值、输出值、终止点的输入、输出值,以及各直线段的k值;伽马校正模块利用待校正输入值和伽马参数进行计算,并利用右移k位来实现对该直线段输入区间的除法,将计算得到的校正输出值输出至输出图像存储单元。
本发明方法中,在以各直线段的输入区间的长度是2的k幂次的原则对伽马曲线进行分段的前提下,采用右移k位来实现复杂的除法计算,同样的,在实现伽马校正的装置及伽马校正装置中也采用右移k位进行伽马校正的硬件实现,简化了伽马校正的复杂度,提升了伽马校正的效率。


图1是现有技术伽马曲线的校正计算示意图。
图2是现有技术实现伽马校正计算的逻辑电路示意图。
图3是本发明实现伽马校正装置。
图4是本发明实现伽马校正计算的实施例的逻辑电路示意图。
图5是本发明实现伽马校正计算的另一实施例的逻辑电路示意图。
具体实施例方式
本发明主要采用以各直线段的输入区间的长度是2的k幂次的原则对伽马曲线进行分段,校正计算中采用右移k位来实现对各直线段输入区间的除法,从而简化伽马校正的硬件结构。
本发明伽马校正的实现方法包括以下步骤步骤一将伽马曲线分成若干个直线段,各直线段的输入区间的长度是2的k次幂;步骤二存储划分伽马曲线产生的伽马参数,伽马参数包括各直线段的起始点的输入值x1、输出值y1及终止点的输入值x2、输出值y2及参数k值;步骤三利用待校正的图像输入值x和存储的伽马参数进行校正计算,校正计算中采用右移k位来实现对各直线段输入区间的除法,以计算待处理图像的输出值y实现伽马校正。
为实现上述步骤首先根据待校正的图像输入值x,判断该输入值对应的直线段;然后根据判断结果获取该直线段的伽马参数,再利用公式y=((x-x1)*(y2-y1)>>k)+y1或公式y=((x-x1)>>k)*(y2-y1)+y1进行校正计算。
其中“>>”表示右移操作,“>>k”表示右移k位。
如图3所示,本发明伽马校正的实现装置包括伽马参数存储模块、输入图像存储模块、伽马校正模块及输出图像存储模块。其中伽马参数存储模块用于存储对伽马曲线预先直线分段所产生的参数,伽马参数包括各直线段起始点的输入值、终止点的输入、输出值,以及各直线段的k值。
伽马曲线的分段原则是,各直线段的输入区间的长度是2的k次幂,其中k为整数,各直线段的输入区间长度可以相等,比如所有的直线段的k参数值都为8,各直线段的输入区间也可以不相等,比如,有的直线段的k参数值为8,有的直线段的k参数值为16等。
输入图像存储模块用于存储图像的输入值及向伽马校正模块输入待校正的输入值。
输出图像存储模块用于存储伽马校正模块校正后的输出值,并输出至其他图像处理模块。
伽马校正模块用于根据输入的图像输入值进行判断,获取并利用伽马参数对输入待校正输入值进行伽马校正以得到计算输出图像输出值,伽马校正模块还包括判断单元、查询单元及计算单元,其中判断单元用于判断来自输入图像存储模块的待校正输入值所对应的伽马曲线的直线段;查询单元用于查询伽马参数存储模块数据库,并获取待校正输入值所对应直线段的伽马参数并传输给计算单元;计算单元利用待校正输入值和所获得的伽马参数进行计算,并利用右移k位来实现对该直线段输入区间的除法,将计算得到的校正输出值输出至输出图像存储单元。
如图4所示,计算单元由第一减逻辑单元10、第二减逻辑单元20、乘逻辑单元30、右移逻辑单元40及加逻辑单元50构成,其中各逻辑单元的输入输出关系如下待校正输入值x为该计算单元的输入值;待校正输入值x为第一减逻辑单元10的第一个输入值,该直线段起始点输入值x1为第一减逻辑单元10的第二输入值;该直线段的终止点输出值y2为第二减逻辑单元20的第一输入值,该直线段的起始点的输出值y1为第二减逻辑单元20的第二输入值;第一减逻辑单元10输出值(x-x1)为乘逻辑单元30的第一输入值,第二减逻辑单元30的输出值(y2-y1)为乘逻辑单元30的第二输入值;乘逻辑单元30的输出值((x-x1)*(y2-y1))为右移逻辑单元40的第一输入值,该直线段的k值为右移逻辑单元40的第二输入值;右移逻辑单元40的输出值((x-x1)*(y2-y1)>>k)为加逻辑单元50的第一输入值,该直线段的起始点的输出值y1为加逻辑单元50的第二输出值;加逻辑单元的输出值((x-x1)*(y2-y1>>k)+y1为该计算单元的输出值y,即y=((x-x1)*(y2-y1)>>k)+y1。
举例来说,如果图中AB对应的输入区间长度为8,则公式(1)就简化为公式(2),需要特别指出的是,对硬件实现而言,右移操作是很容易实现的,其复杂度比公式(1)中的除法要大大降低。
y=((x-x1)*(y2-y1)>>3)+y1在另一实施例中,计算单元也可以由图5所示的逻辑结构来实现,该计算单元由第一减逻辑单元10’、右移逻辑单元20’、第二减逻辑单元30’、乘逻辑单元40’及加逻辑单元50’构成,其中各逻辑单元的输入输出关系如下待校正输入值x为该计算单元的输入值;待校正输入值x为第一减逻辑单元10’的第一个输入值,该直线段起始点输入值x1为第一减逻辑单元10’的第二输入值;第一减逻辑单元的输出值(x-x1)为右移逻辑单元20’的第一输入值,该直线段的k值为右移逻辑单元20’的第二输入值;该直线段的终止点输出值y2为第二减逻辑单元30’的第一输入值,该直线段的起始点的输出值y1为第二减逻辑单元30’的第二输入值;右移逻辑单元20的输出值((x-x1)>>k)为乘逻辑单元30’的第一输入值,第二减逻辑单元30的输出值(y2-y1)为乘逻辑单元40’的第二输入值;乘逻辑单元40的输出值(x-x1)>>k)*(y2-y1)为加逻辑单元50’的第一输入值,该直线段的起始点的输出值y1为加逻辑单元50’的第二输出值;加逻辑单元的输出值((x-x1)>>k)*(y2-y1)+y1为该计算单元的输出值y,即y=((x-x1)>>k)*(y2-y1)+y1。
当然上述计算单元的硬件结构也可以再对上式进行数学变换后,用更复杂的逻辑单元和结构来实现。
综上所述,本发明方法中,以各直线段的输入区间的长度是2的k幂次的原则对伽马曲线进行分段,使得进行伽马校对的硬件实现,采用相对简单的右移逻辑单元代替复杂的除法逻辑单元,而只要右移适当的位数就可以。相对于除法逻辑单元,右移单元约需要几百门的电路就可以实现,复杂性大大降低,另外该右移单元的功耗较原有的除法单元也大大降低。
权利要求
1.一种实现伽马校正的方法,该方法包括以下步骤(a)将伽马曲线分成若干个直线段,各直线段的输入区间的长度是2的k次幂;(b)存储划分伽马曲线产生的伽马参数,所述伽马参数包括各直线段的起始点的输入值x1及终止点的输入值y1、输出值y2及参数k值;(c)利用待校正的图像输入值x和存储的伽马参数进行校正计算,校正计算中采用右移k位来实现对各直线段输入区间的除法,以计算待处理图像的输出值y实现伽马校正。
2.如权利要求1所述的方法,其特征在于步骤(c)包括如下步骤根据待校正的图像输入值x,判断该输入值对应的直线段。
3.如权利要求2所述的方法,其特征在于步骤(c)进一步包括根据判断结果获取该直线段的伽马参数。
4.如权利要求1至3中任一项所述的方法,其特征在于步骤(c)利用公式y=((x-x1)*(y2-y1)>>k)+y1进行校正计算。
5.如权利要求1至3中任一项所述的方法,其特征在于步骤(c)利用公式y=((x-x1)>>k)*(y2-y1)+y1进行校正计算。
6.一种实现伽马校正的装置,该装置包括伽马参数存储模块、输入图像存储模块、伽马校正模块及输出图像存储模块,其特征在于伽马参数存储模块用于存储对伽马曲线预先分段所产生的伽马参数,各直线段的输入区间的长度是2的k次幂;所述伽马参数包括各直线段起始点的输入值、输出值、终止点的输入、输出值,以及各直线段的k值;伽马校正模块利用待校正输入值和伽马参数进行计算,并利用右移k位来实现对该直线段输入区间的除法,将计算得到的校正输出值输出至输出图像存储单元。
7.如权利要求6所述的装置,其特征在于伽马校正模块还包括判断单元、查询单元及计算单元,其中判断单元用于判断来自输入图像存储模块的待校正输入值所对应的伽马曲线的直线段;查询单元用于查询伽马参数存储模块数据库,并获取待校正输入值所对应直线段的伽马参数并传输给计算单元;计算单元利用待校正输入值和所获得的伽马参数进行计算,并利用右移k位来实现对该直线段输入区间的除法,将计算得到的校正输出值输出至输出图像存储单元。
8.如权利要求7所述的方法,其特征在于计算单元由第一减逻辑单元、第二减逻辑单元、乘逻辑单元、右移逻辑单元及加逻辑单元构成,其中各逻辑单元的输入输出关系如下待校正输入值为该计算单元的输入值;待校正输入值及该直线段起始点输入值分别为第一减逻辑单元的第一、第二输入值;该直线段的终止点输出值及该直线段的起始点的输出值分别为第二减逻辑单元的第一、第二输入值;第一减逻辑单元的输出值及第二减逻辑单元的输出值分别为乘逻辑单元的第一、第二输入值;乘逻辑单元的输出值及该直线段的k值分别为右移逻辑单元的第一、第二输入值;右移逻辑单元的的输出值及该直线段的起始点的输出值分别为加逻辑单元的第一、第二输出值;加逻辑单元的输出值即为该计算单元的输出值。
9.如权利要求7所述的方法,其特征在于计算单元所完成的公式为y=((x-x1)*(y2-y1)>>k)+y1或y=((x-x1)>>k)*(y2-y1)+y1。
10.一种伽马校正的装置,其特征在于该装置包括伽马参数存储模块和伽马校正模块,其中伽马参数存储模块用于存储对伽马曲线预先分段所产生的伽马参数,各直线段的输入区间的长度是2的k次幂;所述伽马参数包括各直线段起始点的输入值、输出值、终止点的输入、输出值,以及各直线段的k值;伽马校正模块利用待校正输入值和伽马参数进行计算,并利用右移k位来实现对该直线段输入区间的除法,将计算得到的校正输出值输出至输出图像存储单元。
全文摘要
本发明提供一种伽马校正装置及实现伽马校正的方法和装置,其中实现伽马校正的方法包括以下步骤(a)将伽马曲线分成若干个直线段,各直线段的输入区间的长度是2的k次幂;(b)存储划分伽马曲线产生的伽马参数,所述伽马参数包括各直线段的起始点的输入值x1及终止点的输入值y1、输出值y2及参数k值;(c)利用待校正的图像输入值x和存储的伽马参数进行校正计算,校正计算中采用右移k位来实现对各直线段输入区间的除法,以计算待处理图像的输出值y实现伽马校正。本发明方法和装置中采用右移k位来实现复杂的除法计算,简化了伽马校正的复杂度。
文档编号H04N9/69GK1874527SQ200610012190
公开日2006年12月6日 申请日期2006年6月9日 优先权日2006年6月9日
发明者王浩, 高晓宇 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1