运动补偿

✍ dations ◷ 2025-10-18 10:30:26 #运动补偿

运动补偿是一种描述相邻帧(相邻在这里表示在编码关系上相邻,在播放顺序上两帧未必相邻)差别的方法,具体来说是描述前面一帧(相邻在这里表示在编码关系上的前面,在播放顺序上未必在当前帧前面)的每个小块怎样移动到当前帧中的某个位置去。这种方法经常被视频压缩/视频编解码器用来减少视频串行中的时域冗余。它也可以用来进行去交织(deinterlacing)以及运动插值(motion interpolation)的操作。

一个视频串行包含一定数量的图片--通常称为帧(frame)。相邻的图片通常很相似,包含了很多冗余。使用运动补偿的目的是通过消除这种冗余,来提高压缩比。

最早的运动补偿的设计只是简单的从当前帧中减去参考帧,从而得到通常含有较少能量(或者称为信息)的"残差",从而可以用较低的码率进行编码。解码器可以通过简单的加法完全恢复编码帧。

一个稍微复杂一点的设计是估计一下整帧场景的移动和场景中物体的移动,并将这些运动通过一定的参数编码到码流中去。这样预测帧上的像素值就是由参考帧上具有一定位移的相应像素值而生成的。这样的方法比简单的相减可以获得能量更小的残差,从而获得更好的压缩比--当然,用来描述运动的参数不能在码流中占据太大的部分,否则就会抵消复杂的运动估计带来的好处。

通常,图像帧是一组一组进行处理的。每组的第一帧(通常是第一帧)在编码的时候不使用运动估计的办法,这种帧称为帧内编码帧(Intra frame)或者I帧。该组中的其它帧使用帧间编码帧(Inter frame),通常是P帧。这种编码方式通常被称为IPPPP,表示编码的时候第一帧是I帧,其它帧是P帧。

在进行预测的时候,不仅仅可以从过去的帧来预测当前帧,还可以使用未来的帧来预测当前帧。当然在编码的时候,必须比当前帧更早的编码,也就是说,编码的顺序和播放的顺序是不同的。通常这样的当前帧是使用过去和未来的I帧或者P帧同时进行预测,被称为双向预测帧,即B帧。这种编码方式的编码顺序的一个例子为IBBPBBPBBPBB。

在全局运动补偿中,运动模型基本上就是反映摄像机的各种运动,包括平移,旋转,变焦等等。这种模型特别适合对没有运动物体的静止场景的编码。全局运动补偿有下面的一些优点:

但是,缺点是,如果场景中有运动物体的话,全局运动补偿就不足以表示了。这时候应该选用其它的方法。

在分块运动补偿(BMC for block motion compensation)中,每帧被分为若干像素块(在大多数视频编码标准,如MPEG中,是分为16x16的像素块)。从参考帧的某个位置的等大小的块对当前块进行预测,预测的过程中只有平移,平移的大小被称为运动矢量。

对分块运动补偿来说,运动矢量是模型的必要参数,必须一起编码加入码流中。由于运动矢量之间并不是独立的(例如属于同一个运动物体的相邻两块通常运动的相关性很大),通常使用差分编码来降低码率。这意味着在相邻的运动矢量编码之前对它们作差,只对差分的部分进行编码。使用熵编码对运动矢量的成分进行编码可以进一步消除运动矢量的统计冗余(通常运动矢量的差分集中于0矢量附近)。

运动矢量的值可以是非整数的,此时的运动补偿被称为的运动补偿。这是通过对参考帧像素值进行亚像素级插值,而后进行运动补偿做到的。最简单的亚像素精度运动补偿使用半像素精度,也有使用1/4像素和1/8像素精度的运动补偿算法。更高的亚像素精度可以提高运动补偿的精确度,但是大量的插值操作大大增加了计算复杂度。

分块运动补偿的一个大缺点在于在块之间引入的非连续性,通常称为。当块效应严重时,解码图像看起来会有像马赛克一样的效果,严重影响视觉质量。另外一个缺点是,当高频分量较大时,会引起。关于高频分量,请参见对运动补偿后的残差进行变换的方法:变换编码。

可变分块运动补偿(VBSMC,全称 Variable Block Size Motion Compensation)是BMC的变种,编码器可以动态选择分块大小。进行视频编码时,使用大的分块可以减少表征运动向量所需的比特数,使用小的分块则可以在编码时产生更少的预测余量信息。较老的设计,象H.261和MPEG-1视频编码,典型的使用了固定分块,而较新的设计,像H.263、MPEG-4 Part 2、H.264/MPEG-4 AVC和VC-1则赋予了编码器动态选择何种分块来表征运动图像的能力。

重叠分块运动补偿(OBMC for Overlapped block motion compensation)是一种更好的解决方案,它不但能增加预测精度,而且能够避免块失真。因此,每个像素第属于4个分块。基于此方案,每个像素的4个预测值求和后得到一个加权平均数。

为此目的,分块被关联到一个窗口函数,该窗口函数具有任何地方的4个重叠窗口的总和为1的特质。

