1
大学信息技术基础教程
1.2.5.5.4 5.5.4 数字视频合成技术

5.5.4 数字视频合成技术

动画就是让物体活动起来,它包括了所有视觉效果上的改变。视觉效果多种多样,它可以是物体位置(运动状态)、形状、颜色、透明度、结构及纹理(更新状态)的变化,以及光照、镜头位置方向及焦距的改变。

计算机动画就是使用计算机图形工具来生成动画的视觉效果。计算机动画可以辅助传统的动画片,通过对物体运动、场景变化、虚拟摄像机以及光源设置等描述,逼真地模拟三维景物随时间变化的过程,而所生成的一系列画面以每秒50帧左右的速率演播,就可以产生连续运动或变化的效果。计算机动画也可以转换成电视或电影输出。与模拟电视信号经过数字化后得到的自然数字视频相比,计算机动画是计算机合成的数字视频。

计算机动画是以计算机图形学为基础,制作过程包括输入、合成、插补和颜色变换等过程,生成场景和形体的模型,然后描述它们的运动,最后再将产生的图像转换成视频信号输出。

1)动画生成过程

(1)输入过程。首先将人工绘制的图案数字化并输入计算机,这是因为描述运动物体的特征位置的关键帧必须由人工绘制完成。输入过程可以使用光学扫描、数据板输入或直接使用画图软件,同时要对图像进行去噪处理,然后保存为动画的关键帧。

(2)合成阶段。使用图像合成技术加入图像的前景和背景并生成每一帧。动画数据存放于一个矩形数组中,使用帧缓存的选取缩放功能可以预览动画的效果。帧缓冲可以获取一帧图像的特定部分并将其放大显示到整个屏幕。如果对缓存中的几个帧重复操作,显示速度足够快的话,就会产生连续运动的效果。

(3)插补过程。物体从一个位置到另一个位置的运动是通过在关键帧之间插入一系列中间位置的中间帧合成的。这个过程就是插补,在计算机动画中是通过插值来完成的。最常用的物体运动轨迹的插值有线性插值(如图5.20所示)和样条插值。物体形状改变的常用插值方法由Burtnyk和Wein提出,即利用一个多边形弧描述二维图形(或二维图形的一部分)及其邻域的基本形状,为运动确立一个骨架,并用基于这个骨架的坐标系统来表示这个图形。插值只对关键帧骨架的特征部分进行。

img110

图5.20 小球运动的线性插值

(4)颜色变换。计算机动画中要改变颜色就得使用帧缓冲的颜色查找表(CLUT或lut)和双缓冲技术。

2)动画语言

描述动画时有多种语言,大致分为三类。

(1)线性表描述语言。在线性表描述语言中,动画中的每个事件都由起止帧号及相应的动作来描述。动作一般都带有参数。

(2)通用语言。另一种描述动画的方法是在高级语言中嵌入动画功能,将变量作为参数传给生成动画的子程序。ASAS就是这样一种语言,它建立在LISP的基础上,它的图元包括矢量、颜色、多边形、实体、组、视点、子环境及光照。ASAS也包括各种各样的几何变换。

(3)图形语言。文本语言的一个问题是不能实现脚本的可视化,而图形动画语言用更直观的方式描述动画。这种语言能够同步表达、编辑并理解动画中发生的变化,从而生成替代文本动画的视觉模型。

3)动画控制方法

动画控制与描述动画的语言无关,可以采用不同的技术实现动画控制。

(1)完全显式控制。显式控制是动画控制的最简单形式。这种方式由动画制作者提供关于动画内容的一切描述来确定简单的变化,如比例变换、平移、旋转等,或给出关键帧及帧间的插值方法。

(2)过程控制。过程控制通过各种物体之间的联系来确定各自的特性。过程控制是其他几种方法的一个重要组成部分,特别是在基于物理模型的系统中,一个物体的位置会影响其他物体的运动(如球不能穿过墙);而在基于角度的系统中,各个角度的位置移动会影响其他角度的行为。

