驱动编程调优相关辅助工具-图形图像类

Posted 彩色蚂蚁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了驱动编程调优相关辅助工具-图形图像类相关的知识,希望对你有一定的参考价值。

 

驱动编程调优相关辅助工具-图形图像类

作者:刘旭晖 Raymond转载请注明出处

Emailcolorant@163.com

BLOGhttp://blog.csdn.net/colorant/

主页:http://sites.google.com/site/rgbbones/

1         综述

说到驱动编程和调优的辅助工具,我想说的不是像source insight Visual Studio这类的代码阅读开发工具,也不是像GDB Oprofile Strace之类的代码跟踪调试工具。

 

我所说的辅助工具,更多的是指针对各种各样类型的硬件,以硬件开发调优和测试为目的,提供数据来源,数据仿真,数据抓包,提供测试用例,进行数据转换,格式转换等等各类辅助用途的工具。

 

这其中多数是一些现成的工具,也有些是为了方便,自己编写的一些小程序或应用。

 

也许有些工具,你从来不曾用过,也同样能完成自己的工作,或者出于麻烦,不愿意去学习了解相关的知识。但是要成为一个专业的驱动开发者,我始终认为,只有认真学习相关硬件以及所涉及的子系统和应用领域,深入掌握其相关背景知识,才能真正开发出高效,有用的驱动,才能真正发挥硬件的所有潜在能力,从硬件能力软件应用的背景等角度去系统的思考驱动的框架结构。而不仅仅是简单的把硬件Run起来,做些修修补补的工作。

 

这篇说的是图形图像类的工具,通常会在LCDCameraTVOUT等驱动开发过程中使用到。有些工具需要你对一些相关知识有些了解。应该说,了解一些图像处理,以及光学等方面的原理,对于驱动的开发调试常常会起到事半功倍的指导性作用。至少能让你自己显得更专业些 8

 

2         颜色校准类:

2.1        LCD校准工具

校准你的PC显示器,应该是严肃的对待图像处理相关的工作第一步需要做的事吧。因为通常显示器都会有一定的偏色。不论你所做的驱动工作是调整LCD的颜色,对比度,gamma曲线,以期获得理想的显示效果,还是调整摄像头的相关参数,希望得到真实的成像效果。你都不可避免的,或者使用PC的显示器作为参照,对比显示效果,或者用PC检查摄像头的成像结果。要做到客观科学,就要求你的PC显示器本身所呈现的图像效果是标准的,真实的,这也就要求你对显示器进行校准。

最好的工具之一当然是Spyder,俗称蜘蛛。这是一套硬件工具,在使用时,由一个感光组件吸附在显示屏幕上,运行配套的软件,采集屏幕发出的色彩亮度信息,生成校准数据,以颜色配置文件的形式对屏幕进行校准。蜘蛛有不同的规格,价格从数百到数千不等,我只用过最便宜的Express版本。

 

  此外,如果实在搞不到蜘蛛,也可以使用Photoshop中的色彩校正功能,按照步骤,进行校正,这种方法存在较大的主观因素的影响。

2.2        颜色采样软件

很多场合,我们会想知道图像上某一点的具体颜色值是多少,例如分析camera拍摄的色板图像等。 使用Photoshop当然是可以的,不过,毕竟有些大材小用。可以找到很多颜色采样的小软件,例如下面这个Color Cop

不过需要注意一点的是,有些图像编辑显示软件在显示图像时,会根据图像内嵌的ICC文件等在显示时对图像色彩进行校正,所以用屏幕捕捉工具捕获的颜色值,可能会和图像编辑软件取得的色彩值不同。

2.3        色度分析计

调试LCD驱动时,与PCLCD进行比对,毕竟是一种主观的间接的方法,如果想要精确的分析LCD的色彩,亮度指标,可以使用色度亮度分析计。类似下面这样的东西:

 

它的主要功能就是测量发光体的亮度值和色度信息。使用时,可以让LCD显示例如红、绿、蓝、黑、白等纯色图像,用它采集LCD的亮度和色彩值。然后和理论标准值进行比对,进而调整。

这玩意用过几次,确实不错,不过价格不便宜。。。

2.4        标准灯箱

