CN113727185B - 视频帧播放方法及系统 - Google Patents
视频帧播放方法及系统 Download PDFInfo
- Publication number
- CN113727185B CN113727185B CN202110962591.0A CN202110962591A CN113727185B CN 113727185 B CN113727185 B CN 113727185B CN 202110962591 A CN202110962591 A CN 202110962591A CN 113727185 B CN113727185 B CN 113727185B
- Authority
- CN
- China
- Prior art keywords
- frame
- time
- video
- current
- parameter
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000009432 framing Methods 0.000 claims abstract description 87
- 238000009877 rendering Methods 0.000 claims abstract description 76
- 230000007246 mechanism Effects 0.000 claims description 39
- 230000005540 biological transmission Effects 0.000 claims description 38
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000012549 training Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012896 Statistical algorithm Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/44008—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/44012—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440218—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44227—Monitoring of local network, e.g. connection or bandwidth variations; Detecting new devices in the local network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/141—Systems for two-way working between two video terminals, e.g. videophone
- H04N7/147—Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
Abstract
本申请实施例公开了一种视频帧播放方法及系统。本申请实施例提供的技术方案,在当前帧处于预定义的待解码状态时,通过确定当前帧的接收时间,并根据当前帧的帧尺寸和组帧时间差估计当前网络抖动参数,组帧时间差表示当前帧与前一视频帧的组帧时间间隔;根据接收时间和当前网络抖动参数确定当前帧的渲染时间,并按照渲染时间渲染播放当前帧。采用上述技术手段,通过结合实时网络抖动准确估计视频帧的渲染播放时间,使视频帧在合理的时机进行渲染播放,以此既保证了视频帧渲染的实时性,又能降低视频播放的卡顿程度,优化用户的实时视频通话体验。
Description
技术领域
本申请实施例涉及视频直播技术领域,尤其涉及一种视频帧播放方法及系统。
背景技术
随着流媒体技术的发展以及智能终端设备的普及,视频即时通讯已经逐渐成为目前最时尚、流行的通讯方式。为了满足用户在不同网络环境下进行流畅通话的需求,要求视频通讯应用具备针对弱网环境的对抗手段,以优化实时视频通话质量。目前,在实时视频通话场景中,为了保障弱网环境下的视频通话质量,通常会选用按时间分层的可伸缩视频编码机制,通过允许接收端丢弃一些未组齐的非参考帧,直接解码已经完整组齐视频帧,以此来提升视频帧解码的实时性。或者使用否定确认机制,通过通知发送端在其发送缓存中重新发送相应数据包,以降低数据包的丢失率。
但是,采用可伸缩视频编码机制或者否定确认机制都会带来额外的视频传输时延,进而导致网络抖动,实时视频通话的视频播放卡顿率较大,视频播放流畅度欠佳,用户的实时视频通话体验也相对较差。
发明内容
本申请实施例提供一种视频帧播放方法及系统,能够准确预估视频帧渲染播放时间,以对抗网络抖动,解决弱网环境下网络抖动导致的视频播放卡顿问题。
在第一方面,本申请实施例提供了一种视频帧播放方法,包括:
在当前帧处于预定义的待解码状态时,确定所述当前帧的接收时间,根据所述当前帧的帧尺寸和组帧时间差估计当前网络抖动参数,所述组帧时间差为所述当前帧与前一视频帧的组帧时间间隔;
根据所述接收时间和所述当前网络抖动参数确定所述当前帧的渲染时间,并按照所述渲染时间渲染播放所述当前帧。
在第二方面,本申请实施例提供了一种视频帧播放系统,包括:
估计模块,用于在当前帧处于预定义的待解码状态时,确定所述当前帧的接收时间,根据所述当前帧的帧尺寸和组帧时间差估计当前网络抖动参数,所述组帧时间差为所述当前帧与前一视频帧的组帧时间间隔;
渲染播放模块,用于根据所述接收时间和所述当前网络抖动参数确定所述当前帧的渲染时间,并按照所述渲染时间渲染播放所述当前帧。
在第三方面,本申请实施例提供了一种电子设备,包括:
存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的视频帧播放方法。
在第四方面,本申请实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的视频帧播放方法。
本申请实施例在当前帧处于预定义的待解码状态时,通过确定当前帧的接收时间,并根据当前帧的帧尺寸和组帧时间差估计当前网络抖动参数,组帧时间差表示当前帧与前一视频帧的组帧时间间隔;根据接收时间和当前网络抖动参数确定当前帧的渲染时间,并按照渲染时间渲染播放当前帧。采用上述技术手段,通过结合实时网络抖动准确估计视频帧的渲染播放时间,使视频帧在合理的时机进行渲染播放,以此既保证了视频帧渲染的实时性,又能降低视频播放的卡顿程度,优化用户的实时视频通话体验。
附图说明
图1是本申请实施例提供的一种视频帧播放方法的流程图;
图2是本申请实施例中视频帧的处理流程图;
图3是本申请实施例中视频帧的参考关系示意图;
图4是本申请实施例中视频帧的渲染播放时间估计流程图;
图5是本申请实施例中网络抖动参数的估计流程图;
图6是本申请实施例中视频帧接收时间的估计流程图;
图7是本申请实施例提供的一种视频帧播放系统的结构示意图;
图8是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
本申请提供的视频帧播放方法,旨在通过结合网络抖动估计以准确预计视频帧的渲染播放时间,使视频帧在合理的时间点进行渲染播放,以此可在弱网环境下,平滑播放视频帧,即保障了视频帧播放的实时性,又降低了实时视频通话的卡顿程度。而在传统的实时视频通话场景中,为了追求低时延,一般会采用用户数据报协议来传输视频帧的数据包。由于数据包有大小限制,一般为1500比特。视频通话根据分辨率、码率、帧率以及帧编码类型的不同,单个视频帧可能会有一个到几十个数据包不等。在理想状态下,发送端按序发出的数据包,接收端也应是按序接收到的,但由于网络环境复杂多变,数据包在传输过程中有很大概率会出现丢包和乱序的情况,造成接收端的视频帧组帧不齐或者需要长时间等待才能组齐一帧视频帧所需的数据包。
为了应对视频帧传输过程中的网络抖动场景,主要的思想是采用牺牲一定的端到端传输时延(视频播放实时性)来换取视频通话的流畅性。当网络开始恶化(抖动发生)时,主动增加视频帧缓存的长度,多缓存一些视频帧数据,以应对将来可能发生的网络抖动;当网络开始恢复正常时,减小视频帧缓存的长度,少缓存一些视频帧数据,以降低视频帧的端到端传输时延,提高视频播放实时性。基于这一应对网络抖动的思想,在实时视频通话场景中,为了保证弱网环境下产品的可用性,通常会选用按时间分层的可伸缩视频编码机制或者否定确认机制进行视频帧传输和处理。其中,可伸缩视频编码机制允许接收端丢弃一些未组齐的非参考帧,直接解码已经完整组齐视频帧,以此来提升视频帧解码的实时性。否定确认机制则通过通知发送端在其发送缓存中重新发送相应数据包,以降低数据包的丢失率。但是,无论是采用可伸缩视频编码机制或是否定确认机制都会带来额外的视频传输时延,额外的视频传输时延容易导致网络波动,进而导致实时视频通话流畅度降低。基于此,提供本申请实施例的一种视频帧播放方法,以解决弱网环境下网络抖动导致的视频播放卡顿问题。
实施例:
图1给出了本申请实施例提供的一种视频帧播放方法的流程图,本实施例中提供的视频帧播放方法可以由视频帧播放设备执行,该视频帧播放设备可以通过软件和/或硬件的方式实现,该视频帧播放设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。一般而言,该视频帧播放设备可以是电脑,手机,平板等实时视频通话的视频接收端。
下述以该视频帧播放设备为执行视频帧播放方法的主体为例,进行描述。
参照图1,该视频帧播放方法具体包括:
S110、在当前帧处于预定义的待解码状态时,确定当前帧的接收时间,根据当前帧的帧尺寸和组帧时间差估计当前网络抖动参数,组帧时间差为当前帧与前一视频帧的组帧时间间隔。
本申请实施例为了实现弱网环境下视频帧平滑播放的目的,对应每一帧视频帧,均通过视频帧的渲染播放时间估计以确定当前视频帧合理的渲染播放时间,以使对应视频帧在合适的时间点进行渲染播放。其中,如图2所示,提供本申请实施例视频帧的处理流程图。参照图2,在实时视频通话场景中,发送端采集到的每一帧视频帧,通过视频帧编码之后,将视频帧分包成若干个数据包,并按相应的顺序发送数据包。对应接收端一端,通过网络接收到数据包之后,对应每一个视频帧进行组帧操作,以帧为单位将数据包组合为相应的视频帧。完成视频帧的组帧操作之后,将视频帧放入抖动缓冲器,一方面供解码器提取进行视频帧解码,一方面对视频帧进行渲染时间估计,以确保该视频帧在合适的时间点进行播放。其中,视频缓冲器与组帧模块和解码器直接交互,完成组帧的视频帧均存储至内部的数据缓冲区,然后根据渲染播放时间估计,在相应的时间点将视频帧送去解码器进行解码。需要说明的是,由于视频帧首先进行解码后才进行渲染播放,因此抖动缓冲器并不是在渲染播放时间对应的时间点输送视频帧给解码器,而是考虑视频帧解码的耗时,在渲染播放时间之前的对应时间点发送视频帧至解码器,解码器完成解码后,将视频帧发送至视频渲染模块,视频渲染模块在渲染播放时间对视频帧进行渲染播放,以此来实现视频帧的平滑播放,提升实时视频通话的流畅程度。
具体的,在进行视频帧渲染播放时间估计时,逐一对抖动缓冲器中缓存的视频帧进行处理状态判断,在确定当前帧处于预定义的待解码状态时,方才进行当前帧的渲染播放时间估计。其中,在当前帧及当前帧的参考帧完成组帧时,确定当前帧处于预定义的待解码状态。本申请实施例中,预先定义视频帧在处于可解码的阶段时,方才估算当前帧的渲染播放时间。可以理解的是,由于发送端在传输视频帧时,会将视频帧分包成多个数据包进行传输。因此,对当前帧进行解码之前,要求当前帧已完成组帧。另一方面,当前帧在进行解码时,需要参考帧提供当前帧解码的解码参考格式,因此,也要求当前帧的参考帧需要完成组帧,只有当前帧及对应的参考帧均完成组帧后,当前帧才处于预定义的待解码状态,表明当前帧可以发送至解码器进行视频帧解码操作。举例而言,第二帧视频帧以第一帧视频帧作为参考帧,那么需要在确定第一帧视频帧及第二帧视频帧已经完成组帧操作后,方才进行第二帧视频帧的渲染播放时间估算。
进一步的,在确定当前帧处于待解码状态之后,即可对当前帧进行渲染播放时间估计,以确定当前帧合理的渲染播放时间。本申请实施例在估计当前帧的渲染播放时间时,基于当前帧的接收时间和当前视频帧传输网络的网络抖动参数进行渲染播放时间的估计。可以理解的是,本申请实施例为了保障视频帧的平滑播放,避免视频播放卡顿程度过大,因此要求视频帧的缓存达到一定的长度,以应对网络抖动。同时视频帧的缓存又不能太长,缓存太长就会导致视频帧播放延迟过大,影响实时视频通话的实时性。因此,正常情况下,要求视频帧的缓存长度尽量等于网络抖动。基于这一原理,对应每一帧接收到的视频帧,其渲染播放时间应当是在视频帧的接收时间的基础上,加上网络抖动参数的延迟,得到的对应时间节点,即为视频帧应当延迟播放的时间节点,即视频帧的渲染播放时间。以此确定的视频帧渲染播放时间,即保障了实时视频通话的实时性,同时又避免了网络抖动影响视频播放的卡顿程度。
需要说明的是,当前帧的接收时间即为接收端接收到当前帧的最后一个数据包的时间。接收时间可以通过记录当前帧最后一个数据包的接收时间确定,也可以通过卡尔曼滤波器等方式进行估测,以提升接收时间的确定效率。另一方面,对于当前网络抖动参数,也是通过当前帧的帧尺寸和组帧时间差进行估算,进而准确确定当前帧的网络抖动参数,使当前帧的渲染播放时间更为精准。本申请实施例中,组帧时间差为当前帧与前一视频帧的组帧时间间隔,组帧时间差根据当前帧与前一视频帧的视频帧发送间隔和传输时延确定。组帧时间差可以精准反映当前网络的波动情况,可以理解的是,网络波动的情况下,接收端一端对应的前后两个组帧时间差信息也会有相应的变化。因此本申请实施例通过组帧时间差进行网络抖动参数的估计。并且,进行网络抖动参数估计时,综合当前帧的帧尺寸信息进行估计。由于不同视频帧的帧尺寸不同,其拆分的数据包可能不同,数据包较多的视频帧,其组帧时间可能相对较长。因此需要考虑帧尺寸的影响,以更精准地对网络抖动参数进行估算。
一般而言,在理想状态下,当前帧与前一视频帧的发送间隔即为两者的接收间隔。由于网络抖动的影响,两者的视频帧传输时延不同,因此视频帧的发送间隔一般不等于接收间隔。基于此,需要确定当前帧在传输过程中的传输时延。
传输时延包括网络拥塞、流控机制、可伸缩视频编码机制和/或否定确认机制导致的时延,即网络拥塞时延、流控机制时延、可伸缩视频编码机制时延和否定确认机制时延中的一种或多种。
其中,网络拥塞时延是网络突发拥塞,导致数据包延迟到达接收端所产生的时延。一般而言,在网络正常且帧尺寸相差不大时,相邻两帧视频帧的发送间隔与接收间隔应该基本一致,但在网络突发拥塞下,接收端的数据包会有迟到现象,此时网络拥塞会导致额外的时延,即网络拥塞时延。
流控机制时延是发送端流控机制所引入的发送时延,在发送端发送数据包时,由于关键视频帧编码后数据量一般比较大,为了防止突发大量数据包造成网络拥塞,发送端一般都会采用流控机制,对于数据量较大的视频帧,需要几个流控周期才能发送完毕。所以即使网络未发生拥塞,发送端的流控机制也会导致一定的时延。
否定确认机制时延是接收端否定确认机制所引入的时延。当数据包丢失时,否定确认机制需要接收端告知发送端某些数据包丢失了,发送端收到否定确认机制信息后,需要从发送队列中重发之前丢失的数据包,因此至少需要一个往返时间才能完成数据包的重传请求,以此导致的时延,即为否定确认机制时延。
可伸缩视频编码机制时延是接收端可伸缩视频编码机制所引入的时延。如图3所示,依据箭头所指示的视频帧与对应参考帧之间的参考关系,视频帧Frame_2参考视频帧Frame_1编码,视频帧Frame_3参考视频帧Frame_2编码,而视频帧Frame_4跨帧直接参考视频帧Frame_1编码。由于网络环境的不确定性,视频帧数据包会在转发过程中丢失,造成接收端组帧不全的情况。当视频帧Frame_2(灰色标识)发生丢包时,视频帧处Frame_2处于未组齐状态,其他所有视频帧都未发生数据包丢失,处于组齐状态。那么由于视频帧Frame_3参考未组齐的视频帧Frame_2编码,尽管视频帧Frame_3已经组齐,但它的参考帧未组齐,所以视频帧Frame_3也处于不可解码的状态,视频帧Frame_1、Frame_4、Frame_5和Frame_6未发生丢包且参考帧组齐,均处于待解码状态。因此,对于各个视频帧的传输时延,也要考虑可伸缩视频编码机制所引入的时延,确定当前帧的参考帧组齐所导致的时延。
综合上述影响组帧时间差的各个因素,即可确定当前帧的组帧时间差。参照图3,以视频帧Frame_4为例,由于视频帧Frame_4以视频帧Frame_1为参考帧,则其组帧时间差计算公式为:
decodableTimeDiff_4=Frame_4.lastPacketReceiveTime-decodableTimeDiff_1
其中,lastPacketReceiveTime代表视频帧Frame_4收到的最后一个数据包的时间,decodableTimeDiff_4表示视频帧Frame_4的组帧时间差,decodableTimeDiff_1表示视频帧Frame_1的组帧时间差。
进一步的,参照图4,本申请实施例中,基于当前帧的帧尺寸和组帧时间差,采用卡尔曼滤波器进行网络抖动参数估计的方式确定当前网络抖动参数,定义该卡尔曼滤波器为第一卡尔曼滤波器,通过将当前帧的帧尺寸和组帧时间差输入预先构建的第一卡尔曼滤波器,由第一卡尔曼滤波器根据帧尺寸和组帧时间差估算出对应的当前网络抖动参数。卡尔曼滤波器是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。本申请通过第一卡尔曼滤波器,可以观测网络抖动的线性变化,精准估计当前网络抖动参数。
具体的,参照图5第一卡尔曼滤波器根据帧尺寸和组帧时间差估算出对应的当前网络抖动参数的流程包括:
S1101、第一卡尔曼滤波器根据帧尺寸确定已完成组帧的所有视频帧的最大帧尺寸参数和平均帧尺寸参数,根据组帧时间差进行自回归训练得到信道传输速率参数;
S1102、将最大帧尺寸参数、平均帧尺寸参数和信道传输速率参数输入预先构建的网络抖动参数计算公式,计算得到对应的当前网络抖动参数。
对于当前帧对应的组帧时间差,以及该帧的帧尺寸信息(单位Byte),可将这两个值作为信源输入第一卡尔曼滤波器,第一卡尔曼滤波器输出的值为当前网络抖动情况的估计值,即当前网络抖动参数。当前网络抖动参数代表当前帧需要在缓冲数据中等待播放的时间,该等待时间即为视频平滑播放所需的代价。
进一步的,网络抖动参数的计算公式为:
Jitter=_theta[0]*(_maxFrameSize-avgFrameSize)+noiseThreshold
其中,Jitter表示当前网络抖动参数,_theta[0]表示信道传输速率参数的倒数,_maxFrameSize表示最大帧尺寸参数,avgFrameSize表示平均帧尺寸参数,noiseThreshold网络噪声抖动参数,noiseThreshold=2.33*sqrt(varNoise)-30,varNoise为视频帧网络排队延迟。
对于输入第一卡尔曼滤波器的帧尺寸和组帧时间差信息,将两者转换为上述网络抖动参数计算公式的对应参数值。其中,基于该帧尺寸信息,比对视频帧缓存中所有视频帧的帧尺寸,当前所有完成组帧的视频帧的最大帧尺寸参数。同样的,基于视频帧缓存中所有视频帧的帧尺寸(包括当前帧),计算出当前所有完成组帧的视频帧的平均帧尺寸参数。对于组帧时间差,则通过进行自回归训练的方式,得到当前的信道传输速率参数。以此,将上述参数代入网络抖动参数的计算公式,即可确定当前网络抖动参数的值。
需要说明的是,为了得到一个能准确反应网络波动情况的网络抖动参数值,本申请实施例通过确定当前帧的组帧时间差,组帧时间差可以较为准确的反应网络环境的变化,以此作为信源输入进行网络抖动参数估计,可以使卡尔曼滤波器更为准确地观测到实时的网络线性变化情况,使得第一卡尔曼滤波器最终输出的网络抖动参数值更为合理。
在一个实施例中,基于当前帧的组帧时间差和帧尺寸信息,也可以采用带遗忘因子的直方图统计算法估计当前网络抖动参数,以准确估计出当前帧需要延迟播放的时间。
同样的,参照图6,对于接收时间的确定,以帧采集时间作为卡尔曼滤波器的信源输入,估算出当前帧的接收时间。定义该卡尔曼滤波器为第二卡尔曼滤波器,第二卡尔曼滤波器估算接收时间的流程包括:
S1103、确定当前帧的帧采集时间信息;
S1104、将帧采集时间信息输入预先构建的第二卡尔曼滤波器,由第二卡尔曼滤波器根据帧采集时间信息估算出对应的接收时间。
第二卡尔曼滤波器以当前帧的帧采集时间信息为信源输入,通过观测视频帧的帧采集时间和接收时间的线性变化,即可确定当前帧的接收时间。通过卡尔滤波器观测数据线性变化的方式有甚多,本申请实施例在此不多赘述。
S120、根据接收时间和当前网络抖动参数确定当前帧的渲染时间,并按照渲染时间渲染播放当前帧。
最终,基于已确定的接收时间和当前网络抖动参数,将两者相加即得到当前帧的渲染播放时间。可以理解的是,当前网络抖动参数表示当前帧需要延迟播放的最合理的时间。则在当前帧接收时间的基础上,加上当前网络抖动参数,即可得到当前帧最合理的渲染播放时间。以此既保证了视频帧渲染的实时性又能降低播放卡顿,提升用户体验。
示例性的,如图4所示,发送端将视频帧分为多个数据包后,通过网络转发给接收端,接收端以帧为单位重新将数据包组合起来,当某一视频帧处于待解码状态时,会将该帧的帧采集时间、帧尺寸和组帧时间差信息作为卡尔曼滤波器的信源输入,以当前帧接收时间和当前网络抖动参数作为信源输出,最终将当前帧接收时间和当前网络抖动参数相加,输出当前帧的渲染播放时间。渲染播放时间由当前帧的接收时间和当前网络抖动参数两部分相加而成,一个合理的渲染播放时间能保证在较低时延下尽可能提升视频播放流畅度,所以网络抖动参数的预估准确性决定了最终得到的渲染播放时间是否合理。因此,本申请实施例通过精准估计网络抖动参数,使最终确定的视频帧渲染播放时间更为合理、准确。
本申请实施例通过当前帧的组帧时间差以反映网络波动情况,组帧时间差综合考虑了网络拥塞、流控机制、可伸缩视频编码机制和/或否定确认机制导致的时延,以使组帧时间差更精准地反映实时网络波动情况。进而通过预先训练的卡尔曼滤波器精准确定实时网络抖动参数,以此来应对未来可能产生的网络抖动,当网络恢复平稳后,组帧时间差也相应做出变化,使得网络抖动也快速做出反映,以此得到相对较小的网络抖动参数。合适的网络抖动参数能使得视频帧播放时机更合理,既保证了视频帧渲染的实时性又能降低播放卡顿,提升用户体验。
上述,在当前帧处于预定义的待解码状态时,通过确定当前帧的接收时间,并根据当前帧的帧尺寸和组帧时间差估计当前网络抖动参数,组帧时间差表示当前帧与前一视频帧的组帧时间间隔;根据接收时间和当前网络抖动参数确定当前帧的渲染时间,并按照渲染时间渲染播放当前帧。采用上述技术手段,通过结合实时网络抖动准确估计视频帧的渲染播放时间,使视频帧在合理的时机进行渲染播放,以此既保证了视频帧渲染的实时性,又能降低视频播放的卡顿程度,优化用户的实时视频通话体验。
在上述实施例的基础上,图7为本申请提供的一种视频帧播放系统的结构示意图。参考图7,本实施例提供的视频帧播放系统具体包括:估计模块21和渲染播放模块22。
其中,估计模块21用于在当前帧处于预定义的待解码状态时,确定当前帧的接收时间,并根据当前帧的帧尺寸和组帧时间差估计当前网络抖动参数,组帧时间差表示当前帧与前一视频帧的组帧时间间隔;
渲染播放模块22用于根据接收时间和当前网络抖动参数确定当前帧的渲染时间,并按照渲染时间渲染播放当前帧。
具体的,估计模块21包括:
状态确定单元,用于在当前帧及当前帧的参考帧完成组帧时,确定当前帧处于预定义的待解码状态
抖动估计单元,用于将当前帧的帧尺寸和组帧时间差输入预先构建的第一卡尔曼滤波器,由第一卡尔曼滤波器根据帧尺寸和组帧时间差估算出对应的当前网络抖动参数。
具体的,第一卡尔曼滤波器根据帧尺寸和组帧时间差估算出对应的当前网络抖动参数,包括:
第一卡尔曼滤波器根据帧尺寸确定已完成组帧的所有视频帧的最大帧尺寸参数和平均帧尺寸参数,根据组帧时间差进行自回归训练得到信道传输速率参数;
将最大帧尺寸参数、平均帧尺寸参数和信道传输速率参数输入预先构建的网络抖动参数计算公式,计算得到对应的当前网络抖动参数。
网络抖动参数计算公式为:
Jitter=_theta[0]*(_maxFrameSize-avgFrameSize)+noiseThreshold
其中,Jitter表示当前网络抖动参数,_theta[0]表示信道传输速率参数的倒数,_maxFrameSize表示最大帧尺寸参数,avgFrameSize表示平均帧尺寸参数,noiseThreshold网络噪声抖动参数。
具体的,组帧时间差根据当前帧与前一视频帧的视频帧发送间隔和传输时延确定;传输时延包括网络拥塞时延、流控机制时延、可伸缩视频编码机制时延和否定确认机制时延中的一种或多种。
具体的,估计模块21还包括:
接收时间估计单元,用于确定当前帧的帧采集时间信息;将帧采集时间信息输入预先构建的第二卡尔曼滤波器,由第二卡尔曼滤波器根据帧采集时间信息估算出对应的接收时间
上述,在当前帧处于预定义的待解码状态时,通过确定当前帧的接收时间,并根据当前帧的帧尺寸和组帧时间差估计当前网络抖动参数,组帧时间差表示当前帧与前一视频帧的组帧时间间隔;根据接收时间和当前网络抖动参数确定当前帧的渲染时间,并按照渲染时间渲染播放当前帧。采用上述技术手段,通过结合实时网络抖动准确估计视频帧的渲染播放时间,使视频帧在合理的时机进行渲染播放,以此既保证了视频帧渲染的实时性,又能降低视频播放的卡顿程度,优化用户的实时视频通话体验。
本申请实施例提供的视频帧播放系统可以用于执行上述实施例提供的视频帧播放方法,具备相应的功能和有益效果。
在上述实际上例的基础上,本申请实施例还提供了一种电子设备,参照图8,该电子设备包括:处理器31、存储器32、通信模块33、输入装置34及输出装置35。存储器作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请任意实施例所述的视频帧播放方法对应的程序指令/模块(例如,视频帧播放系统中的估计模块和渲染播放模块)。通信模块用于进行数据传输。处理器通过运行存储在存储器中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的视频帧播放方法。输入装置可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置可包括显示屏等显示设备。上述提供的电子设备可用于执行上述实施例提供的视频帧播放方法,具备相应的功能和有益效果。
在上述实施例的基础上,本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种视频帧播放方法,存储介质可以是任何的各种类型的存储器设备或存储设备。当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的视频帧播放方法,还可以执行本申请任意实施例所提供的视频帧播放方法中的相关操作。
上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。
Claims (7)
1.一种视频帧播放方法,其特征在于,包括:
在当前帧处于预定义的待解码状态时,确定所述当前帧的接收时间;
根据所述当前帧的帧尺寸和组帧时间差估计当前网络抖动参数,所述组帧时间差为所述当前帧与前一视频帧的组帧时间间隔;所述组帧时间差根据所述当前帧与前一视频帧的视频帧发送间隔和传输时延确定,所述传输时延包括网络拥塞时延、流控机制时延、可伸缩视频编码机制时延和否定确认机制时延中的一种或多种;
根据所述接收时间和所述当前网络抖动参数确定所述当前帧的渲染时间,并按照所述渲染时间渲染播放所述当前帧;
所述根据所述当前帧的帧尺寸和组帧时间差估计当前网络抖动参数,包括:
将所述当前帧的帧尺寸和组帧时间差输入预先构建的第一卡尔曼滤波器,所述第一卡尔曼滤波器根据所述帧尺寸确定已完成组帧的所有视频帧的最大帧尺寸参数和平均帧尺寸参数,根据所述组帧时间差进行自回归训练得到信道传输速率参数;
将所述最大帧尺寸参数、所述平均帧尺寸参数和所述信道传输速率参数输入预先构建的网络抖动参数计算公式,计算得到对应的所述当前网络抖动参数。
2.根据权利要求1所述的视频帧播放方法,其特征在于,所述网络抖动参数计算公式为:
Jitter=_theta[0]*(_maxFrameSize-avgFrameSize)+noiseThreshold
其中,Jitter表示所述当前网络抖动参数,_theta[0]表示所述信道传输速率参数的倒数,_maxFrameSize表示所述最大帧尺寸参数,avgFrameSize表示所述平均帧尺寸参数,noiseThreshold网络噪声抖动参数。
3.根据权利要求1所述的视频帧播放方法,其特征在于,所述确定所述当前帧的接收时间,包括:
确定所述当前帧的帧采集时间信息;
将所述帧采集时间信息输入预先构建的第二卡尔曼滤波器,由所述第二卡尔曼滤波器根据所述帧采集时间信息估算出对应的所述接收时间。
4.根据权利要求1所述的视频帧播放方法,其特征在于,所述当前帧处于预定义的待解码状态,包括:
在所述当前帧及所述当前帧的参考帧完成组帧时,确定所述当前帧处于预定义的待解码状态。
5.一种视频帧播放系统,其特征在于,包括:
估计模块,用于在当前帧处于预定义的待解码状态时,确定所述当前帧的接收时间,根据所述当前帧的帧尺寸和组帧时间差估计当前网络抖动参数,所述组帧时间差为所述当前帧与前一视频帧的组帧时间间隔;所述组帧时间差根据所述当前帧与前一视频帧的视频帧发送间隔和传输时延确定,所述传输时延包括网络拥塞时延、流控机制时延、可伸缩视频编码机制时延和否定确认机制时延中的一种或多种;
渲染播放模块,用于根据所述接收时间和所述当前网络抖动参数确定所述当前帧的渲染时间,并按照所述渲染时间渲染播放所述当前帧;
所述根据所述当前帧的帧尺寸和组帧时间差估计当前网络抖动参数,包括:
将所述当前帧的帧尺寸和组帧时间差输入预先构建的第一卡尔曼滤波器,所述第一卡尔曼滤波器根据所述帧尺寸确定已完成组帧的所有视频帧的最大帧尺寸参数和平均帧尺寸参数,根据所述组帧时间差进行自回归训练得到信道传输速率参数;
将所述最大帧尺寸参数、所述平均帧尺寸参数和所述信道传输速率参数输入预先构建的网络抖动参数计算公式,计算得到对应的所述当前网络抖动参数。
6.一种电子设备,其特征在于,包括:
存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4任一所述的视频帧播放方法。
7.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-4任一所述的视频帧播放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110962591.0A CN113727185B (zh) | 2021-08-20 | 2021-08-20 | 视频帧播放方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110962591.0A CN113727185B (zh) | 2021-08-20 | 2021-08-20 | 视频帧播放方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113727185A CN113727185A (zh) | 2021-11-30 |
CN113727185B true CN113727185B (zh) | 2024-04-02 |
Family
ID=78677327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110962591.0A Active CN113727185B (zh) | 2021-08-20 | 2021-08-20 | 视频帧播放方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113727185B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114143318B (zh) * | 2021-12-13 | 2024-02-02 | 航天新通科技有限公司 | 一种网络多径传输调度方法、装置、系统及可读存储介质 |
CN114584831B (zh) * | 2022-01-20 | 2024-04-02 | 百果园技术(新加坡)有限公司 | 提高视频清晰度的视频优化处理方法、装置、设备和存储介质 |
CN114584835B (zh) * | 2022-02-10 | 2024-04-02 | 百果园技术(新加坡)有限公司 | 一种视频处理方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106713855A (zh) * | 2016-12-13 | 2017-05-24 | 深圳英飞拓科技股份有限公司 | 一种视频播放方法及装置 |
CN109743600A (zh) * | 2019-01-15 | 2019-05-10 | 国网河南省电力公司 | 基于可穿戴的现场运维自适应视频流传输速率控制方法 |
CN111585829A (zh) * | 2019-02-15 | 2020-08-25 | 泰雷兹集团 | 经异步通信网接收数据的电子装置和方法、相关通信系统和计算机程序 |
CN111901678A (zh) * | 2020-07-31 | 2020-11-06 | 成都云格致力科技有限公司 | 一种面向tcp实时视频流的抗抖动平滑方法及其系统 |
CN113079421A (zh) * | 2020-01-03 | 2021-07-06 | 阿里巴巴集团控股有限公司 | 信息处理方法、装置、设备及存储介质 |
-
2021
- 2021-08-20 CN CN202110962591.0A patent/CN113727185B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106713855A (zh) * | 2016-12-13 | 2017-05-24 | 深圳英飞拓科技股份有限公司 | 一种视频播放方法及装置 |
CN109743600A (zh) * | 2019-01-15 | 2019-05-10 | 国网河南省电力公司 | 基于可穿戴的现场运维自适应视频流传输速率控制方法 |
CN111585829A (zh) * | 2019-02-15 | 2020-08-25 | 泰雷兹集团 | 经异步通信网接收数据的电子装置和方法、相关通信系统和计算机程序 |
CN113079421A (zh) * | 2020-01-03 | 2021-07-06 | 阿里巴巴集团控股有限公司 | 信息处理方法、装置、设备及存储介质 |
CN111901678A (zh) * | 2020-07-31 | 2020-11-06 | 成都云格致力科技有限公司 | 一种面向tcp实时视频流的抗抖动平滑方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113727185A (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113727185B (zh) | 视频帧播放方法及系统 | |
CN109587510B (zh) | 一种直播方法、装置、设备和存储介质 | |
US7817625B2 (en) | Method of transmitting data in a communication system | |
US8954178B2 (en) | Synchronization and mixing of audio and video streams in network-based video conferencing call systems | |
CN106686438B (zh) | 一种跨设备的音频图像同步播放的方法、装置及系统 | |
CN111147606B (zh) | 数据传输的方法、装置、终端及存储介质 | |
KR20180031547A (ko) | 서버에서 멀티 비트 레이트 스트림 미디어를 적응적으로 제공하기 위한 방법 및 장치 | |
JP2010520665A5 (zh) | ||
JP2015536594A (ja) | 積極的なビデオフレームドロップ | |
US11356739B2 (en) | Video playback method, terminal apparatus, and storage medium | |
US20210297534A1 (en) | Method and system for facilitating high-fidelity audio sharing | |
WO2021052500A1 (zh) | 视频图像的传输方法、发送设备、视频通话方法和设备 | |
CN113099272A (zh) | 视频处理方法及装置、电子设备和存储介质 | |
CN114221909B (zh) | 数据传输方法、装置、终端及存储介质 | |
CN110996122B (zh) | 视频帧传输方法、装置、计算机设备及存储介质 | |
US9912617B2 (en) | Method and apparatus for voice communication based on voice activity detection | |
CN110708569B (zh) | 一种视频处理方法、装置、电子设备及存储介质 | |
KR20170134451A (ko) | 멀티 계층 타이밍 동기화 프레임워크 | |
CN113573003A (zh) | 一种基于弱网的音视频实时通信方法、装置以及设备 | |
WO2023078232A1 (zh) | 一种传输方法及装置 | |
CN114979793A (zh) | 一种直播数据传输方法、装置、系统、设备和介质 | |
CN112702624B (zh) | 一种短视频播放效率的优化方法、系统、介质及设备 | |
JP6083964B2 (ja) | 送信装置、送信方法、及びプログラム | |
JP2016126037A (ja) | 信号処理装置、および信号処理方法、並びにプログラム | |
WO2022228037A1 (zh) | 一种流媒体数据传输的方法及相关设备 |
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 |