Loading
新闻中心库存中心价格中心PDF中心图片中心
ICGLE 电子技术支持中心,为电气人员和相关企业提供全面的信息(IC技术\IC库存\IC图片\PDF资料等)服务
总线设计PCB设计单片机DSPARM
JAVA驱动设计C/C++汇编J2EE网络协议中间件技术嵌入式系统无线通信通信网络模拟技术接口电路显示光电传感与控制EDA/PLD
气流体控制电子产品电机及工具通信设备仪器仪表电线电缆建筑电气低压电器高压电器电源工控自动化广电设备医疗器械More..
电源设计仪器仪表技术专递电路图片电子专栏储存技术汽车电子测量测试音响技术家用电器
成功方案市场分析行业标准应用前沿芯片应用综合专区
基于Nios II的JPEG图像显示系统研究
来源:电子开发网   作者:郭晓河
字体大小:[大][中][小]

  随着多媒体通信技术的发展,人们不再满足单一文字或声音的传递,从普通电话到视频电话,从SMS(short messaging service)到EMS(enhanced message service)再到MMS(multimedia messaging service),多媒体技术逐渐进入千家万户。因此,研究如何高效地处理多媒体信源,让其更方便有效地存储和传输是非常必要的。JPEG标准作为图像压缩编码的一项重要技术,不仅适用于静止图像的编码,其分支M-JPEG也适用于低成本场合的运动图像编码。现在的图像显示卡已发展到高速处理3D图像的水平,但是,对静止图像JPEG压缩的评测仍是一项基本指标。
   
  目前的嵌入式处理器种类繁多。Altera公司的Nios II处理器是用于可编程逻辑器件的可配置的软核处理器,与Ahera的低成本的Cyclone FPGA组合,具有很高的性价比。本系统采用Nios II和CycloneEP1C6嵌入式系统开发板,以及VGA显示器,实现了一个嵌入式JPEG图像显示系统。

  1 总体设计及系统架构
   
  JPEG图像显示系统有三大功能:JPEG图像的存储、解码和显示。基本原理如图1所示。利用串口通信、USB接口或以太网数据传输获取JPEG图像压缩数据并将数据存入高速存储器(Flash或SRAM);图像的解码主要包括预处理、Huffman解码、反量化、IDCT变换;图像显示是将解码后的图像数据转换为适合VGA工业标准的RGB信号,再利用D/A转换,最后显示原始图像。

  该系统在结构上分为3层:系统硬件平台、操作系统和基于IDCT解码算法。最底层是系统硬件平台,是系统的物理基础,提供软件的运行平台和通信接口。系统的硬件平台在Altera的Nios II Cyclone嵌入式系统开发板上实现,显示器采用VGA标准的显示器,可输出大小为640×480像素、分辨率为500 dpi的24位真彩色图像。第2层是操作系统,采用uCOS II。uCOS II是一个基于抢占式的实时多任务内核,可固化、可剪裁、具有高稳定性和可靠性。这一层提供任务调度以及接口驱动,同时,通过硬件中断来实现系统对外界的通信请求的实时响应,如对以太网数据流传输的控制、对串口通信的控制等。这种方式可以提高系统的运行效率。最上层是JPEG图像解码核心算法的实现。该算法高效地对压缩图像数据进行解码处理和空间域的转换。采用C语言在Nios II的集成开发环境(IDE)中实现。

  2 系统硬件的设计与实现

  2.1 NiosⅡ 嵌入式软核处理器简介
   
  Nios II嵌入式处理器是Altera公司于2004年6月推出的第2代用于可编程逻辑器件的可配置的软核处理器,性能超过200 DMIPS。基于哈佛结构的RISC通用嵌入式处理器软核,Nios II能与用户逻辑相结合,编程至Altera的FPGA中。处理器具有32位指令集,32位数据通道和可配置的指令以及数据缓冲。它特别为可编程逻辑进行了优化设计,也为可编程单芯片系统(SoPC)设计了一套综合解决方案。Nios II处理器系列包括3种内核:一种是高性能的内核(Nios II/f);一种是低成本内核(Nios II/e);一种是性能/成本折中的标准内核(Nios II/s),是前两种的平衡。本系统采用标准内核。
   
  Nios II处理器支持256个具有固定或可变时钟周期操作的定制指令;允许Nios II设计人员利用扩展CPU指令集,通过提升那些对时间敏感的应用软件的运行速度,来提高系统性能。

  2.2 硬件平台结构
   
  系统的硬件平台结构如图2所示。本系统采用USB至UART桥接器CP2102实现与上机位的通信。由Silicon Laboratories推出的CP2102,使RS232升级到USB接口更加简单,原先采用RS232串口通信方案的设备在软件上无需作改动即可直接升级到USB。CP2102内建EEPR0M、稳压器、USB收发器和整合式内部振荡器。这套组件还包含完整的USB2.0全速(ful1.speed)装置控制器、桥接控制逻辑以及传送/接受缓冲器和调制解调器商议讯号(handshake signa1),这些功能全都整合至5 mm×5 mm的小型封装内。图像数据传输的流程是:首先初始化串口UART的各个寄存器,主要是接受寄存器(rxdata)、发送寄存器(tx.data)、状态寄存器(status)、控制寄存器(contro1)、波特率分频器(divisor)等;然后传输等待,图像数据以1 15 200 bps的速率进人数据寄存器,再通过DMA存入Flash。

  本系统硬件平台主要是在Nios II Cyclone嵌入式开发板上实现。系统的主要组件,包括Nios II的标准内核、片内存储器、UART、DMA控制器、并行I/O接口、Avalon总线、定时器等都集成在一块Ahera的cyclone FPGA芯片上,使用SoPC Builder来配置生成片上系统。
   
  SoPC Builder是功能强大的基于图形界面的片上系统定义和定制工具。SoPC Builder库中包括处理器和大量的IP核及外设。根据应用的需要,系统选用Nios II Processor、On Chip Memo~、Flash Memo~(Common Flash Interface)、SDRAM Controller、UART、DMA、Interval timer、Seven Segment PIO、Avalon Tri StateBridge、Ethernet Interface等模块。对这些模块配置完成后,使用SoPC Builder进行系统生成。SOPC Builder自动产生每个模块的HDL文件,同时自动产生一些必要的仲裁逻辑来协调系统中各部件的工作。

  2.3 使用Nios II的定制指令提高系统性能
   
  使用Nios II的定制指令,可以将一个复杂的标准指令序列简化为一个用硬件实现的单一指令,从而简化系统软件设计并加快系统运行速度。Nios II的定制指令是与CPU的数据通路中的ALu相连的用户逻辑块。其基本操作是,接收从dataa和/或datab端口输入的数据,经过定制指令逻辑的处理,将结果输出到result端口。
   
  JPEG图像解码的核心算法是离散余弦反变换IDCT,二维DCT/IDCT变换需要经过两次矩阵乘法,8*8的图像子块的DCT/IDCT需要进行8 192次乘法和3 584次加法。基于Nios II的JPEG图像显示系统采用w Li循环斜卷积算法,在保证不增加加法器个数的同时,大大减少了乘法器数目,改进了传统的DCT/IDCT硬件实现方法,采用流水线结构,实行并行优化算法,提高了IDCT模块的运算速度,减小了延迟。
   
  定制指令逻辑和Nios II的连接在SoPC Builder中完成。Nios II CPU配置向导提供了一个可添加256条定制指令的图形用户界面,在该界面中导入设计文件,设置定制指令名,并分配定制指令所需的CPU时钟周期数目。系统生成时,Nios II IDE为每条用户指令产生一个在系统头文件中定义的宏,可以在C或C++应用程序代码中直接调用这个宏。

  3 系统软件的设计与实现
   
  本系统的JPEG图像处理和解码算法采用c++语言在Nios II IDE中实现 。JPEG图像解码算法的流程如图3所示。

  预处理算法需要识别不同的标记码,并提取标记码中的有用信息。JPEG图像文件可分为2个部分:压缩数据和标记码。压缩数据是以MCU(最小编码单元)形式存储的经过压缩编码后的数据。标记码给出了诸如图像长度、宽度、量化表、Hufman表等重要信息,而这些信息都包含在不同类型的标记码中。对一个MCU进行Hufman解码,需在完成亮度解码后才能进行色度解码。解码后得到6个具有64位元素的一维数组,分别是:4个Y亮度数组、1个cb色度数组、1个cr色度数组(4:1:1模式)。对一个数组来说,Huffman解码包括直流解码和交流解码。对数组第一个元素的解码称为直流解码(简记为DC解码),对剩下的63个元素的解码称为交流解码(简记为AC解码)。JPEG文件中一般包含4个Hufman表,即亮度DG表、AC表,色度DC表、AC表。一个Huffman码包括码头和码值2部分,码头用来惟一的标识该Hufman码,并与Hufman表一一对应,码值是该码的实际大小。
   
  量化运算需要量化表的配合。从JPEG文件中读取的量化表一般有2个,分别用2个64位元素的一维数组来存储,用于对亮度和色度进行反量化。反量化运算就是将上面经Huffman解码得到的数组中的元素与量化表中对应位置元素相乘。为了进行后面的IDCT,还需要将完成反量化运算的数组进行z字型变换,将一维数组变换成8×8的二维数组。
   
  IDCT变换直接利用自定制指令快速完成8×8的二维数组的离散余弦反变换。后续处理的任务之一就是完成颜色空间的转换,即将JPEG图像数据的Y、cb、cr颜色空间转换为RGB颜色空间。但是,为了使计算出的R、G、B的值都是正数,需要对Y、cb、cr分别加128进行修正,同时乘法运算出现了浮点数,故需要对浮点数进行定标处理.

  4 结束语
   
  本文提出了一种基于Nios II嵌入式处理器软核的JPEG图像显示系统的实现方法。使用Altera的Cyclone FPGA实现,具有开发周期短、成本低等特点;同时,采用Nios II的定制指令来提高系统性能,利用硬件实现算法速度快的优点,使以Nios II处理器为核心的系统能够快速地完成大量图像数据处理。

