基于FFPGA的图像压缩传输与解码系统.doc_第1页
基于FFPGA的图像压缩传输与解码系统.doc_第2页
基于FFPGA的图像压缩传输与解码系统.doc_第3页
基于FFPGA的图像压缩传输与解码系统.doc_第4页
基于FFPGA的图像压缩传输与解码系统.doc_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

sopc课程报告之五基于FFPGA的图像压缩传输与解码系统技术报告院系:电子工程学院微电子学系小组成员: 班级:电路1103班组长:郭从林学号:05116093日期:2015年1月3日基于FFPGA的图像压缩传输与解码系统技术报告摘要本文介绍了基于SOPC的通用嵌入式图像处理系统的实现方法,其中叙述了SOPC及NIOS ii 嵌入式处理器的特点和使用。分别具体说明了系统的硬件结构设计和图像处理算法的流程及软件实现,采用此系统可以大大简化图像处理系统的硬件和软件设计,优化系统设计。关键字:SOPC(可编程片上系统);嵌入式处理器;静止图像压缩一、 引言1)随着计算机和多媒体技术的发展,图像等多媒体信源的传输处理显得日益重要,各种图像压缩处理的标准、协议也相继出现,其中 JPEG 静止图像压缩编码是图像压缩的一项重要技术,也是图像压缩的一个基本指标。可编程片上系统 SOPC(System on a Programmable Chip)将处理器、存储器、I/O 等系统模块集成到单片 FPGA,完成系统的功能设计,使整个系统设计更加灵活,可扩充,可裁减,并且实现了软硬件的可编程,因此本系统采用 Nios嵌入式处理器实现一个通用嵌入式图像处理系统。2)通过UART传输图像的压缩信息,在sopc中解压并传输到VGA显示器显示3)实现图像压缩传输,解压缩,显示。二、 功能定义功能:定义所开发项目软件与硬件功能;硬件设计部分1.使用FPGA普通端口作为GPIO使用。2.使用FPGA开发板的50MHZ时钟分频后25MHZ作为VGA输出时钟。3.时钟频率25MHZ完成行扫描信号计数。4.时钟频率25MHZ完成祯扫描信号计数,并完成祯计数。5.在行,场信号有效范围内进行VGA数据输出。软件设计部分 1:用matlab取图像的reb值,将取出的rgb值写入文件。 2:读取rbg值,将十六进制数表示的rgb值转化为以该asc|值对应的字符(减少信息传输量),将转化后的的字符写入文件中。 3:对转化后的文件数据进行压缩,发送目标文件格式为,文件头信息,发送文件的起始信息,用来判定开始发送数据,用三个字节,信息数据为GCL,一个字节表示最后一个字节的有效位,最后一个字节有效位为0bit- 8bit之间,一个字节表示文件中rgb的种类,0-255,四字节,表示整个压缩文件的大小,其后数据格式为,字符及字符对应的出现次数,即字符频度信息,字符频度之后对应的是压缩信息。性能指标:频率、功耗等各种与系统相关性能指标;三、 系统验证方案描述系统级的验证方案,要求测试案例覆盖所设计系统的全部功能。测试案例1:验证Huffman算法压缩解压缩可行性1:编写最简单的huffman树,huffmancode,compress code。2:显示软件统计字符及频度与最小模型是否一样。3:显示软件生成的huffmantab与最小模型huffmantab是否一样。4:显示软件递归生成的huffmantab code与最小模型huffmantab code是否一样。5显示软件递归生成compresse code与最小模型compress code是否一样。测试案例2:验证UART传输的正确性 利用串口由文件中读取数据,nios接收收据后将数据返回并显示,对比发送接收过程是否有数据丢失。确保数据正常的传输。软件功能定义 LCD完成数据的显示。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_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 , 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 Command)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 /*延时*/ 四、 系统顶层设计方案1. 输入输出 1)输入输出管脚定义信号名输入/输出/Inout说明iCLK_50输入1位FPGA系统时钟50MHZiCLRN输入1位保证整个系统复位oVGA_R输出10位vga数据输出R通道 10bitoVGA_G输出10位vga数据输出G通道10bitoVGA_B输出10位vga数据输出B通道10bitoVGA_SYNC_N输出1位低电频控制信号oVGA_BLANK_N输出1位控制ADV7123模拟信号oVGA_CLOCK输出1位vga输出时钟25MHZoVGA_HS输出1位行同步信号oVGA_VS输出1位场同步信号 2)输入输出时序图vag输入时钟50mhz,分频产生25mhz,作为vga输出时钟,PLL倍频,200mhz作为cpu时钟,UART接收来自串口数据。软件读取数据,处理后,输出数据。2. 软件功能定义; 1)软件功能说明获取发送数据。中断控制等 2)软件模块划分结构:画出模块图,说明每个模块的功能 3)软件测试用例说明1:编写最简单的huffman树,huffmancode,compress code。2:显示软件统计字符及频度与最小模型是否一样。3:显示软件生成的huffmantab与最小模型huffmantab是否一样。4:显示软件递归生成的huffmantab code与最小模型huffmantab code是否一样。5显示软件递归生成compresse code与最小模型compress code是否一样。3. 硬件功能定义; 1)硬件功能说明数据传输的收发接口,存储数据,VGA显示器接口 2)硬件顶层模块划分 画出硬件模块的顶层设计结构,简单说明每个模块的功能。 3)硬件的测试用例说明五、 硬件模块详细设计1. VGA接口模块详细设计1). 每个子模块的功能一,vga_640x480模块,进行计时,来控制显示二,vga_stripes模块 这样每隔16行颜色交替为红色和绿色(且在vidon=1时显示)三,clkdiv模块:进行时钟分频,得到该实验需要的25MHZ的时钟;四,vga_stripes_top模块:为主调用函数五,test_vga模块:激励模块2) . 每个子模块的输入输出与时序图redmclk vga_stripes vga_640x480 clkdivvga_stripes_topmclkgreenClk25Vidon hc vcClk253) . 子模块的进一步划分4). 每个子模块的测试用例test_vgatimescale 1ns/1nsmodule test_vga; reg mclk=0; reg 3:0btn=0;vga_stripes_top sc(mclk,btn,hsync,vsync,red,green, blue);initial $monitor($time,hsync = %d vsync = %d red = %d green = %d blue = %d, hsync,vsync,red,green, blue);initialbegin mclk=0; #10 mclk=mclk;endendmodule5). 每个子模块的代码2. 子模块2详细设计.六、 软件子模块详细设计1. 哈弗曼解压缩模块设计1)子程序功能定义将接收到的压缩数据进行解压缩2) 子程序输入输出说明输入为abc_code.txt-编码文件;输出为abc_dcode.txt-译码文件。3)子程序测试用例4)子程序源代码#include stdio.h#include string.h#define MaxNo 256#define NULL 0typedef struct unsigned char symbol;int sweight;syml_weit;syml_weit *sw; /存放符号及其权值typedef struct int weit;int lchd;int rchd;int part;hufmtree;hufmtree *htree; /存放Huffman树int leafnode,totalnode; /叶子节点个数 和 整棵树的所有节点unsigned char *DataBuf; /存放文本文件数据的内存空间unsigned char *CodeBook; /存放码本unsigned char *CodeBuf; /存放编好的码unsigned char *DCodeBuf;int CodeBookLen; /码本长度int CodeLen; /码长度int DCodeLen;void CountWeight(unsigned char *DataBuf,int FileLen);void BuildTree();void HufmCode(unsigned char *DataBuf,int FileLen);void HufmDCode(unsigned char *CDataBuf,int CDataLen);void main()FILE *fp1,*fp2,*fp3,*fp4; /文件读取指针char filepath=abc.txt;int FileLen; /读入的文件长度DataBuf = new unsigned char1024*1024; printf(=Huffman Code and Decode by LiYingleNDSC= nn);if (fp1=fopen(filepath,rb)=NULL) /读入文本文件printf(abc open error!);FileLen = fread(DataBuf,1,1024*1024,fp1);CountWeight(DataBuf,FileLen); /计算权值BuildTree(); /建树HufmCode(DataBuf,FileLen); /编码HufmDCode(CodeBuf,CodeLen); /译码/ 输出码本文件和压缩率if (fp2=fopen(codebook.txt,w)=NULL)printf(abc_codebook open error!);fprintf(fp2,ASCII WEIGHT CODEn);for (int i=0;ileafnode;i+)fprintf(fp2,0x%02x(%8.4f%): ,*(CodeBook+i*(leafnode+1),100.0*swi.sweight/htreetotalnode-1.weit);for (int j=0;j*(CodeBook+i*(leafnode+1)+1);j+)fprintf(fp2,%d,*(CodeBook+i*(leafnode+1)+2+j);fprintf(fp2,n);fprintf(fp2,n压缩率:%.5f%,100.0*CodeLen/8/FileLen);/ 输出编码文件if (fp3=fopen(abc_code.txt,w)=NULL)printf(abc_code open error!);fwrite(CodeBuf,1,CodeLen,fp3);/ 输出译码文件if (fp4=fopen(abc_dcode.txt,wb)=NULL)printf(abc_dcode open error!);fwrite(DCodeBuf,1,DCodeLen,fp4);fclose(fp1);fclose(fp2);fclose(fp3);fclose(fp4);delete DataBuf;delete CodeBook;delete CodeBuf;delete DCodeBuf;void CountWeight(unsigned char *DataBuf,int FileLen)int i=0,sum=0;int counterMaxNo=0x0;for (i=0;iFileLen;i+)/计算权值counterDataBufi+;for (i=0;iMaxNo;i+) /计算叶子节点个数if (counteri)leafnode+;totalnode=(leafnode-1)+leafnode;/满树情况下的节点个数sw = new syml_weitleafnode; /存放码字和权值htree = new hufmtreetotalnode;/存放huffman树int j=0;for (i=0;iMaxNo;i+)if (counteri)swj.sweight = counteri;swj.symbol = i;htreej.weit=counteri;htreej.lchd = 0;htreej.rchd = 0;htreej+.part = 0;void BuildTree()int i=0;int j=leafnode;/非叶子节点的开始int w1,w2;/两个最小的权值int p1=-1,p2=-1;for (int leaf=0;leafleafnode-1;leaf+)/找权值最小的两个节点/for (i=0;itotalnode;i+)if(htreei.part=0)if (p1=-1)p1 = i;w1 = htreei.weit;else if (p2=-1)if (htreei.weit=w1)p2 = i;w2 = htreei.weit;elsep2 = p1;w2 = w1;p1 = i;w1 = htreei.weit;break;for (i=0;itotalnode;i+)if (htreei.part=0 i!=p1 i!=p2)if (htreei.weitw2)if (htreei.weitw1)w2 = w1;p2 = p1;w1 = htreei.weit;p1 = i;elsew2 = htreei.weit;p2 = i;/设置父节点htreej.weit = w1+w2; htreej.lchd = p1;htreej.rchd = p2;htreej.part = 0;htreep1.part = j;htreep2.part = j;p1=-1;p2=-1;j+;void HufmCode(unsigned char *DataBuf,int FileLen)CodeBookLen = leafnode*(leafnode+1);CodeBook = new unsigned charCodeBookLen;/存放编好的码字unsigned char *codetemp = new unsigned charleafnode;/临时存放编好的码字int p;int CodLen;for (int i=0;ileafnode;i+)CodLen = 0;*(CodeBook+i*(leafnode+1) = swi.symbol;p=i;while (htreep.part)if (p = htreehtreep.part.lchd)/p是左孩子codetempCodLen = 0x0;else/P是右孩子codetempCodLen = 0x1;CodLen+;p = htreep.part;*(CodeBook+i*(leafnode+1)+1) = CodLen;for (int j=0;jCodLen;j+)*(CodeBook+i*(leafnode+1)+1+CodLen-j)=*(codetemp+j);CodeBuf = new unsigned char FileLen*(leafnode-1);for (int ii=0;iiFileLen;ii+)for (int jj=0;jjleafnode;jj+)if (*(DataBuf+ii)=*(CodeBook+jj*(leafnode+1)for (int kk=0;kk*(CodeBook+jj*(leafnode+1)+1);kk+)*(CodeBuf+CodeLen)= *(CodeBook+jj*(leafnode+1)+2+kk);CodeLen+;void HufmDCode(unsigned char *CDataBuf,int CDataLen)FILE *lp;int i=0;DCodeBuf = new unsigned char1024*1024;while (iCDataLen)int p=totalnode-1;while (p=leafnode)if (*(CDataBuf+i)=1)p=htreep.rchd;elsep=htreep.lchd;i+;*(DCodeBuf+DCodeLen) = swp.symbol;DCodeLen+;2.UART串口发射接收设计1)子程序功能定义该模块主要用于数据发送与接收,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/baudrate+0.5);将接收寄存器和发射中断状态寄存器清零,避免初始值得影响。同时设置发送速率,即波特率。2:UART接收模块,当接到数据时,中断寄存器置位,进入中断服务程序,读取接收bufer中的数据,并将UART-STATUS.BITS.RRDY清零, 3:UART发射模块,将发送数据写入发送bufer中,当数据被发送成功之后,发送数据的状态寄存器位UART-SIATUS.BITS.TRDY自动置1,发送下一个数据前,需要软件手动清零操作。七、 系统测试结果测试案例1:验证Huffman算法压缩解压缩可行性1:编写最简单的huffman树,huffmancode,compress code。2:显示软件统计字符及频度与最小模型是否一样。3:显示软件生成的huffmantab与最小模型huffmantab是否一样。4:显示软件递归生成的huffmantab code与最小模型huffmantab code是否一样。5显示软件递归生成compresse code与最小模型compress code是否一样。测试文件pic.txt.module vga( iCLK, iCLRN, oVGA_R, oVGA_G, oVGA_B, oVGA_SYNC_N, oVGA_BLANK_N, oVGA_CLOCK, oVGA_HS, oVGA_VS );input iCLK;input iCLRN;output reg 9:0 oVGA_R = 10b1111111111 , oVGA_G = 10b1111111111, oVGA_B = 10b1111111111;output oVGA_SYNC_N , oVGA_BLANK_N , oVGA_CLOCK;output oVGA_HS , oVGA_VS;reg vga_clk;reg 9:0 H_count , V_count;wire video_out;parameter V_SYNC_CYC = 2;parameter V_SYNC_BACK = 32;parameter V_SYNC_ACT = 480;parameter V_SYNC_FRONT= 11;parameter V_SYNC_TOTAL= 525; / 2+32+480+11=525parameter H_SYNC_CYC = 96;parameter H_SYNC_BACK = 48;parameter H_SYNC_ACT = 640; /parameter H_SYNC_FRONT= 16;parameter H_SYNC_TOTAL= 800; / 96+48+640+16=800 row parameter X_START = H_SYNC_CYC+H_SYNC_BACK;parameter Y_START = V_SYNC_CYC+V_SYNC_BACK; / 2 + 32=34 before 480 always (posedge iCLK or negedge iCLRN) begin if(iCLRN = 0) vga_clk = 1b1; else vga_clk = vga_clk; end always (posedge vga_clk or negedge iCLRN) beginif(iCLRN=0) H_count = 10d0;else if(H_count = H_SYNC_TOTAL) H_count = 10d0;else H_count = H_count + 10d1;end always (posedge vga_clk or negedge iCLRN) begin if(iCLRN=0) V_count = 10d0;else if(H_count = H_SYNC_TOTAL) beginif(V_count = V_SYNC_TOTAL) begin V_count = 10d0;endelse V_count = V_count + 10d1;endend assign video_out=(H_countX_START)(H_countX_START+H_SYNC_ACT)(V_countY_START)(V_countY_START+V_SYNC_ACT);assign oVGA_SYNC_N = 1b0;assign oVGA_BLANK_N = oVGA_HS oVGA_VS;assign oVGA_CLOCK = vga_clk;assign oVGA_HS = (H_count = 10d96);assign oVGA_VS = (V_count = 10d2); always(posedge iCLK) if( video_out) begin if(H_count X_START H_count X_START+640V_countY_STARTV_countY_START+480) oVGA_R = 1111111111 ; oVGA_G =0; oVGA_B =0; endendmodule测试结果部分编码结果编码中间生成部分结点测试生成文件pic.GCL解码部分结果生成pic.txt测试案例2:验证UART传输的正确性 利用串口由文件中读取数据,nios接收收据后将数据返回并显示,对比发送接收过程是否有数据丢失。确保数据正常的传输。软件功能定义 LCD完成数据的显示。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_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 , 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 Command)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 /*延时*/ 测试文件为licence.txt文件文件内容为ALTERA PROGRAM LICENSE SUBSCRIPTION AGREEMENTPLEASE REVIEW THE FOLLOWING TERMS AND CONDITIONS CAREFULLY BEFORE INSTALLING OR USING THE SOFTWARE PROVIDED TO YOU ON DVD, VIA A WEB-SITE, OR ON ANOTHER MEDIUM OR THROUGH ANOTHER DELIVERY MECHANISM. BY INSTALLING OR USING THIS SOFTWARE OR PAYING A SUBSCRIPTION FEE, YOU INDICATE YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS, WHICH CONSTITUTE THE LICENSE AGREEMENT (AGREEMENT) BETWEEN YOU AND ALTERA CORPORATION OR THE ALTERA CORPORATION SUBSIDIARY FROM WHICH YOU HAVE ACQUIRED THIS LICENSE (COLLECTIVELY ALTERA). HOWEVER, THIS SOFTWARE MAY CONTAIN PARTICULAR COMPONENTS, FILES OR PORTIONS WHICH ARE SUBJECT TO SEPARATE LICENSE AGREEMENTS WITH DIFFERENT TERMS AND CONDITIONS. IN EACH SUCH CASE, THE APPLICABLE TERMS AND CONDITIONS ARE SET FORTH IN A FILE (CALLED LICENSE.TXT) IN A SEPARATELY MARKED SECTION, WHERE TERMS AND CONDITIONS SET FORTH EXCLUSIVELY GOVERN THE NAMED COMPONENTS. IN THE EVENT THAT YOU DO NOT AGREE WITH ANY OF THESE TERMS AND CONDITIONS, DO NOT DOWNLOAD, COPY, INSTALL OR USE THIS SOFTWARE; IF YOU HAVE RECEIVED A COPY ON COMPACT DISC OR ANOTHER MEDIUM, PLEASE PROMPTLY RETURN THE SOFTWARE UNUSED TO ALTERA.IF YOU WISH TO PRINT OUT THIS PROGRAM LICENSE SUBSCRIPTION AGREEMENT, YOU SHOULD HIGHLIGHT THIS TEXT, RIGHT-CLICK, SELECT COPY THEN PASTE IT INTO A DOCUMENT IN YOUR WORD PROCESSING PROGRAM.串口测试结果文件传输功能正确八、 开发环境Quartusii 8.0 IDE Niosii Altera公司DE2-35开发板九、 人员分配小组成员任务完成质量郭从林Huffman算法编解码实现基本完成朱潮勇VGA接口实现,sdram调度部分完成程亭文件传输系统及接口实现基本完成杨欢LCD测试完成十、 结束语 1)对技术报告进行总结; 本文主要研究JPEG静态图象压缩编码技术,并在Nios系统中完成了图像压缩系统。主要工作在于: (1)设计基于SOPC技术的Huffman编码解码系统 使用FPGA和一些比较通用的器件设计并实现了图像压缩系统,该压缩系统在一块FPGA上实现了vga接口处理器。 (2)完成了图像压缩解码系统的编程 主要介绍了Huffman的解码原理和Nios IDE实现了该算法。在软件设计中配置完成了Nios操作系统,并完成了系统软件和一些外围硬件的驱动。并且结合Huffman算法原理和FPGA的硬件平台和嵌入式编程环境,较好地实现了Huffman算法的编码解码。 2)提出项目的改进;希望在以后可以通过硬件实现Huffman算法 2)对开发过程出现的问题进行总结特别是传输文件时的传输速度与解码的速度无法匹配,从而要调用sdram。而在控制sdram时的时序调整有较大困难。参考书1.吕凤军.数字图像处理编程入门,清华大学出版社,1999, 287312.2.林福宗.多媒体技术基础,清华大学出版社,2000, 178200.BHASKARAN, V., KONSTANTINIDES, K. (Image and Video Compression StandardsAlgorithms and Architectures一Second Edition).Kluwer Academic Publishers, USA,1999.3.汪宇.JPEG高速编码芯片的设计及其性能优化,西北工业大学硕士学位论文,2006.2.4.任爱锋,初秀琴等.基于FPGA的嵌入式系统设计.第一版.西安:西安电了科技大学出版社,2004, 9一535.潘松,黄继业.EDA技术实用教程.第一版.北京:科学出版社,2002,32546.任艳颖,土彬.IC设计基础.西安电了科技大学出版社.2003.5:342.7.吴继华,土诚.Altera FP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论