具有伽马校正的显示驱动器的制作方法

文档序号:14992354发布日期:2018-07-20 22:33阅读:322来源:国知局

本申请要求2017年1月13日提交的日本专利申请no.2017-4518的优先权,通过引用将其公开结合到本文中。

本公开涉及显示驱动器、显示装置和驱动方法,更具体来说,涉及适配成驱动自发光显示面板、例如oled(有机发光二极管)显示面板的图像数据处理。



背景技术:

在许多通常实现方式中,驱动显示面板的显示驱动器配置成执行与显示面板的特性匹配的伽马校正。伽马校正可包括图像数据处理,其被执行以便以与图像数据所指定的灰度值对应的亮度级正确地显示图像。一般来说,子像素(r子像素、g子像素和b子像素)的亮度级与驱动信号(驱动电压或驱动电流)的信号电平之间的对应关系在显示面板中不是线性的。例如,液晶显示面板的电压-透明度曲线(v-t曲线)可以不是线性的。相应地,在各种实现方式中,提供与显示数据所指定的灰度值成比例的驱动信号没有实现以正确亮度级来显示图像。然而,可执行伽马校正,以便以与所指定灰度值对应的亮度级在这种显示面板上显示图像。

另外,在各种实现方式中,显示驱动器(其驱动自发光显示面板、例如oled(有机发光二极管)显示面板)适配成执行图像数据处理以用于与伽马校正同时控制屏幕亮度级。一般来说,显示装置具有调整屏幕亮度级(即,整个显示图像的亮度级)的功能。这个功能,在例如用户期望显示更亮图像时,允许显示装置经过手动操作来增加屏幕亮度级。

对于包括背光的显示装置、例如液晶显示面板,在各种实现方式中,不需要执行用于控制屏幕亮度级的图像数据处理,因为屏幕亮度级能够通过背光的亮度来调整。相比之下,在驱动自发光显示面板、例如oled显示面板中,对提供给相应像素的相应子像素的驱动信号的信号电平进行控制,以控制屏幕亮度级。相应地,可对图像数据执行图像数据处理,以便在驱动自发光显示面板中控制屏幕亮度级。

在一种或多种实现方式中,驱动自发光显示面板的显示驱动器可包括伽马校正电路,其执行用于与伽马校正同时控制屏幕亮度级的处理。但是,这种伽马校正电路可能增加电路尺寸和/或在可表示灰度级的数量上降低。



技术实现要素:

在一个实施例中,显示驱动器包括:校正电路,配置成从输入灰度值和亮度数据(其指定自发光显示面板的屏幕亮度级)来计算输出值;以及驱动电路,配置成响应输出值而生成驱动自发光显示面板的发光元件的驱动信号。校正电路配置成基于亮度数据来确定校正控制点,其中校正控制点用于对亮度数据所指定的屏幕亮度级的输入灰度值所执行的校正,并且还配置成采用校正控制点所指定的输入-输出特性从输入灰度值来计算输出值。

在另一个实施例中,显示装置包括自发光显示面板,在其中各像素电路包括:发光元件;以及驱动自发光显示面板的显示驱动器。显示驱动器包括:校正电路,配置成从输入灰度值和亮度数据(其指定自发光显示面板的屏幕亮度级)来计算输出值;以及驱动电路,配置成响应输出值而生成驱动自发光显示面板的发光元件的驱动信号。校正电路配置成基于亮度数据来确定校正控制点,校正控制点用于对亮度数据所指定的屏幕亮度级的输入灰度值所执行的校正,并且还配置成采用校正控制点所指定的输入-输出特性从输入灰度值来计算输出值。

在又一个实施例中,一种方法包括:从输入灰度值和亮度数据来计算输出值,其中,亮度数据指定自发光显示面板(在其中各像素电路包括发光元件)的屏幕亮度级;以及响应输出值而生成驱动自发光显示面板的发光元件的驱动信号。计算输出值的步骤包括:基于亮度数据来确定校正控制点,其用于对亮度数据所指定的屏幕亮度级的输入灰度值所执行的校正;以及采用校正控制点所指定的输入-输出特性从输入灰度值来计算输出值。

附图说明

图1是示出根据一个或多个实施例要经过伽马校正所实现的对应亮度级的图表;

图2是示出根据一个或多个实施例针对屏幕亮度级的伽马校正的输入-输出特性的图表;

图3是示出根据一个或多个实施例伽马校正电路的框图;

图4是示出根据一个或多个实施例所示伽马校正电路中的可表示灰度级的数量减少的图表;

图5是示出根据一个或多个实施例的显示装置的配置的框图;

图6是示出根据一个或多个实施例的显示驱动器的配置的框图;

图7是示出根据一个或多个实施例的伽马校正的输入-输出特性的图表;

图8是示出根据一个或多个实施例的伽马校正的输入-输出特性的图表;

图9是示出根据一个或多个实施例的伽马校正电路的配置的框图;

图10是示出根据一个或多个实施例的伽马校正电路的操作的流程图;

图11示出根据一个或多个实施例的贝塞尔曲线计算电路;

图12是示出根据一个或多个实施例在贝塞尔曲线计算电路中执行的计算过程的流程图;

图13是示出根据一个或多个实施例的贝塞尔曲线计算电路的配置的一个示例的框图;

图14是示出根据一个或多个实施例的贝塞尔曲线计算电路的处理单元的配置的电路图;

图15示出根据一个或多个实施例的贝塞尔曲线计算电路;

图16是示出根据一个或多个实施例的贝塞尔曲线计算电路的配置的一个示例的框图;

图17是示出根据一个或多个实施例的贝塞尔曲线计算电路的初始级处理单元和处理单元的配置的电路图;以及

图18示意性地示出根据一个或多个实施例的贝塞尔曲线计算电路。

具体实施方式

下面给出各个实施例的描述。

在一个实施例中,配置用于驱动自发光显示面板的显示驱动器适配成执行图像数据处理以用于与伽马校正同时控制屏幕亮度级。本文所述的自发光显示面板包括显示面板,在其中组成各像素的子像素的像素电路包括发光元件,例如oled显示面板。在oled显示面板的一个实施例中,各像素包括红色子像素、绿色子像素和蓝色子像素,其包括分别发射红光、绿光和蓝光的发光元件。在其他实施例中,每个像素可包括除了红色子像素、绿色子像素和蓝色子像素之外的其他子像素颜色。例如,像素可另外包括白色子像素。此外,在又一些实施例中,每个像素可包括替代红色、绿色和/或蓝色子像素的其他子像素颜色。

图1对于各屏幕亮度级示出输入灰度值与每个子像素的亮度级(将通过显示面板的理想伽马特性所实现)之间的对应关系的一个实施例。图例“亮度级100%”表示示出对于屏幕亮度级是所容许最大亮度级(100%)的情况的伽马特性的图表,以及图例“亮度级75%”表示示出对于屏幕亮度级是所容许最大亮度级的75%的情况的伽马特性的图表。类似地,图例“亮度级50%”表示示出对于屏幕亮度级是所容许最大亮度级的50%的情况的伽马特性的图表,以及图例“亮度级25%”表示示出对于屏幕亮度级是所容许最大亮度级的25%的情况的伽马特性的图表。

图1中,图表是基于子像素的亮度级来归一化,其中,对于屏幕亮度级是最大亮度级(100%的亮度级)的情况,该子像素的亮度级在与该子像素关联的输入灰度值是所容许最大值(图1中的255)时为1.0。对于100%的屏幕亮度级,例如,某个子像素的理想亮度级在与这个子像素关联的输入灰度值是186时为0.5。

在一个实施例中,伽马校正的输入-输出特性响应屏幕亮度级而修改。此外,用于控制屏幕亮度级的处理可以与伽马校正同时执行。图2是示出针对各屏幕亮度级的伽马校正的理想输入-输出特性的一个示例的图表。图2所示的是,当用于经过电压编程来驱动oled显示面板的显示数据被生成时,针对各屏幕亮度级的伽马校正的输入-输出特性。图2中,输入-输出特性的图表采用如下假设来绘制:显示数据的值(即,伽马校正的输出值)是12位值,并且oled显示面板的各像素的每个子像素采用与显示数据的值成比例的电压来编程。当输出值为“4095”时,例如,感兴趣子像素采用5v的电压来编程。应当注意,当oled显示面板经过电压编程来驱动时,子像素的亮度级随着驱动电压降低而增加。

