多模态时代下,鲲鹏极致性能库KVCL重构高效视频数据处理
当前多模态生成支持物理真实、自动分镜、音画同步等能力,且生成视频向分钟级及更长视频演进,实用性的进一步增强推动多模态走向规模商用。其对通算的需求主要集中在预处理(视频解码、图像缩放裁剪、格式转换、图像增强等)及后处理(视频编码)等流程。
鲲鹏解决方案针对视频编码及视频处理中通用的算子进行抽象构建视频算子库KVCL(Kunpeng Video Codec Library),基于鲲鹏CPU进行深度指令优化。通过集成使用KVCL算子,视频编解码器或媒体处理可以有效减少计算耗时。
特性介绍
鲲鹏BoostKit解决方案针对视频处理构建了KVCL视频库,采用通用的接口定义,支持常用的编解码计算和视频前后处理,相关能力持续扩展中。
抽象接口:通用接口定义,覆盖常见视频处理及视频协议标准;
软硬协同:深度结合鲲鹏处理器硬件,打造最佳指令实现;
生态兼容:通过简单适配可兼容主流媒体框架及第三方编码器,易于客户联创集成。
优势分析
KVCL视频库通过分析算子计算特征,识别瓶颈,结合鲲鹏平台指令、微架构特点打造最佳实现视频处理算子,其优化实现路径:
优化流水线:解除指令依赖,最大利用执行单元减少执行cycle。
计算优化: 简化算法+等价计算,减少实现计算量。
高效指令:寻找算子最佳实现指令,精简指令替代冗长逻辑。
指令混布: 充分发挥Neon/SVE优势,最佳实现。
针对编解码场景Top30 算子结合硬件指令及特性深度挖掘算子性能,对比开源x265多年优化算子性能有5%~50%提升。部分特性应用案例如下:
以FFMPEG Scale 3种计算(bicubic/bilinear/lanczos)为例,KVCL通过数据加载优化、数据合并、SVE指令使用、流水线优化,bicubic性能提升49%,bilinear提升64%,lanczos提升40%。
随鲲鹏处理器演进,根据新增指令及硬件优势特性KVCL将持续优化保持鲲鹏平台上最佳性能。
上手教程
以开源编码器集x265为例,下文展示如何快速集成KVCL加速视频编码:
获取x265代码仓并解压。
wget https://ftp.videolan.org/pub/videolan/x265/x265_4.1.tar.gz tar -zxf x265_4.1.tar.gz修改代码, 替换x265中的kvcl算子,示例patch通过setupKvclIntrinsicPrimitives和setupKvclAssemblyPrimitives覆盖编码码算子。
#KVCL_PATH表示KVCL代码仓的根目录,根据实际情况修改KVCL_PATH=/home/kvclcd x265_4.1patch -p1 < $KVCL_PATH/examples/x265_4.1-enable-kvcl.patch
打开source/CMakeLists.txt,修正KVCL路径。
#搜索kvcl lib path,找到下行link_directories(/home/kvcl/output/lib) # kvcl lib path
编译并运行测试。
结语
KVCL打造鲲鹏亲和的视频算子,适配简单使用方便。可配套业界主流媒体框架、开源编码器、三方编码器及华为自研HW265编码器,实现鲲鹏平台视频编码性能飞跃。
KVCL开源仓库:
https://gitcode.com/boostkit/boostmedia/tree/master/docs/kvcl
