System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 视频帧的处理方法、装置、设备及介质制造方法及图纸_技高网

视频帧的处理方法、装置、设备及介质制造方法及图纸

技术编号:41310310 阅读:3 留言:0更新日期:2024-05-13 14:54
本申请提供了一种视频帧的处理方法、装置、设备及介质。所述方法包括:确定至少两个缓存空间;确定用于交换所述至少两个缓存空间的交换机制;根据所述至少两个缓存空间和所述交换机制处理所述视频帧,实现所述视频帧的帧率的稳定输出。可以至少用以解决相关技术中,编码进程的卡顿会造成渲染进程的卡顿而导致渲染出的视频帧的平均帧率不稳定,影响玩家的游玩体验的技术问题。

【技术实现步骤摘要】

本申请涉及信息,尤其涉及一种视频帧的处理方法、装置、设备及介质


技术介绍

1、在云游戏的场景中,游戏本体运行在云端服务器上,游戏玩家在终端设备的登录信息和操控数据经过网络传输至云端服务器,云端服务器对云游戏进行渲染后将相应的音视频流发送至终端设备。为了给游戏玩家提供更好的体验,游戏应用的开发方对云游戏的低延迟性能和视频流畅度方面均具有较高要求,一般采用视频编码器保障低延迟性能,采用高帧率保障视频流畅度。

2、相关技术中,基于游戏本体渲染出视频帧的渲染进程(写进程)和使用视频编码器对所述视频帧进行编码的串流进程(读进程)各自对应不同的进程,也就是说,写进程和读进程位于两个进程中。通常,在渲染进程中,需要将基于游戏本体渲染出的视频帧拷贝写入到共享纹理中,再通过进程间通信机制,使串流进程获取到共享纹理的纹理句柄,以由视频编码器读取所述视频帧并对所述视频帧进行压缩编码。这样,在渲染进程(写进程)和串流进程(读进程)中,需要使用共享纹理的同步机制来互斥地访问共享的纹理资源,避免“读”和“写”同时发生,进而避免因数据不一致而导致画面撕裂等情况的产生。

3、然而,专利技术人发现相关技术中至少存在如下技术问题:采用上述的同步机制意味着:同一时间,渲染进程(写进程)和串流进程(读进程)只能有一个发生,因为两者需要互斥地访问共享的纹理资源。这样,云游戏的视频帧的渲染帧率就会受到视频编码器的编码速率抖动的影响,也就是说,串流进程的卡顿会造成渲染进程的卡顿而导致渲染出的视频帧的平均帧率不稳定,影响玩家的游玩体验。

/>

技术实现思路

1、本申请的一个目的是提供一种视频帧的处理方法、装置、设备及介质,至少用以解决相关技术中,编码进程的卡顿会造成渲染进程的卡顿而导致渲染出的视频帧的平均帧率不稳定,影响玩家的游玩体验的技术问题。

2、为实现上述目的,本申请的一些实施例提供了以下几个方面:

3、第一方面,本申请的一些实施例还提供了一种视频帧的处理方法,所述方法包括:确定至少两个缓存空间;确定用于交换所述至少两个缓存空间的交换机制;根据所述至少两个缓存空间和所述交换机制处理所述视频帧,实现所述视频帧的帧率的稳定输出。

4、第二方面,本申请的一些实施例还提供了一种视频帧的处理装置,其特征在于,所述装置包括:第一确定模块,用于确定至少两个缓存空间;第二确定模块,用于确定用于交换所述至少两个缓存空间的交换机制;视频帧处理模块,用于根据所述至少两个缓存空间和所述交换机制处理所述视频帧,实现所述视频帧的帧率的稳定输出。

5、第三方面,本申请的一些实施例还提供了一种计算机设备,所述设备包括:一个或多个处理器;以及存储有计算机程序指令的存储器,所述计算机程序指令在被执行时使所述处理器执行如上所述的方法

6、第四方面,本申请的一些实施例还提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现如上所述的方法。

7、可选地,在一些例子中,所述缓存空间的数量为两个;所述确定至少两个缓存空间包括:创建第一共享纹理对象和第二共享纹理对象;根据所述第一共享纹理对象,确定前置缓存空间;根据所述第二共享纹理对象,确定后置缓存空间。如此,可以避免卡顿,满足大多数的云游戏场景下的需求。

8、可选地,在一些例子中,所述确定用于交换所述至少两个缓存空间的交换机制包括:在检测到所述前置缓存空间或者所述后置缓存空间的数据拷贝完成时,交换所述前置缓存空间的第一指针和所述后置缓存空间的第二指针。如此,提供了一种交换机制的具体时机。

