Satd快速实现的硬件架构的制作方法

文档序号:7703928阅读:317来源:国知局
专利名称:Satd快速实现的硬件架构的制作方法
技术领域
本发明涉及一种视频编码运动估计中分数像素搜索时所采用变换方法,及该方法硬件 实现的体系架构;该方法主要用于估计运动补偿后的残余矩阵的码率。属于信息技术领域。
背景技术
在H.264、 AVS视频编码系统中,在进行分数像素运动估计时,需要计算SATD(Sumof Absolute Hadamard Transformed Differences)值。SATD计算以4X4的像素块为基本单位处 理。在H.264、 AVS编码系统中,为了完成块选、帧选等模式选择,需要频繁计算SATD值; 而SATD中的Hadamard计算过程包含了大量的加、减运算,使整个SATD的计算量非常大。 SATD的计算性能将会直接影响到运动估计的效果。 SATD计算分三步完成。
1、 计算残差值。
2、 对残差矩阵进行Hadamard变换。Hadamard用于变换降低系数之间的相关性,提高 残差矩阵编码比特数估计的准确性。
3、 对Hadamard变换后所得到的系数矩阵中的每个元素的绝对值求和。针 对 Hadamard变换,在所査阅文献中大都是一个SATD计算单元PU采用4个列像素的并行运 算结构,其中包括两个一维的Hadamard变换单元、 一个二维的转置矩阵和4个计算残差的 运算单元(ProcessingElement,PE)。这一过程至少需四个时钟周期,对于需大量SATD计算 的视频分像素编码来说,代价无疑是巨大的,同时这样的时钟滞留也为后续比较计算制造 了瓶颈。

发明内容
本发明为解决大尺寸视频图像运动估计中计算SATD需要大量运算的问题,而提出一种 新的硬件并行计算架构,该架构采用四级流水技术,其结构如图1所示。;第一级流水包含 一组特殊的Wallace阵列,用于在一个时钟周期完成4*4块Hadamard变换矩阵16个元素的 所有进位与和值;第二级流水包含16个加法器,同时将第一级输出的16组进位与和值完 成相加;第三级包含一个Wallace阵列,将第二级的结果取绝对值,并完成相加,最后产生 两个输出;第四级包含一个17比特加法器,将第三级产生的两个输出完成相加,加法器初 始为最后的8^0值。8^10流水结构每一个时钟周期可以完成一个4*4块的8八丁0值计算。


