发明内容
本发明就是鉴于以上问题而提出的,其目的在于提供伴随修正特性的插补处理不增加时钟速度,可以减小修正特性数据的存储容量的用于色调修正特性数据的图像处理电路、图像显示装置以及图像处理方法。
本发明的1个观点为,在图像处理电路中,包括:接收n级色调的图像数据的输入的输入部;存储比上述n级色调少的m级色调的色调修正特性数据的第1和第2LUT存储部;利用与相邻的输入色调值对应的、来自上述第1和第2LUT存储部的输出,对上述色调修正特性数据进行线性插补的插补电路;以及使用线性插补后的色调修正特性数据对上述图像数据进行色调修正的色调修正电路。
上述图像处理电路可以应用于例如彩色图像数据的色修正和伽玛修正等,将与比输入的图像数据色调数少的色调数对应的色调修正特性数据存储在第1和第2LUT存储部。然后,把成为色调修正处理对象的像素的色调值作为输入色调值,参照第1和第2LUT存储部,取得与该输入色调值对应的输出色调值以及与其相邻的输入色调值对应的输出色调值。所谓相邻的色调值是指某个输入色调值的上一色调值或下一色调值。然后,通过线性插补求出这2个相邻的输出色调值之间的输出色调值,获得与全部输入色调值对应的输出色调值。这样,对输入的图像数据的各像素进行色调修正,输出修正后的图像数据。
因为使用存储色调数比输入的图像数据的色调数少的色调修正特性数据的LUT,所以与存储全部色调的色调修正特性数据时相比,可以减小构成LUT的RAM等的存储装置的容量。另外,虽然为了进行色调修正特性数据的线性插补需要相邻的2个输出色调值,但因为使用来自2个LUT的输出色调值进行线性插补,所以不需要以高速(例如2倍)时钟2次读出1个LUT。因而,可以抑制时钟的高速化,及其由此引起的消耗电力的增大。
在上述的图像处理电路一种实施方式中,上述第1LUT存储部和第2LUT存储部存储相同的色调修正特性数据。由此,可以同时从各LUT存储部中取得相邻的2个输出色调值,从而可以通过线性插补进一步地获得它们之间的输出色调值。
在这种实施方式的最佳实施例中,上述插补电路使用从上述第1LUT存储部输出的第1输出色调值和从上述第2LUT存储部输出的比上述第1色调值小的第2输出色调值,对上述第1输出色调值和上述第2输出色调值之间的色调修正特性数据进行插补。
在上述的图像处理电路的另一实施方式中,上述第1LUT存储部存储上述m级色调的色调修正特性数据,上述第2LUT存储部存储在上述m级色调的色调修正特性数据中相邻的色调值之间的差值。由此,使用与某个输入色调值对应的输出色调值和与其相邻的输入色调值之间的差值,可以用线性插补获得它们之间的输出色调值。
在这种实施方式的最佳实施例中,上述插补电路使用从上述第1LUT存储部输出的第1输出色调值和从上述第2LUT存储部输出的差值,对上述第1输出色调值和相邻的第2输出色调值之间的色调修正特性数据进行插补。
在上述的图像处理电路的另一实施方式中,上述第1LUT存储部存储在上述m级色调的色调修正特性数据中与奇数的输入色调值对应的色调修正特性数据,上述第2LUT存储部存储在上述m级色调的色调修正特性数据中与偶数的输入色调值对应的色调修正特性数据。由此,可以同时从各LUT存储部中取得相邻的2个输出色调值,从而可以通过线性插补获得它们之间的输出色调值。另外,因为相邻的2个输入色调值是奇数的输入色调值和偶数的输入色调值的组合,所以通过各自对应地设置LUT存储部,可以把各LUT存储部的存储容量减小到1/2。
在这种实施方式的最佳实施例中,上述插补电路包括:根据上述输入色调值判定从上述第1LUT存储部输出的第1输出色调值和从上述第2LUT存储部输出的第2输出色调值的大小关系的装置;根据上述大小关系对在上述第1输出色调值和上述第2输出色调值之间的上述色调修正特性数据进行插补的装置。通过根据上述输入色调值是奇数还是偶数确定2个输出色调值的大小关系,可以容易地进行线性插补。
在上述的图像处理电路的另一实施方式中,上述插补电路,当与上述第1和第2输出色调值中大的一方对应的输入色调值为0时,把上述第1和第2输出色调值中小的一方设为0进行插补。另外,在其它的实施方式中,上述插补电路,当与上述第1和第2输出色调值中小的一方对应的输入色调值为最大色调值时,把上述第1和第2输出色调值中大的一方设为最大色调值进行插补。通过使用这其中的一种方法,可以通过线性插补全部补充不足的输出色调值。
上述的图像处理电路的另一实施方式具备,用抖动处理对上述被色调修正的图像数据进行减色并输出上述m级色调的图像数据的减色处理电路。由此,根据图像数据的显示器件的显示能力,可以减小图像数据量而不降低图像质量。
另外,可以构成具备上述图像处理电路和显示上述被色调修正的图像数据的图像显示部的图像显示装置。例如,作为图像显示部使用LCD等,可以构成移动电话、PDA,数字照相机、其它的图像显示装置。
本发明的另一观点为,一种在具备存储比作为输入图像数据的色调数的n级色调少的m级色调的色调修正特性数据的第1和第2LUT存储部的图像处理电路中执行的图像处理方法,其包括:接收上述输入图像数据的输入的步骤;利用与相邻的输入色调值对应的、来自上述第1和第2LUT存储部的输出,对上述色调修正特性数据进行线性插补的步骤;以及使用线性插补后的色调修正特性数据对上述图像数据进行色调修正的步骤。
上述的图像处理方法可以应用于例如彩色图像数据的色修正或伽玛修正等,将与比输入的图像数据的色调数少的色调数对应的色调修正特性数据存储在第1和第2LUT存储部。然后,把成为色调修正处理的对象的像素的色调值作为输入色调值,参照第1和第2LUT存储部,取得与该输入色调值对应的输出色调值,以及与其相邻的输入色调值对应的输出色调值。然后,通过线性插补求出这2个相邻的输出色调值之间的输出色调值,从而获得与全部输入色调值对应的输出色调值。这样,对输入的图像数据的各像素进行色调修正,输出修正后的图像数据。
具体实施方式
以下,参照附图说明本发明最佳实施方式。
图像处理装置.
图1是表示应用了本发明的图像处理电路的图像显示装置的简要结构的方框图。如图所示,图像显示装置100具备图像处理电路101和图像显示部102。作为图像显示装置100的例子可以列举移动电话、便携型终端、PDA、数字照相机等。
图像处理电路101对从外部输入的图像数据D1实施包括色修正和伽玛修正的色调特性修正处理,把修正后的图像数据D10供给图像显示部102。另外,向图像处理电路101输入与图像数据D1同步的时钟信号CLK。图像显示部102具备例如CRT、LCD(Liquid Crystal Display)等的显示器件,显示修正后的图像数据D10。
图像处理电路.
图2是表示图1所示图像处理电路101的内部结构的方框图。如图所示,图像处理电路101具备色变换运算部10、色调修正部20、减色处理部30。色变换运算部10对从外部输入的图像数据D10实施向所希望的色特性的色变换处理,把色变换后的图像数据D2供给色调修正部20。所输入的图像数据D10是RGB各色8位的数字数据,色变换运算部10通过3×3的矩阵运算进行色变换处理。色变换后的图像数据D2也是RGB各色8位的数据。另外,向色变换运算部10除了图像数据D1之外还输入寄存器控制信号Sc。
色调修正部20是应用本发明的图像处理电路的部分,对色变换后的图像数据D2进行作为色调特性修正的伽玛修正,把修正后的图像数据D3供给减色处理部30。修正后的图像数据D3也是RGB各色8位的数据。另外,向色调修正部20输入寄存器控制信号Sc。
减色修正部30对伽玛修正后的图像数据D3进行减色修正处理。如上所述,伽玛修正后的图像数据D3是RGB各色8位的数据,减色处理部30例如通过进行位片将其高位的6位作为RGB各色6位的数据,根据低位的2位的数据应用拌动处理把RGB各色6位(通过抖动处理而相当于各色8位)的图像数据D10供给图像显示装置102。
减色处理部30根据图像显示部102的显示能力,也可以不进行减色处理而把各色8位的图像数据供给图像显示部102。例如,在图像显示部102具有各色8位的显示能力的情况下,减色处理部30不进行减色处理就把各色8位的图像数据D10供给图像显示部102。另一方面,在图像显示部102只有各色6位的显示能力的情况下,减色处理部30可以通过减色处理生成各色6位的图像数据供给图像显示部102。另外,向减色处理部30除了伽玛修正后的图像数据D3之外,还输入寄存器控制信号Sc、以及与图像数据D1同步的水平同步信号Hsync和垂直同步信号Vsync。
色变换运算部.
以下,详细说明色变换运算部10。图3(a)表示色变换运算部10的结构例子。色变换运算部10具备,3个乘法器11~13、加法器14、寄存器值控制部15,进行图3(b)所示的3×3的矩阵运算。各乘法器11~13乘算的系数a1~a3、b1~b3,以及c1~c3根据寄存器控制信号Sc由寄存器值控制部15确定,并设定在各乘法器11~13中。
具体地说,乘法器11对图像数据D1中的R(红)数据Rin乘算系数a1~a3后将其输出到加法器14。乘法器12对图像数据D1中的G(绿)数据Gin乘算系数b1~b3后将其输出到加法器14。乘法器13对图像数据D1中的B(蓝)数据Bin乘算系数c1~c3后将其输出到加法器14。加法器14加算乘法器11~13的输出而生成Rout、Gout和Bout,把它们作为图像数据D2输出。
由于寄存器值控制部15设定的系数a1~a3、b1~b3,以及c1~3,输出的图像数据D2(即Rout、Gout和Bout)的色特性发生变化。如果把系数a1、b2以及c3设为“1”,把其它的系数值设置为“0”则输入的图像数据D1和输出的图像数据D2具有相同的色特性。例如,当要使输出的图像数据D2具有红色强的色特性时,只要把与Rin相乘的系数a1~a3设定得大即可。
色调修正部的实施例1.
以下说明色调修正部的实施例1。图4表示实施例1的色调修正部20的简要结构。如图所示,色调修正部20具备LUT21和22、线性插补运算电路23、寄存器值控制部24。LUT21和22分别作为输入色调值存储64级色调(相当于6位)的伽玛特性,作为输出色调值存储256级色调的伽玛特性。由于从色变换运算部10输出的图像数据D2是RGB各色8位(相当于256级色调),所以被存储在LUT21以及22中的色调修正特性数据的色调数与输入图像数据的色调数相比被减少了。由此,可以减小构成LUT21以及22的RAM等的容量。另外,虽然在图4(a)中只表示RGB的3色中与R数据对应的部分,但G数据以及B数据也具有同样的结构。
图5(b)表示被存储在LUT21以及22中的色调修正特性数据(伽玛特性)的一例。色调修正特性60可以用表示输入色调值和输出色调值关系的曲线表示,在LUT内在与输入色调值对应的地址上存储有与输出色调值对应的数据。因而,如果把输入的图像数据的某个像素的色调值作为输入色调值,则被存储在与该输入色调值对应的LUT的地址上的数据作为输出色调值被输出。在本例子中,输入色调值是64级色调,输出色调值是256级色调。
在图4所示的LUT21以及22中存储有相同的色调修正特性数据。设置2个LUT的理由是因为在线性插补运算电路23的线性插补运算中,需要成为线性插补的对象的特性的2个端点的输出色调值的缘故。
在图4(a)中,在LUT21中输入作为图像数据D2中的某个像素的R数据的高位的6位Rout(7..2)。另外,在以下的说明中,假设Rout()标记的括号内为表示对象位的数字。例如当是全部8位的情况下表示为Rout(7..0),在为低位的2位的情况下表示为Rout(1..0)。LUT21把将该R数据作为输入色调值时的输出色调值作为Xn输出到线性插补运算电路23。
另外,在LUT22中输入在LUT21中作为输入色调值输入的Rout(7..0)的下一色调值Rout-1(7..0),对应的输出色调值Xn-1输出到线性插补运算电路23。另外,相同的像素的低位的2位的值Rout(1..0)供给线性插补运算电路23。
图4(b)模式地表示线性插补运算电路23的线性插补运算。如上所述,相对于输入的图像数据是RGB各色8位,被存储在LUT21以及22中的色调修正特性数据的输入色调值只是6位(64级色调部分)。因而,需要通过线性插补运算电路23对与不足的2位的输入色调值对应的输出色调值进行插补。如图4(b)所示,线性插补运算电路23进行运算,在与某个像素的输入色调值Rout(7..2)对应的输出色调值Xn和其下一个的输入色调值Rout-1(7..0)对应的输出色调值Xn-1之间,根据该像素的低位的2位Rout(1..0)的值线性插补3个输出色调值。由此,线性插补运算电路23利用64级色调(6位)的LUT21以及22,可以生成256级色调(8位)的色调修正特性数据。
具体地说,线性插补运算电路23的运算由以下的式子表示。
R(lut_out)=Xn-1+(Xn-Xn-1)×(Rout(1..0)[Dec]/4)+OFF_set(式1)
但是,当Rout-1(7..2)=1时,设Xn-1=0。([Dec]表示十进制数)
在此,说明式1的附带条件。当对具有64级色调的输入色调值的色调修正特性数据进行线性插补而生成具有256级色调的输入色调值的色调修正特性数据时,如图4(b)所示,如果在色调值0~63中相邻的2个色调值的间隔中插补3个色调值则整体是:
64(LUT内的色调数)+63(0~63的间隔数)×3(色调值)=253,在256级色调中缺3级色调。因而,通过在输入色调值(向LUT的输入地址)=0下侧补充3级色调,使整体成为256级色调。
参照图5(a),例如当来自LUT21以及22的输出色调值Xn=X1、Xn-1=X0时,只要把用符号90表示的3个输出色调值补充在输出色调值X0和X1之间即可。对此,当输出色调值Xn=X0时,虽然本来输出色调值Xn-1不存在,但与输入色调值Rout-1(7..2)=-1对应地把输出色调值始终设定为Xn-1=“0”,在图5中插补用符号91表示的3级色调。这相当于在图5(b)中插补虚线61的部分。由此,可以生成具有全部256级色调的输入色调值的色调修正特性数据。
另外,在图4(a)所示的结构中,通过寄存器控制部24根据寄存器控制信号Sc把偏移量OFF_set供给线性插补运算电路23,可以使图5(b)示例的色调修正特性60如箭头70所示的那样向色调值增加的方向整体偏移。
这样,在色调修正部20中,相对于输入的RGB各色8位(256级色调)的图像数据,把具有各色6位(64级色调)的输入色调值的色调修正特性数据存储在LUT中,不足部分根据输入色调值的低位的2位通过线性插补生成输出色调值进行色调特性修正(伽玛修正)。由此,不需要存储具有与输入的图像数据的全部色调数对应的256级色调的输入色调值的色调修正特性数据,从而可以减小构成LUT的RAM等的存储部的容量。在本实施例中,与把具有256级色调的输入色调值的色调修正特性数据存储在RAM中的情况比较,因为只要准备2个LUT量的具有64级色调的输入色调值的色调修正特性数据即可,所以总RAM容量只要1/2就可以。
另外,在本实施例中,准备2个LUT,从各个LUT中读出在线性插补中使用的2个端点的输出色调值Xn以及Xn-1。如上所述,虽然在从1个LUT中读出2个端点的输出色调值的情况下需要使读出时钟高速化,而由于在本实施例中不需要高速化,所以可以抑制消耗电力的增加等。
减色电路.
以下,详细说明减色处理部。如图2所示,减色处理部30把从色调修正部20输出的RGB各色8位的图像数据D3、即R(lut_out)、G(lut_out)以及B(lut_out)通过位片以及抖动处理减色为各色6位的图像数据而作为图像数据D10输出。图7表示减色处理部30的结构的例子。另外,虽然图7只表示在RGB的3色中与R数据对应的部分,但G数据以及B数据也具有同样的结构。
在图7中,减色处理部30具备,2位计数器31和32、抖动矩阵电路33、加法器34、转换开关35、寄存器值控制部36。图6(a)表示在抖动矩阵电路33中使用的4×4的抖动矩阵的例子。
计数器31通过对与图像数据D3同步的时钟信号CLK进行计数,把2位的X地址Xad输出到抖动矩阵电路33。另外,计数器31由水平同步信号Hsync复位。另外,计数器32通过对水平同步信号Hsync进行计数,把2位的Y地址Yad输出到抖动矩阵电路33。另外,计数器32由垂直同步信号Ysync复位。
抖动矩阵电路33根据输入的X地址Xad和Y地址Yad把在抖动矩阵中规定的值作为R(D_out)供给加法器34。如图6(b)所示,加法器34加算从色调修正部20输出的R数据R(lut_out)和从抖动矩阵电路33输出的值R(D_out)的高位的2位,把其结果的高位的6位作为R(ADD_out)输出到转换开关35的输入端子b。这样,从色调修正部20供给的RGB各色8位的图像数据D3被减色为各色6位的图像数据。另外,因为应用了抖动处理,所以各色6位的图像数据具有相当于各色8位的色特性。
转换开关35的输出与根据寄存器控制信号Sc寄存器值控制部36输出的寄存器值相应地切换。当选择转换开关35的输入端子a时,把不进行减色处理的RGB各色8位的图像数据作为图像数据D10输出。当选择转换开关35的输入端子b时,把通过减色处理获得的RGB各色6位的图像数据作为图像数据D10输出。
色调修正部的实施例2.
以下,说明色调修正部的实施例2。图8(a)表示实施例2的色调修正部20a的结构。在实施例2中,存储在2个LUT内的色调修正特性数据的内容不同。在实施例1的色调修正部20中,在2个LUT21以及22中存储相同的色调修正特性数据。对此,在实施例2中,在1个LUT26中存储具有64级色调的输入色调值的色调修正特性数据,在另一LUT25中存储在LUT26中存储的色调修正特性数据中相邻的色调值之间的差值。其它方面基本上与实施例1相同。
输入的图像数据中的某个像素的输入色调值Rout(7..2)输入LUT25,与之对应的差值ΔX供给线性插补运算电路23。另外,同一像素的下一输入色调值Rout-1(7..2)输入LUT26,与之对应的输出色调值Xn-1供给线性插补运算电路23。
图8(b)模式地表示线性插补运算电路23的线性插补运算。如图所示,从LUT25输出的差值ΔX表示与该像素的输入色调值对应的输出色调值和与下一输入色调值对应的输出色调值的差。因而,线性插补运算电路23利用输出色调值Xn-1和差值ΔX,对这些相邻的输出色调值之间进行插补。具体地说,线性插补运算电路23进行以下式子所示的运算。
R(lut_out)=Xn-1+ΔX×(Rout(1..0)[Dec]/4)+OFF_set(式2)
但是当Rout-1(7..2)=-1时,设Xn-1=0。([Dec]表示十进制数)
另外,式2的附加条件的意思与实施例1中的式1的情况一样。
LUT25只要存储相邻的输出色调值之间的差值ΔX即可。从图8(b)可以理解,因为差值ΔX与原色调修正数据自身相比可以用少的色调来表现,所以LUT25可以设置成比LUT26的色调值(即少的位数)小。例如,如果把存储差值的LUT25设置成具有16级色调(4位)的输出的LUT,则可以把构成LUT25的RAM容量设置成是构成LUT26的RAM的容量的1/2。在这种情况下,与使用具有8位(256级色调)输出色调值的1个LUT的情况相比,则可以把LUT所需要的全部RAM容量设置为3/8。
另外,在实施例1的情况下,在LUT21以及22中存储色调修正特性数据时,只要在2个LUT中单纯地存储预先准备的色调修正特性数据即可。对此,在实施例2的情况下,把预先准备的色调修正特性数据存储在LUT26,并需要根据该色调修正特性数据计算差值存储在LUT25中。
色调修正部的实施例3.
以下,说明色调修正部的实施例3。在实施例1中,把具有64级色调的输入色调值的相同的色调修正特性数据存储在2个LUT21以及22中。但是,在线性插补运算中使用的2个输出色调值是图像数据的某个像素的输入色调值和与之相邻的(在其上1个或者下1个)输入色调值。因而,如果这些相邻的2个输入色调值中的一方是奇数则另一方是偶数,相反如果一方是偶数则另一方是奇数。即,相邻的2个输入色调值双方不会同时为偶数或者奇数。因而,在本实施例3中,把64级色调的色调修正特性数据分割成与奇数的输入色调值对应的色调修正特性数据和与偶数的输入色调值对应的色调修正特性数据,分开存储在2个LUT中。由此,可以进一步地减小构成LUT的RAM的容量。
图9表示实施例3的色调修正部的结构。LUT27存储与32级色调的奇数的输入色调值对应的色调修正特性数据,LUT28存储与32级色调的偶数的输入色调值对应的色调修正特性数据。另外,在LUT27以及28的后段设置有数据转换开关29。
在输入的图像数据中,与偶数的输入色调值对应的Rout(7..3)输入到LUT28,对应的输出色调值Xq输出到数据转换开关29。另外,与奇数的输入色调值对应的Rout-1(7..2)输入到LUT27,对应的输出色调值Xp输出到数据转换开关29。另外,从输入的图像数据的低位开始的表示第3位的Rout(2)输入到数据转换开关29。Rout(2)表示成为色调特性修正的对象的像素的高位的6位是偶数还是奇数,其作为用于采用数据转换开关29的切换的控制信号使用。数据转换开关29根据Rout(2)切换输入输出的关系,把输出色调值Xp和Xq中大的一方作为输出色调值Yn,把小的一方作为输出色调值Yn-1供给线性插补运算电路23。
图9(b)模式地表示线性插补运算电路23的线性插补运算。线性插补运算电路23根据从数据转换开关29供给的输出色调值Yn以及Yn-1和表示输入色调值的低位的2位的Rout(1..0),对输出色调值Yn以及Yn-1之间进行插补。具体地说,线性插补运算用下式表示。
R(lut_out)=Yn-1+(Yn-Yn-1)×(Rout(1..0)[Dec]/4)+OFF_set(式3)
但是当Rout-1(7..2)=-1时,设Yn-1=0.([Dec]表示十进制数)另外,在式3中,附带条件的意思与实施例1和实施例2一样。
这样,在实施例3中,因为把64级色调的色调修正特性数据分开存储在与奇数的输入色调值对应的LUT27和与偶数的输入色调值对应的LUT28中,所以可以进一步减小构成LUT所需要的RAM容量。实际上,如上所述,与使用1个具有256级色调的输入色调值的LUT的情况相比,则总的RAM容量为1/4,即使与实施例1相比总的RAM容量也为1/2。
变形例.
在以上说明的色调修正部的实施例1至实施例3中,如参照图5说明的那样,在线性插补处理中,在输入色调值=0的下侧附加3个色调值而整体构成256级色调。代替它们如图10所示,也可以在输入色调值=63的上侧附加3级色调而整体构成256级色调。在这种情况下,当在实施例1中的2个输入色调值中小的一方、即输入色调值Xn-1=63时,只要把与输入色调值Xn对应的输出色调值设定为“256”即可。在实施例2和实施例3中也一样。
但是,因为需要当在色调值小的一侧附加3个色调值时把值“0”存储在寄存器等中,当在色调值大的一侧附加3个色调值时把值“255”存储在寄存器等中,所以在色调值小的一侧附加3个色调值时寄存器占有量很小就可以。另外,在色调值小的一侧或者大的一侧中,如果在相当于显示图像的黑色一侧附加3个色调,则可以减小对显示图像的影响。
另外,在上述的实施例1中,在线性插补处理中使用的2个输入色调值设为某个像素的色调值Rout(7..2)和其下一色调值Rout-1(7..2)。代替此也可以使用某个像素的色调值Rout(7..2)和其上一个色调值Rout+1(7..2)进行线性插补。
另外,在实施例2中,虽然在LUT中存储某个像素的色调值Rout(7..2)和其下一色调值Rout-1(7..2)的差值,但也可以代替此在LUT中存储某个像素的色调值Rout(7..2)与其上一色调值Rout+1(7..2)的差值。