(3)基于约束的系统。现实世界中有一些物体是沿直线运动的,另一些物体的运动是由不与其接触的其他物体决定的,这样的复合运动不是直线的。这类运动可以用约束条件建模。使用约束条件确定动画序列要比显式控制更容易。对基于约束的动画系统进行扩充以支持层次限制及受物体动力学和材料特性约束的运动是研究中的热点。

(4)动作寻迹。通过动作寻迹来获得动画中物体的轨迹,传统动画使用的方法是这样的:先由人或动物扮演动画中的角色以制作电影胶片,然后再由动画制作者进行加工,包括增强背景、用动画形象代替人物等。

另一种动作寻迹技术是在人身上的关键点贴上提示符,通过跟踪提示符获得相应的运动模型。这种交互式方法的应用实例有“数据手套”,它可以测量出戴手套的人的手的位置、朝向及每个指头的伸屈。

(5)运动学和动力学。运动学研究的是点的位置和速度,而与此不同的是,动力学考虑了决定运动的物理定律。这两种方法也常用来控制物体的运动。

4)动画显示

为了在光栅系统中显示动画,必须将运动物体(由如线、多边形这样的图元组成)经扫描转变为可在帧缓存中存放的位图。要显示一个旋转的物体,我们需要在前后连贯、变化不大的视点上一次接一次地进行扫描转换。扫描转换每秒至少有10次(要产生平滑的效果的话最好有15~20次),因此实时显示必须在不到100ms内生成新图像,而扫描转换又只能占其中的一部分,因为假如扫描转换占据75ms,则留给删除和重绘的时间就只有25ms,时间不够就会出现问题。只有帧缓存可以解决这个问题,帧缓存分为两部分,每一部分都为整个缓存的一半。

如上所述,可以用符号图形或扫描转换后的位图来表示运动的物体。相应地,在计算机网络上传输动画也有两种方法。

5)动画传输

(1)符号表示。在网络上可以传输动画物体的符号表示及作用于该物体的操作命令,在接收端就可以将动画显示出来。由于符号表示比位图表示会小很多,因而传输时间也很短,但显示却要花较多的时间,因为要进行扫描转换。

使用这种方法时,传输速率与以下因素有关:

①运动物体符号表示结构的大小;

②操作命令结构的大小;

③每秒传送的运动物体和操作命令的个数。

(2)位图表示:这种方式直接传输动画的位图表示并在接收端显示。位图表示传输的时间将大于符号表示的,因为位图的数据量较大,但显示时间很短(因为接收端无需进行扫描转换,位图可以直接显示)。位图表示的动画的传输速率等于动画物体的位图表示的大小乘以每秒传输的位图像素。

6)动画软件与文件格式

目前最常用的网页动画制作软件是Macromedia公司的Flash。Flash所制作的动画是矢量图形,放大与缩小不影响图形的质量。Flash的动画文件扩展名为.swf,文件数据量小,便于在网络上传输。同时,由于它采用了流式传输技术,用户能一边下载一边播放动画。另外,Flash还可以将音乐、声效、视频与动画画面结合在一起,制作出有声有色的高品质网页动画。Flash所具有的交互性使得Flash动画游戏的应用越来越流行。

Adobe公司的ImageReady、Macromedia公司的Fireworks、Ulead公司的Gif Animator也是通用的动画制作软件。这些软件将预先完成的每一幅图片保存成GIF、BMP或JPG格式的文件,再按照顺序导入,即可生成的GIF动画图像文件。GIF动画文件广泛应用在网页上。GIF图像文件中包含多个图像,显示时按照预先规定的时间和顺序反复播放,从而产生动画的效果。

此外,常用的二维动画软件Animator Pro和三维动画软件3DStudioMax、Director等,也应用在娱乐、广告、电视、教育和科研的各个方面,是计算机多媒体技术的重要应用领域。