写点什么

540p 秒变 1080p!小红书端侧实时超分带你免流量玩嗨短视频

  • 2023-04-11
    上海
  • 本文字数:2551 字

    阅读完需:约 8 分钟

540p秒变1080p!小红书端侧实时超分带你免流量玩嗨短视频

小红书在短视频领域首次联合华为 HMS Core 大规模运用端侧超分技术实现了“同等网络环境下高画质”、“同等画质下省带宽、降卡顿”的体验效果。


在整个落地的过程中小红书与 HMS Core 做到了联合共建,先后解决了多实例超分、不同 View 类型(SurfaceView、TextureView 等)灵活选择等一系列问题,结合 HUAWEI HiAI Foundation 基础框架,充分利用 GPU、NPU 等硬件资源,在无明显性能损耗的前提下能够做到实时超分,在相同流量消耗的情况下 540p 可秒变 1080p,传统 720p 也可在不增加码率的情况下达到 720p+的画质体验,真正可以做到在流量有限的情况下刷视频刷到“爽”。


【名词解释】

超分:即超分辨率(Super Resolution,SR),是从给定的低分辨率(Low Resolution,LR)图像中恢复高分辨率(High Resolution,HR)图像的过程。



能够在视频消费的过程中让用户花费最少的流量消费到更高清的视频是业内各平台共有的痛点问题,每个平台都在全链路各模块通过各种方法来解决这一问题,小红书作为其中的一员,尤其作为一个充满高级感(从小红书的用户分布和设备分布就可以看出)的社区平台,随着用户通过短视频种草的热度不断提升用户对高清画质的消费诉求也变的越来越大,上述问题变的更加凸显。


目前各平台大多通过引入画质修复算法、提高编码性能等方面进行画质提升,在端侧受限于设备性能的影响往往无法引入太多高算力的优化方法,超分等算法也大多是在中长视频中进行尝试,在短视频领域少有大规模应用,与此同时,华为 HMS Core 通过对影像处理能力的不断积累,结合多媒体技术、AI 算法和 HUAWEI HiAI Foundation,充分挖掘和利用 NPU、GPU 等硬件资源训练出一套高性能、低功耗的画质增强框架,为平台在端侧画质提升提供了可能,因此,小红书与 HMS Core 的合作也顺理成章的拉开了帷幕。


此次端侧超分能力的落地,用户不仅得到了实际的受益,小红书也成为了短视频领域大规模应用软硬件结合的端侧超分能力进行画质提升的第一平台。


2.1. 端侧画质增强限制

  • 拥有 NPU 的设备偏少,算力上多依赖 CPU 和 GPU 等,算力无法得到充足保障,在低端机上尤为突出

  • 功耗问题是困扰各类算法的“老大难”问题,画质提升的同时往往伴随着高功耗,经常会出现手机发烫等问题

  • 机型繁杂(尤其是 Android 设备),设备硬件性能五花八门,适配起来较为困难

  • 传统算法模型结构单一,很容易进入性能优化深水区,且代码经常与业务代码出现强耦合,容易造成包大小问题


