AVS标准中基于并行处理来优化DCT快速算法的方法技术

技术编号:3586034 阅读:222 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种AVS标准中基于并行处理来优化DCT快速算法的方法,是在DCT蝶形快速算法的基础上进行并行优化,通过采用数据对齐,临时数据存储,指令配对,预取数据,对数据进行扩充或者缩减,并且对系数合并相乘等方法步骤,从而进一步提高运算速度,减少占用CPU的时间,使得编码器能够实时编码图像。

【技术实现步骤摘要】

本专利技术涉及信号处理中的音视频编解码
,尤其涉及一种视频编 码的AVS标准中基于并行处理来优化DCT快速算法的方法
技术介绍
近年出现的 一批数字音视频编解码标准,具有代表性的有国际标准 H. 264/MPEG-4 AVC,我国自主制定的标准AVS等。AVS标准采用了一系列技 术来达到高效率的视频编码,包括帧内预测、帧间预测、DCT(离散余弦变换 Discrete Cosine Transform)变换、量化和熵编码等。帧间预测使用基于块 的运动矢量来消除图像间的冗余,帧内预测使用空间预测模式来消除图像内 的冗余,再通过对预测残差进行变换和量化消除图像内的视觉冗余,最后, 运动矢量、预测模式、量化参数和变换系数用熵编码进行压缩。但是通过 Intel的Vtune (TM) Performance Analyzer性能分析工具可以得到在AVS 编码算法中,DCT模块占用了较多的运算时间。AVS标准中采用的视频基本处理单元是宏块。 一个宏块包括一个16x16 的亮度样值块和对应的色度样值块。宏块可进一步划分到最小8x8的样本块 来进行预测,所以DCT变换的单元是8x8的残差样值矩阵。如下所示的8x8 的残差样值矩阵H,经过变换变成系数矩阵CoeffMatrix,变换公式如下CoeffMatrix = T8 x H x T8TL是变换矩阵,Tj是Ts的转置矩阵,变换矩阵是AVS标准规定的。<formula>formula see original document page 5</formula>DCT变换就是为了实现上述过程。通常DCT变换的快速算法一般可以是 从以下几个方面考虑寻找(a)利用FFT (快速傅里叶变换Fast Fourier Transform)算法,对FFT取实部即是DCT结果;(b)利用代数分解寻找类似 FFT中的蝶形关系;(c)利用矩阵分解将变换矩阵分解为稀疏矩阵的积,减 少运算次数。在AVS编码器中实现DCT变换的算法采用了蝶形算法,将二维DCT变换 变为行列变换的分开操作,对每个8x8块的每行进行变换,然后每列进行变 换,从而得到的是一个8x8的变换系数矩阵CoeffMatrix。其中w。。位置的元 素就是直流分量,CoeffMatrix矩阵中的其他元素根据其位置表示不同频率 的交流分量,这样的变化使得矩阵的相乘转化为相加减和移位操作,减少了^70w75运算量,但是运算速度仍然有待提高,从而使得编码器能够实时编码图像。
技术实现思路
本专利技术提供的一种AVS标准中基于并行处理来优化DCT快速算法的方法, 是在DCT蝶形快速算法的基础上进行并行优化,从而进一步提高运算速度, 减少占用CPU的时间,使得编码器能够实时编码图像。为了达到上述目的,本专利技术根据CPU支持的指令集的不同,针对MMX (Multi Media Extension,多媒体扩展指令集)、SSE (Streaming S藤 Ex t ens i ons,单指令多数据流扩展指令集)、SSE2( S t reaming SIMD Ex tens i ons 2,单指令多数据流扩展指令集2 )、 SSE3指令集(Streaming S腦Extensions 3,单指令多数据流扩展指令集3),提供了一种AVS标准中基于并行处理来 优化DCT快速算法的方法,包含以下步骤步骤l、数据对齐步骤1. 1、在一个周期中将数据对齐成整字节的'位置,对于1位寄存 器需要16字节对齐;步骤1. 2、将8x8的数据块中对齐后的数据逐一取入对应指令的寄存器 中,比如應X寄存器(64位寄存器)、SSE卩寄存器(U8位寄存器);步骤2、寄存器组被占满的情况下还需要寄存器时的临时数据存储步骤2. 1、划分一块临时数据存储空间;步骤2. 2 、将寄存器中的数据存储到临时内存空间中;步骤2. 3、再从临时数据存储空间中将数据取出;步骤3、指令配对CPU在一个时钟周期内能够完成两个不同的指令,符合指令配对原则, 该原则是通用配对规则、整数配对规则和画X指令与整数指令配对规则。在 Intel/>司的文档Optimizations for Intel's 32—Bit Processors中有详 细规则。只要没有寄存器冲突和指令冲突,就能够同时在同一个时钟周期内 完成两条操作;步骤4、预取数据在运算前将内存中需要的数据预先取入到Cache緩存(高速緩冲存储器)中,这样能够加快访问速度; 步骤5、 it据扩充或者缩减步骤5.1、在运算过程中,采用指令将取入的原本16位short (16位双字节有符号整数)的数据的高16位和低16位进行扩充,变为32位int (四字节有符号整数)的数据;步骤5. 2、运算结束的时候,将32位int的数据合并成16位short的数据存储到内存地址中,采用指令将两个32位数据进行合并为一个包含高16位和低16位的32位^t据;步骤6、系数合并相乘,同时得到不同系数相乘相加的结果 步骤6. 1、将四个常数系数合并存到一个64位的数中; 步骤6. 2、将步骤6. 2中得到的64位的数放入一个寄存器中; 步骤6. 3、用一条乘加指令在一个周期内得到两个结果; 步骤7、并行处理固X寄存器64位可以存储4个16位数据,SSE2寄存器128位可以存储 8个16位数据,这样可以同时对8x8的一行或者一列数据进行处理,加快运 算速度,提高效率。本专利技术提供的一种AVS标准中基于并行处理来优化DCT快速算法的方法, 是在DCT蝶形快速算法的基础上进行并行优化,从而进一步提高运算速度, 減少占用CPU的时间,使得编码器能够实时编码图像。具体实施例方式以下分别针对應X和SSE2指令集,具体说明本专利技术的较佳实施方式 本专利技术提供了 一种AVS标准中基于并行处理来优化DCT快速算法的方法, 包含以下步骤步骤l、数据对齐步骤1. 1、在一个周期中将数据对齐成整字节的位置,对于128位寄存 器需要16字节对齐;步骤1. 2、将8x8的数据块中对齐后的数据逐一取入对应指令的寄存器 中,比如匿X寄存器(64位寄存器)、SSE2寄存器(128位寄存器);步骤2、寄存器组被占满的情况下还需要寄存器时的临时数据存储步骤2. 1、划分一块临时数据存储空间;步骤2. 2、将寄存器中的数据存储到临时内存空间中;步骤2.3、再从临时数据存储空间中将数据取出;步骤3、指令配对同一个周期内完成两条没有冲突的不同指令搮:作;步骤4、预取数据在运算前将内存中需要的数据预先取入到Cache緩存中,这样能够加快访问速度; 步骤5、数据扩充或者缩减步骤5. 1、在运算过程中,采用指令将取入的原本16位short的凄t据的 高16位和低16位进行扩充,变为32位int的数据;步骤5. 2、运算结束的时候,将32位int的数据合并成16位short的 数据存储到内存地址中,采用指令将两个32位数据进行合并为一个包含高 16位和低16位的32位数据;步骤6、系数合并相乘,同时得到不同系数相乘相加的结果根据AVS参考软件中DCT的C代码的蝶形变换,行变换需要得到如下形式的结果10*tmpl+9*tmp2+6*tmp3+2*tmp4; 9*tmpl_2*t本文档来自技高网
...

