删除或更新信息,请邮件至freekaoyan#163.com(#换成@)

2M维矢量矩阵DCT整数变换及并行实现

本站小编 Free考研考试/2020-03-23

桑爱军1, 崔新宇1, 王艇2, 李晓妮1
1. 吉林大学 通信工程学院, 吉林 长春 130022;
2. 淮安信息职业技术学院 电子工程学院, 江苏 淮安 223003
收稿日期:2016-04-20
基金项目:吉林省科技发展计划与国际科技合作项目(20140414013GH);吉林省教育厅“十三五”科学技术项目(吉教科合字[2016]第427号);国家自然科学基金资助项目(51171041)。
作者简介:桑爱军(1973-),女,山东莱州人,吉林大学教授。

摘要:为了大幅降低多维数据在计算上所消耗的时间, 提高计算速度, 在2M维矢量矩阵DCT(2M-VMDCT)整数变换理论的基础上, 提出了将其进行并行处理的方法, 增大时间优越性.首先介绍了2M维矢量整数变换核矩阵的推导过程; 其次, 将这种多维整数变换算法应用到多视角视频的压缩编码中, 并与多维矢量离散余弦浮点变换进行能量集中性比较; 最后, 引入多核并行处理的思想, 进一步提高处理速度.仿真结果表明, 2M-VMDCT整数变换有着非常优越的能量集中性, 将其并行实现能使运算效率大幅提高.
关键词:2M维矢量矩阵并行DCT整数变换压缩编码
2M-dimensional Vector Matrix DCT Integer Transform and Parallel Implementation
SANG Ai-jun1, CUI Xin-yu1, WANG Ting2, LI Xiao-ni1
1. College of Telecommunication Engineering, Jilin University, Changchun 130022, China;
2. College of Electronic Engineering, Huai'an College of Information Technology, Huai'an 223003, China
Corresponding author: SANG Ai-jun, professor, E-mail: sangaj@jlu.edu.cn
Abstract: In order to improve the efficiency of multi-dimensional data processing operations and reduce the computing time, a 2M-dimensional vector matrix DCT(2M-VMDCT) integer transform parallel processing method is presented, according to the 2M-dimensional vector matrix DCT integer transform theory. Firstly, the 2M-dimensional vector integer transform core matrix is introduced; Then, 2M-dimensional vector matrix integer DCT transform is applied to the video compression coding, and compared with the energy concentration of the multi-dimensional discrete cosine floating-point transform; Finally, by introducing the idea of multi-core parallel processing, the processing speed is improved. The simulation results show that 2M-dimensional vector matrix DCT integer transform has a better energy concentration and the parallel implementation improves its operation efficiency significantly.
Key Words: 2M-dimensional vector matrixparallelDCTinteger transformcompression coding
在科技飞速发展的今天, 对多媒体技术以及网络技术的要求越来越高, 其中需要处理的视频与图像数据存储量相应也变得巨大.因此, 各国学者将研究重点放在了保持视频[1-2]图像清晰度和降低存储量等方面上.对于上述两个问题, 主要的解决办法就是利用变换压缩编码, 目前大部分应用的是DCT压缩编码.
KLT(Karhunen-Loeve-transform)一直被认为是最佳变换, 但由于它自身一些局限, 使其应用范围受到了限制.而DCT是最接近KLT的准最佳变换, 它在传输时的抗干扰能力非常强, 但它相比其他算法数据量大, 每一个子块中要处理的数据要求相对平缓, 变换数据需要是二维的.这就要求多维数据在处理前需要先降低维度, 使得计算的复杂度相对提高, 增加运算时间.经2M-VMDCT整数变换后, 核矩阵中求出的数值全是整数, 且能量够集中, 同时降低了变换前后的精度误差, 在变换中可以利用移位和加法运算替代矩阵乘法运算, 从而提高运算速度, 因此本文选择用2M维矢量DCT整数变换并对其进行并行处理.
如今有了多核化的概念, 数据或任务能够并行处理[3-4], 大大提高了计算机处理问题的性能.针对上述处理速度较慢的问题, 本文应用一个多核化的平台来处理2M维DCT变换的并行运算.由于在处理多维矢量矩阵[5]的数据时, 需要固定在每一个分块内, 所以可实现并行, 本文提出了对多维数据运用并行处理的解决办法, 同时研究了并行处理时对于子块的选取.本文的实验仿真平台为OpenCL编程平台.经过实验仿真, 证实了本文所提并行处理算法是能够实现的, 并且处理速度优于串行.
1 多维矢量矩阵变换理论1.1 多维矢量矩阵定义F上的M×N的数据排列(ai1i2)称为二维矩阵, 其全体元素的集合记作MM×N, F上的K1×K2×…×Kr多维数据排列表(aK1×K2×…×Kr)称为多维矩阵, 其全体组成的集合记为MK1×K2×…×Kr.如果将多维矩阵的维数分为两组, 分别用两个矢量来表示, 例如M(I1×I2×…×Im)×(J1×J2×…×Jn), 将其简记为MΙJ, 其中I, J均为矢量, I=(I1, I2, …, Im), J=(J1, J2, …, Jn), 则称多维矩阵M为维数按照矢量I, J表示的多维矢量矩阵, 简称多维矢量矩阵[5].
1.2 2M维矢量DCT浮点与整数变换核矩阵整数变换公式是由浮点变换公式推导而来, 这里先定义2M-VMDCT几个参数:CIJ=(cu1u2uMv1v2vM).其中I=(u1, u2, …, uM), J=(v1, v2, …, vM).
则浮点型的变换核矩阵可以表示为
(1)
其中,
将式(1)变形处理可导出整数变换的变换核:
(2)
将式(2)与式(1)对比可以看出, 浮点型核矩阵与构造公式的关系:
(3)
因此, 在构造2M-VMDCT整数变换核矩阵前, 需先求出cu1v1, cu2v2, …, cuMvM的值, 这些值便是二维4阶或二维8阶的核矩阵中的系数, 因此利用前面所述的推导过程可求出2M维整数变换核矩阵的C2M.
1.3 能量集中性图像在经DCT变换后的能量会尽量聚集在少数几个系数上, 可以很好地去除各个像素间的关联[6-8], 提高量化后进行编码过程中的压缩效率.而DCT的整数变换也是要尽可能地将能量集中.能量集中率(EPE)用来衡量能量集中性的好坏, 现将EPE定义为
(4)
式中, 前M0个系数占总的M个变换系数能量的百分比.利用EPE值的大小就可以直观地检验DCT整数变换所具有的能量集中性能.
2 多视角视频分块与重组多视角视频源在进行DCT变换编码之前, 要先分块和重组, 然后进行后续的扫描、量化等过程, 提高压缩比, 最后将编码后的数据进行传输, 接收端进行对应的相反过程[9-11].
2.1 多视角视频分块一个格式的视频进行DCT变换前要对其分块处理, 分别提取出每一帧的Y, U, V三个分量, 并在Y, U, V块上分别扫描出4×4×4三维数据块亦或是8×8×8大小的三维数据子块.图 1为选取大小的分块方法.
图 1(Fig. 1)
图 1 视频整体分块方法Fig.1 Video overall block method