参照图2,伽马校正的输入-输出特性曲线的形状取决于因显示面板的伽马特性引起的屏幕亮度级。例如,输入-输出特性曲线弯曲所在之处的输入灰度值取决于屏幕亮度级。更具体来说,在图2所示的示例中,对于100%的屏幕亮度级,输入-输出特性曲线在“17”和“34”的输入灰度值处弯曲,而对于25%的屏幕亮度级输入-输出特性曲线在“30”和“66”的输入灰度值处弯曲。

输入-输出特性曲线与屏幕亮度级的相关性可造成伽马校正电路(其执行用于与伽马校正同时控制屏幕亮度级的处理)的电路尺寸的非期望增加的问题。例如,实现用于与伽马校正同时控制屏幕亮度级的处理的一种方式是为各屏幕亮度级准备与输入-输出特性对应的lut(查找表)。但是,在各种实施例中,为各屏幕亮度级准备与输入-输出特性对应的lut(查找表)可能不合需要地增加伽马校正电路的电路尺寸,因为lut具有大电路尺寸。

避免伽马校正电路的电路尺寸的增加的一种可能方式可以是提供一种处理电路(例如lut),其对所容许最大屏幕亮度级实现伽马校正的输入-输出特性,并且响应屏幕亮度级而调整提供给处理电路的输入灰度值。图3是示出这样配置的伽马校正电路100的配置的框图。应当注意,本申请人没有确认图3所示伽马校正电路100的配置是本领域所公知的。

图3所示的伽马校正电路100包括输入灰度值调整电路101和基于最大亮度级的计算电路102。输入灰度值调整电路101基于屏幕亮度级以及外部提供给伽马校正电路100的输入灰度值din1来计算要提供给基于最大亮度级的计算电路102的输入灰度值din2。基于最大亮度级的计算电路102为所容许屏幕最大亮度级(100%的屏幕亮度级)提供伽马校正的输入-输出特性。在一个实施例中,当接收输入灰度值din2时,基于所容许最大亮度级的计算电路102按照针对最大屏幕亮度级(100%的屏幕亮度级)的伽马校正的输入-输出特性来输出与输入灰度值din2对应的输出值dout。例如,基于最大亮度级的计算电路102可按照通过图2的“亮度级100%”所示的图表所定义的输入-输出关系来输出与输入灰度值din2对应的输出值dout。例如,这种操作可通过将lut用作基于最大亮度级的计算电路102来实现。

当伽马校正的伽马值为γ并且屏幕亮度级为所容许最大亮度级的q倍(其中0≤q<1)时,下式(1a)对伽马校正电路100的输入灰度值din1以及要提供给基于最大亮度级的计算电路102的输入灰度值din2成立。

din2γ=q·div1γ…(1a)

下式(1b)能够从表达式(1a)来得到:

din2=q1/γ·din1…(1b)

在一个实施例中,例如,当显示面板的伽马值γ为2.2而屏幕亮度级是所容许最大亮度级的0.5倍(50%的屏幕亮度级)时,下式(1c)从表达式(1b)得到:

din2=0.51/2.2·din1

≈(186/255)·din1…(1c)

表达式(1c)暗示,对于2.2的伽马值γ,针对50%的屏幕亮度级的伽马校正的输入-输出特性能够通过向基于最大亮度级的计算电路102提供作为输入灰度值din1的(186/255)倍所得到的值来实现。

在各种实施例中,当伽马值为γ并且屏幕亮度级是所容许最大亮度级的q倍时,针对所容许最大亮度级q倍的屏幕亮度级的伽马校正可通过提供作为输入灰度值din1的q1/γ倍所得到的值来实现。

但是,这种方式导致可表示灰度级的数量的减少。这是因为,如图4所示,在作为输入灰度值din1的q1/γ倍所得到的输入灰度值din2被提供给基于最大亮度级的计算电路102的配置中,输入灰度值din2的所容许范围限制成为或者低于输入灰度值din1的所容许最大值dinmax的q1/γ倍。当输入灰度值din1为8位值时,输入灰度值din1的所容许最大值dinmax为255(=28-1)。例如,当屏幕亮度级是所容许最大亮度级的0.5倍(50%的屏幕亮度级)时,作为输入灰度值din1的(186/255)倍所得到的输入灰度值din2被提供给基于最大亮度级的计算电路102;但是,提供给基于亮度级的计算电路102的输入灰度值din2被限制到从零至186的范围。这意味着,可表示灰度级的数量减少。

在以下实施例的一个或多个中,描述伽马校正电路(其配置成抑制电路尺寸的增加,并且避免可表示灰度级的数量的减少的问题)以及这样配置的伽马校正电路的应用。

图5是示出一个实施例中的显示装置10的配置的框图。显示装置10配置为oled显示装置,包括oled显示面板1和显示驱动器2。

oled显示面板1包括栅线4、数据线5、像素电路6和栅驱动器电路7。像素电路6的每个设置在栅线4和数据线5的相交处,并且包括发射红、绿或蓝光的发光元件。包括发射红光的发光元件的像素电路6用作r子像素。类似地,包括发射绿光的发光元件的像素电路6用作g子像素,以及包括发射蓝光的发光元件的像素电路6用作b子像素。栅驱动器电路7响应从显示驱动器2所接收的栅控制信号sout而驱动栅线4。在这个实施例中,提供一对栅驱动器电路7。栅驱动器电路7之一驱动奇数编号的栅线4,而另一个驱动偶数编号的栅线4。

显示驱动器2响应从主机3所接收的图像数据din和控制数据dctrl而驱动oled显示面板1,以便在oled显示面板1上显示图像。图像数据din描述oled显示面板1的各像素的每个子像素的灰度值。控制数据dctrl包括用于控制显示驱动器2的命令和参数。应用处理器、cpu(中央处理器)、dsp(数字信号处理器)等可用作主机3。

图6是示出一个实施例中的显示驱动器2的配置的框图。显示驱动器2包括接口控制电路11、伽马校正电路12、锁存电路13、线性灰度电压生成器电路14、数据线驱动电路15和寄存器16。

接口控制电路11操作如下。接口控制电路11向伽马校正电路12转发从主机3所接收的图像数据din。接口控制电路11还将各种控制参数存储到寄存器16中,并且响应控制数据dctrl中包含的命令而控制显示驱动器2的相应电路。寄存器16中存储的控制参数包括用于控制在伽马校正电路12中执行的伽马校正的参数,更具体来说是最大亮度级控制点数据cp0至cpm。稍后将详细描述最大亮度级控制点数据cp0至cpm的内容和技术含意。

另外,接口控制电路11向伽马校正电路12提供指定oled显示面板1的屏幕亮度级(oled显示面板1上显示的整个图像的亮度级)的亮度数据dbrt。在一个实施例中,从主机3所接收的控制数据dctrl可包括亮度数据dbrt,以及接口控制电路11可向伽马校正电路12提供控制数据dctrl中包含的亮度数据dbrt。

伽马校正电路12对从接口控制电路11所接收的图像数据din执行伽马校正,以生成用来驱动oled显示面板1的显示数据dout。在伽马校正电路12中执行的伽马校正中使用上述最大亮度级控制点数据cp0至cpm和亮度数据dbrt。稍后将描述伽马校正电路12中执行的伽马校正的细节。在各种实施例中,代替图像数据din,通过对从接口控制电路11所接收的图像数据din执行数字处理(例如缩放(图像放大和缩小)和色彩调整)所得到的图像数据可提供给伽马校正电路12。

锁存电路13锁存从伽马校正电路12所输出的显示数据dout,并且将锁存显示数据dout转发到数据线驱动电路15。

线性灰度电压生成器电路14生成分别与显示数据dout的容许数据值对应的灰度电压集合。在这个实施例中,线性灰度电压生成器电路14生成灰度电压集合,使得相邻灰度电压之间的电压电平间隔是相同的。换言之,显示数据dout中描述的数据值与对应灰度电压之间的对应关系在这个实施例中是线性的。

数据线驱动电路15采用与显示数据dout中描述的数据值对应的灰度电压来驱动相应数据线5。更具体来说,数据线驱动电路15从从自线性灰度电压生成器电路14所接收的灰度电压之中选择与显示数据dout的数据值对应的灰度电压,并且将相应数据线5驱动到所选灰度电压。

接下来根据一个或多个实施例给出对伽马校正电路12的操作的描述。在一个实施例中,当与感兴趣子像素关联的输入灰度值x_in被提供给伽马校正电路12的输入时,伽马校正电路12输出输出值y_out作为与感兴趣子像素关联的显示数据dout的数据值。在这个实施例中,输入灰度值x_in是8位数据,而输出值y_out是12位数据。

