什么是关键帧动画

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是关键帧动画相关的知识,希望对你有一定的参考价值。

Flash中我知道"关键帧"的定义但不知道”关键帧动画”!

关键帧的概念来源于传统的卡通片制作。在早期Walt Disney的制作室,熟练的动画师设计卡通片中的关键画面,也即所谓的关键帧,然后由一般的动画师设计中间帧。在三维计算机动画中,中间帧的生成由计算机来完成,插值代替了设计中间帧的动画师。所有影响画面图象的参数都可成为关键帧的参数,如位置、旋转角、纹理的参数等。关键帧技术是计算机动画中最基本并且运用最广泛的方法。另外一种动画设置方法是样条驱动动画。在这种方法中,用户采用交互方式指定物体运动的轨迹样条。几乎所有的动画软件如Alias、Softimage、Wavefront、TDI、3DS等都提供这两种基本的动画设置方法。

无论是样条驱动动画还是关键帧插值方法,都会碰到这个问题:给定物体运动的轨迹,求物体在某一帧画面中的位置。物体运动的轨迹一般由参数样条来表示。如果直接将参数和帧频联系起来,对参数空间进行等间隔采样,有可能带来运动的不均匀性。为了使物体沿一样条匀速运动,必须建立弧长与样条参数的一一对应关系。Guenter等提出用Gauss型数值积分方法计算弧长,用Newton-Raphason迭代来确定给定弧长点在曲线上的位置,并采用查找表法记录参数点弧长值的方法来加速计算。在动画设计中,动画师经常需调整物体运动的轨迹来观察物体运动的效果,交互的速度是一个很重要的因素。Watt等提出了用向前差分加查找表的方法来提高交互的速度。在精度要求不是很高的情况下,他们的方法非常有效。

从原理上讲,关键帧插值问题可归结为参数插值问题,传统的插值方法都可应用到关键帧方法中。但关键帧插值又与纯数学的插值不同,它有其特殊性。一个好的关键帧插值方法必须能够产生逼真的运动效果并能给用户提供方便有效的控制手段。一个特定的运动从空间轨迹来看可能是正确的,但从运动学或动画设计来看可能是错误的或者不合适的。用户必须能够控制运动的运动学特性,即通过调整插值函数来改变运动的速度和加速度。为了很好地解决插值过程中的时间控制问题,Steketee等提出了用双插值的方法来控制运动参数。其中之一为位置样条,它是位置对关键帧的函数;另一条为运动样条,它是关键帧对时间的函数。Kochanek等提出了一类适合于keyframe系统的三次插值样条,他们把关键帧处的切矢量分成入矢量和出矢量两部分,并引入三个参数:张量t、连续量c和偏移量b对样条进行控制。该方法已在许多动画系统中得到了应用。

他们的方法非常有效。

从原理上讲,关键帧插值问题可归结为参数插值问题,传统的插值方法都可应用到关键帧方法中。但关键帧插值又与纯数学的插值不同,它有其特殊性。一个好的关键帧插值方法必须能够产生逼真的运动效果并能给用户提供方便有效的控制手段。一个特定的运动从空间轨迹来看可能是正确的,但从运动学或动画设计来看可能是错误的或者不合适的。用户必须能够控制运动的运动学特性,即通过调整插值函数来改变运动的速度和加速度。为了很好地解决插值过程中的时间控制问题,Steketee等提出了用双插值的方法来控制运动参数。其中之一为位置样条,它是位置对关键帧的函数;另一条为运动样条,它是关键帧对时间的函数。Kochanek等提出了一类适合于keyframe系统的三次插值样条,他们把关键帧处的切矢量分成入矢量和出矢量两部分,并引入三个参数:张量t、连续量c和偏移量b对样条进行控制。该方法已在许多动画系统中得到了应用。
参考技术A 这问题奇怪,你不做关键帧动画,你定义关键帧做啥?
关键帧动画就是用关键帧定义的关键动作,形成动画。关键动作之间的过渡变形由软件自动完成。本回答被提问者采纳
参考技术B 其实关键帧主要的作用就是与前一帧不同,因为不同所以产生视觉的欺骗,使动画有动起来的感觉
你所谓的关键帧动画我想应该指的是补间动画,做补间动画只需要两个关键帧,第一帧和最后一帧,然后创建补间动画,将最后一帧调整就好了
一楼的太麻烦了...
参考技术C 键帧动画,是表示关键状态的帧动画。任何动画要表现运动或变化,至少前后要给出两个不同的关键状态,而中间状态的变化和衔接电脑可以自动完成。给需要动画效果的属性,准备一组与时间相关的值,这些值都是在动画序列中比较关键的帧中提取出来的,而其他时间帧中的值,可以用这些关键值,采用特定的插值方法计算得到,从而达到比较流畅的动画效果。 参考技术D 为什么吗?那奇了怪了.难道说不一样吧还是人根本就没有学好吗.

什么是关键帧

参考技术A 什么是关键帧
关键帧是时间轴中含有黑色实心圆点的帧。关键帧是用来定义动画变化的帧,是动画制作过程中最重要的帧型别。
视讯编码关键帧间隔
一帧就是视讯中的一个画面。

视讯编码是按“组”进行的,每一组也叫一个GOP

GOP与GOP之间是没有联络的,编码关系只在GOP中间产生。

每一个GOP组都从一个关键帧开始。

关键帧是一辐完整的画面

