本发明涉及视频解码编译,尤其涉及一种基于npu神经网络的yuv转rgb的图像渲染方法。
背景技术:
1、yuv是一种颜色空间,基于yuv的颜色编码是流媒体的常用编码方式,这种表达方式起初是为了彩色电视与黑白电视之间的信号兼容,常用的存储格式有planar、packed,采样格式yuv444、yuv222、yuv420等,yuv420根据存储格式不同还可以分为yuv420p、yuv420sp;目前,主流的视频解码器输出的图像格式大多为yuv420p格式,将yuv420p格式转换成rgb格式的转换公式为:
2、
3、在cnn的神经网络结构中,分类任务网络通常由卷积层+线性变换的全连接层组成,卷积层通过卷积核对输入的数据进行卷积操作从而达到提取特征的效果,全连接层通过权重参数直接对输入数据进行线性的映射;现如今ai发展的浪潮下,绝大多数的soc芯片都会集成npu,同时soc生产商会配套工具链用于将模型部署到soc,并提供sdk在soc上加载、运行模型。npu是一种专门设计用于加速神经网络计算的硬件单元,它可以在处理大规模图像数据时提供卓越的性能和效率;
4、传统的yuv到rgb转换通常采用基于cpu的固定算法,这些方法在一些情况下可能会导致性能瓶颈,如cpu资源消耗过大、处理速度过慢等,特别是在处理高分辨率视频或实时图像渲染时容易发生。在需要对图像进行图像增强处理时,cpu的算力更是难以应对。
5、特别的,在安防行业对视频解析过程中,通常需要同时对8路、16路或者更高的路数视频进行编解码解析,单颗soc的cpu需要同时对多路视频完成解码、格式转换、图像增强处理以及数据存储等多种任务,这对soc的cpu算力要求极高,几乎是不可能能单独同时完成这些任务,或是处理起来速度达不到实际的要求。
技术实现思路
1、本发明目的是在于提供一种基于npu神经网络的yuv转rgb的图像渲染方法,以解决上述背景技术提出的技术问题。
2、一种基于npu神经网络的yuv转rgb的图像渲染方法,包括如下步骤:
3、s1、构建npu神经网络模型,初始化并加载构建的npu神经网络模型,利用神经网络算子进行计算,构造参数,并对参数进行初始化,包括输入层、添加层、线性变换层和输出层;
4、s2、预处理视频信息,输出视频帧解码;
5、s3、利用npu神经网络模型进行模型推理,视频分辨率计算batchsize,将yuv420p数据输入到模型进行神经网络前向计算。
6、s4、获取npu神经网络模型输出结果;
7、s5、对模型输出结果进行图像渲染,实现yuv到rgb的转化和渲染,得到n个rgb序列之后,依次按照先后顺序进行存储,将数据根据图像时间戳在图像显示设备上渲染图像。
8、s6、判断视频流文件是否结束,若已结束,则图像渲染完成;若未结束,则重复步骤s2~s5。
9、进一步的,所述s1中,其中npu神经网络模型的构建具体包括模型设计、模型转换、生成目标文件,步骤为:
10、s11、对yuv序列进行新的解码,对序列进行重新排列组合,输入yuv格式数据[y0,u0,v0]的[1,3]向量;构造rgb转换矩阵函数:
11、
12、其中α为亮度的控制变量,当α=0,即为标准的yuv转rgb的方式,当α≠0,即可以根据需要对亮度进行增强或减弱;
13、s12、根据rgb转换矩阵函数构建所述输入层、添加层、线性变换层和输出层,生成模型文件
14、s13、利用模型部署工具链将生成的模型文件转换为soc支持的格式文件;
15、进一步的,所述s2中,对视频的处理步骤包括:
16、s21、读取视频流文件,获取视频信息;
17、s22、初始化视频解码器;
18、s23、读取视频流文件中的视频帧;
19、s24、对读取到的视频帧进行解码;
20、本发明的有益效果是:
21、通过构建npu神经网络模型,对视频流解码后的yuv转rgb图像渲染方法进行优化,在不改变原有的渲染算法的同时,将所有的计算资源移植到npu计算单元上进行,替换整个渲染过程中最耗资源和时间的颜色空间转换计算。将视频解码后的yuv数据采样成yuv顺序序列,将这些序列作为输入数据按照batchsize输入到模型,得到rgb序列。
1.一种基于npu神经网络的yuv转rgb的图像渲染方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种基于npu神经网络的yuv转rgb的图像渲染方法,其特征在于,所述s1中,其中npu神经网络模型的构建具体包括模型设计、模型转换、生成目标文件,步骤为:
3.根据权利要求3所述的一种基于npu神经网络的yuv转rgb的图像渲染方法,其特征在于,所述s2中,对视频的处理步骤包括:
