登录
|
注册会员
开启辅助访问
设为首页
收藏本站
扫一扫关注官方微信
论坛
BBS
M币充值
M currency prepaid phone
M币获取
附件中心
搜索
search
全新论坛MCU智学网上线,欢迎访问新论坛!稀缺资源、技术干货、参考设计、原厂资料尽在MCU智学网
MCU资讯论坛
»
论坛
›
单片机论坛
›
单片机应用于方案
›
基于SoPC的二维IDCT分布式算法的IP核研究
更新自动建库工具PCB Footprint Expert 2023.13 Pro / Library Expert 破解版
基于SoPC的二维IDCT分布式算法的IP核研究
[复制链接]
1014
0
ad***
管理员
发表在
嵌入式/ARM
2013-3-20 15:22:22
|
查看全部
|
阅读模式
本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要
登录
才可以下载或查看,没有帐号?
注册会员
x
摘 要:
关键词:
可编程片上系统; IP核; 离散余弦逆变换; 分布式算法; 偏移二进制编码
离散余弦变换(DCT)是最广泛使用的图像和视频压缩变换编码方法之一,它可以去除数据之间的相关性、聚集图像中的能量,使数据便于压缩,是目前大多数图像和视频编码标准(如JPEG、H.26x系列、MPEGx系列标准等)的核心。在图像和视频解码系统中,则使用离散余弦逆变换(IDCT)对数据进行还原,而常用8×8的二维离散余弦逆变换(2D IDCT)的运算量较大,直接影响到图像和视频解码系统的实时性。本文在基于SoPC视频解码系统设计中,考虑到充分利用SoPC具有的软硬件协同设计优势,对二维IDCT优化的硬件设计与实现进行了研究。
研究采用IDCT的分布式算法(DA),并结合偏移二进制编码(OBC)的查找表方式,设计基于SoPC解码系统8×8的二维 IDCT IP核。在以Nios II处理器为核心的SoPC视频解码系统中,该 IP核设计满足Avalon总线标准的接口。经综合测试表明,该IP核的应用提高了解码的实时性,具有一定的应用价值。
1 IDCT算法
1.1二维IDCT分解
8×8二维IDCT的定义式[1]如下:
其中Fx,y为DCT变换后的系数,fi,j为原始数据,当x,y=
从式(9)可以看出,如果预先计算好部分和Dj并存入查找表,则通过移位累加操作,同样可以计算出向量内积Px。dij的取值只可能是-1或+1,部分和Dj关于向量d的正负值成镜像对称。下面以计算P1为例,来说明这种部分和的对称关系:
2 二维IDCT硬件设计
2.1 二维IDCT硬件结构
设计方案利用2D IDCT的行列分解特性,使用一个1D IDCT核、8×8转置RAM和复用器等模块来构成2D IDCT硬件系统。2D IDCT的结构框图如图2所示。
图中,串并转换缓冲器,每收到8个数据后将其作为一行数据同时输出,该模块还是输入数据的缓存模块。并串转换缓冲器功能与此模块类似。转置RAM用来完成8×8数据的行列转换,按行输入按列输出。1D IDCT模块为整个IP的核心,用来计算8点1D IDCT的值。控制器负责整个IP核的工作时序,保证其运行无误。工作时先按行顺序读入数据,然后由1D IDCT计算每行8点的逆变换值,再按行顺序写入转置RAM中,然后控制器切换复用器,按列顺序从转置RAM中读出数据,计算每列IDCT值后按列顺序写入输出缓存,最后按行顺序读出最终结果。
2.2 一维IDCT硬件设计
实现2D IDCT硬件的关键是如何实现1D IDCT。本设计使用OBC编码的分布式算法来完成1D IDCT的硬件设计,其核心是4输入的移位累加模块的设计,其结构如图3所示。移位累加模块可以计算一个乘积和,并行使用8个移位累加模块及1个后处理模块,组成完整的1D IDCT模块。后处理模块用于式(5)、式(6)的计算,其输出为最终8点1D IDCT的结果。在设计移位累加器时,要注意初始值Dapp的设置。在视频解码系统中,对IDCT输出数据的准确性较敏感,对数据的舍入要求较高。因此设计时,对输出数据采用四舍五入,将累加器的初始值加上4 096,右移13次后将输出结果补偿0.5。
图4为1D IDCT的硬件结构图。1D IDCT模块的输入数据精度为13 bit,输出为16 bit。其中移位寄存器输入13 bit,输出为8 bit。为防止数据溢出,移位累加器的输出为14 bit,而非13 bit。经后处理模块将精度扩展为16 bit后,作为最后结果输出。
1D IDCT是整个设计的核心,该模块功能的正确与否将影响整个系统的性能。
2.3 Avalon总线接口2D IDCT IP核设计
基于SoPC视频解码中,IP核还应包含Avalon总线接口以及控制寄存器组。Avalon总线接口包含对总线进行读写操作,它是2D IDCT IP核与Avalon总线数据传输的桥梁[5]。通过接口模块,可以将IP核加入到SoPC系统中。控制寄存器组用于存储控制状态字,以及控制IP核的参数数据[5]。
图5为基于Avalon总线接口的2D IDCT IP核的总体结构图。
Avalon总线读取模块根据寄存器中的操作地址,将要处理的64个数据读入输入缓存,经2D IDCT模块处理后由总线写入模块将结果写回原地址。模块运行时,首先向控制寄存器写入控制数据,然后IP核发起总线数据读取操作,等IP核接收到Avalon总线返回的数据后开始对数据进行处理,最后再将结果写回Avalon总线。
3 二维IDCT IP核的综合与测试
3.1 二维IDCT IP核的综合
使用以Cyclone II EP2C35F672C8
FPGA
芯片为核心的SoPC开发平台,硬件设计使用Verilog HDL硬件描述语言编写,在Quartus II软件进行综合,综合报告如图6所示。由此可见,整个2D IDCT占用了4 336个逻辑单元,核心模块1D IDCT只占用了632个逻辑单元。8个查找表模块直接使用了FPGA逻辑单元内的查找表LUT,没有寄存器或内置RAM。这种查找表模块的实现方式简单灵活,并且芯片访问速度快。2D IDCT IP核的最高可综合工作频率为140.39 MHz。其时序分析报告如图7所示。
3.2 二维IDCT IP核的SoPC测试结果
在以Nios II 为处理器的SoPC系统中,进行实际视频解码测试。将 IDCT IP核添加到SoPC Builder中,将编码过的视频测试文件烧入到Flash中,移植解码程序到Nios II IDE中,删除原有的IDCT软件函数,用C语言编写2D IDCT IP核的驱动函数。经系统解码后,通过带VGA接口的LCD进行播放[6]。
测试结果看出系统加入IDCT IP核后,LCD显示画面清晰,没有降低系统的解码质量。
对于不同的测试视频,解码速度是有差异的,为了能更准确地测试出IP核的性能,本研究选用了多个视频文件进行比较如表1所示。从表1可以看出,加入2D IDCT IP核以后, 解码每帧所需时间平均减少了约6 ms,帧率平均提高了6~8帧,使系统的解码速率平均提高了20%以上。
本文研究设计的2D IDCT IP核针对FPGA的硬件特点,采用分布式算法实现乘法累加模块,使用OBC编码减小了查找表的大小,节省了FPGA资源,优化了硬件设计。
该IP核的研究基于先进的SoPC技术,应用于视频解码系统中,结果表明,该IP核很大程度上提高了视频解码速度,增强了视频解码系统的实时性。由于SoPC的IP核复用技术,该设计将具有很强的实用性、通用性和扩展性。
参考文献
[1] RICHARDSON I E G.视频编解码器的设计-开发图像与视频压缩系统[M]. 北京:国防科技大学出版社, 2005.
[2] CHEN W H. A fast computational algorithm for the discrete cosine transforms [J]. IEEE Transactions on Communications, 1977,25(9):1004-1009.
[3] 梁刚.分布算术的并行计算技术研究[J]. 微电子学与计算机, 2009(5).
[4] 纪秀花.用查表法快速实现二维8×8离散余弦逆变换的研究[J]. 电子学报,2008(4):639-645.
[5] 刘家良,任怀鲁,陈新华.AVS视频解码中帧内预测模块的硬件化设计及SOPC验证 [J].电子技术应2009,
35(10):18-21.
[6] Altera. Avalon Interface Specifications [DB/OL].2009-11.
举报
回复
返回列表
*
滑块验证:
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册会员
本版积分规则
发表回复
回帖后跳转到最后一页
回复
转播
评分
分享
打开支付宝扫一扫,最高立得1212元红包
搜索
本版
帖子
用户
热搜:
传感器
51串口程序
电子管放大器
夾式電表
夾式電流
Mentor论坛
打印机
版块推荐
百宝箱
My 布拉格
无边框Z9
Z9Max
Z9mini
nubia动态
问题 & 建议
资源分享
爱拍
同城会
牛仔生活
查看论坛所有版块>>
每日签到
论坛任务
摄影技巧
跳蚤市场
互助问答
论坛导读
申请内测
红包中心
每日摇一摇
活动中心
网站地图
官方旗舰店
图文热点
可支持12×8的点阵大电流数码管驱动数显LED
产品品牌:永嘉微电/VINKA 产品型号:VK16K33BA 封装形式:SSOP24 概述 VK16K33
VK16K33B SOP24高亮数码管显示驱动/LED驱动
产品品牌:永嘉微电/VINKA 产品型号:VK16K33B 封装形式:SOP24 概述 VK16K33B
数显屏驱动选型方案/电子烟触摸触摸选型方
什么是电子烟,公开资料显示,电子烟主要由烟油、加热系统、电源和过滤嘴四部分组成,
永嘉微电电子烟LED显示驱动/触摸选型方案
什么是电子烟,公开资料显示,电子烟主要由烟油、加热系统、电源和过滤嘴四部分组成,
电子烟触摸芯片应用方案/LCD液晶显示方案
什么是电子烟,公开资料显示,电子烟主要由烟油、加热系统、电源和过滤嘴四部分组成,
更多
精华推荐
可支持12×8的点阵大电流数码管驱动数显LED
VK16K33B SOP24高亮数码管显示驱动/LED驱动
小白求教
数显屏驱动选型方案/电子烟触摸触摸选型方
永嘉微电电子烟LED显示驱动/触摸选型方案
电子烟触摸芯片应用方案/LCD液晶显示方案
LCD显示芯片解决方案/带屏幕电子烟显示方案
带触摸的电子烟LED数显驱动解决方案
更多
社区学堂
可支持12×8的点阵大电流数码管驱动数
VK16K33B SOP24高亮数码管显示驱动/LED
可支持12×8的点阵大电流数码管驱动数显LED
产品品牌:永嘉微电/VINKA 产品型号:VK16K33BA 封装形式:SSOP24 概述 VK16K33
VK16K33B SOP24高亮数码管显示驱动/LED驱动
产品品牌:永嘉微电/VINKA 产品型号:VK16K33B 封装形式:SOP24 概述 VK16K33B
数显屏驱动选型方案/电子烟触摸触摸选型方
什么是电子烟,公开资料显示,电子烟主要由烟油、加热系统、电源和过滤嘴四部分组成,
更多
客服中心
QQ:187196467
服务时间:周一至周日 8:30-20:30
在线客服
客服微博
产品咨询
售后中心
关注我们
关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
QQ:187196467
周一到周日 8:30-22:00 (全年无休)
7 x 24小时在线客服
手机版
Powered by
MCUZX!
X3.4 © 2008-2015
MCU资讯论坛
版权所有
京ICP备18035221号-2
客服QQ: 187196467
技术支持:
MCU资讯论坛
|
网站地图
快速回复
返回顶部
返回列表