在一个或多个实施例中,伽马校正电路12中执行的伽马校正的输入-输出特性、即输入灰度值x_in与输出值y_out之间的对应关系被控制在最大亮度级控制点数据cp0至cpm和亮度数据dbrt上。最大亮度级控制点数据cp0至cpm是数据集合,其对于屏幕亮度级是所容许最大亮度级的情况指定伽马校正的输入-输出特性,即,亮度数据dbrt指定所容许最大亮度级。

图7是示意性示出根据一个或多个实施例的最大亮度级控制点数据cp0至cpm以及通过其所确定的输入-输出特性曲线的图示。最大亮度级控制点数据cp0至cpm指定控制点cp0至cpm的坐标,其,对于屏幕亮度级是所容许最大亮度级的情况,定义xy坐标系中的伽马校正的输入-输出特性,其中x轴表示输入灰度值x_in,以及y轴表示输出值y_out。在图7所示的实施例中,控制点cpi表示其坐标是通过最大亮度级控制点数据cpi所指定的控制点,其中i是从零至“m”的整数,以及cpi(xcpi,ycpi)表示控制点cpi的坐标,其中xcpi是控制点cpi的x坐标(该坐标指示沿x轴方向的位置),并且ycpi是控制点cpi的y坐标(该坐标指示沿y轴方向的位置)。各控制点cpi的x坐标xcpi满足下面给出的条件:

xcp0<xcp1<…<xcpi<xcp(i+1)<…<xcp(m-1)<xcpm,

其中,控制点cp0的x坐标xcp0是输入灰度值x_in的所容许最小值(即,零),以及控制点cpm的x坐标xcpm是输入灰度值x_in的所容许最大值(即,255)。

在各种实施例中,当屏幕亮度级是所容许最大亮度级(即,亮度数据dbrt指定所容许最大亮度级)时,伽马校正电路12将输出值y_out计算为该点(其位于控制点cp0至cpm所定义的曲线上,并且具有等于输入灰度值x_in的x坐标)的y坐标。在一个实施例中,伽马校正电路12可通过使用控制点cp0至cpm所定义的贝塞尔曲线来计算与输入灰度值x_in对应的输出值y_out。在这种情况下,伽马校正电路12可将输出值y_out计算为该点(其位于这个贝塞尔曲线上,并且具有等于输入灰度值x_in的x坐标)的y坐标。

在一个示例中,伽马校正电路12可将输出值y_out计算为该点(其位于控制点cp0至cpm所定义的二阶贝塞尔曲线上,并且具有等于输入灰度值x_in的x坐标)的y坐标。在一个或多个实施例中,当输出值y_out基于二阶贝塞尔曲线(其能够采用三个控制点来定义)来计算时,伽马校正电路12可从控制点cp0至cpm之中选择具有接近输入灰度值x_in的x坐标的三个控制点cp(2k)至cp(2(k+1)),并且将输出值y_out计算为该点(其位于控制点cp(2k)至cp(2(k+1))所定义的二阶贝塞尔曲线上,并且具有等于输入灰度值x_in的x坐标)的y坐标。在一个或多个实施例中,当二阶贝塞尔曲线用来计算输出值y_out时,2p+1个控制点cp0至cpm通过最大亮度级控制点数据cp0至cpm来定义,其中p为等于或大于二的整数。在这种情况下,m=2p。

用来计算输出值y_out的贝塞尔曲线可以不局限于二阶贝塞尔曲线。在各种实施例中,n阶贝塞尔曲线能够采用n+1个控制点来定义。相应地,当输出值y_out基于n阶贝塞尔曲线来计算时,伽马校正电路12可从控制点cp0至cpm之中选择具有接近输入灰度值x_in的x坐标的n+1个控制点cp(k×n)至cp((k+1)×n),并且将输出值y_out计算为该点(其位于n+1个控制点cp(k×n)至cp((k+1)×n))所定义的n阶贝塞尔曲线上,并且具有等于输入灰度值x_in的x坐标)的y坐标。当n阶贝塞尔曲线用来计算输出值y_out时,p×n+1个控制点cp0至cpm通过最大亮度级控制点数据cp0至cpm来定义,其中p为等于或大于二的整数。在这种情况下,m=n×p。

在各种实施例中,亮度数据dbrt指定除了所容许最大亮度级之外的屏幕亮度级,如图8所示。在各种实施例中,伽马校正电路12在如下条件下计算输出值y_out:针对所指定屏幕亮度级的伽马校正的输入-输出特性通过一个曲线来表示,该曲线通过将采用控制点cp0至cpm所定义的曲线放大到a倍来得到,其中a是取决于亮度数据dbrt所指定的屏幕亮度级与所容许最大亮度级的比率q的系数。稍后将描述用来得到系数a的表达式。伽马校正电路12将输出值y_out计算为该点(其位于通过将采用控制点cp0至cpm所定义的曲线放大到a倍所得到的曲线上,并且具有等于输入灰度值x_in的x坐标)的y坐标。换言之,在这个实施例中,对于屏幕亮度级是所容许最大亮度级的情况,伽马校正电路12的输入-输出特性通过下式(2a)表示时:

y_out=fmax(x_in),…(2a)

输出值y_out在如下条件下计算:对屏幕亮度级是所容许最大亮度级的q倍的情况,伽马校正电路12的输入-输出特性通过下式(2b)表示:

y_out=fmax(x_in/a).…(2b)

当屏幕亮度级是所容许最大亮度级的q倍时,表示为y_out=fmax(x_in/a)的曲线能够采用通过相乘控制点cp0至cpm的x坐标所得到的控制点cp0’至cpm’来定义,并且因此输出值y_out计算为该点(其位于采用控制点cp0’至cpm’所定义的曲线上,并且具有等于输入灰度值x_in的x坐标)的y坐标。因为控制点cp0’至cpm’是伽马校正中实际使用的控制点,并且因此在下文中称作校正控制点cp0’至cpm’。校正控制点cpi’的坐标cpi’(xcpi’,ycpi’)按照下式(3b)和(3c)从控制点cpi的坐标cpi(xcpi,ycpi)来得到:

xcpi’=a·xcpi,and…(3b)

ycpi’=ycpi.…(3c)

在一个示例中,伽马校正电路12可将输出值y_out计算为该点(其位于采用校正控制点cp0’至cpm’所定义的二阶贝塞尔曲线上,并且具有等于输入灰度值x_in的x坐标)的y坐标。应当注意,用来计算输出值y_out的贝塞尔曲线并不局限于二阶贝塞尔曲线。

如上所述,坐标a根据亮度数据dbrt所指定的屏幕亮度级与所容许最大亮度级的比率q来确定。当显示装置10的伽马值为γ时,系数a满足下式(4a):

(x_in/a)γ=q·(x_in)γ.…(4a)

相应地,系数a能够按照下式(4b)来确定:

a=1/q(1/γ).…(4b)

例如,当伽马值γ为2.2并且q为0.5(即,屏幕亮度级是所容许最大亮度级的0.5倍)时,a按照下式(4c)来得到:

a=1/(0.5)1/2.2

=255/186.…(4c)

换言之,当屏幕亮度级是所容许最大亮度级的0.5倍(50%的屏幕亮度级)时,输出值y_out计算为该点(其位于通过将控制点cp0至cpm的x坐标与(255/186)倍相乘所得到的控制点cp0’至cpm’所指定的曲线上,并且具有等于输入灰度值x_in的x坐标)的y坐标。一般来说,当屏幕亮度级是所容许最大亮度级的q倍时,输出值y_out计算为该点(其位于通过将控制点cp0至cpm的x坐标与1/q(1/γ)倍相乘所得到的控制点cp0’至cpm’所指定的曲线上,并且具有等于输入灰度值x_in的x坐标)的y坐标。

接下来给出对用于实现上述操作的伽马校正电路12的配置的各种示例的描述。

图9是示出一个实施例中的伽马校正电路12的配置的框图。伽马校正电路12和寄存器16(其中存储最大亮度级控制点数据cp0至cpm)组成执行伽马校正的校正电路。图9所示的伽马校正电路12配置成使用n阶贝塞尔曲线从输入灰度值x_in来计算输出值y_out。在这种情况下,m为p×n,其中p为二或以上的整数,以及(p×n+1)控制点cp0至cpm的坐标通过最大亮度级控制点数据cp0至cpm来指定。

伽马校正电路12包括校正控制点计算电路21和贝塞尔曲线计算电路22。校正控制点计算电路21从亮度数据dbrt、输入灰度值x_in以及从寄存器16所接收的最大亮度级控制点数据cp0至cpm来确定n+1个校正控制点cp(k×n)’至cp((k+1)×n)’,其用来计算与输入灰度值x_in对应的输出值y_out,其中k是从零至p-1的整数。贝塞尔曲线计算电路22计算该点(其位于采用n+1个校正控制点cp(k×n)’至cp((k+1)×n)’所定义的n阶贝塞尔曲线上,并且具有等于输入灰度值x_in的x坐标)的y坐标,并且将所计算y坐标作为输出值y_out来输出。