图1是特殊SATD硬件并行流水计算架构图;图5是计算矩阵单元《 图6是计算矩阵单元d 图7是计算矩阵单元d,
12,
图2是计算矩阵单元4,,^,,^,,《,的第零位硬件结构电路模型图; 图3是计算矩阵单元《,,^,4,,t^的其它位硬件结构电路模型图; 图4是计算矩阵单元《2^22^32,^2的第零位硬件结构电路模型,c/22,<2,《2的其它位硬件结构电路模型图; 13,^33,《3的第零位硬件结构电路模型图; ,<3 ,<3 , J43的其它位硬件结构电路模型图; 图8是计算矩阵单元C/|4 ,<4 ,《4的第零位硬件结构电路模型图; 图9是计算矩阵单元c/,4 ,《4 , <4 , t/44的其它位硬件结构电路模型图。
具体实施方式
本发明详细计算步骤如下
步骤A1:计算残差矩阵。SATD的计算是基于4*4块进行的,将参考帧4*4块与当前 4*4块的象素值相减,得到一个4*4残差矩阵。设残差矩阵为
au o12 a13 aM
爿=
"21 "2
"23 "2
a31 a32 《13
"41 fl "43 ""
步骤A2:计算Hadamard变换。Hadamard变换是在残差两边分别乘以Hadamard矩阵// 和转置矩阵/^,
其中矩阵H的定义如下, <formula>formula see original document page 5</formula>
步骤A3:将经过Hadamard变换后产生的值,进行绝对值相加,得出本4*4块的最终 变换后的绝对和。计算公式如下式所示'=0户o
具体实施方式
二本实施方式在具体实施方式
一的基础上进一步说明了歩骤A2中所述 的Hadamard变换的具体实现方法
步骤B1:为了设计Hadamard变换硬件并行计算架构,首先将Hadamard变换公式展开 如下所示
<formula>formula see original document page 6</formula>《1 ="11 —"12 —"14 +"2i —"22 +"23 — 24 + —"32 +"33 —"34 +"41 —"42 一"44;
c/42 , +<a12 -+ - -a2, -a22 +a23 +a24 +a31 + -a33 -aM _a41 _a42 +a43 + ;
《3 _"12 — 13 + 14 —^21 +fl22 +"23 —"24 +"31 —% —"33 +°34 _"41 +"42 +<343 —"44;
《= U —^12 + 13 — 14 —fl21 +"22 —"23 +"24 +"31 —"32 +fl33 —fl34 —"41 +"42 —"43 +"44;
步骤B2:步骤B1中16个计算矩阵元素的等式总共需要240个加、减法操作。观察上 述等式,很多操作可以复用,我们设置16个中间变量如下式所示
=flU +"12 +ai3 +"14; Gl ="2' +a22 +a23 +a24;
Gl =a31 +°32 +"33 +a34; ="41 +"42 +"43 +"44;
,12 =a!l +fl!12 一°13 —°14; ,22 ="21 +"22 _"23 一"24;
,32 =% +<%2 —% _ ; "2 ="41 +"42 _"43 一"'
,13 =fl!ll 一°12 —"13 +fl14; ^23 ="2i 一"22 _fl23 +fl24; ^ = 31 - ,+fl!34; = fl41 -fl42 —"43 +"44;
/14 , ——Oh; ^4 ="21 —^22 +% —"24;
~ ="31 —"32 + 33 -"34; : = "41 -"42 +"43 -"44;
步骤B1中16个矩阵元素的等式可以表示如下
《i "21 "31 "41; 《1 =Ai "21 一(" 一~1;
《1 =^1 "21 一^1 "41; "41 =6l ~^21 "31 一"l;
^12 =,12 "22 "32 +,42; 《2 "22 —,32 一(
42,
《2 = ^12 一^22 —,32 +,42; 《2 = ^12 _,22 +^2 —"2;
=/13 +b +^3 +^13; 《3 =^3 +b —& —r43;
《3 =,13 —,23 _^I3 +"3; 《3 =,13 —~3 —^13; 《=^14 "24 "34 +,44; =^14 "24 -仃4 -,44;
《4 = ,14 一,24 —,34 +^4; ^44 =仏一^24 "^34 —^M;
采用步骤B2方法计算Hadamard变换矩阵元素总共需要80个加、减法操作'步骤B3:采用4-2压縮器设计Hadamard变换矩阵的硬件并行处理架构。步骤B2中计 算每个中间值夂,每位需要一个4-2压縮器实现,中间变量每位总共需要16个4-2压縮器;
从中间变量计算Hadamard变换结果矩阵元素时,每个元素每位需要2个4-2压縮器加法器, 4*4Hadamard变换矩阵每位需要32个4-2压縮器;高位采用符号扩展,最多需要13位操 作,总共需要624个4-2压縮器。
具体实施方式
三本实施方式在具体实施方式
二的基础上进一步说明了歩骤B3中采用 4-2压縮器设计Hadamard变换矩阵的硬件并行处理架构。
步骤C1:图2给出了计算矩阵单元《,^,^,^的第零位硬件结构电路模型,图3给
出了计算矩阵单元^,^,4,,《,的其它位硬件结构电路模型。
步骤C2:图4给出了计算矩阵单元《2^22,《2,《2的第零位硬件结构电路模型,图5给 出了计算矩阵单元c/,2,^,《2,^的其它位硬件结构电路模型。
步骤C3:图6给出了计算矩阵单元^^23,《3,《3的第零位硬件结构电路模型,图7给 出了计算矩阵单元《3^23,《3^43的其它位硬件结构电路模型。
步骤C4:图8给出了计算矩阵单元《4,《4,《4,《4的第零位硬件结构电路模型,图9给出了 计算矩阵单元《4,《4,《4,《4的其它位硬件结构电路模型。
权利要求
1、SATD的快速硬件实现方法,其特征在于4*4块Hadamard变换矩阵的并行处理硬件架构的设计。
2、 根据权利要求1所述的4*4块Hadamard变换矩阵的并行处理硬件架构实现方法,其 特征在于以下几个步骤, ,步骤Bl:为了设计Hadamard变换硬件并行计算架构,首先将Hadamard变换公式展开得到16个计算矩阵元素的等式。步骤B2:步骤B1中16个计算矩阵元素的等式总共需要240个加、减法操作。观察上述等式,很多操作可以复用,设置16个中间变量^-^,步骤B1中的16个矩阵元素的等式可以采用中间变量表示,该方法提供了中间结果的复用。采用步骤B2方法计算Hadamard变 换矩阵元素总共需要80个加、减法操作。步骤B3:采用4-2压縮器设计Hadamard变换矩阵的硬件并行处理架构。步骤B2中计算 每个中间值^每位需要一个4-2压縮器实现,中间变量每位总共需要16个4-2压缩器;从中 间变量计算Hadamard变换结果矩阵元素时,每个元素每位需要2个4-2压缩器加法器, 4*4Hadamard变换矩阵每位需要32个4-2压縮器;高位采用符号扩展,最多需要13位操作, 总共需要624个4-2压縮器。
3、 根据权利要求2中步骤B3所述的采用4-2压縮器设计Hadamard变换矩阵的硬件并 行处理架构,针对不同的Hadamard变换矩阵元素,其特征在于以下步骤,步骤C1:对残差值先进行四种形式的变换,得到进行特殊wallace阵列的四组并行输入 数据。它们为(all,al2,al3,al4;a21,a22,a23,a24;a31,a32,a33,a44;a41,a42,a43,a44! {al l,al2,~ al3广al4;a21,a22广a23, a24;a31,a32, a33广a44; a41,a42, a43广a44)(all广al2广al3,al4;a21, a22, a23,a24;a31,a32广a33广a44;a41广a42, a43,a44)(al l广al2,al3广al4;a21广a22,a23, a24;a31, a32,a33, a44; a41, a42,a43, a44) 步骤C2:将输入的四组数据首先进行并行的4-2压縮加法。对于第一组输入得到的值为,11 =°11 +0!12 +fl13 +"14; ~| =^21 +"22 +fl23 +fl24;Gl = W % + ; = "41 + "42 + "43 + "44; 对于第二组输入,得到的值为—i ^t14 , — "21 + "22"23"24"f32 = 31 + "32 一 《33 一 。34; 〖42 = fl41 + "42 — "43 一 。44;对于第三组输入得到的值为Zj3 —《2 —"13 "^4 *23=— "22 — "23 + "24~~ "31"32"33 ""^" ,对于第四组输入,得到的值为-,14 ^ Al —"12 +^13 一 ;M3="41 —"42 —"43 +"44;,24 = "21 一 "22 + "23 — "24 ,*34一 — "32 + "33 一 "34 , ^44 — "41 — "42 + "43 — "44 ,并把这四组得到的值以交叉的组合形式作为第二级流水的输入;步骤C3:将输入到第二级流水的数据做四组并行的4-2压縮加法(第一组得到的值为tl 1 +112 ; tl 1 -U2; tl3 +114 ;tl3-114 ;第二组得到的值为t21 +122 ; t21 -122; t23 +124 t23 -124 ;第三组得到的值为t31 +132; t31國t32; t33 +134; t33 -134 ;第四组得到的值为t41 +142;t41 -142; t43 +144;t43 -144 。并把这些值以交叉的组合形式作为第三级流水的输入;步骤C4:将输入到第三级流水的数据做四组并行的4-2压縮加法。第一组得到值第二组得到值《1 ^1 "21 "31 +"1,^21 =^11 "^2i 一^31 一^U,"31 = ,11 一^21 —,31 "41, 《1 =Al —,2] "31 一户442,32 —'12*22 *32+ ^42; 《2 ^2 —~2 "^32 —"2,第三组得到值第四组得到值《3 =^13 "*^23 "^33 +"3; ^23 = ^13 "*"^23 —~ 一^43,"33 =^13 —毛3 —^33 "^43; 《3 =^13 —,23 "^33 —心3,《=^14 "34 +^44; ^24 = +^4 —^4 一,^34 =^ 一^24 — "44,^44 =,4 — ^24 ,34 — ,44,并把这些值存入寄存器作为下级流水的输入c
全文摘要
SATD计算是H.264、AVS等视频编码技术中运动估计算法中的关键部分。而Hadamard变换是SATD计算的核心。目前Hadamard变换通用做法是通过两个一维变换完成。本发明设计了一个并行硬件架构,直接实现Hadamard二维变换,在并行结构中充分利用Hadamard两维变换过程的各类规律,实现了中间结果、电路资源等共享。本发明设计的并行硬件结构在一个时钟周期内实现了4×4 Hadamard变换。
文档编号H04N7/26GK101583038SQ20091010609
公开日2009年11月18日 申请日期2009年3月25日 优先权日2009年3月25日
发明者迪 商, 张爱平, 王明江, 琥 颜 申请人:哈尔滨工业大学深圳研究生院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1