CN101188761A - Avs标准中基于并行处理来优化dct快速算法的方法 - Google Patents
Avs标准中基于并行处理来优化dct快速算法的方法 Download PDFInfo
- Publication number
- CN101188761A CN101188761A CN 200710171618 CN200710171618A CN101188761A CN 101188761 A CN101188761 A CN 101188761A CN 200710171618 CN200710171618 CN 200710171618 CN 200710171618 A CN200710171618 A CN 200710171618A CN 101188761 A CN101188761 A CN 101188761A
- Authority
- CN
- China
- Prior art keywords
- data
- parallel processing
- instruction
- register
- dct
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供了一种AVS标准中基于并行处理来优化DCT快速算法的方法,是在DCT蝶形快速算法的基础上进行并行优化,通过采用数据对齐,临时数据存储,指令配对,预取数据,对数据进行扩充或者缩减,并且对系数合并相乘等方法步骤,从而进一步提高运算速度,减少占用CPU的时间,使得编码器能够实时编码图像。
Description
技术领域
本发明涉及信号处理中的音视频编解码技术领域,尤其涉及一种视频编码的AVS标准中基于并行处理来优化DCT快速算法的方法。
背景技术
近年出现的一批数字音视频编解码标准,具有代表性的有国际标准H.264/MPEG-4 AVC,我国自主制定的标准AVS等。AVS标准采用了一系列技术来达到高效率的视频编码,包括帧内预测、帧间预测、DCT(离散余弦变换Discrete Cosine Transform)变换、量化和熵编码等。帧间预测使用基于块的运动矢量来消除图像间的冗余,帧内预测使用空间预测模式来消除图像内的冗余,再通过对预测残差进行变换和量化消除图像内的视觉冗余,最后,运动矢量、预测模式、量化参数和变换系数用熵编码进行压缩。但是通过Intel的Vtune(TM)Performance Analyzer性能分析工具可以得到在AVS编码算法中,DCT模块占用了较多的运算时间。
AVS标准中采用的视频基本处理单元是宏块。一个宏块包括一个16×16的亮度样值块和对应的色度样值块。宏块可进一步划分到最小8×8的样本块来进行预测,所以DCT变换的单元是8×8的残差样值矩阵。如下所示的8×8的残差样值矩阵H,经过变换变成系数矩阵CoeffMatrix,变换公式如下:
CoeffMatrix=T8×H×T8 T
T8是变换矩阵,T8 T是T8的转置矩阵,变换矩阵是AVS标准规定的。
DCT变换就是为了实现上述过程。通常DCT变换的快速算法一般可以是从以下几个方面考虑寻找:(a)利用FFT(快速傅里叶变换Fast FourierTransform)算法,对FFT取实部即是DCT结果;(b)利用代数分解寻找类似FFT中的蝶形关系;(c)利用矩阵分解将变换矩阵分解为稀疏矩阵的积,减少运算次数。
在AVS编码器中实现DCT变换的算法采用了蝶形算法,将二维DCT变换变为行列变换的分开操作,对每个8×8块的每行进行变换,然后每列进行变换,从而得到的是一个8×8的变换系数矩阵CoeffMatrix。其中w00位置的元素就是直流分量,CoeffMatrix矩阵中的其他元素根据其位置表示不同频率的交流分量,这样的变化使得矩阵的相乘转化为相加减和移位操作,减少了运算量,但是运算速度仍然有待提高,从而使得编码器能够实时编码图像。
发明内容
本发明提供的一种AVS标准中基于并行处理来优化DCT快速算法的方法,是在DCT蝶形快速算法的基础上进行并行优化,从而进一步提高运算速度,减少占用CPU的时间,使得编码器能够实时编码图像。
为了达到上述目的,本发明根据CPU支持的指令集的不同,针对MMX(Multi Media Extension,多媒体扩展指令集)、SSE(Streaming SIMDExtensions,单指令多数据流扩展指令集)、SSE2(Streaming SIMD Extensions2,单指令多数据流扩展指令集2)、SSE3指令集(Streaming SIMD Extensions3,单指令多数据流扩展指令集3),提供了一种AVS标准中基于并行处理来优化DCT快速算法的方法,包含以下步骤:
步骤1、数据对齐:
步骤1.1、在一个周期中将数据对齐成整字节的位置,对于128位寄存器需要16字节对齐;
步骤1.2、将8x8的数据块中对齐后的数据逐一取入对应指令的寄存器中,比如MMX寄存器(64位寄存器)、SSE2寄存器(128位寄存器);
步骤2、寄存器组被占满的情况下还需要寄存器时的临时数据存储:
步骤2.1、划分一块临时数据存储空间;
步骤2.2、将寄存器中的数据存储到临时内存空间中;
步骤2.3、再从临时数据存储空间中将数据取出;
步骤3、指令配对:
CPU在一个时钟周期内能够完成两个不同的指令,符合指令配对原则,该原则是通用配对规则、整数配对规则和MMX指令与整数指令配对规则。在Intel公司的文档Optimizations for Intel′s 32-Bit Processors中有详细规则。只要没有寄存器冲突和指令冲突,就能够同时在同一个时钟周期内完成两条操作;
步骤4、预取数据:
在运算前将内存中需要的数据预先取入到Cache缓存(高速缓冲存储器)中,这样能够加快访问速度;
步骤5、数据扩充或者缩减:
步骤5.1、在运算过程中,采用指令将取入的原本16位shory(16位双字节有符号整数)的数据的高16位和低16位进行扩充,变为32位int(四字节有符号整数)的数据;
步骤5.2、运算结束的时候,将32位int的数据合并成16位short的数据存储到内存地址中,采用指令将两个32位数据进行合并为一个包含高16位和低16位的32位数据;
步骤6、系数合并相乘,同时得到不同系数相乘相加的结果:
步骤6.1、将四个常数系数合并存到一个64位的数中;
步骤6.2、将步骤6.2中得到的64位的数放入一个寄存器中;
步骤6.3、用一条乘加指令在一个周期内得到两个结果;
步骤7、并行处理:
MMX寄存器64位可以存储4个16位数据,SSE2寄存器128位可以存储8个16位数据,这样可以同时对8×8的一行或者一列数据进行处理,加快运算速度,提高效率。
本发明提供的一种AVS标准中基于并行处理来优化DCT快速算法的方法,是在DCT蝶形快速算法的基础上进行并行优化,从而进一步提高运算速度,减少占用CPU的时间,使得编码器能够实时编码图像。
具体实施方式
以下分别针对MMX和SSE2指令集,具体说明本发明的较佳实施方式:
本发明提供了一种AVS标准中基于并行处理来优化DCT快速算法的方法,包含以下步骤:
步骤1、数据对齐:
步骤1.1、在一个周期中将数据对齐成整字节的位置,对于128位寄存器需要16字节对齐;
步骤1.2、将8×8的数据块中对齐后的数据逐一取入对应指令的寄存器中,比如MMX寄存器(64位寄存器)、SSE2寄存器(128位寄存器);
步骤2、寄存器组被占满的情况下还需要寄存器时的临时数据存储:
步骤2.1、划分一块临时数据存储空间;
步骤2.2、将寄存器中的数据存储到临时内存空间中;
步骤2.3、再从临时数据存储空间中将数据取出;
步骤3、指令配对:同一个周期内完成两条没有冲突的不同指令操作;
步骤4、预取数据:在运算前将内存中需要的数据预先取入到Cache缓存中,这样能够加快访问速度;
步骤5、数据扩充或者缩减:
步骤5.1、在运算过程中,采用指令将取入的原本16位short的数据的高16位和低16位进行扩充,变为32位int的数据;
步骤5.2、运算结束的时候,将32位int的数据合并成16位short的数据存储到内存地址中,采用指令将两个32位数据进行合并为一个包含高16位和低16位的32位数据;
步骤6、系数合并相乘,同时得到不同系数相乘相加的结果:
根据AVS参考软件中DCT的C代码的蝶形变换,行变换需要得到如下形式的结果
10*tmp1+9*tmp2+6*tmp3+2*tmp4;
9*tmp1-2*tmp2-10*tmp3-6*tmp4;
6*tmp1-10*tmp2-2*tmp3+9*tmp4;
2*tmp1-6*tmp2+9*tmp3-10*tmp4。
步骤6.1、将四个常数[10,9]和[9,-2]系数合并为一个数0x000a00090009fffe;
步骤6.2、将步骤6.2中得到的64位的数放入一个寄存器中;
步骤6.3、将寄存器中的64位的数乘以[tmp1,tmp2]同时得到两个相乘相加的结果10*tmp1+9*tmp2,9*tmp1-2*tmp2;
其他的计算相类似,包括列变换需要类似形式的结果;
步骤7、并行处理:
MMX寄存器64位可以存储4个16位数据,SSE2寄存器128位可以存储8个16位数据,这样可以同时对8×8的一行或者一列数据进行处理,加快运算速度,提高效率。
下表为在Pentium 4(英特尔奔腾4)2.4GHz(支持MMX、SSE、SSE2),512M内存的台式PC平台中,对编码Foreman.cif图像采用本发明的并行处理方法做实验得到的数据,(编码88帧图像,GOP(Group Of Pictures,画面组)格式为IPBBPBB)。
优化方法 | C代码 | MMX | SSE2 |
编码运行速度(帧/秒) | 10.5465 | 15.4712 | 16.5165 |
相对于C代码提高效率 | 无 | 46.69% | 56.6% |
从实验数据看出,本发明提供的一种AVS标准中基于并行处理来优化DCT快速算法的方法,大幅度提高了运算速度,减少占用CPU的时间,使得编码器能够实时编码图像。
Claims (5)
1.一种AVS标准中基于并行处理来优化DCT快速算法的方法,其特征在于,包含以下步骤:
步骤1、数据对齐;
步骤2、寄存器组被占满的情况下还需要寄存器时的临时数据存储;
步骤3、指令配对:同一个周期内完成两条没有冲突的不同指令操作;
步骤4、预取数据:在运算前将内存中需要的数据预先取入到高速缓存储器中;
步骤5、数据扩充或者缩减;
步骤6、系数合并相乘,同时得到不同系数相乘相加的结果;
步骤7、并行处理,同时对8×8数据块的一行或者一列数据进行处理。
2.如权利要求1所述的AVS标准中基于并行处理来优化DCT快速算法的方法,其特征在于,所述的步骤1包含以下步骤:
步骤1.1、在一个周期中将数据对齐成整字节的位置,对于128位寄存器需要16字节对齐;
步骤1.2、将8×8的数据块中对齐后的数据逐一取入对应指令的寄存器中。
3.如权利要求1所述的AVS标准中基于并行处理来优化DCT快速算法的方法,其特征在于,所述的步骤2包含以下步骤:
步骤2.1、划分一块临时数据存储空间;
步骤2.2、将寄存器中的数据存储到临时内存空间中;
步骤2.3、再从临时数据存储空间中将数据取出。
4.如权利要求1所述的AVS标准中基于并行处理来优化DCT快速算法的方法,其特征在于,所述的步骤5包含以下步骤:
步骤5.1、在运算过程中,采用指令将取入的原本16位双字节有符号整数数据的高16位和低16位进行扩充,变为32位四字节有符号整数数据;
步骤5.2、运算结束的时候,将32位四字节有符号整数数据合并成16位双字节有符号整数数据存储到内存地址中,采用指令将两个32位数据进行合并为一个包含高16位和低16位的32位数据。
5.如权利要求1所述的AVS标准中基于并行处理来优化DCT快速算法的方法,其特征在于,所述的步骤6包含以下步骤:
步骤6.1、将四个常数系数合并存到一个64位的数中;
步骤6.2、将步骤6.2中得到的64位的数放入一个寄存器中;
步骤6.3、用一条乘加指令在一个周期内得到两个结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710171618 CN101188761A (zh) | 2007-11-30 | 2007-11-30 | Avs标准中基于并行处理来优化dct快速算法的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710171618 CN101188761A (zh) | 2007-11-30 | 2007-11-30 | Avs标准中基于并行处理来优化dct快速算法的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101188761A true CN101188761A (zh) | 2008-05-28 |
Family
ID=39480910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200710171618 Pending CN101188761A (zh) | 2007-11-30 | 2007-11-30 | Avs标准中基于并行处理来优化dct快速算法的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101188761A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882112A (zh) * | 2010-06-25 | 2010-11-10 | 北京中星微电子有限公司 | 四字节字的读取处理方法与装置、解码器 |
CN102025988A (zh) * | 2010-10-19 | 2011-04-20 | 北京工业大学 | 一种模式相关的快速变换方法 |
CN104683817A (zh) * | 2015-02-11 | 2015-06-03 | 广州柯维新数码科技有限公司 | 基于avs的并行变换和反变换方法 |
CN104683800A (zh) * | 2015-02-11 | 2015-06-03 | 广州柯维新数码科技有限公司 | 基于avs的并行量化和反量化方法 |
CN105516730A (zh) * | 2014-09-24 | 2016-04-20 | 晨星半导体股份有限公司 | 视讯编码装置及视讯解码装置以及其编码与解码方法 |
CN106231304A (zh) * | 2016-08-30 | 2016-12-14 | 成都金本华电子有限公司 | 一种基于一维快速碟形算法改进的视频解码整数变换方法 |
CN109714595A (zh) * | 2019-03-07 | 2019-05-03 | 杭州当虹科技股份有限公司 | 一种基于avs2的并行帧内预测解码方法 |
CN113973203A (zh) * | 2021-10-22 | 2022-01-25 | 上海济物光电技术有限公司 | 一种jpeg图像压缩加速方法 |
CN115499667A (zh) * | 2022-11-17 | 2022-12-20 | 山东云海国创云计算装备产业创新中心有限公司 | 一种视频处理方法、装置、设备及可读存储介质 |
-
2007
- 2007-11-30 CN CN 200710171618 patent/CN101188761A/zh active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882112A (zh) * | 2010-06-25 | 2010-11-10 | 北京中星微电子有限公司 | 四字节字的读取处理方法与装置、解码器 |
CN102025988A (zh) * | 2010-10-19 | 2011-04-20 | 北京工业大学 | 一种模式相关的快速变换方法 |
CN102025988B (zh) * | 2010-10-19 | 2013-04-17 | 北京工业大学 | 一种模式相关的快速变换方法 |
CN105516730A (zh) * | 2014-09-24 | 2016-04-20 | 晨星半导体股份有限公司 | 视讯编码装置及视讯解码装置以及其编码与解码方法 |
CN105516730B (zh) * | 2014-09-24 | 2018-04-24 | 晨星半导体股份有限公司 | 视讯编码装置及视讯解码装置以及其编码与解码方法 |
CN104683817A (zh) * | 2015-02-11 | 2015-06-03 | 广州柯维新数码科技有限公司 | 基于avs的并行变换和反变换方法 |
CN104683817B (zh) * | 2015-02-11 | 2017-12-15 | 广州柯维新数码科技有限公司 | 基于avs的并行变换和反变换方法 |
CN104683800B (zh) * | 2015-02-11 | 2017-12-15 | 广州柯维新数码科技有限公司 | 基于avs的并行量化和反量化方法 |
CN104683800A (zh) * | 2015-02-11 | 2015-06-03 | 广州柯维新数码科技有限公司 | 基于avs的并行量化和反量化方法 |
CN106231304A (zh) * | 2016-08-30 | 2016-12-14 | 成都金本华电子有限公司 | 一种基于一维快速碟形算法改进的视频解码整数变换方法 |
CN109714595A (zh) * | 2019-03-07 | 2019-05-03 | 杭州当虹科技股份有限公司 | 一种基于avs2的并行帧内预测解码方法 |
CN113973203A (zh) * | 2021-10-22 | 2022-01-25 | 上海济物光电技术有限公司 | 一种jpeg图像压缩加速方法 |
CN115499667A (zh) * | 2022-11-17 | 2022-12-20 | 山东云海国创云计算装备产业创新中心有限公司 | 一种视频处理方法、装置、设备及可读存储介质 |
CN115499667B (zh) * | 2022-11-17 | 2023-07-14 | 山东云海国创云计算装备产业创新中心有限公司 | 一种视频处理方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101188761A (zh) | Avs标准中基于并行处理来优化dct快速算法的方法 | |
JP4425561B2 (ja) | イメージおよびビデオ符号化のための2−d変換 | |
CN1697328B (zh) | 快速视频编解码变换实现 | |
JP4920034B2 (ja) | マルチスレッドsimd処理を利用したメディア符号化の並列実行 | |
US20140010284A1 (en) | Image transform and inverse transform method, and image encoding and decoding device using same | |
CN100556142C (zh) | 解码视频数据的解码器和系统 | |
WO2005034519A1 (en) | Rectangular-shape motion search | |
Haweel et al. | Fast approximate DCT with GPU implementation for image compression | |
CN108810549A (zh) | 一种面向低功耗的流媒体播放方法 | |
CN1703094A (zh) | 1/4像素插值应用于1/2像素插值结果的图象插值装置和方法 | |
Zheng et al. | Research in a fast DCT algorithm based on JPEG | |
Holliman et al. | MPEG decoding workload characterization | |
CN101646080A (zh) | 基于avs并行流水idct快速变换的方法和装置 | |
CN100490539C (zh) | 运用于图像编码和视频编码的离散余弦变换的方法 | |
CN102625109B (zh) | 一种基于多核处理器实现的mpeg-2至h.264的转码方法 | |
Shan et al. | All phase discrete sine biorthogonal transform and its application in JPEG-like image coding using GPU | |
CN104683817A (zh) | 基于avs的并行变换和反变换方法 | |
CN104683800A (zh) | 基于avs的并行量化和反量化方法 | |
CN101516030B (zh) | 具有多格式影像编解码功能的数据处理电路及处理方法 | |
TWI402771B (zh) | 應用於多核心處理器之快速整數離散餘弦轉換方法 | |
Jo et al. | Flexible multi-core platform for a multiple-format video decoder | |
Chen et al. | Parallel Architecture Core (PAC)—the First Multicore Application Processor SoC in Taiwan Part II: Application Programming | |
CN101309403A (zh) | 频域视频转码方法及实现其的转码器 | |
CN100349466C (zh) | 视频或图像压缩中准能量守恒变换的方法和装置 | |
Yao et al. | Design of embedded electronic video processing system based on DM6467 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080528 |