2.2 多视角视频重组多视角视频由多台摄像机同时拍摄, 得到的视频组是从不同角度拍摄到的画面, 与单一视角视频的拍摄方法不同.不同的视角拍摄的画面在同一时刻互相之间相关性极强, 为了充分利用这种极强的相关性, 需在变换前对每一组拍摄的数据先分块再用另一种方法组合, 组合方法如图 2所示.
图 2(Fig. 2)
图 2 多视角视频重组示意图Fig.2 Multi-view video block recombined diagram

图 2仅为Y分量的重组方法示意图, UV分量与其原理相同.每一个视角按4×4×4大小进行分块, 再选取4个视角, 取每个视角的第1帧, 按1到4顺序排列, 接着取第2帧, 以此类推到第4帧, 即为图 2中重组后的4×4×4×4的四维子块.
按4×4×4×4分块重组后的数据可以进行DCT整数变换.随着计算机的不断发展, 计算时可以实现并行处理, 将闲置的CPU和GPU利用起来, 加快处理速度.因此, 本文选用在OpenCL(open computing language)平台上的并行算法来实现对数据的运算.
3 并行实现本文的并行算法主要是在OpenCL编译平台实现.OpenCL拥有比其他并行处理平台突出的优势, 其结构简单, 可连接多个处理器, 程序移植性强且适合异构的多样化平台.
将并行处理应用到2M-VMDCT整数变换中, 首先视频图像在经过分块处理后, 每个块之间是独立的, 所以适合作并行处理.将分块后的每一块数据都输入到OpenCL编译体系中, 然后根据CPU或GPU中的空闲处理单元的个数来决定要处理多少个数据块, 并对数据块同时进行DCT计算, 这就是并行处理.注意在并行处理时应该先进行Y′=CX的运算, 得到Y′的值, 在完成全部运算后才可以计算Y=YCT, 因为第二个运算要用到第一个运算的结果.以上就是DCT变换的并行实现方法.
4 仿真实验与结果4.1 整数与浮点变换对比为了验证DCT浮点变换与整数变换的操作算子的近似性, 本文维度选取的是四维, 块大小为4×4×4×4, 即4个像素长, 4个像素宽, 连续4帧图像以及4个视角.数值选取的是100~150之间的随机数, 分别进行了整数变换和浮点型变换.通过对比, 可以看到整数DCT变换是有效的, 与浮点变换误差极小.由于四维数据具有一定的特殊性, 所以表 1仅显示变换的部分数据.
表 1(Table 1)
表 1 整数变换和浮点变换对比Table 1 Comparison of integer transform and floating point transform
整数变换 浮点变换 两者变换误差
2 008.19 2.65 -17.94 -17.55 2008.19 1.40 -17.94 -17.69 0.0 -1.25 0.0 -0.14
-9.49 -7.05 -3.64 8.10 -8.50 -6.48 -4.86 9.11 0.99 0.57 -1.22 1.01
21.69 -9.84 -3.94 16.92 21.69 -8.62 -3.94 17.57 0.0 1.22 0.0 0.65
13.64 -1.03 -17.43 7.80 14.28 -0.01 -17.13 7.23 0.64 1.02 0.3 -0.57
13.83 -11.93 9.64 0.73 13.00 -11.21 9.98 1.71 -0.83 0.72 0.34 0.98
-9.03 -25.20 6.88 16.02 -8.89 -23.68 6.75 16.90 0.14 1.52 -0.13 0.88
-12.81 15.98 -1.50 3.18 -14.76 17.15 -1.61 1.96 -1.95 1.17 -0.11 -1.22
-4.83 -15.45 7.13 21.41 -4.52 -12.18 5.61 21.38 0.31 3.27 -1.52 -0.03
4.69 -11.82 -1.19 3.08 4.69 -11.57 -1.19 3.91 0.0 0.25 0.0 0.83
11.46 -18.25 24.27 -1.25 10.58 -17.23 23.70 2.28 -0.88 1.02 -0.57 3.53
5.44 -16.09 22.06 -19.21 5.44 -17.41 22.06 -18.02 0.0 -1.32 0.0 1.19
-12.06 12.13 -7.23 32.50 -12.84 15.66 -8.94 31.48 -0.78 3.53 -1.71 -1.02
-11.27 8.35 5.02 2.68 -12.22 9.34 4.32 1.96 -0.95 0.99 -0.7 -0.72
6.43 19.10 -7.38 -32.27 6.73 18.47 -8.89 -34.61 0.3 -0.63 -1.51 -2.34
-27.95 14.55 -1.54 0.03 -26.97 13.33 -1.43 -1.15 0.98 -1.22 0.11 -1.18
-4.60 0.22 -14.50 1.93 -4.74 0.03 -14.37 2.77 -0.14 -0.19 0.13 0.84


