- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VHDL数字系统设计与测试
题 目 图像LSB嵌入和检测
学 院 通信工程学院
学 号
姓 名
一 设计要求与功能 、 利用 vhdl 语言设计一个图像处理系统,可完成以下功能
( 1)嵌入功能:可将一幅 256x256 的彩色图像转为 8 位灰度图像,然后在
该灰度图像的LSB比特面随机嵌入三个不同的二值序列; 最后,将嵌入水印 序列的灰度图像恢复为彩色图像。
(2)检测功能:输入任意彩色图像,可从对应灰度图像的 LSB平面检测
上述三个序列
( 3)三个序列为
序列 1: 01101
序列 2: 10101 序列 3: 11001 ( 4)输入端口包括三个坐标值信号,分别作为三个序列嵌入的起始位置
二 设计思路
本设计采用自上而下的设计思路,根据设计要求将整体分解为 8 个子模块:
文件读入模块,,LSB嵌入模块,随机数产生模块,序列检测模块, VGA?示模
块,主控模块。文件读入读出模块可暂借 MATLABt理,随机数产生模块,重点
LSB嵌入模块:对相应的像素点进行模 2运算得到最低位和相应序列进行比较。
逐层描述并进行功能仿真 (基于 QuartusII 综合仿真平台 ) ,最终实现硬件实现
(硬件实现有待后续完成)。
三 原理图说明
CLK
图1总体设计方案
端口 Clk:时钟信号
端口 En:使能控制信号
ROMK块:存储器,负责临时文件信息的存储
嵌入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状态机转换图
VGAM示模块:负责还原前后的图像显示
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);
for j in 0 to col-1 loop read(line_in,int_v);IN_data (i,j)=int_v; end loop;
end loop;
Pin=1 after 10ns;
end if;
end if;
end process p1;
p2: PROCESS(Pin) --image data processing --嵌入过程
variable i1:integer:=S1;
variable j1:integer:=T1;
variabl
文档评论(0)