运动估计就是寻找最优或次优的运动向量的过程。某个块的预测误差量常常是指在运动补偿区域所有像素中,预测像素和实际像素数值的均方差或者绝对差别总和。

发现最优向量,一个最基本的方法是不得不为在固定探测范围内,给每一个运动向量,计算块的预测误差计算邻近祯之中找寻前后frame之中相似的Macro Block,两者之间的差异值。以及估算表示此Motion Vector所需的比特数目,和在错误数和比特数之间挑选一个最折中作为运动向量值。运动估计技术尽量简单的测试在执行前一个简单的探测测试技术为:估计所有可能的运动表现,比如这样的最优化被称做全探测。

一个稍快但不是最优的方法是用第一个近似值作为一个粗略探测栅格,然后在接下来的步骤里在近似值的周围精确栅格。

一个通用办法是3步探测,用3次探测栅格;3个运动向量和3个精确步骤来得到15次15个像素范围内的全面探测。

对于分块运动估计,一个块的像素预测误差和它的附近搭接块,根据此前自乘的窗函数,都被测重和求和。

分块运动估计最主要的缺点是增加计算的复杂性,和实际的预测误差,因而最优向量依靠于临近运动块向量。

因此,没有一个多项式(计算的复杂性)算法可以保证最优运动向量。

然而,在可接受的计算的复杂性上,存在最接近最理想迭代和非迭代方法。

相关

  • 光荣码头光荣码头(英文:Glory Pier)位于台湾高雄市苓雅区爱河出海口处,正式名称为“高雄港13号码头”,是高雄港少数向公众开放的码头之一。第二次世界大战期间日本政府曾运送过20万名台籍
  • 福陵福陵,指的可以是:
  • 机井洞机井洞是朝鲜民主主义人民共和国开城市平和里(朝鲜语:평화리/平和里*/?)的一个洞。该洞位于朝韩非军事区(DMZ)北方境内。机井洞被朝鲜称为平和村(朝鲜语:평화촌/平和村 ),而西方国家和
  • 周崇德周崇德(1906年-?),男,陕西吴堡人,中华人民共和国政治人物,曾任中国人民银行青海省分行行长,青海省计划委员会主任,青海省政协副主席。
  • 陶然 (桂林乳胶厂)陶然(英语:Tao Ran,1963年-),现任中国化工集团公司联营企业桂林乳胶厂厂长。出生于农民家庭的陶然,1986年,他在大学毕业后,他在桂林橡胶机械厂工作,之后桂林乳胶厂工作至今,由工厂工人
  • 章姓章姓在《百家姓》中排第40位。
  • 艾诺特·布真克艾诺特·赞·布真克(Arnold Jan Bruggink,1977年7月24日-),荷兰足球运动员,司职前锋或攻击中场。2000年,他赢得了年度荷兰天才奖,而他效力期间,球队夺得3联赛冠军和2超级杯,以及在欧洲冠军联赛有不错演出。而他得以加盟燕豪芬,因为他在1995/96赛季是川迪首席射手。在燕豪芬经过6个赛季,在2003年他来到西班牙马略卡,但他只效力一个赛季,回到了自己的祖国。加盟海伦芬,他在球队两年间,他们在荷兰足球甲级联赛和欧洲联盟杯双线比赛,2006年再前往国外加盟汉诺威96。2000年,布真
  • 原始藏缅语原始藏缅语(英语:Proto-Tibeto-Burman language,缩写:PTB),是一种祖语,分支自原始汉藏语,为藏缅语系的共同先祖。原始藏缅语的学说,最早由白保罗与马蒂索夫(James Matisoff)所提出。许多语言学者认为不包含汉语的藏缅语族形不成汉藏语系下的单系群,因此原始藏缅语等同于原始汉藏语。构拟因语言多样性过大而复杂化,许多语言描述不足,且大多数语言缺乏词形变化,还经历过千年为单位的与其他汉藏语系语言、以及与其他语系语言的剧烈接触。只有少数几支,如缅彝语群的祖语构拟得比较顺利。白
  • 布热季斯拉夫·多莱希布热季斯拉夫·多莱希(捷克语:Břetislav Dolejší,1928年9月26日-2010年10月28日),捷克男子足球运动员,司职守门员。他曾代表捷克斯洛伐克国家队参加1958年国际足联世界杯,结果队伍止步小组赛阶段。
  • 企鹅推冰《企鹅推冰》(日文:ペンゴ;英文:)是由世嘉公司于1982年所研发的街机游戏。玩家用摇杆操控著一个在南极生活的红色企鹅,这只企鹅就是这游戏的主角“彭哥”(Pengo)。彭哥可以推动冰块,将伤害它的敌人“思诺比”(Sno-Bee)给压扁。彭哥一次仅能推动一块冰块,若彭哥一次推动两块冰块时,离彭哥最近的冰块会融化。倘若这个冰块藏着思诺比的卵,彭哥吃掉可获得额外分数,思诺比的卵伤害不了彭哥,但孵化后的思诺比可直接伤害彭哥,使玩家失去一次生命机会。孵化后的思诺比,攻击性较强,它们也能两只手推冰,或者可以将冰块给融