美颜SDK架构技术分析

美颜SDK发展至今,功能早已不同于往日,相较于开始最基础的美白、磨皮,发展到现在的滤镜、3D面具等各种不同的功能。在这些新兴功能的背后,离不开强大的渲染能力以及美颜算法。那么,一款优质的美颜SDK应该如何搭建自己的底层框架呢?下文小编将分享一下相关经验。

美颜SDK架构技术分析_第1张图片

一、技术架构

1、AI计算层

主要用于人脸检测、肢体追踪、手势识别等需要人工智能辅助的功能,从这个层面完全自研难度确实非常大。比如美型功能,完全就是依赖于人脸检测和追踪技术进行大眼瘦脸操作的,一般除了非常专业的美颜SDK提供商,这些AI层面技术还是向具备AI能力企业采购。

2、渲染层

这是最核心的一层了,渲染首先离不开OpenGL,利用OpenGL图形渲染技术打造一个引擎式的渲染管线。将原视频数据发送至引擎,然后经过各个功能的Filter,向终点传输相应数据格式的数据即可。要知道这里每层Filter,又会有OpenGL渲染管线,分为一条小流水线进行坐标转换和着色器运算。坐标转换在CPU中进行计算,送入定点着色器,再送入片元着色器从而利用算法在GPU中实现我们需要的渲染效果。这一层做好流水线上各个filter的排序尤为重要。

3、封装层

封装层比较好理解,既然是SDK,就要有API接口让实现业务逻辑的并行调用。这一层上,安卓是Java,iOS是OC或者Swift,Win是C/C++,Unity是C#,并不统一,所以要依据不同平台进行接口封装。这一层要做好OpenGL上下文、线程的处理,否则调用时很容易出现白屏,闪屏等现象。
美颜SDK架构技术分析_第2张图片

其次,美颜SDK要具备一些特点,这样才能适配于目前大多数直播、视频社交平台日常需求。

1、多端共用

现如今直播已经大多数都是基于安卓和iOS的移动端直播,也有部分游戏主播或者专业的带货主播使用PC直播,那么跨平台就成为了衡量美颜SDK的标准之一。同样的渲染Pipeline和着色器,要能够多端共用,如果所有分端都要单独开发的话,那将徒增巨大的工作量。

2、低能耗

目前直播、视频等社交应用基于的推拉流音视频SDK非常耗能,因为它负责高并发和数据分发。所以,美颜渲染应尽可能的减少消耗,否则画面将非常卡顿。

3、易扩展

如今用户对于美颜功能需求用日新月异来形容也不为过,所以一款优质的美颜SDK必须易扩展,这样才可以应对后期不断更替的市场需求。

以上,就是从技术层面对美颜SDK的架构分析,如果您想了解更多美颜知识,请关注我。

你可能感兴趣的:(美颜算法,音视频,计算机视觉,语音识别,视觉检测,实时音视频)