校正控制点计算电路21包括乘法器电路23、选择器24和乘法器电路25。乘法器电路23和选择器24组成选择电路,其配置成基于输入灰度值x_in以及通过亮度数据dbrt所指定的屏幕亮度级从控制点cp0至cpm之中选择(n+1)个控制点cp(k×n)至cp((k+1)×n)。更具体来说,在各种实施例中,乘法器电路23将控制点选择灰度值pixel_in计算为通过将输入灰度值x_in与系数a的反数1/a(即,q(1/γ))相乘所得到的值。在这里实施例中,q是亮度数据dbrt所指定的屏幕亮度级与所容许最大亮度级的比率,以及系数a通过上述表达式(4b)给出。选择器24基于控制点选择灰度值pixel_in从控制点cp0至cpm之中选择(n+1)个控制点cp(k×n)至cp((k+1)×n)。下文中,由选择器24所选的控制点cp(k×n)至cp((k+1)×n)称作所选控制点cp(k×n)至cp((k+1)×n)。

在各种实施例中,乘法器电路25通过将所选控制点cp(k×n)至cp((k+1)×n)的x坐标xcp(k×n)至xcp((k+1)×n)与a相乘,来计算校正控制点cp(k×n)’至cp((k+1)×n)’的x坐标xcp(k×n)’至xcp((k+1)×n)’。所选控制点cp(k×n)至cp((k+1)×n)的y坐标ycp(k×n)至ycp((k+1)×n)未经修改地用作校正控制点cp(k×n)’至cp((k+1)×n)’的y坐标ycp(k×n)’至ycp((k+1)×n)’。

图10是示出图9所示伽马校正电路12操作的实施例的流程图。当指示某个子像素(感兴趣子像素)的灰度级的输入灰度值x_in被提供给伽马校正电路12时,控制点选择灰度值pixel_in由乘法器电路23在步骤s01从输入灰度值x_in来计算。如上所述,控制点选择灰度值pixel_in通过将输入灰度值x_in与系数a的反数1/a(即,与q(1/γ))相乘来得到。

这之后接着在步骤s02基于控制点选择灰度值pixel_in从控制点cp0至cpm之中选择n+1个控制点cp(k×n)至cp((k+1)×n)。n+1个控制点cp(k×n)至cp((k+1)×n)的选择由选择器24来实现。在一个或多个实施例中,n+1个控制点cp(k×n)至cp((k+1)×n)选择如下。

n阶贝塞尔曲线经过m+1(=p×n+1)个控制点cp0至cpm之中的控制点cp0、cpn、cp(2n)、…cp(p×n)。其余控制点不一定位于n阶贝塞尔曲线上,尽管确定n阶贝塞尔曲线的形状。选择器24将控制点选择灰度值pixel_in与控制点的x坐标(n阶贝塞尔曲线经过其中)进行比较,并且响应比较结果而选择(n+1)个控制点cp(k×n)至cp((k+1)×n)。

在一个或多个实施例中,当控制点选择灰度值pixel_in大于控制点cp0的x坐标但小于控制点cpn的x坐标时,选择器24选择控制点cp0至cpn。当控制点选择灰度值pixel_in大于控制点cpn的x坐标但小于控制点cp(2n)的x坐标时,选择器24选择控制点cpn至cp(2n)。在一个或多个实施例中,当控制点选择灰度值pixel_in大于控制点cp(k×n)的x坐标xcp(k×n)但小于控制点cp((k+1)×n)的x坐标xcp((k+1)×n)时,选择器24选择控制点cp(k×n)至cp((k+1)×n)。

在一个实施例中,当控制点选择灰度值pixel_in等于控制点cp(k×n)的x坐标xcp(k×n)时,选择器24选择控制点cp(k×n)至cp((k+1)×n)。在这种实施例中,当控制点选择灰度值pixel_in等于控制点cp(p×n)的x坐标时,选择器24选择控制点cp((p-1)×n)至cp(p×n)。

在一些实施例中,当控制点选择灰度值pixel_in等于控制点cp((k+1)×n)的x坐标xcp((k+1)×n)时,选择器可选择控制点cp(k×n)至cp((k+1)×n)。在这种实施例中,当控制点选择灰度值pixel_in等于控制点cp0的x坐标时,选择器24选择控制点cp0至cpn。

此外,在一些实施例中,这之后接着在步骤s03确定校正控制点cp(k×n)’至cp((k+1)×n)’。在一个实施例中,校正控制点cp(k×n)’至cp((k+1)×n)’的x坐标xcp(k×n)’至xcp((k+1)×n)’由乘法器电路25计算为系数a分别与所选控制点cp(k×n)至cp((k+1)×n)的x坐标xcp(k×n)至xcp((k+1)×n)的乘积。换言之,乘法器电路25按照下式(5a)计算校正控制点cp(k×n)’至cp((k+1)×n)’的x坐标xcp(k×n)’至xcp((k+1)×n)’。

xcp(k×n)’=a·xcp(k×n),

xcp((k×n)+1)’=a·xcp((k×n)+1),

…,以及

xcp((k+1)×n)’=a·xcp((k+1)×n).…(5a)

校正控制点cp(k×n)’至cp((k+1)×n)’的y坐标ycp(k×n)’至ycp((k+1)×n)’被确定为分别等于所选控制点cp(k×n)至cp((k+1)×n)的y坐标ycp(k×n)至ycp((k+1)×n)。换言之,校正控制点cp(k×n)’至cp((k+1)×n)’的y坐标ycp(k×n)’至ycp((k+1)×n)’通过下式(5b)来表示:

ycp(k×n)’=ycp(k×n),

ycp((k×n)+1)’=ycp((k×n)+1),

…,以及

ycp((k+1)×n)’=ycp((k+1)×n).…(5b)

这样确定的校正控制点cp(k×n)’至cp((k+1)×n)’的x和y坐标被提供给贝塞尔曲线计算电路22。此外,与输入灰度值x_in对应的输出值y_out由贝塞尔曲线计算电路22在步骤s04来计算。输出值y_out被计算为该点(其位于采用(n+1)个校正控制点cp(k×n)’至cp((k+1)×n)’所定义的n阶贝塞尔曲线上,并且具有等于输入灰度值x_in的x坐标)的y坐标。

虽然上述实施例描述在其中伽马校正电路12提供有最大亮度级控制点数据cp0至cpm(其指示控制点的坐标,这些控制点对于屏幕亮度级是所容许最大亮度级的情况(即,亮度数据dbrt指定所容许最大亮度级的情况)指定伽马校正的输入-输出特性的)的配置。在一个或多个实施例中,控制点数据集合(其指示控制点的坐标,这些控制点对于屏幕亮度级是特定亮度级的情况(即,亮度数据dbrt指定特定亮度级的情况)指定伽马校正的输入-输出特性)可用来代替最大亮度级控制点数据cp0至cpm。此外,n+1个校正控制点cp(k×n)’至cp((k+1)×n)’能够通过将参数q(其包含在用来计算系数a的表达式(4b)中)定义为亮度数据dbrt所指定的亮度级与特定亮度级的比率来计算。

在各种实施例中,用来计算输出值y_out的贝塞尔曲线的阶数可根据所要求准确度来选择,而并不局限于特定阶数。但是,二阶贝塞尔曲线计算输出值y_out的使用允许准确地计算输出值y_out,同时简化贝塞尔曲线计算电路22的配置。在下面,对于输出值y_out使用二阶贝塞尔曲线来计算的情况,给出贝塞尔曲线计算电路22的示范配置和操作的描述。在各种实施例中,当输出值y_out使用二阶贝塞尔曲线来计算时,三个校正控制点cp(2k)’、cp(2k+1)’和cp(2k+2)’的x和y坐标被提供给贝塞尔曲线计算电路22的输入。

下面首先给出对贝塞尔曲线计算电路22中执行的计算算法的描述。图11示意示出一个实施例中、在贝塞尔曲线计算电路22中执行的计算算法,以及图12是示出计算过程的流程图。

如图12所示,三个校正控制点(2k)’至cp(2k+2)’在步骤s11作为初始设定来设置到贝塞尔曲线计算电路22。为了描述的简洁性,设置到贝塞尔曲线计算电路22的校正控制点(2k)’至cp(2k+2)’在下文中分别称作控制点a0、b0和c0。参照图11,坐标控制点a0、b0和c0的a0(ax0,ay0)、b0(bx0,by0)和c0(cx0,cy0)分别表示如下:

