我正在做一个视频作业,你编写了一个着名的视频压缩算法,我选择了ARPS(自适应rood模式搜索)。
现在,如果我理解正确,我必须首先将图像划分为宏块,我已经这样做了,第二次通过采用左相邻宏块的运动矢量来计算pmv(预测运动矢量)(类型D,有其他类型,你采取上述或左上方等,根据一些论文,他们在质量上没有太大差异)。
最后使用pmv来计算当前宏块的mv。
如果我理解正确,我必须使用其他算法(NTSS或FSS等)计算第一列宏块,然后使用该列计算其余的。
如果我的第一栏没有动,会发生什么? pmv =(0,0)并应用该算法,因为我从维基百科了解它导致所有mvs为(0,0)(又名第一列没有改变=没有改变!!!)
我怀疑我是否正确理解了算法,并且出于某种原因许多论文没有解决这些问题,所以你能否对它有所了解?之后我可以很好地实现它。
这是一个大学的家庭作业,我在软件工程部门(不是AI部门),所以不需要人工智能算法。
答案 0 :(得分:0)
据我所知,ARPS算法的强度是自适应的rood大小,它基于预测的运动矢量(mv)。 Rood被用作这种方法的第一步,并且可以通过在正确的位置跳跃来显着减少过度估计。第二步是通过小钻石或其他您喜欢的固定图案来细化最佳点。
因此,如果你预测零mv,你可以简单地应用精确估计(第二步)。
实际上,零mv表示估计块的小度量值(通过SAD或其他度量)。自然静态图片总是具有相邻(在时间平面中)样本的一些偏差,并且任何度量产生一些值。通过零移动或小运动矢量标记该块的实现决定。
关于您实施中的列。对于非第一行中的第一个块,您可以使用上面的mv块。这减少了你的总计算量。
在任何情况下,您可以通过应用运动补偿(运动估计的倒数)并通过计算PSNR度量来计算原始图像来检查实现的好坏变化。