基于预计算和后校正的通用处理器快速正反精确DCT算法

本文介绍了如何通过预计算和后校正技术优化通用处理器上的正反向DCT算法,减少了乘法运算次数。算法在与量化/逆量化过程结合后,乘法次数降至80次,而传统Chen-wang算法需要176次。该方法适用于视频压缩编码解码,提高了多媒体程序的执行效率。
摘要由CSDN通过智能技术生成

基于预计算和后校正的通用处理器快速正反精确DCT算法

马子扬

 

摘要:为了尽量提高正反向DCT(离散余弦变换)程序在通用CPU上的执行速度,推导了一种需要乘法次数更少的快速正反DCT算法,该算法基于预先计算的校验系数矩阵,如果和图像/视频压缩中的量化/逆量化过程合并,还可以进一步减少乘法的计算次数。算法使用乘法144次,加法464次,和量化结合后算法可以减少乘法到80次。而现在通常使用的快速精确算法(Chen-wang算法)需要乘法176次,加法464次。

 

关键词:DCT;快速算法;算法推导

 

正文:

正反向DCT(离散余弦变换)运算一直是视频压缩编码解码软件的核心部分,其计算的性能将直接影响图片/影像的编码/显示速度,成为制约这类多媒体程序运行效率的关键。

正反向DCT变换的运算主要涉及到余弦系数矩阵的乘法和加法运算,而对于一般的通用处理器(例如PC机器的Intel/AMD处理器),乘法运算消耗的CPU时间远远大于加法运算的时间。

这里介绍一种能和量化/逆量化过程结合从而减少乘法/加法运算次数的精确算法的推导过程:

 
                                7
由DCT定义式:F(0)=sqrt(2)/4 *  ∑ f(x)
                               x=0

                          7
             F(k)=0.5 *  ∑ f(x)*cos( (2*x+1)*k*PI/16 )    (k=1,2,... 7)
                         x=0

先计算偶数项:

                        *f(0)         *f(1)          *f(2)          *f(3)          *f(4)          *f(5)         *f(6)         *f(7)

F(0)=sqrt(2)/4     [     1       ,     1       ,      1       ,      1       ,      1       ,      1       ,     1       ,     1       ]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值