GOP中间的那些帧都是不完整的,需要由关键帧、前面的帧或者也包括后面的帧一起,运算后得到。

对于普通视讯档案,加大GOP长度有利于减小体积;从原理上可知,GOP长度也不能过大,太大则会导致GOP后部帧的画面失真。一般建议GOP长度在250帧以下为宜。

由于PAL制式每秒有25帧(N制为30帧),如果是用于实时视讯,如电视、网上视讯等,GOP长度应在15至25之间。这样可以在一秒内完成视讯快进或回退。
请问视讯中的'关键帧'是什么意思??
关键帧也叫帧内帧,就是这一帧以类似jpeg的编码方式编码.而其他帧只编码与关键帧不同的部分,这样就会小一点了 检视原帖>>

希望采纳
关键帧是什么意思?要如何运用?
关键帧就是独立桢,不以其他桢影象做参考,在mepg标准中影象桢的参考关系如下

影象型别及其相互关系(参考关系如图的箭头所示)

MPEG将影象分成四种类型:I、P、B、D

I影象是帧内编码影象,它不参考其他任何影象而独立编码

P影象是前向预测编码影象,相对于前一参考影象进行有运动补偿的预测编码

B影象是双向预测编码影象,需要前向和后向的参考影象作运动补偿

D影象的目的是提供一种简单的,但质量相当有限的快进播放方式
如何强制ffmpeg编码时输出一个关键帧
如何强制ffmpeg编码时输出一个关键帧

AVCodecContext *c 编码器环境控制代码AVFrame* f 需要编码的一帧视讯 在编码前设定

f->pict_type=FF_I_TYPE; f->key_frame=1;然后编码

*outsize = avcodec_encode_video(c, temp, outbuf_size, f);则编码之后通过如下引数判断是否为关键帧:

key_frame=c->coded_frame->key_frame; pict_type=c->coded_frame->pict_type;
视讯编码关键帧间隔
压缩比,间隔越大,可以压得越小,用恒定质量模式下不会影响质量但减小位元速率(不费时)。

大小I>P>B,I帧越稀疏,越能压。

但是播放搜寻时必须从I帧开始一直解码到所需时间点,所以间隔大了,跳转会很久。

我的设定一般是Min=6,Max=360,比较宽
如何强制ffmpeg编码时输出一个关键帧
如何强制ffmpeg编码时输出一个关键帧

AVCodecContext *c 编码器环境控制代码AVFrame* f 需要编码的一帧视讯 在编码前设定

f->pict_type=FF_I_TYPE;

f->key_frame=1;

然后编码

*outsize = avcodec_encode_video(c, temp, outbuf_size, f);

则编码之后通过如下引数判断是否为关键帧:

key_frame=c->coded_frame->key_frame;

pict_type=c->coded_frame->pict_type;
帧速率与关键帧有什么区别嘛我有一个视讯,格式要求帧
这肯定有,,,

格式是视讯的编码型别。。帧率是视讯每秒播放多少幅影象。。

30fps的我好想没听说过,严格的说应该是29.97fps,这是美国NTSC制式电视的帧率
视讯编码中的ibp帧的关系
视讯压缩中,每帧代表一幅静止的影象。而在实际压缩时,会采取各种演算法减少资料的容量,其中IPB就是最常见的。

简单地说,I帧是关键帧,属于帧内压缩。就是和AVI的压缩是一样的。 P是向前搜寻的意思。B是双向搜寻。他们都是基于I帧来压缩资料。

I帧表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧资料就可以完成(因为包含完整画面)

P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前快取的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧,P帧没有完整画面资料,只有与前一帧的画面差别的资料)

B帧是双向差别帧,也就是B帧记录的是本帧与前后帧的差别(具体比较复杂,有4种情况),换言之,要解码B帧,不仅要取得之前的快取画面,还要解码之后的画面,通过前后画面的与本帧资料的叠加取得最终的画面。B帧压缩率高,但是解码时CPU会比较累~。

从上面的解释看,我们知道I和P的解码演算法比较简单,资源占用也比较少,I只要自己完成就行了,P呢,也只需要解码器把前一个画面快取一下,遇到P时就使用之前快取的画面就好了,如果视讯流只有I和P,解码器可以不管后面的资料,边读边解码,线性前进,大家很舒服。

但网路上的电影很多都采用了B帧,因为B帧记录的是前后帧的差别,比P帧能节约更多的空间,但这样一来,档案小了,解码器就麻烦了,因为在解码时,不仅要用之前快取的画面,还要知道下一个I或者P的画面(也就是说要预读预解码),而且,B帧不能简单地丢掉,因为B帧其实也包含了画面资讯,如果简单丢掉,并用之前的画面简单重复,就会造成画面卡(其实就是丢帧了),并且由于网路上的电影为了节约空间,往往使用相当多的B帧,B帧用的多,对不支援B帧的播放器就造成更大的困扰,画面也就越卡。

一般平均来说,I的压缩率是7(跟JPG差不多),P是20,B可以达到50,可见使用B帧能节省大量空间,节省出来的空间可以用来储存多一些I帧,这样在相同位元速率下,可以提供更好的画质。

以上是关于什么是关键帧动画的主要内容,如果未能解决你的问题,请参考以下文章

到底啥是动画关键帧啊

动画的五个关键帧都有哪些?

简答题在3ds Max中为动画设置关键帧有几种总方法

WPF关键帧动画

css3关键帧悬停动画firefox

CSS关键帧动画优雅完成