西电VHDL期末设计教程.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
西电VHDL期末设计教程

VHDL数字系统设计与测试 题 目 图像LSB嵌入和检测 学 院 通信工程学院 学 号 姓 名 一 设计要求与功能?、 利用vhdl语言设计一个图像处理系统,可完成以下功能 (1)嵌入功能:可将一幅256x256的彩色图像转为8位灰度图像,然后在 该灰度图像的LSB比特面随机嵌入三个不同的二值序列;最后,将嵌入水印序列的灰度图像恢复为彩色图像。? (2)检测功能:输入任意彩色图像,可从对应灰度图像的LSB平面检测 上述三个序列 (3)三个序列为 序列1:01101 序列2:10101 序列3:11001 (4)输入端口包括三个坐标值信号,分别作为三个序列嵌入的起始位置 二 设计思路 本设计采用自上而下的设计思路,根据设计要求将整体分解为8个子模块:文件读入模块,,LSB嵌入模块,随机数产生模块,序列检测模块,VGA显示模块,主控模块。文件读入读出模块可暂借MATLAB处理,随机数产生模块,重点LSB嵌入模块:对相应的像素点进行模2运算得到最低位和相应序列进行比较。逐层描述并进行功能仿真(基于QuartusII综合仿真平台),最终实现硬件实现(硬件实现有待后续完成)。 三 原理图说明 图1 总体设计方案 端口Clk:时钟信号 端口En:使能控制信号 ROM模块:存储器,负责临时文件信息的存储 嵌入LSB模块:负责取出LSB矩阵,并嵌入随机序列,再还原为彩色矩阵存入ROM 端口XY:随机嵌入的序列起始坐标 文件读入模块:负责将指定的图片转为数字矩阵,由于技术原因本文暂用matlab中的imread函数代替该功能。 检测模块: 负责利用状态机查找灰度LSB平面矩阵中是否嵌入有序列, 01101, 10101,11001,对应abc输出端口为1(有)或者0(无) 端口a,b,c:检测出序列01101-----a为高反之为0 检测出序列10101-----b为高反之为0 检测出序列11001-----c为高反之为0 不同序列的状态图如下 : 图2 01101状态机转换图 图3 101010状态机转换图 图4 110010状态机转换图 VGA显示模块: 负责还原前后的图像显示 VGA输出端口:r,g,b : out STD_LOGIC; --颜色信号 hs,vs : out STD_LOGIC; --行同步、场同步信 号 随机数产生模块: 产生随机数列作为检测模块的输出数据 四 子模块说明 1)文件读入模块: 利用Matlab工具imread函数将256*256彩色图片转为txt格式色值矩阵,存入rom中。 2)LSB嵌入模块: entity Insert is port(clk:in std_logic; --时钟信号 en:in std_logic; --使能信号,控制嵌入进程的开始与结束 X1,Y1,X2,Y2, X3, Y3 : in integer range 1 to 256); --随机嵌入序列的三组起始位置(X1,y1),(X2,Y2), (X3,Y3) end entity; architecture behavior of Insert is signal IN_data, OUT_data:matrix; file Infile:TEXT IS IN D:\qianru.txt; --MATLAB转为灰度图像的矩阵的文本文件1 file Outfile:TEXT IS OUT D:\shuchu.txt;--嵌入之后的灰度图像的矩阵的文本文件2 signal Pin:std_logic:=0; signal Pout:std_logic:=0; begin p1:process(clk) --将文件1读入 variable line_in:LINE; variable int_v:integer:=0; begin if(clkevent and clk=1) then -- 读入过程 if (en=0) then for i in 0 to row-1 loop readline(Infile,line_in); f

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档