模板渲染速度提升技巧

veleap头像
四月
VE工具
2020-12-11

邀新获得奖励

模板渲染速度慢的原因

有客户在使用VE导出自己制作的AE模板,进行渲染时发现渲染速度很慢;或者和其他产品相比渲染速度有明显差异。从而觉得VE是一个渲染效率很低的视频处理SDK。事实上,VE在每个硬件环境下都使用着该环境能提供的最快的技术来进行数据处理和画面渲染。那么是什么导致了模板的渲染速度慢呢?模板渲染速度慢的原因有很多,主要存在于两个方面

  • 模板制作的原因
  • 渲染环境的原因

1.模板制作的原因
模板制作是影响渲染速度的主要原因,绝大多数渲染速度慢的模板都是由于模板制作的过程中不注意优化造成的。VE引擎的主要功能是将AE中制作的合成、合成中的图层已将图层上的动画数据和特效数据进行重建,然后对每个元素进行渲染和合成并形成最终的视频画面。
所以AE模板中的每一个元素会对最终渲染的性能产生影响。

2.渲染环境的原因
VE引擎依靠手机、服务器或者PC硬件环境来对模板进行解析和渲染,这其中硬件耗费大量性能在进行的处理任务主要分为以下几个方面:

  • CPU任务
    • 图片解码
    • 视频解码
    • 动画数据和逻辑运算
  • GPU任务
    • 图层画面渲染
    • 图层特效渲染
    • 图层混合
    • 视频编码

模板制作对渲染速度影响详解

1. 帧速率
帧速率是指视频每秒需要播放的静止画面的数量。对于VE视频引擎来讲,就是每秒视频VE需要渲染的画面的数量。VE使用设计师在AE中给模板设置的帧速率来作为渲染的帧速率。所以,制作模板时设定的帧速率对VE的渲染速度有非常直接的影响。例如,使用同样素材,同样动画和特效,同样时长的模板,如果帧速率是30帧每秒,那么VE渲染需要花费的时间大约是帧速率设置为15帧每秒的模板的两倍。

2. 图层和合成的尺寸
不管是图层还是合成,VE都要将其渲染成一幅平面画面,然后和其他图片或者合成进行混合。而图层和合成的尺寸(即宽高)直接决定了VE渲染每一帧画面时要计算的像素的数量。例如,一个100 x 100的图层,那么VE要计算100 x 100 = 10000个像素,而每个像素又分别有R、G、B、A四个颜色通道,每个通道使用一个数字来代表,所以一共有10000 x 4 = 40000个数字需要运算。由此可见,模板中使用的图层或者合成的大小是直接影响VE的计算数量。

3. 素材的数量、尺寸和类型
VE中主要的素材是图片和视频(文字素材相当于图片素材),这些素材在渲染的时候需要进行解码。
其中图片素材对渲染速度的影响主要在图片解码耗时,如果一个图片素材在合成中被多个图层使用,但是这些图层在时间上是连续的,那么这个图片素材在这一段连续的时间里只需要被解码一次,对渲染速度的影响较小;如果同一个图片素材在合成中时间上断断续续地使用,那么每段时间的开始,这个图片素材都需要被解码一次,对渲染速度的的影响会增大。而图片的尺寸越大,解码需要花费的时间也越久,对渲染速度的影响也越大。视频素材的解码是比图片解码相比更加耗时的操作。而且视频是需要每一帧画面都进行解码。同时,视频的尺寸越大,单帧视频解码需要费时越久。所以,一个模板中使用的素材数量和尺寸越大,对模板的渲染速度影响也越大。

4. 模板结构
模板结构主要指的是模板中图层的素材,预合成的数量,预合成嵌套的复杂程度。VE渲染一个合成的画面时,先从下层至上层依次对每个图层的内容进行渲染然后和该图层的下一层进行颜色混合,最后再把结果渲染到合成上作为最后画面结果。举个例子,一个包含3个图层的合成,假设这3个图层并不包含特效等其他效果,那VE首先需要对3个图层的内容进行渲染,这就需要3次画面渲染,画面渲染好后需要对图层进行颜色混合,因为颜色混合只需要对该层和它上面的图层进行颜色混合,所以一共需要2次渲染来进行颜色混合。最后再将结果渲染到合成上,这也是一次渲染。所以,一个只有3个无特效的图层需要大概6次画面渲染。由此可见,当模板中的图层数量,预合成的数量,预合成的嵌套复杂程度增加时,其对VE渲染引擎的影响程度是显著增加的。

5. 特效的使用
VE支持在图层上添加一到多个特效。而每一个特效都需要一次甚至多次画面渲染才能呈现最终其效果,所以当一个模板中使用的特效越多,其对渲染速度的影响也越大。

6. 3D图层的使用
当合成中存在3D图层时,VE需要使用3D渲染引擎对3D内容进行渲染。3D渲染通常比2D渲染要耗时。当合成中存在多个连续的3D图层时(即一组3D图层中没有穿插2D图层),VE为了保证渲染正确,需要使用一个支持乱序3D透明算法来对这一组3D图层进行渲染,这种渲染算法可以完美还原AE中3D图层的渲染结果,但是也会导致渲染耗时增加。所以当合成中使用了3D图层,特别是一组连续的3D图层时,对VE的渲染速度影响会增大。

