基于GPU硬图层的硬解码视频嵌入水印或字幕的方法
文献发布时间:2024-04-18 19:59:31
技术领域
本发明属于GPU技术领域,尤其涉及一种基于GPU硬图层的硬解码视频嵌入水印或字幕的方法。
背景技术
高清大分辨视频处理在如今的5G时代越来越普遍,仅使用CPU来承担视频处理任务,已难以保证视频播放与处理质量,尤其是需要实时响应的场景,如直播,高清监控视频传输处理、自动驾驶等场景。为应对以上需求,硬解码视频技术应用已越来越普遍。
硬解码视频指视频解码与输出渲染均由专用芯片完成,如GPU或者视频处理芯片,通过这种方式,会极大降低CPU占用率,提高视频处理效率和能力。除了播放高清视频,还会存在向视频中加入水印或者字幕的需求,这种需求在软解码视频处理中已较为成熟,通常方式为将字幕或者水印转化为位图,一般为YUV420P或者NV12等图像格式,在通过过滤算法将位图叠加到解码出的视频帧中,此时视频帧已通过CPU解码为YUV格式,将叠加好后的YUV帧进行渲染,转化为RGBA格式,拷贝至显存进行显示,这样显示出的图像就带上了字幕与水印。
目前在硬解码视频处理中嵌入字幕和水印还缺少相应的技术方案,难点在于硬解码视频处理均由专用芯片在显存中处理,而字幕和水印的处理需要CPU来完成,尤其是视频叠加,如何高效完成视频叠加是实现的关键。
专利N202210322703.0公开了一种基于GPU的视频隐形水印嵌入方法及系统,其方案是将水印生成的NV12图像拷贝至显存,在显存中将解码出的NV12帧,根据逻辑关系与水印生成的NV12图像进行叠加。该方法能较快实现视频叠加,但仍需经过复杂计算后,才能完成水印的叠加,同时处理速率可能仍然难以满足实时显示的需求,但相对于软解码效率更高。该方法更侧重于生成带水印的新的视频文件,便于存储和溯源。
因此上述两种方式中,第一种方式是软解码视频的水印与字幕添加处理方式,第二种方式是专利CN202210322703.0公开的将水印生成的NV12图像拷贝至显存,在显存中将解码出的NV12帧根据逻辑关系与水印生成的NV12图像进行叠加,从而完成水印的嵌入。第一种方式处理全程需要CPU参与,CPU占用率过高,效率也比较低,无法满足实时嵌入水印或字幕的需求;第二种方式较第一种有所改进,但仍需要复杂的算法进行视频叠加,实现的难度较大,处理效率虽然较第一种更快,但可能仍难以达到要求。
发明内容
鉴于上述问题,本发明的目的在于提供一种基于GPU硬图层的硬解码视频嵌入水印或字幕的方法,旨在解决上述技术问题。
本发明采用如下技术方案:
所述基于GPU硬图层的硬解码视频嵌入水印或字幕的方法,包括下述步骤:
步骤S1、将水印或字幕的信息数据由CPU处理为YUV格式的位图,然后由GPU渲染为RGBA格式的位图;
步骤S2、将当前视频流使用GPU解码为YUV格式的视频帧,然后由GPU渲染为RGBA格式的视频帧;
步骤S3、将所述RGBA格式的位图与RGBA格式的视频帧用GPU硬图层叠加处理;
步骤S4、GPU将叠加后的图像输出到屏幕。
进一步的,步骤S1的具体过程如下:将水印或字幕的信息数据由CPU处理为YUV格式的位图并传入显存,从显存中读取所述YUV格式的位图,由GPU渲染为RGBA格式的位图,将RGBA格式的位图存储于显存。
进一步的,步骤S2的具体过程如下:将当前视频流使用GPU解码为YUV格式的视频帧,并存储于显存,从显存中读取所述YUV格式的视频帧,由GPU渲染RGBA格式的视频帧,将RGBA格式的视频帧存储于显存。
进一步的,步骤S3的具体过程如下:
S31、根据窗口显示大小创建显示视频帧的第一硬图层,以及根据水印或字幕的显示尺寸创建显示水印或字幕的第二硬图层,每个硬图层对应一块显存区域,硬图层用于显示对应显存区域中的数据;
S32、:GPU将RGBA格式的视频帧根据窗口显示大小进行缩放,并拷贝至第一硬图层对应的显存区域;
S33、将第二硬图层设置为透明图层,GPU将RGBA格式的位图根据水印或字幕的显示尺寸进行缩放,并拷贝至第二硬图层对应的显存区域。
进一步的,GPU将两个硬图层的显存区域中读取图像数据输出至屏幕,水印或字幕的第二硬图层在视频显示的第一硬图层之上,且显示在预设位置。
本发明的有益效果是:本发明提供了一种基于GPU硬图层的硬解码视频嵌入水印或字幕的方法,该方法无需复杂计算就能完成图像叠加,且显示效果与传统方法相同,处理效率更加高效,能够更好满足实时显示的需求,达到硬解码视频显示中嵌入水印或字幕的目的。
附图说明
图1是本发明实施例提供的基于GPU硬图层的硬解码视频嵌入水印或字幕的方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
如图1所示,本实施例提供的基于GPU硬图层的硬解码视频嵌入水印或字幕的方法,包括下述步骤:
所述基于GPU硬图层的硬解码视频嵌入水印或字幕的方法,包括下述步骤:
步骤S1、将水印或字幕的信息数据由CPU处理为YUV格式的位图,然后由GPU渲染为RGBA格式的位图。
硬解码器即硬件解码器,是一款硬件设备,是一种输入模拟视频信号并将它转换为数字信号格式,以进一步压缩和传输的硬件设备,亦即通过显卡的视频加速功能对高清视频进行解码。因此视频硬件解码器能够将CPU从繁重的视频解码运算中释放出来,使电脑具备流畅播放高清视频的能力。GPU/VPU要比CPU更适合这类大数据量的、低难度的重复工作。由于解压缩的任务基本全部交给了显示芯片,CPU就可以承担更多的其他任务,对于经常需要多任务运行的用户更为重要。硬件解码器的存在是因为音频视频数据存储要先通过压缩,否则数据量太庞大,而压缩需要通过一定的编码,才能用最小的容量来存贮质量最高的音频视频数据。因此在需要对数据进行播放时要先通过解码器进行解码。
目前视频流的数据处理可以通过独立的硬件解码器处理,一般为GPU处理。虽然用CPU进行软解码也可以实现将水印或字幕信息叠加在视频中,但是处理全程需要CPU参与,CPU占用率过高,效率也比较低,无法满足实时嵌入水印或字幕的需求。而目前的GPU也通过一系列的软件算法将水印或字幕信息加载到视频中,但是处理难度较大,处理效率也不够高。
而本发明中,CPU和GPU共同协作完成嵌入水印或字幕的功能。本步骤中,水印或字幕的信息数据由CPU处理为YUV格式的位图,而YUV格式渲染为RGBA格式的位图由GPU完成,CPU参与进来的工作量也不高,基本不影响CPU的正常工作。
从具体过程来看,本步骤实现如下:将水印或字幕的信息数据由CPU处理为YUV格式的位图并传入显存,从显存中读取所述YUV格式的位图,由GPU渲染为RGBA格式的位图,将RGBA格式的位图存储于显存。
步骤S2、将当前视频流使用GPU解码为YUV格式的视频帧,然后由GPU渲染为RGBA格式的视频帧。
前述已说明,视频流的处理是通过GPU完成。本步骤中,GPU将视频流解码为YUV格式的视频帧,然后再渲染为RGBA格式的视频帧。本步骤具体实现过程为:将当前视频流使用GPU解码为YUV格式的视频帧,并存储于显存,从显存中读取所述YUV格式的视频帧,由GPU渲染RGBA格式的视频帧,将RGBA格式的视频帧存储于显存。
步骤S3、将所述RGBA格式的位图与RGBA格式的视频帧用GPU硬图层叠加处理。
GPU能够实现多个图层显示,不同图层对应显存的一块显示区域,图层显示区域的显示内容均能够设置,图层间可以进行叠加。本步骤截图过程如下:
S31、根据窗口显示大小创建显示视频帧的第一硬图层,以及根据水印或字幕的显示尺寸创建显示水印或字幕的第二硬图层,每个硬图层对应一块显存区域,硬图层用于显示对应显存区域中的数据。
S32、:GPU将RGBA格式的视频帧根据窗口显示大小进行缩放,并拷贝至第一硬图层对应的显存区域。
S33、将第二硬图层设置为透明图层,GPU将RGBA格式的位图根据水印或字幕的显示尺寸进行缩放,并拷贝至第二硬图层对应的显存区域。
窗口显示大小为屏幕像素显示大小,而视频流的分辨率和大小不一定和当前屏幕完全一致,因此需GPU需要将视频流进行缩放。在缩放前,需要根据窗口显示大小创建一个硬图层,这里记为第一硬图层,该硬图层用于显示视频帧,另外,还要根据设置的水印或字幕的显示尺寸也创建一个硬图层,这里记为第二硬图层,该硬图层用于显示水印或字幕。将RGBA格式的视频帧和位图均保存至相应硬图层对应的显存区域内,同时为了显示效果需要将第二硬图层设置为透明图层,即背景透明。
步骤S4、GPU将叠加后的图像输出到屏幕。
最后,GPU将两个硬图层的显存区域中读取图像数据输出至屏幕,水印或字幕的第二硬图层在视频显示的第一硬图层之上,且第二硬图层应显示在相应的预设位置,这样就能够高效得到视频中嵌入水印或字幕的效果。
GPU硬图层是一种将一块显存中RGB图像直接映射到显示区域的技术,设置好硬图层后,图层中图像就会在屏幕中显示,无需依赖图形系统或窗口管理器。因此本发明向硬解码视频中嵌入水印或字幕,无需CPU进行视频叠加处理,进一步提高效率,降低CPU占用率,满足实时性要求。
综上,本发明的发明点有两点,第一点是水印与字幕信息通过CPU处理为YUV的格式位图,而由YUV转RGBA格式由GPU处理,而视频均由GPU处理;另一个关键点是本发明实现字幕或水印叠加到视频的方法,采用的是GPU硬图层叠加的方式,GPU芯片有多个硬图层,能够很方便实现硬图层叠加,同时将水印或字幕的显示图层背景设置为透明图层,能够有较好的显示效果,满足实时显示的场景。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
- 一种用于图像定位的模型训练方法、图像定位方法及装置
- 用于图像并行渲染处理的图像处理装置及方法
- 用于处理用于生物标志物定位的电子图像的系统和方法
- 用于处理玻片的图像以推断生物标志物的系统和方法