表 1 整数变换和浮点变换对比 Table 1 Comparison of integer transform and floating point transform

通过表 1的数据, 可以看出在做了DCT整数变换后, 四维数据的能量主要集中在前几个数据上, 后面的数据都在0上下浮动, 这种特性有利于对其进行压缩编码.
为了进一步验证整数变换的能量集中性与浮点变换的相似性, 对不同数据进行了两种算法的比较, 验证了整数变换可以代替浮点变换来处理视频.表 2即为两者EPE值的对比结果.
表 2(Table 2)
表 2 EPE值比较Table 2 Comparison of EPE value
系数量(256) 整型 浮点型 差值
前2个数据(2/256) 0.986 728 0.986 729 0.000 001
前4个数据(4/256) 0.987 035 0.987 037 0.000 002
前6个数据(6/256) 0.987 425 0.987 428 0.000 003
前8个数据(8/256) 0.987 831 0.987 833 0.000 002
前10个数据(10/256) 0.989 033 0.989 034 0.000 001


表 2 EPE值比较 Table 2 Comparison of EPE value

表 2的数据对比分析可以看出, 整型与浮点型的能量集中性可以认为几乎没有区别, 所以可以直接利用整型DCT对视频数据做变换, 不影响变换效果, 仅取前2个数据时, 能量集中率EPE值就已经高达98.67%, 具有非常好的集中效果.
4.2 并行实现通过上节的仿真实验结果可以看出, 2M维矢量DCT整数变换具有可行性, 且比浮点型变换具有更多的优势, 因此可以代替浮点型变换.所要处理的数据经2M维矢量DCT整数变换后, 块与块之间是相互独立的.而且现在的计算机都具备多核处理器, 这让实现并行DCT变换的想法成为可能, 同时也将大大减少运行时间, 提升变换效率.实验同样选取4×4×4×4的子块, 视频选取512×384标准视频图像.表 3为选取不同块数时, 串行和并行分别运行的时间.
表 3(Table 3)
表 3 串行和并行处理的时间Table 3 Time of serial and parallel processing
块数 运行时间/ms 倍数
CPU DCT
串行
CPU DCT并行
内核执行时间 总时间
1 0.114 0.056 0.131 0.870
4 0.407 0.057 0.135 3.015
16 1.613 0.145 0.234 6.893
64 6.879 0.454 0.525 13.103
256 27.321 1.691 1.761 15.514
1 024 109.271 7.217 7.399 14.768
4 096 435.775 35.891 35.993 12.107
16 384 1732.002 155.287 155.452 11.142
65 536 6796.539 623.772 623.882 10.893


