基于不对称划分模式的高效视频编码加法树并行实现方法

文档序号:9814744阅读:325来源:国知局
基于不对称划分模式的高效视频编码加法树并行实现方法
【技术领域】
[0001] 本发明设及数字视频编解码技术领域,特别是高效视频编码化igh Efficiency Video Coding,简称肥VC)中的整像素运动估计方法。
【背景技术】
[0002] 运动估计是视频编码和视频处理中广泛使用的技术。运动估计的基本思想是由于 活动图像邻近帖中的景物存在一定的相关性,因此可W将图形中的每一帖分成互不重叠的 块,并且认为块中所有像素的位移量都相同。然后设法捜出每一个块在邻近帖中的位置,并 且得出两者在空间位置的相对偏移量,得到的相对偏移量就是通常所说的运动矢量,得到 运动矢量的过程就被称为运动估计。
[0003] 随着视频质量不断提高H. 264已经不能满足压缩要求,因此2013年1月26号皿VC正 式成为国际上最新的视频压缩标准。但是运动估计传统的SAD运算体系结构通常会采用和 最大编码块像素相同的运算阵列来进行运算,例如针对H. 264的运动估计架构,宏块大小为 16 X 16像素,因此进行运动估计的SAD运算单元阵列为256个运算单元。而对于肥VC而言,最 大编码块尺寸为64 X 64像素,如若采用相同或者类似的设计架构,则需要4096个运算单元, 仅在SAD运算运一部分,其面积是H.264的架构的16倍,从而硬件面积大大增加。
[0004] 因此研究并设计能够支持皿VC视频编码标准的整数运动估计的SAD加法树结构, 并不是套用原有的架构,而是要重新设计其架构。该架构可W满足64X64块的SAD计算,并 且没有增加硬件面积。

【发明内容】

