henry

博客园 首页 新随笔 联系 订阅 管理

    Img_DATA.hex在相关实验中,可以供程序调用,使显示器上显示出ALTERA DE2 Board的图像。本人一直很好奇该文件里面有什么奥秘。

    有两种方法可以查看该文件里面的内容,一是最方便的记事本,二是Quartus II。

    一、用记事本打开后,发现里面有很多行数据。用MATLAB提取内容后,发现总共是38401行,除去最后一行(最后一行只有10个字符,与其他行的12个字符不同,考虑该行为结束标志),剩下38400行(考虑为实际的图像信息数据)。

    1~38400行数据的格式

          :************

1~2位始终为01;3~6位从0000开始以+1方式逐渐增加到95ff;7~8位始终为00;9~10位变化规律不定(考虑为8位二进制像素值);11~12位循环地从ff开始以-1方式递减。

   

    二、用Quartus II打开后,word size选择为8位。

    打开后,可以看到地址(Addr)从0000到95ff,与前面的3~6位相符;每个地址中存放的数据为8位二进制数,数值与前面的9~10位相同。

   

    考虑:1)3~6位为内存地址,用来存放二进制像素值,每个地址可以存放8位二进制像素值;

            2)9~10位为8位二进制像素值;

                    38400*8=307200=640*480

            3)11~12位不知道是什么作用,有待考察。有可能是用来索引的。

 

将所有9~10位的数据提取出来,构成1个长度为38400*2的字符串。参照前文的处理方法(【原创】DE2实例中tiger_BW图像),可以在Matlab中显示出图如下所示:

 

    三、为何在显示在显示器上的图像为蓝白两色而不是黑白两色?

    提供给显示器的图像数据分为VGA_R、VGA_G和VGA_B三个10位的量。

    若当前像素为0(对应为黑色),为了显示为蓝色,在赋值时,VGA_R和VGA_G都为0,只有VGA_B为1023,这样在显示器上就成了蓝色的一个像素点。

    若当前像素为1,VGA_R、VGA_G和VGA_B都赋值为1023,显示为白色像素点。

posted on 2010-04-01 22:08  yuhengzhou  阅读(517)  评论(0编辑  收藏  举报