表 3 串行和并行处理的时间 Table 3 Time of serial and parallel processing

表 3可以看出, 当处理块数的数量很小时, 并行运算的总时间是远大于内核时间的.当块数逐渐增多时, 二者的运行时间比较接近.原因是当需要运算的数据fn很小时, 大部分时间都浪费在初始化程序、内存以及线程开销上, 而用于真正计算的时间非常少, 因此, 串并行所用时间非常接近, 上述这种处理少量数据的情况会干扰CPU大规模并行处理性能.数据量不断攀升时, 用于计算数据的时间开始增加, CPU的运算效率开始提高.当块数为1时, 串行与并行各自所花时间相差不多, 在数据块上升时, 并行的运算总时间有明显优势.当数据块上升到256时, 计算机CPU的并行运算性能达到最大化, 超过串行的15倍以上.当数据块超过256甚至更大时, CPU并行运算效率有所下降.原因是当数据量过大时, 存储器和计算单元受到限制, 导致数据拥塞, 因此在运行时, 所有数据不能同时完全被执行, 而是要进行排队等待执行, 所以并行运算的速度相对有所下降.为了更加清晰看出并行处理时所说的现象, 将表 3图示化如图 3所示.
图 3(Fig. 3)
图 3 串行与并行时间比值Fig.3 Serial and parallel time ratio

