首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
ARM
» 基于双FPGA+ARM架构的图像压缩系统
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于双FPGA+ARM架构的图像压缩系统
发短消息
加为好友
苹果也疯狂
当前离线
UID
852722
帖子
10369
精华
0
积分
5185
阅读权限
90
在线时间
277 小时
注册时间
2011-8-30
最后登录
2016-7-18
论坛元老
UID
852722
1
#
打印
字体大小:
t
T
苹果也疯狂
发表于 2015-6-30 21:03
|
只看该作者
基于双FPGA+ARM架构的图像压缩系统
解决方案
,
计算机
,
linux
,
分辨率
,
嵌入式
目前的图像压缩存储方案大都无法支持高分辨率图像。另外,在一些DSP解决方案中,因为DSP接口不灵活以及DSP本身处理能力的限制,很难支持高分辨图像压缩。 本设计开发出了一套基于双FPGA+ARM架构的高速计算机屏幕
图像压缩系统
。系统通过对图像压缩系统任务的划分,利用FPGA的并行计算能力和灵活的编程方式,完成图像压缩算法。对于压缩后的码流,系统采用ARM管理,基于linux的嵌入式ARM系统能够以文件的形式存储码流,另外,ARM对网络和音频常用设备能方便地管理。系统支持主流接口(VGA,DVI),压缩后的码流可以存储在本地硬盘,也可以通过网络发送到远端服务器。双FPGA的设计对计算机屏幕图像压缩更为方便,原始图像经过前端预处理FPGA进行帧间检测,以决定该帧图像进入主FPGA的压缩模式,主FPGA为核心压缩引擎,负责完成高速图像压缩算法。
1 系统架构与实现
系统整体架构如图1所示,采用双FPGA+ARM架构,主要包括图像前端预处理、图像压缩模块和码流管理部分。
前面一块FPGA完成前端预处理,如分辨率检测、色彩转换和图像分析等功能;后面一块FPGA用来实现图像实时压缩,其中ARM对系统进行管理,如压缩后码流管理、网络管理和音频录制等。
1.1 预处理模块
本系统同时支持VGA、DVI两种主流显卡接口。采用AD9888[2]作为视频模数转换器,TI公司的TFP403[3]为DVI接收芯片。Xilinx公司Virtex4[4](XC4VLX40)完成图像预处理,主要包括图像数据的采集、色彩空间转换和帧间检测。前端处理模块如图2所示。
1.1.1 图像数据采集
预处理FPGA接收到的图像数据为接口芯片送来的图像数据,包括像素时钟信号(PCLK)、场同步信号(VSYNC)、行同步信号(HSYNC)以及数据信号(R[7:0],G[7:0],B[7:0])。图像数据的采集包括判断图像分辨率和提取图像数据两个步骤。
当前的计算机屏幕分辨率很多,工业VGA标准规定了各种分辨率的像素时钟及场、行同步信号时序,根据相邻场同步信号(VSYNC)之间行同步信号(HSYNC)数目,以及相邻行同步信号(HSYNC)之间像素时钟(PCLK)数目识别VGA信号分辨率。根据场同步信号(VSYNC)和行同步信号(HSYNC)提出图像数据。
1.1.2 色彩空间转换
VGA输出为RGB信号,而人眼对图像的亮度分量更为敏感,所以,对图像数据进行色彩空间转换,将RGB信号转换为YUV信号,转换公式:
系统实现时采用4:2:2采样模式,FPGA采用定点化处理后,得到亮度分量Y 和色度分量UV。
1.1.3 帧间检测
帧间检测的核心思想是对比相邻两帧图像,判断每个像素点是否变化。以3×3的块为判断单元,如果有变化则将该像素位置和像素值都存起来;如果没有变化则不传输这些信息。当得到了一个4×4的块以后把这个16个点的信息作为一个整体传给后面的模块,然后统计1帧图像总的码流大小。如果该值低于一个设定的阈值,则认为当前帧没有变化,直接传当前帧变化部分的像素和位置信息到后面的码流整理模块;如果统计后码流的大小大于设定的阈值,则将当前帧送入LX100中进行压缩。
1.2 图像压缩模块
图像压缩为系统核心模块,该压缩引擎包括小波变换和熵编码,算法全部由系统主FPGA完成。该FPGA芯片选用Xilinx公司的Virtex4[4]系列FPGA(XC4VLX160)。图像压缩引擎结构如图3。
在系统算法设计中,图像小波变换采用了基于离散小波变换的空间推举算法(SCLA)[5]。不同于传统的离散小波变换(DWT),SCLA对行与列同时进行变换,其乘法次数是小波变换算法中最少的,而重建图像质量也很高,PSNR值优于JPEG,接近JPEG2000。编码算法采用了改进的无链表零树编码算法(SLC),该算法综合了多层次零树编码算法(SPIHT[6])和无链表零树编码(LZC[7])的特点,在性能上优于LZC,逼近SPIHT,而且易于硬件实现。
系统的架构由FPGA和两片外部SDRAM实现。SDRAM用于缓存小波变换后的小波系数。FPGA完成小波变换算法SCLA和熵编码算法SLC。SCLA算法由5个流水线小波滤波器完成,每个滤波器完成一层小波分解,而小波分解运算需要乘法器,在FPGA芯片选型时,根据小波滤波器中需要乘法器的个数选择FPGA。在本系统中,5个流水的小波滤波器包括36个乘法器,对于亮度分量Y和色度分量UV两路数据并行处理,则需要72个乘法器,而在Virtex4系列FPGA(XC4VLX160)中有96个DSP单元。由小波变换得到小波系数,系统设计时采用2片外部SDRAM和FPGA片内SRAM结合的方法缓存小波系数。对于亮度分量Y和色度分量UV两路数据并行处理以提高系统吞吐量,SDRAM1和SDRAM2分量用来缓存Y和UV的小波系数。熵编码算法SLC负责对小波系数编码,该算法以一棵小波树为基本处理单元,即当前端小波系数构成一棵小波树时,熵编码模块便启动编码,从而完成一帧图像所有小波树的编码。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议