a0(ax0,ay0)=(xcp(2k)’,ycp(2k)’),

b0(bx0,by0)=(xcp(2k+1)’,ycp(2k+1)’),and

c0(cx0,cy0)=(xcp(2k+2)’,ycp(2k+2)’).

如以下所述,输出值y_out可通过重复中点的计算来计算。这个重复计算的一个单元在下文中称作中点计算。在各种实施例中,三个控制点的相邻两个的中点可称作一阶中点,以及两个一阶中点的中点可称作二阶中点。

在第一中点计算中,相对最初给出的控制点a0、b0和c0(即,三个校正点cp(2k)’、cp(2k+1)’和cp(2k+2)’),计算一阶中点d0(其作为控制点a0和b0的中点)和一阶中点e0(其作为控制点b0和c0的中点),并且进一步计算二阶中点f0(其作为一阶中点d0和e0的中点)。二阶中点f0是采用三个控制点a0、b0和c0所定义的贝塞尔曲线上的点。二阶中点f0的坐标(xf0,yf0)通过下式(6a)和(6b)来表示:

xf0=(ax0+2bx0+cx0)/4,and…(6a)

yf0=(ay0+2by0+cy0)/4.…(6b)

用于下一个中点计算(第二中点计算)的三个控制点a1、b1和c1响应输入灰度x_in与二阶中点f0的x坐标xf0之间的比较结果而从控制点a0、一阶中点d0、二阶中点f0、一阶中点e0和控制点c0中选择。在一个或多个实施例中,控制点a1、b1和c1选择如下:

(a)当xf0≥x_in时

在这种情况下,具有最小的三个x坐标的三个点(最左边的三个点),即,控制点a0、一阶中点d0和二阶中点f0,被选择作为控制点a1、b1和c1。换言之,

a1=a0,b1=d0,以及c1=f0。…(7a)

(b)当xf0<x_in时

在这种情况下,具有最大的三个x坐标的三个点(最右边的三个点),即,二阶中点f0、一阶中点e0和控制点c0,被选择作为控制点a1、b1和c1。换言之,

a1=f0,b1=e0,以及c1=c0。…(7b)

第二中点计算按照类似方式执行。相对控制点a1、b1和c1,计算控制点a1和b1的一阶中点d1以及控制点b1和c1的一阶中点e1,并且进一步计算一阶中点d1和e1的二阶中点f1。二阶中点f1是预期二阶贝塞尔曲线上的点。三个控制点a2、b2和c2可用于下一个中点计算(第三中点计算)。在一个实施例中,该三个控制点响应输入灰度x_in与二阶中点f1的x坐标xf1之间的比较结果而从控制点a1、一阶中点d1、二阶中点f1、一阶中点e1和控制点c1中选择。

如图12所示,在步骤s12至s14在第i中点计算中执行下列计算:

(a)当(axi-1+2bxi-1+cxi-1)/4≥x_in时,

axi=axi-1,…(8a)

bxi=(axi-1+bxi-1)/2,…(9a)

cxi=(axi-1+2bxi-1+cxi-1)/4,…(10a)

ayi=ayi-1,…(11a)

byi=(ayi-1+byi-1)/2,以及…(12a)

cyi=(ayi-1+2byi-1+cyi-1)/4。…(13a)

(b)当(axi-1+2bxi-1+cxi-1)/4<x_in时,

axi=(axi-1+2bxi-1+cxi-1)/4,…(8b)

bxi=(bxi-1+cxi-1)/2,…(9b)

cxi=cxi-1,…(10b)

ayi=(ayi-1+2byi-1+cyi-1)/4,…(11b)

byi=(byi-1+cyi-1)/2,以及…(12b)

cyi=cyi-1.…(13b)

本领域的技术人员清楚地知道,等号可附于条件(a)和(b)所述的不等号的任一个。

中点计算在步骤s15按照类似方式重复进行期望次数。

在各种实施例中,每当执行中点计算时,控制点ai、bi和ci接近二阶贝塞尔曲线,以及控制点ai、bi和ci的x坐标也接近输入灰度值x_in。输出值y_out最后从经过第n中点计算所得到的控制点an、bn和cn的至少一个的y坐标来得到。例如,输出值y_out可作为控制点an、bn和cn的任意所选控制点的y坐标来确定。备选地,输出值y_out可作为控制点an、bn和cn的y坐标的平均值来确定。

在各种实施例中,当中点计算的次数n比较小时,输出值y_out的准确度能够通过增加中点计算的次数n来改进。在各种实施例中,一旦中点计算的次数n达到输出值y_out的位数,输出值y_out的准确度此后不再改进。在一个实施例中,中点计算的次数n等于输出值y_out的位数。例如,在输出值y_out为12位数据的这个实施例中,中点计算的次数n可以为12。

由于输出值y_out经过如上所述的重复中点计算来计算,所以贝塞尔曲线计算电路22可配置为多个串联连接处理电路,其各配置成执行中点计算。图13是示出这样配置的贝塞尔曲线计算电路22的配置的一个示例的框图。

贝塞尔曲线计算电路22包括n个图元处理单元301至30n和输出级40。图元处理单元301至30n的每个配置成执行上述中点计算。换言之,图元处理单元30i配置成经过按照表达式(8a)至(13a)和(8b)至(13b)的计算从控制点ai-1、bi-1、ci-1的x和y坐标来计算控制点ai、bi、ci的x和y坐标,其中i是从一至n的整数。输出级40基于从控制点an、bn和cn所选的至少一个控制点的y坐标,其从图元处理单元30n输出(即,基于ayn、byn和cyn的至少一个),来输出该输出值y_out。输出级40可输出控制点an、bn和cn的所选控制点的y坐标作为输出值y_out。

图14是示出各图元处理单元30i的配置的电路图。各图元处理单元30包括加法器31至33、选择器34至36、比较器37、加法器41至43和选择器44至46。加法器31至33和选择器34至36执行对控制点ai-1、bi-1和ci-1的x坐标的计算,以及加法器41至43和选择器44至46执行对控制点ai-1、bi-1和ci-1的y坐标的计算。

在一个实施例中,各图元处理单元30i包括七个输入端。七个输入端之一接收输入灰度值x_in,以及其余六个分别接收控制点ai-1、bi-1和ci-1的的x坐标axi-1、bxi-1和cxi-1以及y坐标ayi-1、byi-1和cyi-1。加法器31具有:第一输入,其连接到axi-1被提供至的输入端;以及第二输入,其连接到bxi-1被提供至的输入端。加法器32具有:第一输入,其连接到bxi-1被提供至的输入端;以及第二输入,其连接到cxi-1被提供至的输入端。加法器33具有连接到加法器31的输出的第一输入以及连接到加法器32的输出的第二输入。

类似地,加法器41具有:第一输入,其连接到ayi-1被提供至的输入端;以及第二输入,其连接到byi-1被提供至的输入端。加法器42具有:第一输入,其连接到byi-1被提供至的输入端;以及第二输入,其连接到cyi-1被提供至的输入端。加法器43具有连接到加法器41的输出的第一输入以及连接到加法器42的输出的第二输入。

比较器37具有输入灰度值x_in被提供至的第一输入以及连接到加法器33的输出的第二输入。

选择器34具有连接到axi-1被提供至的输入端的第一输入以及连接到加法器33的输出的第二输入,并且响应比较器37的输出值而选择第一或第二输入。选择器34的输出连接到axi从其输出的输出端。类似地,选择器35具有连接到加法器31的输出的第一输入以及连接到加法器32的输出的第二输入,并且响应比较器37的输出值而选择第一或第二输入。选择器35的输出连接到bxi从其输出的输出端。此外,选择器36具有连接到加法器33的输出的第一输入以及连接到ci-1被提供至的输入端的第二输入,并且响应比较器37的输出值而选择第一或第二输入。选择器36的输出连接到cxi从其输出的输出端。

在一个实施例中,选择器44具有连接到ayi-1被提供至的输入端的第一输入以及连接到加法器43的输出的第二输入,并且响应比较器37的输出值而选择第一或第二输入。选择器44的输出连接到ayi从其输出的输出端。类似地,选择器45具有连接到加法器41的输出的第一输入以及连接到加法器42的输出的第二输入,并且响应比较器37的输出值而选择第一或第二输入。选择器45的输出连接到byi从其输出的输出端。此外,选择器46具有连接到加法器43的输出的第一输入以及连接到cyi-1被提供至的输入端的第二输入,并且响应比较器37的输出值而选择第一或第二输入。选择器46的输出连接到cyi从其输出的输出端。

