基于色调和饱和度分量的颜色调整电路

2017-02-09 07:34吕超英陈远明徐佰新王建锋
电子与封装 2017年1期
关键词:种颜色色度色调

赵 海,吕超英,赵 健,陈远明,徐佰新,王建锋

(无锡华润矽科微电子有限公司,江苏无锡214000)

基于色调和饱和度分量的颜色调整电路

赵 海,吕超英,赵 健,陈远明,徐佰新,王建锋

(无锡华润矽科微电子有限公司,江苏无锡214000)

提出了一种基于色调和饱和度分量的独立颜色调整电路,可用于视频后处理过程中对肤色、蓝天、绿叶等需要强调的颜色进行选择性调整,对其他无关部分不会产生任何影响,以满足不同视觉享受的需要。该方法具有颜色区域选择准确和调整后颜色过渡自然的特点,并成功应用于电视芯片中。该电路在TSMC 0.18 μm工艺平台流片,工作频率为150 MHz,主要采用了CORDIC快速算法,整个芯片采用流水线结构,实时处理能力好。

色度;饱和度;独立颜色调整;视频后处理;CORDIC

1 引言

当前,随着视频设备的高速发展,人们对视频质量的要求越来越高,对色彩的要求也越来越高。不同的人由于喜好不同,所喜欢的颜色各不相同。比如,有些人喜欢浅蓝色的天空,有些人喜欢深蓝色的天空;有些人喜欢浅绿色的草地,有些人喜欢深绿色的草地;有些人喜欢红润的肤色,有些人喜欢古铜的肤色;还有些人喜欢这一切的随机组合,还有红、黄、蓝、绿、青等一系列颜色不同的深浅色的组合,这就需要视频设备根据用户的需求对颜色进行适应调整。

目前市面上颜色调整的方法主要为RGB调整[1],通过颜色空间转换可以转换到YCbCr空间进行颜色调整[2]。YCbCr颜色可分解为色调和饱和度两个分量:色调指颜色的外观,用于区别颜色的名称或颜色的种类,色调取决于可见光谱中光波的频率。色调用红、橙、黄、绿、青、蓝、靛、紫等术语来描述。饱和度是相对于明度的一个区域的色彩,是指颜色的纯洁性,它可用来区别颜色的明暗程度。通俗地讲,饱和度是量化一种颜色渗入白光的程度,完全饱和的颜色是指没有渗入白光所呈现的颜色。

本文介绍的颜色调整方法都是利用色调和饱和度来进行颜色调整的。

2 颜色调整方法

2.1 数学模型建立

Colorbar是视频测试中最常用的测试条目,Colorbar中包含黄色、青色、绿色、洋红色、红色、蓝色的色度分量值,其红、蓝偏移分量值如表1所示[3]。

表1 Colorbar的红蓝偏移分量

将表1的内容用公式(1)计算后可以得到表2。

表2 Colorbar的红蓝偏移分量转换

将表2中的数据用坐标图表示出来,如图1所示。

图1 颜色坐标示意图

将图1中的直角坐标转换为对应的极坐标对应数学模型:

公式(2)中的Hue即为颜色的色调分量,Saturation即为颜色的饱和度分量。

2.2 基于色调和饱和度的颜色调整基本原理

通过调整色调Hue和饱和度Saturation可以达到调整颜色的目的。见图1,通过公式(2),将由Cb_tmp、Cr_tmp构成的直角坐标系转换为由Hue、Saturation构成的极坐标系,其中,Hue为极坐标系中的角度,Saturation为极坐标系的半径,根据极坐标系关系,有公式(3)如下:

工程上颜色调整可以分为整体颜色调整和独立颜色调整(选择性颜色调整)。所谓整体颜色调整即将所有颜色的色调分量统一按某一角度进行旋转、按统一增强系数对饱和度进行调整,使画面的所有颜色发生变化。而独立颜色调整则是对人们特定关心的颜色进行色调和饱和度的调整。

整体颜色调整操作简单,易于硬件实现,但实际工程意义不大;独立颜色调整可对肤色、蓝天、绿叶等人们比较关心的区域进行单独调整,工程意义大,硬件上实现较复杂。

3 独立颜色调整电路实现方法

3.1 整体结构

图2描述了颜色调整电路的整体框图,总共包含7个主要部分:颜色预处理,计算反正切模块,6种颜色范围定义模块,特殊颜色范围定义模块,6种颜色处理色调和饱和度,特殊颜色处理色调和饱和度,色调和饱和度计算以及寄存器配置模块。

图2 电路实现整体框图

3.2 寄存器配置模块

这个模块可以根据用户喜好自行设定需要调整的颜色以及如何调整,比如特定颜色增大色调、减小饱和度等。

3.3 颜色预处理模块