9、可选地,在一些例子中,所述根据所述至少两个缓存空间和所述交换机制处理所述视频帧,实现所述视频帧的帧率的稳定输出包括:于第一进程中,获取所述后置缓存空间中,所述第二共享纹理对象的互斥量;根据所述第二共享纹理对象的互斥量,将待渲染纹理数据拷贝至所述后置缓存空间;交换所述前置缓存空间的第一指针和所述后置缓存空间的第二指针;根据交换后的指针数据以及前置缓存空间和所述后置缓存空间,实现所述视频帧的帧率的稳定输出。提供了根据所述至少两个缓存空间和所述交换机制处理所述视频帧,实现所述视频帧的帧率的稳定输出的一种具体实现方式。

10、可选地,在一些例子中,所述根据交换后的指针数据以及前置缓存空间和所述后置缓存空间,实现所述视频帧的帧率的稳定输出包括:将交换后的前置缓存空间的纹理句柄发送至第二进程;于第二进程中,根据交换后的指针数据获取所述前置缓存空间中,所述第二共享纹理对象的互斥量;根据所述第二共享纹理对象的互斥量,读取所述待渲染纹理数据并对所述待渲染纹理数据进行压缩编码,实现所述视频帧的帧率的稳定输出。提供了根据交换后的指针数据以及前置缓存空间和所述后置缓存空间,实现所述视频帧的帧率的稳定输出的一种具体实现方式。

11、可选地,在一些例子中,在所述交换所述前置缓存空间的第一指针和所述后置缓存空间的第二指针后,所述方法还包括:释放所述后置缓存空间中缓存的数据。如此,有利于及时切换另一个进程的执行。

12、可选地,在一些例子中,所述方法应用于云游戏的场景;所述第一进程为游戏进程;所述第二进程为串流进程。这里,对所述方法的应用场景和所述第一进程、所述第二进程进行了限定。

13、相较于现有技术,本申请实施例提供的方案中,在业界常见的共享纹理方案的基础上,巧妙地和渲染管线交换链的原理相结合,设计了多纹理缓存空间的视频存储资源跨进程共享方案。具体通过确定至少两个缓存空间;确定用于交换所述至少两个缓存空间的交换机制,并根据所述至少两个缓存空间和所述交换机制处理所述视频帧,实现所述视频帧的帧率的稳定输出。如此,由于设置了至少两个缓存空间,并和交换机制相结合,可以使得渲染进程和串流进程不基于同一个共享纹理存储资源进行竞争访问,从而可以在一定程度上解耦渲染进程和串流进程之间的相互影响,解决例如云游戏等应用场景下,由于渲染进程和串流进程竞争访问共享纹理存储资源,导致对云游戏的渲染出帧的帧间隔受到串流进程中视频编码器耗时抖动的影响而使得视频帧的出帧帧率不稳定的技术问题,达到对云游戏进行渲染得到的视频帧的出帧平均帧率达到稳定的预期帧率的目的。

本文档来自技高网...

【技术保护点】

1.一种视频帧的处理方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述缓存空间的数量为两个;

3.根据权利要求2所述的方法,其特征在于,所述确定用于交换所述至少两个缓存空间的交换机制包括:

4.根据权利要求3所述的方法,其特征在于,所述根据所述至少两个缓存空间和所述交换机制处理所述视频帧,实现所述视频帧的帧率的稳定输出包括:

5.根据权利要求4所述的方法,其特征在于,所述根据交换后的指针数据以及前置缓存空间和所述后置缓存空间,实现所述视频帧的帧率的稳定输出包括:

6.根据权利要求4所述的方法,其特征在于,在所述交换所述前置缓存空间的第一指针和所述后置缓存空间的第二指针后,所述方法还包括:释放所述后置缓存空间中缓存的数据。

7.根据权利要求5所述的方法,其特征在于,所述方法应用于云游戏的场景;

8.一种视频帧的处理装置,其特征在于,所述装置包括:

9.一种计算机设备,其特征在于,所述设备包括:

10.一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现如权利要求1至7中任意一项所述的方法。

...

【技术特征摘要】

1.一种视频帧的处理方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述缓存空间的数量为两个;

3.根据权利要求2所述的方法,其特征在于,所述确定用于交换所述至少两个缓存空间的交换机制包括:

4.根据权利要求3所述的方法,其特征在于,所述根据所述至少两个缓存空间和所述交换机制处理所述视频帧,实现所述视频帧的帧率的稳定输出包括:

5.根据权利要求4所述的方法,其特征在于,所述根据交换后的指针数据以及前置缓存空间和所述后置缓存空间,实现所述视频帧的帧率的稳定输...

【专利技术属性】
技术研发人员:李雅琪王廖荣
申请(专利权)人:上海米哈游天命科技有限公司
类型:发明
国别省市:

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

1