[发明专利]一种面向飞腾处理器的一维8点IDCT并行方法在审
申请号: | 201410835382.X | 申请日: | 2015-08-04 |
公开(公告)号: | CN104503732A | 公开(公告)日: | 2015-07-29 |
发明(设计)人: | 吴玲达;王宇;吕雅帅 | 申请(专利权)人: | 中国人民解放军装备学院 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F17/14 |
代理公司: | 中国人民解放军防化研究院专利服务中心 11046 | 代理人: | 刘永盛 |
地址: | 101416 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 飞腾 处理器 idct 并行 方法 | ||
技术领域
本发明涉及在国产飞腾处理器上将一维8点IDCT算法并行化的方法,尤其涉及图像与视频解码程序中所使用的IDCT算法。
背景技术
2维8×8IDCT计算是图像与视频解码中的常用变换,是图像解码中最耗时的变换计算。为了提升计算效率,在目前的图像与视频解码程序中,一般将2维8×8IDCT计算进行变换后用多个一维8点IDCT计算来完成。
飞腾处理器是由国防科技大学研发的一个单芯片多线程(CMT)处理器系列。飞腾系列处理器的VIS多媒体指令集可完成子字并行计算。在子字并行计算中,一个字就是一个数据集。子字是包含在字中的更低精度的数据单元。由于可将同样的指令应用于一个字中的所有子字,因此原来需要若干条指令才能完成的操作,可通过一条子字并行指令来实现。例如,如果一个字长是64位,则一个子字的大小可以是8位,16位和32位。这样,一条指令可以并行处理八个8位子字,四个16位子字,或两个32位子字。本发明利用飞腾处理器的VIS指令集实现一维8点IDCT算法的子字并行化,从而提升IDCT计算在飞腾处理器上的运算速度。
到目前为止,利用飞腾处理器的VIS指令集实现一维8点IDCT算法子字并行化的方法尚未见报道。
发明内容
本发明的目的在于利用飞腾处理器的VIS指令提升一维8点IDCT变换计算的效率。
本发明一种面向飞腾处理器的一维8点IDCT并行方法,该并行方法步骤如下:
令x(n)n=0,1,2,...,7为一维8点IDCT的输入,y(n)n=0,1,2,...,7为输出,x(n)和y(n)均为0至255之间的整数,则一维8点IDCT计算可表示为:
a0=x(0)*C4+x(2)*C2+x(4)*C4+x(6)*C6 y(0)=a0+b0
a1=x(0)*C4+x(2)*C6-x(4)*C4-x(6)*C2y(1)=a1+b1
a2=x(0)*C4-x(2)*C6-x(4)*C4+x(6)*C2 y(2)=a2+b2
a3=x(0)*C4-x(2)*C2+x(4)*C4-x(6)*C6 y(3)=a3+b3
b0=x(1)*C1+x(3)*C3+x(5)*C5+x(7)*C7 y(4)=a4-b4
b1=x(1)*C3-x(3)*C7-x(5)*C1-x(7)*C5 y(5)=a5-b5
b2=x(1)*C5-x(3)*C1+x(5)*C7+x(7)*C3 y(6)=a6-b6
b3=x(1)*C7-x(3)*C5+x(5)*C3-x(7)*C1 y(7)=a7-b7
其中ak和bk表示中间计算结果,k=0,1,2,...,7,Ck为常量,k=1,2,3,...,7,采用飞腾处理器的VIS指令集将一维8点IDCT计算并行化的步骤如下:
(1)将所有Ck乘以214后取整,记为Fix_Ck;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军装备学院,未经中国人民解放军装备学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410835382.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种测试方法及终端
- 下一篇:一种基于拟合逼近算法的融合带数学模型