【技术保护点】
一种AVS标准中基于并行处理来优化DCT快速算法的方法,其特征在于,包含以下步骤:步骤1、数据对齐;步骤2、寄存器组被占满的情况下还需要寄存器时的临时数据存储;步骤3、指令配对:同一个周期内完成两条没有冲突的不同指令操作;步骤4、预取数据:在运算前将内存中需要的数据预先取入到高速缓存储器中;步骤5、数据扩充或者缩减;步骤6、系数合并相乘,同时得到不同系数相乘相加的结果;步骤7、并行处理,同时对8×8数据块的一行或者一列数据进行处理。

【技术特征摘要】
1.一种AVS标准中基于并行处理来优化DCT快速算法的方法,其特征在于,包含以下步骤步骤1、数据对齐;步骤2、寄存器组被占满的情况下还需要寄存器时的临时数据存储;步骤3、指令配对同一个周期内完成两条没有冲突的不同指令操作;步骤4、预取数据在运算前将内存中需要的数据预先取入到高速缓存储器中;步骤5、数据扩充或者缩减;步骤6、系数合并相乘,同时得到不同系数相乘相加的结果;步骤7、并行处理,同时对8×8数据块的一行或者一列数据进行处理。2. 如权利要求1所述的AVS标准中基于并行处理来优化DCT快速算法的方 法,其特征在于,所述的步骤1包含以下步骤步骤l.l、在一个周期中将数据对齐成整字节的位置,对于128位寄 存器需要16字节对齐;步骤1. 2、将8x8的数据块中对齐后的数据逐一取入对应指令的寄存 器中。3. 如权利要求1所述的AVS标准中基于并行处理来优化DCT快速算法的方 法,其特征在于,所述的步骤2包含以下步骤步骤2.1、划分一...

【专利技术属性】
技术研发人员:陈勇李国平
申请(专利权)人:上海广电集团有限公司中央研究院
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1