7. 硬件环境对渲染速度的影响
上文有提过,VE在渲染模板时,对CPU和GPU都有很大的依赖,其中最重要的画面渲染和视频编码任务都在GPU上进行,所以VE对GPU的依赖更大。所以,硬件环境中,显卡芯片的性能和显存的大小对模板渲染的速度有最直接的影响。 其次就是内存的大小和CPU的性能。

优化模板渲染速度的方法

1. 从模板制作上去优化渲染速度

  • 使用合适的帧速率。
    帧速率的设置需要从产品的定位和产品针对的用户群体出发。在移动端,面向普通C端用户的模板知错,20帧左右的帧速率是一个合适的帧速率,不需要设置的过高
  • 设置合适的画面大小。
    这里的画面大小不光是最终主合成的大小,而是指模板中包含的所有图层和预合成的大小。不能只觉得主合成的尺寸小,渲染速度就会加快,如果一个540 x 960的模板中使用了一个4K尺寸的预合成或者图层,那么VE在渲染他们的时候也会被迫使用4K大小的画面来渲染。所以尽可能地去降低模板中图层和预合成的尺寸大小。
  • 优化素材的使用,优化模板的结构
    优化素材的使用和优化模板的结构是相关联的。在制作VE模板时,将那些不需要进行后期用户进行修改的图层进行合并,应该尽可能地降低图层的数量,降低图层的数量时,模板使用的素材也会随之减少。
    同时,要尽可能减少视频素材的使用。在对AE模板中的图层进行清理,对不需要编辑修改的图层进行预渲染时,如果这些图层没有动画,就尽可能地预渲染成图片素材,而不要一概地都预渲染成视频素材。
  • 优化特效的使用
    特效的使用要避免对每个图层都添加同样的特效,遇到这种情况,可以使用调节层,来降低特效渲染的次数。
  • 优化3D图层的使用 当一些视觉动画效果可以使用普通2D动画的手段来实现时,要尽可能地使用2D动画来替代,降低3D图层的使用数量。
    比如一些简单的3D空间动画,可以使用CornerPin插件来模拟3D空间透视的动画。

2. 从硬件配置上优化渲染速度

  • 从硬件环境地角度来讲,最直接地提高渲染速度的方式就是提高运行环境的硬件配置。
    使用更高性能的GPU显卡,配备更大地显存;使用更高频率的CPU芯片,配备更高容量的内存
  • 根据硬件环境来优化并行任务的数量。
    对于一定的硬件环境,配置合适地并行任务数量能够较好地利用硬件资源。通常情况下,我们推荐NVIDIA平台的P100型号显卡,根据配备的CPU情况,一个CPU核心对应一个渲染任务,一个渲染任务预留1G的显存和2G的内存。也就是说,一个p100型号的显卡,如果配备8核心的CPU,8G显存和16G内存,那么同时并行8个渲染任务是一个比较好的状态。

总结

VE视频引擎为了能让设计师设计出精彩的视频效果,花了很大力气去兼容在AE视频设计工具的功能,但是如果在制作模板时对这些AE功能进行滥用,而不注意优化,势必会导致渲染速度成倍,甚至成十倍、百倍的增加。

如上文所说,VE视频引擎在每一个环节都使用着当前硬件所能提供的最快的技术去做运算处理,所以当你发现你的模板渲染速度慢,请从以上内容中寻找原因并进行优化。按规则地优化能够极其显著地提高渲染速度。而不要在无任何模板优化的情况下简单抱怨我们VE引擎的渲染效率低。提高渲染速度是我们永远追求的目标,但是如果完全不注意内容制作环境和硬件环境配置环节的优化,而单方面期待VE引擎在现有环境下短时间内容实现高速渲染,是不现实的需求,我们也不会去满足。

以上从模板制作和硬件配置两个方面解释了影响模板渲染速度的原因,并提出了优化建议。但是实际情况中,还是要从产品的角度出发,从内容出发来综合考虑。对模板进行仔细地优化能够提高渲染速度,但是会导致模板制作的速度降低;保持模板结构的简洁能够提高渲染速度,但是过度地限制模板元素的使用又会导致内容的效果和质量降低。

所以提高渲染速度和保证产品质量之间需要达成一个平衡,而这个平衡,需要客户根据自身产品的定位来自行决定。

全部评论(1)
avatar

贺贺(Hope):

说明非常清晰,需要综合考虑,学到了。

2021-09-14 17:40:33 回复
我有话说
推荐内容 更多>
  • veleap相关教程图片

    VE Camera Blur

  • veleap相关教程图片

    VE Camera Blur使用教程

  • veleap相关教程图片

    设计师拉新活动开始啦~

  • veleap相关教程图片

    VE Leap社区第二届视频大赛正式开始啦~

veleap描述图片

上一篇

支持的AE特效插件

下一篇

素材替换原理

veleap描述图片
/