在这样配置的图元处理单元30i中,加法器31按照上述表达式(9a)执行计算,加法器32按照上述表达式(9b)执行计算,以及加法器33使用来自加法器31和32的输出值按照(10a)和(8b)来执行计算。类似地,加法器41按照上述表达式(12a)执行计算,加法器42按照表达式(12b)执行计算,以及加法器43使用来自加法器41和42的输出值按照表达式(13a)和(11b)来执行计算。比较器37将加法器33的输出值与输入灰度值x_in进行比较,并且指示提供给选择器34至36和44至46的每个的两个输入值的哪一个要作为输出值输出。当输入灰度值x_in小于(axi-1+2bxi-1+cxi-1)/4时,选择器34选择axi-1,选择器35选择加法器31的输出值,选择器36选择加法器33的输出值,选择器44选择ayi-1,选择器45选择加法器41的输出值,以及选择器46选择加法器43的输出值。当输入灰度值x_in大于(axi-1+2bxi-1+cxi-1)/4时,选择器34选择加法器33的输出值,选择器35选择加法器32的输出值,选择器36选择cxi-1,选择器44选择加法器43的输出值,选择器45选择加法器42的输出值,以及选择器46选择cyi-1。由选择器34至36和44至46所选的值分别作为axi、bxi、cxi、ayi、byi和cyi来提供给下一级的图元处理单元30。

在各种实施例中,在表达式(8a)至(13a)和(8b)至(13b)中描述的除法(division)能够通过截取低位来实现。更简单来说,期望计算能够通过截取加法器31至33和41至43的输出的低位来实现。在这种情况下,可从加法器31至33和41至43的输出端的每个来截取一位。但是应当注意,在电路中截取低位的位置可任意修改,只要实现等效于表达式(8a)至(13a)和(8b)至(13b)的计算。例如,可在加法器31至33和41至43的输入端或者在比较器37、选择器34至36和选择器44至46的输入端来截取低位。

输出值y_out最终从自图元处理单元30n(其是这样配置的串联连接图元处理单元301至30n的最后一级)所输出的ayn、byn和cyn的至少一个来得到。

图15示意示出当二次贝塞尔曲线用于计算输出值y_out时用于计算输出值y_out的改进算法。在图15所示的算法中,第i中点计算涉及,在控制点ai-1、bi-1和ci-1经过平行位移以使得点bi-1移位到原点之后,计算一阶中点di-1、ei-1以及二阶中点fi-1。另外,二阶中点fi-1始终被选择作为第(i+1)中点计算中使用的点ci。这种平行位移和中点计算的重复有效地减少所要求处理单元的数量以及相应处理单元所处理的值的位数。

参照图15,在第一平行位移和中点计算中,控制点ao、bo和coo经过平行位移,使得控制点bo移位到原点。平行位移之后的控制点ao、bo和co分别称作ao’、bo’和co’。控制点bo’与原点重合。在这里,控制点a0’和c0’的坐标分别表示如下:

ao’(axo’,ayo’)=(axo-bxo,ayo-byo),以及

co’(cxo’,cyo’)=(cxo-bxo,cyo-byo)。

同时,沿x轴方向的平行位移距离bxo从初始处理目标灰度值x_in中减去,以得到处理目标灰度值x_in1,其中初始处理目标灰度值x_no等于输入灰度值x_in。

随后,计算控制点ao’和bo’的一阶中点do’以及控制点bo’和co’的一阶中点eo’,并且进一步计算一阶中点eo’和fo’的二阶中点fo’。二阶中点fo’位于通过控制点b0移位到原点的这种平行位移所得到的二次贝塞尔曲线(即,采用三个控制点ao’、bo’和co’所定义的二次贝塞尔曲线)上。

在这种情况下,二阶中点fo’的坐标(xfo’,yfo’)通过下式表示:

下一个平行位移和中点计算(第二平行位移和中点计算)中使用的三个控制点a1、b1和c1响应处理目标灰度值x_in1与二阶中点fo’的x坐标值xfo’的比较结果而从点ao’、一阶中点do’、二阶中点fo’、一阶中点eo’和点co’之中选择。在这个选择中,二阶中点fo’始终被选择为控制点c1,而控制点a1和b1选择如下:

(a)当xfo’≥x_in1时

在这种情况下,具有最小的二个x坐标的二个点(最左边的二个点)(即,控制点ao’和一阶中点do’)分别被选择为控制点a1和b1。换言之,

a1=ao’,b1=do’以及c1=fo’。…(15a)

(b)当xfo<x_in1时

在这种情况下,具有最大的二个x坐标的二个点(最右边的二个点)(即,控制点co’和一阶中点eo’)分别被选择为控制点a1和b1。换言之,

a1=co’,b1=eo’以及c1=fo’。…(15b)

总体上,在第一平行位移和中点计算中,执行下列计算:

x_in1=x_in0-bx0,以及…(16)

xf0’=(ax0-2bx0+cx0)/4。…(17)

(a)当xfo'≥x_in1时

ax1=ax0-bx0,…(17a)

bx1=(ax0-bx0)/2,…(18a)

cx1=xf0’

=(ax0-2bx0+cx0)/4,…(19)

ay1=ay0-by0,…(20a)

by1=(ay0-by0)/2,以及…(21a)

cy1=yf0’

=(ay0-2by0+cy0)/4。…(22)

(b)当xfo'<x_in1时

ax1=cx0-bx0,…(17b)

bx1=(cx0-bx0)/2,…(18b)

cx1=(ay0-2by0+cy0)/4,…(19)

ay1=cy0-by0,…(20b)

by1=(cy0-by0)/2,以及…(21b)

cy1=(ay0-2by0+cy0)/4。…(22)

本领域的技术人员清楚地知道,等号可附于条件(a)和(b)所述的不等号的任一个。

如从表达式(17a)、(18a)、(17b)和(18b)所理解,不管满足条件(a)和(b)的哪一个,都可以建立下列关系:

ax1=2bx1,以及…(23)

ay1=2by1。…(24)

这暗示,当实际实现上述处理时,不需要冗余地计算或存储控制点a1和b1的坐标。这通过如下事实将会理解:控制点b1位于控制点a1与原点o之间的中点,如图15所示。虽然下面给出对在其中计算控制点b1的坐标的一实施例的描述,但是控制点a1的坐标的计算与控制点b1的坐标的计算基本上等效。

在第二平行位移和中点计算中执行类似处理。首先,控制点a1、b1和c1经过控制点b1移位到原点的这种平行位移。平行位移之后的控制点a1、b1和c1分别称作a1’、b1’和c1’。另外,沿x轴方向的平行位移距离bx1从处理目标灰度值x_in1中减去,由此计算处理目标灰度值x_in2。随后计算控制点a1’和b1’的一阶中点d1’以及控制点b1’和c1’的一阶中点e1’,并且进一步计算一阶中点d1’和e1’的二阶中点f1’。

与表达式(16)至(22)类似,得到下列表达式:

x_in2=x_in1-bx1,以及…(25)

xf1’=(ax1-2bx1+cx1)/4。…(26)

(a)当xf1'≥x_in2时,

ax2=ax1-bx1,…(27a)

bx2=(ax1-bx1)/2,…(28a)

cx2=xf1’,

=(ax1-2bx1+cx1)/4,…(29)

ay2=ay1-by1,…(30a)

by2=(ay1-by1)/2,以及…(31a)

cy2=yf1’,以及

=(ay1-2by1+cy1)/4。…(32)

(b)当xf1'<x_in2时,

ax2=cx1-bx1,…(27b)

bx2=(cx1-bx1)/2,…(28b)

cx2=(ay1-2by1+cy1)/4,…(29)

ay2=cy1-by1,…(30b)

by2=(cy1-by1)/2,以及…(31b)

cy2=(ay1-2by1+cy1)/4。…(32)

在这里,通过将表达式(23)代入表达式(28a)和(29)并且将表达式(24)代入表达式(31a)和(32),得到下列表达式:

bx2=bx1/2,(forcx1≥x_in2)…(33a)

=(cx1-bx1)/2,(forcx1<x_in2)…(33b)

cx2=cx1/4,…(34)

by2=by1/2,(forcx1≥x_in2)…(35a)

=(cy1-by1)/2,(forcx1<x_in2)and…(35b)

cy2=cy1/4。…(36)

应当注意,在一些实施例中,不需要冗余地计算或存储控制点a2的x坐标ax2和y坐标ay2,因为正如表达式(23)和(24)的情况那样建立下列关系:

ax2=2bx2,以及…(37)

ay2=2by2。…(38)

在第三和后续平行位移和中点计算中执行类似处理。将会理解,与第二平行位移和中点计算相似,在第i平行位移和中点计算(对于i≥2)中执行的处理通过下列表达式表示:

x_ini=x_ini-1-bxi-1,…(39)

bxi=bxi-1/2,(对于cxi-1≥x_ini)…(40a)

=(cxi-1-bxi-1)/2,(对于cxi-1<x_ini)…(40b)

cxi=cxi-1/4,…(41)

byi=byi-1/2,(对于cxi-1≥x_ini)…(42a)

=(cyi-1-byi-1)/2,(对于cxi-1<x_ini)以及…(42b)

cyi=cyi-1/4。…(43)

本领域的技术人员清楚地知道,等号可附于表达式(40a)和(40b)所述的不等号的任一个。同样的情况适用于表达式(42a)和(42b)。

表达式(41)和(43)暗示,控制点ci位于将原点o连接到控制点ci-1的线段上,并且控制点ci与原点o之间的距离是线段oci-1的长度的四分之一。相应地,平行位移和中点计算的重复使控制点ci更接近原点o。易于理解,这个关系允许控制点c1的坐标的计算的简化。还应当注意,在各种实施例中,与第一平行位移和中点计算相似,在第二和后续平行位移和中点计算中可以不需要计算或存储点a2至an的坐标,因为表达式(39)至(43)没有列举控制点ai和ai-1的坐标。

要通过将平行位移和中点计算重复n次最终所计算的输出值y_out作为控制点bn的y坐标来得到,其中取消全部平行位移。相应地,输出坐标值y_out能够按下列表达式计算:

y_out=by0+by1+…+byi-1。…(44)

要实现这种处理,在第i平行位移和中点计算中执行下列处理:

y_out1=by0,(对于i=1),以及

y_outi=y_outi-1+byi-1。(对于i≥2)…(45)

在这种情况下,感兴趣输出值y_out作为y_outn来得到。

图16是示出贝塞尔曲线计算电路22的配置的电路图,其中平行位移和中点计算采用硬件来实现。图16所示的贝塞尔曲线计算电路22包括初始级处理单元501以及串联连接到初始级处理单元501的输出的多个图元处理单元502至50n。初始级处理单元501具有实现第一平行位移和中点计算的功能,并且配置成按照表达式(16)至(22)执行计算。图元处理单元502至50n具有实现第二和后续平行位移和中点计算的功能,并且配置成按照表达式(39)至(43)和(45)执行计算。

图17是示出初始级处理单元501和图元处理单元502至50n的配置的电路图。初始级处理单元501包括减法器51至53、加法器54、选择器55、比较器56、减法器62和63、加法器64以及选择器65。初始级处理单元501具有七个输入端。输入灰度值x_in输入至这些输入端之一,以及控制点ao、bo和co的x坐标axo、bxo和cxo以及y坐标ayo、byo和cyo分别提供给其他六个端子。

减法器51具有输入灰度值x_in被提供至的第一输入以及连接到bxo被提供至的输入端的第二输入。减法器52具有:第一输入,其连接到axo被提供至的输入端;以及第二输入,其连接到bxo被提供至的输入端。减法器53具有:第一输入,其连接到cxo被提供至的输入端;以及第二输入,其连接到bxo被提供至的输入端。加法器54具有连接到减法器52的输出的第一输入以及连接到减法器53的输出的第二输入。

类似地,减法器62具有:第一输入,其连接到ayo被提供至的输入端;以及第二输入,其连接到byo被提供至的输入端。减法器63具有:第一输入,其连接到cyo被提供至的输入端;以及第二输入,其连接到byo被提供至的输入端。加法器64具有连接到减法器62的输出的第一输入以及连接到减法器63的输出的第二输入。

比较器56具有连接到减法器51的输出的第一输入以及连接到加法器54的输出的第二输入。选择器55具有连接到减法器52的输出的第一输入以及连接到减法器53的输出的第二输入,并且响应比较器56的输出值sel1而选择第一或第二输入。此外,选择器65具有连接到减法器62的第一输入以及连接到减法器63的输出的第二输入,并且响应比较器56的输出值sel1而选择第一或第二输入。

输出处理目标灰度值x_in1的输出端连接到减法器51的输出。输出bx1的输出端连接到选择器55的输出,以及输出cx1的输出端连接到加法器54的输出。此外,输出by1的输出端连接到选择器65的输出,以及输出cy1的输出端连接到加法器64的输出。

减法器51按照表达式(16)执行计算,以及减法器52按照表达式(18a)执行计算。减法器53按照表达式(18b)执行计算,以及加法器54基于减法器52和53的输出值按照表达式(19)来执行计算。类似地,减法器62按照表达式(21a)执行计算。减法器63按照表达式(21b)执行计算,以及加法器64基于减法器62和63的输出值按照表达式(22)来执行计算。比较器56将减法器51的输出值(即,x_ino-bxo)与加法器54的输出值进行比较,并且指示选择器55和65选择两个输入值的哪一个要作为输出值输出。在各种实施例中,当x_in1等于或小于(axo-2bxo+cxo)/4时,选择器55选择减法器52的输出值,以及选择器65选择减法器62的输出值。此外,当x_ino-bxo大于(axo-2bxo+cxo)/4时,选择器55选择减法器53的输出值,以及选择器65选择减法器63的输出值。由选择器55和65所选的值分别作为bx1和by1来提供给图元处理单元502。此外,加法器54和64的输出值分别作为cx1和cy1来提供给图元处理单元502。

在这里应当注意,在各种实施例中,表达式(16)至(22)中所述的除法能够通过截取低位来实现。在电路中截取低位的位置可任意修改,只要执行等效于表达式(16)至(22)的计算。图17所示的初始级处理单元501配置成截取选择器55和65的输出上的一个最低位,并且截取加法器54和64的输出上的二个最低位。

同时,图元处理单元502至50n(其具有相同配置)各包括减法器71和72、选择器73、比较器74、减法器75、选择器76以及加法器77。

下面给出对图元处理单元50i的描述,其执行第i平行位移和中点计算,其中i是从二至n的整数。减法器71具有:第一输入,其连接到处理目标灰度值x_ini-1被提供至的输入端;以及第二输入,其连接到bxi-1被提供至的输入端。减法器72具有:第一输入,其连接到bxi-1被提供至的输入端;以及第二输入,其连接到cxi-1被提供至的输入端。减法器75具有:第一输入,其连接到byi-1被提供至的输入端;以及第二输入,其连接到cyi-1被提供至的输入端。

比较器74具有连接到减法器71的输出的第一输入以及连接到cxi-1被提供至的输入端的第二输入。

选择器73具有连接到bxi-1被提供至的输入端的第一输入以及连接到减法器72的输出的第二输入,并且响应比较器74的输出值seli而选择第一或第二输入。类似地,选择器76具有连接到byi-1被提供至的输入端的第一输入以及连接到减法器75的输出的第二输入,并且响应比较器74的输出值而选择第一或第二输入。

处理目标灰度值x_ini是从连接到减法器71的输出的输出端来输出。bxi是从连接到选择器73的输出的输出端来输出,以及cxi是从经由互连来连接到cxi被提供至的输入端的输出端来输出。在这个过程中,截取cxi的二个较低位。此外,byi是从连接到选择器73的输出的输出端来输出,以及cyi是从经由互连来连接到cyi-1被提供至的输入端的输出端来输出。在这个过程中,截取cyi-1的二个较低位。

加法器77具有:第一输入,其连接到bxi-1被提供至的输入端;以及第二输入,其连接到y_outi-1被提供至的输入端。应当注意,关于图元处理单元502(其执行第二平行位移和中点计算),提供给图元处理单元502的y_out1与byo重合。y_outi从加法器77的输出来输出。

减法器71按照表达式(39)执行计算,以及减法器72按照表达式(40b)执行计算。减法器75按照表达式(42b)执行计算,以及加法器77按照表达式(45)执行计算。比较器74将减法器71的输出值x_ini(=x_ini-1-bxi-1)与cxi-1进行比较,并且指示选择器73和76选择两个输入值的哪一个要作为输出值来输出。当x_ini等于或小于cxi-1时,选择器73选择bxi-1,以及选择器76选择byi-1。另一方面,当x_ini大于cxi-1时,选择器73选择减法器72的输出值,以及选择器76选择减法器75的输出值。由选择器73和76所选的值分别作为bxi和byi来提供给下一个图元处理单元50i+1。此外,通过截取cxi-1和cyi-1的二个较低位所得到的值分别作为cxi和cyi来提供给下一个图元处理单元50i+1。