如果你做过Camera驱动,或者你对摄影有一些兴趣,那你应该听过白平衡这样一个概念。简单的来说,物体显示的颜色,和它所处的环境光源是有密切联系的。标准灯箱,就是用来模拟几种常见的光源环境。不同的灯箱有不同的用途,我所用过的灯箱可以模拟例如标准日光,日光灯光等光源。

标准灯箱的应用领域很广了,对于我来说,主要是用来调试Camera驱动的各种白平衡设置,以及标准光源下Camera的各种色彩相关的寄存器的设置。

 

3         颜色转换类

颜色转化,严格地说是色彩空间的变换,其包含的内容是很广泛的,也是很复杂的一门科学。常见的转换包括例如从RGB色彩空间转换为打印领域常用的CMYK色彩空间等。

3.1        YUV2RGB

对于驱动开发来说,最常遇到的应该是RGBYUV色彩空间的转换了。在图形显示,Camera数据采集等等场合都可能会遇到RGBYUV的转换问题。

实际上YUV本身也存在很多不同的标准,所以RGBYUV的转换公式会有好多种,在数字领域,常见的应该还是RGBYCrCb的转换。

没有找到很简单的工具直接计算色彩值,所以我用Excel表格制作了一个转换工具,填入RGBYUV值,就能得到相对应的色彩值。

 

上传到CSDN了:计算YUVRGBEXCEL表格

 

4         图像转换类

4.1        格式转换

图像格式的转换,如果是各种图形格式之间的转换,那么有很多工具可以实现,最简单常用的不外乎就是Acdsee了。

除了这类图形格式的转换,在驱动开发中,最常用的应该还是将一幅图像转换成二进制的RAW数据,用于直接在LCD上显示,这类工具我最常用的就是Image2Lcd了。

Image2Lcd能够将图像转换成LCD显示所需的点阵数据,可以设置输出数据的色深和颜色分量的排列顺序。也可以将数据输出成C语言数组的形式。

 

5         图像分析类

5.1        色板

标准色板,我认为是调试Camera类的驱动不可缺少的工具,常用的是这种24色的标准色板

 

进口的这种色板价格可不便宜,大概要100-200美金吧。没有找到合适的国产替代品。这24个色块是很有代表性的颜色,下面6个是灰阶,上来6个是三原色和三补色。其它还有一些肤色啊CMYK啊之类的颜色。

5.2        灰板

灰板主要用来调整白平衡和进行曝光测试。相对而言比较便宜,几十块钱就能搞定了。很多摄影爱好者还随身携带一块呢。

 

 

5.3        色板数据分析工具

有个很牛的软件叫 Imatest,通常很多数码媒体评测相机或镜头时都会使用这个软件。它的功能很多了,包括测试MTF曲线,镜头光场变形等。

对于我来说,在Camera驱动中,可以用它来分析拍摄得到的色板数据,进而调整摄像头的gamma曲线,对比度设置,颜色空间变换设置等参数。下面是一个分析色板底部6个灰阶块的亮度信息,计算Gamma值的示例:

 

5.4        其它分析工具

其它还有一些辅助图表,工具等是用来测试镜头的分辨率,形变等,这个在小的摄像头上基本上就用不上了,因为即使测了,也没法做什么改变 8 这个是由硬件本身决定的。

6         其它

6.1        Gamma曲线计算工具

很多LCDCamera Sensor都会有gamma曲线的寄存器设置,不过,通常不同的厂商,gamma曲线的寄存器的设置方式都不一样,有的是分段取点,有的是分段取斜率。

不过,最基本的,第一步总是需要计算,对应于多少的gamma值,曲线上的数值应该是多少。这个我也没有找到现成的工具,还是用excel表格制作一个简单的计算工具如下,对应曲线上的数值输出为十进制和十六进制:

 

 

上传到CSDN了:Gamma曲线计算工具

6.2        DisplayX

这是一个很小的显示器测试软件,主要用来测试颜色,清晰度,聚焦,延迟等等。本来和驱动开发没什么关系,不过,它的测试项目很有代表性,自己写LCD驱动的测试程序时可以参考它的测试项目编写测试用例。

 

以上是关于驱动编程调优相关辅助工具-图形图像类的主要内容,如果未能解决你的问题,请参考以下文章

C#(Sharp)GDI plus与图形编程(计算机图形学必备知识)

C#(Sharp)GDI plus与图形编程(计算机图形学必备知识)

JVM监控和调优常用命令工具总结

五,图形界面编程

JVM调优-工具篇

JVM调优手段