基于FPGA的图像压缩与解码

上传人:平*** 文档编号:14371326 上传时间:2017-10-30 格式:DOC 页数:9 大小:55.27KB
返回 下载 相关 举报
基于FPGA的图像压缩与解码_第1页
第1页 / 共9页
基于FPGA的图像压缩与解码_第2页
第2页 / 共9页
基于FPGA的图像压缩与解码_第3页
第3页 / 共9页
基于FPGA的图像压缩与解码_第4页
第4页 / 共9页
基于FPGA的图像压缩与解码_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《基于FPGA的图像压缩与解码》由会员分享,可在线阅读,更多相关《基于FPGA的图像压缩与解码(9页珍藏版)》请在金锄头文库上搜索。

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通道10bitoVGA_G 输出 vga数据输出 G通道

2、10bitoVGA_B 输出 vga数据输出 B通道10bitoVGA_SYNC_N 输出 低电频控制信号oVGA_BLANK_N 输出 控制 ADV7123模拟信号oVGA_CLOCK 输出 vga输出时钟 25MHZoVGA_HS 输出 行同步信号oVGA_VS 输出 场同步信号2. 顶层模块输入、输出之间的时序关系:vag输入时钟 50mhz,分频产生 25mhz,作为 vga输出时钟,PLL 倍频,200mhz作为 cpu时钟,UART 接收来自串口数据。软件读取数据,处理后,输出数据。软件设计部分一、软件功能定义 1获取发送数据,二:软件设计的总体设计及结构图三:软件详细设计1:用

3、matlab取图像的 reb值,将取出的 rgb值写入文件。2:读取 rbg值,将十六进制数表示的 rgb值转化为以该 asc|值对应的字符(减少信息传输量),将转化后的的字符写入文件中。3:对转化后的文件数据进行压缩,发送目标文件格式为,文件头信息,发送文件的起始信息,用来判定开始发送数据,用三个字节,信息数据为 GCL,一个字节表示最后一个字节的有效位,最后一个字节有效位为0bit-8bit之间,一个字节表示文件中 rgb的种类,0-255,四字节,表示整个压缩文件的大小,其后数据格式为,字符及字符对应的出现次数,即字符频度信息,字符频度之后对应的是压缩信息。4:具体软件的实现:1. Ma

4、tlab取图片 rgb值,写入 rgb.txt文件中,处理得到对应字符文件,读取文件统计 rgb值得种类及每种 rgb值出现的次数。2. 根据统计 rgb值得种类及次数,生成 huffman树。3. 由生成的 huffman树,递归生成 huffmancode。4. 根据 reb.txt文件内容和 huffmancode生成压缩信。四、软件功能测试1:手工构造最简单的 huffman树,huffmancode,compress code。2:显示软件统计字符及频度与最小模型是否一样。3:显示软件生成的 huffmantab与最小模型 huffmantab是否一样。4:显示软件递归生成的 huf

5、fmantab code与最小模型huffmantab code是否一样。5显示软件递归生成 compresse code与最小模型 compress code是否一样。一:软件功能定义 2UART串口发射接收。该模块主要用于数据发送与接收,UART_RXD 作为接收端,UART_TXD 作为发射端,二:软件设计的总体设计及结构图三:软件详细设计 1:初始化 UART,将 UART设置为单字节触发模,UART-STATUS.BITS.RRDY = 0;UART-SIATUS.BITS.TRDY =0 ; UART-DIVISOR.WORD=(unsigned int)(ALT_CPU_FREQ

6、/baudrate+0.5);将接收寄存器和发射中断状态寄存器清零,避免初始值得影响。同时设置发送速率,即波特率。2:UART 接收模块,当接到数据时,中断寄存器置位,进入中断服务程序,读取接收bufer中的数据,并将 UART-STATUS.BITS.RRDY清零,3:UART 发射模块,将发送数据写入发送 bufer中,当数据被发送成功之后,发送数据的状态寄存器位 UART-SIATUS.BITS.TRDY自动置 1,发送下一个数据前,需要软件手动清零操作。四:软件功能测试利用串口由文件中读取数据,nios 接收收据后将数据返回并显示,对比发送接收过程是否有数据丢失。确保数据正常的传输。一

7、、 软件功能定义 3LCD完成数据的显示。LCD 的控制由 8bit数据线,1bit的 RS寄存器选择端,1 数据寄存器,0 表示指令寄存器,EN为 1bit的使能端,值由 0到 1发生跳变,液晶执行指令,RW 为 1bit的读写信号线,高电平执行读的功能,低电平执行写的功能。lcd_on 为电源端,lcd_blon 为背光。二:软件详细设计1:LCD 写命令void LCD_Write_Command(Boolean Command)IOWR_ALTERA_AVALON_PIO_DATA(LCD_DATA_ADDRESS , Command); /写数据IOWR_ALTERA_AVALON_

8、PIO_DATA(LCD_RS_ADDRESS , 0); /指令IOWR_ALTERA_AVALON_PIO_DATA(LCD_RW_ADDRESS , 0); / 写入IOWR_ALTERA_AVALON_PIO_DATA(LCD_EN_ADDRESS , 1); / 使能IOWR_ALTERA_AVALON_PIO_DATA(LCD_EN_ADDRESS , 0); / usleep(2000);/2ms/*延时*/2:LCD 写数据void LCD_Write_data(Boolean Data)IOWR_ALTERA_AVALON_PIO_DATA(LCD_DATA_ADDRESS

9、, Data); /写数据IOWR_ALTERA_AVALON_PIO_DATA(LCD_RS_ADDRESS , 1); / 数据IOWR_ALTERA_AVALON_PIO_DATA(LCD_RW_ADDRESS , 0); / 写入IOWR_ALTERA_AVALON_PIO_DATA(LCD_EN_ADDRESS , 1); / 使能/*延时 150ns*/IOWR_ALTERA_AVALON_PIO_DATA(LCD_EN_ADDRESS , 0); /usleep(2000);/2ms/*延时*/4:LCD 初始化void LCD_Write_Command(Boolean Com

10、mand)IOWR_ALTERA_AVALON_PIO_DATA(LCD_DATA_ADDRESS , Command); /往数据IOWR_ALTERA_AVALON_PIO_DATA(LCD_RS_ADDRESS , 0); /指令IOWR_ALTERA_AVALON_PIO_DATA(LCD_RW_ADDRESS , 0); / 写入 IOWR_ALTERA_AVALON_PIO_DATA(LCD_EN_ADDRESS , 1); / 使能IOWR_ALTERA_AVALON_PIO_DATA(LCD_EN_ADDRESS , 0); / usleep(2000);/2ms/*延时*/一、 软件功能定义 3接收信息并解码。二:软件详细设计1:接收压缩后压缩信息描述部分,根据接收 RGB值及其出现的次数,构造 huffman树2:由生成的 huffman树,递归生成 huffmancode。3:由生成的 huffman树,递归生成 huffmancode,对接收的压缩信息解码。测试用例一:测试解压出来的信息是否和最小模型压缩前的相同。测试用例二:测试解压后图像能否还原。总结通过本次模块的在次详细划分,明确模块功能,模块输入输出信号,协调软硬件,小组成员 成绩 任务郭从林朱潮勇程婷杨欢

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号