在这里应当注意,表达式(40)至(43)中所述的除法能够通过截取较低位来实现。在电路中截取较低位的位置可任意修改,只要执行等效于等式(40)至(43)的操作。图17所示的图元处理单元50i配置成截取选择器73和76的输出上的一个较低位,并且截取接收cxi-1和cyi-1的互连上的二个较低位。

通过图17所示的图元处理单元502至50n的配置与图14所示的图元处理单元301至30n的配置的比较将会理解处理元件的数量减少的效果。另外,在适合图17所示的平行位移和中点计算的配置中(其中图元处理单元502至50n的每个配置成截取低位),要操控的数据的位数在图元处理单元502至50n中的后面图元处理单元中更大地减少。如这样所述,适合如图17所示的平行位移和中点计算的配置允许以降低硬件利用来计算输出值y_out。

虽然上述实施例叙述使用具有三个控制点所指定的形状的二次贝塞尔曲线来计算输出值y_out的情况,但是输出值y_out备选地可通过使用三次或更高次贝塞尔曲线来计算。当使用n次贝塞尔曲线时,最初给出(n+1)个校正控制点的x和y坐标,并且对(n+1)个校正控制点执行类似中点计算,以计算输出值y_out。

在各种实施例中,当给出(n+1)个校正控制点时,中点计算执行如下。一阶中点各作为(n+1)个校正控制点的相邻两个的中点来计算。一阶中点的数量为n。此外,二阶中点各作为n个一阶中点的相邻两个的中点来计算。二阶中点的数量为n-1。按照同样的方式,第(n-k)(k+1)阶中点各自作为第(n-k+1)k阶中点的相邻两个的中点来计算。这个过程重复执行,直到最终计算单个第n阶中点。在这里,具有(n+1)个校正控制点中的最小x坐标的控制点称作最小控制点,而具有最大x坐标的控制点称作最大控制点。类似地,具有第k阶中点中的最小x坐标的第k阶中点称作第k阶最小中点,而具有最大x坐标的第k阶中点称作第k阶最大中点。当第n阶中点的x坐标值小于输入灰度值x_in时,最小控制点、一至第(n-1)阶最小中点和第n阶中点被选择作为下一个中点计算的(n+1)个控制点。当第n阶中点的x坐标值大于输入灰度值x_in时,第n阶中点、一至第(n-1)阶最大中点和最大控制点被选择作为下一个中点计算的(n+1)个控制点。输出值y_out基于经过n次中点计算所得到的(n+1)个控制点的至少一个的y坐标来计算。

为了便于理解,下面描述对n=3的情况,即三次贝塞尔曲线用来计算输出值y_out的情况,的中点计算。在这种情况下,四个校正控制点cp(3k)’至cp(3k+3)’设置到贝塞尔曲线计算电路22。下文中,四个校正控制点cp(3k)’至cp(3k+3)’分别简单地称作控制点a0、b0、c0和d0,以及控制点ao、bo、co和do的坐标称作(axo,ayo)、(bxo,byo)、(cxo,cyo)和(dxo,dyo)。控制点ao、bo、co和do的坐标a0(ax0,ay0)、b0(bx0,by0)、c0(cx0,cy0)和d0(dx0,dy0)分别表示如下:

a0(ax0,ay0)=(xcp(3k)’,ycp(3k)’),

b0(bx0,by0)=(xcp(3k+1)’,ycp(3k+1)’),

c0(cx0,cy0)=(xcp(3k+2)’,ycp(3k+2)’),以及

d0(dx0,dy0)=(xcp(3k+3)’,ycp(3k+3)’)。

图18示出对于n=3(即,对三次贝塞尔曲线用来计算输出值y_out的情况)的中点计算。一开始,给出四个控制点ao、bo、co和do。应当注意,控制点ao是最小控制点,以及控制点do是最大控制点。在第一中点计算中,计算一阶中点do(其作为控制点ao与bo之间的中点)、一阶中点eo(其作为控制点bo与co之间的中点)以及一阶中点fo(其作为控制点co与do之间的中点)。应当注意,do是一阶最小中点,以及fo是一阶最大中点。进一步计算二阶中点go(其作为一阶中点do与eo之间的中点)和二阶中点ho(其作为一阶中点eo与fo之间的中点)。在这里,中点go是二阶最小中点,以及ho是二阶最大中点。此外,计算三阶中点io(其作为二阶中点go与ho之间的中点)。三阶中点io是通过四个控制点ao、bo、co和do所指定的三次贝塞尔曲线上的点,以及三阶中点io的坐标(xio,yio)分别通过下式表示:

xi0=(ax0+3bx0+3cx0+dx0)/8,以及

yi0=(ay0+3by0+3cy0+dy0)/8。

下一个中点计算(第二中点计算)中使用的四个控制点a1、b1、c1和d1响应输入灰度值x_in与三阶中点io的x坐标xio的比较结果而选择。更具体来说,当xio≥x_in时,最小控制点ao、一阶最小中点do、二阶最小中点fo和三阶中点eo分别被选择作为控制点a1、b1、c1和d1。另一方面,当xio<x_in时,三阶中点eo、二阶最大中点ho、一阶最大中点fo和最大控制点do分别被选择作为控制点a1、b1、c1和d1。

第二和后续中点计算通过类似过程执行。一般来说,在第i中点计算中执行下列计算:

(a)当(axi-1+3bxi-1+3cxi-1+dxi-1)/8≥x_in时,

axi=axi-1,…(2a’)

bxi=(axi-1+bxi-1)/2,…(3a’)

cxi=(axi–1+2bxi–1+cxi-1)/4,…(4a’)

dxi=(axi–1+3bxi–1+3cxi-1+dxi-1)/8,…(5a’)

ayi=ayi-1,…(6a’)

byi=(ayi-1+byi-1)/2,…(7a’)

cyi=(ayi–1+2byi–1+cyi-1)/4,以及…(8a’)

dyi=(ayi–1+3byi–1+3cyi-1+dyi-1)/8。…(9a’)

(b)当(axi-1+3bxi-1+3cxi-1+dxi-1)/8<x_in时,

axi=(axi–1+3bxi–1+3cxi-1+dxi-1)/8,…(2b’)

bxi=(bxi–1+2cxi–1+dxi-1)/4,…(3b’)

cxi=(cxi-1+dxi-1)/2,…(4b’)

dxi=dxi-1,…(5b’)

axi=(axi–1+3bxi–1+3cxi-1+dxi-1)/8,…(6b’)

byi=(byi–1+2cyi–1+dyi-1)/4,…(7b’)

cyi=(cyi-1+dyi-1)/2,以及…(8b’)

dyi=dyi-1。…(9b’)

本领域的技术人员清楚地知道,等号可附于条件(a)和(b)所述的不等号的任一个。

各中点计算使控制点ai、bi、ci和di更接近三次贝塞尔曲线,并且还使控制点ai、bi、ci和di的x坐标值更接近输入灰度值x_in。最终要计算的输出值y_out从通过第n中点计算所得到的控制点an、bn、cn和dn的至少一个的y坐标来得到。例如,输出值y_out可被确定为控制点an、bn、cn和dn中的任意所选一个的y坐标。备选地,输出值y_out可确定为控制点an、bn、cn和dn的y坐标的平均值。

在中点计算的次数n比较小的范围中,输出值y_out的准确度随着增加中点计算的次数n而更大地改进。但是应当注意,一旦中点计算的次数n达到输出值y_out的位数,电压数据值y_out的准确度此后不再改进。在一个实施例中,中点计算的次数n可等于电压数据值y_out的位数。在输出值y_out为12位数据的本实施例中,中点计算的次数n可以为12。

此外,当输出值y_out通过使用第(n+1)阶贝塞尔曲线来计算时,中点计算可在执行对控制点的平行位移以使得控制点之一移位到原点o之后执行,与使用二阶贝塞尔曲线的情况相似。例如,当伽马曲线通过三次贝塞尔曲线来表达时,在使控制点经过平行位移以使得控制点bi-1或ci-1移位到原点o之后计算一至第n阶中点。此外,通过平行位移所得到的控制点ai-1'、一阶最小中点、二阶最小中点和三阶中点的组合,或者三阶中点、二阶最大中点、一阶最大中点和控制点di-1'的组合被选择作为下一批控制点ai、bi、ci和di。同样在这种情况下,有效地减少各计算单元所处理的值的位数。

虽然以上具体描述了本公开的实施例,但是本领域的技术人员会理解,本公开的技术可采用各种修改来实现。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1