这个模块主要用公式(1)将输入视频信号YCBCR减去512,并将输入的无符号数据转换成有符号数据。换句话说就是将表1的内容转换为表2的内容,建立起图1对应的颜色坐标系。

3.4 反正切函数计算模块

将图1由Cb_tmp和Cr_tmp构成的直角坐标系转换成Hue和Saturation构成的极坐标系。转换公式见公式(2)。

对于硬件实际计算过程,我们采用CORDIC算法[4]进行计算。

先初始化,将二三象限的角度映射到一四象限来,映射后:

y0=Cr_tmp;

x0=Cb_tmp;

sign0=sgn(y0)

x_table[0]=x0+sign0*y0;

y_table[0]=y0-sign0*x0;

z_table[0]=sign0*atan_table[0];

然后循环7次:

for(i=0;i<7;i++)

{

sign[i]=sgn(y_table[i]);

x_table[i+1]=x_table[i]+((sign[i]*y_table[i])>>(i+1));

y_table[i+1]=y_table[i]-((sign[i]*x_table[i])>>(i+1));

z_table[i+1]=z_table[i]+(sign[i]*atan_table [i+1]);

}

得到的角度为z_table[7],角度精确到1°。然后根据输入的Cb_tmp、Cr_tmp值,将角度映射回各自的象限,将角度全部转换到0°~360°区间,就得到了Hue,x_table[7]为对应的饱和度Saturation。

图3为迭代基础单元,如果处理频率较低,可以采用7倍时钟复用这个单元得到CORDIR结果,该芯片这部分需要的处理频率接近150 MHz,所以直接例化了7个迭代基本单元。表3(来自VESA标准)为电视视频输出不同屏幕大小对应的场频、行频、像素时钟频率。

表3 VESA视频格式标准

图3 CORDIC迭代基本单元

虽然这一计算过程可以同时计算出Hue和Saturation。但是推导公式(4)和公式(5)发现Saturation这个参数在最终计算结果中是可以约分消掉的,所以这个模块值计算了Hue。

3.5 6种颜色范围定义模块和6种颜色处理模块

表1的数据来自参考文献[2],经过颜色预处理模块后转换为表2,形成表3,芯片默认的6种颜色就是黄色、青色、绿色、洋红色、红色、蓝色,在后面试验结果的Colorbar中可以看到,实际上就是将一个圆周近似等分了6份。每种颜色又分为3部分,上边界、下边界和中间部分。颜色调整的时候,中间部分的调整值与寄存器配置进来的调整值一致。上边界和下边界的调整值根据离中间部分的距离递减,具体算法后面会有介绍。

6种颜色根据角度分为6份。每种颜色的起始角度sta、终止角度end。洋红色的角度magenta_ang=52°,红色的角度 red_ang=109°,黄色的角度yellow_ang=171°,绿色的角度green_ang=232°,青色的角度cyan_ang=289°,蓝色的角度blue_ang=351°,则按角度对颜色进行归类为:

Magenta: (magenta_sta,magenta_end),其中magenta_sta=magenta_ang-28,magenta_end= magenta_ang+28;

Red:(red_sta,red_end),其中red_sta=red_ang-29, red_end=red_ang+29;

Yellow: (yellow_sta, yellow_end), 其 中yellow_sta=yellow_ang-31,yellow_end=yellow_ang+31;

Green: (green_sta , green_end), 其 中green_sta=green_ang-28,green_end=green_ang+28;

Cyan: (cyan_sta , cyan_end), 其 中cyan_sta=cyan_ang-28,cyan_end=cyan_ang+28;

Blue: (blue_sta , blue_end), 其 中blue_sta=blue_ang-31,blue_end=(blue_ang+31)%360。

饱和度Satura、色度Hue及颜色渐近变化偏置Bias,来获得颜色的色度变化值Hue_change及饱和度变化值Satura_change,并据此对每种颜色的饱和度与色度进行独立调整,以获得每种颜色最终调整后的色度信息值Cb_out与Cr_out。

每种颜色对于色度变化值Hue_change及饱和度变化值Satura_change的计算,可以将视频信号分为3部分计算,中间部分的调整值与寄存器配置进来的调整值一致。上边界和下边界的调整值根据离中间部分的距离递减。

计算方法如下:

上边界part=1,下边界part=2,中间部分part=0,如果不在(sta,end)之内则part=3。

颜色处理单元硬件实现框图见图4。

图4 颜色处理单元

3.6 特殊颜色范围定义模块和特殊颜色处理模块

在此需说明的是,对于肤色调整、天空增强和绿叶处理,可以用相同的方法采用色度饱和度计算及6种颜色范围定义模块和6种颜色处理模块中提到的方法计算出色度变化值hue_change2及饱和度变化值satura_change2。例如,肤色的sta=109,end=156[5];天空的sta=296,end=340;绿叶的sta=160,end=247。同样角度如果都不在这 3组 (sta,end) 范围内,则hue_change2=0。颜色处理方法见图5。