[0005] 本发明所要解决的技术问题是提供一种基于不对称划分模式的高效视频编码加 法树并行实现方法,W提升SAD值的计算效率。
[0006] 为实现上述目的,本发明所采用的技术方法如下:
[0007] 基于不对称划分模式的高效视频编码加法树并行实现方法,根据像素块之间的数 据相关性,在邻接互连的二维处理元阵列上,通过使用18*17个处理元完成64 X 64亮度块S 十屯种分块模式的SAD值计算的并行处理,其中处理元即PE包括:
[000引步骤1加法树模块(2)经由缓存区1 (2)和缓存区2 (2)从外存加载64 X 64亮度块 (3),并且W4X4大小的像素块按照(5)的存储方式(自上到下、从左到右)存放到PE阵列中, 每个处理元即PE存放一个4 X 4大小的亮度块,该方法具体包括:
[0009]首先将64X64的亮度块,分成大小为32X64的两部分(7),分别通过缓存区1和缓 存区巧日载到处理元阵列中。
[0010]步骤巧喊树模块经由缓存区1和缓存区2从夕陆中读取64 X 64参考块(4 ),并且W 4X4大小的像素块按照(6)的存储方式(自上到下、从左到右),存放到PE阵列中,每个处理 元(PE)存放一个4 X 4大小的参考块,该方法具体包括:
[0011]首先将64X64的参考块,分成大小为32X64的两部分(7),分别通过缓存区1和缓 存区巧日载到处理元阵列中。
[0012]步骤3处理元阵列(2)中的各个PE,在获取的亮度块和参考块的基础上,根据公式 (1)同时计算4 X 4分块模式SAD值(SAD4 X 4),计算完成后存放到亮度块和参考块对应的PE 中,一共256个SAD4 X 4值,该方法具体包括:
[0014]其中fk(m,n)为当前帖中当前块的亮度值,fk-i(m+i,n+j)为参考帖中偏移位置为 Q,j)参考块的亮度值。
[001引a大小为4 X 4的亮度块和4 X 4的参考块,按照(9)存储到PE中,C0-C15表示亮度块, d0-dl5表示参考块。
[0016] b CO与do做差值并取绝对值、Cl与dl做差值并取绝对值,依次类推直到cl5与dl5 做差值并取绝对值。
[0017] C将步骤b得到的16个值求和,得到4 X 4分块模式的SAD值SAD4 X 4。
[0018] d 256个处理元同时执行上述操作,得到256个SAD4X4的值,并且存储到亮度块和 参考块对应的PE中。
[0019] 步骤4在步骤3计算得到的SAD4X4的基础上进行剩下的S十六种分块模式的SAD 值的计算,并且选择存储该SAD值PE的位置。根据该SAD值是否后续被使用采取如图8所示的 方式选取存储PE的位置,如果该SAD值后续被使用则优先选取PE阵列中右下方的PE来存储 该值,反之则选取左上方的PE来存储该值。具体执行原则如下:如图10所示每一个字符对应 一个4 X 4块的SAD值,故整体可W得到16 X 16块的SAD值。首先求8 X 4块的SAD值,即分块模 式AB、CD、EF、GH、IJ、KL、MN、OP的SAD值,然后为它们分别选取存取位置,WAB、EF为例说明, 在求8 X 8分块模式A肥F的SAD值时,我们需要使用AB和EF的SAD值SAD8 X 4,由此判定它们的 值在后续会被使用,故将它们分别存储到右边的处理元B和F中,当求分块模式ABEF的SAD值 时,B中的SAD8 X 4传递到F中,F中的两个SAD值求和得到8 X 8块的SAD值,W此类推其他分块 模式的SAD值采用上述方式选择存储位置,数值往一个方向集中,有利于数值的合并。
[0020] a( 10)中每个字符代表一个存储SAD4 X 4值的处理元,4 X 4个处理元表示一个簇, 处理元阵列可W被划分成16个簇(11),每个数字代表一个簇。
[0021 ] b每个簇计算得到十四种分块模式的SAD值,它们分别是8 X4、4X8、8X8、16X8、8 X16、12X16L、4X16L、12X16R、4X16R、16X12U、16X4U、16X12D、16X4D、16X16,计算 完成后分别存储到簇内的对应PE中,PE的选取规则如图8所示,即根据后续是否被使用选取 SAD值的存储位置,上述SAD值均通过4 X 4分块模式的SAD值合并得到。
[0022] C 16个簇同时执行b操作;
[0023] 将16个簇al)W2X2大小,划分成4个组,第一组(00、01、04、05),第二组(02、03、 06、07),第^组(08、09、12、13),第四组(10、11、14、15)。
[0024] 每个组可W计算得到U种分块模式的SAD值,如图12所示W第一组00、01、04、05为 例,通过数据交互,可W得到的SAD值分别是32 X16、16X32、24X3^、8X32L、24X32R、8X 32R、32X24U、32X8U、32X24D、32X8D、32X32,计算完成后分别存储到组内对应的阳中, PE的选取规则如图8所示,即根据后续是否被使用选取SAD值的存储位置,上述SAD值均通过 4 X 4-16 X 16分块模式的SAD值合并得到。
[0025] f四个组同时执行上述操作;
[00%] g将16个簇看做一个类(13)。
[0027] h该类可W计算得到11种SAD值,它们分别是64 X 32、32 X 64、48 X 6化、16 X 6化、48 X64R、16X64R、64X48U、64X16U、64X48D、64X16D、64X64,计算完成后分别存储到类内 对应的PE中,阳的选取规则如图8所示,即根据后续是否被使用选取SAD值的存储位置,上述 SAD值均通过16 X 16-32 X 32分块模式的SAD值合并得到。
[002引本发明的有益效果如下:
[0029] 采用二维处理元阵列结构,对亮度块分割模式的SAD值计算并行处理,有效的提升 了运动估计运算效率。通过采用根据该SAD值后续是否被使用选取存储该SAD值的处理元的 方法,加快加法树的计算速度,提高计算效率。
[0030] 通过采用单PE存储4X4像素块的方式,相对于传统的像素块的存储方式(单PE存 储单像素),处理单元使用的数量缩减至原来的1/16。
[0031] 相对于加法树串行结构的实现方法,该并行结构速度提高了近92倍。
[0032] 步骤4所述的=十六种分块模式SAD值的计算均通过4 X 4分块模式的SAD值合并得 到的,可W减少过多的计算过程,提高计算效率。
【附图说明】
[0033] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,用来解释本发 明,并不构成对本发明的限制。
[0034] 在附图中:
[0035] 图1为本发明提供的PE邻接互连示意图;
[0036] 图2为本发明提供的加法树阵列和缓存区分布示意图;
[0037] 图3为本发明提供的亮度块像素分布图;
[0038] 图4为本发明提供的参考块像素分布图;
[0039] 图5为本发明提供的亮度块在PE阵列中的存储分布图;
[0040] 图6为本发明提供的参考块在PE阵列中的存储分布图;
[0041] 图7为本发明提供的利用双缓存区将图像数据从外存读入PE阵列的示意图
[0042] 图8为本发明提供的SAD值数据流向图
[0043] 图9为本发明提供的亮度块和参考块在单个PE中的存储分布图
[0044] 图10为本发明提供的SAD4 X 4在单个簇中的存储分布图
[0045] 图11为本发明提供的PE组在PE阵列中的分布图;
[0046] 图12为本发明提供的单个PE组在PE阵列具体分布图;
[0047] 图13为本发明提供的PE类在PE阵列中的分布图;
【具体实施方式】
[0048] W下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并 非用于限定本发明的范围。
[0049] W下实施例提供了一种基于二维阵列处理元的全新高效的包含非对称分割模式 的加法树实现方法,
[0050] 图I是PE邻接互连示意图,加法树是在该二维邻接互连PE阵列上实现的;
[0051] 图2是加法树阵列和缓存区分布示意图,灰色部分是缓存区模块(最左边一列是缓 存区1,最右边一列是缓存区2,最下边一行是缓存区3),中间16 X 16个PE是加法树模块,一 共采用了18X17个阳;
[0052] 步骤一将64X64亮度块通过缓存区1和缓存区2读入加法树模块,【具体实施方式】如 下:
[0053] 图3是亮度块像素分布图,将亮度块像素划分成两个32X64的像素块,如图7所示, 缓存区1根据地址读取左侧的像素块,缓存区2根据地址读取右侧的像素块,两个缓存区并 行执行,从而提高了传递效率。
[0054] 通过缓存区传递数据,像素块按照图5所示的方式存储到PE阵列,每个PE存储4X4 大小的像素块,按照从左到右、从上到下的顺序依次存储。
[0055] 步骤二将64 X 64参考块通过缓存区1和缓存区2读入加法树模块,【具体实施方式】如 下:
[0056] 图4是参考块像素分布图,将参考块数据划分成两个32X64的像素块,如图7所示, 缓存区1根据地址读取左侧的像素块,缓存区2根据地址读取右侧的像素块,两个缓存区并 行执行,从而提高了传递效率。
[0057] 通过缓存区传递数据,像素块按照图6所示的方式存储到PE阵列,每个PE存储4X4 大小的像素块,按照从左到右、从上到下的顺序依次存储。
[0058] 步骤S处理元阵列(2)中的各个PE,在获取的亮度块和参考块的基础上,根据公式 (1)
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1