Upload by 小刘(2007-10-30)
IC
·走近Caneland服务器平台
·FLCOS技术掀起消费电子设备显示革..
·飞思卡尔三轴加速计产品激发创新应用思..
·用FPGA设计MP3个人数字播放机
·便携式数字X射线光锥耦合CCD成像系..
·MPEG-4 ASP视频编码器的软件..
·数字卫星电视节目的加密与解密技术
·基于高端FPGA的IC验证平台的PI..
·弧焊电源保护电路的设计
·ESD保护元件的对比分析及大电流性能..
·饱和电感及在开关电源中的应用
·RF电路中LDO电源抑制比和噪声的选..
·一种新型开关电源模块均流技术的研究
·基于FPGA+PCI的并行计算平台实..
·基于Protel SDK的传输线分析..
·基于USB的高速硬件精插补器设计
·基于FPGA的32Kbit/s CV..
·高速嵌入式视频系统中SDRAM时序控..
·嵌入式应用中存储器类型的选择技巧
·基于NOR FLASH存储器的嵌入式..
·嵌入式系统中闪存设备I/O软件的设计..
·非标准化传感器信号调理的一种新方法
·一种高精度光纤Bragg光栅传感器解..
·基于DSP的线阵CCD实时测量系统设..
·使用单片机实现GPRS通信小系统的研..
·高速印制电路板的设计及布线要点
·RTP协议的IP电话QoS监测及提高..
·高精度的步进电机控制系统设计
·CY7C68013与FPGA接口的V..
·基于MiniGUI的机车显示终端图形..
·基于WiMAX网络的切换管理研究
·面向FTTH的EPON系统应用与管理
·浅析电气火灾自动保护型断路器的使用
·构建基于RTLinux的嵌入式系统研..
·基于MiniGUI的机车显示终端图形..
·突破新兴高效能电源要求上的限制(图)
·数字电源的特点与发展现状
·2007年及以后的电源驱动系统集成(..
·光电转换电源控制系统的设计(图)
·三相、三输出控制器节省了POL转换器..
IC
推荐技术文章:
·一种用于航天工程的二次电源系统设计(....
·基于AVR单片机PWM功能的数控恒流....
·基于片上状态机的智能电源管理单元设计....
·天线方向图自动测试系统的设计..
·基于GPRS的自动抄表系统设计..
·基于IEEE1451标准的IP传感器....
·基于FPGA的分布式算法FIR滤波器....
·基于单片机的舵机控制 ..
·针对高速PCB设计问题定义一体化的设....
·基于VxWorks的TrueFFS文....
·用SoC实现视频图形引擎功能 ..
·信产部副部长苟仲文强调政府大力支持I....
·基于ARM9的嵌入式网关的研究..
·基于TMS320F2812和μC/O....
·ADC时延和建立时间的区别..
·利用Astro-Rail分析FFT芯....
·数据融合在舰炮系统低角跟踪中的应用..
·低速率无线传感器网络演示系统的设计与....
·ARM多核和MIPS多执行绪嵌入式处....
·从ARM看企业的自我定位..
·浅谈ARM仿真器中的断点资源
·基于ARM处理器的MVB 2类设备研..
·基于TMS320F28XX UCD8..
·基于TMS320LF2407的馈线终..
·基于DSP的Max-Log-MAP算..
·采用集成DSP与微处理器内核的嵌入式..
·基于DSP的平流层验证飞艇组合导肮系..
·高速DSP与PC实现串口通信的方法
·基于DSP和CPLD的智能相机系统设..
·用SPI实现dsPlC与ISD语音芯..
·基于DSP的同步相量测量装置的研究
·FPGA-DSP 瞄准目标:用得起的..
·基于DSP的高速实时语音识别系统的设..
·基于89C51单片机的数字视频监控系..
·基于C8051F041的电力变压器非..
·用单片机和EDA协同设计温度采集系统
·服装生产自动熨烫系统设计
·AT89C52单片机的液位检测系统
·基于MSP430的卫星通信车载站手持..
·单片机+CPLD结构体系在电子设计中..
IC
IC

©2007 版权归ICGLE所有   页面执行时间:78.125毫秒