欢迎来到天天文库
浏览记录
ID:34754166
大小:88.68 KB
页数:9页
时间:2019-03-10
《基于fpga的图像压缩与解码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于FPGA的图像压缩传输与解码硬件设计部分一、硬件完成的功能定义1.使用FPGA普通端口作为GPIO使用。2.使用FPGA开发板的50MHZ时钟分频后25MHZ作为VGA输出时钟。3.时钟频率25MHZ完成行扫描信号计数。4.时钟频率25MHZ完成祯扫描信号计数,并完成祯计数。5.在行,场信号有效范围内进行VGA数据输出。二、顶层模块划分1.顶层的输入输出定义信号名输入/输出/Inout说明iCLK_50输入FPGA系统时钟50MHZiCLRN输入保证整个系统复位oVGA_R输出vga数据输出R通
2、道10bitoVGA_G输出vga数据输出G通道10bitoVGA_B输出vga数据输出B通道10bitoVGA_SYNC_N输出低电频控制信号oVGA_BLANK_N输出控制ADV7123模拟信号oVGA_CLOCK输出vga输出时钟25MHZoVGA_HS输出行同步信号oVGA_VS输出场同步信号1.顶层模块输入、输出之间的时序关系:vag输入时钟50mhz,分频产生25mhz,作为vga输出时钟,PLL倍频,200mhz作为cpu时钟,UART接收来自串口数据。软件读取数据,处理后,输出数据。
3、软件设计部分一、软件功能定义1获取发送数据,二:软件设计的总体设计及结构图三:软件详细设计1:用matlab取图像的reb值,将取出的rgb值写入文件。2:读取rbg值,将十六进制数表示的rgb值转化为以该asc
4、
5、值对应的字符(减少信息传输量),将转化后的的字符写入文件中。3:对转化后的文件数据进行压缩,发送目标文件格式为,文件头信息,发送文件的起始信息,用来判定开始发送数据,用三个字节,信息数据为GCL,一个字节表示最后一个字节的有效位,最后一个字节有效位为0bit-8bit之间,一个字节表示文
6、件中rgb的种类,0-255,四字节,表示整个压缩文件的大小,其后数据格式为,字符及字符对应的出现次数,即字符频度信息,字符频度之后对应的是压缩信息。4:具体软件的实现:1.Matlab取图片rgb值,写入rgb.txt文件中,处理得到对应字符文件,读取文件统计rgb值得种类及每种rgb值出现的次数。2.根据统计rgb值得种类及次数,生成huffman树。3.由生成的huffman树,递归生成huffmancode。4.根据reb.txt文件内容和huffmancode生成压缩信。四、软件功能测试1
7、:手工构造最简单的huffman树,huffmancode,compresscode。2:显示软件统计字符及频度与最小模型是否一样。3:显示软件生成的huffmantab与最小模型huffmantab是否一样。4:显示软件递归生成的huffmantabcode与最小模型huffmantabcode是否一样。5显示软件递归生成compressecode与最小模型compresscode是否一样。一:软件功能定义2UART串口发射接收。该模块主要用于数据发送与接收,UART_RXD作为接收端,UART_
8、TXD作为发射端,二:软件设计的总体设计及结构图三:软件详细设计1:初始化UART,将UART设置为单字节触发模,UART->STATUS.BITS.RRDY=0;UART->SIATUS.BITS.TRDY=0;UART->DIVISOR.WORD=(unsignedint)(ALT_CPU_FREQ/baudrate+0.5);将接收寄存器和发射中断状态寄存器清零,避免初始值得影响。同时设置发送速率,即波特率。2:UART接收模块,当接到数据时,中断寄存器置位,进入中断服务程序,读取接收bufe
9、r中的数据,并将UART->STATUS.BITS.RRDY清零,3:UART发射模块,将发送数据写入发送bufer中,当数据被发送成功之后,发送数据的状态寄存器位UART->SIATUS.BITS.TRDY自动置1,发送下一个数据前,需要软件手动清零操作。四:软件功能测试利用串口由文件中读取数据,nios接收收据后将数据返回并显示,对比发送接收过程是否有数据丢失。确保数据正常的传输。一、软件功能定义3LCD完成数据的显示。LCD的控制由8bit数据线,1bit的RS寄存器选择端,1数据寄存器,0表
10、示指令寄存器,EN为1bit的使能端,值由0到1发生跳变,液晶执行指令,RW为1bit的读写信号线,高电平执行读的功能,低电平执行写的功能。lcd_on为电源端,lcd_blon为背光。二:软件详细设计1:LCD写命令voidLCD_Write_Command(BooleanCommand){IOWR_ALTERA_AVALON_PIO_DATA(LCD_DATA_ADDRESS,Command);//写数据IOWR_ALTERA_AVALON_PIO_DATA(LC
此文档下载收益归作者所有