一种视频渲染异常的响应方法及系统技术方案

技术编号:39332476 阅读:9 留言:0更新日期:2023-11-12 16:07
本发明专利技术公开了一种视频渲染异常的响应方法及系统,方法包括:将视频切分得到的的每个视频段中的每一视频帧从缓存模块中对应分配不同的缓存空间;将每一视频帧分配至不同的渲染组进行拆分渲染;采用各个子节点组中的优先渲染节点对分配到的子图像进行渲染;创建链表,通过链表侦测发生渲染异常的异常视频帧和对应的异常渲染组;从异常渲染组中,确定渲染异常的异常子节点组;当侦测到同一视频帧的全部子渲染图像均已缓存至对应的缓存空间时,标记缓存空间,将标记的缓存空间中存储的全部子渲染图像发送至播放终端,以清理缓存空间。本发明专利技术有利于在渲染异常发生时快速对渲染异常进行响应。进行响应。进行响应。

【技术实现步骤摘要】
一种视频渲染异常的响应方法及系统


[0001]本专利技术涉及视频渲染
,尤其涉及一种视频渲染异常的响应方法和一种视频渲染异常的响应系统。

技术介绍

[0002]实时渲染是指在用户操作时,系统能够在短时间内生成并呈现高质量的图像或视频。这种渲染方式一般用于游戏开发、虚拟现实、视频会议等实时应用场景。
[0003]实时渲染通常采用图形加速卡(GPU)来实现高效的图形计算和渲染。相较于离线渲染,实时渲染的渲染时间更短,需要实时响应用户操作,因此,若实时渲染过程中存在异常,则会影响视频的播放。
[0004]一般而言,渲染异常的原因分为以下几类:第一,硬件算力问题:文件读取慢、内存过低、算力不足等导致内存崩溃、渲染缓慢、结果文件输出慢;第二,参数问题:场景、模型、参数、材质、光照或纹理等问题,导致场景打开慢、单帧渲染慢、降噪过程长;第三,软件问题:软件与平台不兼容,版本过低,导致软件卡顿、运行低速、崩溃重启。
[0005]针对以上原因,一般采用针对性的3种思路来避免渲染异常:第一,增强硬件算力;第二,优化场景参数;第三,采用最新版软件。
[0006]其中,三种渲染异常中,大部分是由于渲染设备的原因而产生。尽管以上措施都可一定程度上避免渲染异常,但在实际操作上,三类措施操作难度、成本、有效性,却不尽相同。并且上述解决方案一般是在渲染异常发生后,再依赖专业人员针对实际的渲染异常进行调整,此时,渲染异常导致的渲染中断已经发生,导致渲染任务长时间中断,从而渲染效率不高。
[0007]因此,有必要提出一种能够在渲染异常发生时快速对渲染异常进行响应的方法及系统。

技术实现思路

[0008]本专利技术的主要目的在于提供一种视频渲染异常的响应方法,以及一种视频渲染异常的响应系统,旨在渲染异常发生时能够快速对渲染异常进行响应。
[0009]为实现上述目的,本专利技术提供的一种视频渲染异常的响应方法,云端设置有缓存模块,且云端分别与播放终端和多个渲染组通信连接,所述方法包括如下步骤:将视频分为多个视频段,并为同一视频段中的每一视频帧从缓存模块中对应分配不同的用于存储渲染结果的缓存空间,其中,各个缓存空间按照帧顺序依次排列;
将每一视频帧分配至不同的渲染组进行拆分渲染,其中,每一渲染组包括多个子节点组,同一渲染组中的各个子节点组用于渲染同一视频帧拆分得到的各个子图像,每一子节点组包括优先渲染节点和备用渲染节点;采用各个子节点组中的优先渲染节点对分配到的子图像进行渲染,以得到子渲染图像,将每一子渲染图像发送至对应的缓存空间进行存储;创建链表,通过链表侦测每一缓存空间的占用率,将各缓存空间的占用率变化量按照视频帧的帧顺序进行排列,以侦测发生渲染异常的异常视频帧和对应的异常渲染组;从异常渲染组中,确定渲染异常的异常子节点组;采用异常子节点组中的备用渲染节点对分配到的子图像进行渲染,以得到子渲染图像,并将子渲染图像发送至对应的缓存空间进行存储;当侦测到同一视频帧的全部子渲染图像均已缓存至对应的缓存空间时,标记缓存空间,将标记的缓存空间中存储的全部子渲染图像发送至播放终端,以清理缓存空间。
[0010]优选地,所述创建链表,通过链表侦测每一缓存空间的占用率,将各缓存空间的占用率变化量按照视频帧的帧顺序进行排列,以侦测发生渲染异常的异常视频帧和对应的异常渲染组的步骤,包括:创建用于管理同一视频段中每个视频帧的链表;当侦测到新生成的子渲染图像时,获取新生成的子渲染图像对应的视频帧的帧顺序,获取新生成的子渲染图像存入对应的缓存空间后的缓存空间占用率,获取新生成的子渲染图像存入对应的缓存空间后的缓存空间占用率变化量,并获取新生成的子渲染图像对应的渲染组;判断是否为新生成的子渲染图像对应的视频帧创建过结点单元;若否,以新生成的子渲染图像对应的视频帧的帧顺序的排序作为结点单元的第一指针,以新生成的子渲染图像对应的视频帧的缓存空间的占用率排序作为结点单元的第二指针,以新生成的子渲染图像对应的视频帧的缓存空间的占用率变化量作为结点单元的数据,以新生成的子渲染图像对应的视频帧的渲染组作为结点单元的名称,为所述链表生成新的结点单元,及更新链表中的其他结点单元;若是,获取为新生成的子渲染图像对应的视频帧创建的结点单元,以新生成的子渲染图像对应的视频帧的缓存空间的占用率更新结点单元的第二指针,以新生成的子渲染图像对应的视频帧的缓存空间的占用率变化量更新结点单元的数据,从而更新对应的结点单元,及链表中的其他结点单元;根据第一指针对同一链表中的各个结点单元进行排序,得到第一序列;在第一序列中,根据缓存空间的占用率变化量小于预设值的结点单元的第一指针确定异常视频帧,并根据缓存空间的占用率变化量小于预设值的结点单元的名称确定异常渲染组。
[0011]优选地,所述从异常渲染组中,确定渲染异常的异常子节点组的步骤,包括:获取异常渲染组中向缓存空间发送了子渲染图像的第一子节点组;确定异常渲染组中,未向缓存空间发送子渲染图像的第二子节点组;根据第二子节点组中的优先渲染节点的处理器占用率、物理内存利用率和网络利用率,确定渲染异常的异常子节点组。
[0012]优选地,所述将视频分为多个视频段,并为同一视频段中的每一视频帧从缓存模块中对应分配不同的用于存储渲染结果的缓存空间的步骤,包括:获取视频中的典型帧,以每一典型帧作为分割起点,以下一典型帧的前一视频帧作为分割终点,将视频切分为多个视频段,其中,每一视频段包括对应的分割起点和分割终点,以及分割起点与分割终点之间的视频帧;根据典型帧的渲染参数和视频帧参数,计算典型帧的渲染结果所占用的存储空间;根据典型帧的渲染结果所占用的存储空间,确定与典型帧属于同一视频段的每一视频帧分配的缓存空间大小;计算缓存模块的空闲缓存空间,根据空闲缓存空间和每一视频段所需要的缓存空间大小,和未分配缓存空间的每一视频段所需要的缓存空间大小。
[0013]优选地,所述计算缓存模块的空闲缓存空间,根据空闲缓存空间和每一视频段所需要的缓存空间大小,为连续的若干视频段匹配缓存空间的步骤之后,还包括:将清理的缓存空间释放为新增空闲缓存空间;当侦测到有新增空闲缓存空间时,根据新增空闲缓存空间大小和未分配缓存空间的剩余视频段所需要的缓存空间大小,为未分配缓存空间的剩余视频段匹配缓存空间。
[0014]优选地,所述获取视频中的典型帧的步骤,包括:在用于上传视频的终端中识别视频中各个视频帧的核心图像元素;将核心图像元素相同且连续的视频帧中的第一帧作为典型帧。
[0015]优选地,所述将每一视频帧分配至不同的渲染组进行拆分渲染的步骤,包括:获取每一渲染组的负载率;根据同一视频段中每一视频帧分配的缓存空间大小,和每一渲染组的负载率,将每一视频帧分配至不同的渲染组进行拆分渲染;采用如下方式将每一视频帧分配至不同的渲染组:将未匹配视频帧的渲染组,根据渲染组的负载率从小到大的顺序进行排序,得到渲染组排序形成的第一数组:;其中,为第一数组中的第z个渲染组,Z为第一数组中的渲染组数量,;Y代表渲染组;根据未匹配渲染组的第m个视频段本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种视频渲染异常的响应方法,其特征在于,云端设置有缓存模块,且云端分别与播放终端和多个渲染组通信连接,所述方法包括如下步骤:将视频分为多个视频段,并为同一视频段中的每一视频帧从缓存模块中对应分配不同的用于存储渲染结果的缓存空间,其中,各个缓存空间按照帧顺序依次排列;将每一视频帧分配至不同的渲染组进行拆分渲染,其中,每一渲染组包括多个子节点组,同一渲染组中的各个子节点组用于渲染同一视频帧拆分得到的各个子图像,每一子节点组包括优先渲染节点和备用渲染节点;采用各个子节点组中的优先渲染节点对分配到的子图像进行渲染,以得到子渲染图像,将每一子渲染图像发送至对应的缓存空间进行存储;创建链表,通过链表侦测每一缓存空间的占用率,将各缓存空间的占用率变化量按照视频帧的帧顺序进行排列,以侦测发生渲染异常的异常视频帧和对应的异常渲染组;从异常渲染组中,确定渲染异常的异常子节点组;采用异常子节点组中的备用渲染节点对分配到的子图像进行渲染,以得到子渲染图像,并将子渲染图像发送至对应的缓存空间进行存储;当侦测到同一视频帧的全部子渲染图像均已缓存至对应的缓存空间时,标记缓存空间,将标记的缓存空间中存储的全部子渲染图像发送至播放终端,以清理缓存空间。2.根据权利要求1所述的视频渲染异常的响应方法,其特征在于,所述创建链表,通过链表侦测每一缓存空间的占用率,将各缓存空间的占用率变化量按照视频帧的帧顺序进行排列,以侦测发生渲染异常的异常视频帧和对应的异常渲染组的步骤,包括:创建用于管理同一视频段中每个视频帧的链表;当侦测到新生成的子渲染图像时,获取新生成的子渲染图像对应的视频帧的帧顺序,获取新生成的子渲染图像存入对应的缓存空间后的缓存空间占用率,获取新生成的子渲染图像存入对应的缓存空间后的缓存空间占用率变化量,并获取新生成的子渲染图像对应的渲染组;判断是否为新生成的子渲染图像对应的视频帧创建过结点单元;若否,以新生成的子渲染图像对应的视频帧的帧顺序的排序作为结点单元的第一指针,以新生成的子渲染图像对应的视频帧的缓存空间的占用率排序作为结点单元的第二指针,以新生成的子渲染图像对应的视频帧的缓存空间的占用率变化量作为结点单元的数据,以新生成的子渲染图像对应的视频帧的渲染组作为结点单元的名称,为所述链表生成新的结点单元,及更新链表中的其他结点单元;若是,获取为新生成的子渲染图像对应的视频帧创建的结点单元,以新生成的子渲染图像对应的视频帧的缓存空间的占用率更新结点单元的第二指针,以新生成的子渲染图像对应的视频帧的缓存空间的占用率变化量更新结点单元的数据,从而更新对应的结点单元,及链表中的其他结点单元;根据第一指针对同一链表中的各个结点单元进行排序,得到第一序列;在第一序列中,根据缓存空间的占用率变化量小于预设值的结点单元的第一指针确定异常视频帧,并根据缓存空间的占用率变化量小于预设值的结点单元的名称确定异常渲染组。3.根据权利要求2所述的视频渲染异常的响应方法,其特征在于,所述从异常渲染组
中,确定渲染异常的异常子节点组的步骤,包括:获取异常渲染组中向缓存空间发送了子渲染图像的第一子节点组;确定异常渲染组中,未向缓存空间发送子渲染图像的第二子节点组;根据第二子节点组中的优先渲染节点的处理器占用率、物理内存利用率和网络利用率,确定渲染异常的异常子节点组。4.根据权利要求1所述的视频渲染异常的响应方法,其特征在于,所述将视频分为多个视频段,并为同一视频段中的每一视频帧从缓存模块中对应分配不同的用于存储渲染结果的缓存空间的步骤,包括:获取视频中的典型帧,以每一典型帧作为分割起点,以下一典型帧的前一视频帧作为分割终点,将视频切分为多个视频段,其中,每一视频段包括对应的分割起点和分割终点,以及分割起...

【专利技术属性】
技术研发人员:邓正秋杨易
申请(专利权)人:湖南马栏山视频先进技术研究院有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1