CN101188761A - Avs标准中基于并行处理来优化dct快速算法的方法 - Google Patents

Avs标准中基于并行处理来优化dct快速算法的方法 Download PDF

Info

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
Application number
CN 200710171618
Other languages
English (en)
Inventor
陈勇
李国平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Central Academy of SVA Group Co Ltd
Original Assignee
Central Academy of SVA Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Central Academy of SVA Group Co Ltd filed Critical Central Academy of SVA Group Co Ltd
Priority to CN 200710171618 priority Critical patent/CN101188761A/zh
Publication of CN101188761A publication Critical patent/CN101188761A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明提供了一种AVS标准中基于并行处理来优化DCT快速算法的方法,是在DCT蝶形快速算法的基础上进行并行优化,通过采用数据对齐,临时数据存储,指令配对,预取数据,对数据进行扩充或者缩减,并且对系数合并相乘等方法步骤,从而进一步提高运算速度,减少占用CPU的时间,使得编码器能够实时编码图像。

Description

AVS标准中基于并行处理来优化DCT快速算法的方法
技术领域
本发明涉及信号处理中的音视频编解码技术领域,尤其涉及一种视频编码的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标准规定的。
H = h 00 h 01 h 02 h 03 h 04 h 05 h 06 h 07 h 10 h 11 h 12 h 13 h 14 h 15 h 16 h 17 h 20 h 21 h 22 h 23 h 24 h 25 h 26 h 27 h 30 h 31 h 32 h 33 h 34 h 35 h 36 h 37 h 40 h 41 h 42 h 43 h 44 h 45 h 46 h 47 h 50 h 51 h 52 h 53 h 54 h 55 h 56 h 57 h 60 h 61 h 62 h 63 h 64 h 65 h 66 h 67 h 70 h 71 h 72 h 73 h 74 h 75 h 76 h 77
T 8 = 1 10 2 9 1 6 1 2 1 9 1 - 2 - 1 10 - 2 - 6 1 6 - 1 - 10 - 1 2 2 9 1 2 - 2 - 6 1 9 - 1 - 10 1 - 2 - 2 6 1 - 9 - 1 10 1 - 6 - 1 10 - 1 - 2 2 - 9 1 - 9 1 2 - 1 10 - 2 6 1 - 10 2 - 9 1 - 6 1 - 2
CorffMatrix = w 00 w 01 w 02 w 03 w 04 w 05 w 06 w 07 w 10 w 11 w 12 w 13 w 14 w 15 w 16 w 17 w 20 w 21 w 22 w 23 w 24 w 25 w 26 w 27 w 30 w 31 w 32 w 33 w 34 w 35 w 36 w 37 w 40 w 41 w 42 w 43 w 44 w 45 w 46 w 47 w 50 w 51 w 52 w 53 w 54 w 55 w 56 w 57 w 60 w 61 w 62 w 63 w 64 w 65 w 66 w 67 w 70 w 71 w 72 w 73 w 74 w 75 w 76 w 77
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、用一条乘加指令在一个周期内得到两个结果。
CN 200710171618 2007-11-30 2007-11-30 Avs标准中基于并行处理来优化dct快速算法的方法 Pending CN101188761A (zh)

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)

* Cited by examiner, † Cited by third party
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 山东云海国创云计算装备产业创新中心有限公司 一种视频处理方法、装置、设备及可读存储介质

Cited By (14)

* Cited by examiner, † Cited by third party
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