基于FPGAMJPEG图像压缩算法设计与实现.docVIP

基于FPGAMJPEG图像压缩算法设计与实现.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGAMJPEG图像压缩算法设计与实现

基于FPGAMJPEG图像压缩算法设计与实现   摘要:在视频传输系统中,最大障碍是视频数据的大数据量。故压缩就显得尤为必要。MJPEG是以25帧每秒传输的JPEG图像。本文根据JPEG基本压缩模式,通过前端图像采集芯片输出标准的4:2:2格式的图像流,在XILINX公司的SPARTAN IIE芯片下压缩,获得良好效果,压缩比达到10:1。   关键字:图像压缩 ;视频传输;JPEG      1绪论   MJPEG 是指 Motion JPEG,即动态JPEG,按照25帧/秒速度使用JPEG 算法压缩视频信号,完成动态视频的压缩。其图像格式是对每一帧进行压缩,通常可达到6:1的压缩率。MJPEG图像流的单元就是一帧一帧的JPEG画片,因为每帧都可独立地任意存取,所以MJPEG常被用于视频编辑系统和视频监控系统。   本文研究基于XILINX的FPGA芯片XC2S300E,结合前端解码芯片SAA7111和存储器HY57V641620完成对摄像头采来的图像进行动态JPEG压缩编码,在开发平台ISE6.2中完成系统的控制,软核的综合,布局布线,芯片影射及仿真。   2系统的硬件总体结构   2.1系统总体功能说明   本系统硬件由摄像头,SAA7111视频输入处理器,FPGA,单片机及SDRAM构成。系统上电后,单片机通过IIC总线配置解码芯片SAA7111,使解码芯片输出CCIR601标准的图像流,该标准的每幅图像具有有效像素720*625,即每行有720个有效像素,共625有效行,分奇数行和偶数行进行传输。FPGA(XC2S300E)先将图像存储在SDRAM中,SDRAM采用HY57V641620,该芯片分四块,每块具有1M单元*16bit的容量。   2.2硬件平台的控制   2.2.1 对SAA7111的初始配置   SAA7111是Philips半导体公司生产的一种视频输入处理器(VIP),在视频采集系统中,通常需要诸如SAA7111之类的视频解码器作为模拟视频前端,而视频解码器的初始化主要通过IIC总线接口来完成。本文提出了用虚拟总线技术来模拟实现IIC总线功能,利用单片机的普通I/O口模拟IIC总线接口设计,从而实现单片机对SAA7111的初始化与控制的新方法。   2.2.2 控制SDRAM的读写   在基于FPGA的图象采集显示系统中,常常需要用到大容量、高速度的存储器。本设计采用HY57V641620,分为控制,地址,数据三类信号。控制信号主要有:CS(片选信号),CKE(时钟使能信号),DQM(输入、输出使能信号),CAS、RAS、WE(读写控制命令字)。通过CAS、RAS、WE的各种逻辑组合,可产生各种控制命令。地址信号有:BA0和BA1页地址选择信号,A0~A12地址信号,行、列地址选择信号。通过分时复用决定地址是行地址还是列地址。在读写操作中,在地址线上依次给出页地址、行地址、列地址,最终确定存储单元地址。数据信号有:DQ0-DQ7,双向数据。其使能受DQM控制。   3 MJPEG图像压缩的各模块设计   3.1 DCT变换的描述   二维DCT变换是先经过一维列DCT变换后经过一维行DCT变换,在进行了一维列DCT变换后,再进行一维行变换,就涉及到了数据的重新抽样,如一维列变换后,再进行一组DCT行变换的数据顺序是1,9,17,25,33,41,49,57;这样就涉及到了多过去或是对未来数据的直接调用,为了避免这个在流水线上很难解决的问题,采用乒乓操作,采用两块由FPGA芯片自带的嵌入的BRAM,当一块进行存储的时候,另一块就进行读取,进行行DCT变换。当存储完或读取完(二者所需时间一致)后再交换总线,即就将8*8块中所有的像素值进行一维DCT列变换后存储起来,等所有数据都存储完成后再进行抽样,进行一维DCT行变换,为了便于流水线操作,如此就保证了流水线操作。   3.2 量化及Z排序的描述   整个系统功能块都在DCT变换后准备好信号Q_rdy_in的使能下进行,在Q_rdy_in使能情况下,64计数器在时钟的作用下计数,计数值输出作为ROM的地址,其中ROM就是上述中提到的存有变换后系数的BRAM块,根据地址,ROM输出对应的系数值。其中亮色标志是用来标注是采用亮度量化存储器还是色度量化存储器。输入的像素取其绝对值,同系数进行相乘,乘后再除以256,赋上符号,就得出最终的量化输出结果。   3.3游程编码   整个功能过程采用一个64位计数器作为基准进行控制。当64计数器为0时,输出直流DC,因为DC差分过程在前一模块已经完成,所以这里只需直接输出即可。当64计数器为63的时候,就对输入的AC系数进行判断,若AC为0,则直接输出0,用来表示EOB,即块

您可能关注的文档

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档