Menu Close

FPGA图像处理之五:VGA显示图片

经过前面4篇的学习,我们了解了vga显示原理方法,这一篇我们看看如何来显示图片。在显示器上显示图片,就是把图片里的每一个像素点,以相同的颜色在显示屏上点亮,这样我们就能看到一副图片了。

%title插图%num

常见的图片文件有多种格式,如bmp、jpg、png、tif、gif、pcx、tga、exif、fpx、svg、psd、cdr、pcd等等,其中大家平时用的最多的格式大致有bmp、jpg、png。具体如下:

BitMaP(bmp),是一种与硬件设备无关的图像文件格式,使用非常广。它不支持文件压缩,也不适用于 Web 页,所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit。在Windows环境中运行的图形图像软件都支持BMP图像格式。

JPEG(jpg)(全称是Joint Photographic Experts Group)是常见的一种图像格式,它由联合照片专家组开发并命名为”ISO 10918-1″,JPEG仅仅是一种俗称而已。JPEG文件的扩展名为其压缩技术十分先进,它用去除冗余的图像和彩色数据,获取得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像质量。

png是一种无损压缩的位图片形格式,其设计目的是试图替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性。PNG使用从LZ77派生的无损数据压缩算法,一般应用于JAVA程序、网页或S60程序中,原因是它压缩比高,生成文件体积小。

用fpga来驱动显示图片,我们先将图片中像素点的颜色值取出,保存成mif文件,再加载到rom之中(当然如果有动态传输过来的数据例如摄像头数据或者网络数据,则不需要这么麻烦)。最后在程序之中通过读取rom,并显示到屏幕上来还原显示图片。这个过程就像先把一个积木玩具拆成一个个小零件,装进箱子带回家,然后再拼接成玩具。当然把玩具拆成零件的时候,每个零件的位置不能乱,所以需要对每个零件进行编号,否则还原的时候就会很头疼。

将图片变成mif文件,通常可以用一些小软件来完成。网络上有一些,我这里用的是“BMP2Mif.exe”这个小软件(这个小软件虽然免费,但现在发现有些问题,它转出来的图片其实是歪的。。。后面有空的话我做一个好了)。bmp 转mif 文件,操作是,从左上角开始,按行逐一取出图片中像素点,把点的序号作为地址,把点的颜色值作为mif数据内容。还原图片的时候我们也要按照这样的方式来取出颜色。

VGA模块内部做屏幕坐标值的计算,当屏幕坐标值走到要显示图片的位置时,从rom中取出颜色值,输出到显示屏上。取rom地址的计算为:address = X + (图片长度)* Y.除图片要显示的区域之外的部分,可以选择显示其他颜色或者黑色。(006芯片内部空间比较小,下次换PRX100T做可以放个大的图片。图片因为取像素软件问题有点歪)

%title插图%num

附件下载

Posted in FPGA, IC, 教材与教案

2 Comments

发表评论

相关链接