CN112929741A - 一种视频帧渲染方法、装置、电子设备和存储介质 - Google Patents

一种视频帧渲染方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN112929741A
CN112929741A CN202110081862.1A CN202110081862A CN112929741A CN 112929741 A CN112929741 A CN 112929741A CN 202110081862 A CN202110081862 A CN 202110081862A CN 112929741 A CN112929741 A CN 112929741A
Authority
CN
China
Prior art keywords
frame
buffer container
rendering
video
video frames
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110081862.1A
Other languages
English (en)
Other versions
CN112929741B (zh
Inventor
陈涛
罗光辉
史孝兵
蔡强
王叶群
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Wulian Technology Co ltd
Original Assignee
Hangzhou Wulian Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Wulian Technology Co ltd filed Critical Hangzhou Wulian Technology Co ltd
Priority to CN202110081862.1A priority Critical patent/CN112929741B/zh
Publication of CN112929741A publication Critical patent/CN112929741A/zh
Application granted granted Critical
Publication of CN112929741B publication Critical patent/CN112929741B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请公开了一种视频帧渲染方法、装置、电子设备和计算机可读存储介质,包括:根据获取的预设时间段内的帧信息和最大允许掉帧次数,确定缓冲容器的目标长度N;当检测到显示器的渲染FPS小于预设阈值,且垂直同步周期内出现M个视频帧时,根据各个视频帧的到达时间先后顺序,渲染第M‑N个视频帧,并缓存后到达的N个视频帧至缓冲容器;其中,M大于N;当进入后续各个垂直同步周期时,按照先进先出的原则,渲染缓冲容器中的各个视频帧,并更新缓冲容器中的视频帧。该方法能够使视频帧不丢失,平衡了画面的流畅性和显示延迟的关系,即在可接受的显示延迟范围内,保证画面流畅性,改善用户体验。

Description

一种视频帧渲染方法、装置、电子设备和存储介质
技术领域
本申请涉及流媒体技术领域,特别涉及一种视频帧渲染方法、装置、电子设备和计算机可读存储介质。
背景技术
随着编解码技术以及软硬件技术的发展,云游戏、云电脑系统等创新业务逐步进入大众的视野,并取得了一定的发展。在云游戏、云电脑系统中如何保证高画质、高分辨率、高帧率、低延时作为终极优化目标。终端显示策略作为云电脑系统中的重要环节,对实际效果有着非常重大的影响。RTT(round trip time)的波动是网络中不可避免的现象,轻微的抖动就会导致云电脑出现掉帧现象,导致画面不流畅,影响用户的体验。
发明内容
本申请的目的是提供一种视频帧渲染方法,能够在可接受的显示延迟时间范围内,保证画面的流畅性,改善用户体验。其具体方案如下:
第一方面,本申请公开了一种视频帧渲染方法,包括:
根据获取的预设时间段内的帧信息和最大允许掉帧次数,确定缓冲容器的目标长度N;
当检测到显示器的渲染FPS小于预设阈值,且垂直同步周期内出现M个视频帧时,根据各个所述视频帧的到达时间先后顺序,渲染第M-N个视频帧,并缓存后到达的N个视频帧至缓冲容器;其中,所述M大于N;
当进入后续各个垂直同步周期时,按照先进先出的原则,渲染所述缓冲容器中的各个视频帧,并更新所述缓冲容器中的视频帧。
可选的,所述根据获取的预设时间段内的帧信息和最大允许掉帧次数,确定缓冲容器的目标长度N,包括:
根据获取的所述预设时间段内的帧信息中的服务器抓屏时间,确定所述服务器的抓屏FPS;
根据所述帧信息中的各个所述视频帧的到达时间,确定渲染FPS;
根据所述抓屏FPS、所述渲染FPS和所述最大允许掉帧次数,确定所述缓冲容器的目标长度N。
可选的,在所述缓存后到达的N个视频帧至缓冲容器之前,还包括:
判断所述缓冲容器当前缓存的视频帧的帧数量是否大于所述缓冲容器的目标长度N;
若否,则执行所述缓存其余的所述目标长度个视频帧至缓冲容器的步骤;
若是,则按照所述缓冲容器中各个视频帧的缓存先后顺序,删除最先进入所述缓冲容器的视频帧,以使当前缓存的视频帧的帧数量小于或等于所述目标长度N。
可选的,在所述根据获取的预设时间段内的帧信息和最大允许掉帧次数,确定缓冲容器的目标长度N之前,还包括:
设置各个所述视频帧到达的最大延迟时间。
可选的,在所述更新所述缓冲容器中的视频帧之后,还包括:
判断预设时长内所述显示器的渲染FPS是否小于所述预设阈值;
若否,则将所述目标长度设置为0,并删除所述缓冲容器中的视频帧。
第二方面,本申请公开了一种视频帧渲染装置,包括:
确定模块,用于根据获取的预设时间段内的帧信息和最大允许掉帧次数,确定缓冲容器的目标长度N;
缓存模块,用于当检测到显示器的渲染FPS小于预设阈值,且垂直同步周期内出现M个视频帧时,根据各个所述视频帧的到达时间先后顺序,渲染第M-N个视频帧,并缓存后到达的N个视频帧至缓冲容器;其中,所述M大于N;
渲染模块,用于当进入后续各个垂直同步周期时,按照先进先出的原则,渲染所述缓冲容器中的各个视频帧,并更新所述缓冲容器中的视频帧。
可选的,所述确定模块,包括:
第一确定单元,用于根据获取的所述预设时间段内的帧信息中的服务器抓屏时间,确定所述服务器的抓屏FPS;
第二确定单元,用于根据所述帧信息中的各个所述视频帧的到达时间,确定渲染FPS;
第三确定单元,用于根据所述抓屏FPS、所述渲染FPS和所述最大允许掉帧次数,确定所述缓冲容器的目标长度N。
可选的,还包括:
第一判断模块,用于判断所述缓冲容器当前缓存的视频帧的帧数量是否大于所述缓冲容器的目标长度N;
第一删除模块,用于若是,则按照所述缓冲容器中各个视频帧的缓存先后顺序,删除最先进入所述缓冲容器的视频帧,以使当前缓存的视频帧的帧数量小于或等于所述目标长度N。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现本申请任一实施例所述视频帧渲染方法的步骤。
第四方面,本申请公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现本申请任一实施例所述的视频帧渲染方法的步骤。
本申请提供一种视频帧渲染方法,包括:根据获取的预设时间段内的帧信息和最大允许掉帧次数,确定缓冲容器的目标长度N;当检测到显示器的渲染FPS小于预设阈值,且垂直同步周期内出现M个视频帧时,根据各个所述视频帧的到达时间先后顺序,渲染第M-N个视频帧,并缓存后到达的N个视频帧至缓冲容器;其中,所述M大于N;当进入后续各个垂直同步周期时,按照先进先出的原则,渲染所述缓冲容器中的各个视频帧,并更新所述缓冲容器中的视频帧。
可见,本申请通过渲染第M-N个视频帧,再缓存后到达的N个视频帧,然后在后续的各个垂直同步周期内,依次渲染缓冲容器中的各个视频帧,即将在垂直同步周期内多到达的视频帧缓存至缓冲容器中,当进入后续的各个垂直同步周期时,依次进行渲染,避免了相关技术中由于网络抖动,导致掉帧的现象,能够使视频帧不丢失,保证了画面的流畅性;且对第M-N个视频帧进行渲染而非直接从第一个视频帧开始渲染,可使目标长度的视频帧能够早到达即早进行渲染,无需依次从第一个视频帧等到对应的垂直同步周期内再进行渲染,平衡了画面的流畅性和显示延迟的关系,即在可接受的显示延迟时间范围内,也保证画面的流畅性,改善用户体验。本申请同时还提供了一种视频帧渲染装置、一种电子设备和计算机可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种视频帧渲染方法的流程图;
图2为本申请实施例所提供的另一种视频帧渲染方法的流程图;
图3为本申请实施例所提供的一种在网络状态良好的情况下视频帧正常到达并渲染的示意图;
图4为本申请实施例所提供的一种网络出现抖动时产生掉帧的示意图;
图5为本申请实施例所提供的一种解码模块和渲染模块的示意图;
图6为本申请实施例所提供的一种具体的缓冲视频帧的示意图;
图7为本申请实施例所提供的一种视频帧渲染装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在云游戏、云电脑系统中,需要保证高画质、高分辨率、高帧率和低延时。但是由于网络抖动/阻塞是网络中不可避免的现象,这会导致在云电脑终端显示时产生掉帧,即画面不流畅,影响用户的使用体验。可以理解的是,云电脑终端显示模块主要分为网络传输模块、解码模块和渲染上屏模块。其中,解码模块负责将网络传输模块投递的h264编码数据解码,并交给渲染上屏模块。渲染上屏模块决定什么时候去将解码后的数据交给显卡去渲染,并等待显示器来获取图像。显示器(60HZ刷新率)每隔16.667ms产生一个垂直同步信号,并从显卡指定位置获取一帧图像数据,随后在下一个垂直同步周期内将该图像显示出来。若由于网络抖动造成网络传输模块没有在预定时间输出一帧图像数据即视频帧,就会导致渲染上屏模块没有数据提交给显卡,最终导致显示器获取不到图像数据导致掉帧。
基于上述技术问题,本实施例提供一种视频帧渲染方法,能够使视频帧不丢失,保证了画面的流畅性,平衡了画面的流畅性和显示延迟的关系,具体请参考图1,图1为本申请实施例所提供的一种视频帧渲染方法的流程图,具体包括:
S101、根据获取的预设时间段内的帧信息和最大允许掉帧次数,确定缓冲容器的目标长度N。
本实施例并不限定预设时间段的具体大小,可以是2秒,可以是5秒,可根据实际情况进行选择。本实施例也不限定帧信息的具体内容,可以包括云端即云端服务器的抓屏时间,抓屏次数,视频帧的到达时间等,也可以包括其他信息。本实施例也不限定最大允许掉帧次数的具体大小,可以是2帧,可以是3帧,可根据实际情况进行设定。可以理解的是,当客户终端要求显示帧率较高时,设置的最大允许掉帧次数就小,或不允许掉帧即为0;当终端显示帧率要求不高时,可设置的最大允许掉帧次数可相对变大。本实施例并不限定获取的预设时间段内帧信息的具体方式,可以是云端将抓屏的视频帧通过WIFI传输到客户终端,也可以是云端通过4G或5G将抓屏的视频帧发送至客户终端。可以理解的是,缓存容器即为存放垂直同步周期内多到达的视频帧的容器,将后到达的目标长度个视频帧缓存至缓冲容器,可以使视频帧不丢失即不掉帧;还可以理解的是,终端显示帧率即渲染FPS(每秒终端能够显示的帧率)越接近云端抓屏FPS(每秒云端抓屏的帧率)越好,所以,当网络出现抖动时,若终端的渲染FPS小于“抓屏FPS-最大允许掉帧次数”时(记为预设条件),就需要缓存目标长度个视频帧到缓存容器。所以,对应的目标长度的含义为,当缓存目标长度个视频帧时能够使“渲染FPS+最大允许掉帧次数>=抓屏FPS”,将达到该条件的缓冲的视频帧长度设为目标长度,记为N;可以理解的是,目标长度是随时变化的,即是根据网络状态而变化的;具体的,当网络状态良好时即未出现抖动,也就是不掉帧,此时无需缓存视频帧就能使渲染FPS达到抓屏FPS;当网络不好出现抖动时,需要根据具体情况,计算出需要缓存几个视频帧,也就是计算目标长度,才能使“渲染FPS+最大允许掉帧次数>=抓屏FPS”。可以理解的是,利用上一段时间即预设时间段的帧信息,来计算出目标长度,并认为使用这个目标长度来作为缓存容器的长度可以使将来一段时间不出现掉帧的现象。
在一种具体的实施例中,根据获取的预设时间段内的帧信息和最大允许掉帧次数,确定缓冲容器的目标长度N,可以包括:
根据获取的预设时间段内的帧信息中的服务器抓屏时间,确定服务器的抓屏FPS;
根据帧信息中的各个视频帧的到达时间,确定渲染FPS;
根据抓屏FPS、渲染FPS和最大允许掉帧次数,确定缓冲容器的目标长度N。
即,本实施例中通过获取预设时间段内的帧信息中的服务器抓屏时间,来确定服务器的抓屏FPS,即通过服务器抓屏时间和该预设时间段内的抓屏次数,可以计算得到抓屏FPS;然后,再根据帧信息中的视频帧的到达时间和到达的视频帧个数,计算得到渲染FPS;最后,当渲染FPS小于“抓屏FPS-最大允许掉帧次数”时,即渲染FPS达到预设条件时,需要缓存目标长度N个视频帧,以使渲染FPS大于“抓屏FPS-最大允许掉帧次数”;具体的,确定目标长度N的过程可以为,当缓存的目标长度N为0时,计算此时的渲染FPS,当不满足时也就是渲染FPS还是小于“抓屏FPS-最大允许掉帧次数”时,继续计算;当缓存的目标长度N为1时,计算此时的渲染FPS,并判断是否满足条件,若不满足,则继续计算;当缓存的目标长度N为2时,N为3时,直到渲染FPS大于“抓屏FPS-最大允许掉帧次数”。
在一种具体的实施例中,为了改善用户体验,在根据获取的预设时间段内的帧信息和最大允许掉帧次数,确定缓冲容器的目标长度N之前,还可以包括:
设置各个视频帧到达的最大延迟时间。
即,本实施例中通过设置各个视频帧到达的最大延迟时间,可以保证视频帧的显示延迟时间在可接受的时间范围内,能够满足云游戏等低延时性能要求,不影响客户的游戏体验。
S102、当检测到显示器的渲染FPS小于预设阈值,且垂直同步周期内出现M个视频帧时,根据各个视频帧的到达时间先后顺序,渲染第M-N个视频帧,并缓存后到达的N个视频帧至缓冲容器;其中,M大于N。
可以理解的是,本实施例中的预设阈值即为上述“抓屏FPS-最大允许掉帧次数”。还可以理解的是,垂直同步周期即为正常状态下各个视频帧正常到达的时间间隔,根据显示器的帧率而定;例如,显示器的帧率为60Hz/s,那么垂直同步周期为16ms。当出现网络阻塞,视频帧延迟到达,就会出现在一个垂直同步周期内,出现多个视频帧。由于在一个垂直同步周期内,只能渲染一个视频帧,本实施例先渲染第M-N个视频帧,再将后到达的目标长度N个视频帧进行缓存,可以保证这N个视频帧不丢失。可以理解的是,本实施例中不直接渲染在该周期内第1个到达的视频帧,而渲染第M-N个视频帧,可使目标长度的视频帧能够早进行渲染,无需依次从第一个视频帧等到对应的垂直同步周期内再进行渲染,平衡了画面的流畅性和显示延迟的关系,即在可接受的显示延迟时间范围内,也保证画面的流畅性,改善用户体验。
在一种具体的实施例中,为了提高缓冲容器缓存视频帧的成功率,在缓存后到达的N个视频帧至缓冲容器之前,还可以包括:
判断缓冲容器当前缓存的视频帧的帧数量是否大于缓冲容器的目标长度N;
若否,则执行缓存其余的目标长度个视频帧至缓冲容器的步骤;
若是,则按照缓冲容器中各个视频帧的缓存先后顺序,删除最先进入缓冲容器的视频帧,以使当前缓存的视频帧的帧数量小于或等于目标长度N。
即,本实施例中通过判断缓存容器中的当前视频帧的帧数量是否大于缓冲容器的目标长度N,若大于时,就需要删除最旧的视频帧,也就是最先进入缓冲容器的视频帧,以使当前的视频帧数量小于等于目标长度N。可以防止由于缓冲容器中的帧数量已达到目标长度N,以至于后续的视频帧缓存不成功的情况,提高了缓冲容器缓存视频帧的成功率,改善用户体验。
S103、当进入后续各个垂直同步周期时,按照先进先出的原则,渲染缓冲容器中的各个视频帧,并更新缓冲容器中的视频帧。
即在当前垂直同步周期渲染第M-N帧,并缓存后到达的N个视频帧到缓存容器后,进入后面的各个垂直同步周期时,按照先进先出的原则,依次渲染缓存容器中各个视频帧,并进行更新。本实施例并不限定更新的具体过程,可根据实际情况而定。例如,当进入下一个垂直同步周期时,该周期内并未到达视频帧,那么只渲染缓冲容器中的一个视频帧,并将渲染的该视频帧删除;当在下一个垂直同步周期内,有视频帧到达时,那么渲染缓冲容器中的一个视频帧,并将该视频帧删除,还需将该周期内到达的视频帧缓存至缓冲容器,完成更新。
基于上述技术方案,本实施例将在垂直同步周期内多到达的视频帧缓存至缓冲容器中,当进入后续的各个垂直同步周期时,依次进行渲染,避免了相关技术中由于网络抖动,导致掉帧的现象,能够使视频帧不丢失,保证了画面的流畅性;且对第M-N个视频帧进行渲染而非直接渲染第一个视频帧,可使目标长度的视频帧能够早到达即早进行渲染,无需依次从第一个视频帧等到对应的垂直同步周期内再进行渲染,平衡了画面的流畅性和显示延迟的关系,即在可接受的显示延迟时间范围内,也保证画面的流畅性,改善用户体验。
基于上述实施例,为了降低运行内存,提高整体运行速率,具体请参考图2,图2为本申请实施例所提供的另一种视频帧渲染方法的流程图,包括:
S201、根据获取的预设时间段内的帧信息和最大允许掉帧次数,确定缓冲容器的目标长度N。
S202、当检测到显示器的渲染FPS小于预设阈值,且垂直同步周期内出现M个视频帧时,根据各个视频帧的到达时间先后顺序,渲染第M-N个视频帧,并缓存后到达的N个视频帧至缓冲容器;其中,M大于N。
S203、当进入后续各个垂直同步周期时,按照先进先出的原则,渲染缓冲容器中的各个视频帧,并更新缓冲容器中的视频帧。
步骤S201至步骤S203的具体内容可以参考上述实施例,本实施例不再进行赘述。
S204、判断预设时长内显示器的渲染FPS是否小于预设阈值。
S205、若否,则将目标长度设置为0,并删除缓冲容器中的视频帧。
本实施例中在各个垂直同步周期内渲染缓冲容器中的各个视频帧,并进行更新后,判断在预设时长内显示器的渲染FPS是否小于预设阈值,当大于或等于时,将目标长度设置为0,并删除缓冲容器中的视频帧。本实施例并不限定预设时长的大小,可以是3秒,可以是6秒,可根据实际情况进行设定。可以理解的是,通过判断预设时长内显示器的渲染FPS大于等于预设阈值时,说明当前的网络状态良好,无需进行缓存,各个视频帧可正常到达并渲染,因此,可将目标长度设置为0,并删除缓冲容器中的视频帧。可降低运行内存,提高整体运行速率,改善用户体验。
基于上述技术方案,本实施例在可接受的画面延迟范围内,改善终端显示效果,避免由于网络抖动产生的掉帧现象,保证了流畅性,改善了终端的整体性能,提升用户的体验;并通过判断预设时长内显示器的渲染FPS大于等于预设阈值时,将目标长度设置为0,并删除缓冲容器中的视频帧。可降低运行内存,提高整体运行速率。
下面提供一种具体的实施例。图3为本实施例所提供的一种在网络状态良好的情况下视频帧正常到达并渲染的示意图。图4为本实施例所提供的一种网络出现抖动时产生掉帧的示意图,即第3个视频帧(第3帧)没有在预期时间到达,因为网络拥塞\抖动的影响,导致第3帧在第4个垂直同步周期内才到达,导致显示器在第4个垂直同步信号时获取不到视频帧产生掉帧。
本实施例提供一种动态调整帧缓冲的策略,可以根据网络状况,确定渲染模块缓存视频帧的时间,以及最优的缓冲区长度是多少,也就是确定缓冲容器的目标长度,从而在画面延迟和流畅性之间取得平衡,即在显示延迟可接受的范围内,保证画面的流畅性。图5为本实施例所提供的一种解码模块和渲染模块的示意图。
具体实施步骤可以为:
1、设置初始化参数。
设置能够接受的最大延迟时间max_delay,该参数相当于指定了缓冲区的最大长度。设置每秒能够接受的最大允许掉帧次数drop_count。将缓冲容器的目标长度target_count设置为0。参数设置完后,缓冲容器初始化完成。
2、插入视频帧。
当解码模块将视频帧投递到渲染模块在插入缓冲容器前,如果缓冲容器中当前的帧数量cur_count大于target_count,需要将最旧的帧删除,直到cur_count=target_count。并且提取该视频帧的帧序号(frame_no),云端的抓屏时间(capture_time)以及到达客户端的时间(arrival_time),并将其插入缓冲容器中。
3、计算抓屏FP和渲染FPS,确定缓冲容器的目标长度。
根据云端抓屏时间,计算出一段时间内的抓屏次数。例如,在t0→t3时间段内,总共抓屏4次,那么可以得到抓屏FPS。根据到达客户端的时间计算出无缓存(缓存0帧)情况下的渲染FPS。
如图6所示,为本实施例所提供的一种具体的实施例。图中,竖线代表垂直同步时间,竖箭头代表每个视频帧的到达时间,第一行数字代表各自的帧序号,第2和第3行的数字代表在该垂直同步时间被渲染的帧序号。
可以看到,在t0→t7时间段内,总共有7帧数据,但由于网络抖动影响了其中2帧的到达时间,所以只能渲染5帧,掉了2帧(第3帧和第6帧)。
当缓存容器的目标长度为1时,计算在缓存1帧情况下的渲染FPS,从右向左计算。在T6-T7内有两帧数据,取一帧(第6帧)作为缓存,取一帧(第7帧)去渲染。在T5-T6内没有数据到达,将缓存容器中缓冲的第6帧送去渲染,依次类推。
因此,缓存1帧就可以解决本实施例中的掉帧问题。若设置的最大允许掉帧次数=0(不允许掉帧),那么缓存1帧才能使渲染FPS=抓屏FPS,也即一次掉帧情况也不会发生。
需要说明的是,计算目标长度时所依据的是过去一段时间即预设时间段内的帧信息,计算的也是过去一段时间的FPS,并且后续到达的视频帧也会出现类似的波动情况。
基于上述技术方案,本实施例根据当前网络状态动态缓冲视频帧,在可接受的画面延迟范围内改善云电脑的终端显示效果,从而改善云电脑系统的整体性能,提升用户的体验,以达到最佳的画质性能体验。
下面对本申请实施例提供的一种视频帧渲染装置进行介绍,下文描述的视频帧渲染装置与上文描述的视频帧渲染方法可相互对应参照,相关模块均设置于中,参考图7,图7为本申请实施例所提供的一种视频帧渲染装置的结构示意图,包括:
在一些具体的实施例中,具体包括:
确定模块701,用于根据获取的预设时间段内的帧信息和最大允许掉帧次数,确定缓冲容器的目标长度N;
缓存模块702,用于当检测到显示器的渲染FPS小于预设阈值,且垂直同步周期内出现M个视频帧时,根据各个视频帧的到达时间先后顺序,渲染第M-N个视频帧,并缓存后到达的N个视频帧至缓冲容器;其中,M大于N;
渲染模块703,用于当进入后续各个垂直同步周期时,按照先进先出的原则,渲染缓冲容器中的各个视频帧,并更新缓冲容器中的视频帧。
在一些具体的实施例中,确定模块701,包括:
第一确定单元,用于根据获取的预设时间段内的帧信息中的服务器抓屏时间,确定服务器的抓屏FPS;
第二确定单元,用于根据帧信息中的各个视频帧的到达时间,确定渲染FPS;
第三确定单元,用于根据抓屏FPS、渲染FPS和最大允许掉帧次数,确定缓冲容器的目标长度N。
在一些具体的实施例中,还包括:
第一判断模块,用于判断缓冲容器当前缓存的视频帧的帧数量是否大于缓冲容器的目标长度N;
第一删除模块,用于若是,则按照缓冲容器中各个视频帧的缓存先后顺序,删除最先进入缓冲容器的视频帧,以使当前缓存的视频帧的帧数量小于或等于目标长度N。
在一些具体的实施例中,还包括:
设置模块,用于设置各个视频帧到达的最大延迟时间。
在一些具体的实施例中,还包括:
第二判断模块,用于判断预设时长内显示器的渲染FPS是否小于预设阈值;
第二删除模块,用于若否,则将目标长度设置为0,并删除缓冲容器中的视频帧。
由于视频帧渲染装置部分的实施例与视频帧渲染方法部分的实施例相互对应,因此视频帧渲染装置部分的实施例请参见视频帧渲染方法部分的实施例的描述,这里暂不赘述。
下面对本申请实施例提供的一种电子设备进行介绍,下文描述的电子设备与上文描述的方法可相互对应参照。
本申请提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述视频帧渲染方法的步骤。
由于电子设备部分的实施例与视频帧渲染方法部分的实施例相互对应,因此电子设备部分的实施例请参见视频帧渲染方法部分的实施例的描述,这里暂不赘述。
本申请还公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述视频帧渲染方法的步骤。
由于计算机可读存储介质部分的实施例与视频帧渲染方法部分的实施例相互对应,因此计算机可读存储介质部分的实施例请参见视频帧渲染方法部分的实施例的描述,这里暂不赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种视频帧渲染方法、装置、电子设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

Claims (10)

1.一种视频帧渲染方法,其特征在于,包括:
根据获取的预设时间段内的帧信息和最大允许掉帧次数,确定缓冲容器的目标长度N;
当检测到显示器的渲染FPS小于预设阈值,且垂直同步周期内出现M个视频帧时,根据各个所述视频帧的到达时间先后顺序,渲染第M-N个视频帧,并缓存后到达的N个视频帧至缓冲容器;其中,所述M大于N;
当进入后续各个垂直同步周期时,按照先进先出的原则,渲染所述缓冲容器中的各个视频帧,并更新所述缓冲容器中的视频帧。
2.根据权利要求1所述的视频帧渲染方法,其特征在于,所述根据获取的预设时间段内的帧信息和最大允许掉帧次数,确定缓冲容器的目标长度N,包括:
根据获取的所述预设时间段内的帧信息中的服务器抓屏时间,确定所述服务器的抓屏FPS;
根据所述帧信息中的各个所述视频帧的到达时间,确定渲染FPS;
根据所述抓屏FPS、所述渲染FPS和所述最大允许掉帧次数,确定所述缓冲容器的目标长度N。
3.根据权利要求1所述的视频帧渲染方法,其特征在于,在所述缓存后到达的N个视频帧至缓冲容器之前,还包括:
判断所述缓冲容器当前缓存的视频帧的帧数量是否大于所述缓冲容器的目标长度N;
若否,则执行所述缓存其余的所述目标长度个视频帧至缓冲容器的步骤;
若是,则按照所述缓冲容器中各个视频帧的缓存先后顺序,删除最先进入所述缓冲容器的视频帧,以使当前缓存的视频帧的帧数量小于或等于所述目标长度N。
4.根据权利要求1所述的视频帧渲染方法,其特征在于,在所述根据获取的预设时间段内的帧信息和最大允许掉帧次数,确定缓冲容器的目标长度N之前,还包括:
设置各个所述视频帧到达的最大延迟时间。
5.根据权利要求1至4任一项所述的视频帧渲染方法,其特征在于,在所述更新所述缓冲容器中的视频帧之后,还包括:
判断预设时长内所述显示器的渲染FPS是否小于所述预设阈值;
若否,则将所述目标长度设置为0,并删除所述缓冲容器中的视频帧。
6.一种视频帧渲染装置,其特征在于,包括:
确定模块,用于根据获取的预设时间段内的帧信息和最大允许掉帧次数,确定缓冲容器的目标长度N;
缓存模块,用于当检测到显示器的渲染FPS小于预设阈值,且垂直同步周期内出现M个视频帧时,根据各个所述视频帧的到达时间先后顺序,渲染第M-N个视频帧,并缓存后到达的N个视频帧至缓冲容器;其中,所述M大于N;
渲染模块,用于当进入后续各个垂直同步周期时,按照先进先出的原则,渲染所述缓冲容器中的各个视频帧,并更新所述缓冲容器中的视频帧。
7.根据权利要求6所述的视频帧渲染装置,其特征在于,所述确定模块,包括:
第一确定单元,用于根据获取的所述预设时间段内的帧信息中的服务器抓屏时间,确定所述服务器的抓屏FPS;
第二确定单元,用于根据所述帧信息中的各个所述视频帧的到达时间,确定渲染FPS;
第三确定单元,用于根据所述抓屏FPS、所述渲染FPS和所述最大允许掉帧次数,确定所述缓冲容器的目标长度N。
8.根据权利要求6所述的视频帧渲染装置,其特征在于,还包括:
第一判断模块,用于判断所述缓冲容器当前缓存的视频帧的帧数量是否大于所述缓冲容器的目标长度N;
第一删除模块,用于若是,则按照所述缓冲容器中各个视频帧的缓存先后顺序,删除最先进入所述缓冲容器的视频帧,以使当前缓存的视频帧的帧数量小于或等于所述目标长度N。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述视频帧渲染方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述视频帧渲染方法的步骤。
CN202110081862.1A 2021-01-21 2021-01-21 一种视频帧渲染方法、装置、电子设备和存储介质 Active CN112929741B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110081862.1A CN112929741B (zh) 2021-01-21 2021-01-21 一种视频帧渲染方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110081862.1A CN112929741B (zh) 2021-01-21 2021-01-21 一种视频帧渲染方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN112929741A true CN112929741A (zh) 2021-06-08
CN112929741B CN112929741B (zh) 2023-02-03

Family

ID=76163880

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110081862.1A Active CN112929741B (zh) 2021-01-21 2021-01-21 一种视频帧渲染方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN112929741B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407138A (zh) * 2021-06-30 2021-09-17 腾讯科技(深圳)有限公司 应用程序的画面处理方法、装置、电子设备及存储介质
CN113747237A (zh) * 2021-08-31 2021-12-03 深信服科技股份有限公司 数据处理方法、装置、电子设备及存储介质
CN113923507A (zh) * 2021-12-13 2022-01-11 北京蔚领时代科技有限公司 Android端的低延迟视频渲染方法及装置
CN114579076A (zh) * 2022-01-30 2022-06-03 荣耀终端有限公司 数据处理方法和相关装置
WO2022262470A1 (zh) * 2021-06-15 2022-12-22 北京字跳网络技术有限公司 视频处理方法、装置、存储介质及电子设备
CN115543714A (zh) * 2022-12-02 2022-12-30 北京志翔科技股份有限公司 远程桌面延迟检测方法、装置、电子设备和系统
CN115550709A (zh) * 2022-01-07 2022-12-30 荣耀终端有限公司 数据处理方法及电子设备
CN115550708A (zh) * 2022-01-07 2022-12-30 荣耀终端有限公司 数据处理方法及电子设备

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5933155A (en) * 1996-11-06 1999-08-03 Silicon Graphics, Inc. System and method for buffering multiple frames while controlling latency
WO2012154156A1 (en) * 2011-05-06 2012-11-15 Google Inc. Apparatus and method for rendering video using post-decoding buffer
US20130242117A1 (en) * 2011-10-06 2013-09-19 Qualcomm Incorporated Frame buffer format detection
US8648870B1 (en) * 2010-08-02 2014-02-11 Adobe Systems Incorporated Method and apparatus for performing frame buffer rendering of rich internet content on display devices
WO2014102337A1 (en) * 2012-12-27 2014-07-03 Barco Nv A method and system for managing a queue of video frames
CN106843859A (zh) * 2016-12-31 2017-06-13 歌尔科技有限公司 一种虚拟现实场景的绘制方法和装置及一种虚拟现实设备
US10116989B1 (en) * 2016-09-12 2018-10-30 Twitch Interactive, Inc. Buffer reduction using frame dropping
US20190042177A1 (en) * 2018-01-10 2019-02-07 Jason Tanner Low latency wireless display
CN109769140A (zh) * 2018-12-20 2019-05-17 南京杰迈视讯科技有限公司 一种基于流媒体技术的网络视频流畅播放控制方法
CN110503708A (zh) * 2019-07-03 2019-11-26 华为技术有限公司 一种基于垂直同步信号的图像处理方法及电子设备
CN110771160A (zh) * 2018-07-23 2020-02-07 深圳市大疆创新科技有限公司 视频均匀显示方法、终端设备、机器可读存储介质
CN111641838A (zh) * 2020-05-13 2020-09-08 深圳市商汤科技有限公司 一种浏览器视频播放方法、装置以及计算机存储介质
CN111641858A (zh) * 2020-04-29 2020-09-08 上海推乐信息技术服务有限公司 一种音视频同步方法及系统
CN112153082A (zh) * 2020-11-25 2020-12-29 深圳乐播科技有限公司 一种在安卓系统中平滑显示实时流视频画面的方法及装置

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5933155A (en) * 1996-11-06 1999-08-03 Silicon Graphics, Inc. System and method for buffering multiple frames while controlling latency
US8648870B1 (en) * 2010-08-02 2014-02-11 Adobe Systems Incorporated Method and apparatus for performing frame buffer rendering of rich internet content on display devices
WO2012154156A1 (en) * 2011-05-06 2012-11-15 Google Inc. Apparatus and method for rendering video using post-decoding buffer
US20130242117A1 (en) * 2011-10-06 2013-09-19 Qualcomm Incorporated Frame buffer format detection
WO2014102337A1 (en) * 2012-12-27 2014-07-03 Barco Nv A method and system for managing a queue of video frames
US10116989B1 (en) * 2016-09-12 2018-10-30 Twitch Interactive, Inc. Buffer reduction using frame dropping
CN106843859A (zh) * 2016-12-31 2017-06-13 歌尔科技有限公司 一种虚拟现实场景的绘制方法和装置及一种虚拟现实设备
US20190042177A1 (en) * 2018-01-10 2019-02-07 Jason Tanner Low latency wireless display
CN110771160A (zh) * 2018-07-23 2020-02-07 深圳市大疆创新科技有限公司 视频均匀显示方法、终端设备、机器可读存储介质
CN109769140A (zh) * 2018-12-20 2019-05-17 南京杰迈视讯科技有限公司 一种基于流媒体技术的网络视频流畅播放控制方法
CN110503708A (zh) * 2019-07-03 2019-11-26 华为技术有限公司 一种基于垂直同步信号的图像处理方法及电子设备
CN111641858A (zh) * 2020-04-29 2020-09-08 上海推乐信息技术服务有限公司 一种音视频同步方法及系统
CN111641838A (zh) * 2020-05-13 2020-09-08 深圳市商汤科技有限公司 一种浏览器视频播放方法、装置以及计算机存储介质
CN112153082A (zh) * 2020-11-25 2020-12-29 深圳乐播科技有限公司 一种在安卓系统中平滑显示实时流视频画面的方法及装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022262470A1 (zh) * 2021-06-15 2022-12-22 北京字跳网络技术有限公司 视频处理方法、装置、存储介质及电子设备
CN113407138A (zh) * 2021-06-30 2021-09-17 腾讯科技(深圳)有限公司 应用程序的画面处理方法、装置、电子设备及存储介质
CN113407138B (zh) * 2021-06-30 2022-07-29 腾讯科技(深圳)有限公司 应用程序的画面处理方法、装置、电子设备及存储介质
CN113747237A (zh) * 2021-08-31 2021-12-03 深信服科技股份有限公司 数据处理方法、装置、电子设备及存储介质
CN113923507A (zh) * 2021-12-13 2022-01-11 北京蔚领时代科技有限公司 Android端的低延迟视频渲染方法及装置
CN113923507B (zh) * 2021-12-13 2022-07-22 北京蔚领时代科技有限公司 Android端的低延迟视频渲染方法及装置
CN115550709A (zh) * 2022-01-07 2022-12-30 荣耀终端有限公司 数据处理方法及电子设备
CN115550708A (zh) * 2022-01-07 2022-12-30 荣耀终端有限公司 数据处理方法及电子设备
CN115550709B (zh) * 2022-01-07 2023-09-26 荣耀终端有限公司 数据处理方法及电子设备
CN115550708B (zh) * 2022-01-07 2023-12-19 荣耀终端有限公司 数据处理方法及电子设备
CN114579076A (zh) * 2022-01-30 2022-06-03 荣耀终端有限公司 数据处理方法和相关装置
CN115543714A (zh) * 2022-12-02 2022-12-30 北京志翔科技股份有限公司 远程桌面延迟检测方法、装置、电子设备和系统

Also Published As

Publication number Publication date
CN112929741B (zh) 2023-02-03

Similar Documents

Publication Publication Date Title
CN112929741B (zh) 一种视频帧渲染方法、装置、电子设备和存储介质
CN109587510B (zh) 一种直播方法、装置、设备和存储介质
US10110650B2 (en) Client side stream switching
EP2095205B1 (en) Hybrid buffer management
US9167007B2 (en) Stream complexity mapping
CN106686438B (zh) 一种跨设备的音频图像同步播放的方法、装置及系统
EP3200423B1 (en) Media host transmitting media stream with adapted bit rate
CN109089131B (zh) 一种基于ios系统的录屏直播方法、装置、设备及存储介质
CN105376607A (zh) 一种网络抖动环境下的视频直播方法及装置
KR20130112936A (ko) 적응적 스트리밍 서비스를 제공하기 위한 방법
US11146606B2 (en) Data buffering method, network device, and storage medium
CN113037697B (zh) 一种视频帧处理方法、装置和电子设备及可读存储介质
CN108696771A (zh) 一种视频播放方法及装置
CN106851337B (zh) 视频缓冲控制方法及装置
CN109769125B (zh) 流媒体码率的动态调整方法、媒体服务器及转码服务器
CN113766261B (zh) 一种确定预拉取时长方法、装置、电子设备及存储介质
JP6711120B2 (ja) 映像再生装置、映像再生方法および映像再生プログラム
CN116546276A (zh) 链路带宽估计方法、装置、设备、存储介质以及程序产品
CN105024936B (zh) 一种数据处理方法及装置
EP3410728A1 (en) Methods and apparatus for streaming data
Hess et al. Media streaming protocol: an adaptive protocol for the delivery of audio and video over the internet
CN112272305A (zh) 一种多路实时交互视频缓存存储方法
JP7350866B2 (ja) 表示制御装置、送信装置、表示制御方法及びプログラム
EP4373105A2 (en) Methods, systems, and media for streaming video content using adaptive buffers
CN116233421A (zh) 基于WebRtc的拉流方法及相关设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant