基于AI和NPU的Codec变革——VPU与NPU的协同创新( 五 )


另外一个需要考虑的因素是功耗的矩阵问题 。对于用户来说,频繁的读写操作会导致功耗的不断增加,因为读写本身对功耗是不友好的 。特别是在边缘侧的部署中,很多时候问题并不在于计算能力不足或算法映射能力不足,而是在于虽然可以将其部署并运行,但它只能运行5分钟 。这是因为在5分钟后,设备已经过热,我们不可能给一个成本为10美元的设备再加上5美元的散热器,这不符合产品设计的原则 。
因此,对于边缘侧来说,在设计初期如何考虑到产品各个方面的应用需求非常重要 。例如,在最初的设计阶段,可以采用流式处理的方式来降低数据交互的需求 。同时,还可以使用VME进行内存控制和重写,以优化内存的读写操作 。
从逻辑上来看,需要将硬件架构与现有的软件编解码架构相结合,可以看到它们之间有很多对应的关系 。从这个维度来看,这种方案在支持4K方面,大约在2017年左右已经存在了成熟的解决方案 。图片展示的是2019年,一位同事撰写的高效视频处理报告 。可以观察到,在VPU上出现了很多新的case,这些新case在计算方面有两个主要方面 。
在第一个主要方面,追求更精细化的管理 。例如,将之前对于Y通道用的东西,现在作用在UV通道,以前认为UV通道的影响不太重要,可以将其降低一个级别 。这样做可以减小整个计算逻辑的规模,使芯片对于边缘侧或用户来说更加友好 。然而,后来发现,如果想提高质量,这一部分是必不可少的 。因此,第一个方面是更全面、更充分地利用整个计算逻辑 。
第二个重要的方面,是对参数进行更精细的估计 。我们也在尝试使用AI的方法来优化这些参数的估计过程 。如果有足够的数据量和适当的数据类型,AI方法在这方面的效果是相当不错的 。这样的精细参数估计可以提高视频编码的质量和效率 。
但存在一个问题,在刚才提到的两个趋势中,第一个是对于运动参数的精细估计,第二个是对以前认为较边缘的内容质量的提升 。此外,如何支持并行计算也是一个重要的问题 。在并行计算中,可以考虑在初代架构中使用的关键逻辑,如VSE、VPE和VME,用于语法元素分析和像素级恢复 。然而,随着输入数据的急剧增大,尤其是在户外大屏幕和未来家用终端的核心体验中,这些数据成为极其重要的数据来源,与解码4K甚至2K相比,这些数据来源的数据通路要大得多,可能是2倍甚至8倍以上 。因此,在软件和硬件层面上,仅仅进行横向的加强或规模的扩大已经不够了 。
下一个维度就是需要支持并行解码,但并行解码对编码过程也提出了一些要求 。当进行第三行或第四行的解码时,如果该行的语法元素与之前的行有很强的关联性,那么解码过程可能会受到限制,即使前面的解码已经进行到较前面的位置,但如果前一级的解码受阻,那么问题就会产生 。

基于AI和NPU的Codec变革——VPU与NPU的协同创新

文章插图
在之前的讨论中,NPU从最初只能满足基本功能,到之后通过NPU更好地支持相应的任务 。未来希望NPU能够具备适应各种任务的充分能力 。包括VPU,它与之前的解码流程相对应,但现在开始让解码反过来约束编码过程,这是目前所看到的变革 。那么对于这些变化,如何进行融合或分解呢?
在之前做过的一次分享中,我将整个NPU部分放在了里面,将其视为整个流程的一部分 。然而,后来仔细思考并与其他人讨论后,发现这种逻辑可能会给人一种误解,即认为NPU只是处理pipe的一个环节 。实际上,一个更合理的逻辑是,NPU应该支持整个处理的全流程 。这包括之前提到的使用NPU来增强对Codec参数估计的能力 。此外,我认为在下一代的VCM中,如果要实现一些硬件逻辑,从当前的结构来看,有可能将其置于NPU框架的下方,并进行相应的方案设计 。