西电VHDL期末设计解析.docx

西电VHDL期末设计解析.docx

ID:62655930

大小:171.98 KB

页数:13页

时间:2021-05-15

西电VHDL期末设计解析.docx_第1页
西电VHDL期末设计解析.docx_第2页
西电VHDL期末设计解析.docx_第3页
西电VHDL期末设计解析.docx_第4页
西电VHDL期末设计解析.docx_第5页
资源描述:

《西电VHDL期末设计解析.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、VHDL数字系统设计与测试题目图像LSB嵌入和检测学院通信工程学院学号姓名一设计要求与功能、利用vhdl语言设计一个图像处理系统,可完成以下功能(1)嵌入功能:可将一幅256x256的彩色图像转为8位灰度图像,然后在该灰度图像的LSB比特面随机嵌入三个不同的二值序列;最后,将嵌入水印序列的灰度图像恢复为彩色图像。(2)检测功能:输入任意彩色图像,可从对应灰度图像的LSB平面检测上述三个序列(3)三个序列为序列1:01101序列2:10101序列3:11001(4)输入端口包括三个坐标值信号,分别作为三个序列嵌入的起始位置二设计思路

2、本设计采用自上而下的设计思路,根据设计要求将整体分解为8个子模块:文件读入模块,,LSB嵌入模块,随机数产生模块,序列检测模块,VGA®示模块,主控模块。文件读入读出模块可暂借MATLABt理,随机数产生模块,重点LSB嵌入模块:对相应的像素点进行模2运算得到最低位和相应序列进行比较。逐层描述并进行功能仿真(基于QuartusII综合仿真平台),最终实现硬件实现(硬件实现有待后续完成)。三原理图说明CLK图1总体设计方案端口Clk:时钟信号端口En:使能控制信号ROMK块:存储器,负责临时文件信息的存储嵌入LSB模块:负责取出LS

3、B矩阵,并嵌入随机序列,再还原为彩色矩阵存入ROM端口XY:随机嵌入的序列起始坐标文件读入模块:负责将指定的图片转为数字矩阵,由于技术原因本文暂用matlab中的imread函数代替该功能。检测模块:负责利用状态机查找灰度LSB平面矩阵中是否嵌入有序列,01101,10101,11001,对应abc输出端口为1(有)或者0(无)端口a,b,c:检测出序列01101-----a为高反之为0检测出序列10101-----b为高反之为0检测出序列11001-----C为高反之为0不同序列的状态图如下图201101状态机转换图图31010

4、10状态机转换图图4110010状态机转换图VGAM示模块:负责还原前后的图像显示VGA输出端口:r,g,b:outSTD_LOGIC;--颜色信号hs,vs:outSTD_LOGIC;--行同步、场同步信号随机数产生模块:产生随机数列作为检测模块的输出数据四子模块说明1)文件读入模块:利用Matlab工具imread函数将256*256彩色图片转为txt格式色值矩阵,存入rom中。2)LSB嵌入模块:entityInsertisport(clk:instd_logic;一时钟信号en:instd_logic;-使能信号,控制嵌入

5、进程的开始与结束X1,Y1,X2,Y2,X3,Y3:inintegerrange1to256);―随机嵌入序列的三组起始位置(X1,y1),(X2,Y2),(X3,Y3)endentity;architecturebehaviorofInsertissignalIN_data,OUT_data:matrix;fileInfile:TEXTISIN"D:qianru.txt";--MATLAB转为灰度图像的矩阵的文本文件1fileOutfile:TEXTISOUT"D:shuchu.txt";--嵌入之后的灰度图像的矩阵的文本文

6、件2signalPin:std_logic:='0';signalPout:std_logic:='0';beginp1:process(clk)--将文件1读入variableline_in:LINE;variableint_v:integer:=0;beginif(clk'eventandclk='1')then--读入过程if(en='0')thenforiin0torow-1loopreadline(Infile,line_in);forjin0tocol-1loopread(line_in,int_v);IN_data(

7、i,j)<=int_v;endloop;endloop;Pin<='1'after10ns;endif;endif;endprocessp1;p2:PROCESS(Pin)--imagedataprocessing--嵌入过程variablei1:integer:=S1;variablej1:integer:=T1;variablei2:integer:=S2;variablej2:integer:=T2;variablei3:integer:=S3;variablej3:integer:=T3;--(S1,T1),(S2,T2)

8、,(S3,T3)分别为三个序列嵌入的起始坐标BEGINif(Pin'eventandPin='1')then--上升沿触发IN_data(i1-1,j1-1)<=IN_data(i1-1,j1-1)-(((IN_data(i1-1,j1-1))mo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。