图5 色度饱和度计算

3.7 色度饱和度计算模块

通过调整色调Hue和饱和度Saturation可以达到调整颜色的目的。用式(3)、式(5)和式(6)可以计算得到最终的Cb_out和Cr_out。

4 实验结果

4.1 电路实现整体逻辑图

芯片拷贝图见图6,要求:(1)压焊点清晰;(2)压焊点内填写PIN序号,就近填写压焊点名称,该序号及压焊点名称与坐标表内须保持一致;(3)芯片图拷贝前,Layout Display Options中Axes/Label Origins选项设置为不显示。

4.2 仿真结果图

视频信号输入到视频信号处理完毕总共耗时40个周期。图7中,color_adj_video_in表示视频信号进入颜色调整模块的数据流,color_adj_video_out表示视频信号从颜色调整模块输出的数据流。其中vsync_in和vsync_out表示场同步信号,场同步信号的频率对应表3中的Refresh Rate;hsync_in和hsync_out表示行同步信号,行同步信号的频率对应表3中的Horizontal Frequency;dv_in和dv_out表示有效像素标识信号,根据表3中1920×1200分辨率中像素频率154 MHz、行频74 kHz,可以计算得到每行实际点数为2081个,有效像素点为1920个,由场频60 Hz、行频74 kHz,可以计算得到每场有1233.3行,有效行数为1200;Cb_in、Cr_in为输入的每个像素点的色度分量,Cb_out、Cr_out为处理后每个像素点的色度分量。

4.3 工作频率测试

测试目的:测试电视在1920×1080分辨率的液晶屏上的最大最小参数;

测试方法:用电视芯片整机测试,采用1920×1080的电视机播放视频信号;

测试条件:25℃。

测试结果:支持的最小工作频率为130 MHz,最大工作频率为150 MHz。具体见表4。

图6 芯片拷贝图

图7 颜色调整模块仿真波形图

表4 最大最小参数测试结果

4.4 IC芯片调试视频效果

图8(a)对应图7的输入信号,图8(b)对应将图7的输出信号内容用YCBCR播放器播放出来的效果图,其中每个颜色可以单独调整,其他颜色可以保持不变。

图8 所有颜色都调整后的Colorbar

5 结论

本文设计的颜色调整电路可用于选择性地对感兴趣的图像颜色进行调整,使画面更加符合人们的观察习惯,该颜色调整方法具有颜色选择定位准确的特点,且在调整后的图像颜色过渡自然,不会对周边颜色进行破坏。该方法也成功应用于电视视频后处理电路中。

[1]郭志友,范广涵,孙慧卿.LED显示屏亮度和颜色的调整方法[J].液晶与显示,2003,18(04):298-300.

[2]周钱生,戴麟.快速查表法优化视频解码中YCbCr到RGB的转换[J].现代电子技术,2007,15(254):167-169.

[3]Keith Jack.Video Demystified[M].United State of America: LLH Technology Publishing,2001:18-19.

[4]杨宏,李国辉,刘立新.基于FPGA的CORDIC算法的实现[J].西安邮电学院学报,2008,13(01):75-77.

[5]陶霖密,彭振云,徐光佑.人体肤色特征 [J].软件学报,2001,12(07):1032-1039.

Color Adjustment Circuit Based on Hue/Saturation

ZHAO Hai,LV Chaoying,ZHAO Jian,CHEN Yuanming,XU Baixin,WANG Jianfeng
(Wuxi China Resources Semico Co.,Ltd,Wuxi 214000,China)

The paper proposes an independent color adjustment circuit based on hue and saturation components.The circuit is capable of selective color adjustment during video post-processing and avoids any influence on other parts.It is characterized of accurate color region selection and natural transition.Being Manufactured in TSMC 0.18 μm process,the circuit works at 150 MHz and uses CORDIC algorithm with good real-time processing capability.

hue;saturation;independent color adjustment;video post-processing;CORDIC

TN402

A

1681-1070(2017)01-0027-05

赵 海(1974—),男,江苏江阴人,1997年毕业于浙江大学电子工程专业,无锡华润矽科微电子有限公司研发总监、高级工程师,多年来一直专注于集成电路的设计与开发,其负责和参与的项目先后两次获得过江苏省科技进步奖。

2016-7-28

猜你喜欢
种颜色色度色调
观察:颜色数一数
湖光水色调
色调会说话
分离色调与色调曲线
基于改进色度模型的非接触式心率检测与估计
景德镇早期青白瓷的器型与色度
In Spring!春之色调
如何提高苹果的着色度
在线色度分析仪的设计应用
迷人的颜色