2.2. 业内解决问题的几个方向

  • 端、云协同云端针对视频进行锐化、降噪、提升码率等前置处理,客户端对转码后的视频进行最大程度地还原;

  • 采用更灵活的方法,如:机器学习等,最大程度地提高计算效率,降低对 CPU 等的影响

  • 端侧渲染后处理等


  • 基于成熟架构充分利用硬件资源实现软硬结合:

    借助华为 HMS Core 超强算力架构 HiAI Foundation 加持,充分利用设备硬件资源,对 NPU、GPU 等采用不同的训练模型,在提高计算效率的同时显著降低对设备算力的依赖、降低功耗,HUAWEI HIAI Foundation 为端侧超分的落地提供了很好地助力,为很多类似端侧画质增强能力的实验提供了无限可能。



  • 首次用 NDKMediacodec 替换了传统的 Java 层 Mediacodec,并将 NDKMediacodec 与超分模块进行了融合,最大程度简化了整个超分处理流程:

    要想实现超分功能,需要将不同模块进行融合,尤其是和整条播放链路的融合,超分的流程依赖于 Android 的 MediaCodec 硬解码,常用的做法是在 Native 层通过 JNI 调用 Java 层的 MediaCodec 类的方法,Java 层的 MediaCodec 类再通过 JNI 调用 Native 层的 NDK MediaCodec,这虽然是比较常规的用法,但是细细想来还是有一些冗余操作的,尤其是 C/C++层与 Java 层通过 jni 的频繁交互会无形中造成一些处理链路上的耗时,基于这一点,我们简化了调用的流程将硬解码和超分的流程全部在 Native 层实现,避免了与 JNI 不必要的数据交换,从而最大程度地简化了整个超分流程。



  • 前置视频预处理:

    通过降噪、前置滤波等方式对视频进行预处理,达到最佳超分状态。


  • 针对视频信息进行前置自适应预判,进行超分自适应:

    众所周知,并不是所有的视频都适合超分,不合理的超分有可能会达到事倍功半的效果,甚至会出现过度锐化、色差、边缘毛刺化等问题,在超分自 适应模块,我们会做超分预判,重点选出一些具有色彩丰富、帧率适中(60fps 以下)、分辨率一般(720p 及以下)等特征的视频优先进行超分,整体 达到最佳超分效果,针对 HDR 类的视频不再进行超分。


  • 通过优化管理方式,实现多 view 支持:

    为了实现对不同 View(SurfaceView、TextureView 等)的支持,封装了一个专门的资源管理模块,做到 View 和算法模块资源的统一分配和管理,解决了单一 View 支持的问题,为各种形态的业务应用提供了可选项,不仅支持 SurfaceView 直接上屏,而且支持超分后旋转、缩放等一系列后处理操作,可灵活适配于不同业务复杂度的场景应用;不同 view 类型的动态选择可有效规避色差问题。


  • 采用动态下发 so 的机制和热插拔的方式很好地避免了包体积问题和实时更新问题:

    为了实现不同形式的超分能力,我们需要引入不同的动态库,在其他不支持超分的机型上引入超分模块显然是没有意义的,并且会增加安装包的体积。为了解决这一问题,我们选择了对 so 文件进行动态加载的方案,根据机型和 app 版本,动态加载对应的 so 文件,在安装完成打开小红书应用的时候,后台下载视频超分所需的 so 文件,并加载到应用中。对于动态库更新的情况,客户端会下载新版本的 so 文件,并且替换掉原有的 so 文件,做到资源库的实时更新。




小红书“视频超分”功能自 7.48 版本上线以来已成功部署到 HUAWEI MateX2 系列、P50 系列、Mate40 系列等 90 多款手机,以及 HUAWEI MatePad 系列等 10 多款平板设备上,每天成功服务于数以千万计的用户。


小红书与 HMS Core 在 HUAWEI HiAI Foundation 上的结合为端侧超分等画质增强能力的落地提供了参考,也打破了端侧超分不能在短视频领域大规模使用的“魔咒”,同时为其他平台的落地可提供有效的参考,也会以此为契机探索不同设备平台、不同业务场景的端侧画质能力提升新思路,相信在未来端侧其他画质增强能力依赖软硬件结合的方式会有更多地推广和应用,真正让用户在各种场景尤其是中、弱网环境下消费到更流畅的高清画质,让用户真正体验到短视频种草刷到爆的快感。


泽宇    小红书播放团队负责人

哈里    小红书播放团队开发工程师

洛霖    小红书播放团队开发工程师

用户头像

2亿人生活方式分享背后的多模态学习 2022-04-11 加入

小红书技术团队官方账号,小红书技术创新与问题解读的分享平台,与你共前进。

评论

发布
暂无评论
540p秒变1080p!小红书端侧实时超分带你免流量玩嗨短视频_AI_小红书技术REDtech_InfoQ写作社区