实现的算法:
FS、4SS、BBGDS、DS、HS、CDHS、MVFAST、PMVFAST、ARPS、ARPS3
原本想实现UMHexagonS和EZPS算法,但这两种算法都针对H.264做了特殊的优化。本程序只考虑了16*16块的方式,对其实现的结果是不公平的。
另:AVPS是自己的算法,没有写完。有兴趣请参考,实际上跟PMVFAST、EZPS很想像。
#define OPEN_FILE "E:\\foreman_cif.yuv"
#define REF_FILE "E:\\foreman_cif.yuv.enc"
OPEN_FILE是用jm或x264等编码时产生的重建序列,REF_FILE是原始序列,这里作参考帧之用。
for( j=0;j<Y;j++)
{
memset(_flag_search,0,SEARCH_RANGE*SEARCH_RANGE);
search_ARPS3(i,j,BLOCK_HEIGTH,BLOCK_WIDTH);
rebuilt(i,j,BLOCK_HEIGTH,BLOCK_WIDTH);
}
要使用具体某种搜索算法,只需修改上面的search_ARPS3函数名即可。search_ARPS3表示ARPS3搜索算法,类似的search_MVFAST表示MVFAST搜索算法。
程序的输出:
frame cost psnr
0 6.63 33.28
1 7.52 32.57
2 7.33 33.02
3 7.82 32.13
frame表示帧数,cost是平均每块的搜索点数,psnr是匹配图象与原始图象的峰值信噪比(也即忽略了所有的残差信息)
264中运动估计方法比较
需积分: 9 139 浏览量
2011-03-24
10:16:17
上传
评论
收藏 17KB ZIP 举报
xuchen19830626
- 粉丝: 0
- 资源: 1