datasheet
超过460,000+ 应用技术资源下载
pdf

CMOS传感器白平衡数字处理

  • 1星
  • 日期: 2015-05-12
  • 大小: 4.36MB
  • 所需积分:1分
  • 下载次数:0
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: CMOS

本文阐述了针对单片CMOS图像传感器中数字预处理电路自动白平衡算法模块(A髓)的设计与实现。因为是单片系统设计,要求电路设计具备规模小,消耗资源少,功耗小,以及方便移植等特点。通过对前人提出的自动白平衡算法的MATLAB仿真比较,兼顾实现复杂度和处理效果两方面因素,本文提出了一种灰色世界和理想反射镜相结合的方法进行颜色校正。两种算法的结合互补,使得本算法的适用范围得到扩展,一定程度上弥补了两种算法各自的不足。使用这种算法不需要存储图像便能完成白平衡增益的计算。。。。 

天津大学 硕士学位论文 CMOS图像传感器白平衡数字处理电路设计 姓名:闫格 申请学位级别:硕士 专业:通信与信息系统 指导教师:刘贵忠 20070501 中文摘要 CMOS图像传感器与CCD相比,由于能将时序处理电路和图像信号的前端放 大与数字化部分以及图像集成于一个芯片内,因此其的发展一直受到业界的高度 重视。并且它以其低廉的价格、较好的图像质量、高集成度和相对较少的功耗, 在视频监控、多媒体领域得到更加广泛的应用。 本文阐述了针对单片CMOS图像传感器中数字预处理电路自动白平衡算法模 块(A髓)的设计与实现。因为是单片系统设计,要求电路设计具备规模小,消耗 资源少,功耗小,以及方便移植等特点。通过对前人提出的自动白平衡算法的 MATLAB仿真比较,兼顾实现复杂度和处理效果两方面因素,本文提出了一种灰色 世界和理想反射镜相结合的方法进行颜色校正。两种算法的结合互补,使得本算 法的适用范围得到扩展,一定程度上弥补了两种算法各自的不足。使用这种算法 不需要存储图像便能完成白平衡增益的计算。为了节约资源和满足实时性,本设 计中规划了算法中统计区域和运算区域,并通过状态机控制一个除法器做连续除 法运算。为了提高电路的适用频率范围,增强设计的可移植性,在数据处理部分 采用了流水线乘法器。为了进一步降低功耗,设计中还采用了隔帧启动白平衡机 制。设计采用Verilog硬件描述语言进行各子模块的设计,并用MATLAB和Veri log 结合的方法生成测试激励源,对设计进行验证。通过在不同色温环境下的测试, 本设计对图像偏色有较好的校正效果。 关健字:CMOS AWB自动白平衡灰色世界理想反射镜 ABSTRACT Compared with CCD,CMOS graphic sensor integrates the real time disposing circuit and the front part amplification of graphic signal into one chip.Its development is widely noticed in digital region.It is widely used in video monitor and multimedia region because of its low price,good graphic quality,high integration and low power consumption. In this paper,the design and implement of CMOS graphic sensor digital pre—disposing circuit’S AWB module are achieved.Because it is the design of single chip system,it is required that the circuit is small in scale,low resource consuming,low power consuming and easy to transplant. The algorithm of the design is based on the MATLAB simulation of the algorithm which is already advanced by other people.Considered the complexity of implement and the effect of disposition,it developed a kind of method combined gray world and ideal reflector to modify color.Combining the two algorithms to expand the scope in point,it makes up the shortage of the two algorithms.With this algorithm,we call complete the calculation of AWB’S plus without saving the picture.In order to save the resource and meet the need of real time,the design marks out the region of statistics and calculation and controls a division device to do the consecutive divisional calculation by a state switch set.T1le design uses a pipeline multiplication set in data disposing pan in order to expand the appropriate scope in frequency and enhance the transplantation of the design.For reducing the power,alternative frame stanup AWB is used in the design.Sub—modules are designed in Verilog HDL in the design and the SOurCe of stimulation is built to do the verification of the design by combining MATLAB and Verilog HDL.The design has better effect of emendation for graphic color inclining in different color temperature environment. Key words:CMOS,AWB,auto white balance,gray world,ideal reflector, 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不信~其他人已经发表 或撰写过的研究成果,也不包含为获得苤鲞盘鲎或其他扒、.9L构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 …一虢f刁络一期:呷"月佯日 学位论文版权使用授权书 本学位论文作者完全了解.丕盗盘堂有关保留、使用学位论文的规定。 特授权叁鲞盘茎可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 (保密的学位论文在解密后适用本授权说明) l’二]恪 学位论文作者签名: J 签字日期:1“月f帅 导师签名: 未,f贵忠、 签字日期:2口D1年6月,千日 第一章绪论 第一章绪论 I.I CMOS图像传感器概述 CMOS即互补氧化物半导体,其在微处理器、闪存和专用集成电路(ASIC) 的半导体技术上占有绝对重要的优势地位。CMOS和CCD一样都是可用来感受光 线变化的半导体。CCD图像传感器由于灵敏度高、噪声低,逐步成为图像传感器 的主流。现在市场上所见的大多数数码相机中都采用这种器件。但由于工艺上的 原因,敏感元件和信号处理电路不能集成在同一芯片上,造成由CCD图像传感器 组装的摄像机体积大、功耗大。 CMOS针对CCD最主要的优势就是非常省电。不像由二极管组成的CCD,CMOS 电路几乎没有静态电量消耗,只有在电路接通时才有电量的消耗。这就使得CMOS 的耗电量只有普通CCD的I/3左右,CMOS主要问题是在处理快速变化的影像时, 由于电流变化过于频繁而过热。暗电流抑制得好就问题不大,如果抑制得不好就 十分容易出现杂点。 CMOS与CCD的图像数据扫描方法有很大的差别。假设分辨率为300万像素, 那么CCD传感器可连续扫描300万个电荷,扫描的方法非常简单,就好像把水桶 从一个人传给另一个人,并且只有在最后一个数据扫描完成之后才能将信号放 大。CMOS传感器的每个像素都有一个将电荷转化为电子信号的放大器。因此, CMOS传感器可以在每个像素基础上进行信号放大;采用这种方法可节省任何无 效的传输操作,所以只需少量能量消耗就可以进行快速数据扫描,同时噪音也有 所降低。 最初的CMOS图像传感器,一直没有摆脱光照灵敏度低和图像分辨率低的缺 点,图像质量还无法与CCD图像传感器相比。如果把CMOS图像传感器的光照灵敏 度再提高5倍"、-10倍,把噪声进一步降低,CMOS图像传感器的图像质量就可以达 到或略微超过CCD图像传感器的水平,同时能保持体积小、重量轻、功耗低、集 成度高、价位低等优点,如此,CMOS图像传感器取代CCD图像传感器就会成为事 实。 . 实际上,更确切地说,CMOS图像传感器应当是一个图像系统。一个典型的CMOS 图像传感器通常包含:一个图像传感器核心(是将离散信号电平多路传输到一个 第一章绪论 单一的输出,这与CCD图像传感器很相似),所有的时序逻辑、单一时钟及芯片 内的可编程功能,比如增益调节、积分时间、窗口和模数转换器。当一位设计者 购买了CMOS图像传感器后,他得到的是一个包括图像阵列逻辑寄存器、存储器、 定时脉冲发生器和转换器在内的全部系统。与传统的CCD图像系统相比,把整个 图像系统集成在一块芯片上不仅降低了功耗,而且具有重量较轻,占用空间减少 以及总体价格更低的优点。u卅 由于CMOS图像传感器的应用,新一代图像系统的开发研制得到了极大的发 展,并且随着经济规模的形成,其生产成本也得到降低。现在,CMOS图像传感 器的画面质量也能与CCD图像传感器相媲美,这主要归功于图像传感器芯片设计 的改进,以及亚微米和深亚微米级设计增加了像素内部的新功能。 用户 图1-1 CMOS图像传感器系统构成 设计针对用户需求的高集成度单芯片CMOS图像传感器系统是今后的设计 者的目标。如图1.1所示,这个系统里除了前端的传感器部分,还包括自动增益 控制(AGC)、自动曝光控制(AEC)、自动白平衡(AWB)、伽玛样正、自动对 焦、亮度色度自动控制等图像预处理电路。针对用户需要还可以加入应用于客户 第一章绪论 某种特殊用途的算法的IP块。如果需要传输数据还可加入通信模块。 本文中讨论的自动白平衡算法模块主要应用于彩色空间的图像采集。目的是 真实的再现所拍摄场景中物体的真实色彩,消除环境色温造成的颜色色偏。在用 户需要彩色图片或视频时都需要加入这个算法模块。但是在一些灰度图就能满足 用户应用的场合里,这个模块可以不用加到CMOS图像传感器的系统中。因此 。CMOS图像传感器的系统设计可以根据用户的需求做到配置的灵活性。 1.2视频信号预处理 镜头将场景中的图像聚焦到传感器的光敏表面。为了摄取彩色,通常有三 种类型的光敏表面或传感器,每个传感器的频率响应决定于所选基色的彩色匹配 函数,通常数字设备都采用RGB空间。为了降低成本,多数消费类的摄像机采用 单片传感器进行彩色的成像。这是通过把每个像素传感器区域分成3个(RGB) 或者4个(CyMgYeGr)子区域,每个子区域感应不同的基色。【s】 分离出RGB信号后,送入A/D转换器,使之成为数字信号。为了提高图像 的质量,对加转换后的数字信号进行处理,主要包括色彩插值、色彩校正、 自动聚焦、自动曝光、自动白平衡、伽马校正、图像增强等。通过这些方法改善 的传感器所拍摄图像的质量,为之后的应用奠定了基础。 1.2.1色彩插值 CMOS图像传感器设计中,厂家出于成本和体积考虑,采用单片CMOS彩色 传感器。在单片传感器表面覆盖一层彩色滤波阵列(CFA),这样所采集的图像 为每个像素只有红绿蓝其中一种颜色分量的马赛克图。为了获得全彩色图,必须 用插值算法恢复出丢失的色彩信息。图l一2为常用的Bayer格式。【2】 避l G12 r G2,l 如 I I 岛I l G3:l 哦t! f %I _ 岛 氏: 毛 G1· 墨5 q5 丝 魄 丑N 瓦 __ 马3 瓯 l焉: I I瓯 _ l G奄 :雪¨ f IG巧 I民 I 毛 !瓯一 焉5 I瓯 G曩 嚣& G龆 l五供 Gk 蚝 图1-2Bayer格式 第~章绪论 在图1.2中所示的图像阵列中,每个像素点只能有一个颜色值,另外两个颜 色值的确定利用相邻像素之间的相关性,通过计算得到。基于Bayer图像阵列, 常用的插值算法有相邻像素插值、双线性插值、双三次多项式插值等。这里以双 线性差值为例做简单介绍。 f 尾,=忍, 红色像素点玛,处处理: {G33=(G么+G32+G-+G毛)/4 (卜1) 【马3=(%+吮+%+凡)/4 f G5:=G5: 绿色像素点G5:处处理: {恐2=(B,+恐3)/2 (1-2) 【岛2=(%+%)/Z I %=Bo 蓝色像素点%处处理: {Ro=(马3+玛5+尽3+是5)/4 (1-3) 【瓯=(瓯+G43+G45+G5。)/4 1.2.2自动聚焦 自动聚焦目的是获得清晰度更高得图像。常用得聚焦方法分两类,一类是 传统的聚焦方法,一种是基于数字图像处理方式得图像聚焦。传统的方式中,自 动聚焦通过红外线或者超生波测距的主动方式来实现。这种方式需要安装发射机 和接收机,增加了摄像机的成本,而且超声波对于玻璃后面的被摄物体不能很好 的自动聚焦。这一类聚焦方式在某些场合受到了限制。因此在日趋集成化、微型 化、低成本的应用中,基于数字图像处理的自动聚焦方法更具有优势。 根据镜头成像分析,镜头的光学传递函数可以近似为高斯函数,它的作用 等效为一个低通滤波器。离焦量越大,光学传递函数的截止频率越低。从频域上 看,离焦量增大,对图像高频能量造成损失,使得图像的细节逐渐模糊。从空域 上看,离焦量增大,点光源成像的光强分布函数越分散,可分辨的成像间距越大, 图像相邻像素互相重叠,图像细节损失严重。因此图像清晰度评价函数时建立在 图像边缘高频能量上的。13] 数字处理方法中,自动聚焦的关键在于构造图像的清晰度评价函数。已经 提出的图像清晰度评价函数包括:灰度方差、梯度能量、熵函数和一些频域函数 法。图像清晰度评价函数必须具有良好的单峰性和尖锐性,而且要计算量适度, 从而可以快速的实现精准对焦。 CMOS图像传感器采集到的是模糊的图像,自动对焦处理模块根据图像信 息计算评价函数值,然后根据爬山算法确定移动方向和距离,控制镜头的移动, 然后重新计算新位置的评价函数,依据爬山算法确定进一步的移动方向和距离, 反复调整直到精准对焦。 第一章绪论 1.2.3自动曝光 曝光是用来计算从景物到达相机光通量大小的物理量。CMOS图像传感器只 有获得正确的曝光,才能得到高质量的照片。曝光过度,图像看起来太亮;曝光 不足,则图像看起来太暗。到达传感器的光通量的大小主要由两方面因素决定: 曝光时间的长短以及光圈的大小。【4】 利用光圈进行自动曝光,主要根据所拍摄的场景来控制光圈大小,使得进 光量维持在一定范围内。通过光圈进行曝光控制的成本比较高。现在市场所见的 中低端摄像头采用的主流技术通过调整曝光时间来实现自动曝光。 目前自动曝光控制算法方法有两种,一种是使用参照亮度值,将图像均匀 分成许多的子图像,每一块子图像的亮度被用来设置参照亮度值,这个亮度值可 以通过设置快门的速度来获得。另外一种方法是,通过研究不同光照条件下的亮 度与曝光值之间的关系来进行曝光控制。这两种方法都是研究了大量的图像例子 和许多不同的光照条件。而且均需要在不同的光照条件下所采集的图像数据库。 实际中自动曝光研究需要解决好以下几个问题,首先是判定图像是否需要 自动曝光,其次是自动曝光时,如何调整光电转换后数字信号来找出自动曝光能 力补偿函数,最后就是调整到什么程度最为合适。 1.2.4伽玛校正 在视频采集显示系统中,光电转换(CMOS,CCD)和电光转换(CRT, LCD)的器件的转换特性都是非线性的。这些非线性期间都存在一个能反映各自 特性的幂函数,它的一般形式是: 二, I.o=y7 (1-4) 上面的式子中,y(Gamma)是幂函数的指数,用它来衡量非线性器件的 转换特性。这种特性我们称为伽玛特性。式子中V∈[0,l】表示图像的像素亮度信 息。在视频中由于伽玛特性的存在,会导致图像信号的亮度失真,降低通信质量, 影响用户体验。因此要对这个失真进行补偿,即伽玛校正。 光电转换器特性的非线性会引起图像非线性失真,图像的非线性失真主要 表现在灰度的失真,即图像亮度层次的压缩与扩张,其图像表征为看起来被漂白 或者太暗。摄像机/摄像头的伽玛特性大小一般为0.4.0.7。显示器的伽玛特性大 小一般在1.3.2.5之间。161 第一章绪论 伽玛校正的具体实现方法多种多样,较简单的实现方式是查表法。伽玛校 正分两步。首先建立适合所用器件的伽玛校正表,然后根据输入的像素值查表获 得伽玛校正后的数据。 1.2.5图像增强 图像传感器输出的图像数据经过上述处理并不是完美的,图像质量获得的 改进也是有限的,影响系统图像清晰程度的因素很多,例如室外光照度不够均匀 就会造成图像灰度过于集中,CMOS光电转换、线路传送都会产生噪声污染等等。 因此图像质量不可避免的降低了,轻者表现为图像不干净,难于看清细节;重者 表现为图像模糊不清,连概貌也看不出来。因此,在对图像进行分析之前,必须 要对图像质量进行改善,一般情况下改善的方法有两类:图像增强和图像复原。 图像增强不考虑图像质量下降的原因,只将图像中感兴趣的特征有选择的突出, 而衰减不需要的特征,它的目的主要是提高图像的可懂度。图像增强的方法分为 空域法和频域法两类,空域法主要是对图像中的各个像素点进行操作;而频域法 是在图像的某个变换域内,对图像进行操作,修改变换后的系数,例如付立叶变 换、DCT变换等的系数,然后再进行反变换得到处理后的图像。图像复原技术与 增强技术不同,它需要了解图像质量下降的原因,首先要建立”降质模型”,再利 用该模型,恢复原始图像。【8】 1.2.6白平衡 白平衡,字面上的理解是白色的平衡。用色彩学的知识解释,白色是指反射 到人眼中的光线由于蓝、绿、红三种色光比例相同且具有一定的亮度所形成的视 觉反应。我们都知道白色光是由赤、橙、黄、绿、青、蓝、紫七种色光组成的, . 而这七种色光又是有红、绿、蓝三原色按不同比例混合形成,当一种光线中的三 原色成分比例相同的时候,习惯上人们称之为消色,黑、白、灰、金和银所反射 的光都是消色。通俗的理解白色是不含有色彩成份的亮度。人眼所见到的白色或 其他颜色根物体本身的固有色、光源的色温、物体的反射或透射特性、人眼的视 觉感应等诸多因素有关,举个简单的例子,当有色光照射到消色物体时,物体反 射光颜色与入射光颜色相同,既红光照射下白色物体呈红色,两种以上有色光同 时照射到消色物体上时,物体颜色呈加色法效应,如红光和绿光同时照射白色物 体,该物体就呈黄色。当有色光照射到有色物体上时,物体的颜色呈减色法效应。 如黄色物体在品红光照射下呈现红色,在青色光照射下呈现绿色,在蓝色光照射 下呈现灰色或黑色。 . 由于人眼具有独特的适应性,使我们有的时候不能发现色温的变化。比如在 第一章绪论 钨丝灯下呆久了,并不会觉得钨丝灯下的白纸偏红,如果突然把日光灯改为钨丝 灯照明.就会觉查到白纸的颜色偏红了.但这种感觉也只能够持续一会儿。CMOS 摄像头并不能像人眼那样具有适应性.所以如果摄像机的色彩调整同景物照明的 色温不一致就会发生偏色。白平衡就是针对不同色温条件下,通过调摄像头内部 的色彩电路使拍摄出来的影像抵消偏色,更接近人眼的视觉习惯。白平衡也可以 简单地理解为在任意色温条件下,摄像头所拍摄的标准白色经过电路的调整,使 之成像后仍然为白色。 图1-3便是偏色经过白平衡处理的一个例子。图例中左侧的图像是在钨丝灯 光源下拍摄的图像,本来白色的物体由于环境色温的影响产生了发红的偏色,是 我们无法正确的分辨出其色彩信息。通过白平衡的校正处理,如图右侧的图像我 们可以判别出图像的原本颜色。 调整白平衡的过程叫做白平衡调整.白平衡调整在前期设备上一般有三种方 式:预置白平衡、手动白平衡调整和自动自平衡调整。通常按照自平衡调整的程 序,推动白平衡的调整开关,白平衡调整电路开始工作,自动完成调校工作.并 记录调枝结果。文中的白平衡模块设计对其中的两种工作方式进行了实现,侧重 点放在了自动白平衡的设计上。预置白平衡的实现是将对不同环境色温的调整参 数预先存在摄像头中,根据用户的选择来实现调整。手动白平衡的实现是直接给 摄像头发送我们期望的调整参数.摄像头接收到参数后之后的图像校正就按照这 个参数来调整。 原始目像 自动处理 l曩 1.3选题目的和意义 图lo简单自平衡处理图例 人们生活的环境少不了照明的各种光源.但不论在自然光还是人造光源下 第一章绪论 我们都会感觉“白色”依旧,原因是由于人的大脑可以侦测并且更正这样的色彩改 变。但是,对于CMOS摄像头来说,就没有办法修正这种色温的改变,而必须 依靠白平衡处理来实现。 本文对现有各种算法用MATLAB工具进行了仿真分析。通过比较其处理的 效果和算法的复杂度,融合某些算法的优势,修正算法不足,提出了一种灰色世 界和理想反射镜结合并加以特殊情况修正的算法。采用这种算法,硬件实现简单, 不需要存储器,功耗低,实时性方面可以满足视频采集的要求。 本文的设计是针对30万像素CMOS传感器设计,为了让电路也能的应用在 更高像素的传感器数据处理中,设计里在制约电路速度方便进行了优化。数据处 理采用了流水线乘法器架构提高了电路的适用频率范围。对以后的高像素的图像 传感器ASIC制造有很好的指导作用。 第二章白平衡算法研究 第二章白平衡算法研究 2.1光源色度学简介 不同的光源对颜色的视觉有不同的影响,如在暗室红灯照明下就看不出颜 色就只有亮和暗的感觉,公路上照明的钠灯,虽然很亮但是这种光源下看不出物 体的正常颜色,还有公路两边的草就看不出他们是绿的因为没有绿光反射回来。 因此对颜色进行测量,首先要弄清楚是在什么样的光源照明下进行的。即不同的 光源下测量的数据是不同的。为了统一颜色测量标准,CIE(国际照明度委员会) 规定了标准照明体和标准光源。 光源由于发光物质的不同其光谱的功率分布有很大差异,一定的光谱功率 分布表现为一定的光色。色彩学将光源的光与“黑体”的光比较来描述它的光色。 黑体(普朗克辐射体)是指在辐射作用下即不反射也不透射而能将其全部吸收。 2.1.1色温. . 黑体加热到不同温度所发出来的不同光色来表达一个光源的颜色,称作光 源的颜色温度简称色温。 争薅2 … ‰K l_ 々 、>毒oQK —n● 蜷i缀,v皂妊7 N 醚 E1 , 、 Io∞簟 10ftK 、p __- 一 ‘弋. 一。~ ,IOG0 K ?、.j ∞OK l-_-^ ≥ _‘V’ VV^. i 嘴鬈 // i 1/’ ,, 图2-1黑体色温曲线 黑体虽然是理想的物体,但是在实验室中可以很好地模拟,例如,在一块 第二章白平衡算法研究 耐火砖内有一密闭空腔,当耐火砖加热到1000摄氏度时空腔内壁的颜色即是理 想黑体在1000摄氏度时的颜色,如在砖上钻一个小洞,并且小洞d,N不影响腔 内均匀辐射。此时可以从孔中观察空腔的一小部分内壁的颜色。即黑体处于这一 温度的颜色。 图2.1描绘出了色温曲线图代表了温度发生变化时空腔内色度点的变化轨 迹。图中各点分别表示:CIE A、CIE B、CIE C、CIE D、光源及等能光源E;40W 标准暖白(P)、白(Q)标准冷白(R)及日光色荧光灯(F);阴天天空光(M)、 落到45度平面的白天北方天空光(N)、直射阳光(S)及晴朗天空光(H)。 关于色温的计算,过去是用查图的方法,很不方便,近来日本的田丸修治 提出一个色温计算公式,使用起来很方便。 Tc=668A4—779A3+3660A2—7047A+5652 (2·1) 其中A=b一0.329)/(y一0.187)x,Y是光源色度坐标,这个公式的适合的色温 范围是2000到10000K。 白平衡算法目的是降低外界光源对物体本来颜色的影响,使得我们采集的 颜色信息转变为在理想的白光源下的到的无偏色信息。虽然现在理想的白光源的 定义还没有在标准中得到肯定,但是通过对图片进行色温估计,成为白平衡算法 的一个不可缺少的步骤。 已经知道空间光源的色温,利用这个已知信息对颜色信息进行色偏校正将 会变得更容易。数码相机中就加入了基于这种假设的白平衡调整功能。用户可以 选择所在场景如日出,荧光灯等等,通过内建调整增益查询表来进行处理。本文 设计中也加入了这种处理方式。 2.1.2常见色温的RGB和YCrCb曲线 图2.2中可以看到随着色温的增高R分量的饱和值一直持续到6500K左右 然后逐渐下降。G分量在6500K时有个峰值。B分量由0随色温升高逐渐增大 到6500K时到达饱和值。在低色温(小于6500K时)主要是G和B分量的改变, 高色温时(大于6500K时)主要时R和G分量在改变。 图2.3中可以看出随色温的变化,蓝色色差(Cb)变化幅度比较小,在6500K 之后有少量的上扬。红色色差(Cb)在小于6500K的范围里随色温增大变化范 围在半个灰度级内。亮度的变化基本和在RGB空间中G分量的变化趋势相同。 第二章白平衡算法研究 蒜巡《蚺竹N●。 图2-2常见色温的RGB曲线 色温(k) 图2.3常见色温的YCrCb曲线 2.2算法理论基础 [21】彳艮多白平衡算法都是建立在Yon I|(Iies假设的基础上改进得到。这种假设 表明色彩调整是一种独立的增益调整,这种增益调整对于三种锥体信号用的三个 不同的增益系数,而而且每一个传感器通道都是独立传输的。增益调整系数表示 如F: 厶:吒工 M。=kMM 疋=屯s (2‘2) 其中L、M、s代表三色的原始初值,屯、k、t是增益系数,t、尥、 &是调整后的灰度值。调整模型因部分系数获得方法不同。这些模型中RGB通 道通常被认为是L、M、S视网膜的一种近似,所以公式变为: Ro=kRR q=kG Bd=kBB (2—3) 后面算法中基于RGB空间的调整都是以这个公式为基础,用算法生成k、 k、%。 2.3灰色世界法 第二章白平衡算法研究 灰色世界算法基于这样一种假设,给出一幅带有足够色彩变化的图像,这幅 场景的平均反射能抵消色差。灰色世界法是最老、最简单的方法之一,并且至今 仍然流行。‘53 2.3.1算法原理及其仿真 对一幅足够色彩变化的图像的三个通道求均值,所求得的平均值为一个灰 度值。即R--G=B。三个通道增益可以由下式求出。所有计算全部在一个空间 完成,易于指导硬件设计。对于一个NxM的图像,算法的计算步骤如下: 一、图像均值统计 Ⅳ∑瑚 R盯矿 = M∑芦 乃 断y = Ⅳ∑阔 Ⅳ∑纠 G Ⅳ∑瑚 B盯矿 lI 肼∑爿 乃 (2—5) 二、RGB通道增益计算:式子中Ray,Gay,Bay为图像统计均值 Gain尼雕---max(Rav,Gav,Bay)/Ray GainG,,,=max(Ray,Gav,召av)/Gav (2—6) GainB胛=max(Ray,Gay,召洲)/曰洲 三、处理:式子中R’,G’,B’为处理后的新像素值 F=j舻【2渤55‰一_R尺宰木Ga鳓‰‰>2<52555 企,f G宰Gainc删一G宰Gain铆<255 【 255一G拳G口加鲫>255 . ∥:』伊黝‰一舻筋‰<255 (2—7) 【 255一B木Gain,细>255 仿真 第二章白平衡算法研究 图2-5灰色世界处理 第二章白平衡算法研究 图2—5中是对单色进行拍照.本来的红色被校正成了白色。图像校正失真。 一一 单色物体拍照失真 理想反射境法处理之后图像 掣一盘雪亟 像I■●L—r▲-_一 圈2—7理想反射镜法处理 图2-6中有大量的纯色物体存在如人的裙子。结果导致背景校正过白。图2—7 所示,理想反射镜法的校正比较适中,背景上白色的文字基本能显现出本来白色。 2.3.3失效解决方法研究 可以引入局部检测机制,将颜色不丰富的区域从图像统计中略去,选择留 下的颜色丰富的区域用灰色世界法赴理得到增益。实际证明这种方法是可行有效 的。但是在判别每个区域变化是否丰富的时候要用到方差的计算。这个运算在 FPGA硬件设计的时候需要耗费大量的资源。 2.4理想反射镜法 第二章白平衡算法研究 理想反射镜算法基于这样一种假设,一幅图像中最亮的像素相当于物体有光 泽或镜面上的点,它传达了很多关于场景照明条件的信息。镜面或有光泽的平面 反射了光源的真实颜色,因为它们的反射比函数在很大的波长范围内是常数。细 想反射镜算法用这种特性来进行图像调整。它定位最亮的像素并且将它作为参考 白点。n13 2.4.1算法原理及其仿真 对一幅没有强光的点的图像进行最值统计,按照理想反射境法的假设此点 可以认为是原图像中的白点在环境色温下偏色以后的点。我们把对这个点的纠正 后的系数作为整个白平衡增益处理的系数。对于一幅NxM的图像。 一、图像最值统计: Rmax=maX(吩)(f=1..N,j=I..M) Gmax=ma)((q)(i_1。N,_,=1..M) Bmax=max(Bo)(i=1.Ⅳ,J=1..M) (2-8) 二、RGB通道增益计算: GainR雠=max(R max,G max,B max)/R max GainG麟=max(R max,G max,B max)/G max Gain口础=max(R max,G max,B max)/B max (2.9) 三、处理 砧=r嚣裟慧255 门, G木Gaina蛳一G木Gainorm<255 ‰21 255专G幸G口%眦>255 %=r象霞焉255 (2一lO) 四、仿真: 《镕目* 第二章白平衡算法研究 gm&###na2目目* 田2-10灰色世界法校正 第二章白平衡算法研究 经试验发现如果图像中有个很亮的光点的时候t理想反射镜方法将会失效。 由计算公式我也可知上述条件成立的时候三个通道计算出的增益永远是i。但是 这种场台下灰色世界法还是有报好效果的所以我们在这种时候可以尝试转为用 灰色世界法。 2.4.3失效解决方法讨论 理想反射镜法失效是由于图像中亮点造成的,如果我们能虑除这些过亮的 点所在的区域就能达到比较好的处理效果。采用局部白平衡处理,将图像分块, 统计每块区域的最值,舍去出现亮点的块,留下的块进行理想反射镜法韵统计。 或者该用灰色世界法来处理。 原始图像理想反射镜修正i去盘拥!之后图像 镒氮 图2-11理想反射镜修正算法校正仿真 2.5基于人脸识别的局部白平衡算法 传统的白平衡算法中,在光源环境中预先对一张基准白板进行拍摄,然后 根据预置白板像素均值满足胄=6=口的关系,对图像的三个通道求增益。这种 方法的意义在于提供了一些已知信息,使得白平衡调整跟加准确。上面介绍的灰 色世界和理想反射境法虽然没有提供一个标准白板,但是都在一定的假设下来分 析的,也可以将这种假设看成是一种已知信息的提供。本节介绍的基于人脸肤色 识别的白平衡算法也是采用同样的道理.引八人脸颜色这个已知信息.对自平衡 进行校正。“” 第二章白平衡算法研究 2.5.1人脸识别算法原理简介 自动白平衡需要知道参照物的真实色彩,参照物的真实色彩就是先验知识。 在非工业摄像中,所拍摄的图像最多的就是人脸的图像,所以将图像处理的人脸 识别方法,然后以人脸的肤色作为白平衡的参考依据。 通过大量的图样的测试,人脸的肤色在YUV定义的色彩空间中合适的范围 是:RCr=[133 173],RCb=[77 127]。以次为依据,我们只要找到图像中人脸的 区域,判断其统计平均值是否在RCr,ROb的范围内,并根据其偏差进行自动白 平衡处理。 输入图像 取出亮度分量, 构成灰度图 经各种算法提取 人脸区域 从彩图中读取 人脸区域数据 计算Cr,Cb统计平均 值,用和标准Cr,Cb范 围比较结果调整R,B 调整好增益的 各色彩通道 经白平衡处理 后的图像 图2一12人脸局部白平衡算法流程 试验证明:虽然不同人的皮肤的颜色可能相差很大,但是它们在色度上的差 异远小于亮度上的差异,也就是说不同人的肤色在色度上往往很接近,只是在亮 度上差异较大。我们可以通过以上原理将照片中的皮肤区域分割出来。这些区域 包括皮肤区域以及与皮肤颜色相接近的背景区域。对人脸区域来说,由于存在眼 睛、嘴巴、眉毛等非肤色区域,因此在人脸区域中会存在一个或多个“孔’’即非 肤色区域。首先检测出有孔的区域,这些孔所在的那个连通的区域可以判别为人 脸区域。我们已知信息的提取便在这个区域中进行。 2.5.2算法评价 平时的民用拍摄中,能充分利用人脸这个已知的信息是非常好的想法。通 第二章自平衡算法研究 过图像分割可以将用来估算增益的数据放在人脸这个小区域内,这样也减少了数 据量。此算法是建立在图像识别的基础上,其算法的主要计算量也主要集中在这 里。人脸的识别正确率决定了算法的可靠性,可靠度高的算法必然在算法的复杂 度和计算量上面都会增加。因此在针对特殊的图像处理应用的时候我们可以用此 算法,在通用的场合硬件实现这个算法有很大的困难。我们可以继续沿着这个算 法的出发点,寻找在身边经常出现容易识别的物体作为白平衡算法的依据。 2.6模糊规则法 峨 2.6.1算法实验 L Cr 低色温轴\ 1一 ● I \:。 -投蹭 \ 帆★ j 南; L 、1 ¨ ★ 绿咨、 高色温轴 滋 图2—13不同颜色点色偏 在模糊规则法中,图像在YCbCr的色彩空间中进行分析。图2.13示出了各 种颜色在不同光源照射下从它们本来颜色位置偏离的情况。通过试验可以发现明 亮的颜色比暗色偏离严重,白色物体Cr与Cb的比率在.1.5到.0.5之间。许多种模 糊规则都是基于上面讨论的特性建立起来的。啪1 2.6.2算法实现基本步骤 此算法是将图像分成8个块,常用的分块方法如下图所示。计算每个快的所 有像素Cr和Cb成分的平均值,然后再根据模糊控制法得到每个块的加权值系数, 最后用这些加权系数和每个块的两个色差信号的平均值来计算整个图像画面己 第二章白平衡算法研究 和互的评估值。己和己代表图像色彩相对于白平衡点的偏离。这些值被用来获 得每个像素Cr和西的增益。计算调整过的Cb和Cr的平均值。如果结果不能 接近于白平衡点,反复进行此项操作。 4 3 3 2 4 2 5 ● 6 l 5 l 8 7 6 7 8 图2-14常用分块方法 加权系数是通过模糊规则给出的。具体规则如下: l、亮度高的点的颜色分量容易饱和,亮度低的点的颜色分量不丰富。因此 如果块的亮度很高或者很低,其色度分量的加权值比较小,亮度适中的的块加权 值定的大; 2、颜色深的色度分量受光源影响较小,颜色浅的容易受光源影响,所以浅 颜色的块色度分量的加权值比较大,深的色块分量加权值比较小; 3、如果相邻的几个块的颜色内容比较接近,则该块的色度分量加权值比较 小,如果同临近的块的内容差异较大,则加权值取的大些。㈣ 处理后的结果如下图所示: JL Q \ \?L J ~Q \ \? ● ●● ●● L 原始色点分布 自平衡调整后 色点分布 图2一15模糊规则校正后结果 2.7动态白点检测法 第二章白平衡算法研究 这个方法是基于理想反射境算法,提出的一种能动态的寻找图像中白点的 方法。这些偏色过的白点具有白点的性质使我们能将之分辨出来。假设由这些点 构成了传统白平衡算法中的基准白扳,以这些点为基础进行白平衡通道增益估 计。 算法首先是将图像分割为12个块,这样是为了避免背景中有大的纯色块。 计算每个区的色度信号的均值胁k耐,Mrbn,a和方差D^州t D‘M。如果一个 区域的Db和Dr很小,则放弃这个块。虽后整副图像的均值Mb,Mr和方差Db, Dr由剩下的块取平均得到。 接下来要从图像中筛选出一些符合条件的像素值做候补白点。条件如下:“。 lcAi,J)一(^毛+D6 xsign(M。))l<1.5×巩 fc,(LJ)-0 5xM,十口xsign(M,)Ⅻ<1.5xD, (2.11) 然后基于亮度由大到小排序,从候补白点中取出前10%的白点做参考白点。 信道的增益由这些参考白点确定。对这些参考白点求均值。为了让整个图像亮度 保持在同一水平,采用最大的亮度值做增益计算。增益系数求解公式如下: ‰=k/k,%=乙/‰,‰=y憾/‰(2—12) 式中Ravew,Gavew和Bavew是三条信道参考白点的平均值。Ymax是图像像 素亮度的最大值。 原始图像动态白点侦蒯算法处理之后母像 圈鲺 图2一16动态自点侦测法仿真 2.8白色区域模型法 第二章白平衡算法研究 自动白平衡一般具有三个基本操作,(1)色温估计,通过手工调节(取~ 个基准白的物体作为参考)或者算法统计的方法,估计拍摄环境的色温特征即平 均色差;(2)增益计算,用算法中指定的步骤,计算出三个颜色通道的调整增益; (3)色温校正,在三个通道上乘上对应的校正因子,达到自动白平衡的效果。 Nakano等人提出了一种基于Y,Cb,Cr的约束条件,在YCbCr空间定义了 一个三维结构,将落在这个区域内的像素认为是白色的,而其外面的像素认为是 非白色的。进行计算色差步骤时,只需计算白色像素的平均色差,以取代整个图 像的色差,从而能提高色温估计的准确度。【1】 Nakano等提出的色温估计算法的约束条件是: 』一口:旅口 I邓<Cr<∥ .(2.13) 用算法来确定式子中的亮度阈值z和色度阈值口,∥。这个约束的物理含 义为:在Y足够大,Cr和Cb足够小的空间里定义一个区域,并将该区域中的 所有像素看成是白色的,可以参与色差的计算。上述的白色区域类似一个立方体, 在每个Y平面上,白色的像素都位于一个大小不同CbCr矩形中。 Cb和Cr之间有一定的相关性,Lee等人在上式的基础上,增肌了一个约束 条件:一Y<∞+Cr<y这样CbCr平面从矩形变成了六边形,使得参与计算的像 素更具有白色特征。 U Y 、 JI .岭翻‘ 心7 -\ 图2-17算法约束条件改进后的控制区域 Y和Cb,Cr之间也具有一定的相关性。Y较小时,Cb,Cr较小的像素表现 为接近白色的灰度值;而在Y较大时,Cb,Cr较大的像素可以认为是白色物体 第二章白平衡算法研究 受到光源污染得到的。因此对上面两个式子的约束条件改进后得到 y—lC6I-lDI>伊。图2—17所示为该改进后约束条件的控制区域,这个区域是一 个上粗下细的柱状体,并且,每个CbCr平面是个菱形,当Y较小的时候,CrCb 控制的紧,从而只有少量的像素参与计算,而Y增大的时,CbCr范围相应放大, 有很多像素可以参与计算。 2.9基于数字IC设计的灰色世界理想反射镜互补算法 本设计主要是CMOS图像传感器的图像预处理的一部分部分,设计要求是 希望对输入的像素数据流做到实时的处理,而且电路的规模不宜做的很大,但又 要保证效果不能很差。将来的应用既能满足静态的图像采集,又能满足实时的视 频采集。 摄 图2-18算法适用范围 上面描述的各种算法,通过仿真比较发现,复杂的算法和它的改进本要求 计算很精确,效果对比灰度世界和理想反射境的方法也仅仅是对图像校正的程度 做了微小的提升或者在特殊情况下有较好的处理效果。在数字处理电路的实现上 复杂的算法都需要存储一帧的图像来进行分区域的估计和处理,这样读写存储器 时间的花费硬件资源都是相当大的。灰度世界和理想反射境的方法虽然没有后面 几种方法效果好但基本能满足白平衡的校正。如图2一18所示这两种方发基于不 同的假设,对于一种方法失效的或者处理不好的场合可以进行互补。在资源方面 也不需要存储器来存储一帧的图像,只要通过一帧图像的估计,在下帧图像到来 的时候就能进行调整。所以本设计将两种方法结合起来提出如下算法: 第二章自平衡算法研究 2.9.1算法原理 算法原理 第一步:求RGB-_三个分量的均值Ray,Gav,Bav,利用“灰度世界假设”得到三 个调整系数,心一gain,G二一gain,%一gain。 %一gain=max(Ray,Gav,Bav)/Rav 瓯gain=max(Ray,Gav,Bav)/Gav B科一ga/n=max(Rav,Gay,BQ、A|BGⅣ (2.14) 第二步:求RGB三个分量的最大值Rmax,Gmax,Bmax,并判断理想反射镜法是 否失效。如果没有失效则利用“理想反射镜假设”得到三个增益调整系数 k一弘觑,G僦一gain,‰一gain。 k—gain=max(Rmax,Gmax,Bmax)/Rmax G傩一gain=max(Rmax,Gmax,Bmax)/Gmax Bma,,一gain=max(R max,G max,B max)/B max 第三步:通道总增益计算: (2.15) gamR=去气一ga/n+击墨。。一gam Z 上 gatnG:昙吒一gain+姜Go一蜀潮 三 Z 鲫暑t寺瓦一嘞+专屯一gam Z 五 gainR=≈一弘胁 gainG=G0一gain gctinB=%一gam 图2—19系数生成选择 如果失效了则只用灰色世界法进行处理。 第四步:增益校正 ‰={氏乏警冀急篡篓孑55 第二章白平衡算法研究 . f瓯“gainG_+瓯xgainG<255 。删I 255_吒。galnG≥255 。 』乩xgainB_凡xgainB<255 “…21 255--+B。。∞神≥255 (2—16> 原始幽像 灰色世界理想反射镜结合算法处理处理 原始图像 灰色世界理想反射镜结合算法处理处理 图2—20灰色世界理想反射镜结合算法仿真 算法中理想反射镜法失效的几率相对于灰色世界法来说比较多,因为实际 拍摄中过亮的光点出现的几率很大,如上文理想反射境算法失效介绍时例子所 示。相比太多数场合灰色世界法失效几率较小。所以算法中针对理想反射境失效 的场台就设计为只用灰色世界法来计算增益。 第二章白平衡算法研究 2.9.2算法客观评估分析 为了验证算法的有效性,除了主观评价外(仿真看处理结果的主观感受) 还可以采用客观评价的原则。客观评价原则有很多,因为本算法是在RGB空间 处理,所以我们采用计算偏色图像、校正后图像和正常图像之间的欧式距离来衡 量校正的程度。 在此选择归一化颜色空间[r,朗,首先按照2-17和2一18式将图像从[R,13IB】 空间转换到归一化[r’朗空间。【22】 ,.: 墨 尺+G+占 ,g‘:.y』==一一一 6 R+G+曰 、 . 利用这两个图像通道的像素灰度平均值来计算图像间的欧式距离: (L2一-l1,7)J (I、2‘Z.- 18) D1,2=、/(亏一是)2+(营。一季2)2 (2一19) 测试的图像为在不同的色温环境中拍摄同一景物。得到8张偏色图像,依 次对偏色图像进行校正。计算偏色图像,校正后图像和正常图像之间的欧式距离 如图2—2l所示’。横轴表示图像序号,纵轴表示图像间的距离。通过对比两组点 可以看出,校正后的图像与正常图像的欧式距离与校正前相比明显缩小。算法普 遍有效。校正后图像的效果与正常图像效果基本一致。 崔 悟 宅 窿 毯 盔 图2.2l校正效果图像距离评价 第三章自平衡数字处理电路设计 第三章白平衡数字处理电路设计 3.1设计流程 图3-1设计流程图 本文的算法模块按照上图的流程进行设计。每一个阶段完成经过验证达到 设计目标后才继续向下进行。 自项向下的设计方法是从系统级开始,把系统按功能分为若干个基本独立 第三章白平衡数字处理电路设计 的单元。然后再将每个基本单元划分为下一层次的基本单元,一直这样细分下去。 这样做的好处是如果是一个团队开发的话,可是并行设计每个模块的实现,所设 计的模块可以重用避免了重复设计,在对模块算法改进时候也很方便做局部的功 能验证。n7’ 本设计遵循自顶向下的设计方法。总体功能定义后将按算法计算顺序其分 解为下层的子算法模块。每个模块独立完成算法中的某项特殊的运算机能。并且 在设计的同时为各个模块编写了测试代码,当算法改进的时候可以用相同的测试 文件进行验证和仿真。EDA工具提供了有效的手段来管理错综复杂的层次,可以 方便的查看某一层次某模块的源代码或电路可以改正仿真时候发现的错误。 3.2模块功能描述及子模块功能划分 本设计中采用灰色世界和理想反射境修正算法。项层模块描述的功能可以 简单描述为:按照选择的白平衡工作模式对输入的RGB信号进行处理,输出为处 理后的RGB信号,以及行有效和帧有效信号。项层模块中包含了四个子模块分别 为工作模式选择模块、图像统计模块、增益计算模块、数据处理模块。每个模块 的功能定义如下。 工作模式选择模块:根据输入的工作模式选择信号确定白平衡处理的工作 方式为自动白平衡还是用内建查询表的己知环境色温的调整模式。在自动白平衡 方式中,需要启动图像统计模块和增益计算模块,并加入隔帧统计计算增益功能。 其他的模式中直接向数据处理模块传递已有的增益值便可。 图像统计模块:在一帧图像的时间内,统计出这一帧图像RGB三个色彩分 量的均值和最值。 增益计算模块:利用统计模块统计结果,按照算法进行求增益计算,输出 增益值到工作模式选择模块。 数据处理模块:从工作模式选择模块得到调整增益值,对数据进行增益处 理输出处理后的数据。处理过程需要几个时钟周期的时延,所以最后需要调整行 场有效信号使其保真和输出的数据同步。 图3-2表示了模块间主要的控制信号或者数据的传递情况。工作模式选择 模块可以启动图像统计模块。在设计自动白平衡模式时,由于一般的应用场合短 时间内可以假设色温的变化不明显,所以我们如果对每一帧图像都进行统计增益 计算会大大增大功耗的开销。所以在自动白平衡时我们采用隔帧统计的方法来计 算白平衡增益。这样在人眼不能察的帧数范围内我们可以设定一个帧计数值,这 样既不会影响视频的观赏又能定时的去检测色温环境的变化。工作模式模块负责 第三章白平衡数字处理电路设计 增益数据的收集和发送工作。在自动白平衡模式下它能自动的从增益计算模块获 得白平衡增益计算值,并将其传递给数据计算模块。数据计算模块主要是用增益 值对输入的像素数据进行乘法处理,要求是处理后的像素仍然要一个时钟周期输 出一个,这就限定了我们的处理时间,即一个时钟周期内处理完一个像素。 3.3模块接口设计 圈3-2模块问数据传递 Quarmsll的模块图形化功能很好的表示了模块的接口和模块参数。以下的 模块接口控制信号说明选用Quartusll此项功能生成的图例进行说明。 3.3.1顶层模块接口 ·R m、GiⅡ、Bin为传感器传递过来 的宽度都为8位的像素数据。 ●mode sel为白平衡工作模式选择信号。 ●base elk为基本的像素时钟。 ●h clk、v elk分别为行和帧有效信号。 ●reset复位信号。 ●R out、G out、B out为白平衡处理后 的像素数据输出。 ●new hclk、ilew veil<为为了和像素输出 同步而调整过的行和帧有效信号。 匿盈 黑需同需 藤需二积 匡二盈 第三章自平衡数字处理电路设计 3.3.2工作模式选择模块接口 ●R_auto gam,G—auto—磐i丑’B_auto_ gain:增益计算模块传递过来的计 算结果。 ●awb rcady:增益计算模块传递过 来的结果已经准备好标志。 ·awb on:图像统计模块的开肩信号 ●R gain_out,G-gain out.B gain_ou t向后端数据处理模块传递的增益 数据。 ●r∞dy:模式选择模块产生的增益已 经准备好标志。传递给数据处理模 块,数据处理模块检测该信息后读 取增益数据。 一凰 霪 3.3.3统计模块接口 ●awb stait:统计模块控制开端脉冲 由工作模式选择模块产生。 ●stat ready:统计模块统计结果准各 好标志。 ●R val ou4G val out,B val out:统 计均值数据输出。 ●R max_out G_max_out,B_max_out: 统计最值数据输出 酉藿l 鍪蘸}二钢 3.3.4增益计算模块接口 o snLr曲dy:统计结果准备好标志。 ●R』ain_。ukG-g出010嵋B—辨抽一out:增益计算模块的结果输出给工作模式 选择模块。 ●awb_r蛆dy:计算结果已经准备好标志。 第三章自平衡数字处理电路设计 邕匿釜盈捌 匿蘸萎獬弱 3.3.5数据处理模块接口 o gain ready:增益准备好标志。 ::●R—gain in,G gain—in.B-gain in: 增益值。 ●R—awb—OUt,G awb—out,B_awb—out: 计算好的像素三通道数据输出。 ●n删一hclk:同步调整后的行有效信 号。 ·new_vclk:同步调整后的帧有效信 号 3.3.6模块接口连接 [二]匿=二工固 篆露 L&■&£!』上叫 直ii芷—五—互自二二Ⅱ剜] 基耀嚣萼lf 冀霎i j强 j笋’ 薹f l 1’一 l _ Il:I 黪誉} 三兰■制iii,u‘‘÷二·■卜+÷蔓: 第三章白平衡数字处理电路设计 图中只是给出了控制信号和计算结果数据信号的连接。这些信号负责了四 个模块之间信息的交互。设计中每个计算结果的输出都会配一个与之相应的 ready信号,便于信息传递的目的模块能够随时检测并收集数据。 3.4工作模式选择模块设计 工作模式选择模块主要完成的是白平衡工作模式的选择。设计中将工作模 式分为了两大类,分别是自动白平衡和选择色温环境的白平衡。外部通过设置端 口mode sel的值来提供选择的模式。设计的构想是外部有锁存器可以锁存用户 传递来的工作方式选择信息。在用户没有重新选择的情况下,此锁存器一直保持 原有的信息。 整个模式选择的过程用一个状态机来描述。不同的模式做相应的处理,然 后产生相应的处理结束标志信号便于后续模块检测。 图3-3工作模式选择模块的状态转移图 3.4.1自选择色温环境的白平衡工作模式 不同的色温环境对应的不用色温值,实际中每种环境的色温值应该是一个 变化的范围。文中所取得色温值是通过试验确定的在相应色温环境变化区间内有 代表性的色温值,来代表整个区间。这种校正中人对空间色温的主观判定正确与 否会影响处理的效果。所以选择这种处理方式一般是环境色温表征非常明显时使 用。其处理效果和自动白平衡相比还是有一定差距。毕竟自动白平衡处理是源于 第三章自平衡数字处理电路设计 图像本身的信息。而这种处理决定于内建参数和人的主观判断。色温通过换算可 以用RGB的值来表示。假设为白板在色温环境中偏色成为色温对应的ROB值。 用此RGB值来计算色温环境增益。 信道增益: gain—R=max(R,G,8)/R gain—G=max(R,G,B)/G gain—B=max(R,G,S)/召 (3—1) 设计中采用的7种可选的色温环境。它们分别如下表所示。1/256的增益精 度通过对像素的求乘积能精确到一个灰度级,因此在硬件设计中我们将参数都放 大了256倍。在后续的处理中我们都是将计算的增益扩大256倍来保证计算的精 度。在Vedlog描述时定义的宽度为16位。 表3-1 mode——sel 工作模式 色温(K) R通道增益 G通道增益 B通道增益 0 无增益 6500 256 256 256 1 日出日落 2800 256 377 695 2 钨丝灯 3200 256 349 544 3 中午日光 5200 256 278 297 4 闪光灯 6000 256 267 273 5 多云 6000 256 267 273 6 荧光灯 7000 267 278 256 日出或日落的色温环境将天空染成了偏红的颜色,我们想从这样的色温环 境中重现蓝天原来的颜色,选则模式1处理结果如图3—4所示。天空的颜色基本 恢复到原本的天蓝色。更注重重现本来颜色时可以选择白平衡处理。如果希望照 片被色温影响保留可以选择模式0。 图3-5是在钨丝灯环境中拍摄的照片。选择色温环境mode—sel为2。经过 白平衡处理后,白色的小熊基本能呈现原本的颜色。 选择色温环境白平衡的工作过程如图3-3所示。在IDLE状态里检测一帧的 结束后跳到转状态SELECT。此状态下对输入的mode_sel信号进行扫描,如果 mode—sel设置为O一6中的某值,则是选择了定义好的一种色温环境。SELECT状 态里会自动把已经存储好的增益信息赋值给增益输出输出,然后等下个时钟到来 的时候跳转到自选色温白平衡标志产生(MoDEO一6READY)状态。标志状态持续 一个时钟周期后返回IDLE状态。IDLE状态检测帧结束,相当于等待下一帧的到 来。这样设计是为了在一个帧时间内检测一次模式选择,即使用户选择在帧时间 第三章白平衡数字处理电路设计 内发生改变也会在下一帧开始的时候被检测到。 自选色温调整MATLAB仿真: 日出镬或日落m睫 圈3—4日出日落自选色温白甲衡仿真 原始图像钨丝灯她堑 .一叠 翊 圈3-5钨丝灯环境自选色温仿真 3.4.2自动白平衡工作模式 自动白平衡方式是通过图像的信息让设备根据算法自动确定颜色道增益的 工作方式。工作模式选择模块设计要求为:检测到用户选择此工作模式 (mode—sel=7)的信息后.产生启动算法模块的信号。并等待算法模块计算结果 有效信号。如果用户一直是工作在自动模式下,工作模式选择模块设计为隔N帧 开启一次统计模块。N帧的问隔内的增益输出保持N=0时的白平衡计算值。如 果在N帧的间隔内用户选择的工作方式发生了改变,帧计数器将会清零。这样设 计节省了器件的整体功耗。 自动白平衡模式工作过程如上图状态机所示:IDLE状态在检测到一帧图像 结束的时候跳到转状态SELECT。此处选择model—sel为7即自动白平衡模式。 在SELECT状态中,丘加】e count=0表示是首次检测到开启自动白平衡,相 。此状态中检测白平衡计算是否完毕信号。上_culate 第三章白平衡数字处理电路设计 应跳转到AWB gain 述两个状态里将产生一个周期的白平衡计算启动信号,其目的是启动图像统计模 块。白平衡计算完毕信息会在一帧图像的最后一行内产生。为了满足图像的实时 处理,将计算放到一帧时间里。设计时将最后一行的640个时钟周期全部用来做 增益计算。得到白平衡计算后的信息后(awb ready=1)跳转到MODE0--7READY 产生一个增益准备好标志信号。状态最后转回初始状态。 在SELECT状态中,0<flame count<=N则希望做的处理是关闭统计模块和 增益计算模块,让工作方式模块的输出保持原来自动白平衡的值。状态机中将跳 转到AWB keep状态。此状态中将保持原来增益到输出,并于下个时钟周期跳转 到MODE0--7READY状态,产生增益信号准备好标志。最后回到初始状态,等 待下一帧图像。丘础cotmt=N时则自彻1e CoLInt清零。 3.5图像统计模块设计 3.5.1统计区域规划 统计模块任务是当计算一帧图像的平均值和最值。为了在一帧的时问里能 完成统计和增益计算,我们对统计的区域做了一些规划。 图3 6统计区域规划 3.5.2连续累计求均值算法 统计依据的公式为:NXM个像素的图像 孟=志莩款 (3.2) 第三章白平衡数字处理电路设计 如果原封不动的按照这个公式计算,会给硬件设计带来很大的开销。首先 需要一个位数容量为NxMx256的累加器满足求和。然后就是一个NxMx256 位除以NxM位的除法器来求平均值。换一种思路来计算均值就可以降低这个开 销。先将第一个像素值存起来,第二个像素到了就算一次均值,以后每进~个像 素就与前一次算出的均值求和再求均值,循环下去直到最后一个像素。这样设计 就需要一个9位的加法器和一次移位操作便能算出最后的均值。 算法公式描述如下: Rm弑=冠,置初始值 Rmid,=(R mi4+R.,)/2 …-… R=(RmidⅣ。盯一I+凡.肘)/2 (3.3) 3.5.3统计模块状态机 图3.7统计模块计算流程图 ● 第三章白平衡数字处理电路设计 统计模块的状态机设计反映了模块的的工作步骤。总体复位后状态指向 IDLE。这个状态里检测awb—start信号,此信号又模式选择模块产生。当检测为 1时表示状态机开启,状态跳转到STAT状态。这个状态里进行均值和最值的计 算。在状态机外设计一个行列计数器,当行值和列值落在统计区域规划的统计区 域内的时候开始统计。统计的算法流程如图3—7所示: 图3.8统计模块状态机 3.6自动白平衡增益模块设计 自动白平衡模块完成增益计算的任务。用从统计模块得到统计的最值和均 值计算出信道的增益。通过计算公式可知需要进行6次除法和三次比较。比较器 消耗资源比较少可以设计时可以实例化三个比较器并行比较。除法器比较占资 源,所以设计中将6次除法分时计算,只实例化一个除法器便可完成。6次计算 完毕后便可输出增益结果。 3.6.1除法器设计 两个无符号的二进制数相除的时序乘法器的基本设计思想是,从被除数中 重复地减去除数,直到检测到余数小于除数。通过累计减法运算的次数得到商值。 余数的最终值是减法运算序列结束时被除数中的剩余值。n5, 考虑到精度的要求除法器设计成16位除8位的。白平衡增益计算模块中, 将统计的均值和最值比较结果中的最大值放大256倍做为被除数。这样可以精确 到小数点后三位即1/256。 这样设计除法器将商值和余数值都放到的上面25位的移位寄存器中。低16 位初始时存被除数。16到23位初始时为零。24位是为了在做移位减法时处理如 第三章自平衡数字处理电路设计 下情况使用。例,移位后上面寄存器值为i0000000除数位I 1000000时经过比 较后不能被减,但是移位后就可以减了如果不加第24位将会出现数据丢失,计 算结果不正确。 图3-9除法器寄存器安排 如上设计移位比较做减法的结构,使得商值的产生不用额外加寄存器和累 加器结构,只用通过判断移位置位几个操作便可以完成商的生成。 图3.10除法器算法流程图流程 第三章白平衡数字处理电路设计 本设计的除法流程如图3一10所示,当除法器开启信号到来的时候完成初始 的置位,将除数保存在寄存器2中,将被除数保存在寄存器1中。保存的方法如 图结构所示。 3.6.2工作状态机设计 图3-11增益计算模块状态转移图 模块复位后状态机进入了IDLE状态。在这个状态里等待前端统计模块的统 计结果计算完成信息即star—ready信号信息。star~ready为1时状态跳转到 MAXGet状态,这个状态任务是获得统计均值中和统计最值中最大值并存入寄存 器中。 均值最大值max(Ravl,Gavl,Bval) 最值最大值[]laX(Rmax,Gmax,Bmax) 这状态是时序除法器的计算结果。等待了数个_out 第三章白平衡数字处理电路设计 上面两个比较结果将做为后续除法的被除数使用。后续的连续6个状态完 成灰色世界法的三个增益的计算。以其中的一次计算为例子:Ravl/maxval状态 中将被除数和除数放到除法器的输入端,并产生一个除法器开启信号,之后转入 下一个状态GETRval 周期后,除法计算完毕,得到所要的结果,跳入到下一次计算中。循环三次得到 三个通道的增益值。 灰色世界法的最后一个增益计算完毕后,通过判断逻辑看看理想反射镜法 在这个图像中是否有效。如果有效white—lost=-O则,继续完成下面的三次理想 反射镜法增益计算。如果无效则跳转状态到总增益计算状态即sum状态。sum状 态中根据white—lost信号判断采用灰色世界还是灰色世界和理想反射镜相结合 的方法来计算总增益。sum状态结束后进入增益输出READY状态。READY状态产 生一个增益计算完毕信号便于模式选择模块做增益结果采集的检测。 设计的目的是为了指导ASIC的设计,所以数字计算都根据处理编写力求获 得最小的面积和最块的速度。如果在设计中加入可重用的专用计算模块,将所有 模块的计算工作做一个规划,也是个很好的选择。这里考虑到模块的独立性和重 用性,将其设计成一个完整的处理器。 3.7数据处理模块设计 前面的模块将白平衡的增益准备好了,这个模块就是将增益同输入的图像 相乘完成最后的处理工作。数据处理模块功能简单说就三个,增益采集、乘法计 算、结果分析。 增益采集是采集模式选择模块传递来的增益值。讲之放入乘法器里参与增 益计算。乘法器是对输入的像素值和增益进行乘法计算。设计需要一个像素时钟 周期内这个乘法运算就要完成。采用通常的并行乘法器结构虽然能在一个时钟周 期内完成计算,但关键路径的花费比较长,电路不适合于高频率的像素时钟计算, 这将大大影响硬件设计的通用性。结果分析主要是对乘法器输出结果进行溢出处 理。 3.7.1增益数据采集 检测到awb—ready信号,表示增益已经送出,将之采集进来后并不是立即 复制给乘法器让其参与图像处理。我们希望处理同一幅图像用的增益值是唯一 的,所以设计时要将其先存储下来,等到下一帧图像开始的时候才使用。所以如 图所示设计时当到达帧的末尾的时候也就是乘法器工作无效的时候,将增益寄存 第三章白平衡数字处理电路设计 器的值复制给计算寄存器。 A wb——roady l ● 输入增益 增益寄存器 Gain.。data——old —趣冬n叼州 、 计算寄存 酪gain—data_old 增益k存器Gain data new —、 一一 I 断算寄存器gain_data—new 图3.12增益暂存器工作示意图 3.7.2流水线乘法器设计 同步时序机的最短时钟周期是其性能的一个很重要的指标,它受到通过机 器组合逻辑的传播延时的限制。同步机的吞吐率就是数据输入机器和由机器产生 数据的速率。吞吐率最终受到以下几种具有最大传播时延的通路的限制。(1)初 始输入和一个寄存器的通路(2)一对寄存器间的通路,(3)由寄存器到初始输 出间的通路,(4)从一个初始输入到初始输出间的通路。没种情况下组合逻辑都 限制了机器的性能。 综合工具中的综合算法能将组合逻辑的一组二级布尔函数转换成为一组拥 有共享逻辑的多级布尔函数。所得到的电路没有冗余逻辑,并可利用无关状态来 达到输入/输出与最初二级等式的最小描述。这种过程所产生的逻辑是最小的, 因为它的输出函数可以尽可能多地共享那些共用内部布尔子表达式,但是它可能 没有采用更少逻辑级的等效实现速度快。一般来说,压缩逻辑级可以产生更快速 的电路,但并不总是能够产生更快的电路,因为很多输入的逻辑门是不大实际的。 作为一种提高电路性能的可选方法,可以将流水线型寄存器插入到组合逻 辑的关键位置上,将逻辑分割成具有更短路径的群组。流水线技术减少了组合逻 辑块中的级数,缩短了存储元件间的数据通道,并且因为能使用更快的时钟频率 而提高了电路的吞吐能力。n剐 流水线技术在高速,宽字数据传输处理中应用很多。例如,图3-13中的组 合逻辑块由流水线寄存器分割成了两个子块。假定通过原多级组合逻辑的最长路 径的时间长度为‰;其工作频率为厶=1/乙,如果将该逻辑块分为两个逻辑 块,每个都有最大的时间延迟时间长度‰/2则流水线可以工作在‘蛳=2L 第三章白平衡数字处理电路设计 的频率上。厶<1/k 图3-13流水线结构 本设计中通过分析常用的并行乘法器的多级组合逻辑结构,提出三级流水 线乘法器架构。三级主要是由三次并行加法构成,在每次做完加法后插入了流水 线寄存器。假设每一级的主延迟是加法延迟和移位延迟之和寄存器时延很小可以 忽略不计则有式子:‰=乃。+毛圻。如果采用并行乘法器则总延迟为3×乙。 下图设计结构中的延迟则保持为每级的k,这样以来电路的适用频率范围比并 行乘法器能扩大大约3倍。 t t ’ 图3.14流水线乘法器设计 第三章白平衡数字处理电路设计 流水线技术有成本前提的。流水线寄存器在ASIC的物理布图中需要很多面 积,还需要对时钟资源进行大量的布线工作。这对ASIC是一个问题,但对高端 的FPGA来说,由于其具有丰富的寄存器和布线资源,所以很容易实现流水线。 本设计中加入的流水线寄存器并不多,而且采用一个除法器分时工作,所以对与 ASIC设计也不会造成很大复杂度。 在分割电路成流水线结构时要注意一定要注意,分割后各群组问路径长度 分配要平衡。一般来说,各个级中最慢的组合逻辑级的延迟决定了流水线电路的 性能。本设计中结构对称,很容易满足每一级平均分配。 流水线技术可以缩短时钟的周期,并提高吞吐能力,但却产生了输出和输 入的延迟。流水线的每一级在得到电路的第一个输出之前都要加上一个周期的延 时。两级流水线中输入信号变化的效应要在两个时钟周期之后才在输出端呈现。 时延会随着流水线的增加而增加。时延不会引起电路功能的变化。当流水线充满 以后,其后的每个时钟周期都会产生一个输出。 3.7.3行帧有效信号同步 ● 前面进行增益计算时,由于采用了流水线乘法器设计,在得到第一个正确 的输出时有固定的周期时延,之后的计算结果会按照像素时钟连续输出。如果不 对行帧有效信号进行调整,输出的图像将会发生偏移。 帧同步 尺 ~L 行同步 人\~1 D ata i‘n l 烈V 4 5 D ata—.out II l l l 2I 3l 4l 5I… 调整后的帧 行同步 过 厂 ….…1 I 图3-15帧行同步设计示意图 处理时需要分析其有效数据输出的固定时延。将数据读入寄存器后然后经 过三个流水级,总共用了4个时钟周期的延迟。因此也需要将同步信号延迟4个 时钟周期。这样便能将有效的处理后数据信号包含在有效信号内。因为时钟延迟 不大,所以分别对两个同步信号用4个寄存器便可以实现。 reg hl,h2,h3,h4; 第三章自平衡数字处理电路设计 reg vl,v2,v3,v4; always@(j,osedge base_clk) begin if(resetl h4<=O; hl<=h clk; h2<=hl; h3<=h2; end h4<=h3; .44. 第四章自平衡模块仿真测试 第四章白平衡模块仿真测试 4.1仿真平台建立 仿真测试平台是为了向被测对象施加输入(激励)而建立出来的那一层代 码。验证平台向设计对象施加输入激励对其输出进行采样,并将其输出结果根正 确的结果相比较,我们称这样的平台为自核对测试平台。如果采样出来的输出与 期望的结果不一致,则此平台将生成错误报告。 为设计对象建立测试平台需要对对象模块的功能规范约束有透彻理解。以 下的各项技术可以用于建立测试平台: 1、采用硬件描述语言(HDL)建立测试平台; 2、采用编程语言接口(PLI)建立测试平台; 3、基于波形建立测试平台; ’4、基于设计规范建立测试平台。 采用硬件描述语言建立测试平台,对小型的设计对象有效。如果验证需求 不断增多,则会导致测试平台将变的复杂难以维护。 采用编程语言可以用来编写程序语言接口(PLI)式的测试平台,并可以将 其放入到硬件描述语言的仿真器中。编程语言方式定义出来的所有任务,可以由 硬件描述语言代码中的过程块加以调用。如果测试平台需要仿真更多复杂功能时 候可以采用这种技术。 基于波形建立测试平台。采用此项技术,就是根据设计要求去编辑信号波 形。利用将波形转换成内嵌由时许信息的激励工具来建立测试平台,在使用测试 平台去验证对象。 本设计属于小型的数字处理电路设计,其内部的电路块比较简单所以做局 部验证时采用的是基于硬件描述语言和波形验证的方法。设计初期定义好了每个 模块的输入激励,用硬件描述语言将其描述出来,在编写设计代码时用输入激励 对所设计模块的功能做验证。功能实现后,对模块进行综合和布局布线,这样时 序中加入了不少延迟信息。继续以此验证模块,对综合后加入延迟的设计器件网 表进行后期时序验证。最后做的是将自模块连接起来形成顶层模块,对其进行实 际的功能验证和综合布局布线后的时许仿真验证。 本设计中激励的生成采用硬件描述语言和MATLAB联合生成。硬件描述语 第四章白平衡模块仿真测试 言负责描述输入的复位,像素时钟,行场有效信号,或者做子模块测试的时候生 成测试数据,以及和测试数据相对应的数据有效标志信号。MATLAB矩阵处理 的优势能很方便的应用在图像处理中,而且其中提供了大量提供矩阵变化计算的 函数,使图像处理变的简洁明了。在输入像素数据时为了做算法对比,采用 MATLAB编程从已有的图像中提取数据,方便当图像的格式不满足设计时,还 可以用MATLAB工具中的尺寸缩放,将其转换为满足设计的格式。顶层模块测 试时可以将数据导入。对比算法结果和硬件处理结果。 图4-1 MATLAB和VerilogHDL混合测试平台 上图描述了测试本设计测试平台的基本框架。摄像头负责采集没有白平衡 加工的图像数据。MATLAB验证算法的数据可以和电路生成的数据做比对验证 仿真结果。 设计中仿真VerilogHDL仿真工具采用业界最流行的ModelSim。 第四章白平衡模块仿真测试 4.2白平衡各模块测试 4.2.1测试激励产生 本设计中所用到的激励为顶层模块的输入。三个数据通道的像素输入.行帧 有效同步信号还有主时钟。按照实际中的对三种信号的时序要求,通过硬件描述 语言将其描述出来。 一、像素数据生成 三个数据通道的像素输入,这里采用MATLAB和硬件描述语言相结合的方 法生成。可以将摄像头在任意色温环境中拍摄,获得待处理的图像。或者用已经 有的图像做待处理图像。通过MATLAB工具进行图像缩放,将任意大小的图变 成我们设计中所用的像素阵格式。 圉像缩放可以通过MATLAB工其中的插值函数来实现。插值是常用的数学 运算t通常是用曲线拟舍的方法,通过离散的采样点建立一个连续额函数来逼近 真实曲线,用这个重建的函数便可以求出任意位置的函数值。MATLAB图像处 理工具箱提供三种插值方法:最近邻域插值、取线性插值、双三次插值。其中最 近邻插值是最简单的插值,每一个差值的输出像素值是在输入图像中与其 最临近采样点的值。虽然这种方法运算量少,但是其频域特性不好,当图像含有 精细内容,也就是高频分量具多时,这种方法实现的图像放大则会在处理过的图 中看出块效应。㈣ 双线性插值法输出的像素值时它在输入图像中2×2邻域采样点的平均值, 它根据某像素周围4个像素的灰度值在水平和垂直两个方向上对其插值。 双三次插值法的插值函数为三次函数,插值邻域太小4×4效果好但是计算 量大。 奉设计中主要目的是用任意大小的图像都能很好的生成测试源文件。因此 设计MATLAB程序时,引入了如下可选框,根据设计需求可以作出不同选择选 择。 冒 一一圈囤圊 圜 胃 第四章白平衡模块仿真测试 启动程序后,选择要处理的图片,之后进入到这连续的四个选择框中,第 一个框是根据所要测试摄像头像素阵列格式来设定.生成符合测试要求太小的图 像。第二个选择是缩放图像所用的插值方法。第三个选择框是否存储处理后的图 像,存储后可以用MATLAB白平衡算法仿真程序对其处理,和后期的电路处理 结果做比对用。 圈乒2尺寸缩放仿真示意图 最后一个选择框设计的便是和Verih)gHDL语言的数据接[21。此处生成存储 RGB信息的文件。vcTilogHDL可以将其读入制作成激励源供仿真使用。 ●MATLAB中生成三个通道数据文件: write se2-=tnenu(’否存储处理后的图像?’,+存储RGB信息到文件’,’不存并关闭。); switch write_se2 casel fileR-=f:open(‘dataRAxt',‘w’; fileG--fopen('dataGtxt',。w‘); fileB=fopen(’dataB txr,’Ⅳ): fprintf(flleR,%x’,new_ira(:,:,1)), fplSntf(flleG,。%x’,new_ira(:,:,2”; fp—tntffflleB,’%x‘,new_ira(:,:.3)), felose('aU'); c8se 2 close all; end ●VedIogHDL中将文件中数据读出并存放在寄存器中: parameter im_1=640,im_w-=480; 第四章白平衡模块仿真测试 reg【7:0】im davids,[O:im l‘im_w-ll;//包J建存储型变量存像素数据 reg【7:0]im_dataG[O:im_l+im_w—l】; reg【7:0]im_dataB[0:im_l‘im_w-1]; initialbegin Sreadme.mh(”datal“xt",im dataP.); ¥readmemh(“dataGtxt'’,im dataG); Sleadmemh(”dataB txt",im_dataB); end ●檄励源产生: i坟”-clI产l&&h-clk一1)be百叫在像素有效区从存储器中读出像素数据 R-in2 im_dataR01_cnt+640-。‘p_cnt]; G—in2 im_dataG[h cnt*640+p_cnt]; Bjn2 im_dataB[h_cnt’“o印cnf】;end else begin R-in=O;G二in=0;13_in=O;end 托Ik_num;#每个时钟周期生成一个像素 图年3圈像数据产生测试数据仿真 二、行帧有效信号和基奉时钟信号产生 雷44帧有效信号生成流程圈 第四章白平衡模块仿真测试 图“是帧有效信号产生流程图。帧数据有效为高电平,消隐区为低电平。 图4{行有效信号生成流程圈 图4-5所示是行同步信号产生流程图。行有效时为高电平.消隐区为低电平。 设计时要求有两个消隐区。每一行结束的时候产生一个。当一帧图像结束的时候 产生一个。 仿真如下所示: 第四章白平衡模块仿真测试 4.2.2功能选择模块功能仿真 图4-6中所示为:模式选择为7时,启动自动白平衡在图像开始的时候检测 到这一选择,于是产生一个awb_on的白平衡启动信号。模块增益输出默认为1 放大256倍。由于白平衡增益在计算中所以R_auto_gain等输入到选择模块的增 益为无效值。 图牟7增益计算完毕 自平衡增益计算模块将增益计算好了,产生一个awb_ready信号通知选择 模块并向其输出增益。模式选择模块检测到后。随后向外输出检测到的白平衡增 益信号R.gain_out等,并产生标志信号坤ady。 图牟8隔帧启动白平衡 第四章白平衡模块仿真测试 仿真时设定如果选择模式一直为自动白平街,则每4(可以在人眼分辨的帧 数范围内改变)帧图像计算一次。中间4帧的图像址理所用增益以第一次计算的 为准。如图所示经过4帧图像后又产生了一个awb_on启动信号。中间几帧开始 的时候都会保留原来的结果井输出一个ready信号便于后面增益计算模块采集。 4.2.3图像统计模块功能仿真 图44图像统计开启 图像统计模块接收到白平衡开始信号awb stal"t后启动统计。统计需要两组 寄存器,分别是R_val_cIut,G_val out,B_val out均值统计寄存器组和 R max_ouLG_max_out.B_max_out。当像素计数值和帧内行计数值落在指定区域 内时这两个寄存器开始工作。 图4-10图像统计结束 按照事先的统计区域划分,统计结束于倒数第二行的时候统计结束,输出统 计结果和标志信号stat_ready。 第四章自平衡模块仿真测试 4.2.4自动白平衡增益计算模块仿真 图4-11除法器仿真 白平衡增益计算模块中使用的简化除法器,其工作时序如上图所示。设计中 需要采集的是商的信号,所以没有设计余数信号输出。在除法器在接收到开启信 号sⅫ后对除数和被除数进行采集,并于以后的几个时钟周期内开始除法计算。 计算完成后产生ready信号井继续保持结果数据输山。 圈4-12增益计算过程仿真 白平衡增益计算模块的总工作仿真。当接收到统计完成star_ready信号后, 将统计值存放到Rval,G_val,B_val,以及R_max,G max,B_max寄存器中,这组寄 存器开始作为存放统计值的寄存器,除法运算后存放相应颜色通道的商值。一组 合逻辑设计的三输入求最值比较器比较两组数据中的最值。在第二个时钟周期的 第四章白平衡模块仿真测试 时候将比较结果放大256倍存放到max_val和max_max中·作为以后的除法计 算被除数。如图在理想反射镜不失效的情况下计算增益需要连续做六次除法,最 后输出结果。divi inl和divi_in2分别为被除数和除数。 4.2.5数据处理模块仿真 图4-13流水线乘法器仿真 本设计采用流水线乘法器.曲信号开始时采集数据进行计算。开始计算有 四个时钟周期的固定时延。之后的结果是每个时钟哦周期出一个。 图4-14数据暂存器仿真 数据处理模块复位后采用增益为l括大256倍后对输入数据进行处理,当 接收到增益数据gain_ready有效的脉冲后,将增益预保存到增益缓存器TR.gain 第四章自平衡模块仿真测试 等中。如图所示等一帧图像结束的时候再将其赋值给增益计算寄存器RJgain等 图4-15数据计算模块仿真 图示了增益计算模块输出新的行帧同步信号和原信号的时延情况。h clk利 v_clk分别为原始行场同步信号,new_hclLnew_vclk为时延后的行场同步信号。 4.2.6顶层模块仿真 圈4-16顶层模块仿真 第四章白平衡模块仿真测试 模式选择为7时,启动白平衡统计模块,增益计算模块都能按照时序设计要 求定时启动和工作。 4.3白平衡各模块FPGA综合时序分析 4.3.1时序分析基础 小规模的FPGA设计中,验证环节通常只需要做动态的门级时序仿真,就 可同时完成逻辑功能验证和对时序的验证。随着FPGA设计规模和速度的不断提 高,要得到较高的测试覆盖率,就必须编写大量的测试向量,这使得完成一次门 级时序仿真的时间需要很长。为了提高验证效率,有必要将逻辑功能验证和时序 验证分开。分别采用不同的验证手段加以验证。首先电路逻辑功能的正确性可以 由RTL或门级功能仿真来保证;其次电路时序是否满足,则通过STA‘(静态时 序分析得到)。两种验证手段相辅相成,保证设计的正确性。 静态时序分析是相对于“动态时序仿真"而言的。由于动态时序仿真占用 的时间非常长,效率低下,因此STA成为常用分析,调试时序性能的方法和工具。 STA是一种穷尽分析方法,它按照同步电路设计的要求,根据电路网表的拓扑结 构,计算检查电路中每一个触发器建立时间和保持时间以及其他基于路径的时延 要求是否满足。STA作为FPGA设计的主要验证手段之一,不需要设计者编写测 试向量,验证时间大大缩短。唧 本设计采用用FPGA设计工具OuartuslI提供的综合工具和静态时序分析 工具进行综合和时序分析评估。设计中常用的时序概念主要有周期、最大时钟频 率、时钟建立时间、时钟输出延迟、管脚到管脚延迟、时钟偏斜等。本设计重点 讨论的是周期与最高频率。通过对每个模块的逻辑结构进行优化使其最高工作频 率得以提高。 电路的最小时钟周期计算公式如下: tctx 2fcD+tLOGIC+f船7.+白一‰一SKEW tcLx—SKEW 2乞1一乞2 图4-17时钟周期计算 公式中,‰是时钟的最小周期,fcD是寄存器固有的时钟输出延迟,tLoclc 第四章自平衡模块仿真测试 是同步元件之间的组合逻辑延迟,k是网络布线延迟,白是寄存器固有的时 钟建立时间,tcu。一滩矿是时钟偏斜。公式中最小时钟周期倒数就是最高频率。即: t=1/k。厶能综合体现设计的时序性能,是最重要的时序指标之一。在 QuartusII中TimingAnalyzer中用图形界面设计了丘。本设计中在满足功能正 确的前提下,使得电路的丘达到最大。D6] 4.3.2 FPGA时序分析结果 本设计选用了altera的CyclonelI系列的器件EP2C50F484C7为例进行设计。 观察子电路的工作最大频率是否满足设计需求,有没有提升的余地。本设计主要 针对30万像素的摄像头,拍摄的每帧图像有640X480个像素。像素的时钟为 20MHz。这个像素时钟也就是设计中的基本时钟。设计的数字电路希望不仅仅能 满足这个时钟,对于更高像素的图像即相应像素时钟更高的电路也能适合。 一、工作模式选择模块 Type Slack Worst.case tsu N/A Worst-case Ico N/A Worst-case th N/A Clock Setup:。base._clk‘ N/A TogaI number of failed paIhs R锄ed Actual ] Time Time j None 8.193 ns None 10.582 ns None None 0,146ns 317.26 MHz l period=3.152 ns】 二、图像统计模块 T鹏 SI∞k |Worst-cEise tsu N/A Worst·case lco N/A W研st·case Ih N,A Clock Setup:'base.clk‘ N/A Total number of failed paths 三、白平衡增益计算模块 Type Slack Worst·case【su N/A Worst-case Ico N/A Worst·case lh N/A Clock Setup:'base._clk‘ N/A Total number of failed paths Required Time None None None None Actual Time 8.851 ns 10.809 ns 0.269ns 170.59 MHz【period=5.862 rl¥J Required Tme None None None None Actual Time 7.999 ns 9.845ns 0.550 ns 200.04 MHz f period=4.999 ItS l 第四章白平衡模块仿真测试 四、数据处理模块 Type Slack Wotst·csse【su N,A Worst·case ICO N/A Worst-case tpd N,A Worst·case【h N/A Oock Setup:‘base rJk‘ N,A Totd number of failed DaIhs Requited Time None None None None None Actual Time 7.052 llS 14.832 135 13.975 ns 0.057ns 218.53MHzfperiodt4.576ns】 五、项层模块 Type Slack Worst-case Isu N/A Worst-ca88【co N/A WorsI·case tpd N,A W讲sI.ca88 th N/A Clock Setup:。base_clk。 N/A Total number 0f failed paths 只筑蒯 Twne None None None None None Actual Time 10.178 ns 15.143 ns 14.687 ns 0.280 ns 180.18MHz【periodt5.550nsl 综合布局布线后的结果各个模块的最高频率都满足设计要求。顶层模块为 所有模块的互联,其综合布局布线后的结果也远远超出设计要求。数据处理模块 采用了流水线乘法器,要比并行乘法器在最高频率上有很大的提升。不同的芯片 采用了不同的工艺,不同寄存器资源和逻辑资源,不同的走线资源,因此布局布 线之后的结果有所差别。这里的频率只是提供一个芯片实现的参考。ASIC设计 中走线方面可以很好的控制,从而可以更好的提高其工作频率。 4.4 FPGA资源占用情况 Faltity 金Cyclone TT:ZP2C50F484C? 乱·露舢 争.粤.wb—g如:讪-g 卜·芦岫一comp=re:毫gbl 卜簿丑gb—compl='e:毫曲2 乙…芦di,,-i16._8:diviI 亭…掣gsin....mod:Id:Cain...nu.1. 审…芦m以i6』:啊1llB 妒·秘mull6_8:md.6 自…辫腑n16J:船缸B 一一酗im&ge—sta.t:im‘..st L.鄹_叽e一5elect:m_se.1 Lo舒c Cells L1rr’Only比5 LUT/R=gi star LCs 1235(1) 356(237) 24倥4) 24倥4) T1 crl) 660(109) 184(11) 184(11) 184(11) 122 (122) 铝(96) 311(1) 10T“4) 24但4) 24眨4) t5(15) 1lT“) 38(11) 3.r(11) ∞01) ∞60) 36(36) 868(0) 249(193) 0(0) 0(0) 56 66) 488(49) 146∞) 147∞) 1蝣(0) T2 cr2) 59 69) 第四章白平衡模块仿真测试 设计总共用了1235个逻辑器件。各个模块所用的逻辑器件的情况如上图一 一列出。大量的使用逻辑器件其结果是Ic设计的面积增大,布线困难和功耗提 高。在不影响功能和时序的前提下,可以在数据处理模块方面对其进一步优化, 使其占用更少的资源。除法器部分可以采用精简寄存器除法器来降低其器件使用 章。 4.5小结 奉章对提出的自平衡算法进行了功能验证和STA时序分析最后做了资源使 用情况的分析。设计的功能基本满足预期的要求。经过电路计算并处理后的图像 和原图像MATLAB比对结果图如下: 黧藩 日*m* 女&№*4m&##镕☆#&”Ⅲ 鞭蓊 图4-19电路仿真和程序仿真效果比对 经过比较电路基本还是能实现算法的功能。差异主要存在于统计均值结果 上。电路设计时考虑到资源的节约,将相邻两个像素的均值取整,这样在到晶后 生成数据时会有累计误差。因此改良时可以将均值统计的精度提高。 第五章总结与展望 第五章总结与展望 5.1总结 文中自动白平衡处理模块设计基于灰色世界和理想反射镜结合算法,在功能 上能较好的完成自动白平衡的校正。基于主观判定的色温选择工作模式也有很好 的处理效果。通过对设计中电路结构的优化使电路规模有所降低,从而降低了电 路功耗。采用隔帧启动机制,使得电路的动态功耗进一步降低。采用流水线技术, 提高了整体电路的适用频率范围。本设计基本满足设计预期的,规模小,消耗资 源少,功耗小,以及方便移植等特点。本设计适合应用在集成度高的微型设备中。 5.2白平衡增益计算改进 设计中定时的启动白平衡虽然能在功耗上能有一定的节约,但是如果隔帧 几帧后场景色温环境并没有太大的变化,则后一次计算的增益值和前一次计算的 增益值原理上是相差不大,则后一次计算是浪费的。因此,如果引入一种能比较 机制,避免后一次无用的增益计算,则能使设计在动态功耗上会有所降低。 增益计算前端是图像统计模块,因此改良的部分应该对统计之后的最值和 均值信息进行分析。记录前一次统计的信息,然后将隔帧后统计的信息同前一次 统计的信息做对比或者取相关,如果相关的峰值很高则表示两组数据差异不大。 如果相关度低则表示两组数据有较大的差异。 5.3理想反射镜法改进 理想反射境法的改良方法,是先将图像分区,分别统计其中的最值信息, 然后分析各区最值信息中是否有过亮点(如光源),有则剔除该分区,最后将剩 下分区的最值信息求最值作为理想反射境法提取的最值信息。 理想反射境法引入分区,在考虑到节约资源的前提下电路设计上也易于实 现,因为每个分区只需要存储一组最值信息。如果采用统计完再分析分区的顺序, 则在整体分区块不多的情况下,为了保存分区信息而需要的硬件存储空间也是比 较小的。如果采用并行设计为双重统计的方法。一边统计区内一边并行的对每个 第五章总结与展望 区的最值进行剔除和统计,这样也仅仅需要很少的硬件资源便能达到目的。 采用理想反射境分区的方法,虽然能避免失效情况,提高此算法的适用范 围,但是也可能出现每个分区都有过亮点,则全部分区都剔除的失效情况。因此 在这种情况下.还是和灰色世界相结合,如果出现这种情况则全部转为灰色世界 法处理。 5.4图像采样统计 本设计中图像统计采用的是连续统计,也就是说图像中指定区域内的所有像 素都参与了统计。由图像像素点和周同像素点的相关性,可知一个像素跟其周围 临近的几个像素的各颜色灰度值差别很小。因此可以将统计设计为行列采样统 计。经过分析统计的结果也跟整个图像统计的结果相差很小。这样做可以减少参 与计算的像素个数,以减少器件计算的次数从而降低功耗。 原始图像 抽样后的图像 自动自平衡处理 图像中共有2∞44个像素点.使用了140}个像素点.使用率5.湖/o 图5一l抽样统计仿真 图中仿真的情况是行内32个像素取一个样点值,列是每隔32列取一个像 素值。对于这副图像在样点使用率为1/20的情况下,还是能很好的作出统计。 完成白平衡的校正。 5.5通用性研究 本设计虽然是针对30万像素的CMOS传感器进行设计。其像素时钟频率 20M!tz.本设计能满足其要求。如果在更高像素的图像传感器图像预处理部分加 入自平衡处理模块的话,本设计只是需要将图像统计模块的行内像素和行计数器 第五章总结与展望 值的值做修改,其他模块都不用修改便能继续使用。这些模块设计的工作最大频 率也基本能满足一般高像素传感器的要求。 参考文献 参考文献 [1】周荣正,自适应数码相机自动白平衡算法,计算机辅助设计与图形学学报, 2005-03,第17卷3期 [2]文lJ方,杜平安,一种基于硬件的彩色插值算法,微计算机信息,2006第22 卷4.2期 【3]周贤,姜威,基于图像边缘能量的自动聚焦算法,光学技术,2006—03第32 卷第2期 【4】徐培风,李正明,基于图像的自动曝光算法研究,光学仪器,2005—04第27 卷第2期 [5】谷元保,付宇卓,一种基于灰度世界模型的自动白平衡方法,计算机仿真, 2005.09第22卷第9期 【6】赵建森,视频通信中的伽玛校正,电子科技,2006,第7期 [7】郭永刚,葛庆平,利用白平衡进行偏色图像的颜色校正 【8】霍俊彦,视频预处理关键技术研究:【硕士学位论文】,西安:西安电子科技大 学,2006 【9】周海斌,静态时序分析在高速FPGA设计中的应用,电子工程师,2005.11第 31卷第11期 [10】石松华,高性能CPU中除法器的设计与实现:[硕士学位论文】,上海,同济 大学,2005 【l 1]Hong·Kwai LAM,Automatic White Balancing using Adjacent Channels Adjustment in RGB Domain,IEEE international on multimedia Expo(ICME), 2004 [1 2]Edmund Y.Lam,Combining Gray Word and Retinex Theory for Automatic White Balafice in Digital Phomgraphy,IEEE white 【13]Yung—Cheng Liu,Automatic Balance for Digital still Camera,IEEE Transactions Oil Consumer Electronice,1995,Vol 41 No 3 【14]程开富,COMS图像传感器的基本原理以及设计考虑 【15]Michael D.Ciletti,Verilog HDL高级数字设计(张雅绮),北京:电子工业出 版社 【16]吴继华,Altem FPGA/CPLD设计高级篇 【17】夏宇闻,verilog数字系统设计教程,北京:北京航空航天大学出版社 参考文献 【18】孙兆林,MATLAB6.x图像处理,北京:清华大学出版社 【19]Qing Lin,一种用于先验知识的自动白平衡的新的运算法则,复旦大学 【20]Jinggang Wang,A Method of Automatic White Balance Using Fuzzy Logic, IEEE,2000 [2 1 IF Gasparini,R Schettin,Color Correction for Digiml Photographs[c],Proceedings of the 12m International Conference on Image Analysis and Processing,IEEE 2003 【22]郭永刚,利用白平衡进行偏色图像校正,计算机工程与应用,2005.20 发表论文的说明科研情况 发表论文和科研情况说明 参与的科研项目: 本人在研究生期间,参与了国家自然科学基金资助项目{CMOS图像传感 器关键技术研究》中数字预处理电路的自动白平衡算法的研究和实现工作。 发表论文的说明科研情况 致谢 本论文的工作是在我的导师姚素英教授、刘开华教授、刘贵忠教授的悉心指 导下完成的,两位教授严谨的治学态度和科学的工作方法给了我极大的帮助和影 响。在此衷心感谢两年来姚老师和刘老师对我的关心和指导。 胡燕翔老师悉心指导我们完成了实验室的科研工作,在学习上和生活上都给 予了我很大的关心和帮助,在此向胡老师表示衷心的谢意。 在实验室工作及撰写论文期间,金亮、张哲、丁三川I、等同学对我的研究工 作给予了热情帮助,在此向他们表达我的感激之情。 另外也感谢我家人,他们的理解和支持使我能够在学校专心完成我的学业。
更多简介内容

评论

下载专区


TI最新应用解决方案

工业电子 汽车电子 个人消费电子

$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })