热点推荐
ZOL首页 > CPU频道 > CPU评测 > 超频与应用 >

Penryn︰SSE4指令集强化视讯编码效率1

引入SSE4指令集 英特尔45纳米Penryn测试

hkepc.com 【转载】 2007年08月07日 16:06 评论
在本页阅读全文(共10页)

  Penryn︰SSE4指令集强化视讯编码效率


引入SSE4指令集 英特尔45纳米Penryn测试


  SSE4指令集进一步强讯编码效果,例如可同时处理8个4-byte宽度的SAD(Sums of Absolute Differences)运算,常用于新一代高清影像编码如VC.1及H.264等规格中,令视频编码速度进一步提升。

  据了解,在进行视讯编码时需要进行动态预测(Motion Estimation)及差分编码方式去除相邻2张影像之相关性,这是一个非常复杂的运算动作,在没有SSE4指令集时,以上工作所需指令如下︰

for (int moveblock=0;moveblock<16;moveblock++)
for(int line=0; line<16; line++) // Does the 16 pixels large in 4 iteration
{

int i=0;

sum0+=abs( pBlock1[j]-pBlock2[i])+abs(pBlock1[j+1]-pBlock2[i+1])+abs(pBlock1[j+2]-pBlock2[i+2])+abs(pBlock1[j+3]-pBlock2[i+3]); // Compare with 0 pixel offset
sum1+=abs(pBlock1[j+1]-pBlock2[i])+abs(pBlock1[j+2]-pBlock2[i+1])+abs(pBlock1[j+3]-pBlock2[i+2])+abs(pBlock1[j+4]-pBlock2[i+3]); // Compare with 1 pixel offset
sum2+=abs(pBlock1[j+2]-pBlock2[i])+abs(pBlock1[j+3]-pBlock2[i+1])+abs(pBlock1[j+4]-pBlock2[i+2])+abs(pBlock1[j+5]-pBlock2[i+3]); // Compare with 2 pixel offset
sum3+=abs(pBlock1[j+3]-pBlock2[i])+abs(pBlock1[j+4]-pBlock2[i+1])+abs(pBlock1[j+5]-pBlock2[i+2])+abs(pBlock1[j+6]-pBlock2[i+3]); // Compare with 3 pixel offset
sum4+=abs(pBlock1[j+4]-pBlock2[i])+abs(pBlock1[j+5]-pBlock2[i+1])+abs(pBlock1[j+6]-pBlock2[i+2])+abs(pBlock1[j+7]-pBlock2[i+3]); // Compare with 4 pixel offset
sum5+=abs(pBlock1[j+5]-pBlock2[i])+abs(pBlock1[j+6]-pBlock2[i+1])+abs(pBlock1[j+7]-pBlock2[i+2])+abs(pBlock1[j+8]-pBlock2[i+3]); // Compare with 5 pixel offset
sum6+=abs(pBlock1[j+6]-pBlock2[i])+abs(pBlock1[j+7]-pBlock2[i+1])+abs(pBlock1[j+8]-pBlock2[i+2])+abs(pBlock1[j+9]-pBlock2[i+3]); // Compare with 6 pixel offset
sum7+=abs(pBlock1[j+7]-pBlock2[i])+abs(pBlock1[j+8]-pBlock2[i+1])+abs(pBlock1[j+9]-pBlock2[i+2])+abs(pBlock1[j+10]-pBlock2[i+3]); // Compare with 7 pixel offset

i=4;
j=moveblock+4;

… }
}

  一大串的运算动作包括了ABS、Subtracion及Addition等,极度浪费处理器资源,但当处理器支持SSE4指令集,只需要采用4 SAD运算指令︰

MPSADBW xmm0,xmm1,0

  便完全代替了以上繁复的指令串,大幅提升动态预测(Motion Estimation)及差分编码的运算速度。

  除此之外,视讯编码需要寻找最佳的SAD(Sums of Absolute Differences),由于旧有处理器只支持垂直寻找,十分浪费处理器资源,令视讯编码工作变得冗长,在没有SSE4指令集时,以上工作所需指令如下︰

if (ret<sum0) {
 

ret=sum1;
best_mv->x=mv.x;
best_mv->y=mv.y+line;

}

if (ret<sum1)

{

ret=sum1;
best_mv->x=mv.x+1;
best_mv->y=mv.y+line;

}

if (ret<sum2)

{

ret=sum2;
best_mv->x=mv.x+2;
best_mv->y=mv.y+line;

}

if (ret<sum3)

{

ret=sum3;
best_mv->x=mv.x+3;
best_mv->y=mv.y+line;

}

if (ret<sum4)

{

ret=sum4;
best_mv->x=mv.x+4;
best_mv->y=mv.y+line;

}

if (ret<sum5)

{

ret=sum5;
best_mv->x=mv.x+5;
best_mv->y=mv.y+line;

}

if (ret<sum6)

{

ret=sum6;
best_mv->x=mv.x+6;
best_mv->y=mv.y+line;

}

if (ret<sum7)

{

ret=sum7;
best_mv->x=mv.x+7;
best_mv->y=mv.y+line;

}

  当软件支持SSE4指令集,以上复杂的指令组却只需要1条水平式搜查指令便可完成︰

Phminposuw xmm7,xmm7

  据Intel资深工程师兼 Penryn 微架构主管 Stephen Fischer 表示,全新 DivX Alaph 内部测试版本已完全支持SSE4指令集, 1颗 3.33G Hz 的Yorkfield的运算效能,相比上代Intel Core 2 Duo QX6800快约105% ,其中约7成的增益来自SSE4指令集,效果令人满意。

引入SSE4指令集 英特尔45纳米Penryn测试

上一页 1 2 3 4 5 ...10 下一页
频道热词:AMD  散热器  intel  
视觉焦点
CPU评测热点
排行 文章标题
TOP10周热门CPU排行榜
  • 热门
  • 新品
查看完整榜单>>