微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于多DSP+FPGA的卫星遥感图像压缩系统设计

基于多DSP+FPGA的卫星遥感图像压缩系统设计

时间:08-21 来源: 点击:

目前的卫星遥感图像压缩系统硬件方案大多基于高性能可编程逻辑器件FPGA[2-4]。但这种方案整系统成本居高不下,且FPGA存在单粒子翻转效应。因此,笔者提出一种多DSP+FPGA的硬件设计结构,使用DSP取代FPGA完成核心算法,而仅用一个FPGA进行管理和控制。该硬件设计成本较低。

  1 基于双正交叠式变换的低复杂度图像压缩方法

  1.1 双正交重叠变换的快速整数实现

  在有损压缩中,通常先对图像矩阵进行正交/双正交变换,使能量分布集中,表示更为稀疏。离散余弦变换(DCT)由于具有良好的去相关效果,并且存在相应的快速算法,应用广泛。双正交重叠变换继承了DCT 计算简便、存储要求低的特点,同时克服了DCT的块效应。这里以LBT为蓝本提出双正交重叠变换的快速整数实现算法,所有系数均采用分母为2的幂、分子为整数的分数近似,从而使整个变换过程只需要整数加法和位移运算。图1给出了一维binLBT的实现流程,二维变换按先行后列的顺序分别进行一维变换。  

  1.2 零树编码的简化与改进

  SPIHT作为一种高效零树编码方法,对位平面进行了集合划分,将大量的非重要位0集中到几个具有特定模式的集合里面,并对含有重要位的此类集合进行划分,直至将集合划分为具体的元素。LBT系数块中存在着类似零树结构。图2中给出了模仿小波变换中树结构的LBT块变换中的零树划分方法,其中每一个线框对应着一个系数,实线则将64个系数分为10个子带。由于块变换具有集中能量的作用,系数的能量由左上到右下逐渐减少。  

  在每一子带中,首先使用Golomb方法编码,再将其输出码流输入到MQ编码器,进行下一步的编码。零树编码过程应用了零树结构中父子节点间的相关性,需要在已知父节点的情况下定位它的子节点。因此,在LBT系数输出后进入编码器前,利用线性索引的方法对LBT系数重新排序,将其放置在一维数组里。

  2 并行多DSP+FPGA的硬件设计方案

  2.1 系统硬件整体框图

  数据压缩系统硬件总体框图如图3所示。2x-1路串行CCD数据通过LVDS接口多路并行进入FPGA进行时序转换,每个DSP通过两个串口以EDMA方式从FPGA读取两路相机数据并缓存、压缩编码,整个数据压缩系统需要x个DSP并行处理。压缩后码流数据通过串口输出到FPGA,FPGA重新缓存、组帧、时序转换后输出到固存设备。码流数据输出、遥控指令输入、遥测信号输出和电源的接口均通过底板总线和数传综合处理器连接。

  2.2 器件选择

  DSP选择TMS320C6416,它是TI公司于2000年推出的一款具有C64XX系列新内核的高性能DSPs芯片。TMS320C6416采用一种高性能的先进的VLIW(非常长指令字)结构,其内部具有8个并行处理单元。因单指令字长为32位,8个指令可组成长达256位的指令包,由内部专门的指令分配模块同时分配到8个处理单元同时运行。因此在600MHz主频时,TMS320C6416的最大处理能力高达4800MIPS(百万条指令/秒)。TMS320C6416核心电压为1.2V,外围电压为3.3V,主频为400MHz"1GHz,并且在600MHz主频下,能够提供833B级器件。

  FPGA选用X2V3000-5FG676C,该型号属于Xlinix公司的Virtex-II系列,300万门,676个管脚中包括484个I/O管脚。Xlinix FPGA的基本特点是由可配置逻辑块(CLB)、输入/输出块(IOB)以及可编程互连资源组成,另外还包括三态缓冲器、全局时钟缓冲器和边界扫描逻辑。CLB中包含有查找表(LUT)、寄存器和进位逻辑,IOB中包含DDR寄存器。存储器资源主要包括分布式SelectRAM/ROM以及18KB的块状SelectRAM。

  2.3 接口设计

  线阵CCD相机图像灰度数据以串行方式及LVDS信号电平输出。为了便于DSP串口接收,由FPGA进行电平转换,并依据相关串行协议进行时序转换。而压缩图像编码则经DSP串口输出,由FPGA进行电平转换,并依据压缩机输出接口时序进行相应的转换。

  遥控机输出线有指令线、地线,在使用端上拉。指令整形输出后如需要负脉冲可再外加一级反相器或在FPGA内部实现。遥测接口分为模拟遥测、数字遥测和数据遥测三部分,模拟遥测主要针对电源(5V、1.5V、1.4V等)进行遥测,遥测输出电平为0~5V;数字遥测主要对分机中关键器件工作状态进行遥测,遥测输出电平为TTL电平;数据遥测主要对内部运行状态进行遥测。

  3 压缩算法在DSP实现中的关键技术及并行处理

  3.1 C6000系列CPU结构与流水线

C6000系列CPU采用哈佛结构,指令取指与执行可以并行运行。程序总线宽度为256bit,每一次取指操作都是取8条指令,成为一个取指包。取指、指令分配和指令译码都具备每周期读取并传递8条32位指令的能力。C64xx系列CPU有两个数据通路A和B,每个通路有4个功能单元(.L、.S、.M和.D),不同的8个功能单元中的指

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top