图 3中曲线走势可以看出, 数据块达到256时, 比值达到最高点, 因此, 本文所提的并行实现是可行的, 且处理性能是串行计算的十多倍.将来着重学习和研究如何提高和优化并行运算的性能是有必要的.在OpenCL程序中很重要的一个因素是精度, 本文实验中采用的是单精度.多精度的实现需要根据不同生产厂家根据不同要求设计进行选择.
5 结论1) 验证了DCT整数变换的性能较浮点型更为优越, 并且验证了其能量集中在少数数据中, 实验数据表明, 整数变换的能量集中性效果仍然非常好, 与浮点型相似.
2) 在OpenCL编程平台上验证了2M维整数DCT变换并行运算的可行性, 通过对两视角标准视频的并行处理记录了变换的并行运算时间.2M维数据并行处理是可行的, 且速度大幅提升.若经过适当的算法优化或者设备改进将会远远优于串行运算.
参考文献
[1]冯桂, 黄君婷. 多视点视频编码中宏块复杂度的研究[J].信号处理, 2015, 31(1): 73–79.
( Feng Gui, Huang Jun-ting. Research on macro blocks complexity in multi-view video encoding[J].Journal of Signal Processing, 2015, 31(1): 73–79.)
[2]Kim H, Rhee C E, Lee H J. A low-power video recording system with multiple operation modes for H.264 and light-weight compression[J].IEEE Transactions on Multimedia, 2016, 18(4): 603–613.DOI:10.1109/TMM.2016.2525861
[3]Alvaro-Fernández J, Dolores-Moreno M. A block size optimization algorithm for parallel image processing[J].IEEE International Conference, 2014, 7: 138–144.
[4]Chen S Y, Lai C F, Hwang R H, et al. A multimedia parallel processing approach on GPU map reduce framework[J].IEEE International Conference, 2014, 7: 154–159.
[5]吴杨. 基于多维矢量矩阵的DCT快速算法的研究[D]. 长春: 吉林大学, 2012.
( Wu Yang.Research of fast discrete cosine transform algorithm based on multi-dimensional vector matrix[D]. Changchun:Jilin University, 2012.http://cdmd.cnki.com.cn/Article/CDMD-10183-1012366462.htm)
[6]Qin J, Liu L, Zhang Z X, et al. Compressive sequential learning for action similarity labeling[J].IEEE Transactions on Image Processing, 2016, 25(2): 756–769.DOI:10.1109/TIP.2015.2508600
[7]Daribo I, Florencio D, Cheung G. Arbitrarily shaped motion prediction for depth video compression using arithmetic edge coding[J].IEEE Transactions on Image Processing, 2014, 23(11): 4696–4708.DOI:10.1109/TIP.2014.2353817
[8] Sujatha K, Rao P V N, Rao A A, et al.Multicore parallel processing concepts for effective sorting and searching[C]// IEEE Conference Publications.Cuntur, 2015:162-166.
[9]贺江, 蒲宇亮, 李海波, 等. 一种基于OpenCL的高能效并行KNN算法及其GPU验证[J].电子技术应用, 2016, 42(2): 14–16.
( He Jiang, Pu Yu-liang, Li Hai-bo, et al. A energy efficient parallel KNN algorithm evaluated on GPU using OpenCL[J].Application of Electronic Technique, 2016, 42(2): 14–16.)
[10]Stone J E, Gohara D, Guochun S. OpenCL a parallel programming standard for heterogeneous computing systems[J].Computing in Science & Engineering, 2010, 3(12): 66–73.
[11]Kim C G, Choi Y S. A high performance parallel DCT with OpenCL on heterogeneous computing environment[J].Multimedia Tools and Applications, 2013, 2(64): 475–489.

相关话题/整数 矩阵

  • 领限时大额优惠券,享本站正版考研考试资料!
    大额优惠券
    优惠券领取后72小时内有效,10万种最新考研考试考证类电子打印资料任你选。涵盖全国500余所院校考研专业课、200多种职业资格考试、1100多种经典教材,产品类型包含电子书、题库、全套资料以及视频,无论您是考研复习、考证刷题,还是考前冲刺等,不同类型的产品可满足您学习上的不同需求。 ...
    本站小编 Free壹佰分学习网 2022-09-19